您的当前位置:首页正文

工作流引擎技术

2020-11-11 来源:步旅网
1.1 工作流引擎技术

工作流概念的提出是人们注意到了隐藏在业务处理的过程控制的共性,并从业务处理操作中分离出过程逻辑单独加以研究,从而可以实现过程优化配置和重组。但是,多年来,不同的研究者和产品供应商从不同的角度给出了工作流的定义。下面分别从工作流定义及工作流相关术语进行解释,并分析工作流应用中所遇到的多种模式,提出了工作流参考引擎、处理模型、体系结构等。

1.1.1 工作流定义

WfMC给出的工作流的定义[21]:工作流(Workflow)是一类能够完全或者部分自动执行的经营过程,根据一系列过程规则,文档、信息或任务能够在不同的执行者之间传递、执行。

工作流是指业务领域的流程,它描述了业务过程中的各个要素以及要素之间的关系。

业务过程则是对工作流的抽象,通过对业务过程中各要素的描述形成过程定义。过程定义是过程自动化的基础数据,它通过工作流引擎进行管理。

下面将对工作流引擎技术中涉及到的一些基本概念给出其定义。这些概念包括:工作流引擎、业务过程、过程定义、活动、自动活动、人工活动、实例、过程实例、活动实例、工作流参与者、工作项、工作项列表等。 1. 工作流引擎

工作流引擎是一个软件系统,它定义、创建和管理工作流的执行,并且运行在一个或多个工作流引擎之上。工作流引擎能够解释过程定义、实现与工作流参与者的交互并且调用各种外部IT工具和应用。 2. 业务过程

一个包含一个或多个相关程序或活动的集合,这些程序或活动共同实现一个业务或决策目标。通常地,业务过程存在于一个定义了职能角色和业务关系的组织结构中。 3. 过程定义

过程定义是对业务过程的描述,这种描述形式支持诸如建模、通过工作六管理系统执行等操作的自动化处理。过程定义有活动和它们之间的关系组成,这些活动和关系形成了一个网状结构,并且还包含过程开始和结束条件和各活动的详细信息,如活动参与者、相关应用和数据等。 4. 活动

活动是对一份工作的描述,它是过程中的一个逻辑步聚。一个活动可以是

手工活动或计算机支持的自动活动,并要求人和/或机器资源配合过程执行。 5. 实例

实例是一个过程或活动的一次执行。每个实例代表一个过程或活动的一个特别执行线索,它们都有自己独立的内部状态和外部特征。

实例包括过程实例和活动实例,其中活动实例必须运行在一个过程实例中。 6. 工作流参与者

工作流参与者是处理由活动实例表示的一份工作的资源,工作通过工作项列表呈现给参与者。 7. 工作项

在一个过程实例中的一个活动实例以待处理的工作项表示。 8. 工作项列表

工作项列表与具体的工作流参与者关联,它是工作项列表拥有者和工作流引擎之间的一个接口。

1.1.2 工作流模式分析

工作流引擎规格[16,20,21]主要涉及四个方面:(1)控制流方面,通过不同的结构描述活动的执行次序,如顺序、分支、并发、同步等;(2)数据方面,规范业务数据和在活动间流转的数据和变量;(3)资源方面,描述与工作流相关的组织结构,主要表现为基于职责的人员和设备角色;(4)操作方面:描述活动执行的基本动作,这些动作通常映射为应用系统的某个功能。控制流是体现一个工作流引擎效力的最重要的方面,而数据则依附于控制流,资源和操作则是控制流的辅助元素。因此,对控制流规格的研究是实现一个工作流引擎的最重要的因素,如果要扩展工作流规格以适应新的业务需求,则必须对控制流进行深入研究和分析。

根据WfMC[16,20,21,40,41]的定义,工作流控制流结构常见的有六种,并将其定义为工作流原语,见图2.1:

与合并 或合并 与分支 或分支 循环

因果

图2.1 工作流原语

但是,仅仅定义这几种原语是不够的,在实际流程处理中,在这几种原语中衍生出来的变化多种多样。由于工作流技术还不太成熟,对控制流技术规格的研究还没有统一的标准。W.M.P. van der Aalst对这方面进行了较全面的研究,在文献[38]中给出了20个工作流模式的详细描述,但是,由于控制流规格描述的是业务过程的通用模型,而业务过程的复杂性决定了流程模型的复杂性,因此,还有很多适用于特定场景的流程模式该文献没有给出,如在办公自动化领域普遍存在的回退模式、传阅模式等。回退模式不仅在办公自动化系统中存在,在其它基于流程的应用系统中也广泛存在。 1. 起点模式

有单起点和多起点模式,单起点模式相当比较简单,即整个流程只有一个起点,而多起点模式则存在着多种模型,见图2.2。

活动A S

单起点模式 活动A S1 S2 S1 活动A S1 多起点模式一 活动A 活动B 活动B 活动B S2 多起点模式二 S2 活动B 多起点模式二 图2.2 起点模式图

流程运转模式有多种,主要分析流程运转阶段的活动走向问题。 2. 顺序模式

图2.3 顺序模式图

顺序模式中的活动具有严格的先后顺序,必须前一个活动结束后才能开始 活动A 活动B 活动C 下一活动,如图2.3所示。 3. 并行分支模式

图2.4 并行分支模式

并行分支模式是指过程中将一个单一控制线索分离成多个并行控制线索的点,这样就允许活动同时执行,如图2.4所示中的活动A。 4. 同步模式

活动B 活动A 活动A 活动B 活动C 活动C 图2.5 同步模式

同步模式是指过程中多个并行的活动汇聚为一个控制线索的点,这样实现

多个线索的同步,如图2.5所示中的活动A。 5. 唯一选择模式

图2.6 唯一选择模式

唯一选择模式是指过程中通过决策和控制数据可以从多个分支中选取其中之一的点,如图2.6所示中的活动A。 6. 简单汇聚模式

活动 C 图2.7 简单汇聚模式

活动B 活动A 活动A 活动B 活动C 简单汇聚模式是指过程中两条或多条分支汇聚到一点,这种汇聚并不要求同步,只要某个分支到达即可,如图2.7所示中的活动A。

7. 多选模式

活动A 活动B 活动C 活动D 图2.8 多选模式

多选模式是指过程中通过决策和控制数据可以从多个分支中选取其中一条或多条的点。如图2.8所示中的活动A。 8. 同步汇聚模式

活动D 图2.9 同步汇聚模式

简单汇聚模式是指过程中两条或多条分支汇聚到一点,这种汇聚要求同步,就是只有等到所有分支都到达后才激活该点的一个实例:如果存在多个路径的汇聚,则要求同步;如果只存在一个汇集路径则不需要同步。如图2.9所示中的活动A。

9. 多汇聚模式 活动 C 活动D 图2.10 多汇聚模式

多汇聚模式是指过程两条或多条分支汇聚到一点,这种汇聚不需要同步,对于到达的每个分支都激活该点的一个实例。

活动B 活动A 活动B 活动A 活动 C 10. 鉴别器模式 活动 C 活动B 鉴别器A 活动D 图2.11鉴别器模式

鉴别器模式是指过程中的一点,在这一点,过程等待一个或多个前驱活动完成后才激活后续活动,并且,将在其它前驱完成后不再创建后续活动。当所有前驱都完成后,该点自动复位,以相同方式处理接下来完成得前驱活动。如图2.11:假设活动B完成,则创建后续活动D,然后,C完成,此时不再创建D,而是由A进行复位处理。对于下一个B或C活动,又会创建活动D。如果活动B完成并创建活动D,而活动C一直未完成,这是即使活动B再次完成也不会创建活动D。 11. 任意循环模式 活动A 活动B 图2.12 任意循环模式

任意循环模式是指过程中允许某些活动重复执行的情况。如图2.12中的A和B就处在一个循环中。 12. 隐式终止模式

隐式终止模式指在过程中没有任何别的事可做(死锁除外)时,过程将自动终止的情况。此时,过程中没有任何处于激活状态的活动,也没有可以创建的活动。

13. 非同步多实例模式

非同步多线索模式指在单个案例(一个过程实例)中的活动可以同时创建多个实例,每个实例都是独立的,不需要同步。 14. 设计时确定多实例模式

设计时确定多实例模式指在一个过程实例中一个活动可以有多个实例,而究竟可以有多少个实例是在设计时就已经确定好了。当所有这些实例都执行完后就可创建起后续活动的实例。 15. 运行时确定多实例模式

运行时确定多实例模式指在一个过程实例中一个活动可以有多个实例,而究竟可以有多少个实例是在运行时根据情况确定的。当所有这些实例都执行完后

活动C 就可创建起后续活动的实例。 16. 延迟选择模式

延迟选择模式指过程中的一个选择点,可以选择多个后续活动中的一个,但与前面介绍的唯一选择不同,选择不是通过显示(如:基于数据和决策)选择的。选择是在具体激活某个分支的活动时才确定,其它分支被忽略。 17. 交叉并行路由模式

交叉并行路由模式指过程中的一个活动子集,这些活动的执行次序在运行时才确定,而且活动是按顺序模式运行的,不能并行。

1.1.3 工作流引擎设计

前面已给出了工作流引擎的概念,它实际上是一个软件系统,是工作流定义的计算机执行环境,是工作流引擎系统的核心部件,属于中间件的范畴。

工作流引擎处理的是过程定义数据,它根据过程定义的流程流转规则推动一个业务过程的自动化。图2.13描述了工作流引擎处理一个业务流程的基本模型

[21,22]

定义过程 : 过程定义 模板库

激活过程定义 创建过程实例 工作流引擎 过程定义运行库 过程实例库 图2.13 工作流引擎处理模型

工作流引擎在实际运用中一般分为三个阶段:工作流建模阶段,工作流模型实例化阶段和工作流执行阶段。在工作流建模阶段主要通过工作流建模工具完成业务流程的模型建立,将实际的业务操作流程转为为计算机可模拟处理的工作流模型;在模型实例化阶段主要通过工作流引擎完成具体业务流程的实例化,为具体业务流程办理流转提供工作流相关数据和工作流控制数据,并为业务流程的办理提供所需要资源(如人力资源和物料、设备资源等); 工作流执行阶段主要完成业务流程的执行,重点是完成人机交互和系统内部应用或外部应用程序的调用。

因篇幅问题不能全部显示,请点此查看更多更全内容