gpt4 book ai didi

architecture - SCA(服务组件架构)和ESB(企业服务总线)的区别?

转载 作者:行者123 更新时间:2023-12-04 05:07:33 24 4
gpt4 key购买 nike

我已经开始学习软件架构,并且遇到了这些术语 ESBSCA。现在我发现这些术语很困惑,因为它们似乎服务于相同的目的(我知道这对于精通这些主题的人来说可能听起来很荒谬,但仍然如此)。

谁能解释一下区别?

感谢任何帮助。

最佳答案

其实它们是完全不同的。 ESB 代表企业服务总线。它是一种如何分离您在整个企业中使用的服务的模式。它也是某种交通警察,将消息(同样是模式,而不是技术)路由到不同的服务,并将这些消息转换为服务的预期格式和协议(protocol)。

SCA 代表服务组件架构。它是 IBM 和 Apache 合作开发的一项技术。这是一种进一步抽象服务的方法。例如,如果您将 SOAP over HTTP 用于 Web 服务,或者您可能使用 JMS,或者您可能将 JSON 与 HTTP POST 结合使用。所有这些都意味着特定的协议(protocol)和有效负载/消息格式。通常,您必须在某个时候对该协议(protocol)和格式进行“硬编码”。如果您可以传递一种不关心底层协议(protocol)的抽象格式怎么办?这就是 SCA 为您购买的。您与 SCA API 前面的服务交互。在这些服务定义的背后是实际使用的格式/协议(protocol)。

现在,这些听起来有点竞争,但事实并非如此。您可以仅使用 SCA 或使用 ESB 模式来开发整个基于 SOA 的架构。或者....您可以使用它们相互补充。

因此,您可以定义一个 ESB 并使用 SCA 接口(interface)连接您的每个服务。这允许您的总线在 SCA 接口(interface)之间转换消息并将消息路由到那些服务。 SCA 负责隐藏/抽象这些服务的底层格式和协议(protocol)。

所以他们真的没有互相争论。只是不同的抽象来帮助解决不同的问题。可以相互补充的抽象。

作为产品示例......,IBM 有一个名为 WebSphere Enterprise Service Bus 的产品。我不知道它是否已更名,但我曾经使用过它,当时它以该名称为人所知。这是一款有助于实现 ESB 模式并为您提供将系统公开为服务的工具的产品。 WESB(简称 WESB)也使用 SCA 作为连接这些服务的方式,即使这些服务是 SOAP/HTTP、JMS、MQ、JSON 等。

作为抽象技术相互补充而非冲突的另一个示例,请参阅问题 Advantages of SCA over Spring和我的答案(和其他答案)

关于architecture - SCA(服务组件架构)和ESB(企业服务总线)的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com