使用WebSphere Business Services Fabric创建面向服务的灵活业务解决方案(2)2010-01-03 IBM Naveen Balani引言本系列的第2部分描述我们将在WebSphere Process Server V6.1中构建和部署以便与WebSphere Business Services Fabric(以下称为 Fabric)交互的应用程序的需求。此应用程序模拟一个汽车贷款 获取系统,该系统接受用户信息,并使用贷款请求的批准或拒绝结果做出响应。您将了解如何构建本体 扩展以捕获业务流程中的可变点并支持动态绑定,在动态绑定中,服务端点是在服务调用时动态发现的 。Fabric消除了对硬编码的静态服务绑定的需要,并提供了后期服务绑定以支持更加泛化的流程模型 。使用Fabric,您可以定义抽象业务流程,并在控制运行时行为并将流程与更改隔离的业务策略中捕获 流程可变点。Fabric 使得动态更改业务流程的行为以便有效地响应不断变化的业务需求成为可能。先决条件为了完成本文中的步骤,您需要以下内容:安装了以下功能的 Rational® Software Architect V7:可扩展性功能(除可重用资产规范 (Reusable Asset Specification) 以外的所有功能)WSDL 和 XSD 建模与转换IBM® Business Services Fabric 建模工具Fabric 业务术语表和 Fabric 本体概要(在 Fabric V6.1 Tool Pack 的建模文件夹中可用)Fabric Core Stubs(在 Fabric V6.1 Tool Pack 的建模文件夹中可用)关于用例在本系列的后续部分中,您将开发一个模拟汽车贷款获取流程的组合业务应用程序。当用户提交贷款 请求时,该系统将处理请求,并执行以下任务:信用验证许可证验证贷款供应表 1 描述了该用例的主要元素:表 1. 汽车贷款获取系统用例元素
用例元素 | 描述 |
汽车贷款获取系统 | 处理用户的贷款请求 |
用例描述 | 用户提交贷款请求以购买汽车。 |
主要参与者 | 任何用户 |
基本流 | 信用验证和许可证验证成功,批准利率不定的贷款。 |
替代流 | 信用验证或许可证验证失败。拒绝贷款请求。 |
实现汽车贷款流程图 1 显示了该汽车贷款获取系统的流。图 1. 汽车贷款获取系统流程图

如图 1 所示,该汽车贷款流程需要与各个第三方服务提供者集成,例如 LicenseVerificationService 和 LoanProviderService。第三方服务提供者将它们的功能作为 Web 服 务公开。在实现汽车贷款获取流程时,您通常会在业务流程中使用各种 if...else 条件,如图 1 所示,并对 服务绑定进行硬编码,从而使您的流程变得僵化,不太容易适应变化。研究图 1 中的汽车贷款获取业务 流程可以看到,流程中涉及到各个可变点:取决于当天的时间,需要调用不同的端点(CreditCheckService DayEP 或 CreditCheckServiceNightEP)来提供信用验证服务。取决于客户的位置(加利福尼亚或德克萨斯),需要调用不同的端点(LicenseVerificationCAEP 或 LicenseVerificationNonCAEP)来提供许可证验证服务。取决于客户类型(金牌或银牌客户),需要调用不同的端点(LoanProviderGoldEP 或 LoanProviderSilverEP)以不同的响应时间向客户提供贷款。随着服务和流程可变点的数量开始增加,使用上述方法管理业务流程将变得非常繁琐并降低了灵活性 。要将更改整合到流程中,开发人员需要更新和重新部署业务流程。例如,假设该汽车贷款业务流程现 在要求您为新的客户类别提供服务,比方说白金客户,并且为白金客户提供服务的响应时间应该快于现 有的金牌和银牌客户。要整合此更改,业务流程中需要另一个 if...else 构造来调用特定的端点,比方 说 LoanProviderPlatinumEP,以满足该需求,从而需要更改业务流程并对其进行重新部署。如果没有准 备恰当的治理流程,将很难确定此更改如何影响业务流程。