以下术语之间的关系和区别是什么?
发布于 2015-01-16 09:34:16
好问题--服务总线和消息传递系统之间的关键区别在于您的消息系统上的数据约定。消息传递系统通常允许您发送所有内容:二进制blobs、XML、逗号分隔列表等。因此应用程序A可以将逗号分隔的字符串发送给应用程序B,B向应用程序C发送一些XML,而C向应用程序D发送一些其他XML,这是消息传递,而不是‘服务总线’。您可以说消息系统是“非类型化”(动态结构),而ESB是“类型化”(静态结构)。
在“服务总线”中,对于总线上的所有应用程序和适配器都有一个公共数据定义(可以是具有共享XSD的)。公共数据对象(CDO)。任何连接的东西都必须按照这个数据定义发送它的信息。ESB应该支持加载、共享和版本化这个公共数据定义。最大的优点是,您可以连接组件(例如,Message ),它可以做到这一点,而不必知道哪个应用程序发送了该数据,以及该数据将发送到何处。
消息传递与ESB的权衡类似于其他非类型化/类型化的选择: REST与SOAP、XSD中未验证的XML与XML、Groovy与Java、.有些人会喜欢附加的结构(在纸上看起来不错--经理们喜欢它)--有些人会讨厌它(当版本改变时,东西会中断,另外,你必须更新所有东西-黑客不太喜欢它;-)
回到你的问题(重新排序)
发布于 2011-07-05 09:07:19
EMS:允许多个应用程序通过面向消息的协议(而不是RPC协议)的任何解决方案,因此基本上交互应用程序更多地绑定到消息数据而不是传输。
妈妈:我再一次相信这和EMS是一样的。
ESB:这是设计企业消息传递系统的一种方法。另一种方法是轮毂和辐式模型。基本上,典型的消息传递系统包括转换、中介、审计、路由和安全等。ESB与中心辐指定哪个组件负责哪个部分。
JMS:它是Java平台提供的统一API,使开发人员能够直接使用JMS,而不必担心底层消息传递框架是什么。消息传递实现必须与JMS兼容,才能由JMS处理。
发布于 2011-07-29 20:47:39
虽然@ag112的答案将"EMS“扩展为”企业消息传递系统“,但其首字母缩写有点含糊不清,而且"EMS”最常见的扩展可能是指提布科 企业消息传递服务,这是TIBCO支持Java消息传递服务(JMS) 规格说明的特定专有平台,并添加了一些专有扩展。企业服务总线(ESB)是一个软件中间件抽象层,它通过事件驱动的、通常是基于开放标准的企业“消息传递引擎”集成大型系统中的软件组件。这些"面向消息中间件(MOM)“结构经常用于软件集成,并可能在面向服务体系结构(SOA)的实现中看到。
https://stackoverflow.com/questions/6574291
复制相似问题