31

我来自妈妈的背景。我想我从概念上理解 ESB。但是,在从架构上做出选择时,我不太确定两者之间的实际差异。

这是我想知道的

1)任何可以在这方面帮助我的在线链接。

2)有人可以告诉我在哪里使用一个而不是另一个有意义。

任何帮助都会很有用。

4

6 回答 6

38

消息传递倾向于集中在网络周围的可靠消息交换;使用队列作为可靠的负载均衡器和主题来实现发布和订阅。

ESB 通常倾向于在消息传递之外添加不同的特性,例如编排、路由、转换和中介。

我建议阅读企业集成模式,它概述了您将倾向于在集成问题中使用的常见模式,这些问题都基于消息总线(尽管也可以与其他网络技术一起使用)。

例如使用开源;Apache ActiveMQ提供松散耦合的可靠消息交换。然后,您可以使用Apache Camel实现企业集成模式,以实现智能路由、转换、编排、使用其他技术等。

于 2008-11-24T16:36:19.230 回答
9

我将 MOM 解决方案和 ESB 解决方案放在两个不同的平面上。

我认为 MOM 是 ESB 解决方案的构建块。事实上,ESB 解决方案仅使用特定 MO​​M 实现提供的范式即可达到其自己的松散耦合和异步通信能力。

因此,MOM 代表在定制级别的 QoS 上的数据/事件分发解决方案(根据特定的供应商实现),而不是 ESB 代表提供在 SOA 场景中实现复杂编排的能力的解决方案(我们有多个提供商提供他们的服务,并且有多个有兴趣使用第一家提供的服务的消费者)。

复杂的编排意味着遗留系统之间的通信,每个系统都有自己的数据域表示(特定数据上的规则和服务)和自己的通信范式(一个消费者使用 CORBA 与 ESB 交互,另一个使用 WS,等等)。

很明显,ESB 代表了一种更复杂的架构解决方案,旨在提供数据总线的抽象(例如每个人在他自己的 pc 中拥有的电子总线),能够将过多的服务提供商连接到一个未明确指定的过多的服务消费者,隐藏(i)数据表示和(ii)通信中的异质性。

很抱歉这篇长文,但概念很复杂,很难在简短的陈述中有效和高效。

于 2011-05-14T19:48:23.250 回答
2

ESB 通常是对消息进行路由、记录​​、转换和执行其他“技术”(即非业务)功能的层。它可以处理来自消息传递系统的消息(例如基于 JMS 的消息),也可以处理其他类型的消息(例如基于 SOAP 的 Web 服务)。在这方面,它比 MoM 更通用。

免责声明:我是一名 IBM WebSphere 顾问——尽管我不是以官方身份在此做出贡献。

于 2008-11-22T01:50:00.567 回答
0

具有真正形式的 Web 服务的 ESB 通过通过消息元素之一发送数据来提供应用程序松散耦合。

MOM 不仅提供应用程序松散耦合,还提供处理松散耦合。

ESB 附带了支持以治理为中心的方法的附加功能。

两者可以单独使用,也可以根据场景一起使用。

于 2009-01-26T08:21:40.297 回答
0

IBM 和 Oracle 拥有 SOA 认证。由于他们是市场的领导者(Gartner 魔力象限),我会阅读他们如何定义 SOA 和 ESB(以及支持 SOA 所需的方法和组件,如治理、注册表等)

于 2011-04-14T19:44:12.253 回答
0

EBS 只是另一个流行词,SOA 2.0 也是如此。

您可以使用带有队列的普通 Web 服务轻松实现 ESB 系统。您可以使用 SOA 1.0(Tibco、BizzTalk)进行消息路由和/或编排,一件事并不能真正阻止另一件事。更重要的是,赋予系统中交换的消息的语义起着重要作用,在这种情况下是事件。作为事件的消息是关于系统中发生的某些事情的触发器,因此上下文是不同的。

于 2013-03-29T00:48:11.357 回答