【IT168 技术文章】
工作流是一种反应业务流程的计算机化模型,是为了在先进的计算机环境支持下,实现经营过程集成与经营过程自动化而建立的,可由工作流管理系统执行。
可被计算机执行是工作流模型区别于一般意义上的过程模型的本质特征。所以要求工作流模型不仅要描述活动之间的逻辑关系,还要定义执行活动相关的组织、资源和数据信息,以便计算机解释执行。
为了有效地集成业务过程模型和所需的信息系统模型,许多文献提出了基于面向对象的业务流程建模分析方法。同时,UML是软件界的一个统一的建模语言,有丰富的基于面向对象概念的模型元素及其图形表示元素,为不同领域的用户提供了统一的交流标准。
作为面向对象开发方法中的一种重要建模工具,UML已经在信息系统开发中得到了广泛的应用,许多学者也将它应用到了业务流程建模工作中。
尽管如此,UML活动图用于描述工作流的概念还不够完整,不够明确。所以其用于工作流的应用还是非常的少。
工作流+UML优势何在
工作流系统的建模方法主要有数据流程图(DFD)、功能语言(IDEF)系列、Petri网和统一建模语言等。
数据流程图可理解性强,有较好的计算机化能力,但是缺乏抽象机制;功能语言IDEF系列非常清晰、分层次地用图形描述过程的功能,但是缺乏动态分析能力;Petri网和UML是用的比较多的,也是用的比较好的建模方法和技术。
使用PETRI网描述的好处是:图形化的规范语义,基于状态而不是基于事件,成熟的分析工具等等。其缺点是:当业务流程较为复杂,如存在并发、冲突等情形时,高层次的形式描述存在局限性。
而采用UML这种面向对象的分析与设计方法来描述工作流管理系统,有以下几方面的优点:
(1)工作流管理系统是一个大型的软件系统,系统结构复杂,参与开发的人员众多。因此如何使所有开发人员对各自完成的阶段性成果很好地进行交流。以及如何统一各个模块之间互相调用的格式,成为采用UML方法的第一个优点。
(2)由于工作流管理系统涉及数据库、网络、分布式服务器以及经典算法实现等多个实现上的细节。因此使用面向对象技术建立起来的模型也应当具有这样概念不同的多个细节。
能够使模型具有强大的描述能力,并具有广泛的描述范围,多样的状态表示,成为采用UML方法的第二个原因。这一点,正是UML方法最为显著的优点,那就是它具有足够的表达能力来处理现代系统中的所有概念,如封装和构件而且由于它是综合了多种面向对象建模语言后产生的通用的面向对象建模语言,因此它具有种类繁多的概念与模型,并且对完整事物的描述也更加全面。
(3)UML对用户友好,以用例捕获用户需求,在描述系统静态结构方面十分优秀。并且UML模型与程序实现了紧密相连;UML还提供了扩展机制,可以随时对建模语言的设施进行扩展,以满足更多的需要。
改进的工作流过程元模型
在现有的软件开发技术下,大多数软件的实现都是复杂的,从工作流参考模型图可以看出,工作流管理系统是一个大型的软件系统,系统结构复杂。
解决复杂问题最有效的理论是分层理论,即将问题分为多个问题逐一解决模型不对现实世界的简化与抽象,它有助于对复杂问题进行分层,从而更好地解决问题。
这就是为什么要对软件进行建模的根本原因。并且,有效的软件模型也有利于分工与专业化生产,从而节省生产成本。
而结构是模型的有机结合,是一个系统的灵魂与主线。一个有效的软件系统就是在系统结构的支撑与带动下解决复杂问题的技术系统。
工作流模型是工作流管理系统的基础,同时也是工作流技术研究的主要方向。所以,涌现出了许多工作流模型。其中,比较典型的工作流模型包括:IBM提出的基于活动网络的过程模型——FlowMark工作流模型、基于语言行为理论的工作流模型、基于Petri网的工作流模型等。
但是,这些模型大都只关注工作流模型的核心“过程模型”,忽略了“过程模型”需要的信息、模型中活动的执行实体、活动需要调用的功能以及活动所需要的资源等。因此,并不能构成一个真正意义上完整的工作流模型。
本着“高内聚、低耦合”原则,研究人员开始把那些本身并不完整、依附于过程模型且为之提供支持的数据、组织、功能、资源等信息分离出来或加以补充,而形成具有相当独立性的模型。
比较典型的有ARIS模型、WIDE工作流模型等。ARIS模型包括功能视图、组织视图、数据视图、输出视图和控制视图。WIDE工作流模型由组织模型、信息模型与过程模型这三个子模型共同组成。青鸟工作流模型JBDelta由过程模型(Process mode1)、组织模型(Organizationmode1)、数据模型(Data mode1)和功能模型(Function mode1)四个子模型共同组成。
其中,过程模型是核心,其他模型为之提供支持。在各模型建立完后,需要按各模型间的关系把它们合成一体,从而得到完整的工作流过程模型。
根据软件工程的“问题分离”原则,为了灵活地表达复杂的过程逻辑并实现变化影响的局部化。青鸟工作流模型对工作流管理联盟WFMC制定的工作流过程定义元模型作了适当的改进,把汇聚、分支结构和它们的约束(AND、OR、XOR)从活动规约中提取出来。引入了一种新的元模型元素——连接符(Connector),即把所有控制信息规约从活动规约中独立出来。图1是青鸟改进的工作流过程定义元模型。
在改进的元模型中。核心元素是连接符(Connector)。根据化繁为简的原则,我们约束一个连接符的前模式或后模式至少有一个为顺序(SEQ)模式,从而定义了顺序(SEQ)连接符(可以省略),与(AND)连接符、或(OR)连接符和互斥(XOR)连接符。
UML活动图
活动图是UML中用于描述业务流程的最重要的工具,它提供了一系列的图形符号来支持对业务流程的建模,并提供对条件、并行和反复的逻辑行为的支持,常常用于对系统动态方面建模。
UML活动图本质上是一个流程图。它可以用于描述活动到活动的控制流。除此之外,还可以定义参与到活动中的对象及其角色、状态和属性的变化。UML活动图一般包括以下几个元素,而这些元素在概念上和工作流过程元素有很多相似甚至相同之处:
状态:一个活动图是一个特殊的状态机。其中所有的状态(或者至少大多数)都是动作状态或活动状态。动作状态代表一个可执行的原子计算,一个动作执行;活动状态代表非原子的,可以进一步分解的复合计算。所以在为工作流建模时,我们利用活动图中的状态建模工作流过程活动(原子活动和非原子的块、子流程)。活动是工作流过程中的一个逻辑步骤或任务,是工作流过程的重要组成部分。
转换:规约的是流转关系,显示从一个活动或动作状态到下一个活动或动作状态的传递。对应于工作流模型中的转移,描述了流程的路径。转换上所附的监护条件是转移发生的条件,对应于工作流中的转移上附着条件。用来决定工作流执行路径。
对象:描述一个活动图中涉及的事物,可能是活动的输入或输出。在UML活动图中,用带有向箭头的虚线表示了对象和对它们进行创建、撤销、修改和使用的活动之间的依赖关系。
在控制逻辑方面,活动图提供分支和同步棒对业务逻辑的条件和并发行为进行描述。分支是多个控制流中的排它选择。只有一个控制流被选择,而同步棒描述的是并发的控制流。它们分别代表了工作流中的互斥连接符和与连接符。
为了表示业务的开始和结束,活动图使用了开始活动和结束活动的符号。我们继续沿用活动图中开始和结束活动的概念,标志工作流过程的开始和结束,不针对具体任务的空活动。
通过前文的介绍,我们可以发现活动图建模工作流的便利之处。但是用活动图描述工作流,还存在着不足。
例如并不是所有的用于汇聚或者叉分控制流的连接都能用活动图直接的建模。活动图中存在和与连接符、互斥连接符等同的构造模型,但是没有构造型和或连接符等同;组织元素对于活动的职责可以通过把活动放在代表组织元素的泳道中来实现,但是泳道不足以建模准确的组织职责,而这些职责对用于支持工作流管理系统的执行的工作流定义是很重要的;而且活动图中没有对工作流所需应用的建模支持。
工作流过程图
为了增强活动图为工作流建模的完整性和准确性,我们提出了对活动图进行扩展。在活动图为工作流建模时,我们发现用户常常关注与活动进行协作的信息实体的描述。也就是说,在活动图的这种应用中,对对象和对象流的建模显得特别重要。所以我们在扩展活动图时,也突出强调了对对象和对象流的扩展。
在扩展后的工作流过程图中,我们把对活动负责的组织元素从泳道中脱离出来,用参与者(Org—element)独立表示。
参与者是根据属性、资格和/或技艺划分的一类人或是自动机,它执行过程中的活动,其形态可以表现为部门、工作组(团队)、职位、人员、角色、资源。在JBDelta中,过程模型和组织模型是相对独立的,通过调用组织模型信息为活动动态分配参与者。
工作流过程图同时扩展了新的被调应用(Fun—element)构造型,它代表被活动调用的应用。绝大多数情况下,活动都有被调应用。例如占工作流绝大部分的交互活动和自动活动都要采取手工或自动的方式使用被调应用,而且一个被调应用会使用工作流相关数据。但活动也可以没有被调应用。例如开始活动、结束活动和非原子活动(块、子流程)没有被调应用。
而功能模型(Function mode1)、组织模型(Organization mode1)和数据模型(Data mode1)分别定义了支持工作流过程的三个相对独立的信息模型,它们是工作流中的分组元素。组织模型以职责、权限的形式定义了部门、角色、职位员,资源等组织信息;数据模型标识和规约了工作流过程或活动涉及的数据信息;功能模型定义了过程或活动中所具备或调用的功能信息。
可参看表1列出的工作流过程图中扩展的构造型。
应用工作流过程图
工作流过程图增强了过程模型中活动逻辑的描述能力。利用工作流过程图中的转移、分支、同步棒和或连接,可以定义过程模型中的顺序、并发、互斥选择、或选择、反复等控制流逻辑。
UML中,扩展的构造型(stereotype)可以用特殊图形来表示,也可以把构造型的名字用书名号(<< >>)括起的方式表示。
图2(见上页)显示了一个工作流过程图表征的入学的过程。上图是高层次的工作流过程模型,定义了活动和支持它的组织模型、数据模型、功能模型之间的关联;下图显示的是用对象描述的具体工作流过程,定义了活动和支持活动的组织模型、数据模型、功能模型中相应的参与者、被调应用和相关数据,是左边模型的细化。
工作流过程图主要用途表现在基于青鸟的工作流过程元模型描述工作流。它充分利用UML是一个OMG标准并广泛被应用的语言的优势。
在我们的方法中,每一个工作流过程都用工作流过程图描述,定义了工作流中的具体活动以及执行活动所需要的信息,支持完整的工作流概念。
工作流过程图描述了工作流过程模型内部的各个元素及元素之间关系等。工作流过程模型按照各模型之间的关系把过程活动、活动的逻辑以及执行活动所需的参与者、数据、被调应用等信息集成到一体,从而得到完整的工作流过程。
工作流过程图建模工具的设计
根据前文中提到的研究,我们设计实现了工作流过程图建模工具JBMOD。相应地,我们也对XPDL的语法结构进行了扩展,用以描述JBMOD过程模型,并将扩展后的过程定义语言称为EXPDL(Extended XML Process Definition Language)
JBMOD采用MVC(Model—View—Controller)的设计模式。图3展示了建模工具JBMOD的类图设计。
模型(Model):存储了流程信息,是独立于外在显示内容和形式的情况下的业务逻辑的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系。
在JBMOD中,我们用EXPDL描述存储模型信息。视图(View):从模型中获得信息。把表示模型的数据及逻辑关系和状态信息以特定的形式展示给用户。包括树型视图、设计视图和EXPDL视图;控制器(Control):处理用户与软件间交互操作,接受用户的输入。将输入反馈给模型,进而实现对模型的计算控制。它是使模型和视图协调工作的部件,包括树型控制器、设计控制器和EXPDL控制器。
JBMOD通过图形界面实现以图形拖拽的方式进行工作流过程模型的定义,并最终生成EXPDL描述的文本形式的模型文件。
为了有效地集成业务过程模型和所需的信息系统模型,基于UML的面向对象的业务流程建模方法已经得到了广泛的应用。UML也由于其与面向对象的信息系统开发模型的密切关系而得到了进一步的研究和推广。