我来自MoM背景。我认为我在概念上理解ESB。然而,当涉及到在架构选择方面做出选择时,我并不太确定两者之间的实际区别。
以下是我想知道的内容:
1)有哪些在线资源可以帮助我了解这方面的知识。
2)有人能告诉我在何时使用一个比另一个更有意义。
任何帮助都将是有用的。
消息传递通常集中于网络上的可靠信息交换;使用队列作为可靠的负载均衡器,并使用主题来实现发布和订阅。
ESB通常添加了比消息传递更多的功能,例如编排、路由、转换和调解等。
我建议阅读企业集成模式,它概述了你在集成问题中通常会使用的常见模式,这些模式都基于消息总线(虽然也可以与其他网络技术一起使用)。
例如,使用开源软件; Apache ActiveMQ提供松散耦合的可靠消息交换。然后可以使用Apache Camel实现企业集成模式,包括智能路由、转换、编排、与其他技术一起工作等等。
ESB通常是一个层,用于路由、日志记录、转换和执行其他“技术”(即非业务)功能的消息。它可以处理来自消息系统(例如基于JMS的某些东西)的消息,也可以与其他类型的消息(如基于SOAP的Web服务)一起工作。在这方面,它比MoM更通用。
声明:我是IBM WebSphere顾问 - 尽管我不以官方身份在此做出贡献。
IBM和Oracle拥有SOA认证。由于它们是市场领导者(Gartner Magic Quadrant),我建议阅读一下它们如何定义SOA和ESB(以及方法论和支持SOA所需的组件,如治理、注册表等等)。
EBS只是另一个流行词,SOA 2.0也是如此。
您可以使用普通的Web服务和队列轻松实现ESB系统。您可以使用SOA 1.0(Tibco、BizzTalk)进行消息路由或编排,两者并不互相排斥。更重要的是,在系统中交换的消息所赋予的语义扮演着重要的角色,这种情况下是事件。作为事件的消息是关于系统中发生的某些事情的触发器,因此上下文是不同的。
ESB以Web服务的真正形式提供应用程序松耦合,通过将数据通过消息的一个元素发送来实现。
MOM不仅提供应用程序松耦合,还提供过程松耦合。
ESB带有支持治理中心方法的附加功能。
两者可以根据情况独立或一起使用。