林国福
(闽江学院计算机科学系, 福建 福州 350108)
早期的企业信息系统业务流程硬编码在应用系统中,没有把流程管理和应用软件区别开来,而是将流程管理隐藏在了信息系统中.随着企业管理理念的不断更新以及计算机技术的发展,人们逐渐认识到企业的运作方式虽各自不同,但也有其的共性,即业务活动的流转方式、流转规则是具有共性的,这就是工作流的雏形.工作流中所指的工作或任务反映了一种变化及变化的过程,是可以用活动及活动之间变化的过程表示的业务流程[1].
1984年,FileNet 公司推出了Workflow Business System.1988年,ViewStar 公司推出了ViewStar,形成了图形化业务流程集成软件.1993年,国际上成立了工作流管理联盟(Workflow Management Coalition, WfMC),标志着工作流技术开始进入相对成熟的阶段.WfMC制定了一系列的标准,统一了不同工作流产品间的互操作.1998年,概念业务过程管理(Business Process Management, BPM)的提出,明确了工作流管理系统的核心功能就是业务过程的管理.工作流管理系统是继数据库管理系统和人机界面管理系统从信息系统中分离出来之后,应用软件的第三次分离.
但现有的工作流管理系统最大的问题是不能适应企业工作方式的不断改变,当企业需要调整现有的工作方式时,不可避免地会影响企业的正常运行.为了减少这种影响,维护企业的稳定性,企业工作流系统应该能动态地处理这些变动.然而传统工作流系统工作步骤和流程事先是由固定的模型定义了的,开始的过程基本上不支持修改.
本文研究了基于Petri网的企业动态工作流管理系统的建模问题,目的是解决企业工作方式的变动对工作流的影响,以达到工作流动态变化时只是流程方面的变化,而不影响整个企业业务流程的操作方式,从而使工作流系统在不同的条件下具有不同水平的处理变动和纠错的功能,同时自我查找变动,做出适应性的变化,减少企业管理上的漏洞.
1993年成立的工作流管理联盟给出了工作流定义:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行[1].为了实现不同工作流产品之间的交互,又给出了工作流管理系统的定义:工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行[2].同时,工作流管理系统的主要功能也被详细地加以说明:
(1)过程设计和定义:通过业务流程分析进行建模,利用建模工具完成实际业务过程的计算机化处理形式定义的转换.
(2)运行控制阶段:通过工作流执行服务软件反复进行过程实例化和控制.
(3)人机交互阶段:通过应用软件界面实现用户与应用工具之间的交互.
1962年,Carl Adam Petri 提出了一种过程建模分析工具——Petri 网,它是一种图形化描述过程的强有力工具.它以严格的数学推导为基础,但却是一个完全形式化的工具,使用它可以直观地描述一个工作流过程.Petri 网已经成为计算机异步成分之间进行通信的理论基础[3,4].
Petri网的结构元素包括库所(place)、变迁(translation)和有向弧(arc).Petri网模型中,系统的动态特性使用令牌(token)标识,令牌表示为包含库所节点中的圆点,它们在库所中的动态变化表示系统的不同状态[5].
Petri网需要满足两个基本的约束条件,第一个条件是工作流网必须有一个起始点和一个终止点,进入起始库所的令牌代表着一个过程实例的开始,而进入终止库所的令牌则意味着一个过程实例的结束;第二个条件是工作流网中不存在孤立状态的活动与条件,所谓孤立,是指经过该变迁或库所不存在由起始库所到终止库所的通路,所有的活动与条件都位于由起始点到终止点的通路上,数学描述如下[6]:
约束条件l:一个Petri网系统可以描述为∑=(P,T;F,K,W),其中P是有限各库所的集合;T是有限各变迁的集合(P∩T=φ);F(P×T)∪(T×P)是由一个P元素和一个T元素组成的弧的集合,即N的流关系.对于一个变迁t∈T,*t={p∈P[p,t]∈F}是所有输入库所的集合,t*={p∈P[t,p]∈F}是所有输出库所的集合.
图1 Petri网并行关系表示图
约束条件2:Petri网N=(P,T,F)是工作流网当且仅当上述N中存在两个特殊的库所:即起始库所*i=φ和终止库所*o=φ时,如果在PN中加入一个新的变迁t*={i},这时所有得到的PN都是强连接的.
一个典型的Petri网表示的工作流并行关系如图1所示.
活动A,B,C,D并行执行,活动A为一个与分支,它的执行使得c1库所中的令牌转移到库所c2与c3中,因而使活动B、C同时被使能,而且由于B和C分别位于两个互不相关的支路上,二者之间没有任何相互制约的关系,所以活动B与活动C能够以任意的顺序执行,可以同时开始,也可以有先有后.活动D为一个与连接,它确保活动B、C都执行完毕后流程才能够继续进行,起到同步B、C的作用[7].这些Petri网的表示形式完全表达了一个并行工作流原语:“与分支”、“与连接”的因果关系和条件.
我们使用Petri网描述流程和工作流模型,另外两个描述工作细节的规则和角色主要是通过分析业务流程而决定的.
基于Petri网络流程的定义如下:
Net(S,T,F):⟺S∪T≠φ∧S∩T=φ∧F⊆S×T∪T×S∧dom(F)∪cod(F)=S∪T
式中:dom(F)为定义范围,cod(F)为数量范围,S为库所集合,T为库所的迁移集合,N=(S,T,F)为Petri网,X=S∪T为元素的集合.
如果x⊆X是N的一个随机元素,则x={y|(y,x)⊆F}称为x的输入集合,x={z|(x,z)⊆F}称为x的输出集合,根据实际业务流程情况,我们假设∀x⊆X∶x∩x′=φ,∀x,y⊆T∶x′=y′⟹x=y,∀x,y⊆T∶x≠y⟹x′∩y′=φ.
权值随着系统的变化而变化,并且标记符的数量随着系统的状态而变化.我们称弧的权值为库所S的结点.库所S的标记符的数量就是权值.对于在迁移t弧上的结点,它的权值由迁移t的状态函数决定.
迁移T可以在标记符M处发生,迁移条件是:
∀s⊆t′M(s)≥WM(s,t)>0∧s′∈t′∶∀M(s′)+WM(t,s′)≤K(s′).通过这种迁移∀s⊆t′∶M′(s)=M(s)-1,∃s′∈t′∶M′(s′)=M(s′)=+1.
引入可变权值可以使系统具有自动控制的能力,但在建模阶段,结点和弧需要被定义,并且在执行阶段是不能改动的.为了支持工作流系统,在建模阶段我们可以使用动态网络技术对系统自动添加和删除结点和弧.
动态更改操作包括:工作流过程活动、转移信息、全局数据、局部数据、用户自定义数据类型等5种模型元素的操作.针对这些模型元素,可以进行新增模型元素、修改属性信息、删除模型元素这3种修改操作.一个工作流过程由若干活动(Activity)和转移关系(Transition)组成.转换关系包括4种控制类型:顺序执行、并行执行(AND)、选择执行(OR)和循环条件控制执行(DO-WHILE,UNTIL)[8,9].但由于工作流的过程与过程之间存在着数据关联,这种关联表示了过程之间参数的输入输出关系.对其进行动态更改时,很容易出现数据和控制的不一致,所以这种关联的控制是至关重要的,是实现动态更改模型的关键.
我们采用事务处理的方法来解决这一问题,当工作流中的某一个活动实例正在对一个用户数据进行写操作,此时就不应该再允许其他活动实例对该数据进行有关的读写操作;如果一个工作流过程在执行到某一个活动时被迫取消,那么在这一活动之前已经完成的活动所造成的影响也应进行回滚,恢复到过程执行前的状态.动态工作流模型中将过程以类似数据库中的事务来处理,即在动态工作流模型中将动态过程集合当成事务,在动态变化时,要么全部执行,要么全部不执行,其模型描述如下:
对于一个可适应工作流系统N=(T,F),其中T=(T1,T2,…,Tn)为所有工作流过程的集合,F=(F1,F2,…,Fm)为描述过程之间关联关系的规则集合,对于M=(T′,F′),其中T′∈T,F′∈F,如果Mi∈M,当Mi因为外部原因需要更改时,M中的所有过程都需要进行相应的更改,这时,我们称集合M为过程T的一个控制关联集合.当整个工作流中的一个过程因外部原因进行动态更改时,该集合M中的所有过程T要么全部进行更改,要么都不更改,从而保证了工作流执行过程中的数据一致性和控制一致性.
随着工作流的进行,当某一个当前实例需要修改时,这种修改是临时的.如果迁移Mi需要临时变化时,我们可以执行新的规则,用其他元素来替换Mi.由于迁移的有效范围是固定的,迁移是否发生并不是由全部状态所决定.只要迁移的条件满足,迁移立刻被实施,这称为局部确定性,因此其他结点可以被忽略,令f(Mi)=0,则Mi不可能发生,插入临时元素并且使f(Mi)=1,则实例可以继续执行.
在这个流程中M1,M2,…,Mi-1不受影响.如果其他相关的关联需要修改,则重复运行该过程就可以使系统返回正常状态.通过这种动态更改,一个动态的工作流可以在运行过程随时被停止、更新、删除而不影响整个工作流的最终目标.
本文提出了一种基于优化过程的动态自适应工作流模型,它解决了在执行过程中动态修改流程的问题.在此基础上,对工作流的动态更改模型的实现进行了描述,并将传统的数据库事务处理方法引入工作流系统中,实现了企业工作流的动态更改.在不影响企业工作流最终目标的前提下,满足了企业工作流系统动态管理的需求.运用这种工作流系统可以增强企业的灵活性和竞争能力,但这种模型还没有解决工作流运行时的数据共享问题.今后,我们将尝试把自适应的工作流技术和人工智能技术相结合,建立更为完善的智能化企业动态工作流系统.
参考文献
[1] 范玉顺,吴 澄.工作流管理技术研究与产品现状及发展趋势[J].计算机集成制造系统-CIMS,2000,6(6):1-7.
[2] 范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001:17-18.
[3] Dong sheng Liu, Jiang min Wang, Stephen C.F.Chan,etal.. Modeling workflow processes with colored Petri nets[J]. Computers in Industry, 2002, 49(3):267-281.
[4] WfMC96. Workflow Management Coalition[S]. The Workflow Management Coalition Specifications-Terminology and Glossary, 1996.
[5] 李 峰,郭玉叉,林宗楷.工作流管理系统中协同建模技术研究[J].计算机辅助设计与图形学学报,1999, 12(11):810-812.
[6] 余 鹏,周国富,屈婉玲,等.基于Petri网的工作流模式-工作流模式的分析研究[J]. 系统仿真学报,2003, (15):119-122.
[7] Beckjord E S, Cunninggham M A and Murphy J A. Probabilistic safety assessment development in the United States 1972-1990[J]. Reliability Engineering and System Safety, 1993, 39(3):159-170.
[8] Murata T. Petri nets: properties, analysis, and application[J]. Proceedings of the IEEE, 1989, 77(4):541-580.
[9] 李 峰,郭玉叉,林宗楷.工作流管理系统中协同建模技术研究[J].计算机辅助设计与图形学学报, 1999,12(11):810-812.