消息总线体系结构的每个描述似乎都描述了用于路由消息的集中式中介:
每个应用程序都有一个到消息总线的连接 与每个其他应用程序的多个专用连接。
http://msdn.microsoft.com/en-us/library/ff647328.aspx
将这些应用程序之间的连接中间件构建为 消息总线,使他们能够使用消息传递协同工作。
http://www.eaipatterns.com/MessageBus.html
Service Bus是位于应用程序之间的消息传递基础结构 允许他们以松散耦合的方式交换消息 提高规模和弹性。
http://www.windowsazure.com/en-us/home/features/messaging/
描述看起来与Message Broker架构完全相同;让我相信以下几点:
术语“消息总线”实际上与“MoM”相同 - 一个用于引用消息传递基础结构而不明确提及拓扑的通用术语。即Message Broker 是一种消息总线。
这似乎是一个有争议的话题,虽然在SO上有一些类似的问题,但没有一个(IMO)有明确的答案。
P.S。我知道企业服务总线完全不同,实际上是一个“功能丰富”的MoM。
答案 0 :(得分:6)
你是对的,这个术语领域非常混乱,没有明确的答案,但这是我对职业生涯的看法:
首先要做的是在不同层次的抽象中考虑这一点 - 建筑概念与产品。
消息总线(http://www.eaipatterns.com/MessageBus.html)通常被称为架构原则,通常将应用程序与规范数据格式一起解耦(http://www.eaipatterns.com/ CanonicalDataModel.html),无论技术如何。通常使用MoM产品实施。
MoM通常是指实现异步消息传递的一系列中间件产品。通常构建支持标准,例如JMS和AMQP(通常是WebSphere MQ,ActiveMQ,Azure消息传递,hornetQ,RabbitMQ等等)。
消息代理通常是MoM,这两个术语都用于同一消息产品。这里可能存在混淆,因为IBM的主要ESB产品称为WebSphere Message Broker,而ESB与MoM产品(WebSphere MQ)并排使用。通常大多数MoM称自己为经纪人,例如RabbitMQ,ActiveMQ,QPid等。
希望这不会造成更多混乱:)
答案 1 :(得分:0)
差异主要是主要不同的供应商试图在市场中脱颖而出并增加他们的思想共享。由于供应商通常会定义自己的条款,因此每个供应商的使用条款通常会略有不同。
然而,一般而言,它们是相同类别或类型的系统。他们组织和管理从一个软件服务到另一个软件服务的消息的传输,排队和持久性(存储),除此之外,您需要查看其产品的供应商特定功能列表。
答案 2 :(得分:0)
WebSphere Message Broker属于SOA的ESB层,它也是MOM。 WebSphere MQ也是MOM。我认为很多困惑是围绕抽象架构概念和实际软件产品。 SOA和ESB是抽象概念。整个企业架构行业IBM,微软,甲骨文,TIBCO等都在争夺市场份额。软件公司经常假装他们发明了一些新的和更好的东西,以便获得客户的关注。他们对他们的产品做出了许多疯狂的承诺,而实际上他们创造了一整套新的昂贵问题(例如,XML转换会导致严重的性能和安全问题)。因为它是企业贪婪驱动和“快速进入市场”所以总是存在大量的混乱和IT问题以及IT工作者的压力。