当前位置:文档之家› 工作流流程动态仿真技术的研究

工作流流程动态仿真技术的研究

2009,45(13)工作流控制模型(Petri 网)抽象化工作流模型工作流定义语言工作流元语言工作流概念模型表示形式化基于基于图1三层模型间的关系1引言随着软件在信息社会中发挥日益重要的作用,人们对软件的正确性、可靠性、安全性等可信性质给予了越来越多的关注。

如何在软件的开发和运行过程中保证软件具有可信性质也成为软件理论和技术越来越重要的研究方向。

自从20世纪90年代,工作流管理系统的研究与应用得到了长足的发展,实践证明它在改进和优化业务过程,提高业务工作效率,实现更好的业务过程控制,提高顾客服务质量,提高业务过程的柔性等方面起到了重要作用。

工作流管理系统中的两个核心组件分别是流程定义组件与流程执行组件。

而现有的工作流系统或多或少都存在着一些缺憾:(1)模型描述能力有限;(2)难以快速适应多变的市场需求;(3)定义的流程和实际系统之间的正确性差异。

为保证流程设计的正确与可靠,应该对所设计的流程分别进行静态的分析验证和动态的仿真测试。

通过研究与分析,一个完整的工作流模型应该分为三个层次:元模型层、模型层和控制模型层。

其中元模型层给出了流程定义的主要成分及其语言描述。

扩展的信牌驱动模型属于模型层,它对经典Petri 网进行了改进与扩充,基本解决了经典Petri 网描述业务过程的局限性。

只保留了控制机制的Petri 网模型是对工作流流程定义语言的更高级别的抽象,因此属于控制模型层。

三层模型之间的关系如图1所示。

因此关于流程的分析验证也可以分为三个层次进行:基于元模型层次上的语法验证、基于模型层次上的语义验证(仿真)和基于控制模型层次上形式化分析。

又可以将它们分为静态检查与动态仿真,其中静态检查主要针对的是流程的静态定义,包括基于元模型层次上的语法验证和基于控制模型层次上的形式化分析;而动态仿真主要针对流程的动态执行过程即基于工作流流程动态仿真技术的研究付丽娜,郝克刚FU Li-na ,HAO Ke-gang西北大学软件工程研究所,西安710069Software Engineering Institute ,Northwest University ,Xi ’an 710069,China E-mail :fulina_97@FU Li-na ,HAO Ke-gang.Research on dynamic simulation of workflow puter Engineering and Applications ,2009,45(13):29-33.Abstract :The mode to capability analysis and correctness verification of workflow process is divided in static inspection and dy -namic simulation.Especially the paper studies several key problems in process simulation ,setting up simulation enviroment ,the al -gorithm for arranging events in a queue based on path coverage rule ,analyzing simulation results.It adopts interactive and non-interactive means ,employs white-box and black-box methods to test workflow process based on high coverage rate.And at last it gives expression to type ,distribution and trend of process defects.Key words :Workflow Management System (WFMS );token-driven workflow computation model ;process ;simulation engine ;event ;verification摘要:对于工作流流程的能力分析以及正确性验证,其方式上可分为静态分析与动态仿真。

论文侧重研究通过动态仿真手段对流程进行测试与分析,验证流程在合适的时间,由合适的资源做合适的事。

针对仿真过程中的几个关键问题———设置仿真环境、基于路径覆盖准则的事件排队算法及仿真结果的统计分析做了较深入研究。

仿真采用了交互式与非交互式两种手段,利用白盒与黑盒两种测试方法对被测流程进行高覆盖度仿真,并通过仿真结果反映缺陷的类型、分布与走势。

关键词:工作流管理系统;信牌驱动模型;流程;仿真引擎;事件;验证DOI :10.3778/j.issn.1002-8331.2009.13.009文章编号:1002-8331(2009)13-0029-05文献标识码:A 中图分类号:TP311基金项目:国家高技术研究发展计划(863)(the National High-Tech Research and Development Plan of China under Grant No.2007AA010305)。

作者简介:付丽娜(1979-),女,博士研究生,研究方向为软件理论、工作流相关技术等;郝克刚(1936-),男,博士生导师,目前研究方向为工作流技术、分布式计算和软件理论等。

收稿日期:2009-01-21修回日期:2009-02-25Computer Engineering and Applications 计算机工程与应用29Computer Engineering and Applications 计算机工程与应用2009,45(13)图2扩展的信牌驱动模型图3仿真系统平台模型层次上的语义验证。

2动态仿真2.1扩展的信牌驱动模型与经典的Petri 网相比,该模型在以下方面对Petri 网进行了改进与扩充,基本解决了经典Petri 网描述业务过程的局限性。

扩展的信牌驱动模型主要有以下几个方面的特点(参见图2):(1)模型引入变量、值域和函数的概念,实现了对数据流的描述。

(2)模型将Petri 网中托肯、位子和转移等术语用容易理解和接受的信牌、信牌箱和活动等来描述。

(3)通过引入正则Petri 网,从而可以容易地对大而复杂的问题进行分层建模。

(4)模型还引入了丰富的转移类型,并提出了同步区和异步区等概念,从而使模型可以灵活描述顺序、竞争、分支、多分支、并行、同步、合并及循环结构。

(5)在模型中,参与者是由组织机构、角色和人员构成的表达式,使得流程的执行不易受组织和人员变化的影响。

2.2业务过程仿真由于业务过程是一个复杂的、存在很多不确定因素的系统,因此很难找到一种准确的、完全形式化的算法对其进行分析与验证,在这种情况下,对流程进行仿真分析、测试则是一种非常可行且有行之有效的手段。

仿真是流程定义的虚拟运作,它是一种动态的执行过程。

流程仿真的过程可以分为设置仿真环境、执行仿真、仿真分析三个阶段。

流程仿真工具能比较直观地对流程进行分析与诊断、全面地获得流程的各种运行数据。

通过单步、自动等方式仿真流程的执行过程,从而为流程正确性检查、流程的优化提供重要的依据。

利用仿真技术可以在系统运作之前对流程进行实时跟踪,因此如果在设计阶段将流程定义与仿真集成在一起,就可以及早发现问题,保证在实施系统前全面了解系统实施的可行性。

目前流程仿真一般侧重于性能分析,主要是针对流程的各项性能指标,如:运行时间、运行成本和资源利用率等。

而我们的主旨是希望通过仿真对流程的功能与结构进行正确性验证,即由合适的参与者,在合适的时间,做了合适的事。

因此主要关注的是功能性错误与结构性错误,如参与者选择是否正确,是否存在不能到达的节点,实际路径与预期执行路径是否一致等;另外与常见的流程仿真工具(整个仿真过程完全抛弃了与用户的交互和激活第三方的应用,由仿真引擎根据用户所设置的仿真参数模拟活动的执行,自动推进过程实例)不同,为了对业务过程、资源(参与者/应用程序)以及将活动映射到资源的策略进行较为完整的验证与测试,将提供两种仿真方式———交互式仿真与非交互式仿真。

通过测试用例的设计与执行收集相关数据,对测试结果进行度量,从而给出关于流程功能与结构的各项统计信息,支持流程结构的优化与改进。

主要功能包括:仿真环境设置、流程的静态检查、仿真的可视化执行、仿真结果的统计与输出。

如图3所示。

3设置仿真环境其功能是从原流程定义中抽取与仿真相关的信息,在此基础上补充用户定义的仿真参数以适应不同场合下的需要(如“滤掉”流程中有关分布的信息等)。

3.1关于仿真方式的设定流程定义包括:一个工作流过程、一组资源以及将活动映射到资源的策略。

根据用户关注的重点不同,方式可分为交互式与非交互式仿真。

交互式仿真:需要有参与者执行手工活动的仿真,仿真过302009,45(13)信牌箱6信牌箱4信牌箱5信牌箱1信牌箱2活动4活动3活动2活动1信牌箱3图5流程定义A 1A 2A 3A 4T 11-100T 210-10T 3100-1T 401-10T 5010-1T 6001-1图4仿真过程处理机制程需要有资源(参与者/应用程序),仿真执行过程涉及到工作流控制数据与应用数据。

具体方式又分为:(1)带有真实参与者(意味着执行真实表单)与真实应用程序。

该方式针对业务过程、资源以及过程到资源的映射。

(2)带有虚拟参与者(指仿真人员,这时采用通用表单)与虚拟应用程序。

该方式仅针对业务过程。

非交互式仿真:无需参与者的完全自动化仿真,不需要资源(参与者/应用程序)。

该方式仅针对业务过程,目的是保证以较高覆盖率对流程进行仿真,从而得到有统计意义的仿真数据。

这时仿真引擎允许在无交互的方式下对不同活动的模拟执行过程基本类似,从而取代了工作流引擎向用户发送工作项或应用程序执行的过程。

该方式下,仿真执行过程只涉及到工作流控制数据,这里主要采用基于路径覆盖准则的事件排队算法(详见2.4节)生成事件以驱动仿真过程的执行。

3.2关于仿真时钟的设定在非交互式的仿真方式下,仿真时钟用于控制任务执行时间、任务的间隔时间、动画显示速度等。

仿真时钟每次按照下一个事件预计要发生的时刻,以相应的时间间隔向前推进。

这个过程不断地重复,直到仿真运行满足规定的终止条件为止。

由于仿真的目的不是出于性能分析,因此可以将时间间隔根据用户的需要设置为固定值。

3.3分支上的权重在非交互仿真方式下,仿真引擎中的事件发生器会根据节点类型以及分支上的权重先后产生事件,分支上权重越大则在产生事件时优先级越高,对应的活动则优先执行,若不设置分支上的权值,则事件发生器则按照随机方式,以平均概率产生事件。

相关主题