SOA 和 ESB 的区别
Posted
技术标签:
【中文标题】SOA 和 ESB 的区别【英文标题】:Difference between SOA and ESB 【发布时间】:2013-01-30 02:08:30 【问题描述】:我对这些 Web 服务术语 SOA、ESB 感到困惑。
请大家解释一下。
【问题讨论】:
【参考方案1】:SOA 代表Service Oriented Architecture
,ESB 代表Enterprise Service Bus
。
可以参考this IBM site.,也可以参考this
【讨论】:
我知道他们的缩写,先生,我想要区别以及何时使用这些。 回答没有帮助【参考方案2】:定义和区别在以下问题中解释:
What is an ESB and what is it good for? What is SOA "in plain english"?【讨论】:
【参考方案3】:SOA 是一种架构方法,您可以在其中以粗粒度方式公开和封装“服务”。它没有规定任何技术机制或实现。 SOA 与系统之间的边界/集成交互更相关。因此,如果系统 A 使用 SOA 公开服务,我可以与系统 B 中的这些服务进行交互。
另一方面,ESB 是一种有助于交付 SOA 的技术实现。
【讨论】:
【参考方案4】:SOA
是 service oriented architecture
。在 SOA services are decoupled
中,无论服务类型如何,都可以相互交互。这意味着特定服务可以是特定于平台或协议的,但 SOA 使此类服务能够交互和交换数据。这些数据本质上是通过ESB
(Enterprise service bus
) 交换的,它构成了任何 SOA 架构的主干。
让我继续举个具体的例子来帮助更好地理解这一点。我们可以通过使用JMS servers
和使用XML/XSD
作为在各种服务之间传输数据的手段来实现ESB 的一种方式。因此各种服务将注册或连接到这些 JMS 服务器并使用 XML 格式交换数据。通常 SOA 套件与所谓的 adapters
捆绑在一起,帮助将消息转换为服务和 XML 可以理解的格式和格式。
例如考虑股票交易系统。来自证券交易所的消息来自FIX
协议。您可能已经构建了一个需要 JSON
的应用程序。为了使这两个系统都能正常工作,您将使用 SOA - FIX 适配器将 FIX 消息转换为 XML,然后此 xml 将通过 ESB 传输到 JSON 适配器,然后根据系统端点的要求转换为 JSON。
最后希望下面这张图说的很清楚。
【讨论】:
【参考方案5】:SOA :- 基本上在 SOA 中,一方面我们有生产者/提供者,另一方面我们有消费者,由双方通信的桥(即网络)隔开.所以重点是两方如何交互(生产/消费)服务
ESB:- ESB 是一种架构模式,多个应用程序/组件/系统如何按照 SOA 原则相互通信/交互,尽管这里没有直接的生产者/消费者。 H因此在这里我们关注多个异构应用程序如何相互交互并实现业务目标。
另外,ESB 提供的 API 可用于开发服务并使服务之间可靠地交互。从技术上讲,ESB 是一个消息代理,它执行协议转换、消息格式转换、路由、接受和传递来自各种连接的服务和应用程序的消息 到 ESB。
【讨论】:
以上是关于SOA 和 ESB 的区别的主要内容,如果未能解决你的问题,请参考以下文章