SOA中企业服务总线的角色

日期: 2008-06-09 来源:TechTarget中国

  概要


  业务敏捷——能够快速适应需求变化的能力——正逐渐成为激烈竞争的全球市场中业务运作的关键目标。业务管理人员需要迅速重新调配资源和流程来应对这些变化。为了更迅速的应对这些变化,IT管理人员正在抛开那些孤立的流程和整体化的企业应用软件,他们正在尝试将应用系统进行松耦合集成的方式,并在企业中提供可以作为可重用服务的业务功能。


  面向服务架构(SOA)是一种通过松耦合的“服务”组件创建企业IT基础架构的方式,这些组件就是一些离散的功能。合成的应用系统是SOA环境的关键元素。这些应用系统通过调用和编排若干的服务、事件和模型来创建,通过这种方式将他们封装成为更高层次的业务功能。这些功能使IT部门能够重用那些已经被测试过的过程和具有扩展性和服务质量的组件,增加了业务的敏捷性。这些重用可以帮助减少市场响应时间并降低IT开发成本。


  企业服务总线(ESB)是分布式的、基于消息的集成解决方案,遵循开放的标准。ESB的角色是在各种IT资源——比如企业中分布于不同的系统上的应用系统、平台和服务之间——更容易的建立可靠的通讯。当IT部门越来越关注构建SOA来降低开发成本并提升业务敏捷时,ESB就成为了建立企业SOA关键的第一步。ESB作为SOA的基础,可以通过附加的生产能力比如服务编排和注册,进行补足。本文将要讨论能解决企业SOA需要的ESB的需求。


  Web Service和ESB之路


  SOAP,Web服务表述语言(WSDL)和HTTP解决了一个棘手的问题,以前试图创建分布式系统的标准是一件很苦恼的事情,比如公共对象请求代理架构(CORBA)或者分布式计算环境(DCE)——即目前广泛被接受的两个最大的应用技术阵营(.NET和J2EE)与众多的应用系统提供商。虽然这绝非易事,但可以通过将标准极度的简单化为一套一致同意的核心技术条款来获取认同。这个设计原则既是Web服务标准的最大优点也是最大的局限。


  简单的讲,没有企业级的应用可以单独运行SOAP,WSDL和HTTP。尽管Web Service和SOA在IT社区中快速的获得认可,他们也面临着与之前的分布式系统同样的挑战,这在很大程度上取决于他们的分解原则。在这些挑战中,最重要的是如何解决点对点连接,也就是常说的M*N连接的问题。


  下面的图1说明了点对点的集成方式所产生的连接爆炸问题。每一个应用系统增加,都会使连接的数量呈指数级增长,因为每一个应用系统都要连接到其它的每一个应用系统。TIBCO创造了信息总线范例,右面的图是该范例的说明。在这个模型中,每一个应用只与公共骨架——总线——连接。这样使连接的数量最小化并且提供了为连接、集成系统和架构的管理提供了集中的位置。




 
  图1:通过ESB降低连接复杂性


  为了管理服务客户端与服务提供者的连接与通讯的复杂性,SOA需要一个骨架,它能够超出传统分布式消息,在异构的IT环境中提供复杂的转换、路由和松耦合连接,并且与平台无关。这个可靠的骨架提供企业级服务总线就是ESB。


  ESB的企业级需求


  我们来看一下服务总线的企业级功能。下面的每一项功能都是SOA中进行成功的集成的要点。将他们融合在一起就可以解决SOA环境中服务提供者和服务客户端所面临的问题。


  分布式消息:ESB的基础核心是面向消息的中间件,比如TIBCO企业消息服务软件。这个基础提供可靠的、分布式的传输方式,通过存储/转发方式保证消息即使在网络失败的时候仍能够发布。


  位置透明:通过服务仲裁,服务客户段调用服务提供者只需要知道这个服务存在,而不需要知道服务运行在何处。当服务被调用的时候,ESB来寻找这个服务,提供一层虚拟服务并且位置透明,这样即使服务器停机或者服务提供者被转移,独立的服务客户端都不需要被通知到这种变化。这样能够极大地降低IT管理的成本并使风险最小化。


  传输透明:传统的点对点集成方式,组件和对象都紧密耦合。在SOA中,因为位置透明,服务被IT环境寻找并且降低耦合。当依靠位置透明来连接服务客户端和服务提供者的时候,ESB还提供了物理的传输协议,使那些使用不同的传输的服务之间能够进行通讯。


  多协议支持:因为HTTP传输模型本身的可靠性问题并且只能运行同步消息交换模式(MEP),它无法满足每一个应用系统和服务的需求。例如,JAVA消息服务(JMS)有异步特性,并且相比HTTP,JMS有更高的可靠性。为了支持异构的应用,有些系统使用基于JMS的SOAP来达到预期的效果。其他的传输模型也同样正在被使用,包括那些由主要的资源计划和系统企业提供的私有的传输系统。因此,ESB需要能够支持众多不同类型的传输系统,以便在传输层能有效的集成异构系统和管理复杂的通讯。


  服务质量:对企业应用来说,服务质量(QOS)主要与服务可靠性相关。消息发布和可靠的服务调用是任何一个系统的关键功能。然而,Web服务本身不能提供发布的保证。从另一方面讲,ESB可以通过确保端到端的消息发布提供服务的高可靠性,这是在可靠的传输比如JMS之上提供的。此外,达到高的服务质量还必须要遵循标准,比如要支持WS-可靠消息规范。


  消息交换模式:当今大多数ESB使用基于HTTP的SOAP通过请求/响应方式操作,这意味着服务客户端发布一个请求消息给用户并等待响应。也就是常说的同步信息交换方式。


  然而,在发布/订阅消息交换模式中,服务客户端发送一个消息并且订阅响应而不是等待它。发布/订阅消息交换模式在企业中可以更有效的对事件进行响应,尤其是服务活动的生命周期将要耗费很长时间的时候。ESB需要能够支持每一种范例。


  基于内容的路由:ESB中有两种路由方式。第一种是服务路由,当服务调用进入ESB并且ESB将请求路由给适当的服务提供者,服务客户端并不需要知道服务提供者的位置。这就是如何实现我们上面讨论的位置透明。


  另一种是基于内容的路由,在路由平台定义一套由消息内容提供的规则或者业务逻辑,ESB根据消息的内容将其路由给指定的服务提供者。比如,特定用户的优先级顺序或者指定交易的标志。这对业务服务很有价值,因为他可以帮助降低信息管理的成本,保证与服务层的关连并且使企业能更加关注与客户的满意度。


  转换:ESB的任务是将消息从一个服务路由到另外一个,当数据格式不匹配的时候会有一些工作要做。因此ESB需要能够进行消息转换。


  附加的评估标准


  当决定选择最佳的SOA集成工具的时候,出来要评估之前所讲的特征,以下的标准也要特别注意。


  开放的标准:开放的标准,比如SOAP,WSDL和Java业务集成(JBI),是企业SOA的整体需求。因此,这些开放的标准需要被ESB解决方案的所有组件(运行时容器,消息架构,集成服务和设计时标准)支持并且集成资源机制要被指定(附加,请求和响应)在总线之上。


  扩展性和高可用性:ESB必须能够处理企业所需要的大量的消息。另外,高可用性是重要因素来保证不间断的业务操作。如果ESB中的一个组件失效,他不应该停止通讯中的服务。


  这些标准帮助IT部门确保ESB能够快速、准确的处理需要的事物,并且为将来的增长打下基础,这也是业务敏捷的要素。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

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

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

  • 揭秘New Relic APM技术细节

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

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

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

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

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