【IT168 技术文章】
ESB 是称为 SOA 的更大模式中的一种基本体系结构模式。您通过阅读本文了解了 ESB 如何帮助从 SOA 获得业务价值,以及 ESB 如何成为成功的 SOA 采用的重要入口点——ESB 模式是如此重要,以致于 IBM 目前在 SOA Foundation 组合中推出了三个实现该模式的战略产品。
引言
IBM 对 ESB 的立场是——并且一贯是——认为 ESB 作为 SOA 中的一种体系结构模式发挥了根本性的作用。ESB 是实现成功 SOA 采用的重要入口点,并且是任何面向服务的解决方案的关键成功因素。事实上,作为对 SOA 中的 ESB 承诺的一部分,IBM 提供了实现 ESB 模式的三个战略产品。
本文介绍以下主题:
设计良好和实现良好的 ESB 能够为面向服务的解决方案提供的价值
一些在设计和实现 ESB 时要遵循的非常好的实践
IBM 对作为 SOA 组成部分 ESB 的承诺
与 SOA 相关的 ESB
IBM SOA Foundation 白皮书描述了 IBM 交付 SOA 价值的整体方法。SOA Foundation 的参考体系结构(图 1 显示了逻辑模型视图)的核心中具有 ESB。该参考体系结构的描述声明“ESB 的存在是简化服务调用任务的基础”。虽然该白皮书是在 2005 年末发布的,但是其中预述的论点却随着时间推移而通过我们在采用 SOA 的客户方面的经验得到加强。
通过 ESB 实现的松散耦合的部分优点(包括本系列的第 1 部分详细描述的服务虚拟化和面向方面的连接中所固有的优点)如下:
请求程序和提供程序不必就消息格式、消息传输甚至目标地址达成一致。
请求消息可由多个提供程序中的任何一个进行处理,请求程序不必显式地确定提供程序。这种路由可以基于相应的版本、服务质量或其他度量。
现有的请求程序无需更改即可连接到新的提供程序。
现有的提供程序无需更改即可对新的请求程序公开。
可以对请求程序做出更改而不影响提供程序,或者对提供程序做出更改而不影响请求程序。
解决方案的横切方面,例如安全性和管理等等,可由 ESB 进行添加、执行或加强。
可以实现新级别的动态行为,因为 ESB 能够为请求程序和提供程序之间的每个交互实时执行策略。
作为 SOA 入口点的 ESB
一次性全面采用 SOA 可能是一项艰巨的任务。IBM 已确定了五个 SOA 入口点,这些入口点提供了有关如何开始渐进地采用 SOA 的指导。渐进的采用方法允许企业以最适合需要的方式和步调采用 SOA。为什么我们要确定五个入口点?简单的原因在于众口难调;企业的在成熟度级别和特定需求方面各不相同,适合于一家企业的入口点可能不适合于另一家企业。这五个入口点基于已导致我们的客户成功实现了 SOA 的方法。存在两种类别的入口点:
以业务为中心的入口点——人员、信息和流程——允许您从一种侧重于基本企业资产的方法开始。
以 IT 为中心的入口点——连接性和重用——允许您为 SOA 奠定技术基础。
您也许已经从SOA Foundation 白皮书中预料到,连接性 意味着使用 ESB 来“通过更加安全、可靠和可伸缩的方法简化 IT 环境,从而在企业内外进行连接”。IBM 认为,虽然 ESB 无疑是一种以 IT 为中心的 SOA 方法,但是“它本身交付了实际业务价值,并且是将来的 SOA 计划的核心构件”。本文中的一个关键问题(将在下面进行讨论)是如何最好地使用 ESB 来形成将来的 SOA 计划的构件,以及如何通过连接性入口点获得最大的业务价值。
存在多种利用连接性入口点的方法。有时客户已经在其环境中定义了一些服务(也许是通过合作伙伴),不过是直接连接的服务;这种情况导致缺乏灵活性并增加管理成本。如上所述,在此类环境中插入 ESB 可以提供直接的松散耦合优点。此外,ESB 的存在为将来定义附加服务、创造附加重用机会、支持新的重用渠道、降低管理成本和获得更多敏捷性的工作创造了条件。
客户通常知道 ESB 的价值并渴望开始从 ESB 中实现好处,但是他们还没有在其环境中定义服务。我们看到了两种已采用过的成功技术,这两种技术帮助在这种情况下从 ESB 获得好处。客户经常混合使用重用和连接性入口点。他们确定需要作为服务来连接的功能或应用程序(请求程序或提供程序)。同时,他们将 ESB 插入该体系结构,以提供新的服务请求程序和提供程序之间所需的松散耦合。混合方法得以流行的一个重要因素是 ESB 产品的转换和变换功能。此类功能允许使用同一个 ESB 产品作为某种形式的适配器,以便以更加可重用的形式公开功能或应用程序,并提供所需的服务虚拟化和面向方面的连接。这里成功的关键是谨慎地开始,公开少量的服务并开发对应的中介,但是这些服务和中介都在为考虑中的整个最终范围而设计的体系结构之内。
有些客户插入 ESB 以建立组织中连接的所需方向,尽管起初还没有确定要连接的服务。在此情况下,ESB 是组织的总体参考体系结构的一部分;参考体系结构 提供了体系结构方向,并强制要求最终将作为解决方案一部分而创建的所有服务(请求程序和提供程序)进行松散耦合连接。ESB 是用于实现该松散耦合的首选机制。采用 ESB 实际上消除了解决方案中的直接连接不知不觉地增长的可能性。这里成功的关键是:
采用一个要求并演示 ESB 使用的参考体系结构。
考虑解决方案的整个最终范围,并支持非常好的的 ESB 产品选择。
随着解决方案的发展而实施强有力的治理,以确保利用 ESB 来连接到引入解决方案的新服务(请求程序和提供程序)。