通过ESB组合SOA和EDA
现今的业务应用程序很少完全独立运行。它们需要彼此连接,以便创建集成解决方案,从而为组织带来价值。面向服务的体系结构(Service-Oriented Architecture,SOA)和事件驱动的体系结构(Event-Driven Architecture,EDA)是处理复杂集成挑战的两个不同范例。组织如何选择更好的方法来满足其需求呢?实际上他们并不必选择:企业服务总线(Enterprise Service Bus,ESB)允许同时实现 SOA 和 EDA 概念。
企业服务总线
定义
企业服务总线(Enterprise Service Bus,ESB)将事件驱动的方法和面向服务的方法结合使用,以简化业务单元的集成,从而在异类平台和环境间建立联系。ESB 充当允许不同应用程序进程之间进行通信的中间层。部署到企业服务总线的服务可以由使用者或事件触发。它同时支持同步方式和异步方式,可促进一个或多个参与者之间的交互(一对一和多对多通信)。因此 ESB 可提供 SOA 和 EDA 范例的所有功能。
企业服务总线是一种体系结构模式,可以采用许多不同的产品在组织内实现,并组装起来作为联合总线。现在有越来越多的供应商开始提供完整的产品来满足企业集成需求。例如 IBM WebSphere® Enterprise Service Bus就提供了集成总线功能,可以有效地连接应用程序(利用 Web 服务和 J2EE 等标准)。
ESB 服务
目前并没有定义 ESB 的正式标准,但通常都认为 ESB 至少必须提供传输、事件 和中介 服务,以帮助集成大型异类应用程序。
传输服务 必须确保通过企业总线互连的业务流程间的消息正确交付。传输还包括基于内容的路由功能。这意味着可以将消息定向到不同的目的地。作为任务关键型环境的一部分,这些服务采用事务处理方式,得到了相应的安全保证,并会对其进行监视。
事件服务 提供事件检测、触发和分发功能。这些功能与事件处理概念相关,事件处理是一种用于分析和控制事件驱动的体系结构 (EDA) 中相互关联事件组成的复杂系列。事件驱动的范例并不是新概念。不过,它们促进了行业的发展,代表着复杂事件处理 (Complex Event Processing) 的核心概念。
中介服务 用于满足两个目的。首先,中介可确保提供必要协议,以满足集成异类系统的需求。由于两个不同的服务并不一定使用相同的传输协议,而中介服务可负责从一个协议到另一个协议的转换,因此可以进行此类通信。协议转换对于业务事务的所有参与服务是透明的。

图 4:协议中介——由 ESB 进行协议转换
其次,中介提供了转换任何消息内容的可能性。这是业务集成的关键服务。它可确保任何进程都能理解通过总线传输的数据。而且,中介允许对内容进行扩展,以使用附加信息丰富消息内容。内容转换由总线负责进行管理:此过程对于任何参与服务都是透明的。

图 5:内容中介——消息内容由 ESB 进行转换和扩展
让我们举个例子来说明内容中介的好处。假定有一个名为 Yummy Inc. 的公司提供在线订餐服务。为了对其向客户提供的菜单进行计划,他们需要验证其供应商提供的食品的可用性和价格。为了获得此信息而发送的消息的典型结构包括:产品标识、数量和目标配送日期。

图 6:可用性消息的结构
- 本文关键词:

