级别: 初级 Michele Chilanti (chilanti@us.ibm.com), IT 咨询专家, IBM
2005 年 2 月 23 日 本文展示了 WebSphere Business Integration Modeler 和业务流程编排器(Business Process Choreographer)如何在传统意义上分离开的业务分析员和应用程序开发者之间建起了一座联系的桥梁。您将会了解这些工具的基本特性以及在 IT 的基础架构中,这些工具如何加快业务流程的实现。
引言
在当今的业务环境中,业务流程管理和应用程序集成是紧密相连的主题。业务流程在很少会仅仅涉及单一的组织单元或者单个公司。更多情况下,一个单独业务可能影响企业中的多个部门和组织,并且可能需要外部组织的参与,例如业务伙伴。信息技术能够实现自动化操作,并且能够明显提高许多业务流程的影响效力。从技术的角度分析,这种业务流程的实现很有可能包括一系列不同的平台,因而也需要集成不同技术和应用程序。
IBM® 最近制作出了一套可用的工具,其中覆盖了企业中自动化业务流程的定义、设计和实现的各个方面。特别是,WebSphere® Business Integration Modeler V5.1(以下称为 Modeler)和 WebSphere Studio Application Developer Integration Edition V5.1.1(以下称为 Application Developer)能够在复杂业务流程的各个实现阶段有效地协助进行业务分析、应用程序设计和应用程序实现。
本文展示了这两种产品的主要特性,并着重介绍业务流程编排器(以后都称为 Choreographer )工具,这种技术在 Application Developer V5.1.1 中是可用的。特别是,我们将通过描述在 Choreographer 中如何导入,改进和利用 Modeler 创建的业务流程模型来讨论 Modeler 和 Application Developer 之间的集成。
在 Application Developer 中布置 Modeler 和 Choreographer
一个业务流程的生命周期很长并且复杂。业务分析员负责创建流程的可用模型。业务流程模型是构成该流程的关键活动和决策点的抽象表示。业务分析员并不关心该流程的实现方面。他们更关心该流程在经济上和金融上的持久性。业务分析员在喜欢按照这些方面来描述流程的每一步:
- 何种资源是必需的,以及需要多大的量。
- 每一种活动需要多长时间来完成。
- 企业中由哪个组织或者角色负责执行。
最终的目标是确定流程的成本,并且优化该流程使其收益最大。对这种优化工作,仿真是很有用的方法。在一些情况下,业务分析员甚至可以精确地定义信息的结构和进入每个活动的导出。
一旦创建出最优的模型, IT 专业人员将通过编写构件负责其实现。应用程序设计者和程序员通过运算功能(服务)流和定义各种服务之间进行交换的数据结构来实现业务流程。
将业务模型定义从业务分析员转换到技术员通常是一个具有挑战性的任务。业务模型是 Modeler 和 Choreographer 工具开始工作的起点。Modeler 允许业务分析员设计业务流程的模型,并且可以探究业务相关的方面。Modeler 也可以执行仿真和计划任何改动带来的金融影响。使用 V5.1,Modeler 也能够使用业务流程执行语言(BPEL)来表示业务流程模型,这种语言描述了活动流以及使用基于 XML 的标准编码模式实现交换的数据。
应用程序部署器提供了业务集成透视图(Business Integration Perspective),它允许应用程序设计者和编程者基于 BPEL 标准来创建,部署和测试业务流程。
这两种产品迎合了两种不同的您。Modeler 主要面向业务分析员;Application Developer 主要面向技术员工。BPEL 就是这两种产品的结合,它减少了在这两种情况下一些关键转换的模糊点。
下图概括了每种产品的基本功能,以及用于与该领域中其他产品集成的可能性:
图 1. 布置 WebSphere Business Integration Modeler
业务分析员能够使用 Modeler 来设计和试验他们的业务流程模型。正如图中指出,业务分析员能够练习创建模型,或者导入现有的模型,这些模型通过软件架构使用标准建模语言(UML)构建。在实现阶段,能够使用 Application Developer 导出 BPEL 模型,在 Application Developer 中,所有的部署任务都能够得到执行,包括测试和调试。
比较典型的情况下,从 Modeler 导出的 BPEL 模型并不用于在 Application Developer 中进行直接部署和测试。一般情况下,编程员需要完成并且改进该模型的主要方面,这样便可以部署该模型。
在后续章节,我们将会提供有关 Application Developer 中 Modeler 和 Choreographer 主要功能的详细资料。
Modeler:概述
在版本 5 中,已经对 Modeler 进行重新创建来利用 Eclipse 技术。
这里有 3 个不同的 Modeler 版本:
- WebSphere Business Integration Modeler Entry Edition 支持业务流程模型的创建。
- WebSphere Business Integration Modeler Advanced Edition 增添了功能仿真,报告以及最重要的支持 UML 和 BPEL 的功能。
- WebSphere Business Integration Modeler Workgroup 增添了团队开发功能,例如版本控制。
本文中,我们将会着重介绍 WebSphere Business Integration Modeler Advanced Edition,Version 5.1的功能性。
安装
在 V5.1 中,Modeler 的安装流程已经大大简化,并且已经实现流水作业。正如我们前面所言,该产品是基于 Eclipse 框架的,例如 WebSphere Studio 产品家族。
这里有两种安装 Modeler 的基本方法:
- 您可以把它当作一个独立的产品来安装。
- 您可以把它当作 Application Developer 上的插件来安装。
业务分析员很有可能选择独立的安装路径,因为他们对编写构件不感兴趣。甚至于如果用独立的方式安装 Modeler,那么将业务流程模型移到 Application Developer 中是极其容易的。
如果您选择将 Modeler 作为插件安装在 Application Developer 上,那么这个转换功能将更加简单。在这种情况下, Application Developer 您就可以使用新的透视图(业务建模透视图)。
模式和您概要文件
取决于您如何使用 Modeler,您可以在三种不同的模式之间选择。为选择您期望的工作模式,单击工具栏菜单上的 Modeling => Modes :
图 2. 选择 Modeler 的模式
您将在以下中进行选择:
-
Operational mode。该模式是缺省模式,并且它能够提供对 Modeler 所有功能性的无限制性访问。该模式最适合那些业务分析员,因为想要创建和模拟他们的业务流程的非运算性方面。例如,如果您正在设计一个制造加工流程,您可能会喜欢对原料消耗或人工活动(例如产品包装)建模。在 Operational mode 中,不存在业务流程将会在运算平台上实现的假设。
-
Flow Definition Language (FDL) mode。这种选择是供那些想要在 WebSphere MQ Workflow 产品上部署流程的您选择的。
-
BPEL mode。如果您想要使用编排技术来实现业务流程,那么这种模式是最合适的。
当您选择 FDL 或者 BPEL 模式时,您将会丢失 Modeler 的某些功能。例如,那些可以与活动相关联的属性将会在 Modeler 的任务清单中被忽略或者被标记为 "not supported"。这些属性并不等同于 BPEL 或者 FDL。在本文的后面我们将会详细说明用 BPEL 模式工作的主要局限。
对 Modeler 的您来说,这里存在能够确定功能等级的另一个尺度。您可以在以下三种不同的您概要文件中选择:
图 3. 在 Modeler 中选择概要文件
- 当您选择 Basic 概要时,Modeler 将不会显示出各种业务流程元素的大部分详细属性。非常具有代表性的是,那些选择基本概要文件的您将会集中在流程流的宏观方面、活动的顺序以及关键的决策点上。这些您将不会对细粒度的详细信息感兴趣,例如活动之间交换的数据结构的定义。
- 当选择 Intermediate 概要时,更多的详细资料就可以由业务流程设计器实现自定义。特别的是,您将能够设计活动的输入数据和输出数据的结构。
-
Advanced 概要提供了 Modeler 所有方面的无限制的可见度。您将能够把高级的数据操作逻辑联结到活动的输入和输出,并且能够指定通知机制。
该概要文件提供了进入 Modeler 的不同入口点。他们也可以便利地实现流程的多次建模:您可以使用基本概要为自己的流程建模,并且可以进一步通过中级和 概要文件来改进它。
对业务流程建模:开始工作
在 Modeler V5.1中,业务流程模型组织在 Eclipse 工作区的项目中,当开始创建您的模型时,您有两个主要的选项:
- 您可以向自己的工作区中导入预先存在的模型。Modeler 提供了导入向导(单击 File => Import => WebSphere Business Integration Modeler Import)。
图 4. Modeler 的导入选项
这里面有很多导入选项。您可以选择:
- 使用 Modeler V5 导入已经存在的项目。
- 导入用于 WebSphere MQ Workflow (FDL 模型)的已经创建和部署的模型。
- 导入使用 Modeler 以前版本(V4.2.4)创建的模型,该模型并不是基于 Eclipse 平台。
- 导入来自 Microsoft® Visio 的模型。
- 从 flat 文件或者 XML 模式中导入数据定义,以便在您的业务流程中使用。
- 您可以通过选择 New => Project,然后选择 Business Modeling Project 来临时创建一个新的模型。将提示您输入项目名和项目中第一个业务流程(在必要时,一个项目能够包含多个流程)的名称:
图 5. 创建新的建模项目
如果您需要向现有的项目中添加流程,只需右键单击项目文件夹,然后选择 New =>Process:
图 6. 创建新的业务流程
创建业务流程模型
当您在业务建模透视图中打开一个业务流程时,就能够使用业务流程编辑器来设计自己流程的元素和流,正如下图所示:
图 7. 业务流程建模透视图
您可以将元素从选项板拖放到编辑器内,并将他们连接在逻辑流中。选中的元素可以使用屏幕底部的属性视图实现自定义功能。让我们着重研究选项板,并讨论那里提供的最重要的元素。下图概述了可用部分:
图 8. Modeler 的选项板
Local task 代表了需要在流程过程中执行的公共活动。业务流程中定义的 Local task 在业务流程外部是不可重用的。如果您想要使任务对多个流程可用,那么就应该首先创建一个 Service。右键单击该项目,然后选择 New => Service,如下图所示:
图 9. 选择一个服务作为建模元素
服务和局部任务在输入和输出数据、与之相关的资源等方面具有相同的属性。两者之间的唯一区别是他们的可见度。
除局部任务和服务之外,子流程也可以成为较大流程的一部分。选项板也包括了控制流所需要的基本编程结构,例如有条件执行的决策点和流程周期的循环。也可以使用 Fork 结构来对并行执行程序建模。并行的分支就可以通过使用 Join 或者 Merge 来实现同步。
正如选项板中的 Notification Broadcaster、Notification Receiver 和 Observer 元素所示,Modeler 也允许对业务流程中的同步通知和观察模式进行建模。
Timer 元素可以用来触发流程中时间敏感性的执行操作、模型终止和时间限定。流程中对数据转换进行建模这一步时,Map 结构会起作用。
分析您的业务流程
一旦您完成了自己的业务流程模型,就可以运行多种分析任务来验证流程的技术和金融持久性。
WebSphere Business Integration Modeler Advanced Edition 包含了一个强大的仿真引擎,它允许您在分析时执行复杂的任务。可以对该引擎进行配置,使用各种统计分配方式生成业务流程实例来输入数据和定时。那样您就会能够在仿真期间真实地跟踪流程的活动,并且能够在业务流程图上发现瓶颈。
Modeler 也允许您创建报告,该报告能够提供资源利用、定时以及业务流程和单个活动成本的统计分析。同样也可以具有比较不同版本间业务流程活动的能力,这样会更加容易验证和量化业务流程优化的作用。
WebSphere Studio Integration Edition:流程编排工具
一旦您确信自己已经获得了功能和金融上比较合理的流程模型,那么 IT 专业人员就能够在计算平台上实现它。流程编排器在该领域起到了重要的作用。
使用 WebSphere Business Integration Server Foundation 的 Version 5.1,您能够基于 BPEL 标准在 IBM J2EE™ 应用程序服务器上部署业务流程。从部署透视图中可以使用 Application Developer V5.1.1 来创建和定义 BPEL 模型所有必要的方面。
实际上,Choreographer 已经向 BPEL 语言中引入了许多重要的扩展。它支持很多概念,例如部署行业级业务流程时必不可少的人员交互(工作人员支持)。
Choreographer 主要的意图是提供基础架构用于协调逻辑流中大量的计算服务。业务流程的关键元素是 Invoke 活动,正如面向服务的体系结构(Services Oriented Architecture)所描述,它代表了一般服务的调用。
任何能够被 Web 服务描述语言文件包装的计算功能都能作为运行在 Choreographer 基础架构
上业务流程的一部分来调用。正因如此,被 Choreographer 使用的 BPEL 变体也称为 BPEL for Web Services(BPEL4WS)。
很明显,使用 Modeler(以及它们的局部任务或者服务)创建的业务流程模型和运行在 Choreographer (以及它们的调用活动)上的业务流程之间有紧密的相关性。
我们将要向您提供 Application Developer 中 Choreographer 环境的简要概述。然后,我们将要讨论如何将使用 Modeler 创建的模型导入到 Application Developer 中。
Application Developer 中的业务流程编排工具
Application Developer 包括了许多工具来协助完成业务流程的创建,部署,测试以及调试。
这里是所包含的工具的简要概述:
-
业务流程编辑器。该编辑器允许业务流程的图形组成。它从概念上类似于 Modeler 的业务流程图形编辑器。然而,编程方面(例如包含 Java™ 片断, 直接公开 WSDL 以及 XML 构件的能力)使得这种工具更加适于 IT 专业人员,而不是业务分析员。
-
业务流程部署向导。这些向导允许开发者为业务流程指定 绑定,并且允许为使得该流程能够正确地在运行时平台上运行而产生的所有支持性 Java 代码。这些绑定是对服务的实际端点的引用,这些服务为该流程所调用。除此之外,该流程本身将客户端应用程序公开为服务,因此在部署时需要指定端点信息。
-
WebSphere Business Integration Server Foundation 测试环境。这是运行时平台的实例。在没有对应用程序服务器外部安装公开的情况下,能够部署和运行业务流程。
-
业务流程调试器。图形调试器允许开发器在业务流程流中设置断点,以按步方式通过整个流,检查流程变量的内容,甚至练习调试任何被业务流程调用的 Java 代码。
创建 BPEL 模型
在 Application Developer 中,可以临时创建 BPEL 流程,或者可以从外部源导入。本文的后面部分我们将讨论如何从 Modeler 将其导入。
如果您想要创建新的 BPEL 流程,可按照以下的简易步骤:
- 通过选择 Window =>Open Perspective => Business Integration 切换到业务集成透视图。
图 10. 切换到业务集成透视图
- 通过选择 File => New => Service Project 创建新的服务项目。
- 在该项目内创建新的业务流程。右键单击该项目文件夹,然后选择 New => Business Process:
图 11. 创建新的业务流程
那么您将能够指定那个描述业务流程的 BPEL 文件的名称、包和位置,如下图所示:
图 12. 将文件名和包分配到业务流程中
单击 Next,然后您将会得到一个对话框,该对话框允许您选择业务流程的结构,如下图所示:
图 13. 选择业务流程的类型
Flow-based 流程允许活动的并行执行。通过明确地描绘出这些活动的连接,您可以确定执行的前后顺序。
Sequence-based 流程,它们的活动以预先确定的次序发生。
您也可以混合和匹配这两种类型:您可以在序列内拥有流,或者相反。您选择流程的类型后,请单击 Finish,然后打开业务流程编辑器。以图指明了业务流程部署环境的关键要素:
图 14. 业务集成透视图和 BPEL 编辑器
在该图右边,您可以看到业务流程编辑器的 canvas,可以拖拉这里面来自选项板的多个活动和其他元素,并将其与流程流连接。该 canvas 也显示了与业务流程相关的变量。这些变量存储了该流程的状态。
Partner Link 是一种特殊的 BPEL 架构,它实际上负责定义被业务流程调用的服务的引用。在部署期间,一个伙伴链接只包含一个定义了该服务的 WSDL 接口的引用。当部署该流程时,您将能够指定实际的端点,在该端点中可以访问服务。
Correlation sets 允许您定义关键信息,客户端可以使用这些信息与流程的特殊事件进行交互。例如,流程如何知道某个旅行预定的状态。因此,例如旅行者的姓氏以及旅行日期这样特定的信息就能够用来唯一确定旅行预定流程的正确实例。那些信息就代表了 correlation set。
palette 允许您选择和撤销所有支持的 BPEL4WS 元素。下图列出了这些元素的详细资料:
图 15. BPEL 编辑器选项板的元素
让我们回顾一下关键的元素。
Invoke 活动封装了服务的调用。Receive 活动允许向业务流程中提供输入。流程可以通过调用一个 Receive 活动来实现初始化。如果一些流程必须暂停来接收输入,那么他们也可以包括多个 Receive 活动。在恢复一个特定实例时,Correlation sets 就变得很重要。
流程可以通过 Reply 活动或者与合适的回调服务相连的调用活动来返回调用方。Pick 活动允许流程暂停并等待许多不同的接收事件。一个 Pick 活动等同于多个并行的 Receive 活动,其中第一个将会被处理。Staff 活动极其重要,并且代表了人员交互的网关。Staff 活动必须使用 queries 实现配置,它定义了哪些人负责声明和完成这些操作(潜在的所有者)。
举例来说,如果某步骤需要管理者的批准,那么就可以配置 Staff 活动来提取该用户的管理者。在运行时,当流程到达 Staff 时,系统将会自动为该用户(或者,在必要时有多个用户)询问 LDAP 目录,并且会自动生成工作项。
潜在的所有者将能够声明工作项,检查输入信息,通过特殊定制的用户接口提供一些附加的信息,从而完成该操作。操作完成后,该流程将会执行。
在前面的图中,您可以辨认出一些逻辑结构,这些结构可以使用有条件执行(Switch 活动)和周期(Loop)帮助构建此流。
Assign 活动实际上可以使您将一个变量的内容转移到另一个变量。Transform 活动使您在没有调用特殊的外部服务的情况下在流程中引入更多复杂的数据转换。
Java 代码片断可以用来执行那些对实际上不能被分配和转换活动处理的流程变量的各种操作。
当流程遇到异常条件或者自己本身不能处理时,也可以抛出错误。
如果开发器必须结束流程所有的活动分支,那么就调用 Terminate 活动。如果您必须在流程中提供取消功能,那么该活动将非常有用。
从持续时间的角度来看,有两种基本的业务流程类型:
-
非中断性流程,这是单线程类型,并且在单个事务中运行。这些流程不能包含任何能使他们暂停的活动。因此他们不支持人员交互活动。
-
可中断性流程,这是长期运行的类型,它可以被暂停和重新开始,并且支持人员的交互活动,例如工作人员支持。
可中断性流程可以更好地适用于流程的企业模型,例如保险索赔处理、申请借款批准等等。非中断性流程常用于与中断性流程的联合,或者作为中断性流程的一部分。
部署和测试业务流程
一旦您定义了业务流程的逻辑,您就可以进入部署阶段。在该步骤期间,您必须提供信息用于:
- 伙伴链接绑定。在部署期间,必须完全明确流程可能使用的实际服务的端点以及调用协议。
- 这些绑定用于业务流程本身。流程本身就变成了服务。您必须指定客户端如何调用它。
- Staff 插件的提供者。这里有多种不同类型的用户注册中心,这些注册中心可提取用户以产生工作项。此时必须选择用户注册中心配置。
要进入部署阶段,只需右键单击 BPEL 文件,然后选择 Enterprise Services => Generate Deploy Code... ,如下图所示:
图 16. 部署业务流程
您将可以进入类似于下图所示的对话框:
图 17. 指定部署信息
值得注意的是,您有许多方法可以将自己的流程向客户端公开:
- 您可以将其作为 Session EJB 公开。
- 您可以将其作为 JMS 服务公开,可以使用Web 服务调用框架(WSIF)来调用该服务。对所有流程来说,该绑定缺省。
- 您可以将其作为在 HTTP 之上通过 SOAP 访问的服务来公开。
- 您可以将其作为使用 SOAP/JMS 访问的服务来公开。
也可以生成这些绑定的组合。
部署流程将会生成所有必要的支持性 Java 类、EJB 类、部署描述符和 Web 服务构件。部署流程一结束,您就可以输出 Enterprise Archive(EAR)文件中的业务流程,然后将其安装在 WebSphere Business Integration Server Foundation 应用程序服务器上。
您也可以使用集成的测试服务器在部署环境中测试自己的业务流程。
将业务流程从 Modeler 移到 Choreographer
目前为止,您已经对 Application Developer 中的 Modeler 和 Choreographer 工具有了一定认识。现在看看如何将在 Modeler 中创建的业务流程输出到业务集成透视图中,那么开发者就能够在运行时完成并部署它们。
使用以 BPEL 为目标的 Modeler
如果您使用 Modeler 的最终目标是向编排器导出自己的流程,那么您将必须在执行该导出操作之前切换到 BPEL 模式。请记住在模式中并不支持 Modeler 的许多特性。例如,您为成功完成仿真而必须指明的许多详细信息在 BPEL 中是没有对应信息的,而且在您切换时会因为不能得到支持而被标记出来。
同样,许多 Modeler 结构不完全等同,因此不能转变为 BPEL。这里是那些元素的清单:
- Notification broadcaster, notification receiver, observer
- Timer
- For Loop
- Global Repository
如果您在建模阶段使用这些元素,您将必须在导出操作前清除自己的模型。但是,当您切换到 BPEL 时,在 Error 视图中,Modeler 将会发出警告和错误消息。您在尝试导出时,必须检查一下清单,然后首先使用该模型解决问题。
导出和导入
一旦您的模型与 BPEL 模式兼容,您就可以成功地导出流程,然后将流程导入 Application Developer 。按照以下的简易步骤:
- 在 Modeler 中,单击 File => Export,然后选择 WebSphere Business Integration Modeler Export:
图 18. 导出业务流程模型用于其他工具
- 在后续的对话框中选择 WebSphere Business Integration Server Foundation V5.1(BPEL, WSDL, XSD):
图 19. 将 WebSphere Business Integration Server Foundation 用于导出
- 单击 Next。以下对话框将使您可以浏览可供选择的目录,并且可以选择您想要导出的项目。您也可以选择是否要导出整个项目,或者某个特定的构件,例如代表数据定义的 WSDL 文件。在下图中,导出整个项目:
图 20. 为导出的模型选择位置
- 一旦您单击 Next,您将看到一个对话框,您可以从中选择自己想要产生的 BPEL 流程类型:
图 21. 选择导出流程的特性
- 选择流程的类型:
- Long-running (receive/reply) 表明该流程为包含 Reply 活动的可中断性流程(一种相当不寻常的情况)。
- Long-running (receive with callback) 表明该流程为通过调用回叫服务与调用者通信的可中断性流程。对长期运行的流程来说,该类型更为常见。当您选择该选项时,导出向导将会产生空缺的相关设置,并会发出警告。必须在 Application Developer 中完成该相关设置。
- Microflow 表明该流程为非中断性流程。
- 单击 Finish 以完成导出操作。
- 现在在 Application Developer 中导入该流程。启动 Application Developer ,然后切换到业务集成透视图。
- 通过右键单击 Service Projects,然后选择 New => Service Project 来创建新的服务项目。
- 右键单击新建的项目,然后选择 Import => File System。单击 Next。
- 在随后产生的对话框中,浏览到导出 Modeler 构件的目录,并且选中它。然后,单击加号来展开选中的目录,但是不要选中复选框:
图 22. 向业务集成透视图中导入模型
- 查看想要导出的子文件夹中每一个复选框(通常是全部检查)。不用查看复选框的主文件夹:
图 23. 查看导出的每个文件夹
- 单击 Finish。导入的操作将会结束。
现在检查一下我们在服务项目中的预期结果。以下屏幕向您显示了一个实例:
图 24. 从 WebSphere Business Integration Modeler 导入的构件
Processes.WTETravel 文件夹包含了实际的 BPEL 文件和流程的接口。注意 BPEL 文件的红色 x。在我们使用的该实例中,这是由于不完全相关性导致的,我们曾在导出步骤中讨论过它。
您也会注意到许多文件夹包含了 WSDL 文件,这些文件用于流程调用的服务。这些生成的 WSDL 文件用于用户,并且代表这些服务的接口。您也将会发现他们被引用在 BPEL 流程内部生成的伙伴链接中。
使用 Businessitem 文件夹(Businessitems.xsd)中的 XML 模式也可以描述所有定义在 Modeler 的数据项,也将会生成支持的 Java 类,并且可用。
概括说来,导入后您将会发现:
- 表示业务流程的 BPEL 文件和表示其接口的 WSDL 文件。
- 用于所有服务调用的 WSDL 文件。
- 用于在业务流程中定义的数据类型的 XSD 文件。
还有多少的工作要做?
总是期待可以手动操作使从 Modeler 导入的流程具有全部的功能性和可部署性能。举例来说,正如我们前面已经提及,用于伙伴链接的所有绑定信息将必须指定。
但是,关于流程图表及其活动,应该考虑让您意识到其他什么样的手工干预可以用来完成流程。为便于讨论,我们再举一实例。我们在 Modeler 中创建了简单的旅行预定流程,然后将其导入 Application Developer 。
下面是 Modeler 中显示的图:
图 25. 一个准备导出的业务流程模型实例
该流程调用三个 Service 和两个 Local Task。它有一个 Fork、一个 Join 和一个 Decision point。
在导出/导入后,业务流程编辑器的结果如下:
图 26. BPEL 编辑器中导入的模型
- 现在已经为您正确生成了所有的伙伴连接和流程变量。
- 这三个服务会导致产生三个相对应的调用活动。
- 这两个局部任务中,一个引起 Invoke 活动(NotifyTraveller),而另一个会恰当地产生 Staff 活动(RatingDesk)。产生这种区别的原因在于 Modeler 中 RatingDesk Local Task 的定义:我们已经将元素的 Resources 属性指定为 Individual Resource Requirements,如下图所示:
图 27. 对引起 staff 活动的元素建模
当您指定 Individual Resource Requirements 时,您将会在 Choreographer 中获得 Staff 活动。导出的流程也要注意正确地执行您的选择。在该实例中有组查找,它通过 GroupId 转化为 Group Search,将其用于 Staff 活动的潜在所有者:
图 28. 从 Modeler 导入的 Staff 指派
- Fork 会导致 Assign 活动。使用完全生成的 Java 片断可以实现连接。没有必要直接与这些元素接触。
- 值得注意的是,Decision 活动不会引起 Switch,而是引起 Empty 活动。这里就需要手动操作。对 Merge 活动这种情况同样适用(您将得到 empty 活动)。
- 如果您想要保持生成的回调 Invoke 活动,您就必须为之提供服务,并确保它符合自己的需求。
为便于总结,需有一份关于导入工作后需要执行的任务的实验性检查清单:
- 检查您的伙伴链接和 Invoke 活动。
- 检查变量和 Assign 活动。
- 验证并完成 Staff 活动的定义(例如,您必须为 Editor 和 Reader 指定查询,或者使用比初始指定时更复杂的 Verb)。
- Modeler 中不会出现处理错误的活动。您将必须确保能够正确地捕捉到流程中的错误并将其抛出。该方法非常重要,并需要仔细地计划、设计和实现。
- 将流程管理员分配到业务流程。
- 使用合适的构造改变 Empty 活动。
- 继续部署业务流程,并进行测试。
结束语
Modeler 为业务分析员提供了机会,使其成为使用 BPEL4WS 标准实现的业务流程开发周期中的主要角色。
尽管总是期望某种程度的人工修改,但是将利用 Modeler 生成的 BPEL 流程导入 Application Developer 的操作给了业务流程开发者重要的启示,这是因为它可以重用生成的流程流定义、数据结构以及服务接口的定义。
参考资料
关于作者  | 
|  |
Michele Chilanti 是 IBM 软件服务组织的 IT 咨询专家。他在一系列 IBM 软件产品的开发计划方面有 15 年的工作经验。现在他每天主要与 IBM 客户在业务流程的建模、实现和部署领域进行讨论和协商。 Michele 定期出席全球范围的有关会议,并且已经著有许多 IBM 以及其他技术的著作。 |
对本文的评价
|