动态工作流元模型研究

2024-07-08

动态工作流元模型研究(精选5篇)

动态工作流元模型研究 第1篇

关键词:动态工作流,工作流元模型,过程定义

1 引言

在企业与政府的信息化建设中,以工作流技术为核心的信息管理系统是提升管理水平的重要手段,但现实中业务流程的可能变化往往使得固化的工作流难以适应,因此,建立工作流并使之可以具备一定的灵活性、开放性及与外部交互的能力就显得十分必要。

传统的工作流模型大多是用来处理可预见的、可事先给出完整定义的流程[1],然而随着社会的发展,企业或政府环境的持续变化、目标的不断调整,现代流程更多地表现为一种动态流程,多变性和不确定性已成为其内在的特点,因此,需要采用动态工作流的方法来适应这种变化。提高工作流的动态性,文献[2]采用集成外部工具的方法,文献[3,4]采用提供用户原语或命令操作的方法,这些方法试图使一个工作流系统具备动态的自适应能力,但由于操作过于复杂,难于应用于实际系统;另外,分析工作流系统的基本特性可以发现,工作流业务逻辑与实际应用往往是分离的。因此,本文在工作流的过程定义中(业务逻辑)充分考虑了工作流的动态特性,配合执行阶段(应用)的处理,从更基本的层次解决工作流动态性的问题,即建立动态工作流元模型。

基本的工作流元模型是由工作流管理联盟(Workflow Management Coalition,WfMC)定义的,但该元模型对流程动态变化的因素缺乏支持,因此,一些学者对工作流元模型进行了改进或扩展[5,6,7,8],这些元模型有的实现过程相对复杂,有的不能很好支持复杂业务流程执行较大变动的需要。本文建立的动态工作流元模型的目标是能够更好地满足业务流程动态变动的需求。

2 工作流元模型建立

2.1 优化的工作流元模型

由于工作流不仅需要明确地表达经营过程中的活动以及活动间的关系,而且还要对活动间所传递的信息、活动的执行实体、活动所需要的资源等方面进行定义,这样才能构成一个完整的业务过程模型。为了使工作流元模型在描述信息、组织与资源上的能力更强,本文把相关描述部分扩充为较为完整的独立模型来描述工作流中涉及的有关组织、资源和信息的结构,从而辅助过程模型实现对业务过程的全面描述。工作流元模型通常涉及相互关联的三个子元模型[9],如下:

(1)过程定义元模型,该模型元素用于定义业务流程,控制工作流的执行情况等。

(2)组织机构元模型,描述单位、部门、人员的组织关系以及所担当的角色之间的关系。

(3)相关数据元模型,反映工作流“生产”和“消费”的数据以及它们之间的流动关系。

工作流元模型的核心是过程定义元模型。过程定义元模型规约出元素类型的一个基本集合,这些元素类型适合于相对简单的过程定义,工作流开发人员根据需要可以对该元模型进行适当的扩展。一个工作流系统的灵活性和自适应性在很大程度上取决于过程模型的动态支持能力,所以一套能够描述动态特性的元模型有利于过程模型对动态、灵活性问题的解决。

一般而言,工作流可分为建模阶段和运行阶段。建模阶段是对工作流流程进行形式化的定义,而运行阶段是工作流服务对工作流流程定义进行解释并执行。由于运行阶段存在诸多不确定的因素,建模阶段无法完成所有的预先定义,必须等到实际运行时才能确定相关的动态因素,或者由于业务需求或者政策的变更,需要修改原定义的业务流程等。这些动态因素主要包括活动的参与者、活动的迁移路径、迁徙规则等,它们也正是构成工作流过程元模型的主要元素。在工作流管理系统运行期间,活动实例之间通过定义的流转规则进行互相激活,从而驱动整个工作流程的运转。因此,通过改变这些元素,就可以改变活动实例之间的连接关系,从而使活动之间能够构成动态的连接关系,这也正是动态工作流所需要的。

因此,本文主要针对工作流元模型的过程定义进行优化,根据工作流管理联盟WfMC提出的经典工作流元模型进行改进,提出一种优化的工作流元模型,如图1所示。

在此工作流元模型中,把活动中的易变元素如汇聚、分支和约束(AND,OR,XOR)等连接类型从活动中分离出来并进行重定义,与重定义的转移条件结合在一起,产生一种新的过程定义元模型元素——路由器(Router),这样就把活动中最频繁的动态因素提取出来封装隔离,当用户需要更改流程的流转时,可通过路由器的修改或重定义引发工作流流转类型的安全变更,而无需更改活动本身。路由器由连接装置和转移条件两大部分组成,连接装置负责活动之间的连接机制,标明活动的前驱和后继活动,转移条件则定义了活动(包括活动的子类)之间的流转路径以及产生转移的约束条件,这样,当需要在原流程中增加或者删除一个活动时,只需要新增或者修改一个路由器中的连接装置和转移条件即可,极大地方便了工作流流程的动态变更。

优化的工作流元模型使得系统对一些无法预计的动态变更因素能够在系统建模阶段和运行阶段进行动态的变更,提高了工作流系统的应变能力和适应能力;同时,可以通过优化的工作流元模型,对定义时不确定的流程进行动态的展开,完成流程的动态执行。

2.2 优化的元模型形式化语言描述

工作流过程定义语言(Workflow Process Definition Language,WPDL)是WfMC元模型的一种文本描述语言,其语法采用类似巴科斯—诺尔范式的格式[10]。作为一个标准、通用的工作流定义语言,WPDL定义了一个最小集合的工作流建模实体与属性,提供了一般意义下的公共交换格式,且已经在多家厂商的工作流系统中得到支持,因此,需要应用WPDL对优化的工作流过程定义元模型进行修改和扩展。WPDL中描述了七个实体以及它们的属性,七个实体分别为:工作流模型定义、工作流过程定义、工作流活动定义、转换信息、工作流应用声明、工作流相关数据、工作流参与者声明。每个实体都有一个独一无二的id属性,为了便于理解和使用也使用NAME、DESCRIPTION属性,下面分别给出几个主要优化和扩充的过程元模型元素的定义格式。

在WPDL中,每一条语法规则都是一个产生式,规则的左边(标识符)和右边(表达式)用“::=”进行连接,其含义是左边可以由右边代替或由右边产生;右边的表达式可以是标识符、关键字以及特殊字符的组合。关键字是语言的核心部分,用来刻画WPDL过程模型中的各种组成部分以及相应属性,由空格符分隔,并且区分大小写,出现在方括号“[]”中的关键字或标识符表是可选的,可以使用一次或者不用;特殊字符组合“/*”、“*/”以及“//”用来作为注释的标注。

在动态工作流模型中,将活动划分为两种:一种是程序活动(atomic activity,也叫原子活动),是指在流程建模阶段能给出完整定义的活动,它为活动绑定了一段程序代码,当活动开始时,相应的程序就开始执行;另一种过程活动(process activity)则是指在活动的基础上嵌入一个过程,又叫子过程,当活动开始时,也就开始了相应的过程。

过程是由一系列具体的活动组成,为完成某一预定目标而定义。一个已经存在的过程模型可以作为子流程被引用。工作流过程定义构成了工作流模型的主体部分,因为它包含了组成模型的所有活动以及转移信息。过程的定义格式如下:

<activity list>活动列表是描述过程中所包含的活动集合,它可以是程序活动,也可以是过程活动。<activity list>中除了一般类型的活动以外,还有两个特殊的活动,即开始活动(Begin-Activity)和结束活动(End-Activity)。开始活动是业务过程模型的入口点,初始化流程的相关数据,通常用来把输入参数传递给过程;结束活动是业务过程模型的结束点,用于收集来自其他活动的数据,并作为这个过程的输出参数,同时负责把工作列表中的任务(task)存入历史记录库备查。<router list>为路由器列表。<status list>为活动状态列表,一般为:准备(ready)、运行(running)、终止(terminal)、完成(complete)、通过(agree)及未通过(disagree)等。

在工作流过程模型的头定义中包含了该过程模型一般的说明性信息,比如模型创建时间、创建者姓名和工作时限,等等,它的定义格式如下:

活动是工作流中一个逻辑步骤或环节的具体任务,是流程执行中的最小单元,要求相应的参与人员完成人机交互或者由计算机自动进行处理,活动的定义格式如下:

对于活动列表中的每一个活动,<Activity Kind Information>描述了该活动是怎样被执行的,包括活动的参与者、活动调用的应用、活动的输入和输出参数、活动开始和结束的方式等的信息。<Select Compose Rule>选取组合规则是在活动类型为过程活动(“黑盒”)时,如何动态地选择合适的活动,并组建成一个子流程来替代“黑盒”的规则集合。

路由器主要定义了过程中连接所有活动的连接弧的信息以及弧上所定义的转移条件,是对活动执行完毕后如何发生转移进行描述,也就是定义了与活动相连的转移结构,它们体现了过程的控制逻辑。

在路由器中,根据前驱活动的状态和转移约束来决定后继活动的转向,前驱和后继活动列表表示路由器连接的两端活动,当活动的状态变迁时,若条件满足,则根据路由器产生转移,转移的同时触发另一个行为,其中的条件为由运算符与状态组成的逻辑表达式,行为相当于一个活动,因此,把过程或活动转移所涉及到的状态、连接装置和转移条件三大元素结合起来定义为路由器。

3 元模型应用实例

下面以某政府行政审批业务流程设计为例,简要说明动态工作流元模型所具备的动态支持能力及其变更后的WPDL语言描述。

该业务旧的审批流程为:申请人填写申请资料后,交由行政服务中心窗口人员进行申请处理;受理的申请进入申请审查环节;审查人员审查申请;通过的申请进入领导审批环节,审查不通过的申请直接进入发放决定书环节,资料不全的申请返回给申请人补正资料;领导审批后进入发放决定书环节,发放决定书人员根据领导意见和审查意见来决定发准予许可还是不予许可决定书。新的审批流程中,根据行政审批相关政策法规流程增加业务核查步骤,业务流程需要调整,在审查通过之后要加入现场勘查环节,现场勘查之后才进入领导审批环节。如图2所示为某政府行政审批业务流程图的一部分。

图2中(a)是原流程,其中活动为A1=申请审查,A2=领导审批,A3=发决定书,A4=准予许可,A5=不予许可,A6=现场勘查。路由器为:R1,R2,R3,R6;对于活动的状态,这里设置为:S0=通过,S1=未通过,S3=完成,S4=暂停,S5=补正。图2中(b)是更改后流程,其中的虚线部分是发生了流程变更的部分,新增了活动A6,连接在活动A1后面成为活动A1的后继活动,活动A6是活动A2的前驱活动。由于改进后的工作流元模型进行了约束的分离,并且与转移条件组合成路由器,所以整个流程的调整只需部分修改或增加路由器R1、R6的部分参数,而无需修改活动本身的具体事务处理,从而使得元模型具备动态和可复用的特性。修改后的路由器R1、新增路由器R6如图2所示。

通过该实例分析可以得出,在应用了本文提出的动态工作流元模型后,使得工作流具备了下列的特性:能动态定义、修改工作流的过程定义;能够在工作流执行阶段动态增加、减少以及修改活动;能够在流程执行阶段动态改变工作流的流程,如跳过某段流程、回滚某段流程;能够在流程执行阶段动态改变参与者所拥有的活动实例;能够在定义不完整的情况下继续执行流程。

4 结论

随着信息化的发展要求,企业与政府需要对旧的管理模式和管理流程进行不断地调整与改造,作为业务流程管理的工作流技术也需要进行相应的优化以适应该动态调整过程。针对现有工作流元模型动态性不强、实现复杂的问题,本文建立了一种优化的工作流元模型,该模型可以很好地对工作流的动态性予以支持,并具有可操作性强的优点;通过应用实例说明,该工作流元模型为工作流的设计实现提供了一种较好的方案。该方案已经应用于某政府行政业务审批流程系统开发实践中,结合行政审批法规规定及贯彻落实,取得了良好的实际效果。

参考文献

[1]W M P VAN DER AALST,S JABLONSKI.Dealing with workflow change:identification of issues and solutions[J].International Journal of Computer Systems,Science,and Engineering,2000,15(5):267-276.

[2]J HAAKE,W G WANG.Flexible support for business process:extending cooperative hypermedia with process support[J].Information and Software Technology,1999,41(6):355-366.

[3]F CASATI,S CERI,B PERNICI,G POZZI.Workflow evolution[J].Data and Knowledge Engineering,1998,24(3):211-238.

[4]M REICHERT,P DADAM.ADEPT flex:supporting dynamic changes of workflows without loosing control[J].Journal of Intelligent Information Systems,1998,10(2):93-129.

[5]M MOMOTKO,K SUBIETA.Process query language:a way to make workflow processes more flexible[C].Lecture Notes in Computer Science,Springer,Berlin,Heidelberg,2004(3255):306-321.

[6]A KUMAR,J A WAINER.Meta-workflows and ESP:a framework for coordination,exception handling and adaptability in workflow systems[C].Lecture Notes in Computer Science,2004(3095):13-27.

[7]蒋国银.工作流元模型的实现方法与实例分析[J].科技管理研究,2008(3):189-191,194.

[8]蒋国银.扩展工作流元模型研究[J].科技管理研究,2006(6):204-206,218.

[9]赵文,胡文蕙,张世琨,等.工作流元模型的研究与应用[J].软件学报,2003,14(6):1052-1059.

动态工作流元模型研究 第2篇

土地利用动态变化的空间测算模型研究

The spatial calculating analysis model is based on GIS overlay. It will compartmentalize the land in research district into three spatial types: unchanged parts, converted parts and increased parts.By this method we can evaluate the numerical model and dynamic degree model for calculating land-use change rates. Furthermore, the paper raises the possibility of revising the calculating analysis model of spatial information in order to predicate more precisely the dynamic changing level of all types of land uses. In the most concrete terms, the model is used mainly to understand changed area and changed rates (increasing or decreasing) of different land types from microcosmic angle and establish spatial distribution and spatio-temporal principles of the changing urban lands. And we will try to find out why the situation can take place by combining social and economic situations. The result indicates the calculating analysis model of spatial information can derive more accurate procedure of spatial transference and increase of all kinds of land from microcosmic angle. By this model and technology we can conduct the research of land-use spatio-temporal structure evolution more systematically and more deeply, and can obtain a satisfactory result. The result will benefit the rational planning and management of urban land use of developed coastal areas in China in the future.

作 者:张新长 潘琼 赵元 ZHANG Xinchang PAN Qiong ZHAO Yuan  作者单位:张新长,赵元,ZHANG Xinchang,ZHAO Yuan(Department of Remote Sensing and GIS Engineering, Sun Yat-Sen University, Guangzhou 510275, China)

潘琼,PAN Qiong(Map Press House of Guangdong Province, Guangzhou 510075, China)

刊 名:地理学报(英文版)  ISTIC SCI英文刊名:JOURNAL OF GEOGRAPHICAL SCIENCES 年,卷(期):2004 14(3) 分类号:P9 关键词:land use   dynamic change   spatial calculating analysis model  

动态工作流元模型研究 第3篇

UML[1]是面向对象组织(OMG)提出的建模语言,能在各种抽象层次对系统进行描述和建模,被广泛应用在系统的设计阶段。如果在设计阶段就对UML模型进行验证,能尽早地发现系统错误,提高软件质量,减少开销。然而,目前的UML规范缺乏精确的形式语义定义,因此难以进行进一步的分析验证。为了给UML进行精确的语义定义,许多研究工作采用了形式化方法。形式化方法是用于系统规范定义、开发和验证等方面的基于数学的方法,利用适当的数学分析方法,以提高系统的可靠性与安全性。用形式语言来描述UML模型可以弥补UML自身的缺陷,消除开发人员对系统设计理解的不一致性。

Coq[2]是基于归纳构造演算的高阶定理证明器,在跨计算机科学和数学领域的研究中,Coq已经成为一个强有力的工具,它可以作为形式化验证程序的开发环境,也已经成为研究人员对复杂语言的定义进行描述和推理的标准工具。基于定理证明器Coq对各种基础软件的语义进行形式化描述和验证是当前的一个研究热点[3,4,5]。在之前的工作[6,7]中,我们提出将UML序列图转换为Coq形式规范描述,在Coq定理证明器中证明了语义的相关属性,但是从UML序列图到Coq形式规范的转换过程是手动完成的,这种方式的转换效率较低,且不能保证转换的正确性。

本文提出了一种元模型层面的转换框架,设计了元模型层面的转换规则,提出了针对状态图和序列图这两种UML动态子图到Coq形式规范的转换算法,并在Kermeta[8]中实现了自动转换的原型工具。这种转换不针对某一具体的动态子图模型,而是在元模型层面上完成UML元模型到Coq形式规范的映射,使得转换结果符合目标抽象语法,保持了UML动态子图模型完整的语义成分。

本文的基本内容如下:首先介绍元模型和Kermeta,并给出本文研究的UML状态图和序列图的元模型定义;接着依次介绍UML状态图和序列图转换为Coq形式规范的具体实现,包括转换框架、转换规则和算法几个方面;然后通过实例展示了转换后生成的Coq形式规范;最后介绍相关工作并总结。

1 背景介绍

1.1 元模型和Kermeta

OMG组织提出的元对象机制(MOF)是一个四层的元建模框架,在这个体系结构中依次有元元模型层、元模型层、模型层和对象层。每一层都可以看成是上一层的实例,继承了上层模型的元语义;同时又是下一层的抽象,为下一层模型建立了创建模型的元语言。MOF是自描述的,所以不再需要元元元模型。MOF用于定义面向对象元模型,典型的就是UML建模语言,在元模型层面进行模型转换能保证转换前后的模型符合元模型[9]。

Kermeta是一种可执行的元建模语言,可描述模型的结构和行为,支持元模型层面的转换。Kermeta工具集成在Eclipse中,与OMG的EMOF标准兼容。Kermeta语言具有多种特性,包括命令式编程、面向对象编程、面向模型编程、面向方面编程和契约式开发等特性。

1.2 状态图和序列图的元模型定义

在Kermeta中实现模型转换,需要指定源/目标元模型,以一个符合源元模型的源模型作为输入。因此,要进行模型转换就需要指定源元模型,下面介绍本文研究的UML状态图和序列图的元模型,分别如图1和图2所示。本文给出的UML状态图和序列图元模型在UML2.0给出的标准元模型上略有删减,并且使用Kermeta自带的Ecore进行构建和绘制。

图1是状态图的Ecore元模型。State Model是该元模型最顶层的类。本文转换后生成的状态图抽象语法定义,支持卫式条件的使用,考虑了状态的进入/退出动作、历史状态记录机制,支持层间转移描述,是较为完整全面的状态图语法定义。

图2是序列图的Ecore元模型。Seq Model是元模型最顶层的类。本文转换后生成的序列图抽象语法定义除了考虑消息、生命线、组合片段等元素,还考虑了交互操作符、卫式条件等元素,涵盖了序列图的主要交互操作符片断定义。

2 转换工作

2.1 转换框架

模型转换需要保证转换前后模型语法和语义的正确性与完整性,UML图中包含大量的语法和语义信息,直接在模型层面上进行转换很可能会导致转换前后模型信息的丢失。本文在Kermeta中实现的元模型层次的转换工具框架如图3所示,其中UML元模型和模型都属于UML规范范畴,而Coq中对UML的抽象语法定义和UML刻画的实际模型代码符合Coq规范,转换规则是用Kermeta进行编写的。具体地,T1是将UML元模型定义为形式化的Coq抽象语法的过程,通过手工编码实现;T2和T3是模型转换的过程:首先,引入符合元模型的模型,然后,利用转换规则将UML模型转换为Coq形式规范代码,并最终保存为Coq文件,以便在后续的定理证明工作中使用;T4利用了Kermeta的面向方面编程特性,直接将转换规则织入UML元模型中;T5表明UML模型符合UML元模型,即模型是元模型的实例;T6表明转换生成的Coq代码符合Coq中对UML图抽象语法的形式规范定义。

该转换框架具有如下的优点:

1.层次清楚,分离关注,转换规则如果需要变更,只需要修改转换规则层即可;

2.具备模型无关性,在元模型层面定义转换规则,使得任意符合该元模型的模型都可以使用该转换规则进行转换,和特定模型定义的内容没有关系;

3.采用了XMI来表示UML模型,使得可以使用不同的建模工具来对目标系统进行建模,方便模型的保存和引入。

2.2 状态图的转换规则和算法

从图1中可看出状态图元模型的主要语法单元包括State、Transition、Behavior、Event等。为了将状态图模型转换为Coq形式规范,首先在Coq中为这些元素定义抽象语法如下。这里使用归纳类型定义状态图,关于Coq的使用方法,可以参考文献[10]。

接着定义元模型层面上的状态图到Coq形式规范的转换规则:

(1)状态名、事件名和转移名在Coq中都用字符串来表示,分别对应sname、event和tname;

(2)状态的入口出口动作被映射成包含2个动作(action)列表的二元组;

(3)状态图中的每个状态都被映射为Coq抽象语法中定义的或状态(or_sc)、基本状态(basic_sc)和与状态(and_sc)中的一种。例如:or_sc是包括状态名、子状态列表、活跃状态序号、子转移列表、入口出口动作的五元组;

(4)每个卫式条件(guard)都被映射为逻辑谓词bexp规定类型中的一种;

(5)每一个动作序列被映射为动作列表;

(6)每个转移都被映射为一个包含转移名、源状态序号、源状态决定因子、触发事件、卫式条件、行为、目标状态决定因子、目标状态序号和历史纪录机制的九元组。为了处理转移可能发生在不同层次的状态之间的情况,用源目标决定因子和目标决定因子两个元素进行指示。即,如果发生层间转移,则源、目标状态序号用来记录最高层的源、目标状态的序号,而决定因子用来记录子层状态的状态名。

根据转换规则,设计UML状态图到Coq形式规范的生成算法:首先,引入符合状态图元模型的状态图模型;其次,对模型进行分析,获取模型中的状态和转移信息,并存储在对应的集合中;最后,按照转换规则,将提取出来的状态、转移、卫式条件等信息转换为Coq形式规范代码。算法描述如下:

算法1

to Coq()方法是整个算法的主线,该算法通过调用其他方法实现信息获取、进行调整和转换。对于模型信息的获取,是通过get Trans List()和get State List()两个方法实现的。get Trans List()方法被织入到Region类上,而并没有织入到Transition类上,主要是为避免重复获取同一个trans的信息,所以从最顶层的region开始自顶向下地获取所有trans的信息。get State List()方法需要用到get Trans List()获得的信息,故放在get Trans List()后执行。这两个方法的伪代码如下:

其中,get Type()通过判断状态中region的数目来确定状态的类型;chage Trans(trans)用来改变trans的源/目标状态,以及设置源/目标决定因子;is History()用来判断状态是否是历史类型的伪状态;get Trans List()和get Sub State List()分别用来获得子状态和子转移;Trans2Coq()与State2Coq()的算法相似,限于篇幅未给出算法;Guard2Coq()为bexp中使用的操作符建立了相应的解释器,由解释器将卫式条件转换为相应的Coq代码。

2.3 序列图转换规则和算法

序列图的抽象语法定义主要处理的语法单元包括Life Line、Event、Message、Fragment等。首先在Coq中为这些元素定义抽象语法,也使用归纳类型来定义序列图:

其中Event中的事件类型分为发送事件和接受事件,分别用‘?’和‘!’表示。序列图被表示成一个归纳类型,可以为空(Dtau),可以通过事件(De)构成,也可以是通过交互操作符构成。这里只考虑五种交互操作符Dalt、Dopt、Dstrict、Dloop和Dpar。

元模型层面上的序列图到Coq形式规范的转换规则主要包括:

(1)消息名和生命线名在Coq中都用字符串来表示,分别对应signal和lifeline类型;

(2)序列图中的每个事件被映射成Coq抽象语法中定义的类型、消息名、接受/发送生命线组成的四元组;

(3)消息的约束条件被映射为cnd中规定的类型中的一种,并且约束条件中的变量被映射为自然数类型的id;

(4)利用前面3条规则,将序列图映射为由抽象语法中事件,约束条件和五种交互操作符递归构造的Coq规范。

序列图模型到Coq形式规范转换的算法,与状态图的转换相似,由于要处理的语法单元相对较少,因此去掉了存储模型中元素的步骤。算法如下:

算法2

算法中event2Coq()实现将某个发送或接受事件类型的组合片段转换为Coq代码;Combine2Coq则实现将包含单元或者二元操作符的组合片段转换为Coq代码。

3 实例研究

根据转换框架和算法,我们实现了UML动态子图到Coq代码转换的原型工具,实现了转换过程的自动化。本章以用户在自动取款机(ATM)取款的情景为例,绘制了图4和图5所示的序列图模型和状态图模型,用来对原型工具进行测试。

图4是用户在ATM上取款的简化的交互场景的序列图。用户首先插入银行卡,然后输入密码,由ATM机根据输入的信息进行身份验证,发送验证成功(login Succ)或验证失败(login Fail)的消息;如果登录成功,且帐户余额大于零,用户可以选择进行一次取款操作。原型工具执行后自动转换生成如下的Coq形式规范代码:

图5是用户在ATM上取款时,ATM服务器状态变化情况的状态图。Execute和Log是并行运行的或状态,分别表示系统处于给用户提供服务的执行状态,以及系统在进行日志记录操作的状态。原型工具执行后转换为如下Coq形式规范代码:

这些自动生成的Coq形式规范代码,可以在定理证明器Coq中直接打开,进行下一步的分析和验证,使之前的研究工作[6,7]更加完善。本文完整源代码和实例可在文献[10]中下载。

4 相关工作

国内外将形式化方法应用于UML的研究一直是热点。较多的工作致力于类图的形式化和验证,如文献[12]等。对于UML的典型动态子图———序列图和状态图,也有许多形式语义研究工作,可参见综述文献[13,14]。本节主要讨论将UML动态子图转换为形式规范的相关工作。

文献[15,16]都将UML状态图转换为了B语言规范,但是文献[15]中没有将状态内部的动作考虑在内,且只对简单的状态图进行了分析。在文献[16]中为了表示状态图中的事件和转移,加入了自己定义的新标签,这就使得转换得到的B语言规范不符合标准的B语言抽象语法。本文的状态图语法定义全面完整,并且生成的Coq规范也符合目标抽象语法。文献[17]实现了UML状态图到Petri网的转换,但是整个转换都在模型层面进行,不能保证转换前后语法的一致性。

文献[18]基于B方法对用例图模型与序列图模型进行形式化转换,提出了转换规则,但没有实现自动转换工具。文献[19]采用了和本文相似的元模型层面的转换框架,将序列图和状态图转换为广义随机Petri网,但是也只考虑了基本元素的转换,对序列图没有考虑组合片段的情况,对状态图没有考虑历史伪状态的转换。本文则在全面考虑各种元素的转换规则的基础上,实现了自动化的转换工具,由于利用了Kermeta的面向方面编程特性,规则的修改和扩展也很容易。

5 结语

动态工作流元模型研究 第4篇

1 动态工作流技术

动态工作流技术能够很好的解决企业复杂多变的业务,能够适应企业不断发展变化的业务需求。本课题提出的动态工作流就是建立在WFMC工作流管理系统架构之上的。

1.1 动态工作流模型

工作流模型就是用一种规范化的过程描述将现实生活的业务过程进行转换,是对业务逻辑过程和工作流的一种抽象。它提供了完整的工作流定义的概念,为工作流开发人员进行建模提供工作流定义所需要的元素或者部件。

1.2 元模型[3]

定义1工作流过程(P):有限个工作流过程组成的过程序列就可以表示为工作流,WF={p1,p2,p3,…,pi,…pn},其中,pi代表其中的一个动态工作流过程,1≤i≤n。

定义2用一个三元组来表示动态工作流过程,P=(ID,Activities)。其中,Activities={Activity1,Activity2,Activity3,…,Activityn}表示为活动集,ID表示为动态工作流过程的唯一标识。在动态工作流的参考模型中包含的活动节点有:开始活动节点(Start)、补偿活动节点(Compensation)、活动结束节点(End)。

定义3开始活动节点表示为Start={ID,Name,State,Flag ID,Bind Service},它代表工作流的开始,是活动的开始节点,每当流程的实例开始执行时,该活动都会被设置为运行的状态。其中,Flag=“Start”,Flag ID为流程活动的唯一标识。

定义4活动补偿节点Compensation={ID,Name,State,Flag ID,Bind Service,Var List,Activity ID}。其中,Flag=“Compensation”,Activity ID表示为可能补偿的活动ID,。

定义5结束活动节点End={ID,Name,State,Flag ID,Bind Service}。表示工作流活动的结束,也是活动的结束节点。当流程实例引擎执行到该活动状态节点的时候,表示该工作

流程已经执行完毕。Flag ID=“End”。

1.3 动态工作流管理系统的体系架构

工作流模型管理系统的体系架构大致可以分为三个部分:应用数据、系统控制数据[4]、软件构件。应用和应用数据属于外部生产的数据。系统控制数据代表动态工作流参考模型管理系统中一个或者多个软件组件所使用的数据。角色模型使用的数据、工作流和任务表相关的数据等都是系统控制数据的范畴。软件构件是动态工作流型管理系统中不同组件的实现。其中的任务管理器,用户界面以及工作流引擎等都是属于软件构件[5]的范畴。

工作流参考模型的体系架构中各个组成部分之间的关系如图1所示:

从上面的体系架构图中可以知道,工作流定义就是执行工作流过程中需要的过程信息。这些信息包括活动的起始条件和结束条件、活动的组成、活动的跳转规则、参与用户的任务以及工作流相关的数据定义等。执行服务[6]就是解释执行过程的定义、向用户的流程工作簿中添加工作项、执行过程的实例化等。应用数据就是业务流程执行过程中相关的数据,这些数据既可以被相应的应用程序所使用,也可以被工作流引擎所使用。任务表就是工作流引擎将用户的工作项添加到工作中的列表中,以便来进行处理。

1.4 工作流参考模型

本论文所提出来的工作流参考模型如图2所示:

在上述的参考模型中,工作流执行服务利用工作流引擎,为流程的执行提供运行时各种环境,并解释过程的定义,与外部资源进行交互。应用程序接口用于在应用程序和工作流引擎之间进行交互,主要进行活动管理、数据处理和通信连接。工作流执行引擎通过工作流的定义就可以访问外部数据源。监视和管理接口主要用于对工作流的监督和管理,包括角色管理、用户管理、资源管理等功能。

2 基于SSH2的工作流模型的设计

基于SSH2的动态工作流模型是将工作流技术运用到企业中的业务流程当中,大大简化了企业的业务解决方案的开发、部署和管理有关复杂问题的体系结构。SSH2是Java应用中强有力的WEB开发解决方案,它可以减少开发成本,提高开发出来的软件的质量,缩短开发周期,降低模块与模块之间的耦合的程度,同时也提高了系统的可扩展性和可维护性。

2.1 架构设计

模型的设计把工作流理论应用于SSH2设计架构中,将SSH2的灵活性与工作流的动态性有机结合起来。本系统是在企业信息量不断增加和不断发展壮大的背景下,对企业的业务流程进行深入分析而设计的流程模型,该模型不但可以灵活地调整流程的设计、优化和管理,而且还能动态扩展业务的流程。有利于任务流程的规范化管理、业务不断增加的需要和企业资源的共享。若在任务流程的执行过程中发现不合理的环节,也可以对流程过程进行重组优化,提高过程的柔性、降低管理成本、实现企业利益的最大化。

动态工作流模型架构如图3所示:

2.2 工作流模型的组件

本动态工作流模型的组件可分为:数据模块、过程服务模块、系统服务模块。其中,系统服务模块的功能是提供流程的执行实体,在实例的审批中按用户、角色、权限的访问控制策略[7]。为提高流程的动态性,过程定义与实体的执行分开,执行代理跟踪流程的执行过程,并负责流程异常的处理工作。

2.2.1 角色权限分配

执行实体将用户、角色和权限分开,不同的角色对应不同的权限,不同的用户又对应不同的角色。用户可表示为:user=(base,pswd,roles,acl),其中,base代表用户的基本信息,pswd为用户的密码,roles代表用户的角色列表,单个用户可拥有多种角色,acl代表系统的权限列表。角色分配就是将用户集U与角色集R对应起来,是多对多的关系,即UR∈U×R,(U,R)∈UR,代表用户拥有角色R。权限分配就是将权限集P映射到角色集R中,即PR∈P×R,(P,R)∈PR表示权限被赋予角色R。因此在分配用户的权限时,只需将角色分配给用户,用户即可获得对应的权限。

2.2.2 实体的执行过程

主要是工作流模型的载体,负责接收流程执行过程中用户所提交的请求数据,流程实体实例经过实例引擎来触发资源实体。待触发实例就是具有审批权限的用户可以看到自己需要处理的实体资源,已触发实例就是自己处理过的实体资源。

2.2.3 监控过程状态的修改

根据业务处理等级的不同动态修改业务的流程,用户只需选定的等级级别和原流程定义文件,动态工作流模型会根据等级度对定义文件进行动态优化,同时记录下来状态修改的原因与时间。

2.3 数据模块与过程服务模块

此模块用来定义业务流程,通过可视化的方法对工作流的执行进行控制,流程实例根据定义文件查找相应的任务,同时在任务列表中设定处理权限[8],根据角色权限动态查找用户,完成将节点审批后将工作流推向下一个节点。流程数据模块主要跟踪用户的行为和记录用户的操作信息,并负责流程实例存储日志信息和备份工作。

2.4 动态工作流参考模型的运行机制

2.4.1 动态修改节点状态

为了减少流程实例流转的节点和提高流转节点的可扩展性,根据用户的实际需求,SSH2动态工作流模型会依据业务的处理等级与流程定义文件,动态地对任务列表进行查找,重新规划流程过程。修改节点状态的代码如下列清单:

2.4.2 业务参数机制

为了解决因不同的需求而处理不同的业务数据,需要动态输入业务参数,输入的数据不但决定处理流程流向的人员,而且也决定着流程的流转方向。业务参数机制将表单的属性主键与流程定义文件相关联,任务流程实例的子属性采用键/值对的方式存储输入的动态参数。如下列清单:

3 模型性能测试

SSH2动态工作流模型的性能测试工作主要包括以下几个方面:流程是否能够动态进行扩展,流程的执行是否能够正常进行,能否有效捕捉流程的异常和能否有效执行任务的并发。本论文主要从以下两个方面进行测试:(1)工作流参考模型吞吐量的测试。(2)流程实例在不断增加节点的情况下平均执行周期的测试。

3.1 吞吐量

在吞吐量的测试中,本测试中采用10个流程实例组,采用10台客户机,每个实例组所包含的流程实例从0增加到100,流程控制实例程序运行在主机上,每个线程代表流程实例客户端,数量也由0增加到100。参考模型在流程执行时记录下每个流程的开始时间和结束时间,最后计算出所有流程执行周期的平均值。测

从上图可以看出,随着流程实例的增加,流程的平均执行时间也随之增加,但流程实例增加到400时,平均执行时间也在0.3左右,也满足了系统对吞吐量的要求。

3.2 平均执行周期

本测试同样采用10个流程实例,从100增加到1000来模拟节点的增加,在客户端机器上控制流程实例的执行。动态工作流参考模型记录下流程的开始时间和结束时间,由此算出每个节点流程的平均执行周期。测试结果如图5所示:

从上图可以看出来,流程中随着节点的增加,平均执行周期基本不受太大的影响,平均执行周期基本在0.45到0.5之间,能够完全满足流程执行效率的要求。

4 小结

本课题所阐述的动态工作流模型的架构设计是基于SSH2技术,阐述了动态工作流参考模型的运行机制,最后对模型流程实例的吞吐量和运行周期进行了测试,测试结果表明,SSH2动态工作流模型可以适应企业级不断变化的需求,能够提高企业对工作效率的要求。

参考文献

[1]李锋.基于SSH架构的办公自动化系统的设计与实现[D].中南大学,2010.

[2]杨莹,刘献忠.基于工作流技术的OA系统模型研究[J].电脑与信息技术,2003(3):22-24.

[3]梁永潮.基于SSH动态工作流模型的研究与应用[D].西安科技大学,2011.

[4]张友生,陈松乔.C/S与B/S混合软件体系结构模型[J].计算机工程与应用,2002(23):138-139.

[5]杜旭,杨宗凯.基于工作流对象的网络办公软件设计[J].计算机工程与应用,2000,36(36):88-89.

[6]王莉,刘厚泉,刘迎春.可定制办公自动化系统的设计与实现[J].计算机工程与设计,2006(11):2086-2087.

[7]马亮,顾明.基于角色的工作流系统访问控制模型[J].小型微型计算机系统,2006(1):137-138.

动态工作流元模型研究 第5篇

在我国,由于中小企业占国民经济绝大多数,加之信息化技术快速的发展与市场需求的多变,企业相应处理业务的能力要不断适应外部的变化,采用工作流技术使业务计算机化,可以提高企业处理企业与企业之间、企业内部业务的能力,可以预见采用工作流技术的产品。本文研究的意义在于:SSH2动态工作流模型最大关注是如何缩短企业任务流程的闲置时间,提高企业级业务处理的能力,使企业能够关注于真正对企业有增值意义的业务,降低生产成本,提高企业生产经营过程中管理水平和提升企业的核心竞争力,通过流程自动化以及各类表单统计查询功能,提高企业的决策能力。SSH2动态工作流模型可以在最大程度保证企业的信息系统能够顺利的进行扩展来满足不断变化的市场环境,使企业的工作内容更加丰富,提高企业从业人员的业务能力,改进企业的工作质量。

1 动态工作流技术理论概述

随着企业环境的持续变化,不确定性和多变性已经成为现代企业流程的内在特点,因此提高工作流管理系统应对流程变化的能力,已经成为工作流领域研究的热点问题之一。动态工作流是指组成工作流的任务组件在运行时才能确定下来,指在过程运行时对该过程进行某种修改,能够支持比较灵活的业务逻辑实现,并在较短的时间内,建立适应具体业务变化的动态工作流系。一般情况下,工作流程的调整意味着整个业务流程的重新设计,而基于动态工作流技术的系统由于功能设计和实现相分离,可以将单纯的流程调整通过流程定义调整的简单方式解决,而不会影响到如何实现的部分[4]。

如果一个工作流管理系统支持对于正在运行工作流过程实例的修改,我们称这个工作流管理系统为动态工作流系统,相应的,那个被修改的工作流称为动态工作流。

在国外,德国ULM大学Reichert提出了一种支持动态修改工作流模型的机制[5]。这种机制提供了对工作流实例进行修改的能力,提出了调整任务状态,流程中插入活动节点等方法。这种方法能够解决很多问题。但是这种修改对工作流模型和实例来说是一种紧密祸合的关系,修改模型一定影响到过程实例。这对临时性修改来说就是一种资源浪费。

美国California大学Peter J.Kammer[6]等提出了一种部分执行和反馈的方法,就是事先不定义整个流程,在实际运行的过程中运行到哪里,由当时的执行人生成下一个任务项,将任务传递到下一个执行人,通过反馈的方式来通信。这种方法很灵活,但是对用户来说复杂,工作量在某种程度上变得更大了。

2 SSH2动态工作流模型设计模式理论构简介

2.1 MVC架构设计模式简介

MVC是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式。M代表Model(模型),V代表View(视图),C代表Controller(控制器)[4],MVC主要的思想是将应用程序的输入,处理和输出强制性地分开,将应用程序开发细分为3个核心部件,模型,视图,控制器,它们各自负责不同的功能,既分工明确又相互协作,不但实现了减弱业务逻辑接口和数据接口之间的耦合,也让视图层更富于变化[5]。SSH2(Struts2 Spring Hibernate)架构是MVC的一种实现方式,它继承了MVC的各项特性,并根据J2EE的特点做了相应的变化与扩展。

2.2 SSH2-MVC架构

框架表现为抽象的组件和实例的交互,是整个系统的可复用代码的组合,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文关系。构件领域框架方法是构件技术、软件体系结构研究和应用软件开发三者结合的发展产物。框架通常以构件库的形式出现。框架的关键技术在于架构内的对象交互与控制流的关系[7]。SSH2(Struts2 Spring Hibernate)框架架构是MVC的一种实现方式,它继承了MVC的各项特性,具有高内聚、低耦合、易移植,程序结构清晰,各层分工明确,利于系统的更新与维护,以其跨平台性、分布性、开放性等更多优点,为异构系统的良好整合提供了保证。

1)Struts2在SSH2动态工作流模型中主要负责拦截企业级业务任务流程的请求,并调用相应的业务逻辑组件来处理任务的请求,并将处理结果返回。

2)Spring在SSH2动态工作流模型中主要负责管理企业级任务流程业务逻辑处理的所有组件,并负责管理调度流程任务中各组件之间的依赖关系,避免了各组件之间的硬编码耦合,提高了系统的可扩展性。利用它的自动装配策略,可以更好地将控制器与业务逻辑组件进行分离,DAO组件的分离,实现了各层之间的解耦。

3)Hibernate在SSH2动态工作流模型中主要负责提供与SSH2工作流企业级任务流程相关的对象以及对象产生的数据,分别将这些对象与对象数据持久化到数据库。

3 SSH2动态工作流模型设计与运行机制

3.1 架构设计原则

当今,计算机网络信息技术的迅猛发展,Web正以其广泛性、交互性、快捷性、易用性特点风靡全球,并且已经渗入到社会的各个应用领域。SSH2是Java Web应用程序开发强有力的解决方案,它可以降低软件开发过程之间的成本,提高软件的质量,缩短软件的开发周期,模型各层之间通过接口进行通信,降低各层之间的耦合度,能够满足系统复杂性的需求,提高了系统的可维护性、可扩展性、可靠性和业务处理效率。

SSH2动态工作流模型是作为一个基于Web开发的工作流管理平台,SSH2动态工作流模型设计将动态工作流技术理论应用于SSH2基于Web设计模式架构之中,工作流的动态性与SSH2灵活MVC开发方式的结合,不但涉及数据库、网络技术、分布式处理等计算机技术领域,同时它还涉及到企业业务相关领域。它是为了适应企业级业务的不断发展和信息量不断增多的需要,是对企业级业务流程动态性深入分析,并依据动态工作流技术理论而设计工作流模型,它支持企业级任务流程的动态扩展,可以灵活调整任务流程的设计、优化和管理,可以适应于任务流程规范化的管理,可以适应企业跨组织,跨区域业务的分布性、异构性、自治性的需要。可以适应复杂度逐渐增大业务的需要。可以实现企业信息资源的共享。并能够在任务流程执行过程中,发现不合理的环节,进而对企业级的任务流程过程进行优化重组,从而提高企业经营过程的效益,提高经营过程的柔性,降低企业管理成本,使资源效益的最大化。

3.2 主要功能组件描述

SSH2动态工作流模型主要组件包括系统服务元模块,过程服务元模块,工作流数据元模块。

1)系统服务元模块

主要为过程领域中的任务流程提供执行的实体,为了提高企业级任务流程的动态适应性,执行的实体与流程过程定义独立分开,并在流程的执行过程中由过程动态执行代理跟踪,负责监控流程异变的相应处理。过程的动态修改监控负责任务流程过程的动态修改。

(1)系统业务执行实体在任务流程开发中将用户、角色和权限分开,不同的用户对应不同的角色,不同的角色对应不同的权限,而权限制约不同的用户人员对整个流程节点处理的权限。人员:对应于企业中的每个员工,是一个独立的、具有一定行为能力的人的实体,人员可以用以下方式描述:User=(Bas,Pw,RI,ACL)。其中,Bas为基本信息列表,Pw为人员密码,RI为人员角色列表,一个用户可以同时具有多个角色,角色是系统权限的集合,ACL表示授权访问控制列表[7]。角色:是指一个组织或任务中的工作或职位,代表了一种资格、权利和责任。字母R表示全体角色的集合。角色是一种语义综合体,可以是一种抽象概念,也可以对应于具体应用领域内的职位和权利[7]。权限(Permission):是对计算机系统中的资料或者用资料表示的其它资源进行访问的许可。字母P表示全体权限的集合。权限一般是一种抽象概念,表示对于某种客体资源的某种操作许可[7]。用户指派(User Assignment):是用户集U到角色集R的一种多对多的关系。形式化描述为:UA∈U×R,用户指派也称为角色授权(Role Authorization)。(u,r)∈UA表示用户u拥有角色r,从语义上来说就表示u拥有r所具有的权限。权限指派(Permission Assignment):是权限集P到角色集R的一种多对多的关系[7],形式化描述为:PA∈P×R。(p,r)∈PA表示权限p被赋予角色r,从语义上来说就表示拥有角色r的用户拥有权限p。

基于任务流程节点角色权限分隔访问控制策略,也就是不同角色人员对工作流的某个任务流程节点控制操作是不同的。角色本身是一种抽象的逻辑用户分组,代表具有同等权限的用户组。任务流程节点与角色关联,每个角色根据自身的角色获得操作它的权限,这样可以简化授权的逻辑。利用用户--角色--权限--人员的这层关系来制约审批工作流任务人员的权限,因此在分配用户-权限关系时,我们只需将角色分配给用户,用户也会由角色得到相应的权限,进而决定审批处理流程实例的角色人员。

(2)任务流程实例对实体资源服务执行过程。它是用于承载业务的计算机化模型的载体,承载执行任务流程过程活动中提交一定的数据,这些数据主要包括:提交的文档资源,相应的票据资源,业务表单数据资源,其中业务表单数据中包含相应的数据类型,如整型、浮点型、布尔型,业务表单与流程实例绑定时,包含了流程流转属性的信息,例如业务表单的创建者、创立的时间、所属的流程,以及对流程实例资源的添加、删除、

修改。在任务流程执行过程当中,流程实例一般需要经过:触发引擎实例用于触发实体资源服务,待审触发引擎实例是指具有审批工作流权限的用户能够查看到需要自己处理其它用户提交的实体资源。已审触发引擎实例是指可以查看已审过的实体资源。

(3)过程动态执行代理主要负责流程实例执行时的跟踪器,监控它的整个执行过程并当流程执行时发生异常,可以动态的回滚到流程最近一次正常执行的活动节点,并调整流程的下一个活动节点,以保证流程的运行。

(4)过程动态修改监控,主要采取设定业务的及时处理等级度,根据等级度动态的修改业务流程。用户只需选定等级度与原流程定义文件,则模型原会根据等级度对原流程定义文件进行动态的优化,同时会记录修改的时间与原因。

2)过程服务元模块

过程领域:主要负责业务流程的定义,是开发业务流程的起点,是通过可视化的方式描述业务的工作流过程,控制工作流实例的运行,流程实例根据流程定义查找在任务列表中相应的任务,同时在任务列表中的任务节点设定了处理它权限,依据角色权限用户的关系,动态的查找处理它的用户,此节点用户完成节点任务的审批并将它推向下一个任务节点。

3)工作流数据元模块

日志数据:流程实例日志数据信息的存储与备份,日志文件,用户操作的记录信息以及用户操作行为的跟踪。

3.3 SSH2动态工作流模型运行机制

1)动态表单的业务任务参数机制

业务任务参数动态输入是解决企业因业务的不同而需要处理不同的数据,表单数据不仅决定业务的任务流程实例流转方向,而且决定处理流程的角色人员。表单的业务任务参数机制主要将流程定义文件与表单相关的属性主外键挂接,例如表单的数据类型模板,表单的输入类型模板(表单的文本输入框,表单列表输入框等),任务流程实例的子属性表采用Map(Key-Value)主要存储表单的动态输入参数。

2)流程实例异常处理机制

如果任务流程实例在流程执行过程中,由于用户的操作不当导致它的处理异常,则过程动态执行代理主动处理它执行过程的各种异常,首先,启动流程定义中的补偿活动,标记出现异常的活动节点,并查找异常活动的开始节点标记,动态的查找最近与开始节点标记相同的一次完整的流程定义,补偿活动机制补全出错节点及以后的节点,使任务流程实例在补偿后的任务流程过程中能够完整的执行。

3)流程活动节点动态修改

为了提高流程流转的扩展性,用户可以根据业务的实际需求,动态的减少任务流程实例流转的活动节点,在SSH2动态工作流模型中会根据用户提交的流程定义文件与业务处理等级度,动态查找流程过程的任务列表,重新规划流程过程。

3.4 性能测试

SSH2动态工作流模型性能测试主要指标包括:能否有效的执行任务流程,能否有效对企业任务流程动态的扩展,能否有效适应任务流程的异常,能否有效的执行多与并发任务流程,下面分别介绍测评方法与结果。

吞吐量可以用每秒完成的任务流程数量来表示,它从一个侧面反映了任务流程执行性能。

通常,吞吐率可以用以下公式得出

Throughput=N∕(Tj-Ti)(i

Throughput代表吞吐量

J一系统中最后一个被处理完成的请求

i一系统中第一个被开始处理的请求

Tj一第j个任务流程实例处理完成的时间

Ti一第i个任务流程实例开始处理的时间

1)性能测试方法

(1)系统性能测试环境,服务器:曙光天阔I620r-FY(CPU,Intel Xeon E5410,内存:4GB,硬盘:500GB),100M以太网络环境。操作系统:Microsoft Windows XP SP2,JDK1.6,应用服务器:Tomcat6.0,数据库:Microsoft SQL Server 2008。

(2)主要测试:SSH2动态工作流模型吞吐量、SSH2动态工作流模型平均运转周期。测试的方法是:定义业务的任务流程,建立任务的流程实例并触发执行,记录流程实例在任务流程中的运行时间参数,最后通过对运行时间参数分析得出结论。

2)性能测试实施

在SSH2动态工作流模型中,首先进行流程环节平均运转周期时间的测试,采用10个流程实例,这些流程实例中的流程结点数从100依次递增到1000,测试流程实例在任务流程执行过程。记录下流程开始执行与执行结束的时间,并依此计算出流程中每个结点的平均运转周期。测试结果如图8所示。

从图8中可以看出,流程实例处理的平均周转时间时间上限为0.45~0.5之间,所以在SSH2动态工作流模型能够完全满足流程执行效率的需求。

其次是吞吐量的测试,用例采用10个流程实例组,每个流程实例组包括的流程实例数从0依次递增到100,流程流转时记录下每个流程实例开始执行和执行结束的时间,最终计算出所有流程环节运转周期的平均值。测试结果如图9所示。

从图9中可以看出,SSH2动态工作流模型中伴随着系统中流程实例的增加,流程平均执行时间呈加速上升趋势,流程实例数达到400个左右。

4 结论

目前,工作流技术已在许多领域得到了广泛的应用,它必是企业信息化建设首先技术之一,它可以实现企业解决跨地域企业级业务实际经营的过程转化成计算机可处理的任务流程已成为现实,随着它在企业的实践中逐渐深入的推广,工作流技术在企业提高处理业务效率方面必然发挥着巨大的作用。

本文分析了工作流管理联盟的工作流体系架构,提出了一个支持动态特性的基于SSH2动态工作流模型,此模型以解决如何提高工作流技术在企业级业务运用的时效性、灵活性、可靠性,解决如何提高企业实际现实中的业务在工作流技术计算化模型的最大化适应性,即最大化体现业务的过程。最大化的灵活性,即模型能够最大化的动态适应业务的过程。最大化的扩展性,即模型能够最大化的适应企业相关信息化的模型。现将论文主要的工作总结如下:

(1)研究了当前工作流技术的现状与发展方向,企业应用工作流技术处理企业内部或外部的业务已经成为发展自身信息技术的趋势之一,但现实的企业经营过程中如何解决本文所提到影响工作流技术发展中的不足因素,是目前企业必须解决的问题,本文在分析了目前流行的基于Web的SSH2-MVC开发模式,提出基于SSH2动态工作流模型来解决企业应用工作流技术所面临的问题。

(2)深入分析了工作流管理系统的基础原理,工作流的体系结构、参考模型、执行过程以及动态工作流技术,它是为解决企业多变的业务而提出。本文SSH2动态工作流模型正是在基础之上所提出的具体解决方案,它能够解决企业分布式,异构式与多变式的业务发展的需要。同时在模型的运行机制中重点分析了对不同业务任务流程的应对机制。

(3)本文在SSH2动态工作流模型测试中引入性能测试。从它测试的结果显示:此模型可以适应于工作流技术在企业级业务的需要。

摘要:工作流技术是通过工作流对业务流程化的管理,是利用计算机辅助预先定义好的工作流逻辑部分自动或完全,协同推进任务的过程实例来达到执行企业级业务的经营过程,并使伴随着流程实例中的文档或任务信息能够在不同的执行者之间传递与执行。目前这项技术被广泛地运用于企业的内部与企业之间的业务。但由于市场环境的瞬息万变,企业需要不断地改善自身的业务流程过程,而与之相应的要求应用工作流技术的业务也能够动态响应企业经营过程的这些动态变化,能够动态地修改由业务过程定义的任务流程过程,从而实现对任务流程高度的灵活性和有效有序化的管理。该课题主要研究的工作是在分析WfMC(WorkflowManagement Coalition,工作流管理联盟)工作流管理系统的体系结构与动态工作流技术的特点及其应用以及SSH2-MVC设计模式理论,基于以上这些基础理论,设计与实现了基于Web服务灵活的、易扩展的SSH2(Struts2 Spring Hibernate)动态工作流模型,此模型可以适应动态修改任务流程过程,主要是在流程定义文件中设定任务及时处理等级度,模型会依据它进行动态地修改任务流程的执行过程。模型适应对执行流程实例的异常处理,采用查找异常活动节点最近任务流程正常执行的活动节点,同时启动补偿活动节点机制,从而达到处理流程实例异常的目的,使流程实例能够在异常活动节点完成执行并能够提交给下一个活动节点。对于与业务相关的参数,采用动态表单机制,模型对表单的设计与实现分别从它的数据类型,输入形式以及独立存储动态表单的参数等。最后对SSH2动态工作流模型进行了性能测试,根据测试的结果显示此模型可以适应于工作流技术在企业级业务变化的需要。

关键词:工作流管理系统,动态工作流技术,SSH2-MVC,SSH2动态工作流模型

参考文献

[1]刘明.工作流引擎技术分析与市场预测[J].计算机工程应用技术,2009(9):40-50.

[2]罗海滨,范玉顺,吴澄.工作流技术综述[J].软件学报,2008(7):22-24.

[3]周炎宏.工作流应用技术与发展趋势[J].计算机应用,2009(9):30-35.

[4]孙瑞志,史美林.支持动态工作流变化的工作流元模型[J].软件学报,2004(2):12-15.

[5]Reichert M,Dadam P.ADEPT flex Supporting Dynamic Changes of Workflows without Loosing Control[J].Journal of Intelligent Informa-tion Systems,1998,10(2).

[6]Edmond D,ter Hofstede A H M..A Reflective Infrastructure for Workflow Adaptability[J].Data and Knowledge Engineering,2007(2):103-115.

上一篇:临界分析下一篇:轴位摄影