NServiceBus开发(为用户定义服务设计接口)

时间:2016-08-21 07:09:49

标签: web-services nservicebus soa esb

我们的团队一直致力于基于面向服务架构(SOA)的电子组织应用程序,并希望集成服务和其他先前开发的应用程序和系统应用程序与新应用程序和使用Enterprise Service的新系统进行集成和通信总线(ESB),如NServiceBus。我的问题是如何设计用于使用服务的接口或抽象类(UI-后端设计,用户可以定义自己的服务,其他应用程序和系统通过ESB(如NServiceBus)使用此服务。

任何想法?

1 个答案:

答案 0 :(得分:0)

异步通信

设计'接口'是设计在服务之间异步流动的消息。

.NET类型的消息

使用NServiceBus的消息是.net类或接口,它们是从/向xml,json或其他序列化器序列化的。

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存储队列或任何支持的社区)更容易本地集成如果接收方或发送方不是.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