赵建民 储孝国
摘要:为解决协同科技管理平台业务协同性和动态性的问题,基于工作流过程元模型的构建方法,结合协同活动模型和工作流动态变化的要求,对元模型进行了改进和扩展,将协同活动元素、连接符及ECA规则引入其中,并对模型属性进行修改,从根本上解决科技业务处理过程中协同性和工作流动态性的问题,增强了科技业务工作流程的灵活性和自适应能力。
关键词:工作流;元模型;动态性;协同性
中图分类号:TP311文献标识码:A
Abstract:In order to solve the problem of cooperation and dynamics on the collaborative management platform of science and technology, based on the construction method of the workflow process metamodel, we improved and extended the metamodel by combining the cooperation activity model and the requirement of workflow dynamic modification, which imported cooperation activity elements, connector, ECA rules and modified the properties of the model. Fundamentally, it solved the problem of the cooperation and dynamic characteristic of workflow and enhanced the flexibility of workflow and selfadaptation ability in the business process of science and technology.
Key words:workflow;meta model;dynamic;collaborative
1引言
随着计算机和协同技术的高速发展,CSCW(计算机支持的协同工作)在很多领域都有着大量的应用,它能够为一个群体在计算机支持的协同环境中完成同一项共同的任务提供有力的支持。而工作流技术作为CSCW研究方向的一项重要应用,在行业协同过程管理中起到了越来越重要的作用。
在协同业务平台的搭建的过程中应用了工作流的相关技术,如何在工作流的基础上解决多任务协同分配并完成相关任务是目前遇到的主要问题。为了从根本上解决工作流中动态性和特定协同机制相结合的问题,很自然想到从工作流元模型的角度入手去扩展工作流过程定义的手段,并在运行阶段去实现其对于灵活性、动态性的要求是目前解决问题的主要研究方向。
2工作流元模型及相关研究
元模型通常用来定义语义模型的构造和规则的,通常称为定义表达模型的语言的模型。工作流管理联盟(WFMC)于1993年成立,WFMC的成立标志着工作流技术开始进入相对成熟的阶段。基于对工作流模型标准化的考虑,工作流管理联盟对工作流模型进行了标准化定义。
工作流元模型通常涉及相互关联的3 个子元模型[1],即:
过程定义元模型:模型元素用于定义业务过程,控制工作流的执行。
组织机构元模型:描述单位、部门、人员的组织关系以及所担当的角色。
相关数据元模型:工作流“生产”和“消费”的数据以及它们的流动关系。
工作流元模型的核心是过程定义元模型,工作流管理联盟为过程定义开发了一个基本的元模型,如图1所示:
文献[1]对工作流元模型中各个元素进行了详细的阐述,出于篇幅考虑,本文不做过多的重复。过程定义元模型规约出元素类型的一个基本集合,这些元素类型适合于相对简单的过程定义,工作流开发人员根据需要可以对该元模型进行适当的扩展。
在文献[2-5]中,为了确保工作流的动态性,研究者们采用了多样性的处理方法,如果在工作流的过程定义中能够充分考虑动态特性,配合运行阶段的处理,可以从更基本的层次解决动态自适应性问题。下面针对WFMC提出的工作流元模型进行扩展以达到协同平台模型的要求。
3结合协同活动模型扩展的工作流元模型
针对目前遇到的问题,考虑把协同活动模型元素引入到工作流元模型中,并引入连接符、ECA规则等分离角色元素,状态元素以实现工作流模型定义阶段的协同机制和动态性灵活性相结合的目的。
3.1协同活动模型的引入
协同活动包括一组为了完成某项特定任务而在一起协同工作,具有一定组织结构的人,以及他们在协同工作中所承担的职能、角色,协同工作中的各种信息资源,进行信息交流和对信息资源进行操作所应遵循的协同规则及各种协同机制。文献[6]中因此提出协同活动模型,对协同模型的相关元素进行抽象,对其中元素需要的属性进行封装,得到7个子模型,分别为协同活动对象、协作成员对象、协作角色对象、消息对象、规则对象、资源对象和代理对象。
3.2扩展的工作流元模型
本文针对目前对工作流元模型定义阶段的需求,对WFMC提出的工作流元模型进行改进,提出一种优化的工作流元模型如图2所示:
改进的元模型不仅仅是将过程定义中活动的属性独立成元素,还引入了以下元素:子流程、活动状态、事件、触发器、规则以及连接状态降低元素的耦合度以达到定义阶段的灵活性和动态性并且引入协同活动模型的全新元素,使工作流元模型在属性定义方面考虑到了工作流中协同任务分配的各个要素。
3.2.1协同活动模型的引入
通过引入协同活动模型,可以从模型定义阶段对工作流某个不确定的节点完成多任务协同操作进行支持。
3.2.2连接符的引入
连接器主要由连接装置和转移状态两个部分组成[7]。连接装置负责活动之间的连接机制,主要包括工作流的主要路由结构和标示活动的前驱和后继节点以及转移产生的约束条件,把路由结构类型(orsplit、orjoin、andsplit 以及 andjoin)的说明从活动中提取出来,而转移状态表示是目前已连接态还是未连接态。当需要动态改变流程实例的时候,我们只需要改变它的前后连接器即可。
3.2.3子流程的分离
在原来工作流元模型中,子流程是活动元素中的一种类型[8],在本文扩展的工作流元模型中,将子流程独立出来,我们可以使工作流的描述更加的简洁易懂,增加工作流程的层次性,也可以更加方便的对工作流程进行合理性分析。
3.2.4活动状态的分离
分离了活动的属性,活动实例的状态可以在就绪、激活、挂起、完成、终止之间灵活改变。
3.2.5角色元素属性的增加
在角色元素的基础上,对于角色四元组(Id, Type, Name, Specialty, WFP_Id)中Type集合元素中添加任务执行者和任务分配者两个角色,增加对协同任务中人员组织分配任务的支持。
3.2.6事件、触发器、规则的引入
现有的工作流过程定义语言 WPDL是一种静态的文本描述语言,给出了一般的模型元素和定义了其相应的属性结构[9]。但是因为它是静态的,不能很好的解决工作流中动态更改实例的要求,所以本文中引入事件、触发器、规则能够很好的解决此类问题,起到一个动态自适应的作用。通过引入ECA规则,一个工作流实例传递事件能够自动触发设置的规则,解决工作流的动态路由变换的能力。
4工作流模型的形式化
工作流可以表示为一个五元组 WFP=
ID:流程定义的唯一标识符,用以区分不同的流程定义。
D:工作流 WFP的一般信息描述,包括流程定义的流程版本号、创建者、创建日期以及流程基本说明。
D=
A:流程的活动集合,既可以是一般活动,也可以是动态活动。它可以表示为 A={a1,a2,a3,……,an},每一个活动a都可以表示为一个八元组 a=
E:规则集合 E={e1,e2,e3,…,en}。ECA 规则规定了活动间的转移条件。
R:流程的执行结果,R是集合{Null,Success,Failure}中的一个值,即{Null,Success,Failure},并且R的初始值为Null。
基于图2所示的元模型,可以直接导出工作流的形式化模型。限于篇幅,本文仅对工作流中的活动状态集、规则、角色、协同活动模型等进行介绍并且只介绍其主要属性。
定义1活动状态集
State = {S0,S1,S2,S3,S4,S5},S0表示等待初始状态,S1表示就绪,S2表示运行,S3表示完成,S4表示取消,S5表示异常终止。活动的状态转换和活动间的转移都是由事件和条件触发的。当活动状态到达终止态时,触发活动完成事件ECA规则来规定这些活动。
定义2规则的表达形式是[10]:
WHEN Events
IF Conditions THEN
Action
ENDIF
ENDWHEN
定义3角色形式化表示为
Role= < Id, Type, Name Specialty, WFP_Id >,其中Type、Name是角色标识和名称;Specialty是角色能力的集合;WFP_Id是该角色所处的流程实例的ID,这里在Type中添加任务执行者和任务分配者两个新属性。
定义4协同活动模型元素表示为
Cooperate=
其中Cid代表所属唯一标示符,C_ Activity代表协同活动元素,C_ Member代表协同成员元素,C_Role代表角色元素,C_ Information代表信息元素,C_ Rule代表规则元素,C_ Resource代表资源元素,C_ Agency代表代理元素。
定义5连接器元素表示为
Place=(Id ,Pre_T_Condition ,Pre_T_Ids,Post_T_Condition, Post_T_Ids, Type, Status , WF_P_Id),其中Pre_T_Condition代表前置条件,Pre_T_Ids代表前置id,Post_T_Condition后置条件,Post_T_Ids代表后置id,Type代表路由类型,Status代表连接状态。
定义6子流程元素表示为Sub_WFP
表示子流程集合,同时子流程也可以是一个流程过程,其描述和WFP工作流元组具有相同的结构,所有说子流程也可以再嵌套一个子流程,增加了流程的层次性。
下面通过科技管理平台中的项目报表流程对改进的工作流元模型进行应用说明。
5元模型应用实例
在简化的科技项目报表管理流程中,涉及到按照要求格式填报月报表,因为项目报表中处理任务工作量很大,这样就在工作流程中涉及到了协同处理任务的能力。首先下达科技项目计划,然后针对组织项目实施,按照要求填写报表,然后审查、复查,形成项目送审稿、审核、复审,最后进行综合审定。新的审批流程中,我们动态的加入一个协同编辑的模块,分成多个子流程,进行汇总之后进行审查的环节,下面是科技项目报表流程的一部分。
可以看到,在原流程中,活动A1代表组织项目实施,A2代表填报日报,A3代表汇总审查,A4代表修改完善报表,P1,P2,P3代表连接器,封装了相应的流转规则。在修改后的流程中,我们在连接器P2上加入协同机制,并且加入了A5、A6两个子流程实时协同地完成报表填报工作,填报完成后根据连接器P4的规则流转到活动节点A3进行汇总审查的工作。具体描述转换规则的ECA建模语言如下:
通过连接器并结合ECA规则能提高工作流动态改变实例的能力,并且通过引入协同机制在工作流定义阶段考虑了其协同编辑,协同工作的能力,满足工作流对灵活性和动态性的要求,实现了软件自动路由的功能,增强其自适应的能力。
6结论
本文在工作流元模型中引入协同活动模型的特征,并且扩展了工作流标准元模型,引入连接符,子流程、活动状态、事件、触发器、规则来达到工作流能动态的改变实例的目的。该元模型从不同的角度对一般活动节点的动态属性和过程修改进行了描述,为用户提供了一种灵活的手段和动态支持能力,并提供了各种规则使修改后的工作流在继续执行中有了保证。通过这种结合了协同机制和工作流动态变更特性的工作流元模型,为研究协同平台的多人协同任务操作奠定基础。
参考文献
[1]赵文,胡文蕙,张世琨,等.工作流元模型的研究与应用[J].软件学报,2003,14(6):1052-1059.
[2]FLORES L,WINOGRAD A.Managing Business Processes as an information Resource[J]. IBM Systems Journal, 1994,33(2):326-348.
[3]SADIQS, ORLOWSKAM. Pockets of flexibility in workflow specifications[A]. Proceedings of the 20th International Conference on Conceptual Modeling[C]. Yokohama, Japan: Springer, 2001.513-526.
[4]孙志瑞,史美林. 一个支持动态变化的工作流元模型[J]. 电子学报,2002,30(12A):2052-2056.
[5]MENG J,STANLEY Y W.Herman Lam and Abdelsalam Helal.Achieving Dynamic InterOrganizational Workflow Management by Integrating Business Processes,Events and Rules[C].Proceedings of the 35th Annual Hawaii International Conference on System Sciences,pp.10-22,2002.
[6]李敏强,王琛CSCW系统中协同机制及协同活动模型[J].系统工程与电子技术2000(04):190-196.
[7]The Workflow Management Coalition SpecificationDocument Number TC00-1003 Document StatusIssue 1.1, Author: David Hollingsworth, 2005.
[8]于帆,王叶. 工作流元模型改进研究[J]. 西安工业大学学报, 2012,11(32):899-903.
[9]胡锦敏,张申生,余新颖.基于ECA规则和活动分解的工作流模型[J].软件学报,2002,13(4):0761-0767.
[10]朱文华,王茜.企业动态联盟中柔性工作流地研究与实现[J].小型微型计算机系统,2003,24(4):758-762.