1 引言
工作流模型是对组织机构业务过程的抽象表示。工作流模型是整个工作流管理系统的基础,它的确定性保证了系统内各组成部分之间交互的一致性,也决定了一个工作流管理系统从设计开发到运行实
施的诸多环节。不同的工作流模型也就形成了不同的工作流管理系统。相对工作流产品的实现技术和发展而言,工作流建模理论的研究相对滞后,在建模方法上还没有形成比较系统化的理论体系。目前已有的建模方法主要有:基于活动网络的建模方法、基于Petri网的建模方法、基于语言行为理论的建模方法、基于活动与状态图的建模方法和基于扩展事务模型的建模方法等。但这些工作流模型普遍都存在以下问题:(1)模型语义不够丰富,表示复杂问题的能力不足;(2)模型的柔性不好,不容易处理在执行过程中出现的不确定性问题;(3)表示方法不够直观等。
在信息管理自动化的环境下,工作流模型必须采用简单、直观、又具有较强描述能力的面向组织用户的模型。因此,作者设计UniFlow工作流管理系统时,在参照工作流管理联盟(Workflow Manangement Coalition 简称:WfMC)工作流理论的基础上,博采众长,建立了基于有向图理论的UniFlow工作流管理系统工作流模型,该模型有效的解决了工作流模型中普通存在的问题。下文主要向读者详细介绍这一模型的相关理论与设计思想。
2 工作流模型概要
企业、政府机关等组织机构是一个复杂的系统,用过程的观点来看待这些组织机构,组织机构的组成元素就是过程,过程的组成元素就是活动;工作流模型就是对这些业务过程的抽象表示。
过程是指为了完成组织机构的某个经营目标或任务,而按某种顺序联结在一起的一系列活动。过程的主要属性有:触发事件、过程结果、执行规律集。过程的执行规律集用来描述过程内部各活动、子过程之间的控制流程。执行规律集由顺序、并发、与、或、循环等五种连接关系组成,通过这五种连接可以完整的描述活动与活动之间的逻辑关系。
活动是指一种变换或操作,是组织机构过程的最基本单元。一个活动的属性由功能输入、输出,资源输入、输出、控制输入、输出和活动的描述等组成。功能输入、输出是指活动中要运作、产生的组织机构对象,它们描述了组织机构过程的物流,所以通常与上级过程的执行规律集有紧密联系。资源输入、输出是指活动执行所占用、释放的资源,包括执行活动所必须的设备、物料、人员等,它们不仅可以在一定程度上描述不同活动之间的竞争关系,还可以用于实现对过程的分析和优化;控制输入是指对活动进行控制和限制的信息单位或对象;控制输出是活动结束状态的信息单位集合;活动描述是与活动执行有关的具体信息,如活动的编号、名称、优先级、成本核算单位、开始时间、完成期限、执行者、负责人、所需资源等。
功能输入、资源输入、控制输入统称为活动的前条件,前条件对活动的发生有制约作用,只有所有的前条件都满足了,活动实例才能进入“活动”状态;功能输出、资源输出、控制输出统称为活动的后条件,后条件影响着后继活动实例的发生。
一个完整的工作流模型主要有工作流表示方法、工作流元模型、工作流模型接口和建模工具组成。
3 工作流模型的有向图表示
组织机构的一个完整的业务流程是由一系列最基本的生产活动按照一定的逻辑顺序和规则组成的,这些生产活动与他们之间的逻辑关系可以直观的映射成为一个由节点和连接弧组成的有向图。有向图中的节点即表示一个可执行的活动单元,连接于两个节点之间的有向弧即表示活动间的先后顺序关系。
3.1 有向图理论基础
对基于有向图理论的工作流模型,我们作如下定义:
1)有向图G ={N, L}为一个二元组,N= {n1、n2、n3….ns } 为节点集合,L= {l1,l2,l3….ls}为连接弧集合,其中li=(nj, nk)为从nj指向nk的连接弧,nj,nk∈N。
2)对于任意ni,nj∈N.若有连接弧l = (ni ,nj) ∈L,则ni为nj的一个前驱节点,nj为ni的一个后继节点,l称为nj的一个输入连接弧,或者ni的一条输出连接弧。
3)若N’包含于N,且N’={n’|(n’ ,n) ∈L} ,则N’为节点n的前驱节点集,记为Pre (n);
4)若N’包含于N,且N’={n’|(n ,n’) ∈L} ,则N’为节点n的后继节点集,记为Post (n);
5)节点状态:对于任意n∈N,有状态函数State (n) = {0, 1},当节点n处于非执行状态时,State (n) = 0;当节点n处于执行状态时State ( n )=1。初始时刻,任意State(n) = 0。
6)转移函数:对于任意l∈L,有转移函数Trans ( l )={0,1};如果Trans ( l ) = 1,则连接弧l容许发生转移(是否发生转移,则要取决于后面的演进规则):如果Trans ( 1 ) = 0,则连接弧不能发生转移。
7)演进规则:有向图的演进规则是由节点状态的改变与连接弧发生转移这两个动态因素相互作用而完成的,因此,规则包含如下两个方面:
(1)对于任意n∈N
● 当State(n) =0时,若存在l=(n’,n)发生转移,则State(n)=1;
● 当State(n)=1时,若节点n执行完毕,则State (n)=0;
(2)对于任意l=(n,n’) ∈L
● 当State(n) 从1变为0时,若Trans(1)=1,则连接弧l发生转移;
● 若Trans(1)=0,则连接弧l不发生转移,直至下一次State(n)从1变为0的时候再使用此规则。
3.2 节点类别
在基于有向图的工作流模型中有向图的节点代表了具有如下特征的多种实体:
1)与业务中实际存在的事件或活动有着直接的对应关系;
2)本身有着具体的或人为定义的含义;
3)能与其他节点形成一定的逻辑关系;
因此,区分不同类别的节点、对节点进行具体的类别定义不仅可以明确节点的含义,同时也增强了模型的语义。在这里我们赋予节点有如下几种类型的定义: 活动、子过程、开始、结束、同步节点。
3.2.1 活动
活动是指在一个不间断的时间间隔内为实现某一目标由人工或系统自动完成的一个原子任务,它是组成业务流程的基本单元。一个工作流管理系统的所有活动的集合覆盖了组织中各类业务流程的全部细节。活动按自动化程度可分为两类:人工型活动和自动型活动。人工型活动是通过工作表(任务表)的生成来通知相关人员,依靠人员手工或启动应用的方式来完成。自动型活动则是在工作流的驱动下直接驱动应用或利用自动化设备来完成的活动;这种自动型活动充分体现了工作流管理系统所实现的组织内部不同应用间的过程集成。
3.2.2 子过程
作为组成业务流程的最基本单元,活动是指不能被进一步分解的原子单元。但在流程较复杂时活动结点数也必然增加,且关系复杂,因此,我们引入了子过程的概念。子过程是一类能够分解的节点类型,它的内部可以包含所有元素类型,实质上是一个子业务流程。子过程的引入大大增强了模型的表达能力,使模型具有了层次的概念,并支持自顶向下的建模过程。同时,我们规定子过程可以出现在任何层次。
3.2.3 开始节点与结束节点
开始节点和结束节点是两个标志性的节点,用来标识流程的开始和结束。一个工作流程具有唯一开始点和结束点。
3.2.4 同步节点
在将一个实际的业务流程映射成为工作流模型时,很重要的一点,就是要保证活动间的逻辑关系不变。“与”和“或”是两类最基本的逻辑关系,它是表达各种复杂关系的基础,工作流模型必须具备表达“与”和“或”关系的能力。
我们在前面定义的演进规则,对于任意一个处于非执行状态的节点n,只要有一条输入连接弧发生了转移,那么该节点即可被执行,这实际上就表达了“或”的关系。即∪{n’∈Pre(n),l=(n’,n) ∈L,Trans(l)=1且l发生转移}。
对于“与”的关系增加同步节点S来表示,它对活动起协调、同步的作用。我们规定,同步节点S的动态行为完全遵循演进规则,所不同的是,当S处于执行状态时,即State(S)=1时,将判断它的所有输入连接弧是否发生转移;若是,则S的状态就由1变为0,即S执行完毕;否则S仍处于等待状态,并继续判断,直至满足上面的条件后才执行完毕、发生转移,State(S)=10。这意味着同步节点将使它的所有前驱节点都执行完毕后才继续推进流程,这实际上就表达了“与”的关系∩{n’∈Pre(n),l=(n’,n) ∈L,Trans(l)=1且l发生转移。
3.3 连接弧
连接弧作为有向图中的另一种组成元素表达了有向图中不同节点元素之间的逻辑关系。它从前驱节点指向后继节点,体现了节点状态的转移和有向图的演进。连接弧发生转移根据条件Trans(l)进行,如果Trans(1)≡1则为永真型条件,否则为不定型条件。对于不定型条件根据实际情况取值。在工作流模型设计时我们将连接弧分为三类:普通控制连接弧、条件连接弧和条件设定连接弧。
3.3.1 普通控制连接弧
普通控制连接弧,即永真型连接弧,它不需要任何条件的判断,只要前驱节点执行完毕,即可激活后继节点。
3.3.2 条件连接弧
条件连接弧,即不定型连接弧,它的转移函数的取值是需要在具体的工作流实例执行过程当中由工作流引擎或人工加以判断来确定的。如果条件成立即可执行后继的节点。
3.3.3 条件设定连接弧
条件设定连接弧可以用来动态的设定活动的执行条件、完成条件和时间要求等条件。工作流模型通过动态的设定这些执行和判断条件,可以大大提高工作流管理系统的柔性。
3.4 工作流模型的设计
从以上理论,我们可以得出工作流模型中的元素可以分为节点、连接弧和状态三大类;利用面向对象的继承性,我们设计了如图1所示的工作流模型。该工作流模型定义了三个基类:节点类、无条件连接弧和状态类。由节点类可以派生出7个子类:人工型活动、自动型活动、同步节点、协调节点、开始、结束,子过程。由无条件连接弧可以派生出条件连接弧和条件设定连接弧两个子类。子过程由除节点类外的各个类聚合而成(包括子过程本身)。
图1、工作流模型设计
4、工作流模型定义
工作流生成是工作流建模的核心,它根据用户在建模工具界面的输入产生可被工作流引擎解释执行的工作流。在工作流生成模块设计时,必须做两个方面的工作:
(1) 定义一个元模型,所谓元模型是指描述工作流模型的模型,用于描述工作流模型内部包含的各个对象和对象之间的关系及对象的属性。
(2)定义一套可以在工作流管理系统之间、管理系统与建模工具之间的交互过程模型定义接口,即工作流管理系统接口。
4.1 工作流元模型
工作流元模型包含了工作流定义、活动、转换条件、工作流相关数据、执行者、资源、需要激活的应用程序、数据窗口等基本实体,如图2。
4.1.1 工组流定义
工作流定义基本反映了业务过程的目的,即这个过程要实现的目的和最终达到的目标是什么。工作流定义一般包含诸如工作流名称、过程启动和终止条件、系统安全、监控和控制信息等一系列基本属性。
4.1.2 活动
活动相应于业务过程中的任务,主要反映完成业务过程需要执行那些功能操作。活动主要属性有活动名称、活动类型(原子级活动、子流程等)、活动的前后条件、调度约束参数(如最长处理时间、排队等待时间等)等。
4.1.3 转换条件
转换条件对应于组织机构经营过程中的业务规则和操作的顺序,如在订单处理完成后,执行生成计划制定。转换条件主要负责为过程实例的推进提供导航依据,主要参数包括工作流过程条件(flow condition)和执行条件(execution condition)。工作流过程条件是过程实例向前推进的条件,它可以认为是前/后工作条件的同义词。执行条件是指当任务到达时通知不同用户的条件。
图2、工作流元模型
4.1.4 工作流相关数据
工作流相关数据是工作流引擎执行任务推进的主要依据。工作流实例运行时工作流引擎主要根据工作流相关数据和转换条件进行推进。工作流相关数据的属性包括数据名称、数据类型和数据值等。如在银行贷款申请表处理后,根据申请贷款的值(如是否大于10万元)决定下一个的活动是什么,比如大于10万的申请请交业务经理,小于10万的申请交给业务人员处理。
4.1.5 执行者
执行者主要描述执行活动过程中参与操作的人员和组织单位。 执行者属性主要包括角色的名称、组织实体(Organizational entity)、角色职能等,角色或组织实体决定了参与活动的人员或组织单元。
4.1.6 资源
资源主要描述执行活动过程中所需要的设备、物料等资源。资源属性主要包括资源的名称、所需数量或工时、资源的使用成本等。
4.1.7 应用程序
需要激活的应用程序主要描述执行活动过程所采用的工具或手段。应用程序主要属性包括应用程序的类型、名称、执行路径及运行参数等。如在活动过程中调用ERP软件或决策软件完成某个具体的企业业务功能。
4.1.8 数据窗口
数据窗口(DataWindow),在每一个活动中可能包含一个或多个数据窗口,用于显示用户所需要的信息。
4.2 工作流管理系统接口
工作流管理系统接口描述了工作流定义输入与输出接口;它在建模方面组要覆盖了以下几个功能:
通信建立:建立各个参与运行的系统之间的通信连接,并且在完成协作后断开通信连接;
工作流模型操作:对过程模型的名称进行检索,并完成对过程模型对象的读、写等;
工作流模型对象操作:在建模工具中完成创建、检索和删除对象的操作和完成创建、设置和删除对象属性的操作。
5、工作流建模工具
工作流建模工具以工作流元模型为基础,通过分析不同类型的业务过程,采用有向图的方法对现实的业务活动进行形式化描述,建立业务过程到工作流模型的映射机制。并在此基础上进一步扩展模型语义,增强工作流模型的表达能力,在图论和集合论的理论指导下确定方便、实用且形式上严格规范的工作流模型。建模工具除了创建模型的功能之外,还包含模型分片、领域配置、应用维护等功能。
工组流模型由开始节点、结束节点、子过程、活动、同步节点、无条件连接弧、有条件连接弧、条件设定连接弧、注释文本等元素组成;在流程定义时还可以参考或引用组织数据、资源数据、业务过程,工作流相关数据、内部应用、数据窗口、外部应用程序等。通过这些元素的有机组合,工作流建模工具可以完整地描述组织内部典型的工作流程
工组流建模工具一方面为用户提供了一个建立规范的业务过程的接口,另一方面,所建立的工作流过程可以存储于工作流库中作为工作流引擎的输入,投入运转、执行并接受监控。建模工具的主要功能点如下:
(1) 提供建立工作流模型所需的各类基本元素,比如活动、子过程、连接弧等;
(2) 支持图形用户界面的基本操作,比如鼠标的点击与拖动;
(3) 提供用户定义各模型单元属性的对话框;
(4) 模型的保存与读取;
(5) 支持多层次建模;
(6) 与外部自动应用的接口。
6、结论
该工作流模型是UniFlow工作流管理系统的在流程定义阶段的一个重要部分,已在UniFlow中得到完整的实现。同时UniFlow工作流管理系统目前也已在电子政务中取得了广泛的运用。