科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道通过ESB组合SOA和EDA(2

通过ESB组合SOA和EDA(2

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

企业服务总线(Enterprise Service Bus,ESB)将事件驱动的方法和面向服务的方法结合使用,以简化业务单元的集成,从而在异类平台和环境间建立联系

作者:Jean-Louis Maréchaux 来源:developerWorks中国 2007年9月16日

关键字: SOA/Portals SOA bloomberg chainbuilder

  • 评论
  • 分享微博
  • 分享邮件

企业服务总线

定义

企业服务总线(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:可用性消息的结构

当然,Yummy Inc. 及其供应商并未采用相同的方式来表示这些信息。例如,两个系统上的日期格式就不相同。而且,供应商需要使用配送位置信息,因为 Yummy Inc. 并不是其唯一的客户。ESB 中介服务可以将所传输消息的信息进行转换和扩展,以便目标服务接收到其所需的所有信息,如图 7 中所示:

图 7:ESB 中介的内容转换和扩展

通过利用之前定义的关键技术服务,ESB 可提供灵活的连接基础设施,用于集成松散耦合的应用程序。它同时支持 SOA 和 EDA 范例。

图 8:使用企业服务总线连接各个服务

ESB 的好处

通过利用其内部服务,ESB 解决方案可带来各种好处。就本质而言,它简化了连接各种相异应用程序的任务,从而最终提高了业务的灵活性,并提供了以下功能:

基于标准的连接

作为很多异类应用程序间的集成中枢,ESB 必须提供很多不同的集成技术,并对大量供选择的标准技术加以利用。

消息传递集成通常支持 Java™ Message Service (JMS) API,而企业信息系统的连接则是由 J2EE Connector Architecture (JCA) 提供的。为了确保 Web 服务互操作性,ESB 支持 JAX-RPC 编程模型。不同的 ESB 组件间的集成可以通过 Java Business Integration (JBI) 规范进行标准化。

渗透性集成

ESB 具有渗透性本质,因为它可以跨不同的部门、业务单元甚至业务合作伙伴进行应用程序集成。而且,它的核心体系结构原则还可以促进构建于异类开发环境上的应用程序之间的通信。例如,ESB 解决方案可以在不同的编程语言(J2EE、C++ 或 .Net)之间起到桥梁作用。

可靠集成

ESB 体系结构模式可提供系统安全性、可伸缩性或可用性。企业服务总线使用 SOA 和 EDA,可同时提供同步和异步功能。传输服务可确保可靠交付和事务完整性。因此,ESB 的每个特征都对其稳健性进行了增强,可尽可能减少集成或联合解决方案失败的风险。

结束语

企业服务总线是一种体系结构模式,可通过传输、事件和中介服务促进和简化业务集成。它可连接各个异类节点并作为中介传递其间的所有通信和交互,这些节点可分散在面向服务的体系结构(同步一对一方法)和事件驱动的体系结构(异步多对多方法)中。ESB 是目前处理集成挑战的最有效方法,是可提供最大业务灵活性和不同应用程序间的高效连接技术解决方案。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章