使用 IBM BPM Advanced Integration Service 开发分布式 WS-AT 事务,第 3 部分: 定义业务流程

本文章系列介绍了如何利用 IBM Business Process Manager V8.0.1 Advanced 中的 Advanced Integration Services (AIS) 功能实现一个分布式 WS-AT 场景,该场景涉及两个不同的数据库(Microsoft® SQL Server 和 IBM® DB2®),它们安装在两个不同的机器上,可通过两个 Web 服务对它们进行访问:一个使用 .NET 实现,另一个使用 JEE 实现。该实现演示了一些自动回滚功能,这些功能由 AIS 中基于 SCA 的管理与 WS-AT 协议协同提供。在第 3 部分中,您将学习如何使用 Process Designer 的 BPMN 概念来设计和实现该业务流程。

Carlo Randone, 认证 IT 架构师 , IBM

Carlo Randone 是位于意大利的 IBM 全球企业咨询服务部的一名 IBM 认证 IT 架构师和 Open Group Master 认证 IT 架构师。Carlo 拥有在异构环境和操作系统上使用不同开发平台和中间件的丰富知识。作为一位经过认证的培训师和软件开发人员,他曾为一家 Microsoft® 认证的合作伙伴工作多年。

自 2000 年加入 IBM 以来,Carlo 的主要工作兴趣涉及 SOA 和 BPM、与它们相关的软件工程方法和支持平台,以及企业架构规划和设计。他喜欢收集与 IT 的历史发展相关的文档和硬件零部件,而且为了支持这一爱好,他成为了 Charles Babbage Institute 的一员。



Marco Antonioni, 认证 IT 架构师, IBM

Marco Antonioni 是位于意大利的 IBM 全球企业咨询服务部的一位经过认证的 IT 架构师和 Open Group Master 认证的 IT 架构师。Marco 拥有各种 WebSphere 平台(WebSphere Application Server、WebSphere Process Server、IBM Business Process Manager、IBM Operational Decision Manager、IBM Business Monitor、WebSphere Service Registry and Repository 和 WebSphere Message Broker)方面的深厚知识。自 2000 年加入 IBM 以来,他担任的主要职位是 IBM WebSphere 软件服务部的 BPM 解决方案架构师。



2014 年 1 月 06 日

简介

在第 3 部分中,我们将使用 KWSBPM - Process1 业务流程定义 (BPD) 定义一个名为 KWSBPM 的流程应用程序。完整的流程应用程序 KBPM.twx 可从本系列的 第 1 部分 中下载。

本文中提出的解决方案的高级部分是一个在 IBM BPM Process Designer 中使用业务流程建模概念 (BPMN) 建模的业务流程。图 1 显示了 Process Designer 中绘制的 KWSBPM – Process1 流程。

图 1. Process Designer 中的 BPMN 业务流程
Process Designer 中的 BPMN 业务流程

点击查看大图

图 1. Process Designer 中的 BPMN 业务流程

Process Designer 中的 BPMN 业务流程

KWSBPM – Process1 流程中的活动如下所示:

  • Input Data 活动:使用人工服务 KWSBPM - Input Data HS 被实现为一个用户任务。
  • Make Transaction 活动:使用 AIS TxWSAIS 将其实现为一个系统任务。
  • 错误中间事件 My Error Event,被附加到 Make Transaction 活动:捕获 Make Transaction AIS 错误,可推动执行流前进到 Show Error 活动(使用一个相关的人工活动和演示 Coach)。
  • Show Results 活动:使用 KWSBPM – Show Results HS 人工服务将其实现为一个用户任务。
  • Show Error 活动:使用 Show Error 人工服务将其实现为一个用户任务。
  • Another Transaction 网关:支持循环执行另一个事务(基于一个 ExitCondition 标志,用户可在 Show Result 或 Show Error 活动中设置该标志)。

本文将详细介绍该流程和如何实现它。

流程变量

KWSBPM - Process1 BPD 定义了一组变量来管理事务的配置,以及值在流程中涉及的不同活动之间的传输,它们由 3 个人工服务和一个 AIS 实现。图 2 显示了在流程级别上定义的变量。

图 2. 业务流程变量
业务流程变量

表 1 给出了 第 1 部分 中可下载的示例中提供的业务流程变量的默认值。

表 1. 流程变量的默认值
变量默认值备注
Connection1Charge Data Source=localhost; Uid=sa; Initial Catalog=Bank1; Pwd=mypwd 机器 A 上的 .NET Web 服务用来连接 SQL Server Bank1 数据库的连接字符串。将 samypwd 更改为您的真实凭据。
Table1Charge dbo.Accounts 要扣费的帐户表(在 Bank1 上)
Account1Charge Karl 要扣费的帐户名称(在 Bank1 上)。
Amount 10 要转账的金额
Connection2Credit jdbc/bank2db2 与 Bank2 数据库的 JDBC 连接名称(由机器 B 上的 JAX-WS Web 服务用于连接到 DB2 Bank2 数据库)
Table2Credit ADMINISTRATOR.Accounts 要转入资金的帐户表(在 Bank2 上)
Account2Credit Donald 要转入资金的帐户名称(在 Bank2 上)
ExitCondition 用于管理执行另一个新事务的选项
OutputMessage 积极成果消息字符串
ErrorMessage 错误消息字符串

KWSBPM – Input Data HS 人工服务

Input Data 活动使用 KWSBPM – Input Data HS 人工服务实现。图 3 显示了 I/O 数据映射关系。

图 3. KWSBPM – Input Data HS 人工服务的数据映射关系
KWSBPM – Input Data HS 人工服务的数据映射关系

点击查看大图

图 3. KWSBPM – Input Data HS 人工服务的数据映射关系

KWSBPM – Input Data HS 人工服务的数据映射关系

图 4 显示了这个人工服务的图解。如图所示,只有一个 Coach,KWSBPM – Input Data HS – Coach1。

图 4. KWSBPM – Input Data HS 人工服务的图解
KWSBPM – Input Data HS 人工服务的图解

图 5 显示了为此人工服务定义和使用的变量。

图 5. KWSBPM – Input Data HS 人工服务的变量
KWSBPM – Input Data HS 人工服务的变量

图 6 演示了该 Coach 的布局。

图 6. KWSBPM – Input Data HS 人工服务中的 Coach
KWSBPM – Input Data HS 人工服务中的 Coach

这个人工服务和它的相关 Coach 的惟一用途是,获取执行事务所需的参数的必填值。这些参数的值被传递给事务 TxWSAIS AIS,下一节将对此进行介绍。

定义 TxWSAIS AIS 来支持 Make Transaction 活动

TxWSAIS 组件是我们的解决方案的核心部分。从 Process Designer 的角度讲,它只是另一个要调用的服务,由它的接口进行描述。图 7 显示了 Process Designer 中的 AIS 配置屏幕。

图 7. Process Designer 中的 AIS
Process Designer 中的 AIS

点击查看大图

图 7. Process Designer 中的 AIS

Process Designer 中的 AIS

我们可以看到,提供给 AIS 的参数与之前给出的流程变量具有明确的对应关系,而且定义了要执行的事务的必要配置,包括来源连接、表格和帐户,金额,以及目标连接、表格和帐户。这些参数的值在 Make Transaction 活动的 Data Mapping 属性中配置,如 图 8 中所示。

图 8. 事务活动的数据映射关系
事务活动的数据映射关系

点击查看大图

图 8. 事务活动的数据映射关系

事务活动的数据映射关系

发生错误时,附加到 Make Transaction 活动的错误中间事件会捕获异常。它被配置为接收 AIS 的 ErrorMessage 参数中包含的错误消息,如 图 9 中所示。

图 9. 错误事件的实现
错误事件的实现

我们可以看到,错误字符也被复制到流程变量 ErrorMessage 中。

KWSBPM – Show Results HS 人工服务

KWSBPM – Show Results HS 人工服务显示了 Make Transaction 活动所执行的事务的积极成果。图 10 显示了此人工服务实现的 Show Results 活动的数据映射关系。

图 10. KWSBPM – Show Results HS 人工服务的数据映射关系
KWSBPM – Show Results HS 人工服务的数据映射关系

点击查看大图

图 10. KWSBPM – Show Results HS 人工服务的数据映射关系

KWSBPM – Show Results HS 人工服务的数据映射关系

图 11 显示了 KWSBPM - Show Results HS 人工服务的变量。

图 11. KWSBPM – Show Results HS 人工服务的变量
KWSBPM – Show Results HS 人工服务的变量

图 12 显示了该人工服务的流程。

图 12. KWSBPM – Show Results HS 人工服务的图解
KWSBPM – Show Results HS 人工服务的图解

点击查看大图

图 12. KWSBPM – Show Results HS 人工服务的图解

KWSBPM – Show Results HS 人工服务的图解

此人工服务中只有一个 Coach,名为 KWSBPM – Show Results HS – Coach1,如 图 13 中所示。

图 13. KWSBPM – Show Results HS 人工服务中的 Coach
KWSBPM – Show Results HS 人工服务中的 Coach

Output Text 控件与输入变量相绑定,这两个按钮支持用户终止流程,或者使用新参数值重新启动一个新事务。

两段服务器脚本 EvaluateExitConditionToTrueEvaluateExitConditionToFalse 仅设计用来将 ExitCondition 二进制值设置为 true 或 false。

Show Error 人工服务

此人工服务显示了 Make Transaction 活动最终返回的错误条件,这是使用事务 AIS 实现的活动。图 14 显示了 Show Error 人工服务所实现的 Show Error 活动的数据映射关系。

图 14. Show Error 活动的数据映射关系
Show Error 活动的数据映射关系

点击查看大图

图 14. Show Error 活动的数据映射关系

Show Error 活动的数据映射关系

图 15 显示了 Show Error 人工服务的变量。

图 15. Show Error 人工服务的变量
Show Error 人工服务的变量

显示了 Show Error 人工服务的图解。

图 16. Show Error 人工服务的图解
Show Error 人工服务的图解

此人工服务包含一个 Show Error Coach,如 图 17 中所示。

图 17. Show Error 人工服务中的 Coach
Show Error 人工服务中的 Coach

txtErrorMessage 输出文本控件被绑定到 ErrorMessage 变量,作为输入传递给 Show Error 人工服务。


结束语

在本系列的第 3 部分中,我们介绍了如何在 IBM Business Process Manager Advanced 中,使用 IBM Process Designer 和 BPMN 概念来定义和实现业务流程。您学习了如何创建业务流程定义、人工服务和 Coach,以及如何定义流程变量来支持来自事务服务的结果的配置和管理。在第 4 部分中,您将学习如何基于调用两个事务 Web 服务的 ESB 中介模块,在 IBM Integration Designer 中实现事务 AIS。


致谢

感谢同事 Giuseppe Bottura 和 Simone Chiucchi 审阅本文,感谢同事 Stefano Angrisano、Matteo Franciolli 和 Daniele Rossi 对本文所做的贡献。还要感谢 Andrew J. Howes、Billy Lo、Frank I. Toth、Dave Screen、Callum Jackson、Konstantin Luttenberger 和 Oliver Rebmann 提供富有启发性的、引人深思的 developerWorks 文章。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=959410
ArticleTitle=使用 IBM BPM Advanced Integration Service 开发分布式 WS-AT 事务,第 3 部分: 定义业务流程
publish-date=01062014