5

消息总线架构上的每一个描述似乎都描述了一个用于路由消息的集中中介:

每个应用程序都有一个到消息总线的连接,而不是到每个其他应用程序的多个专用连接。

http://msdn.microsoft.com/en-us/library/ff647328.aspx

将这些应用程序之间的连接中间件构建为消息总线,使它们能够使用消息传递一起工作。

http://www.eaipatterns.com/MessageBus.html

服务总线是位于应用程序之间的消息传递基础架构,允许它们以松散耦合的方式交换消息,以提高规模和弹性。

http://www.windowsazure.com/en-us/home/features/messaging/


描述似乎与 Message Broker 架构相同;让我相信以下几点:

术语“消息总线”实际上与“MoM”相同——一个通用术语,用于指代消息传递基础设施,而不明确提及拓扑。即消息代理是一种消息总线。

这似乎是一个有争议的话题,虽然关于 SO 有一些类似的问题,但没有一个(IMO)有明确的答案。

Ps 我知道企业服务总线是完全不同的,实际上是一个“功能丰富”的 MoM。

4

3 回答 3

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,而它更像是与 MoM 产品 - WebSphere MQ 一起使用的 ESB。通常大多数 MoM 都称自己为代理,例如 RabbitMQ、ActiveMQ、QPid 等。

希望这不会引起更多的混乱:)

于 2012-08-25T14:26:11.633 回答
0

WebSphere Message Broker 属于 SOA 的 ESB 层,它也是 MOM。WebSphere MQ 也是 MOM。我认为很多混淆都围绕着抽象架构概念和实际软件产品。SOA 和 ESB 是抽象概念。整个企业架构行业IBM、微软、甲骨文、TIBCO等一直在争夺市场份额。软件公司经常假装他们发明了一些新的更好的东西,以吸引客户的注意。他们对他们的产品做出了很多疯狂的承诺,而实际上他们创造了一套全新的代价高昂的问题(例如,XML 转换会导致严重的性能和安全问题)。因为它是由企业贪婪驱动的并且“快速进入市场”,所以总是存在大量的混乱和 IT 问题,并给 IT 员工带来很大的压力。

于 2012-08-25T15:18:29.333 回答
0

差异主要是不同的供应商试图在市场上区分自己并增加他们的思想份额。由于供应商通常定义自己的术语,因此每个供应商所使用的术语的含义通常会略有不同。

然而,一般来说,它们是同一类或类型的系统。他们组织和管理从一个软件服务到另一个软件服务的消息的传输、排队和持久性(存储),除此之外,您还需要查看供应商针对其产品的特定功能列表。

于 2012-08-23T08:14:14.290 回答