我来自MoM的背景。我想我从概念上理解ESB。但是,在建筑方面做出选择时,我不太确定两者之间的实际差异。
这是我想知道的
1)网上有任何好的链接,可以帮助我。
2)有人可以告诉我使用其中一个是有道理的。
任何帮助都会有用。
答案 0 :(得分:38)
消息传递倾向于集中于网络周围可靠的消息交换;使用队列作为可靠的负载均衡器和主题来实现发布和订阅。
ESB通常倾向于在消息传递之外添加不同的功能,例如编排,路由,转换和调解。
我建议阅读Enterprise Integration Patterns,其中概述了您将在集成问题中使用的常见模式,这些模式都基于消息总线(尽管也可以与其他网络技术一起使用)
例如使用开源; Apache ActiveMQ提供了松散耦合的可靠消息交换。然后,您可以使用Apache Camel为智能路由,转换,协调,Enterprise Integration Patterns等实施working with other technologies。
答案 1 :(得分:7)
我将MOM解决方案和ESB解决方案放在两个不同的平面上。
我认为MOM是ESB解决方案的基石。事实上,ESB解决方案只需使用特定MOM实现提供的范例,即可实现自己的松散耦合和异步通信功能。
因此,MOM代表定制QoS级别的数据/事件分发解决方案(根据特定的供应商实现),而ESB代表提供在SOA场景中实现复杂业务流程的功能的解决方案(我们有多个提供商提供其服务,以及多个消费者对消费第一个提供的服务感兴趣。
复杂的编排意味着遗留系统之间的通信,其中每个人都有自己的数据域表示(特定数据上的规则和服务)和自己的通信范例(一个消费者使用CORBA与ESB交互,另一个消费者使用WS,等等上)。
很明显,ESB代表了一个更复杂的架构解决方案,旨在提供数据总线的抽象(例如每个人都拥有的电子总线),能够连接过多的东西服务提供商对一个没有明确规定的过多服务消费者,隐藏异质性(i)数据表示和(ii)沟通。
对于长篇文章感到抱歉,但概念很复杂,很难在简短的陈述中有效和高效。
答案 2 :(得分:2)
ESB通常是在消息上路由,记录,转换和执行其他“技术”(即非业务)功能的层。它可以处理来自消息传递系统的消息(例如基于JMS的消息),也可以处理其他类型的消息(例如基于SOAP的Web服务)。在这方面,它比MoM更为普遍。
免责声明:我是IBM WebSphere顾问 - 虽然我不是以官方身份为此做出贡献。
答案 3 :(得分:0)
带有真实形式的Web服务的ESB通过通过消息的一个元素发送数据来提供应用程序松散耦合。
MOM不仅提供应用松散耦合,还提供松散耦合。
ESB附带了支持以治理为中心的方法的其他功能。
两者都可以单独使用,也可以根据具体情况一起使用。
答案 4 :(得分:0)
IBM和Oracle拥有SOA认证。由于他们是市场领导者(Gartner Magic Quadrant),我会读到他们如何定义SOA和ESB(以及支持SOA的方法和组件,如治理,注册表等)