ESB方案日臻完善 SOA如何应用?(上)

日期: 2009-10-22 来源:TechTarget中国 英文

  引言

  最新的IT集成是使用Web服务技术实现面向服务的体系结构(SOA),有许多优秀的文章讲述了该技术的好处和相关的实践。最近,企业服务总线(Enterprise Service Bus,ESB)的概念被表述为 SOA 基础架构的关键组件。然而,有必要阐明ESB究竟是一个产品、技术、标准,还是别的什么。特别是,当前是否可以构建 ESB?如果这样,该如何构建?

  本文将ESB描述为由中间件技术实现并支持SOA的一组基础架构功能。ESB支持异构环境中的服务、消息,以及基于事件的交互,并且具有适当的服务级别和可管理性。为了达到此目的,需要将多种功能集中起来并加以分类。然而,并不是ESB能够传递值的每一种情形都需要所有的功能。

  本文确定了一组最低功能,可以满足ESB与SOA的原则保持一致的基本需要。通过确定这些最低功能,您可以确定利用何种现有技术来实现支持SOA的ESB。通过考虑特定情形下的需求如何确定对额外功能的需要,您可以选择最适合这种情形的实现技术。

  随着ESB解决方案的发展和成熟,它所需要的功能也在不断地发展。同样,可见的ESB产品的可用性和功能也日趋完善。因此,在本系列的最后一篇文章中,我将考虑SOA和ESB的发展路线,以指导ESB功能和技术的最初应用,并且阐述如何选择循序渐进的方法。

  ESB在SOA内的工作角色

  虽然我不打算深入讨论SOA的定义,但是在这里概括一下大部分对SOA的描述所适用的原则是很有用的:

  1.利用显式的与实现无关的接口来定义服务。

  2.利用强调位置透明性和可互操作性的通信协议。

  3.封装可重用业务功能的服务的定义。

  图 1说明了这些原则。注意,虽然Web服务技术非常符合这些原则,但它并不是唯一符合这些原则的技术。

  SOA的原则

  图 1: SOA 的原则

  为了实现SOA,应用程序和基础架构都必须支持SOA原则。启用SOA应用程序涉及到创建服务接口,服务接口可以直接也可以间接地通过使用适配器用于现有的或新的功能。从最基本的级别来看,启用该基础架构涉及到规划功能来将服务请求路由和传递给正确的服务提供者。然而,基础架构支持在不影响服务的客户端的情况下由另一个服务实现替代原有的服务实现也是至关重要的。这不仅需要根据SOA原则指定服务接口,而且需要基础架构允许客户端代码以独立于所涉及的服务位置和通信协议的方式来调用服务。这样的服务路由和替代是ESB的许多功能中的一部分。

  ESB支持这些服务交互功能,并提供集成的通信、消息传递以及事件基础架构来支持这些功能。因此,它将当今正在使用的主要企业集成模式组合成一个实体。ESB为SOA提供与企业需要保持一致的基础架构,从而提供合适的服务级别和可管理性、以及异构环境中的操作。

  本文剩余部分将讨论ESB在SOA中的角色,包括它提供的除了基本的路由和传输以外的功能,如下面的ESB功能模型部分中所述。

  ESB结构

  ESB有时被描述为分布式基础架构,这与其他的解决方案形成了对比,比如消息代理技术一般被描述为中心辐射型(hub-and-spoke)。然而,这并不是真正的差别。正在研究两个不同的问题:控制的集中和基础架构的分布。ESB和中心辐射型(hub-and-spoke)解决方案都集中控制配置,比如服务交互的路由、服务命名等等。同样,这两个解决方案可能部署在简单的集中式基础架构中,也可能采用更复杂的分布式方式进行部署。图 2展示了这一点。

  毫无疑问,不同的技术对它们所支持的物理部署模式有不同的约束——有些可能适合于非常广泛的分布,以支持在很大的地理范围内进行的集成,而其他的可能更适合于部署在本地群集中,以支持高可用性和可伸缩性。使物理分布需求与候选技术的功能相匹配是 ESB 设计的一个重要方面。另外的一种能力也是非常重要的,就是以增量方式扩展最初的部署来反映不断变化的需求、集成附加的系统或扩展基础架构的物理范围。

  分布式


  图 2: 分布式

  ESB基础架构的集中控制 我还应该定位在SOA基础架构中ESB与其他组件之间的关系,特别是与 Service Directory、Business Service Choreography、以及 Business-to-Business (B2B) Gateway 这些组件之间的关系。由于上述SOA原则对这些组件并没有严格的要求,所以我们可以将它们视为可选组件图 3展示的SOA说明了这些组件之间的关系。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

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

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

  • 揭秘New Relic APM技术细节

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

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

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

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

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