基于BPMN的业务流程一体化建模方法BPM业务分析员业务流程一体化建模为了给业务分析员提供一种简单易懂、直接支持计算机仿真和执行的可视化业务流程建模方法,提出了业务流程一体化建模概念及方法。
本文通过实际研发业务流程管理系统,验证了该方法的可行性。
0 引言业务流程建模是指用图形、公式、表格或文字描述业务流程的特性,回答为什么做、做什么、怎么做、谁做等问题。
文献指出业务流程建模方法主要有:①流程图(flow chart),是最早用于业务流程的一种图形化描述方法,易学习、好理解,但存在无法清楚界定流程界限、不支持层次化描述业务流程等问题;②角色活动图(Role Activity Diagram,RAD)和角色交互图(Role Interaction Diagram,RID),擅长描述角色与活动、角色与角色的交互关系,但不支持层次化描述业务流程;③IDEF0和1DEF3,IDEF0描述业务流程做什么,但没指明谁做;IDEF3回答了怎么做,但描述复杂业务流程难度大;④高级Pet“网有很强的数学基础,可以计算/仿真分析业务流程性能,如文献和文献,但用户的学习难度大;⑤统一建模语言(Uniform Modeling Language,UML)活动图易学习和使用,但模型的仿真和分析能力差。
此外,业务流程建模方法还有事件驱动过程链(Event-driven Process Chain,EPC)f4l及其扩展EPC、事件一条件一行为(Event—Condition-Ac—tion,ECA)规则等。
但是,这些方法没有一个可以同时满足业务分析员可视化设计、分析、仿真和执行业务流程模型需要。
业务流程建模是实现业务流程管理(BusinessProcess Management,BPM)的基础。
实施业务流程管理可以提高流程效率,增强企业竞争力,“执行力就是竞争力。
使用业务流程建模方法的终端用户是业务分析员。
对业务分析员来讲,最理想的建模方法是简单、易学、好用,支持可视化描述业务流程,可以验证模型结构正确性,计算/仿真分析模型性能,支持计算机运行模型的方法。
要实现这一目标。
需要研究如何将模型的描述符号、存储结构、元素语义、仿真机制、执行机制等融合在一起。
正是由于没有一种能同时满足业务分析员设计、分析、仿真与执行业务流程需要的建模方法,BPMN十XPDL+BPEL因此成为当前最流行的一种业务流程建模解决方案。
业务流程建模符号(Business Process ModelingNotation,BPMN)是业务流程管理倡议组织(BusinessProcess Management Initiative,BPMI)于2003年提出、被对象管理组织(Object Management Group,OMG)采纳的一种建模规范阳。
它提供的图形建模符号易被业务分析员理解,是目前最流行的业务流程可视化描述语言。
但是,BPMN 规范没有定义业务流程图(Business Process Diagram,BPD)的存储结构,Process元素语义不明,因此BPMN模型不能直接用于计算机交换、仿真、执行。
基于可扩展标记语言(Extensible Markup Language,XMI。
)的过程描述语言(XML Process Definition Language。
XPDL)规范阳3是工作流管理联盟(Workflow Management Coalition,WfMC)推出的一种业务流程建模方法,支持用BPMN图形符号描述业务流程,定义了业务流程图的存储结构和仿真语义,XPDL模型可用于交换,但Process元素的显示语义与执行语义混在一起,不利于计算机执行。
业务流程执行语言(Business ProcessExecution Language,BPEL)规范¨0]是结构化信息标准促进组织(Organization for the Advancement ofStruetured Information Standards,OASIS)推出的一种可以有效编制多个Web服务的执行语言,执行语义明确,可用于业务流程建模。
BPMN规范支持将BPMN模型转换为BPEL模型用于计算机执行,文献研究了将BPMN模型自动转换成BPEI。
模型的方法。
但BPEL模型的结构/半结构化描述方式对于非结构化业务流程图来讲,有时很难实现转换,对业务分析员绘制业务流程图有太多限制;并且这种转换是单向的,转换后得到的BPEL模型,业务分析员可能无法读懂。
为了统一XPDI。
和BPEL,文献基于XPDL元模型和BPEL元模型设计了一个元模型,但没有给出元模型的仿真与执行机制。
XPDL和BPEL先于BPMN提出,但XPDL和BPEL自身存在的问题,使得人们对其能否满足BPM需要存在疑惑。
鉴于现有业务流程建模方法存在一些各自难以解决的问题,有必要从根本上对已有方法进行改进,研究一种适合业务分析员学习、使用的新方法,为此,本文提出业务流程一体化建模。
业务流程一体化建模是指业务分析员可视化设计的业务流程模型可以被直接用于计算机仿真和执行。
BPMN规范提供的流程描述符号已被广泛认可,本文基于该规范研究业务流程一体化建模方法。
1 设计理念为更好地指导业务流程一体化建模方法研究,可将构成业务流程图的元素的语义细分为显示和执行两种。
BPMN规范将构成业务流程图的元素分为图形元素(graphical elements)和支撑元素(supportingelements)两类。
图形元素如Pool,Lane等,支撑元素如Process,Gate等。
BPMN规范定义Process是包含在Pool中的图形元素Activity,Gateway,Event的有序组合,逻辑关系通过图形元素Sequence Flow体现。
从可视化设计角度来讲,要在图中显示Activity,Gateway和Event元素,需要给出这些元素的形状、大小、位置等信息,这些可视为元素的显示语义;从计算机执行角度来讲,执行业务流程就是执行Process,执行Process需要执行Activity,Gateway 和Event,执行Activity就必须提供用户、工具、数据、变量等信息,这些可视为元素的执行语义。
组成Process的图形元素的显示语义对执行Process没有任何意义。
此外,本文遵循的设计理念还有:①业务流程建模方法应该以业务分析员为本,而非信息技术员;②非结构化方法比结构化方法更能有效描述业务流程。
2 支持业务流程一体化建模的元模型设计2.1 模型结构由于BPMN规范提供的图形建模符号易被业务分析员理解和使用,现已成为当前最流行的业务流程可视化描述语言。
以业务分析员为本,本文选用BPMN 1.2规范提供的图形建模符号可视化描述业务流程。
通过扩展符号语义,改进模型结构,设计了如图1所示支持业务流程一体化建模的元模型。
图1 支持业务流程一体化建模的元模型(1)基于元素语义可细分设计理念,元模型引入支撑元素Node来定义Process的执行语义。
BPMN元素中影响业务流程执行的图形元素有Activity,Gateway和Event,支撑元素Node继承和扩展了这些图形元素的执行语义,它们在元模型中只保留显示语义,但与Node关联。
在业务流程图中,有一个ActM—ty或Gateway或Event对象,就有一个Node对象。
这样做的好处是业务分析员可以通过配置图形元素属性的方式提供执行Node所需的信息。
(2)元模型借鉴了文献组织图形元素的方法,但将Process与Pool并列,并相互关联,有一个Pool就有一个Process,删除Pool时,对应Process将被删除。
与XPDI。
元模型(见文献[9])相比,图1所示元模型的图形元素组织方式有所改进,层次关系更明确,元素查询更便捷。
(3)基于非结构化方法能更有效描述业务流程设计理念,图1所示元模型没有用if,while,forEach等结构化语句来描述Process,与BPEI。
元模型(见文献相比,无需把BPMN模型转换成BPEL模型就能被计算机解释执行,避免了由于BPEL难以支持所有非结构化过程而对业务分析员带来的诸多建模限制。
(4)Participant定义有哪些实体(系统、组织、角色、用户)参与执行业务流程,此处“系统”特指控制业务流程运行的流程引擎;Application定义业务活动如何完成,是具有特定功能的软件/工具,元模型除了保留BPMN规范对Web服务的支持外,还扩展支持业务组件(用C++/Java/C#等编程语言开发,用户简单配置后就可被调用);Property定义执行业务流程时业务活动问传递数据所用的变量,其作用域视定义位置而定;在业务流程图下定义的变量可用于该业务流程图的所有Process,在Process 中定义的变量只能用于该Process;Typedefine允许用户扩展定义满足特殊需要的数据类型。
2.2 显示语义BPMN规范明确了Pool,Lane,Activity等图形元素的形状,但语义不够完整,缺乏显示位置、大小、所在页面、所属层次等信息,这些信息对层次化显示复杂业务流程图,降低理解难度是有用的。
相比BPMN,XPDL给出了比较完整的显示语义,本文借鉴其定义,通过改进扩展了BPMN图形元素的显示语义,如图2所示。
图2 BPM图形兀素显不语义扩展需要说明的是:①Page元素用来层次化组织业务流程图组成元素,它的ParentPageRef属性用来指向当前Page的上级,描述Page之间的层次关系,BPMN图形元素可以根据PageRef属性确定所在Page;②对BPMN图形元素来讲,Activity等元素只需知道其左上角顶点坐标及大小就可定位画出该元素,而Sequence Flow等元素却需要给出画线的起点、终点和中间点坐标.但不需指定大小。
2.3 执行语义当BPD用于计算机仿真分析或解释执行时,起作用的是Process,Node,Gate等支撑元素;因此,本节将根据BPMN 1.2规范给出这些元素的执行语义。
定义l Process。
Process是一个多元组,Process=(Id。
Status,Assignments,Properties,TypeDefines,Nodes,InputSets,OutputSets,AccessLev—e1),且满足下列条件:(1)Id与对应Pool的ld相同,Status,Assign—ments,Properties,InputSets 和OutputSets语义与BPMN 1.2规范相同。
(2)AccessLevel等于PUBLIC表示Process可被外部系统或应用程序调用,等于PRIVATE表示当前Process只能被其他Process的组成元素(比如子流程元素)调用。