一种基于双状态的业务流程描述模型
2010-11-25郑云翔
郑云翔,李 磊
(1.华南师范大学教育信息技术学院,广东广州 510631; 2.中山大学软件研究所,广东广州 510275)
一种基于双状态的业务流程描述模型
郑云翔1,李 磊2
(1.华南师范大学教育信息技术学院,广东广州 510631; 2.中山大学软件研究所,广东广州 510275)
提出一种基于双状态的业务流程描述模型DSBPDM(包括业务流程模型和调度模型)来刻画以表单为中心的应用系统业务流程,解决其业务流程建模中的突出问题,包括:各类约束的严格描述、权限表示、流程关系、流程推进过程以及业务对象被调度和执行的全过程描述.实践证明采用该模型的业务系统更容易扩展和维护, 能较好地满足用户的需求.
状态; 业务流程; 业务流程建模; 流程推进
1 研究背景
以表单为中心的应用系统具有明显不同于传统软件系统的特点:(1)这类系统多带有服务性质,例如行政审批、证书申请等;(2)涉及的单位和用户较多,与业务紧密相关的表单数量庞大,操作繁杂:日常操作通常要面对成百上千个表单,要分别由不同用户对这些表单进行各种处理,如:用户填写、分派员报送、业务员报价、审核员审核、领导审批等;(3)需要实现业务流程规范化和电子化,为组织提供综合信息化平台.
通过对这类典型应用背景、业务流程、规章制度等做深入调查研究,我们发现以下规律性,并把其作为系统的主要需求:(1)大部分应用都有一个或少数几个关键表单贯穿始终:该表单一开始从无到有,其内容在后续的各个步骤中不断被添加、修改,直至所涉及的整项业务结束.该表单实际上代表了该应用的主要信息.例如,办理港澳通行证(通常就是申请表)和行政审批过程[1];(2)系统的业务流程通常带有强流程性、可重复性和复杂性.强流程性是指业务流程的执行有先后次序,个人不能随意更改,某些还具有法律约束;可重复性体现在业务流程的执行上;复杂性体现在与业务相关的表单数量较多、业务涉及的规则也较复杂,如前台工作人员仅能审查金额小于5 000的贷款申请等;(3)系统各类用户的关注点不同,需要同时满足对外和对内的各种需要.其中,对外是指面向用户,他们最关心所受理的业务的当前状态,以及在该状态下他们能做什么.对内是指面向系统的使用者,他们关注某个业务的当前进度、处理结果和历史;(4)应用系统的多窗口或多柜台特点产生了应用级别上的加锁问题:在某一时刻有无数个表单实例可供选择,当一位工作人员选择了某一个,则不允许其他人员对它进行处理,直到它被释放(处理完毕或取消).
目前,有许多关于流程建模的研究成果,主要包括:流程图、statecharts[2]、RAD[3-4]、UML活动图和状态图[5]、EPC[6]、工作流[7]、XPDL[8]、Petri网[9-11]、BPMN[12]、BPEL(4WS)[13]等.可以用主语、谓语、宾语三个维度作为参考点把它们划分成几类:a)以主语为中心:RAD;b)以谓语为中心:流程图、UML活动图、Petri网、EPC、工作流、BPMN、BPEL(4WS);c)以宾语为中心:UML状态图、statecharts;d)主谓宾混合:UML.我们认为,以主语为中心的方法仅适用于流程性不强的系统,以谓语为中心的方法不能很好地符合上述的需求,且构造的模型较为复杂.为此本文以宾语为中心来刻画业务流程,并且为了克服传统方法的不足,突出解决流程各类规则约束描述、权限表示、流程关系、表单被调度和执行全过程等问题,提出了一种新的基于双状态的业务流程描述模型(Double State-Based Business Process Description Model,DSBPDM).
2 模型概述
DSBPDM模型包含2个模型:业务流程模型和调度模型.其中业务流程模型以单个表单(宾语)为研究对象,以表单在其生命周期中的变化过程来定义流程,使用消息机制作为各流程之间交互的手段.它随业务系统、应用领域而不同,需要单独定制.而调度模型则完成了对表单被调度和执行的全过程描述,它不随应用而改变,相对固定.2个模型都以状态为核心和基础,其中业务流程模型中的状态称为流程状态(本文简写为状态),而调度模型中的状态称为调度状态,这也就是本文的“双状态”含义,它们构成了表单实例在运行中所处的格局,记作lt;流程状态,调度状态gt;(详见本文第三部分).下面分别详细介绍这2个模型.
2.1业务流程模型
定义1 表单(Form)是机构中的业务表格、单据、任务说明、凭证、证书等的统称,它作为业务数据的载体而存在,是业务数据的模式.表单中的各项目及取值分别称为表单项和表单项值.
定义2中的“业务操作”包含3个组成部分:约束、业务逻辑处理和发送消息,下文分别详细介绍.
2.1.1 约束 表单在其生命期中从一个状态转换到另一个状态的条件通常是复杂的,我们用一个具有较强表达能力的一阶谓词逻辑表达式来描述,并称这个表达式为约束公式(Constraint Formulas, CF),它类似于UML状态图中的监护条件[5],但描述能力强得多.约束包含3个部分:消息约束、规则约束和权限约束,其中消息约束用于描述本业务操作中需要接收(即等待)的那些消息及其关系;规则约束用于描述本业务操作被触发前需要满足的规则条件;权限约束则用于描述系统某角色执行该业务操作时所需要满足的权限.下文按照消息约束公式、规则约束公式和权限约束公式的顺序分别递归定义.
定义3 记消息约束公式为MCF.设rec(Msgu)是一个一元谓词符号(rec表示接收),其中Msgu是一个编号为u的消息,则: a)逻辑符号true和false是MCF; b)每一个rec(Msgu)都是MCF; c) 若rec(Msgu),rec(Msgv)是MCF,则rec(Msgu)rec(Msgv)、rec(Msgu)rec(Msgv)、rec(Msgu)、(rec(Msgu))都是MCF.
消息约束用于刻画流程之间的关系,这些关系可被灵活定义,如(rec(Msg2)rec(Msg4))rec(Msg3)表示如果消息Msg2和Msg4都到了,或者Msg3到了,则该流程可以继续推进(假设其他约束条件都满足).
定义4 记约束项为CT,则有:a)函数符号常量是CT,变量是CT; b)如果f是一个n元函数符号,t1,t2,…,tn是CT,则f(t1,t2,…,tn)是CT; c)如果Msgu是某个消息,v是其消息内容中的某个变量,则Msgu.v是CT.
定义5 记规则约束公式为RCF,则有:a)逻辑符号true和false是RCF; b)谓词符号常量是RCF; c)如果t1,t2是CT,则t1=t2是RCF; d)如果p是一个n元谓词符号,t1,t2,…,tn是CT,则p(t1,t2,…,tn)是RCF; e) 如果w1,w2是RCF,则w1、w1w2、w1w2、w1→w2、(w1)都是RCF.
一个典型的规则约束公式例子是(agegt;30area=‘Math’)(age≤30Msg5.feelt;5 000).
权限约束公式(ACF)的定义与RCF(定义5)完全一致.ACF使得系统业务流程定义时可轻易应对一些逻辑比较复杂的权限约束,如:“当是VIP客户且额度大于5万时仅部门经理有权限”可描述为:role=‘Mgr’type=‘VIP’feegt;50 000.
定义6 约束公式(CF)由MCF、RCF和ACF三部分组成,且满足CF=MCFRCFACF.
由上述定义可以看出,CF理论上可描述逻辑任意复杂的约束条件.其极端情况是truetruetrue,即true,表示该业务操作总是可以被无条件地触发.
2.1.2 业务逻辑处理 业务操作的第2个组成是业务逻辑处理(Business Logic, BL),它封装了表单状态发生转换时需要执行的一些业务处理,如根据某些计算公式改变某些变量的值,对数据库进行插入、更新操作,启动某个外部程序等等.它因应用而异,本模型仅以名称BLx来标识区分,并且当该逻辑处理程序执行成功时返回逻辑“真”.
2.1.3 发送消息(Send Message, SM) 在表单状态发生转换的过程中,可能需要与其它流程进行数据通信或信息关联,这属于流程之间的交互.它是通过消息进行的,并且消息的发送只能在业务操作被触发的时候,是瞬时完成的.由于一次转换可以发送多个消息,因此发送消息是由谓词符号send构成的合取式:SM=send(Msg1)send(Msg2)…send(Msgn).这些消息的发送目标可不同(多个发送目标),当发送成功时返回逻辑“真”.
2.1.4 业务操作(Business Operation, BO)
定义7 业务操作BO=(CF,BL,SM),其中CF是约束公式,BL是业务逻辑处理,SM是发送消息.
2.1.5 业务流程模型
定义8 业务流程模型(BPM)是一个五元组(States,BOs,start,FinalStates,Transition),其中States是流程状态集合,BOs是业务操作BO的集合,start是流程开始状态,FinalStates是终止状态集合(可为空集,表示没有终止状态),Transition是States×BOs→States的单值映射,代表状态转换.
定义8是定义2的形式化定义.正常情况下,表单一开始处于开始状态,此时如果某个业务操作被触发,则首先判断该业务操作的三大约束条件CF是否满足(求值为“真”),如果满足,则该业务操作可以被触发,此时调用一段业务逻辑处理程序BL(如果有的话),以执行与表单状态变化相关的一些操作.另外,如果需要与其他表单发生交互,则同时发送消息SM.当上述操作都成功执行(返回“真”)后,才改变表单的状态,使流程向前推进一步.这个过程一直执行下去直到终止状态(有可能没有终止状态,如嵌入式系统).
2.2调度模型
为了全面描述表单在其生命周期中所经历的变迁,对其被调度和执行的全过程进行定义和控制,我们把表单在被调度时可能经历的各种隐含状态作了一定的归纳和统一,得到以下6个调度状态: a)初始态(Initial):是一个伪状态,表示表单尚未创建.初始态仅与开始状态对应; b)就绪态(Ready):表示表单已经准备就绪,等待用户(人或系统,下同)的调度.就绪态与内部状态对应; c)运行态(Running):表示表单正在被用户调度.运行态与内部状态对应; d)挂起态(Suspended):表示表单正在等待某些消息,暂时不能参与调度.挂起态与内部状态对应,是两个或多个流程进行流程同步的主要基础; e)草稿态(Drafted):表示表单被设置为草稿,暂时退出并等待下次的调度.草稿态与内部状态对应; f)结束态(Finished):表示表单的生命周期已经结束,系统不能再对其进行调度.结束态仅与终止状态对应.这些调度状态之间的完整转换关系见定义9.
定义9 调度模型(DM)是一个三元组(StatesD,DOs,TransitionD),其中StatesD是上述的6个调度状态集合,DOs是10个调度操作DO的集合,DOs={新建,新建挂起,得到调度,转换成功执行,取消调度,挂起,唤醒,置草稿,恢复,结束},TransitionD是StatesD×DOs→StatesD的单值映射,代表以下调度状态转换关系:初始态×新建→就绪态,初始态×新建挂起→挂起态,就绪态×得到调度→运行态,运行态×转换成功执行→就绪态,运行态×取消调度→就绪态,运行态×挂起→挂起态,运行态×置草稿→草稿态,挂起态×唤醒→就绪态,草稿态×恢复→运行态,运行态×结束→结束态.
2.3DSBPDM模型
定义10 (DSBPDM模型) DSBPDM=(BPM,DM),其中BPM和DM分别见定义8和定义9.
由于DM独立于应用,不随应用系统的变化而改变,因此我们只需基于BPM来定义应用系统中特定的业务流程,而省略DM的定义.
3 应用实例和效果分析
一个审批事项申请业务简要描述如下:用户新建、填写申请表并提交后,由工作人员对其进行验证,若通过则提交部门主管预审,否则退回.预审通过后需要上级领导联合审批(为体现流程交互,以审批表为据进行联合审批),通过后进入终审.终审后申请表获得审批结果,若通过,则其在后续阶段被归档,结束流程;否则申请被退回.利用DSBPDM对本例进行描述(如图1所示),其中申请表业务流程P1的部分定义如下:BPM1=(States1,BOs1,start1,FinalStates1,Transition1),其中States1={start1,applying,aV,aP,aR,approved,final1},BOs1={new1,submit1,passv,notPassv,passp,notPassp,approve,notApprove,archive},start1是开始状态,FinalStates1是仅包含一个终止状态的集合{final1},Transition1是图1中的9个转换.一些典型的业务操作定义如下:submit1=(true(formNo≠″applyName≠″applyItem≠″applyAmountgt;1000)(role=′Public′role=′Clerk′),bls,true),passp=(truelevel≥3role=′chief′,blp,send(Msg1)),approve=(rec(Msg2)Msg2.result=′Pass′role=′clerk′,bla,true).限于篇幅对原例做了简化.其DM模型就是定义9.
利用DSBPDM描述的一个典型案例:一位叫Bob的用户需要申请某项审批,他首先新建一个申请表实例form1(纸质或电子版),它处于流程状态的开始状态start1和调度状态的初始态Initial(下面我们用lt;start1,Initialgt;来表示,并把这一关系称为“格局”).系统生成一个唯一的申请号,等待Bob填写必要的信息,这时form1处于格局lt;applying,Readygt;.接着,Bob填写申请表上的若干表单项(表单被调度),form1处于格局lt;applying,Runninggt;.填写完毕后,Bob提交(submit1),实例处于lt;aV,Readygt;.稍后,一个叫Alice的工作人员选择了它(实例处于lt;aV, Runninggt;),检查后执行验证通过(passv),实例处于lt;aP,Readygt;.接着,Alice的部门主管John选择了它(实例处于lt;aP,Runninggt;),按照相关规定进行预审,并填写意见.这时出现了紧急事件,John需要中断当前的工作.于是他通过“置草稿”把form1暂存起来(实例处于lt;aP,Draftedgt;).当John回来后,通过“恢复”操作把它重新调度 (实例处于lt;aP,Runninggt;),继续审核并执行预审通过(passp),实例处于lt;aR,Suspendedgt;.根据业务流程的定义,此时一个标记为Msg1的消息被发送到流程P2中并新建了一个审批表实例form2(因此form1需同步等待,处于挂起态).类似地,form2按照其流程定义被不断调度(其间需要上级领导联合审批jointExamine),当它完成自身流程后,form2给form1“回送”一个标记为Msg2的消息,消息内容为“审批通过”.因为form1的业务操作approve的约束条件得到满足,form1获得通过(实例处于lt;approved,Readygt;).最后,form1被归档备案,处于lt;final1,Finishedgt;.此时,Bob成功申请了他的该项审批.
图1 某审批事项的申请
从上述实例可看出,DSBPDM模型定义下业务流程的推进过程本质上是其实例格局的不断变迁,这有助于对以表单为中心的业务系统的流程行为进行操作语义(Operational Semantics)分析.目前,DSBPDM模型已成功应用于电子政务业务支撑平台及应用系统、广东省数字证书认证中心运营系统、云浮市电子政务基础平台一体化应用及行政电子监察等若干个实际项目开发中,实践证明:(1)以宾语为中心刻画业务流程,具有客观清晰的优点,与其代表行业的实际业务吻合度高,满足实际需要,具有较好的扩展性;(2)业务的相关步骤得到清晰的定义,并通过作用于表单本身消除了以谓语为中心进行描述的随意性,有利于规范业务流程描述;(3)业务流程通过说明性的方式定义,各类规则约束通过一阶谓词逻辑表达,能简便、灵活地刻画各类业务流程;(4)业务流程的执行过程以格局为实质和基础,有利于实现业务公开透明,满足各类用户不同的关注点;(5)调度模型对业务对象被调度和执行全过程进行描述,可对同一个表单的就绪态和运行态分别计数,从而解决应用级别上的加锁问题(对同一表单实例的n个并发访问),达到对应用数据的有效控制.
与XPDL[8]相比,DSBPDM模型能描述常见的以谓语为中心的业务流程.我们用它对XPDL定义[8]中的实例“定单登记系统”的业务流程进行了完整描述,限于篇幅此处省略.可见,DSBPDM模型的可用性较高.与Petri网[9-11]、EPC[6]、BPMN[12]等相比,BPM模型在业务流程的表示上有所不同,它不需要引入与、或、异或等连接子,业务流程的这类控制信息被“隐含”在消息约束公式MCF中,而且由于MCF的强大描述能力,能表达语义更复杂的流程交互关系,如链式、同时触发、嵌套、点对点、相似同步等(部分分类参考了文献[7]).与statecharts[2](适用于反应型离散事件系统)相比,BPM模型不需要连续不断地对外部和内部刺激进行实时反应,不会出现呈指数级增长的状态数目,且流程之间的通信、交互问题已通过消息机制解决,因而不需要在模型中引入层次、正交等概念.所以DSBPDM模型复杂性比Petri网、EPC、BPMN和statecharts等的都要低.实际上,Petri网适用于具有同步、并行、不确定性和资源共享等特征的系统,EPC适用于对业务流程建模设计、重构和仿真,BPMN适用于跨应用集成和与Web Service整合的应用,statecharts适用于反应型离散事件系统、控制系统、实时系统等,而DSBPDM适用于以表单业务流程为中心的业务系统.因此针对以表单为中心的应用系统业务流程建模,本文提出的DSBPDM要更准确和实用.
4 结束语
本文在对实际项目应用进行总结和提高的基础上提出了一种基于双状态(流程状态、调度状态)的业务流程描述模型,用于客观、准确描述以表单为主要载体的应用系统的关键业务流程.实践证明,本模型能有效解决流程各类规则约束描述、权限表示、流程关系、表单被调度和执行全过程等核心问题,提高软件开发效率,满足这类系统的各种特殊需求,同时有助于提高应用系统的灵活性.
[1] 叶鑫. 基于角色网络理论的行政审批系统模型及应用研究[D]. 大连:大连理工大学, 2005.
[2] HAREL D. STATECHARTS:A Visual Formalism for Complex Systems[J]. Science of Computer Programming, 1987, 8:231-274.
[3] AGUILAR-SAVEN R S. Business process modeling: Review and framework[J]. International Journal of Production Economics, 2004, 90(2):129-149.
[4] HAQUE B, PAWAR K S, BARSON R J. The application of business process modeling to organizational analysis of concurrent engineering environments[J]. Technovation, 2003, 23(2):147-162.
[5] RUMBAUGH J, JACOBSON I, BOOCH G. The unified modeling language reference manual[M]. New York: Addison Wesley Longman, 1999.
[6] KELLER G, NUTTGENS M, SCHEER A W. Semantische prozessmodellierung auf der grundlage ereignisgesteuerter prozessketten (EPK)[M]. Erschienen in der Reihe: Veroffentlichungen des Institutsfur Wirtschaftsinformatik (IWi), 1992.
[7] Workflow Management Coalition. The workflow reference model[R]. Document Number TC00-1003, Issue 1.1, 1995.
[8] Workflow Management Coalition. Workflow process definition interface XML process definition language[R]. Document Number WFMC-TC-1025, 1.0 Final Draft, 2002.
[9] SALIMIFARD K, WRIGHT M. Petri net-based modeling of workflow systems: An overview[J]. European Journal of Operational Research, 2001, 134(1):664-676.
[10] AALST W V D, HEE K V. Business process redesign: A Petri-net-based approach[J]. Computers in Industry, 2006, 29(1-2):15-26.
[11] LI X, LARA-ROSANO F. Adaptive fuzzy Petri nets for dynamic knowledge representation and inference[J]. Expert Systems with Applications, 2000, 19(3):235-241.
[12] Business Process Modeling Initiative. Business process modeling notation (BPMN) version 1.1 [S/OL].(2008-01-17)[2008-09-03]. http://www.omg.org/spec/BPMN/1.1/PDF.
[13] BEA, IBM, MICROSOFT, et al. Business process execution language (BPEL) version 1.1[S/OL].(2003-05-05) [2006-11-26]. http://www.ibm.com/developerworks/library/specification/ws-bpel/.
Keywords: state; business process; business process modeling; process forwarding
【责任编辑 庄晓琼】
ABUSINESSPROCESSDESCRIPTIONMODELFORDOUBLESTATE-BASED
ZHENG Yunxiang1, LI Lei2
(1. School of Educational Information Technology, South China Normal University, Guangzhou 510631, China; 2.Software Research Institute, Sun Yat-sen University, Guangzhou 510275, China)
To solve the special problems of developing form-based application system, such as strict constraint expression, authorization, process relation, process forwarding and full picture of the dispatching and execution of its business object, a Double State-Based Business Process Description Model (DSBPDM) to describe business flow is put forward, which comprises business process model and dispatch model. Practice shows that based upon this model, the application system is more extensible and fits users’ demand well.
2009-06-15
广东省教育部产学研资助项目(2006D90104003)
郑云翔(1979—),男,广东广州人,博士,华南师范大学讲师,主要研究方向:软件工程、网格计算等,Email:seven_zheng@163.com.
1000-5463(2010)01-0032-05
TP311
A