使用 IBM WebSphere Lombardi Edition 建模业务流程,第 1 部分: 概述与架构

在本系列文章中,您将学习如何通过 WebSphere Lombardi Edition V7.1,使用一个示例购买订单场景建模端到端业务流程。第 1 部分将概述 Lombardi 的功能和架构。

Xi Ning Wang, 顾问软件工程师和开发主管, IBM

/developerworks/i/p-xningwang.jpgXi Ning Wang 是 IBM Software Groups,IBM SOA Advanced Technologies 的云基础设施的资深软件工程师和开发主管。他在很多重要的项目中设计并开发了 SOA 技术和解决方案。现在,他专注于云计算和行业解决方案。他 2009 年被指定为 IBM developerWorks 丛书作者。



Lei (Joyce) He, 高级软件工程师, IBM

Lei He 的照片Lei (Joyce) 是 IBM Software Group 中 Business Performance and Service Optimization 团队的一名资深技术领导。多年来,他领导完成了大量创新性的产品开发项目和客户项目,比如 Rational Asset Manager、GMCC 等。



Liu Yu, 软件工程师, IBM

Liu Yu 曾是 IBM Software Group 中的 Business Performance and Service Optimization 团队的一名实习生。



2012 年 3 月 08 日

概述

WebSphere Lombardi Edition Version 7.1(以下简称 Lombardi)提供了一个灵活的平台来快速实现和改进您的业务流程应用程序。Lombardi V7.1 是一款完善的 BPM 产品,为公司提供了持续改进其端到端业务流程的能力。借助 Lombardi,团队可构建、管理和优化安排人机协作和系统交互的流程应用程序。

本文将概述 Lombardi 产品及其架构。本系列中的后续文章将介绍基本和高级的流程建模、Coach、监视和报告,以及模拟和优化。我们将使用一个购买订单流程作为整个系列中的场景。


概念

业务流程是一个活动集合,旨在生成针对某个特定目标的具体输出,它同时涉及到人类和系统交互。业务流程高度关注工作在组织内的执行方式,这与产品的关注点不同。流程是在不同时间和地点发生的工作活动的一种特定顺序,具有开始、结束以及明确定义的输入和输出:一种操作结构。

业务流程建模符号 (Business Process Modeling Notation, BPMN) 是一种绘制业务流程的图表标准。它是一种业务用户能够理解的格式,因为它就像一个流程图,用户无需太多培训即可掌握如何使用它,此外,参与流程的任何 IT 人员都能够理解它。BPMN 的目标是支持由技术用户和业务用户进行业务流程管理 (BPM),它提供了一种对业务用户而言非常直观,但仍然能够表示复杂的流程语义的符号。Lombardi V7.1 是第一批支持 BPMN 的 BPM 平台之一。

Lombardi V7.1 兼容所有重要的 BPM 相关标准,它的设计工具提供了一个遵从 BPMN 的流程建模环境。


架构

Lombardi 是基于 Eclipse 的开发工具,基于 Web 的用户门户和仪表板以及一个通用运行时平台的集成集合。这些技术提供了设计、模拟、规则定义、流程执行和交互、监视和优化功能。Lombardi 中的主要透视图支持从设计到模拟、部署、监视和优化的所有活动,这些透视图共用一个名为 Shared Model 的通用存储库,如图 1 所示。

图 1. Shared Model
Shared Model

Lombardi 包含以下组件,如图 2 所示,图 2 演示了一种典型的 Lombardi 配置。对于不同的开发和部署阶段,可在多个暂存、测试和生产环境中安装 Process Server 和 Performance Data Warehouse,这些环境由 Process Center 集中控制。

  • Process Center

    Process Center 为在 Process Center Console 及 Lombardi Authoring Environment 中的其他界面上工作的多位流程作者提供了一个中央开发环境和存储库。它包含一个 Process Center Server 和一个 Performance Data Warehouse,支持您构建和运行流程应用程序,以及在开发期间针对测试和回放用途而存储性能数据。

  • Process Server

    Process Server 执行在 Lombardi Authoring Environment 中构建、存储在 Process Center 存储库中、然后安装在一个运行时环境中的流程和服务。

  • Performance Data Warehouse

    Performance Data Warehouse 依据在 Lombardi Authoring Environment 中建立的跟踪需求来收集和聚合流程数据。

图 2. Lombardi 组件
Lombardi 组件

以下组件构成了流程建模和管理界面:

  • Authoring Environment

    Lombardi Authoring Environment 包含多个界面,支持流程作者建模、实现、模拟和检查业务流程。Authoring Environment 用户可创建流程应用程序中的流程模型、服务和其他资产。

  • Process Center Console

    从 Process Center Console,您可以创建流程应用程序和工具包,授予其他用户访问它们的权限。Process Center Console 可帮助您管理和维护 Lombardi 存储库,包括管理流程应用程序、工作区和快照。它还支持在运行时环境中的 Process Server 上安装流程应用程序。

  • Process Admin Console

    Process Admin Console 所提供的界面支持管理员在任何已配置的运行时环境(比如暂存、测试或生产环境)中配置和维护 Process Server。它还支持管理员配置和维护 Process Center Server。

  • Performance Admin Console

    Performance Admin Console 提供的界面支持管理员在任何已配置的运行时环境(比如暂存、测试或生产环境)中配置和维护 Lombardi Performance Data Warehouse。它还支持管理员配置和维护 Process Center 中包含的 Performance Data Warehouse。

  • Process Portal

    Process Portal 提供的界面支持流程参与者执行所分配的任务,查看任务历史,以及查看其流程和团队的绩效。使用 Process Portal,流程参与者可连接到任何已配置的运行时环境(比如暂存、测试或生产环境)中的 Process Center Server 或 Process Server。


使用 Authoring Environment 建模流程

Lombardi 为流程开发提供了一个基于 Eclipse 的平台。要开始使用 Authoring Environment 执行业务流程建模,可执行以下步骤:

  1. 选择 Start => IBM WebSphere Lombardi Edition 7 => Start Servers 启动服务器。要打开 Authoring Environment,请选择 Start => IBM WebSphere Lombardi Edition 7 => Lombardi Authoring Environment。默认登录用户帐户和密码均为 tw_admin
  2. 第一次启动 Authoring Environment 时,它会打开到 Process Center Console,这使您能够创建和管理流程应用程序,在测试和生产服务器上安装快照,并执行其他任务。

    单击 Process Apps 选项卡,然后选择 Create New Process App,如图 3 所示。

    一个流程应用程序的缩写必须是惟一的,并且不得超过 7 个字符。Lombardi 使用该缩写作为流程应用程序和它所包含的库项的标识符。例如,当使用 Lombardi JavaScript API 操作流程应用程序中的项时,您可以使用该缩写指定这些项的命名空间。

  3. Create New Process App 对话框中,输入您的流程应用程序的一个名称(例如 Purchase Order Process)和一个缩写(例如 POPROC)。您也可以提供一段可选地描述。可以在 Process Center Console 中查看该描述,只需单击流程应用程序名称旁边的问号即可。
    图 3. 在 Authoring Environment 中创建新流程应用程序
    创建新流程应用程序

本系列的第 2 部分将详细介绍如何在 Authoring Environment 中建模业务流程。

创建业务流程定义 (BPD)

当在 Authoring Environment 中建模流程时,您首先会创建一个业务流程定义 (BPD),如图 4 所示。BPD 是一个流程的一种可重用模型,定义该流程模型的所有运行时实例的通用部分。

图 4. 业务流程定义
业务流程定义

构建 Human 服务

当您希望 BPD 中的一个步骤创建可供流程参与者在基于 Web 的用户界面中执行的交互式任务时,可以构建一个 Human 服务,如图 5 所示。当构建 Human 服务时,您会包含一些 Coach,它们是基于 Web 的表单,用于向用户提供流程相关数据和收集来自这些用户的输入。Coach 使您能够轻松添加标准的字段和控件,比如单选按钮、下拉菜单等。

您在 Lombardi 中构建的 Ajax 服务会陆续绑定到 Coach 控件,以执行一些功能,比如自动填充下拉列表和在输入字段中启用提前键入功能。可以使用一个 Ajax 服务来从一个连接的数据源(比如数据库)动态拉取数据。

图 5. 创建 Human 服务
创建 Human 服务

构建 Integration 服务

当您希望集成一个外部系统来完成任务时,可以构建一个 Integration 服务,如图 6 所示。例如,您可以构建这样一个 Integration 服务,它调用一个 Web 服务来执行某种业务逻辑。Integration 服务是惟一可包含 Web 服务集成和 Java™ 集成组件的服务。

当您希望编排其他后台服务,操作变量数据,为 Coach 生成 HTML,或者执行其他不需要任何集成或业务规则的操作时,可以使用 General System 服务。General System 服务可以直接从一个 BPD 或 Human 服务调用。General System 服务只能包含基本的服务组件(比如脚本),不能包含 Coach 或集成组件(Web 服务集成或 Java 集成)。General System 服务可嵌套在任何其他类型的服务中。

可通过外部活动来创建包含由 Lombardi 外部的系统处理的活动的 BPD。例如,您可以使用 Lombardi Web API 构建一个自定义应用程序来在 BPD 中执行一个活动或步骤。

Undercover Agent (UCA) 通过一个事件启动,这个事件既可能通过一条消息触发,也可能按照特定的时间表执行。当一个 UCA 启动时,它调用一个 Lombardi 服务来响应该事件。当您在 BPD 中包含一个消息事件时,您必须将一个 UCA 附加到该事件来调用指定的服务。例如,当从外部系统收到一个消息事件时,需要一个 UCA 调用恰当的服务来响应该消息。

您可以创建并发布一个 Web 服务来使外部应用程序能够发起一个特定的 Lombardi 服务或一组服务。使用 SOAP 集成,外部应用程序也可以调用 Web 服务。

图 6. 创建 Integration 服务
创建 Integration 服务

构建 Rule 服务

当您想要一个条件来确定调用何种实现时,可以使用 Rule 服务,如图 7 中所示。例如,当某个条件计算结果为真时,Lombardi 实现您提供的一个 JavaScript 表达式。Rule 服务不能直接包含 Java 或 Web 服务集成。您可以从任何其他类型的服务调用 Rule 服务,Rule 服务也可以调用其他嵌套的服务。

关键绩效指标 (KPI) 是 Lombardi 在流程运行时跟踪的度量指标,您可以使用它们存储的结果在 Optimizer 中分析流程和任务性能。

服务水平协议 (SLA) 可基于标准和自定义 KPI 而创建。SLA 可帮助您为一个或多个触发某种后果的活动建立一个条件。当运行您的流程实例时,只在关联的活动启动或完成时才会触发 SLA 后果。

图 7. 创建 Rule 服务
创建 Rule 服务

管理外部文件

Lombardi 支持向流程应用程序添加外部文件,包括图像、样式表、JAR 文件等。所有这些项目资产都包含在 Process Center 存储库中。当向您的流程应用程序添加这些文件,确保在您的项目已准备好可以进行测试或生产时,所有需要的资产都已可用并且已经安装好。


通过工具包实现重用

工具包是一个由库项组成的集合,这些项可跨 Lombardi Authoring Environment 中的多个流程应用程序使用。Lombardi 支持流程开发人员通过工具包在流程应用程序内和跨流程应用程序重用现有工件。例如,如果您知道一些已有的服务包含其他开发人员所需的 Coach 和其他库项,您可以通过在一个工具包中包含这些项来访问和重用它们。然后,从您的流程应用程序,您可以添加对库项所在的工具包的一个依赖关系。这使您在选择一个活动的实现时,可挑选一个现有的服务。工具包中的各项也可供在不同流程应用程序中工作的其他开发人员使用。

Authoring Environment 用户可创建工具包的依赖关系,以便重用其中的项目。在更新工具包项后,现有的依赖关系会显示有更新可用。

多个工具包中的库项可在其他工具包以及流程应用程序之间共享。

创建工具包

要创建工具包,请执行以下操作:

  1. 单击 Toolkits 选项卡,然后单击 Create New Toolkit,如图 8 所示。
    图 8. 创建新工具包
    创建新工具包
  2. Create New Toolkit 对话框中,输入您工具包的名称和缩写。
  3. 要在工具包中创建库项或执行其他编辑,可以单击 Open in Designer

System Data 工具包

在 Lombardi 安装期间,会将 System Data 工具包导入 Process Center 存储库。您创建的每个流程应用程序和工具包都会自动包含一个 System Data 工具包依赖关系,以便您可以访问所有 Lombardi 项目所需的资产,比如标准变量类型、标准报告图表等。您无法编辑或更改 System Data 工具包中的库项,但可以打开该工具包并查看其中的项。


场景概述

在本系列中,我们将使用一个典型的购买订单流程业务场景,演示如何使用 Lombardi V7.1 来建模和运行业务流程。如图 9 所示,购买订单流程由来自购买部门的购买者依据实际库存和消耗情况而发起。当购买者输入订单时,该流程就会触发。当该流程启动时,系统会向负责确认订单的提供商发送一则通知。

图 9. 购买订单流程
购买订单流程

提供商可通过一个基于 Web 的用户界面来响应订单,如下所示:

  • 提供商可直接接受订单,而不进行任何更改。在此情形下,购买者无需重新确认订单。
  • 提供商可接受订单,并通过填写一个 “Order Change” 来更改商品的数量和单价。在此情形下,购买者需要在生成此订单前重新确认它。
  • 提供商可由于价格问题或商品脱销而拒绝订单。在此情况下,订单会是无效的,而系统会向购买者发送相关通知。

在接受订单的情形下,如果提供商提高了商品单价,系统需要通知购买者重新确认更新的订单。这次确认会带来以下结果之一:

  • 如果购买者接受更新的订单,系统会自动生成最终的购买订单。
  • 如果购买者不接受更新的订单,系统会将相关通知发送给提供商,购买订单流程停止。

否则,购买者不需要确认订单,系统会自动生成正式的购买订单。

生成订单子流程

正式购买订单的生成是一个嵌入到主要购买订单流程中的一个子流程,如图 10 所示。从上述购买订单流程收到最终的购买订单后,该子流程发起以下任务:

  1. 计算订单商品的最终总价格。
  2. 为订单选择一家送货商。
  3. 安排送货时间。
  4. 向购买者和提供商发送通知。
图 10. 生成订单子流程
生成订单子流程

定义业务数据类型

可以使用变量来采集在一个流程中的不同步骤间传递的业务数据。当在 Lombardi 中开发业务流程定义时,您应该在设计阶段花时间创建 BPD 的数据模型。

在我们的 Purchase Order 场景中,定义了一个重要的数据类型 Order 来描述购买订单。变量类型 Order 包含两个参数:orderHead(基数为 1)和 orderDetail(它是一个 List)。OrderHeadOrderDetail 变量类型和参数如表 1 和表 2 所示。

表 1. 变量类型:OrderHead
参数名称变量类型描述是否列表
orderId String 当前购买订单头部编号 False
orderName String 当前购买订单的名称 False
buyer String 当前购买订单的购买者 False
orderDate Date 当前购买订单的开始日期 False
supplierName String 当前购买订单的提供商名称 False
supplierContact String 当前购买订单的提供商联系信息 False
orderCloseDate Date 当前购买订单的完成日期 False
status String 购买订单的状态,例如 Accepted by supplier、Rejected by supplier 等。 False
表 2. 变量类型:OrderDetail
参数名称变量类型描述是否列表
orderItemId String 每个购买订单细节的编码 False
orderId String 当前购买订单头部的编号 False
shipDate Date 发货日期 False
productNumber String 产品编号 False
quantity Decimal 产品数量 False
unitPrice Decimal 产品单价 False
updatedQuantity Decimal 更新的产品数量 False
updatedUnitPrice Decimal 更新的产品单价 False

结束语

本文简单概述了 WebSphere Lombardi V7.1,包括它的架构、组件和功能。在第 2 部分中,您将学习如何通过 Lombardi 使用一个购买订单场景来为流程建模。

参考资料

学习

获得产品和技术

讨论

条评论

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, SOA and web services
ArticleID=801003
ArticleTitle=使用 IBM WebSphere Lombardi Edition 建模业务流程,第 1 部分: 概述与架构
publish-date=03082012