我们的团队一直致力于基于面向服务架构的电子组织应用程序的开发,希望将以前开发的服务和其他拉格西应用程序和系统应用程序与NServiceBus等企业服务总线( Enterprise Service Bus)的新应用程序和新系统进行集成和通信。我的问题是如何设计使用服务的接口或抽象类( UI- ESB设计,用户可以定义自己的服务,其他应用程序和系统通过BackEnd (如NServiceBus)使用这些服务。
你有什么想法吗?
发布于 2016-08-22 19:59:16
异步通信
设计“接口”就是设计在服务之间异步流动的消息。
.NET类型的消息
带有NServiceBus的消息是从xml、json或其他序列化程序(反)序列化的.net类或接口。
http://docs.particular.net/nservicebus/messaging/messages-as-interfaces
这意味着我们希望xml或json消息通过配置的序列化程序反序列化为相应的.net类型。
如果您将消息建模为XML/JSON,然后可以使其生成类型安全类表示,那么就没问题了。如果不是,那么您将错过NServiceBus尝试应用的编程模型。
无需NServiceBus的本机集成
然而,网络上的消息是XML/JSON或您选择的任何格式,这使得通过MSMQ、RabbitMQ、SQL、Azure Service Bus、Azure Storage Queues或任何社区支持的传输(如果接收或发送端不是.NET NServiceBus进程)进行本地集成变得更容易。
但是,您需要实现自己序列化、事务管理、pubsub和进程管道。
集成模式
如果您想要与现有应用程序或外部系统集成,那么熟悉常用集成模式的一本好书是:
http://www.enterpriseintegrationpatterns.com/
数据转换和协议桥接
关于构建集成,我认为一本好的读物应该是:
http://udidahan.com/2011/04/08/integration-how-and-where/
这篇博文谈到了数据转换和协议桥接。这些都不是NServiceBus提供的原生功能。
NServiceBus集成渠道
使用NServiceBus集成服务来处理特定集成通道的转换和通信是很常见的。这样的通道很可能具有不同的(公共)模式,不同于数据在表示SOA服务或系统并使用NServiceBus进行通信的独立组件集合中的存储和/或通信方式。
其他资源
这可能会帮助您包装现有的系统,并将它们公开为基于消息的系统,这些系统可以发送/接收异步消息。
你可以在这里找到相关的视频:http://particular.net/videos-and-presentations
https://stackoverflow.com/questions/39061721
复制相似问题