Webservice 和 Enterprise Service Bus 的区别

Difference between Webservice and Enterprise Service Bus

我想知道Webservice和Enterprise Service Bus (Ex-Mule)的区别。我在网上搜索时没有得到太多信息。

根据我的理解,Enterprise Service Bus是用来集成Service的,以便其他任何应用程序都可以使用和调用或集成。 Web服务是Enterprise Service Bus中使用的方式之一。

首先,一些通用术语:

服务是可从外部消费应用程序调用的公开功能的通用术语。大多数情况下,服务由应用程序的集成层公开。服务可以是 Web 服务 - 基于 SOAP、REST 等,因此 WebService 是使用 SOAP 的服务的子类型。

将所有应用程序相互连接并不能很好地扩展(随着您向环境中添加越来越多的应用程序,通信渠道呈指数级增长),从长远来看,这会导致昂贵的维护费用。这就是为什么我们使用中间件软件(ESB 是一种中间件)作为应用程序服务公开的唯一点。

那么Service和ESB有什么区别呢?

服务 "live" 在 ESB 上。它们通常代表特定的功能上下文——例如客户、订单的业务上下文。因此,如果您需要获取客户信息,您不会直接转到 CRM 应用程序,而是向提供此功能的 ESB 服务发送请求。因此,您无需了解有关 CRM 本身的任何信息。

ESB 实际上是一个中间件(集成 backbone,如果你愿意的话)提供技术基础设施和工具来轻松托管和实施服务,包括:

  • 路由机制
  • 不同协议的连接器和网桥
  • 不同事件的侦听器
  • 实现不同通信模型的手段
  • 数据和模型转换手段
  • 异步排队
  • 监控、日志记录
  • 政策集中化

使用中间件大大减少了系统之间点对点连接的数量,还带来了更好的隔离和较低的耦合度,这意味着当您需要实施更改、在供应商之间切换等时更加敏捷。

有关服务的更多信息,我会建议 see this article. The whole site is great and you may want to explore it. Also, you can see representation of ESB as compound SOA design pattern, 您可能会觉得有用。

Web 服务是由电子设备提供给另一个电子设备的服务,通过万维网相互通信。 Web 服务通常向数据库服务器提供面向对象的基于 Web 的接口,例如由另一个 Web 服务器或移动应用程序使用,为最终用户提供用户界面。提供给最终用户的另一个常见应用程序可能是混搭。 Web 服务可以使用 SOAP over HTTP 协议,与通过 EDI/B2B 等专有解决方案相比,通过 Internet 进行交互的成本更低。除了 SOAP over HTTP 之外,Web 服务还可以在其他可靠的传输机制上实现,例如 FTP.


企业服务总线 (ESB) 在面向服务的体系结构 (SOA) 中实现相互交互的软件应用程序之间的通信系统。它实现了如右图所示的软件架构。由于它实现了分布式计算的软件架构,因此它也实现了更通用的客户端-服务器模型的特殊变体。而通常任何使用 ESB 的应用程序都可以轮流充当服务器或客户端。 ESB 提高了应用程序之间高协议级别通信的敏捷性和灵活性。