SOA和ESB的区别

26

我对这些与Web服务相关的术语SOA和ESB感到困惑。

请有经验的人解释一下。

5个回答

32

SOA是指“面向服务的架构”。在SOA中,服务是解耦的,可以相互交互而不考虑服务类型。这意味着特定的服务可能是特定于平台或协议的,但SOA使这些服务能够相互交互和交换数据。这些数据通常通过企业服务总线(ESB)交换,它是任何SOA架构的支柱。

让我举一个具体的例子来帮助更好地理解。实现ESB的一种方式是使用JMS服务器并使用XML / XSD作为各个服务之间传输数据的手段。因此,各种服务将注册或连接到这些JMS服务器,并使用XML格式交换数据。通常,SOA套件与所谓的适配器(adapters)捆绑在一起,以帮助将消息转换为服务和XML所理解的格式。

例如,考虑股票交易系统。从证券交易所发出的消息以FIX协议形式到达。您可能已经构建了一个预期使用JSON的应用程序。为使这两个系统共同工作,您将使用SOA-FIX适配器将FIX消息转换为XML,然后通过ESB将此xml转换为JSON适配器所需的格式,以满足您的系统终端要求。

最后,希望以下图片能够非常清晰地说明问题。

enter image description here


27

SOA是一种架构方法,其中以粗粒度方式公开和封装“服务”。它没有规定任何技术机制或实现。SOA与系统之间的边界/集成交互更相关。因此,如果系统A使用SOA公开服务,则我可以从系统B与这些服务交互。

另一方面,ESB是一种技术实现,有助于提供SOA。


2

SOA :- 在SOA中,一方是生产者/提供者,另一方是消费者,它们之间由一个桥梁(即网络)分开,通过该桥梁进行通信。因此,重点在于两个方​​式如何交互(生产/消费)服务。

ESB:- ESB是一种架构模式,可以遵循SOA原则使多个应用程序/组件/系统相互通信/交互,尽管这里没有直接的生产者/消费者。因此,我们关注多个异构应用程序如何相互交互并实现业务目标。

此外,ESB提供API,可用于开发服务,并使服务可靠地相互交互。从技术上讲,ESB是一个消息代理,它执行协议转换、消息格式转换、路由以及接受和传递来自与ESB链接的各种服务和应用程序的消息。


0

-6

SOA代表面向服务的架构,而ESB代表企业服务总线。 您可以参考这个IBM网站,以及这个


6
我知道它们的缩写,但我希望知道它们之间的区别以及何时使用它们。 - Gagan
回答不太有帮助。 - Kimutai

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