本文采用了一个简单的预构建贷款处理场景,并介绍了业务变量和业务空间在贷款处理复合业务服务中的应用。您将了解到如何在 WebSphere Business Services Fabric(此后简称为 Fabric)中,为预构建的贷款处理复合业务服务创建业务变量和业务空间。
业务变量指数据值的占位符。它根据布尔、整数、文本或枚举值等数据创建。业务变量在设计时被分配给一个策略或策略断言。业务用户可以使用业务空间在运行时修改业务变量的值。在完成治理过程后,新的值将立即由策略在运行时使用。
由 WebSphere 驱动的业务空间是一个基于 Web 2.0 的 mashup 环境,可以提供丰富的用户接口,包括许多预置的模板,您可以对之进行自定义并使用它们管理业务流程。在业务空间中,业务用户可以在无需 IT 协助的情况下轻松修改策略属性。有关业务空间的更多信息,请参考 通过 WebSphere 业务空间助力业务用户。
业务空间和业务变量联合在一起可以为用户提供在运行时灵活管理流程的能力。
要完成本文介绍的步骤,您必须安装以下软件:
- WebSphere Integration Developer V6.2(此后称为 Integration Developer)和运行时
- WebSphere Business Services Fabric Toolkit 6.2 和运行时
- IFix JR31440
- IFix JR31376
您应当对如何使用 WebSphere Business Services Fabric 构建复合业务服务有良好的理解。要了解更多有关构建复合业务应用程序的信息,请参考 developerWorks 系列文章 使用 WebSphere Business Services Fabric 创建灵活的面向服务的业务解决方案。
本文使用一个预构建的 Fabric 贷款提供业务流程,它执行以下任务:
- 贷款支付检验
- 贷款提供
图 1 展示了此业务流程的工作流。
图 1. 贷款提供业务流程的流程图
表 1. 样例场景中的断言
| 断言名 | 数据类型 | 变化点 |
| LoanAmountAssertion | 整数 | 1) 贷款数额 > $50K 为高风险贷款支付 2) 贷款数额 < $50K 为低风险贷款支付 3) 贷款数额 < $25K 为基本贷款提供 4) $50K > 贷款数额 > $25K 为普通贷款提供 5) 贷款数额 > $50K 为特殊贷款提供 |
| RiskRatingAssertion | 字符串 | 级别(高,低) |
| LoanTypeAssertion | 字符串枚举 | 贷款类型(基本,普通,特殊) |
从变化点一列中可以看到,贷款支付服务出现两个变化。根据贷款额度的不同,将选择并调用相应的服务。对于贷款额度大于 $50K 的贷款,将调用高风险服务;对于任何低于 $50K 的贷款,将调用低风险服务。
贷款提供服务有三种版本。根据贷款额度的不同,将选择并调用相应的服务。对于贷款额度小于 $25K 的贷款,将调用基本贷款提供服务;对于大于 $25K 但小于 $50K 的贷款额度,将调用普通贷款提供服务。对于大于 $50K 的贷款,将调用特殊贷款提供服务。
表 2 展示了这个场景中使用的策略。
表 2. 样例场景中使用的策略
| 策略名称 | 策略表达式 | 约束 |
| LowRiskPolicy | LoanAmount < $50K | 风险级别 = 低 |
| HighRiskPolicy | LoanAmount > $50K | 风险级别 = 高 |
| BasicLoanPolicy | LoanAmount < $25K | 贷款类型 = 基本 |
| RegularLoanPolicy | LoanAmount > $25K and <50K | 贷款类型 = 普通 |
| PremiumLoanPolicy | LoanAmount > $50K | 贷款类型 = 特殊 |
在预构建解决方案中,策略对贷款额度使用固定的值。贷款额度是策略的一项关键条件。企业可能会由于不同的原因而修改贷款额度,比如竞争、法规遵从性等等。如果贷款额度发生变化,那么将必须对策略进行更新。在本文中,您将了解如何使用业务变量和业务空间来避免对策略中的值进行硬编码。
完成本节中的步骤来使用预构建的 Fabric 解决方案。
- 从 下载 小节下载项目交换 zip 文件和 Fabric 内容归档 zip 文件。
- 使用一个新的工作空间启动 Integration Developer。将贷款项目交换文件导入到工作空间。
- 启动 Fabric 服务器。
- 将 LoanProvision and LoanRealization 应用程序发布到 Fabric 服务器。
- 提取 Fabric 内容归档 zip 文件。
- 将浏览器指向以下位置:
http://<hostname>:<webappport>/fabric/login.jsp,使用管理员 ID 和密码进行登录。 - 选择 Governance Manager => Import/Export。
- 按照以下顺序,从 Fabric 内容归档文件的 \setup 文件夹导入 FCA 文件。
- OrganizationsUsersandRoles-owl.zip
- FabricGovernance-owl.zip
- ITSFinanceOnt-owl.zip
- ITSFinanceCBA-owl.zip
- 选择 Governance Manager => Manage Teams > ITSFinanceTeam。
- 从可用用户列表选择 Admin 用户,并将其移动到所选用户列表,然后单击 Save。
- 在 Integration Developer 中创建一个名为
ITSLoan的新 Fabric 项目。 - 在存储库中同步新的 Fabric 项目和 ITSFinanceCBA 业务服务项目。
为了在贷款提供业务服务中实现更好的灵活性,我们将创建三个业务变量并将它们关联到策略。
贷款额度 $50K 在 LowRiskPolicy 和
HighRiskPolicy 中被用作固定值,以确定要调用哪一个贷款支付服务。我们将创建一个名为 Credit risk
limit 的业务变量来保存 $50K 的固定值,并在 LowRiskPolicy 和 HighRiskPolicy 中使用 Credit Risk
Limit 业务变量替换硬编码的贷款额度值。
贷款额度 $25K 在 BasicLoanPolicy
和 RegularLoanPolicy 中被用作固定值,用来确定要调用哪一种贷款提供服务。我们将创建一个名为 Basic Loan
Provider Limit 的贷款变量来持有 $25K 这个固定值,并在 BasicLoanPolicy 和 RegularLoanPolicy 中使用 Basic Loan Provider Limit 业务变量替换硬编码的 $25K 贷款额度。
贷款额度 $50K 在 PremiumLoanPolicy 中被用作固定值,用于确定要调用哪一个贷款提供服务。我们将创建一个名为 Premium Loan Provider
Limit 的业务变量来持有 $50K 这个固定值,并在 PremiumLoanPolicy 中使用 Premium Loan
Provider Limit 业务变量替换硬编码的 $50K 贷款额度。
表 3 展示了我们将创建的业务变量以及相关联的策略。
表 3. 业务变量以及相关联的策略
| 业务变量名 | 数据类型 | 相关联的策略 |
| 贷款风险限制 | 整数 | LowRiskPolicy, HighRiskPolicy |
| 基本贷款提供限制 | 整数 | BasicLoanPolicy,RegularLoanPolicy |
| 特殊贷款提供设置 | 整数 | PremiumLoanPolicy |
创建 Basic Loan Provider Limit 业务变量
- 在 Integration Developer 工作空间中,切换到 Business Service 透视图。
- 在 Business Services Explorer 中,右键单击 Business Variable,然后选择 New => Business Variable。
- 在如图 2 所示的 Business Variable 对话框中,完成以下操作:
- 选择 ITSLoan 作为项目。
- 指定
Basic Loan Provider Limit作为名称。 - 选择 ITSFinanceINS 作为名称空间。
- 选择 Loan Provider 作为类别。
- 指定
Basic Loan Provider Limit作为字段名。 - 选择 Integer 作为字段类型。
- 单击 Next。
图 2. 创建业务变量 - 步骤 1
- 在如图 3 所示的 Create a Business Variable 对话框中,执行以下操作:
- 指定
0作为最小值。 - 指定
1000000作为最大值。 - 指定
25000作为当前值。 - 为 Permissions 选择 User can edit this variable。
- 单击 Finish。
图 3. 创建业务变量 - 步骤 2
注意:在本例中,最大和最小值决定了数据类型为Integer的业务变量的值范围。 - 指定
- 使用如下值再创建两个业务变量:
- Project:ITSLoan
- Namespace:ITSFinanceINS
- Field Type:Integer
名称 字段名 类别 最小值 最大值 当前值 权限 贷款风险限制 贷款风险限制 贷款风险 0 1000000 50000 用户可以编辑此变量 特殊贷款提供的基本限制 特殊贷款提供的基本限制 贷款提供 0 1000000 50000 用户可以编辑此变量
- 保存所有业务变量。
现在,您需要将业务变量分配给策略,这样策略便可以在运行时使用业务变量值。为此,完成以下步骤:
- 选择 Basic Loan Policy。
- 单击 Policy Expression 选项卡。
- 在 Expression 部分中右键单击 LoanAmount <= 25000 并选择 Edit。
- 将显示 Property Condition 对话框,如图 4 所示。单击 Edit Content。
图 4. 分配一个业务变量 - 步骤 1
- 单击 LoanAmount 字段旁边的按钮,然后单击 OK,如图 5 所示。
图 5. 分配一个业务变量 - 步骤 2
- 在 Business variable
Selection 对话框中选择,然后单击 OK,如图 6 所示。
图 6. 分配一个业务变量 - 步骤 3
- 在接下来的两个对话框中单击 OK。策略表达式窗口应当如图 7 所示。
图 7. 分配完业务变量后的基本贷款策略编辑器
- 保存策略。
- 将策略变量
Basic Loan Provider Limit和Premium Loan Provider Base Limit分配给 RegularLoanPolicy,如图 8 所示。
图 8. 分配完业务变量后的普通贷款策略编辑器
- 将业务变量
Premium Loan Provider Base Limit分配给 PremiumLoanPolicy,如图 9 所示。
图 9. 分配完业务变量后的特殊贷款策略编辑器
- 将业务变量
Credit Risk Limit分配给 LowRiskPolicy,如图 10 所示。
图 10. 分配完业务变量后的低风险策略编辑器
- 将业务变量
Credit Risk Limit分配给 HighRiskPolicy,如图 11 所示。
图 11. 分配完业务变量后的高风险策略编辑器
- 当分配完业务变量后,保存所有策略并将更改从 ITSLoan 项目提交到来自 Repository Changes explorer 的服务器。
- 最后,模拟策略并对所有策略进行测试,看看它们是否按预期工作。
- 从 Repository Changes explorer 更新项目 ITSLoan。
我们将使用 Fabric Unit Test Environment (UTE) 服务器测试我们的应用程序。要测试业务服务,完成如下步骤:
- 在 Integration Developer 中,切换到 Business Integration 透视图。
- 打开 LoanProvision 模块的结构图。
- 右键单击 LoanProcessInjector。
- 指定如下值:
- CustomerID:100
- CustomerAddress:任意字符串
- LoanAmount:50000
- 单击 Continue
- 选择 IBM WebSphere Business Services Fabric Server,并输入管理员名称和密码(在本例中为 admin/admin)。
- 您将看到一个流程工作流序列。业务服务应当被成功执行并返回一个贷款回复,如图 13 所示。
图 13. 测试结果
- 我们提供了一个 LoanAmount 为 50000 的贷款。根据这个策略条件,Dynamic Assembler 调用了低风险贷款支付终端和特殊贷款提供终端。您还可以检查服务器日志,通过查看日志语句确认哪些终端被调用。
业务更改在竞争激烈的业务环境中会频繁发生。这些变更是由各种因素驱动的,比如业务扩张、合并、竞争压力、成本缩减、策略变更等等。在我们的示例场景中,假设组织决定修改根据贷款额度确定贷款风险和贷款提供的条件。新的条件如表 4 所示。
表 4. 新条件
| 策略 | 业务变量值 | 新条件 |
| LowRiskPolicy | 贷款风险限制 = 45000 | Loanamount <= 45000 |
| HighRiskPolicy | 贷款风险限制 = 45000 | Loanamount > 45000 |
| BasicLoanPolicy | 基本贷款提供限制 = 20000 | Loanamount < 20000 |
| RegularLoanPolicy | 基本贷款提供限制 =
20000 和 特殊贷款提供基本限制 = 55000 | Loanamount > 20000 且 Loanamount < 55000 |
| PremiumLoanPolicy | 特殊贷款提供基本限制 = 55000 | Loanamount > 55000 |
如果解决方案的实现没有涉及业务变量和业务空间,那么业务用户需要用 Fabric composition studio 修改策略中的贷款额度值。这是更加困难的一个过程,并且可能需要 IT 支持。
然而,我们使用业务变量和业务空间构建的解决方案简化了这种更改。业务用户可以登录到业务空间并轻松地修改业务变量的值,无需 IT 介入。当完成贷款批准流程后,Fabric 引擎将立刻使用新的值选择并调用终端。
注意:为了保持简单性,我们使用了一个单个用户提交、批准和发布变更。在生产环境中,用户可能是不同的。
在下一小节中,我们将介绍应用新条件的必需步骤。
在本节中,我们将配置业务空间以修改业务变量的值。我们稍后将使用业务空间页面来编辑业务变量。
- 将浏览器指向
http://<hostname>:<webappport>/BusinessSpace/login.jsp。 - 使用管理员 ID 和密码登录(在本例中为 admin/admin)。
- 单击 Create New Business Space 图标。
- 在 Create New Business Space 对话框中,指定
My Business Space作为名称,选择 From a template 并选择 Business Process Agility,然后单击 OK,如图 12 所示。选择 Business Process Agility 将自动列出 Fabric composition studio 中创建的所有业务变量。
图 12. 创建新业务空间
- 将浏览器指向
http://<hostname>:<webappport>/BusinessSpace/login.jsp。 - 使用管理员 ID 和密码登录(在本例中为 admin/admin)。
- 选择 My Business Space。
- 单击 Business Variable Configuration 选项卡。
- 选择 Basic Loan Provider Limit 并单击右侧的 Edit。
- 为新的变更集指定名称和描述,如图 14 所示,然后单击 OK。
图 14. 创建基本贷款提供变更集
- 单击 Basic Loan Provider Limit 的值。
- 将 Basic Loan Provider Limit 修改为 20000,如图 15 所示,然后单击 Save。
图 15. 基本贷款提供编辑页面
- 单击 Governance 选项卡并选择 Basic loan Provider change set。
- 单击 Submit 并为变更提供一个描述和注释,如图 16 所示。
图 16. 基本贷款提供变更集
- 单击 Approve 并提供注释。
- 单击 Publish 并提供注释。
- 重复步骤 1 到 12,将业务变量 Premium Loan Provider Base Limit 的值修改为 55000。
- 重复步骤 1 到 12,将业务变量 Credit Risk Limit 的值修改为 45000。
- 在 Integration Developer 中,切换到 Business Integration 透视图。
- 打开 LoanProvision 模块的结构图。
- 右键单击 LoanProcessInjector。
- 指定以下值:
- CustomerID:100
- CustomerAddress:任意字符串
- LoanAmount:50000
- 单击 Continue。
- 选择 IBM WebSphere Business Service Fabric Server,并输入管理员名称和密码(在本例中为 admin/admin)。
- 您将看到流程工作流的序列。业务服务应当被成功执行并返回一个贷款回复,如图 17 所示。
图 17. 测试结果
- 我们将贷款额度设置为 50000,但是,根据新的条件,Dynamic Assembler 这一次调用的是高风险贷款支付终端和普通贷款提供终端。您还可以检查服务器日志,通过查看日志语句确定哪些终端被调用。
在本文中,您了解了如何在一个复合业务服务中使用由 WebSphere 驱动的 WebSphere Business Services Fabric 业务变量和业务空间轻松应付业务变化。您学习了如何创建业务变量并将它们分配给策略。您还了解了如何创建业务空间页面,为业务用户编辑业务变量。
| 描述 | 名字 | 大小 | 下载方法 |
|---|---|---|---|
| 包含业务集成模块的项目 | ITSFinance.zip | 110KB | HTTP |
| Fabric 内容归档 | FCA.zip | 28KB | HTTP |
-
通过 WebSphere 业务空间助力业务用户:获得有关 WebSphere Dynamic process edition 中的业务空间的技术内容。
-
IBM WebSphere Business Services Fabric V6.1 入门:这份 IBM Redbook 提供了有关 Fabric 的全面概述,包括架构介绍、安装指导以及一个分步场景,描述如何建模、装配、部署和管理复合业务应用程序。
-
WebSphere Business Services Fabric 产品信息:获得产品信息,包括特性和先决条件。
-
WebSphere Business Process Management Version 6.2 信息中心:获得有关 WebSphere BPM 产品的完整产品文档。

Vignesh Velusamyravindran 是 IBM 印度软件实验室的软件架构师。他与 IBM 业务合作伙伴合作使用 WebSphere 产品组合设计和开发 SOA 应用程序。他是 IBM Redbook WebSphere Business Process Management V6.1.2 Production Topologies 的合著者。