因此,也许这是我应该申请SOA的情况?

问题描述

| 场景:我有一个CRM系统和我的应用程序。在CRM系统中创建新订单时,myApp应该做一些事情(为订单创建一个项目室),然后将一些东西(项目室url)写回到CRM系统。 因此,我可以使用点对点集成轻松实现此目的,myApp托管了一项服务,当完成工作时,该服务将调用CRM中的一项服务。 问题是:我应该付出额外的努力来添加一些服务总线(额外的代码,额外的维护)还是不合适?该公司今天没有服务总线,也根本没有集成策略。 如果对上述问题的回答为“是”(我有点期待),我应该估计包括nServiceBus或rhino-service-bus((从未尝试使用它们中的任何一个))的额外时间是多少?您对其他esb是否有任何建议,或者可以阅读案例研究? 谢谢你的帮助 问候 拉尔西     

解决方法

问题是这是否是其他系统可能关心的业务事件。如果我以新客户为例,也许营销系统会向他们发送电子邮件,然后订购系统开始处理订单。 如果您看到这种情况,我将使用nservicebus使用push pub / sub模型(http://www.eaipatterns.com/ObserverJmsExample.html)。您要做的就是构建一个处理程序,以监听每个关注的应用程序的新客户消息,然后以该方法执行您的操作。 另外...您正在做的事情正在转向SOA,但是您还需要做几件事才能成为SOA。 SOA是架构哲学。我们正在谈论的发布/订阅更多是使用MoM。     ,如果您正在考虑迁移到SOA架构,那么在做出通信决策之前首先要考虑的就是您的服务边界。如果您的应用拥有特定业务功能的实现,这意味着它指定了业务逻辑并且是该功能的权威数据源,那么它应该是其自己的服务。但是,如果您的应用只是向CRM系统提供辅助功能,那么按照SOA术语,您的应用和CRM都将属于同一服务。 首先阅读以下简短文章:http://fafach.wordpress.com/2011/04/20/soa-what-is-a-service/ 然后观看这个出色的SOA入门视频:http://www.nservicebus.com/ArchitecturalPrinciples.aspx     ,您应该区分SOA的主要方面 一个是提供服务,这主要是设计问题。简而言之,这意味着该服务应该是商品,而不是针对您计划的特定客户定制的。 第二个方面是基础架构-可能包括ESB 如果您只有一个服务,或者服务数量很少,则可以使用简单的Web服务(无需ESB或其他基础结构),仍然可以获得SOA的所有好处。 随着项目的发展,添加ESB不会比现在添加ESB难得多。 另一方面,如果现有客户端难以修改,则在添加更多客户端时重新设计服务的接口将是一个艰巨的过程。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...