Axe*_*ehl 18
好问题 - 服务总线和消息传递系统之间的关键区别在于消息传递系统上的数据约定.消息传递系统通常允许您发送所有内容:二进制blob,XML,逗号分隔列表等.因此,应用程序A可以将逗号分隔的字符串发送到应用程序B,B将一些XML发送到应用程序C,C将一些其他XML发送到应用程序D.那是消息,但不是"服务总线".你可以说消息系统是'无类型'(动态结构),而ESB是'打字'(静态结构).
在"服务总线"中,您具有该总线上所有应用程序和适配器的公共数据定义(可以是具有共享XSD的XML).通用数据对象(CDO).连接的任何东西必须发送它遵守此数据定义的信息.ESB应支持加载,共享和版本化此公共数据定义.最大的优点是你可以连接一个组件(例如一个Message Broker),它可以做到这一点,而不必知道哪个应用程序发送了这些数据以及这些数据的去向.
Messaging与ESB的权衡取舍类似于其他无类型/类型选择:REST与SOAP,未经验证的XML与使用XSD的XML,Groovy与Java,......有些人会喜欢额外的结构(看起来不错纸 - 管理员喜欢它 - 有些人会讨厌它(当版本发生变化时,东西会中断,只需添加一些东西 - 黑客就不会那么喜欢它了;-)
回到你的问题(重新订购)
面向消息的中间件(MOM):各种语言的软件库,代理(或不通过)在应用程序之间传递"消息".从TCP/IP通信迈出一步.'messages'是结构化对象或文本字符串或二进制数据.通常,您在TCP/IP或UDP上具有额外的可靠性.一些示例:TIBCO RV和EMS,IBM MQ,Apache ActiveMQ,ZeroMQ,......
Java消息传递服务(JMS):MOM的通用API的定义- 人们抱怨当你的应用程序从MOM'X'切换到MOM'Y'时,你需要重写消息传递代码.如果您针对JMS进行编码,则只需切换库,并且与TIBCO EMS一起使用的相同应用程序突然与ActiveMQ一起使用(反之亦然)
企业消息系统(EMS):TIBCO实施JMS(产品名称:TIBCO EMS)
企业服务总线(ESB):ESB 使用面向消息的中间件来集成应用程序,数据库,代理等.ESB是一个具有附加数据结构和结构定义管理的MOM.将新组件连接到ESB时,开箱即可获得比将其连接到MOM时更多的"兼容性".在ESB中,组件必须做什么才能进行连接.我认为TIBCO的ESB被称为ActiveMatrix.
EMS:允许多个应用程序通过面向消息的协议而不是RPC协议的任何解决方案,因此,基本上交互的应用程序更多地绑定到消息数据而不是传输。
妈妈:我再次相信它可以和EMS一样。
ESB:这是设计企业消息传递系统的一种方法。另一种方法是轮辐模型。基本上,典型的消息传递系统涉及转换,中介,审核,路由和安全性等。ESB与集线器辐条指定哪个组件负责哪个部分。
JMS:Java平台提供的统一API,使开发人员可以直接使用JMS API,而不必担心底层消息传递框架是什么。消息传递实现必须符合JMS,才能由JMS API进行处理。
@ ag112的答案将“ EMS”扩展为“企业消息传递系统”,但首字母缩写有些含糊,可能最常见的“ EMS”扩展是指TIBCO Enterprise Messaging Service,它是TIBCO支持Java 的特定专有平台。消息服务(JMS)规范,还添加了一些专有扩展。一个企业服务总线(ESB)是一个软件中间件抽象层,通过基于标准的事件驱动和通常开放企业在大型系统集成软件组件“消息引擎”。这些“ 面向消息的中间件(MOM) ”面向服务的体系结构(SOA)。
| 归档时间: |
|
| 查看次数: |
14563 次 |
| 最近记录: |