企业服务总线(ESB)
基于 BEA 公司的 AquaLogic Service Bus(服务总线)可以构建 SOA,IBM 的产品也可以构建 ESB。
ESB 本质上是对 SOA 各种服务进行集成管理的核心架构,而不是一个真正的产品。
企业服务总线是指由中间件基础设施产品技术实现的、通过事件驱动和基于 XML 消息引擎,为更复杂的面向服务
的架构提供的软件架构的构造物。企业服务总线通常在企业消息系统上提供一个抽象层,使得集成架构师能够不用
编码而是利用消息的价值完成集成工作。
企业服务总线提供可靠消息传输,服务接入,协议转换,数据格式转换,基于内容的路由等功能,屏蔽了服务的物
理位置,协议和数据格式。
在 SOA 中,我们还需要这样一个中间层,能够帮助实现在 SOA 架构中不同服务之间的智能化管理。最容易想到的
是这样一个 HUB-Spoke 结构,在 SOA 架构中的各服务之间设置一个类似于 Hub 的中间件,由它充当整个 SOA 架
构的中央管理器的作用。图二使传统的 internet 结构,图三是 SOA 结构图。请看图三,现在服务的请求者和提供者
之间有了一个智能的中转站, 服务的请求者不再需要了解服务提供者的细节。
Enterprise Application Integration (EAI)的目标是支持对现有 IT 系统的重新利用,通过 EAI 技术能够将不同的软件和
系统串联起来,延长这些应用系统的生命周期。传统的 EAI,往往使用如 CORBA 和 COM 等的消息中间件进行分
布式,跨平台的程序交互,修改企业资源规划以达到新的目标,使用中间件、 XML 等方法来进行数据分配。因此,
实际 上传统的 EAI 是部件级的重用。很不幸的是,基于部件的架构没有统一的标准,因此,各个厂商都有各自不
同的 EAI 解决方案,你会看到各种各样的中间件平 台。如果 EAI 碰到了异构的 IT 环境,就必须分别考虑怎样在各
个不同的中间件之间周旋,来实现合理的互联方式,你不得不考虑各种复杂的可能性。因此,你所 见过的大多数
传统 EAI 解决方案都比较笨重。
现在该 ESB 登场了,请看我们的正解:
首先,它比单一 Hub 的形式更开放,总线结构有无限扩展的可能;其次,真正体现了 SOA 的理念, 一切皆为服务,
服务在总线(BUS)中处于平等的地位。即使我们需要一些 Hub,那么它们也是以某种服务的形式部署在总线上,相
比上面的结构要灵活的多。这就是 ESB,我们需要给它一个明确的定义:ESB 是一种在松散耦合的服务和应用之间
标准的集成方式。它可以作用于:
* 面向服务的架构 - 分布式的应用由可重用的服务组成
* 面向消息的架构 - 应用之间通过 ESB 发送和接受消息