通过ESB组合SOA和EDA(二)

日期: 2007-12-09 作者:Jean-Louis Maréchaux 来源:TechTarget中国

  企业服务总线

  定义

  企业服务总线(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 是目前处理集成挑战的最有效方法,是可提供最大业务灵活性和不同应用程序间的高效连接技术解决方案。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 总线技术究竟该不该用?

    曾几何时企业服务总线(ESB)被视为企业IT的核心。今天,不仅ESB受到了比被废弃还要糟糕的攻击,若干开发趋势似乎对更简单的消息总线也发起了质疑。