|
流程的角色辩识和形式化表示(赵卫东)有关面向角色的流程模型,近几年国外才有几位学者开始研究,相关的文献很少。目前出现了几种面向角色的流程表示方法,它们多是从基于活动的流程描述方法扩充而来。总体上这些方法又可分为非形式化的图形表示和形式化 本文关键字: 理论探讨 有关面向角色的流程模型,近几年国外才有几位学者开始研究,相关的文献很少。目前出现了几种面向角色的流程表示方法,它们多是从基于活动的流程描述方法扩充而来。总体上这些方法又可分为非形式化的图形表示和形式化的语言脚本表示。非形式化的图形表示方法相对较多,如基于通信的工作流(Communication-based workflow)和角色活动图(role activity diagram)建模方法。此外,也可拓展面向角色的可执行的流程模型RolEnact[1]。RolEnact是一种能生成可执行流程实例的建模语言,这种语言采用角色、状态、活动或事件等要素描述流程。角色通过执行活动改变自身状态,也可能改变其它角色的状态。RolEnact的基础在于对象技术常用的条件—活动模式,在角色的产生、高层角色内部的并发支持不足。有关面向角色的流程形式化描述,目前也出现了多种建模语言,如BPMI.org定义的业务流程建模语言BPML (Business Process Modeling Language)和工作流管理联盟WFMC的工作流描述语言WPDL等,下面将介绍的ConGolog是一种支持多agent合作的流程描述语言[2],其中流程被描述成多个相互作用的角色集合,每个角色有分担流程目标的责任,内部活动及其与其它角色的交互。下面仅讨论面向角色的流程模型角色的确定和形式化表示。 1、角色的辩识 组织的高层目标,如战略目标很难形式化描述,但可以逐步分解为具体的、容易形式化的子目标。流程是组织目标的实现方式,流程与组织目标具有同样复杂的层次性。流程的组织主体是担负一定责任的角色(有些学者认为角色表示参与者执行的有序活动集合),角色由具体的参与者(actor)执行。参与者包括小到个人、职能部门、跨部门的小组甚至组织联盟,高层流程完成的目标内容较多,往往涉及多个部门组成的虚拟角色。 角色的责任与组织的子目标是对应的,其识别过程主要有2种方法,即从上到下和从下到上的辩识方法。从上到下的方法如下[3]: (1)确定组织目标,一般用自然语言描述。可以通过与组织股东(stakeholder)头脑风暴式的交流、研究组织战略的文档(如组织使命)以及同行业的其他组织确定。 (2)目标的分解。为便于复杂问题的求解,可以从目标如何实现层层深入,得到具体的各级子目标。分解的结果可以用与/或目标图表示。由于目标之间存在一定的关系,此过程还需要注意目标之间的冲突、目标之间的影响。 (3)确定角色及其责任。这是与目标分解同步的过程。对于某个目标,可以确定当前组织中能完成此目标的角色,否则需要进一步精化目标。不同层次的目标有不同粒度的组织角色负责。 (4)对每个角色,描述其完成目标的过程,与其他角色的关系等。 组织实体通过执行一定的活动集履行其责任,达成一定的目标,实现自身的价值。这些责任与某种角色的内涵是一致的。从下到上的角色识别方法,如上面提到的角色活动图RAD,从流程模型(用活动描述)入手,通过把属于同一个组织实体的活动聚类,从而可以确定相应的角色(包括角色交互)及其目标。这种方法比较直观,容易从一般的流程模型转化,不需要对组织事先过多的了解。相对来说比从上至下的角色辩识方法容易。 2、角色的形式化表示 除了图形化的表示方法外,也有一些表示角色的形式化语言表示方法。如ConGolog是一种并发的逻辑编程语言[3],自然易用,其中每个角色有分担流程目标的责任、内部活动过程,角色之间的交互包含在角色的活动函数中。下面以文献4中例1贷款审批流程的RAD图为例说明。具体的ConGolog语法请参考文献2。 角色 committee: role Ccommittee responsibility … action SendMessage(sender,recipient,msg) … endAction proc DecideAtMeeting(self,app) if acceptable(app)then for b:Actor(b)ù PlayRole(b,Clerk)do SendMessage(self,b,éOKù ) endFor endProc proc main (app: Application(app)ù Has(self,app)?DecideAtMeeting(self,app)) endPro endRole 角色Clerk: role Clerk responsibility … Action Decide … endAction Action refer(b,c,app) … endAction Action SenseMessage … endAction action GiveDecision (b,app) … endAction proc Evaluate (self,app) if WithinGuideline(app)then Decideelse for c: Actor(c)ù PlayRole(c,Commitee)do Refer(self,c,app) endFor endProc proc main ( a: Submit(a)ù Received(a, self)? Evaluate (self,app) ) >> while true do SenseMessage if ù Empty(MessageQue(self)) then GiveDecision (self,app) endWhile endproc endRole 上述的角色形式化表示也存在一些问题,如要求建模人员熟悉情境代数(situation calculus)和并发逻辑编程语言ConGolog,比较费时,且组织流程变化后难于维护。为此需要一些建模工具的支持。 参考文献 [1] Keith Thomas Phalp, Peter Henderson, Robert John Walters, et al. RolEnact: role-based enact able models of business processes [J]. Information and Software Technology, 1998,40:123-133 [2] De Giacomo G, Lesperance Y, Levesque H. Reasoning about concurrent execution, prioritized interrupts and exogenous actions in the situation calculus[C]. IN: Proceedings of IJCAI’97, 1997:1221-1226 [3] Manolis Koubarakis, Dimitris Plexousakis. A formal framework for business process modeling and design [J]. Information Systems, 2002,27:299-319[4]赵卫东. 流程的角色模型[R], /docs/bpwebsite.asp, 文档 : 00.042.134本文由作者向AMT提供赵卫东 专栏责编:赵卫东 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 |
|
|