一种工作流任务回撤机制的动态模型研究

时间:2022-07-27 07:22:25

一种工作流任务回撤机制的动态模型研究

摘要:工作流管理系统在不同的领域得到了广泛应用,但仍然未能满足任务回撤等特殊业务需求。文章首先对任务回撤进行了描述,并简要介绍目前的几种解决策略,然后在研究典型工作流过程元模型的基础上,引入新的模型因子――服务接口(Interface),提出并建立基于服务过程分解(Service Process Division, SPD)的、具有动态特性的工作流过程模型。最后通过改造开放源代码产品JBPM,在实际中得到应用。

关键词:工作流;任务回撤;服务过程分解;动态模型

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)04-0916-04

Research of an Dynamic Model about Task Rollback in Workflow

ZHU Xing-lin, XI Chuan-yu, XU Yong-kang

(Institute of Computer Application, China Academy of Engineering Physics, Mianyang 621900, China)

Abstract: Although workflow management system has been used in many different fields, it cannot satisfy with some special business needs, as like task rollback. The business scene of task rollback is first described, and then the current solving strategies are overviewed. Afterwards, based on the research of workflow process meta-model which many workflow products reference to, the factor of interface is introduced and is added into the dynamic model which called based on Service Process Division (SPD) model. Finally, programming on JBPM which is an open source project, this model is applied in practice.

Key words: workflow; task rollback; service process division; dynamic model

工作流管理技术是将过程从应用系统中分离出来,达到对业务过程建模、重组和重用的目的,在办公系统、物流系统及其相应的领域中,得到了广泛的应用[1]。

但是,随着技术的进步和应用范围的扩大,出现一些新的业务背景(比如任务回撤),工作流技术无法满足这些需求。其原因在于工作流过程模型所定义的元素都非常严格,不适应动态的变化。因此,很多研究工作集中在对工作流动态特性的分析上[11],允许工作流中的元素具有一定的独立性。

本文在研究WFMC工作流过程元模型[5]的基础上,分析工作流实例的服务过程,引入新的模型因子――服务接口(Interface),从而建立满足业务需求、具有动态特性的工作流过程模型。

1 研究现状

在企业级应用中,越来越多的遇到以下有关工作流“任务回撤”的场景,比如在图1中基于Petri网[6]的工作流流程示例。

在流程的某个环节p2(录入),员工甲编辑业务数据(录入检测结果等),活动完成后把任务提交到下一环节p4(审核),交给领导审核;作为竞争性的活动[1],在环节p4中,参与者包括领导乙、丙、丁,他们均可以审核;员工甲在没有其他提示和限制条件下,就按照默认的顺序提交给乙;但是在提交之后,意识到该任务涉及到的课题应该由领导丙审核,或者任务在提交一天后仍然没有审批,却发现领导乙因公出差,目前不能审核;在项目紧急的情况下,该文档需要马上报批,员工甲希望能够把已经发送给领导乙的审核任务回撤到上一环节p2,然后可以重新修改并提交审核任务给领导丙。其任务提交过程和参与者转移如图2所描述。

总的来说,业务本身的需求和工作流应用范围的扩大,对工作流任务回撤机制提出明确的需求:

1) 工作项在没有被执行的情况下,可以回到上一环节或重新指定执行人;

2) 由上一环节执行人或者流程管理员,决定是否回撤;

3) 任务被回撤的过程必须保留痕迹,以便监控、审计;

针对工作流任务回撤的需求,主要存在任务指派、工作委托、业务过滤三种解决策略。

1.1 任务指派

在工作流管理中,指派可以直接把工作项的实际执行人由一个参与者变更为另外一个参与者。其实现策略可以见图3。

任务指派让工作流在运行和管理方面具有高度的灵活性,可以方便、及时地变更任务执行人。但是任务指派没有完全满足回撤的业务需求。因为指派是直接修改流程执行者信息,没有保留痕迹,无法监控;而且指派只解决了该环节执行人变更的问题,没有解决如何回退到上一环节的问题。

1.2 工作委托

工作委托是指某个用户C把流程中本该由自己执行的任务,全部或者部分托付给另一个用户D执行。委托主要发生在职权临时变更、在职不在岗、或长期出差等情况下。其实现策略可以见图4。

工作委托也是工作流在灵活性方面的一个重要体现,而且结合角色R、时间T、授权P等因素,可以实现更强大的功能。但工作委托也没有完全满足回撤的业务需求,因为它同样只解决任务执行人的问题,而且还不能由上一环节执行人随意指定,只能预先设定;也没有解决如何回退到上一环节的问题。因此工作委托没有满足任务回撤需求。

1.3 业务过滤

解决工作流任务回撤的另一种方案就是和业务结合,提前预防和避免出现任务回撤的情况。比如如果领导出差,可以在选择审核领导时,根据用户的在线状态或者出差、会议等情况,给相应的提示;如果课题划分了分管的部门和领导,则仅显示有业务权限的用户列表等。其实现策略可以见图5。

通过业务过滤的方式,能从根本上解决某些工作流相关问题,比如权限的统一管理、资源规划等;而且可以根据业务代码同步变更,做到随需而变。但是这种预防策略没有完全杜绝任务回撤的情况发生,没有从根本上解决问题。

综合上面的分析,可以看出,基于原始Petri网的工作流模型无法彻底解决任务回撤问题,其根本原因是:Petri网的行为原则具有严格的静态性。主要体现在流程实例只能创建定义好的、含有固定前置的活动节点和变迁;而且迁移事件的条件一旦满足,一定会由一种状态到另一种状态,中间不存在任何分解操作或者分步状态。而任务回撤恰恰是需要建立没有定义的变迁,并且到达由流程定义无法到达的状态。

2 基于SPD的动态模型

针对Petri网这种静态特性,本文提出了一种基于SPD(Service Process Division,服务过程分解)的动态模型:在不变更工作流模型框架的情况下,引入新的模型元素――服务接口(Interface);在此基础上,对工作流服务接口的内部过程进行分解,把本来静态的、原子化的服务过程,看成由多个子步、带有原子性的、顺序执行的服务过程组成;并允许动态创建模型元素,使其具有动态特征。

2.1 WFMC的工作流过程元模型

在对基于SPD的工作流进行动态建模之前,需要了解工作流的元模型,比较著名的有:WFMC[6]、WIDE[7]、WAMO[8]、Active Workflow[9]。由于不是完全从头开始建模,相对工作流模型,需要关注的重点是工作流过程元模型。本文参考WFMC的工作流过程元模型,参见图6所示。

这个元模型描述了工作流过程定义的关键实体:流程(Workflow)、活动(Activity)、参与者(Participant)、迁移(Transition)、应用程序(Application)、工作流数据(WorkflowData),因此可以给出如下定义:

Workflow = (A, T, P, APP, D, Rap, Ratd, Tc)

其中A表示活动集合,T表示迁移集合,P表示参与者集合,APP表示应用程序集合,D表示工作流数据集合,Rap表示活动和参与者之间的关系,Ratd是A×T×D的一个子集,表示活动之间的控制和数据流向关系,Tc表示对工作流时间约束信息集合。

2.2 引入模型元素――服务接口

尽管WFMC给出了工作流的参考模型和过程元模型,并把工作流提供的接口分为五大类,但没有针对这些接口给出具体的功能描述,及其详细的服务过程。这样导致的直接后果就是,一方面各个工作流产品提供的功能各不相同,各有特色,而且极其有限,比如对是否提供嵌入式脚本执行功能,就存在严重分歧;另一方面它们的接口函数虽然都可以按照划分为五类,但也相差很大,没有统一的描述,比如同样是“修改流程相关数据”这个功能,有的工作流模型接口只需要提供当前任务信息,有的却还需要提供流程实例信息,甚至用户信息。

导致这种情况的原因是,WFMC的过程元模型没有包含服务接口,即认为工作流功能固定,接口也应该单一。而流程发起、活动提交、修改相关数据,这三个功能构成流程引擎三要素,大部分工作流模型实例只有这三个核心接口。并且把流程(Workflow)看成是一个整体,没有对其他实体的服务细节进行分析,流程的服务被看成是一个固化的、不变的、简单的过程,因此不具备动态特征。

本文在WFMC工作流参考模型的框架范围内,对服务接口(Interface)进行细化,把它看成是一个可分解的、可以变化的因子,并引入到工作流过程元模型中去,成为工作流过程元模型的一个元素。因此,完善后的模型Workflow'定义如下:

Workflow' = (A, T, P, APP, D, I, Rap, Ratd, Tc)

其中I表示工作流模型实例提供的服务接口,并用形式化的表示方法进行说明。根据工作流实体的不同,可以对I进行分类:

WI:流程接口,包括start、commit、susponse、teminate、rollback、end等;

AI:活动接口,包括create、init、wait、susponse、teminate、commit、uploadData、rollback、finish等;

TI:迁移接口,包括create、source、goal、reverse等;

不难看出,工作流应用程序接口(Workflow Application Programming Interface, WAPI)是工作流模型实例的服务接口I的一个子集,而且I本身的元素具有以下特性:

元素的包含性:对于?坌Ij∈I,?埚Ik∈I并且Ik∈Ij(k≠j);即I中的元素可能是由一系列元素组成的集合。

元素的开放性:对于?坌Ij∈I,则对Ij的子元素平面化后,Ij∈Ij始终为假;即I中的元素不能再执行自身,不能递归。

执行的原子性:对于?坌Ij∈I,?坌Im,In∈Ij。如果invoke(Ij)为真,则invoke(Im)、invoke(In)必定为真;如果invoke(Ij)为假,则invoke(Im)、invoke(In)必定为假。

执行的确定性:对于?坌Ij∈I,?坌Im,In∈Ij。如果invoke(Ij)时,invoke(Im)>invoke(In)成立,则下次执行时同样成立;反之亦然。即I中元素的执行过程是按照固定顺序的,是确定的。

2.3 基于SPD模型的动态特性

完善后的模型Workflow'具有动态特性,主要体现在以下几个方面:

1) I中不仅包含WI,还包含AI、TI,W不再是唯一的对外服务实体;

2) 实体W的服务过程不再是一个整体,而是由多个服务过程组成,并且都能独立对外服务;

3) 实体A作为独立的服务元素开始存在,通过组织、调整服务过程,能够得到新的服务;

4) 实体T也作为独立的服务元素,可以单独创建,并且可以产生其反迁移。

2.4 活动实体的状态分析

从Petri网的组成部分和上面的建模过程可以看出:迁移T的接口TI比较单一;流程W的接口WI大多数依赖于AI的实现;活动A的接口AI是最丰富的,也是服务接口过程模型中最重要的因素。因此,对服务实体A的状态进行分析,如图7所示。

从上不难看出,A的每一次状态变化,都可以看成是服务接口AI中的一个元素,这个元素具有原子不变性,即不可再分解。

2.5 提交服务的过程分析

使用上面的建模元素,对工作流“任务提交”接口进行建模分析:

1) 执行流程提交I1:mit;

2) 获知当前工作任务I2:WI.currentActi;

3) 保存当前活动A的信息I3:AI(A).save;

4) 上传活动数据到流程I4:AI(A).uploadData;

5) 执行活动的后续操作I5:AI(A).after;

6) 获取正确迁移I6:WI.getTran;

7) 创建迁移I7:TI.create;

8) 获知下一环节I8:TI.goal;

9) 执行下一环节B的前置操作I9:AI(B).before;

10) 创建活动B的实例I10:AI(B).create;

11) 初始化活动数据I11:AI(B).init:包括从流程中继承数据,初始化状态;

12) 修改流程状态信息I12:PI.actiOK:标识流程正式进入下一环节。

其中Ij∈I(j=1,…,12),并且Ik∈I1(k=2,…,12)。而如果提供的WAPI是“执行活动提交I1*”,则元素执行顺序为I3-I12,不包含元素I1和I2,即Ik∈I1*(k=2,…,12)。

2.6 回撤服务的过程分析

同样的,使用服务接口建模元素,对工作流“任务回撤”进行建模分析:

1) 执行流程回撤I'1:PI.rollback;

2) 获知当前工作任务I'2:PI.currentAccti;

3) 保存当前活动B的信息I'3:AI(B).save;

4) 获取指向活动的正确迁移I'4:AI(B).fromTran;

5) 获取反向迁移I'5:TI.reverse;

6) 创建迁移I'6:TI.create;

7) 由迁移获知上一环节I'7:TI.goal:;

8) 创建活动A的实例I'8:AI.create:;

9) 继承活动A的旧实例数据I'9:AI(A).cloneData:;

10) 上传活动数据到流程I'10:AI(A).uploadData;

11) 修改流程状态信息I'11:PI.actiOK:标识流程正式进入下一环节。

其中I'j∈I(j=1,…,10),并且I'k∈I'1(k=2,…,10)。而如果提供的WAPI是“执行活动提交I'1*”,则元素执行顺序为I'3-I'10,不包含元素I'1和I'2,即I'k∈I'1*(k=2,…,10)。

通过上面的服务接口元素建模和执行过程分析,可以非常清晰地勾勒出在“任务回撤”业务中,工作流模型实例的服务过程和执行顺序,为工作流的实现提供了理论基础。

3 下一步工作

创建基于SPD的工作流动态过程模型,能够大大增强工作流模型实例的功能,使其具有良好的适应性,并且满足任务回撤的业务需求。

但仍然有许多工作要做,一部分工作是因为对服务过程进行分解、建模,需要详细了解并分析工作流服务接口的结构和过程,而这对于一些封闭的工作流产品来说几乎是无法完成的。同时,增加模型元素也意味着实现的复杂度随之增加,带来一定的工作量,会受到时间成本的制约。

另外一个部分工作是评估该方法对其他模型因子的影响。在模型的实现细节上,本文没有过多地提到访问权限、安全管理,以及同应用系统进行交互等方面的内容。而这恰恰是每个产品必须考虑的部分,这也将是下一步研究的重点。

4 结论

采用文中所述的基于SPD的动态建模方法,在引入服务接口模型元素的情况下,能够解决类似“任务回撤”等企业级业务需求,为工作流模型的进一步完善提供了理论依据。而笔者基于该建模方法,通过改造开放源代码的JBPM产品,在某院质量数据采集和信息管理系统中得到应用,能够很好地满足功能要求,表明模型是正确并且可实践的。

参考文献:

[1] 史美林,杨光信,向勇,等.WfMS:工作流管理系统[J].计算机学报,1999,22(3):325-334.

[2] 范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001.

[3] 赵卫东,黄丽华,蔡斌.工作流过程模型研究[J].系统工程理论方法应用,2002,11(3):212-217.

[4] 徐亮,张莉,樊志强.一种基于UML的实时工作流建模方法研究[J].计算机研究与发展,2010,47(7):1184-1191.

[5] Wokflow Management Coalition.The workflow reference mode[R/OL]..

[6] MURATA T.Petri nets: Properties,analysis and applications[J].Proc IEEE,1989,77(4):541-580.

[7] Cassti F.WIDE: Workflow model and architecture.CTIT Technical Report 96-16[R].Enschede,Holand: University of Twente,1996.

[8] Eder J,Liebhart W.The workflow activity model WAMO[C]//Proc of the 3rd Int Conf on Cooperative Information Systems,1995:87-98.

[9] Carlsen S,Krogstie J,Solvber A,et al.Evaluating flexible workflow system[C]//Hawaii Int Conf on System Sciences.Washington,DC: IEE Computer Society,1997.

[10] Ellis C,Keddara K,Rozenberg G.Dynamic Change within workflow system[C]//Proceedings of Conference on Organizational Computing Systems.New York: ACM Press,1995:10-21.

[11] Medina-Moura R,Winograd T,Flores R,et al.The Action Workflow Approach to Wokflow Management Technology[C]//CSCW'92,Proceedings of the Conference on Computer Supported Cooperative Work.New York:ACM Publishers,1992:281-288.

[12] van der Aalst W M P.The application of Petri nets to workflow managment[J].Journal of Circuits,Systems,and Computer,1998,8(1):21-66.

上一篇:多角度视线上的人眼定位算法 下一篇:国内著名搜索引擎的对比分析与评价――以搜搜\...