面向消息的中间件 (MoM) 对比 企业服务总线 (ESB)
我来自 MoM 背景。 我想我从概念上理解了 ESB。 但是,在进行架构选择时,我不太确定两者之间的实际差异。
这是我想知道的
1)任何好的在线链接都可以在这方面帮助我。
2)有人能告诉我在哪里使用其中一种比另一种更有意义吗?
任何帮助都会有用的。
I come from a background of MoM. I think I understand ESB conceptually. However, I'm not too sure about the practical differences between the two when it comes to making a choice architecturally.
Here is what I want to know
1) Any good links online which can help me in this regard.
2) Can someone tell me where it makes sense to use one over the other.
Any help would be useful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
消息传递往往集中于网络上可靠的消息交换; 使用队列作为可靠的负载均衡器和主题来实现发布和订阅。
ESB 通常倾向于在消息传递之外添加不同的功能,例如编排、路由、转换和中介。
我建议您阅读企业集成模式,其中概述了您会倾向于的常见模式用于基于消息总线之上的集成问题(尽管也可以与其他网络技术一起使用)。
例如使用开源; Apache ActiveMQ 提供松散耦合的可靠消息交换。 然后你可以使用Apache Camel来实现企业集成模式,用于智能路由、转换、编排,使用其他技术等等。
Messaging tends to concentrate on the reliable exchange of messages around a network; using queues as a reliable load balancer and topics to implement publish and subscribe.
An ESB typically tends to add different features above and beyond messaging such as orchestration, routing, transformation and mediation.
I'd recommend reading about the Enterprise Integration Patterns which gives an overview of common patterns you'll tend to use in integration problems which are all based above a message bus (though can be used with other networking technologies too).
For example using open source; Apache ActiveMQ provides a loosely coupled reliable exchange of messages. Then you can use Apache Camel to implement the Enterprise Integration Patterns for smart routing, transformation, orchestration, working with other technologies and so forth.
我将 MOM 解决方案和 ESB 解决方案放在两个不同的平面上。
我认为 MOM 是 ESB 解决方案的构建块。 事实上,ESB 解决方案只需使用特定 MOM 实现提供的范例即可实现其自身的松耦合和异步通信功能。
因此,MOM 代表在定制的 QoS 级别(根据特定供应商实现)进行数据/事件分发的解决方案,而 ESB 代表提供在 SOA 场景中实现复杂编排的功能的解决方案(在该场景中,我们有多个提供商提供其服务,并且多个提供商提供服务)。对消费第一个提供的服务感兴趣的消费者)。
复杂的编排意味着遗留系统之间的通信,其中每个系统都有自己的数据域表示(特定数据的规则和服务)和自己的通信范例(一个使用者使用 CORBA 与 ESB 交互,另一个使用 WS 等)。
很明显,ESB 代表了一种更复杂的架构解决方案,旨在提供数据总线的抽象(例如每个人在自己的电脑中拥有的电子总线),能够连接大量的服务提供商对于未明确指定的大量服务消费者,在 (i) 数据表示和 (ii) 通信中隐藏异质性。
很抱歉这篇文章很长,但概念很复杂,很难在简短的声明中有效和高效。
I put MOM solutions and ESB solutions on two distinct planes.
I consider MOM a building block for ESB solutions. In fact, ESB solutions reach their own loose coupling and asynchronous communication capabilities, just using the paradigm offered by the specific MOM implementation.
Therefore, MOMs represent solutions for data/events distribution at customized level of QoSs (according to the specific vendor implementation), instead ESBs represent solutions providing capabilities to realize complex orchestrations in a SOA scenario (where we have multiple providers offering their services, and multiple consumers interested in consuming the services offered by the first ones).
Complex orchestrations imply communication between legacy systems, everyone of these with its own data domain representation (rules and services on specific data) and its own communication paradigm (one consumer interact with the ESB using CORBA, another one using WS, and so on).
It is clear that ESB represents a more complex architectural solution aimed to provide the abstraction of data-bus (such as the electronic buses that everyone have in his own pc), able to connect a plethora of service providers to a not well specified plethora of service consumers, hiding heterogeneity in (i) data representation and (ii) communication.
Sorry for the long post, but the concepts are complex and it is very difficult to be effective and efficient in a short statement.
ESB 通常是一个对消息进行路由、记录、转换和执行其他“技术”(即非业务)功能的层。 它可以处理来自消息传递系统(例如基于 JMS 的系统)的消息,也可以处理其他类型的消息(例如基于 SOAP 的 Web 服务)。 在这方面,它比 MoM 更通用。
免责声明:我是一名 IBM WebSphere 顾问 - 尽管我不以官方身份在此做出贡献。
An ESB is typically a layer that routes, logs, transforms, and performs other 'technical' (i.e. non-business) functions on messages. It could process messages from a messaging system (such as something JMS-based), or it could work with other types of message (such as SOAP-based web services). In that respect, it's more general than MoM.
Disclaimer: I am an IBM WebSphere consultant - although I am not contributing here in an official capacity.
具有真实形式的 Web 服务的 ESB 通过通过消息元素之一发送数据来提供应用程序松耦合。
MOM 不仅提供应用程序松耦合,还提供过程松耦合。
ESB 附带了支持以治理为中心的方法的附加功能。
两者可以根据场景单独使用或一起使用。
ESB with web services in its true form provides Application loose coupling by sending the data through one the elements of the message.
MOM provides not only Application Loose coupling but process loose coupling along.
ESB comes with additional features supporting Governance centric approach.
Both can be used independently or together depending upon the scenario.
IBM 和 Oracle 拥有 SOA 认证。 由于他们是市场的领导者(Gartner 魔力象限),我会了解他们如何定义 SOA 和 ESB(以及支持 SOA 所需的方法和组件,如治理、注册表等)
IBM and Oracle have SOA certifications. Since they're the leaders in the marketplace (Gartner Magic Quadrant), I would read about how they define SOA and ESBs (along with methodology and the components needed to support SOA like Governance, Registry, etc etc)
EBS 只是另一个流行词,SOA 2.0 也是如此。
您可以使用带有队列的普通 Web 服务轻松实现 ESB 系统。
您可以使用 SOA 1.0(Tibco、BizzTalk)进行消息路由和/或编排,一件事确实不会阻止另一件事。 更重要的是,系统中交换的消息(在本例中为事件)所赋予的语义发挥着重要作用。 消息作为事件,是系统中发生的事情的触发器,因此上下文是不同的。
EBS is just yet another buzzword, as is SOA 2.0.
You can have a ESB system easily implemented with normal Web Services with a queue behind them.
You can have message routing and or orchestration with SOA 1.0 (Tibco, BizzTalk), one things does not stop the other really. More importantly, it is the semantics given to the messages exchanged in the system that play an important role, in this case events. Messages as events, are triggers about something that happened in your system, so the context is different.