集线器、点对点和企业服务总线(ESB)之间的区别

4

我知道已经有一个关于这个问题的很好的答案,但它并没有真正回答我要找的。

据我所知:

1.两者都用作应用程序之间的中央焦点
2.两者都可以在服务/应用程序之间使用路由/调解/转换等技术

但我唯一能看到的区别就是hub and spoke通常有很多不同的格式进入hub(SOAP/REST/XML/JSON...),而ESB通常有一个标准格式(通常只是SOAP)。

此外,我一直在阅读关于hub and spoke引入单点故障与ESB相比的内容。那么这里的区别是物理部署吗?Hub拥有每个可能的终端点,ESB则将终端点部署在多个Hub上。所以ESB只是多个Hub(说得更好听一些)?

有人能帮我澄清一下吗?


http://soalink.blogspot.in/2009/08/difference-between-esb-and-hub-and.html - Vrashabh Irde
在“格式”部分,您是不正确的。ESB可以支持多种格式和协议。实际上,这就是ESB的一个用途:让客户端使用他们想要的任何传输/协议,并让ESB处理转换。 - spakendralo man
3个回答

4
这里并没有确切的答案,因为你可以将ESB视为特定的设计模式,也可以将其作为软件集成工具和SOA演进的讨论。
作为设计模式的ESB意味着使用总线来管理不同服务之间的通信,客户端可以轻松地插入和拔出。通常通过强制使用标准的数据格式和协议来实现,而对于中枢和辐射,您可能需要为每个客户端使用自定义连接器和数据转换。这限制了运行多个集成时可能遇到的问题数量,但在ESB中仍可能存在单点故障。
作为一种讨论(或营销术语),“真正的ESB”是一个更复杂的问题,人们争论什么是“真正的ESB”。有人说,您需要具有可选择部署哪些组件的模块化体系结构,或者需要能够将组件分布在不同的机器上以实现扩展和容错。 在极端定义中,您甚至需要将数据转换器部署为分布式服务。

1

这里开始

ESB是企业集成技术的下一代,接替了EAI(中心-辐射)技术。

  • 更智能的端点:ESB使架构可以在应用程序与外部世界接口处放置更多的智能。 ESB允许每个端点使用诸如WSDL之类的标准呈现自己作为服务,并消除了为每个应用程序编写唯一接口的需要。集成智能可以本地部署在端点(客户端和服务器)上。规范格式被绕过,直接将有效负载格式化为目标格式。这种方法有效地消除了EAI产品中固有的许多复杂性。
  • 分布式架构:EAI是纯粹的中心枢轮式方法,而ESB是轻量级的分布式架构。当必须将每个程序之间的交互转换为规范格式时,集中式中心是有意义的。 ESB将更多的处理逻辑分配给端点。
  • 无集成堆栈:随着客户使用EAI产品解决更多问题,每个供应商都会添加与EAI产品结合使用的专有功能堆栈。随着时间的推移,这些集成堆栈变得庞大,并且需要深入的专业知识才能使用。相比之下,ESB是一层相对较薄的软件,可以使用开放标准应用其他处理层。例如,如果ESB用户想要部署特定的业务流程管理工具,则可以使用行业标准接口(如BPEL)轻松集成到ESB中以协调业务流程。
使用ESB方法的直接短期优势在于,它实现了与EAI(中心枢纽)方法相同的总体效果,但总拥有成本要低得多。这些节省不仅通过减少硬件和软件费用来实现,而且还通过使用分布式和灵活的框架实现劳动力节省。

0

我不知道你在说“物理部署是否是这里的区别”时是否意味着这个,但实际上Hubs和ESP之间的主要区别在于,它们的通信系统位于不同的层次。

当我们谈论ESP时,我们指的是一个软件架构模型,而Hub则指严格的硬件连接拓扑。

通常情况下,这种硬件拓扑(一组集线器)实现了ESP,但两者之间存在明显的通信层之间的界限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接