0

场景:我有一个 CRM 系统和我的应用程序。当在 CRM 系统中创建新订单时,myApp 应该做一些事情(为订单创建一个项目室),并将一些东西(项目室 url)写回 CRM 系统。

因此,我可以使用点对点集成轻松实现这一点,myApp 托管一个服务,当完成后,它会调用 CRM 中的服务。

问题是:我应该付出额外的努力来添加一些服务总线(额外的代码,额外的维护)还是不合适?该公司今天没有服务总线,也根本没有整合战略。

如果对上述问题“是”(我有点期待),我应该估计将 nServiceBus 或 rhino-service-bus ((从未尝试过其中任何一个)等额外时间纳入范围?你对其他 esb 有什么建议,或者我可以阅读的案例研究吗?

谢谢你的帮助

问候

拉尔西

4

3 回答 3

0

问题是它是否是其他系统可能关心的业务事件。如果我以新客户为例,营销系统可能会向他们发送一封电子邮件,然后订购系统开始处理订单。

如果这是您可以看到发生的事情,那么我将使用 nservicebus 使用推送 pub/sub 模型 (http://www.eaipatterns.com/ObserverJmsExample.html)。您所要做的就是构建一个处理程序来监听每个关心的应用程序的新客户消息,然后在该方法中,做您的事情。

另外....您正在做的是转向 SOA,但是您需要更多的东西才能成为 SOA。SOA 是架构哲学。我们正在谈论的 pub/sub 更多的是使用 MoM。

于 2011-04-15T23:04:40.193 回答
0

您应该区分 SOA 的主要方面

一个是提供服务,这主要是一个设计问题。简而言之,这意味着该服务应该是一种商品,而不是为您计划的特定客户定制的..

第二个方面是基础设施——可能包括 ESB

如果您有单个服务或少量服务,则可以使用简单的 Web 服务(无需 ESB 或其他基础设施),并且仍然可以获得 SOA 的所有好处。随着项目的发展,添加 ESB 不会比现在添加 ESB 难多少。

另一方面,如果您有难以修改的现有客户端,则在添加更多客户端时重新设计服务接口是一个艰难的过程

于 2011-04-21T08:37:08.740 回答
0

如果您正在考虑迁移到 SOA 架构,那么在做出通信决策之前首先要考虑的是您的服务边界。如果您的应用拥有特定业务能力的实现,这意味着它指定了业务逻辑并且是该功能的权威数据源,那么它应该是它自己的服务。但是,如果您的应用程序只是为 CRM 系统提供辅助功能,那么在 SOA 术语中,您的应用程序和 CRM 都将属于同一服务的一部分。

首先阅读这篇短文:http: //fafach.wordpress.com/2011/04/20/soa-what-is-a-service/

然后观看这个出色的 SOA 介绍视频:http ://www.nservicebus.com/ArchitecturalPrinciples.aspx

于 2011-04-20T14:56:01.797 回答