技术开发 频道

探索企业服务总线:了解 ESB 如何帮助您满足 SOA 解决方案的需求

    应用程序逻辑与集成逻辑的比较

    请注意,有几个 SOA Foundation 部分通过 ESB 互连,即交互、流程、信息、合作伙伴、业务应用程序和访问服务。这些部分已分组到单个标签为应用程序服务 的类别中,该类别定位在 ESB 外面。分组为应用程序服务的 Foundation 部分用于实现不同形式的服务请求者和服务提供者。这是解决方案中的应用程序或业务逻辑,旨在实现特定于领域的业务目标。ESB 实现解决方案中的连接或集成逻辑。此逻辑执行服务虚拟化和面向方面的连接,旨在实现应用程序服务之间随需应变的互连。

    在理想的面向服务的解决方案中,应用程序和业务逻辑与连接和集成逻辑之间的分离是“彻底的”,意味着服务请求者和服务提供者(应用程序服务)不包含连接或集成逻辑,并且 ESB 不包含应用程序或业务逻辑。只有通过架构这种彻底的分离,企业才能实现从 SOA 中寻求的灵活性、敏捷性和重用。

    有时很难在应用程序和业务逻辑与连接和集成逻辑之间进行区分。不存在严格的指导原则,事实上,具体的选择可能取决于企业的性质甚至是企业中的特定情况。一个通常有效的指导原则是利用语义和语法之间的区别。应用程序和业务逻辑创建、读取、更新或删除与实现业务目标相关联的语义。相反,连接和集成逻辑仅修改与实现必要的互连相关联的语法。一个相关的指导原则是利用交互特征。应用程序和业务逻辑是主动的,因为此逻辑创建或使用服务交互中使用的消息(请求和响应);连接和集成逻辑是被动的,因此此逻辑只是对业务逻辑生成的消息做出反应,并且只是将消息从一个参与者移动到另一个参与者。

    应用程序/业务逻辑与连接/集成逻辑

    某银行可能有一个必须使用 Web 服务调用来检查信用记录的新应用程序。该银行希望使用两个信用报告服务之一作为两个业务合作伙伴的任何一个的 Web 服务,其中任何一个服务都无法确切匹配该银行的信用记录数据模型。该银行希望使用第一个业务合作伙伴的服务,除非该服务不可用。新的应用程序确定何时调用信用记录服务,并使用该银行的数据模型来调用该服务。此示例中的应用程序/业务逻辑由该新应用程序加上两个信用报告服务组成。此示例中的连接和集成逻辑由必需的处理组成,以将信用记录模型转换为适合于所调用的信用记录服务和故障转移的模型,以便在第一个服务失败时调用第二个业务合作伙伴;此逻辑作为中介嵌入在 ESB 中。
 
 
    管理服务

    请注意,面向服务的解决方案的一些重要功能(尤其是作为任何面向服务的解决方案组成部分的管理服务)也定位在 ESB 之外。这是因为诸如安全性和 IT 管理等功能具有解决方案级别的范围,并且需要解决方案的组成部分之间进行超出 ESB 范围的协调和合作。

    请注意,ESB 并不提供应用程序服务和管理服务之间的连接,并且可以在没有 ESB 参与的情况下保护和管理解决方案。ESB 在保护和管理解决方案方面发挥显式的主动作用是可能的,并且经常是可取的。在此情况下,安全和管理策略由 ESB 之外的策略管理点设定,并且适合于将 ESB 视为此类策略的策略执行点。因此,虽然策略是使用与 ESB 没有直接关系的管理和安全服务来设定的,但是 ESB 帮助执行该策略。结果,管理服务的特征就是松散耦合 到 ESB。

    服务注册中心

    服务注册中心(有时称为服务存储库或服务注册中心/存储库)包含并管理元数据,这些元数据描述面向服务的解决方案中的服务。元数据的示例包括接口描述、端点地址和涵盖服务级别协议、安全关系等的策略。注册中心包含的服务元数据(因此也包括注册中心本身)在面向服务的解决方案中具有非常广的范围,并跨越治理、开发和管理以及运行时。图 2 特别说明了注册中心在面向服务的解决方案中的重要性质;图中将注册中心描绘为一个操作系统,此操作系统跨越从集成到治理的垂直层堆栈。

    图 1 和图 4 表明 ESB 需要服务元数据以执行服务虚拟化和面向方面的连接。ESB 可以仅使用开发期间提供的静态元数据来提供价值。然而,要实现完全自动的服务虚拟化和面向方面的连接,ESB 需要在运行时访问服务注册中心,以获得必要的服务元数据来控制解决方案的动态行为。因此,我们断言服务注册中心是配置和控制 ESB 行为的首选方法;可以说服务注册中心是控制 ESB 行为的策略的策略管理点,并且 ESB 是服务注册中心中与连接相关的策略的策略执行点。因此,我们可以认为服务注册中心的特点是与 ESB 紧密耦合。

    服务注册中心的使用示例

    某银行可能有一个必须使用 Web 服务调用来检查信用记录的新应用程序。该银行希望使用当前业务合作伙伴作为 Web 服务提供的信贷审批服务,但是希望在必须使用另一个业务合作伙伴提供的服务时最大限度减少任何中断。在最简单的情况下,到任何潜在业务合作伙伴的接口是同一个接口,该银行使用一个 ESB 中介,此中介从注册中心查询端点地址以便在交互中使用。
 
    开发服务

    图 4 中的开发服务提供了可用于开发和管理 ESB 的工具。开发人员希望使用工具来开发在 ESB 中运行的连接和集成逻辑,或者中介。类似地,管理员可以在部署后使用工具来管理 ESB。理想情况下,此类工具使用服务注册中心。例如,开发工具可能允许中介开发人员使用注册中心查找某个交互所需要的服务提供者。此外,管理工具可能允许添加、删除或修改旨在影响解决方案动态行为的服务元数据。

    ESB 内部结构一瞥

    图 5 显示了 ESB 内部结构的初步详细信息。您可以看到 ESB 如何提供服务虚拟化和面向方面的连接。


图 5. ESB 内部结构

0
相关文章