IBM Business Process Manager V8.0 中的 ARIS 模型的 BPM 生命周期,第 2 部分: 将新导入的流程版本与一个可执行的版本合并

这个由两部分组成的文章系列主要介绍一种基于标准、跨工具和跨供应商的业务流程管理生命周期的实用方法,该生命周期实现了 IBM® Business Process Manager 套件中 ARIS 事件驱动的流程链模型,这些模型是在它自己的存储库中创建的。第 1 部分介绍了通过标准 BPMN2.0 导入以及以 ARIS XML 格式将流程模型从 ARIS 导入 IBM Process Designer 的两种方式。第 2 部分介绍将如何将新导入的 ARIS 模型版本与 Process Designer 中已扩展和执行的流程合并在一起。

Matthias Diester, IT 专家, IBM

Mathhias Diester 的照片Matthias Diester 是德国 IBM Software Services for WebSphere 的 IT 专家。他主要负责软件开发,尤其是与 WebSphere Application Server 相关的开发。Matthias 于 2006 年从德国 Stuttgart University of Cooperative Education 毕业后加入 IBM。



2012 年 8 月 06 日

简介

导入和执行在外部工具(比如 ARIS)中创建的流程模型的能力对利用您的遗留流程模型(这些模型已有多年记录)至关重要,您可以使用 IBM Business Process Manager (IBM BPM) 优化和自动化它们。ARIS(具体来讲是 ARIS Business Architect)是一个流行的建模工具,它使用事件驱动的流程链 (EPC) 来记录业务流程。以一种高效的方式处理从外部流程存储库导入的变更的能力,这是非常重要的一个方面。与在开发下一个版本时扩展 IBM BPM Repository 中的流程相反,从外部存储库导入需要您将当前版本与新导入的版本合并。这通常被称为 “往返 (round-tripping)”。可采用不同的方法实现往返:

  • 双向往返:这使您能够将源(业务)存储库和 IT 存储库中的版本合并。这是最灵活的,但也是最复杂的往返实现。将第 7 版中的 IBM WebSphere Business Modeler 和 WebSphere Integration Developer 集成在一起就是该实现的一个示例。
  • 向后往返:这允许对比 IT 存储库中的更改,在业务端提交或拒绝这些更改。一个典型的示例是 ARIS 和 webMethods 之间的往返方法。这提供了决定哪些 IT 更改可接受和哪些不能接受的能力,但不幸的是,这会为业务用户带来 IT 的复杂性。另一个问题是如何处理在业务端被拒绝的、由 IT 发起的更改。
  • 向前往返:这是 Merge 实用程序选择使用的方法,本文将对此进行介绍。合并在 IT 端执行,这是向业务用户隐藏不必要的复杂性和在正确的位置,从而制定特定于实现的决策的最原生的方法。借助 IBM BPM Process Designer 的快照功能,合并方法可按如下所示的顺序重试。结果是仅需对已合并的流程模型中的 delta 执行极少的手动更改即可。除了简单性以及业务和 IT 关注点分离之外,一个重要的优势是,符合以下原则的 BPM 方法一致性:所有流程设计更改都从业务端开始,IT 仅提供与实现相关的扩展。

您可在任何流程模型上应用 Merge 实用程序:导入为标准的 BPMN 2.0 模型(从支持该规范的任何工具),或者借助与 BlueworksLive 同步的 Import 框架(已在本系列的第 1 部分中介绍过)。本系列的第 2 部分将介绍如何合并通过 Import 框架导入的剩余机票流程的第二个版本(参阅 第 1 部分)。


导入下一个 ARIS EPC 版本

这一节将使用本系列 第 1 部分 中已准备好执行的剩余机票流程,演示包含已在 ARIS 中改进的流程版本的合并后的方法。

扩展以前的 EPC 版本并从 ARIS 导出它

当执行剩余机票流程时,您可能发现存在以下不一致性,即使客户已通过服务中心直接取消了机票,支付操作仍会在传递 “24 hours before departure” 事件后触发,如图 1 所示。

图 1. 在取消后执行支付的流程版本 1 日志
在取消后执行支付的流程版本 1 日志

要更正此错误,需要在任务 “Query and verify status” 后插入一项检查,在机票取消时跳过支付。这一更改是通过在 ARIS 中添加 XOR 结构来实现的(参见图 2)。

检查 “Query and verify status” 的结果,如果机票未在起飞前 24 小时取消,则会执行支付。否则,该流程会结束。然后将 EPC 导出为 ARIS XML 文件 standby2.xml,存储在本地文件系统中(参阅 第 1 部分,了解有关的更多细节)。

图 2. ARIS 中更改的流程
ARIS 中更改的流程

将 ARIS XML 导入 IBM Process Designer 中

通过 Import 框架将 ARIS XML 文件导入 第 1 部分 中介绍的流程应用程序 “Standby Ticket 2”(简称 “STBY02”)后,该流程现在包含 IBM Process Designer 中的片段,如图 3 所示。

图 3. 包含对取消的 XOR 检查的流程版本 2 片段
包含对取消的 XOR 检查的流程版本 2 片段

运行 Merge 实用程序

现在,从 URL http://localhost:9080/portal(这里使用的本地版本是 IBM BPM V8.0)下的 Process Portal 中调用 Merge 实用程序,如图 4 所示。

图 4. 从 Process Portal 调用 Merge 实用程序
从 Process Portal 调用 Merge 实用程序

图 5 和图 6 中的屏幕显示,仅选中了已导入的流程应用程序:

  • 使用 “Standby Ticket 2” 作为来源。
  • 使用现有的流程应用程序 “Standby Ticket 1” 作为目标。

这里使用了词汇 “来源” 和 “目标”,因为 “来源” 流程将合并到 “目标”(现有的)流程中。

图 5. Merge 实用程序屏幕 1
Merge 实用程序屏幕 1
图 6. Merge 实用程序屏幕 2
Merge 实用程序屏幕 2

图 7 显式了两个流程图层次结构,以及合并操作的建议操作:

  • 在第一节中,可对比两个流程模型表示。
  • 第二节包含与创建、更新和删除流程模型元素相关的建议操作。
  • 第三节提供了选项和控件。两个重要的选项是:
    • 创建将被覆盖的目标流程模型的快照,进而在执行合并后还原到此快照的能力。
    • 选择是否可视地重组图表的选项。
图 7. Merge 实用程序建议操作
Merge 实用程序建议操作

在第一次运行中,您可以选择默认建议,结果是一些通道细节会被特意覆盖(参见图 7 中的 Update task 部分)。为了避免重新执行流程版本 1 中的通道细节中的更新,流程状态可还原到本系列 第 1 部分 中创建的 V1.0 快照。然后再次调用 Merge 实用程序,这次清除 Update Task 部分中的 4 个选项,取消选择 “Reorganize diagram” 选项。

扩展流程模型和运行

结果是图 8 所示的以下流程图,其中包含其他配置的决策规则。

图 8. 合并后的最终流程,包含决策规则
合并后的最终流程,包含决策规则

运行回放后,您可在图 9 中所示的流程日志中看到预期的行为。该日志显示,在起飞前 24 小时取消了机票后,跳过了 Payment 任务。

图 9. 流程日志显示取消后未支付
流程日志显示取消后未支付

请注意,惟一需要做的手动更改是为增加的图表元素设置描述规则。其他所有实现细节都已从版本 1 中已实现的流程中获取。因此,在准备执行版本 2 中的流程期间不会发生实现工作重复的情况。


Merge 实用程序实现概述

下一节将简要解释 Merge 实用程序的架构和组件,以及在处理期间使用的一些基本方法。Merge 实用程序封装为一个 Process Application。它包含一个名为 “Merge Utility Main Service” 的 Human Service、一系列用于内部过程的 Business Objects 和服务端 JavaScript 源代码,这些代码在一个 Server File 定义中被引用。Merge Utility Main Service 是开始合并两个流程应用程序的主要起点。一些 Coach 和 Server Script 组件形成了这个主要服务,它可在逻辑上划分为 3 段:数据输入和验证、对比,以及实际合并的执行。

在第 1 步中,一个数据收集组件分析所选的流程应用程序,以识别通道、流对象和它们的交互。Merge 实用程序使用内部 API 创建构成业务对象的 3 个结构,它们表示流程应用程序的某些部分。这些结构会在整个合并流程中使用。

这 3 种结构的对比是在组件 “compare projects” 中完成的。这些组件使用服务器端 JavaScript 函数对比变量声明、使用的参与者以及通道和它们的流对象中的区别。然后,可以使用另一个称为 “dependency check” 的组件解决可能的依赖关系,比如一个创建序列。

除了完成应该执行哪些操作的用户选择之外,一个称为 “perform merge” 的组件还可以运行活动列表中的活动,更改目标流程应用程序的内部结构。您可以使用一个可选的组件来重新排列服务图表,因为更改可能导致不想要的线条交叉。

每个组件对 Process Server 实例结合使用标准服务器端 JavaScript 和 Java 方法调用。所有内部任务存储在独立的函数中,始终可在服务实现的开始处找到。尽可能使用特定于类型的编译器提示(例如 /*: TWObject*String :*/)来标记这些函数的参数,帮助实现进一步的调整或更改。作为一般规则,Java 对象的特定于类型的编译器提示通常指向实际实现,而不是指向抽象的定义或接口。这么做的主要目的是为了使用特定于实现的功能,这些功能并不总是可在超类或接口中使用。

要使用 Merge 实用程序,您必须下载 Merge 实用程序流程应用程序导出 (TWX) 文件,该文件已在本文的 下载 部分中提供。您可以使用 IBM Process Designer 轻松地将此 TWX 文件导入 Process Server 实例中。在 Process Designer 中的 Process Center 视图中,可以在右上角找到一个 “Import Process App” 按钮。要在 Process Portal 中使用 Merge 实用程序,请检查是否在项目页面上向合适的用户显示了 “Merge Utility Main Service”。您将在右侧的服务定义的 “Overview” 选项卡上找到这些设置。如果您在 Process Designer 或 Process Portal 中启动此服务,则会启动 Merge 实用程序。它使用默认浏览器来指导您执行合并流程。因为 Merge 实用程序利用了与 Process Designer 相同的功能来编辑目标流程应用程序,所以相关用户是否具有执行这些更改所需的权限至关重要。


结束语

本文介绍了 Merge 实用程序如何在 BPM 生命周期中的流程建模、优化和执行期间显著提高您的生产力。对于 ARIS 业务用户,这种向前往返方法实现了业务和 IT 部门间的关注点分离,避免了以前版本执行的 IT 调整的重复,还通过利用 IBM Business Process Manager 和其他工具提供了灵活性、方法一致性和高效率。


下载

描述名字大小
Merge 实用程序Merge_Utility.zip613KB
测试工件(TWX 文件)ARIS_TestAssets_part2.zip839KB

参考资料

学习

获得产品和技术

讨论

条评论

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=829413
ArticleTitle=IBM Business Process Manager V8.0 中的 ARIS 模型的 BPM 生命周期,第 2 部分: 将新导入的流程版本与一个可执行的版本合并
publish-date=08062012