我们的团队一直致力于基于面向服务架构(SOA)的电子组织应用程序,并希望集成服务和其他先前开发的应用程序和系统应用程序与新应用程序和使用Enterprise Service的新系统进行集成和通信总线(ESB),如NServiceBus。我的问题是如何设计用于使用服务的接口或抽象类(UI-后端设计,用户可以定义自己的服务,其他应用程序和系统通过ESB(如NServiceBus)使用此服务。
任何想法?
答案 0 :(得分:0)
设计'接口'是设计在服务之间异步流动的消息。
使用NServiceBus的消息是.net类或接口,它们是从/向xml,json或其他序列化器序列化的。
http://docs.particular.net/nservicebus/messaging/messages-as-interfaces
这意味着我们希望使用配置的序列化程序将xml或json消息反序列化为相应的.net类型。
如果您将消息建模为XML / JSON,然后可以生成类型安全类表示,那么您没问题。如果没有,那么你会错过NServiceBus尝试应用的编程模型。
然而,线路上的消息是XML / JSON或您选择的任何格式,这使得通过底层传输(如MSMQ,RabbitMQ,SQL,Azure Service Bus,Azure存储队列或任何支持的社区)更容易本地集成如果接收方或发送方不是.NET NServiceBus进程,则传输。
但是,您需要实现自己的序列化,事务管理,pubsub和流程管道。
如果您想与现有应用程序或外部系统集成,那么熟悉常见集成模式的好书是:
http://www.enterpriseintegrationpatterns.com/
与构建集成相关,我认为一个好的阅读将是:
http://udidahan.com/2011/04/08/integration-how-and-where/
博客文章讨论了数据转换和协议桥接。这些不是NServiceBus提供的本机功能。
您通常会使用NServiceBus集成服务来处理特定集成通道的转换和通信。这些通道很可能具有与在表示SOA服务或系统的独立组件的集合中如何存储和/或传送数据的不同(公共)模式,并且使用NServiceBus进行通信。
这可以帮助您包装现有系统并将它们公开为基于消息的系统,这些系统可以发送/接收异步消息。
您可以在此处找到相关视频:http://particular.net/videos-and-presentations