张 晖
( 福建江夏学院电子信息科学学院 福建福州 350108)
工作流是一种反应业务流程的计算机化模型,它的作用是为了能够用计算机实现生产经营过程的全部自动化或部分自动化[1]。而工作流管理系统是指在一个或多个称为工作流机的软件上,用于定义、实现和管理工作流运行的一套软件系统。基于Petri 网的工作流引擎都有着非常清晰和严格的定义,这样就避免了不确定性和矛盾性等[2]。
Σ= (P,T;F,K,W)P 称为库所(place)集,T 称为变迁集(transition)集,F 称为流关系(flow relation),K 称为容量函数(capacity function),W 称为权函数(weight function)。
定义1.1:P∪T≠Ф (说明:P 或T 至少要有一个元素)
定义1.2:P∩T=Ф (说明:P 或T 是二类不同的元素)
定义1.3:F⊆P×T∪T×P (说明:F 是P 与T 之间的有向弧)
定义1.4:K 是P 容量(P 中能够容纳的Token的数量)的集合。
定义1.5:W 表示弧上的权(可以是权函数,也可以是权值)。
在图1 中,用矩形表示t (t∈T),用小圆圈表示p (p∈P),用箭头表示f (f∈F),用箭头上的数字表示w (w∈W),用圆圈中的数字表示k(k∈K)。
图1 petri 网简单示意图
规则1:工作流的业务元素表示为t,工作流的逻辑元素表示为p。该规则的含义是,通过区别业务元素与逻辑元素,使得各个流程元素的职责更加清晰,处理过程更加简洁。
规则2:对于任何p∈P,如果·p =Φ,则规定|·p|=1,称p 为开始节点。如果p· =Φ,则规定|p|=n (n∈1 -N),称p 为结束节点,整个网中可以出现多个结束节点。该规则的含义是,一个工作流流程只能有一个开始结点,但是它可以有任意多个的结束结点(注:1 -N个)。
规则3:定义1.3 可知,F 只能联接P 与T,任意两个P 或任意两个T 不能直接连接。该规则的含义是,业务元素完成工作后,必须将控制权交给逻辑元素,由逻辑元素完成工作流的路由控制操作。
规则4:任何一个t∈T,都有|·t|=1 且|t·|=1。这个规则表示,所有的t,都只能有一个输入p 和一个输出p。该规则的含义是,t 只能完成业务的操作,而不需要完成逻辑的操作。
规则5:除了开始结点与结束结点外,任何一个p∈P,都有|·p|>1 且|p·|>1。这个规则表示,除了开始节点与结束结点外的p,都可以有多个输入与多个输出。该规则的含义是,工作流的“分发(split)”与“汇聚(join)”等逻辑控制,由p 来完成,如图2 所示。
图2 分发(split)与汇聚(join)简易示意图
规则6:对于任何p∈P,p的容量K (p) =|·p|*|p·|。特别地,对于起始节点,其容量等于|p·|;对于结束节点,其容量等于|·p|
规则7:对于任意f∈F,如果f∈{(t,p)|t∈T∧p∈P},则W (f)= K (p)/|p·|;如果f∈{(p,t)|p∈P∧t∈T},则W (f) =K (p)/|·p|。
其含义是在同一工作流过程中,一个活动在另一个活动完成后就绪。如图3 所示。
图3 顺序路由模型
其含义是在工作流过程中,能够实现多个任务同时或以任意顺序执行。P1 是一个AND -Split任务,当T1 中有完成时它就实施,并且为T2、T3 各产生一个标记。P4 是一个AND -Join 任务,当T4,T5 都完成时它才开始实施。如图4 所示。
图4 并行路由模型
其含义是在工作流过程中,从两个或多个活动中任意选择其一完成。P1 是一个OR -Split 任务,当T1 中有完成时它就实施,并且选择T2、T3 其中一个开始。P4 是一个OR -Join 任务,当T4,T5 中的其中一个完成时,它才开始实施,详见图5。
图5 选择路由模型
根据规则5 以及几种路由模型可知,P 在解决逻辑控制时主要是解决两类路由选择问题,一类是汇聚join,另一类是分发split。由此,笔者针对这两种路由选择问题提出各自的解决方案。
前依赖规则(join)指明当前库所p的启动条件,启动条件是通过当前库所p的直接前趋结点t以及相应的状态标志来表示的,前依赖规则包含顺序、与汇聚 (And - Join)、或汇聚 (OR -Join)。只有当前库所p的所有相关前趋结点t 到达汇聚(join)条件指定的结束状态,当前库所p方可启动。
其解决方案如下:首先取出当前库所p的前依赖规则,判断前依赖规则的类型。假如是与汇聚(AND -Join)时,从数据库中取出所有已经执行过的f的权值w,只有当所有f的权值w 条件都满足(执行过)时,返回true,否则返回false;假如是或汇聚(OR -Join)时,只要有一个已经执行过的f的权值w 满足条件,就返回true。
具体实现如下:
当前结点发出“结束”请求时,将触发工作流引擎进行“后分发控制”,主要是依据在过程定义的当前活动结点与后继结点之间的条件满足情况启动相应的后继结点。分发(split)有“顺序分发” “或分发”以及“与分发”三种分发控制规则。其中, “顺序分发”与“或分发”规则其后继结点只有一个;而“与分发”规则其后继结点有多个。
其具体实现如下:
本文通过工作流引擎核心的数学定义以及规则说明,提出了基于petri 网的工作流建模方式,将工作流分离成逻辑与业务逻辑的思想。通过解决工作流模式的实现,提出了由逻辑结点完成工作流流程的控制,并给出相应的解决方案。不足之处在于,对于权对逻辑控制的影响目前还只是停留在权值上,希望以还能在权函数上予以加强。
[1]范玉顺. 工作流管理技术基础[M]. 北京: 清华大学出版社,2000. 31.
[2]王学伟,程耕国. 基于Petri - net的FireFlow 工作流的应用与研究[J]. 计算机导刊,2011,10 (2) : 38.
[3]吴哲辉. Petri 网导论[M]. 北京: 机械工业出版社,2006. 10.
[4]吴冰,冷文浩,张燕. 一种基于Petri 网的动态流程设计模型[J]. 微计算机信息,2010,27 (34) : 259.
[5]闻立杰,王建民,孙家广. 用着色Petri 网建模工作流模式[J]. 计算机科学,2006,33(6) : 135.
[6]邹海,储德新,高顺利. 基于Petri 网的工作流建模与分析[J]. 安徽大学学报( 自然科学版) . 2011,35 (3) : 33.