基于web技术的工作流管理系统的设计与实现_第1页
基于web技术的工作流管理系统的设计与实现_第2页
基于web技术的工作流管理系统的设计与实现_第3页
基于web技术的工作流管理系统的设计与实现_第4页
基于web技术的工作流管理系统的设计与实现_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、四 川 大 学硕 士 学 位 论 文题 目 基于WEB技术的工作流管理系统设计与实现作 者 刘福顺 完成日期 2006年 4 月培 养 单 位 四 川 大 学 指 导 教 师 唐宁九 教 授 专 业 计算机软件与理论 研 究 方 向 软件工程 授于学位日期 年 月 日基于WEB技术的工作流管理系统设计与实现计算机软件与理论 专业研究生 刘福顺 指导教师 唐宁九工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行。工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行

2、。一个完整的工作流管理系统是由工作流执行部件、工作流功能部件和外部应用系统构成的。工作流执行部件,即工作流引擎,是工作流管理系统的核心。工作流引擎负责解释过程定义、创建模型实例、调度模型实例任务、推进流程等功能。一个过程模型就是企业经营过程中业务流程的一个抽象模型,当使用诸如Petri网这样的形式语言来描述一个企业经营过程时,就形成了过程定义。过程定义被工作流引擎解释转换为能被工作流引擎执行的过程模型,创建运行时模型实例并依据特定的调度算法,例如经典Petri网调度算法,对过程实例中的活动进行调度。工作流技术在企业中的应用范围主要有两类,一类是在以公文流转为功能主体的办公自动化系统中的应用,另

3、一类则是为企业业务系统提供运行支撑平台的工作流管理系统。不同的应用对工作流引擎的功能要求也是不同的,作为一个功能完善的工作流引擎,核心调度能力要灵活,同时要能够支持常见的流程模型,例如:固定流程、自由流程以及嵌套流程等。本文论述的是一个基于WEB技术的工作流管理系统的设计与实现,提出了一种将工作流技术应用于企业的工作流管理系统的通用架构,阐述了经典petri网调度算法在工作流引擎中的应用与实现,分析并实现了工作流引擎对三种常见的流程模型的支持。关键词:工作流;工作流管理系统;Petri网;工作流引擎Web-based Workflow Management System Design and

4、ImplementationLiuFushun( Computer Software & Theory )Directed by TangNingjiuWorkflow is the automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules. Workflow managem

5、ent system is a system that defines, creates and manages the execution of workflows through the use of soft ware, running on one or more workflow engines, which is able to interpret the process definition, interact with workflow participants and, where required, invoke the use of IT tools and applic

6、ations. A whole workflow management system consists of workflow enactment component, workflow function component and external application system. Workflow enactment component, so-called workflow engine, is the kernel of a workflow management system. All functions such as the interpretation of proces

7、s definition, the instantiation of process model and the schedule of activity are all under the charge of workflow engine. A process model is a pure model of business workflow in enterprise running process. When an enterprise running process is modeled using formal language such as Petri-net, a proc

8、ess model comes into being. The scope of workflow technology application in enterprise involved in two categories, one is OA system with document transition as its main foundation, and another is workflow management system serves as the running platform of enterprise business systems. Different appl

9、ications require different functions of workflow engine. Being a well-functional workflow engine, its kernel schedule arithmetic should be flexible. At the same time, it should be able to support three kinds of process model such as fixed process, freedom process and nested process.In this paper, we

10、 discuss the design and implementation of a web-based workflow management system; give out a common workflow management system structure which is useful when you want to apply workflow technology to enterprise application; expound the application and implementation of classical Petri-net schedule ar

11、ithmetic in workflow engine; analyze the support of three kinds of process model in workflow engine.Key Words: Workflow; Workflow Management System; Petri-net; Workflow Engine目 录1绪论11.1工作流的起源11.2本文结构安排12基本理论22.1工作流22.2工作流参考模型32.3工作流管理系统62.4工作流管理系统架构82.4.1工作流管理系统组成部分82.4.2工作流管理系统组件说明92.5 Petri网102.5.

12、1 Petri网的基本元素库所变迁弧标记132.5.2 Petri网的触发器142.5.3 Petri网的路由152.5.4 Petri网的发散和汇聚163相关工作183.1工作流发展现状183.2工作流研究领域204系统描述214.1系统功能描述214.2系统对外服务225系统设计245.1 工作流管理系统架构255.1.1业务系统注册服务255.1.2过程模型定义服务275.1.3工作流程监控服务295.1.4通用功能接口服务295.1.5统一工作平台服务305.2部件功能解析305.2.1工作流执行服务部件305.2

13、.2工作流功能服务部件305.2.3业务系统应用部件315.3工作流引擎详解315.3.1任务调度策略3 Petri网调度算法3调度实例说明335.3.2对流程模型的支持3固定流程支持3自由流程支持3嵌套流程支持415.3.3任务表管理器436系统实现446.1数据库设计446.1.1模型定义数据456.1.2模型引用数据466.1.3实例静态数据466.1.4实例动态数据476.2图形建模工具486.2.1 VML和SVG的比较486.2.2输出文件格式说明506.3过程模型转换器516.3.1 DM转换器526

14、.3.2 MD转换器536.4工作流引擎核心代码分析546.4.1 FindTransitionsCanBeEnabled546.4.2 EnableATransition556.4.3 FireAnEnabledTransition576.4.4 PushAnEnabledTransitionToWorkitem586.4.5 InstantiateAWorkflow586.4.6 CommitATransition606.4.7 GetWorkitemFromEngine616.4.8 CommitAWorkitem617结束语63参考文献65作者在读期间参与科研及论文发表情况67独创性声

15、明68致谢691绪论1.1工作流的起源工作流技术起源于二十世纪七十年代中期办公自动化领域的研究,由于当时计算机尚未普及,网络技术水平还很低以及理论基础匮乏,这项新技术并未取得成功。1983年至1985年间,在图像处理领域和电子邮件领域出现了早期的含有工作流特征的商用系统。 进入九十年代以后,随着个人计算机、网络技术的普及和推广,以及信息化建设的日益完善,使得工作流技术的研究与开发进入了一个新的热潮。1993年8月,第一个工作流技术标准化的工业组织工作流管理联盟(Workflow Management Coalition,简称WFMC,下同)成立。1994年,工作流管理联盟发布了用于工作流管理系

16、统之间互操作的工作流参考模型,并相继制定了一系列工业标准。与此同时,关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来。进入二十一世纪以来,工作流技术已被越来越多的人认可,与之相关的标准规范、工作流引擎及商业产品不胜枚举。人们在开发推广工作流产品的同时,更加注重工作流的理论研究,以推动该项技术走向成熟。1.2本文结构安排本文后面内容将按如下章节编排:第二部分基础理论部分将对工作流及工作流管理系统的概念、模型等信息和Petri网相关基础知识进行解释;第三部分相关工作章节简述了工作流的发展现状以及工作流的研究领域等;第四章是本文所涉及的工作流管理系统的系统功能描述,意在从系统需求的

17、角度在功能层上介绍本工作流管理系统;第五部分以本工作流管理系统的系统架构为核心,分别从不同的角度对本工作流管理系统的系统设计思想作了详细的说明;在第五部分的系统设计基础之上,第六部分内容对本工作流管理系统的各个主要功能部件进行了关于实现技术上的详细介绍并对作为工作流管理系统灵魂的工作流引擎的部分核心代码进行了说明。2基本理论2.1工作流“工作流”这个概念并不为大多数人所了解,即使是在专业的软件开发人员中,“工作流”这三个字也是远远比不上DBMS这样的术语为人熟悉和使用的程度,这并不是说工作流技术不及DBMS等技术,只是说明了工作流技术相对于DBMS等成熟、稳定的技术来说,还处于发展的初期。工作

18、流的英文单词是workflow,犹如大多数计算机领域的术语一样,也是个合成词,是英文单词work和英文单词flow的组合。Work翻译为任务、工作等,flow则翻译为流程、流动等。Flow反映的是一种事物的动态属性或变化过程,例如水的流动被称为水流,空气的流动被称为气流,还有物料流、资金流等,在抽象领域还有信息流、控制流等,因此,使用任务、活动以及活动之间的变化过程表示业务流程就被称为工作流。在企业实际应用中,虽然工作流的概念相对于物料流、资金流、信息流等概念要抽象一些,但是工作流从更高的层次上提供了实现物料流、资金流、信息流及其涉及的相关过程与应用的集成机制,从而使得企业能够实现业务过程继承

19、、业务过程自动化与业务过程的管理。在工作流概念下实现业务过程集成与业务过程自动化的继承机制是通过定义不同任务之间相互关系的工作流模型(也称为过程模型)来实现的。在工作流模型中,无论是具体的物料转移动作、实际物理装置的操作动作、还是抽象的信息处理动作与决策过程,都可以用工作流的基本组成元素任务(也称为活动)来统一地描述。同样,反映不同任务之间的关系,无论是具体的车间中零件加工顺序关系、办公自动化中的文件批转、还是抽象的决策流之间的关系都可以用工作流的基本组成元素连接弧来统一地进行描述。连接弧反映了对企业业务经营过程的一种控制逻辑,它定义了活动之间的连接关系和执行顺序。工作流尚没有一个统一的、明确

20、的定义,不同的组织和研究人员对工作流给出了各自的定义:定义1:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行。定义2:工作流是将一组任务组织起来完成某个经营过程。在工作流中定义了任务的触发顺序和触发条件。每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以是由一个或多个人与软件系统协作完成。任务的触发顺序和触发条件用来定义并实现任务的触发、任务的同步和信息流(数据流)的传递。定义3:工作流是一个用来实施经营过程实践的机制。定义4:工作流是经营过程的一种计算机化的表示模型,定义了完成整个过程所需要的各种

21、参数。这些参数包括对过程中每一个步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个活动所需要的应用程序。以上这些工作流的定义,虽然在表述方式上有所不同,但是基本上说明了这样一个问题,即工作流是经营过程的一个计算机实现。使用工作流作为经营过程的实现技术首先要求工作流系统能够反映经营过程的如下几个方面问题:1. 经营过程是什么,即由哪些活动、任务组成,也就是结构上的定义;2. 怎么做,即活动间的执行条件、规则以及所交互的信息,也就是控制流与信息流的定义;3. 由谁来做,即人或者计算机应用程序,也就是组织角色的定义;4. 做得怎样,即通过工作流管理系统对执行过程进行监控。2

22、.2工作流参考模型随着对工作流产品需求的不断扩大,许多公司纷纷推出了不同的工作流产品。这些工作流产品都有自己的特点,也有自己的协议和接口标准,它们在不同的应用领域进行了应用。但是由于工作流管理技术与产品缺乏统一的标准,这些不同的工作流产品从术语的定义和使用、系统结构的设计到与应用之间的接口规范上都存在较大的差异,导致这些产品之间、产品与其它应用之间的集成十分困难。按照对系统开放性的要求,这些工作流系统和产品的规范化程度和开放性不够,导致它们之间不能够实现互操作。工作流管理系统互操作是指两个或多个工作流机之间通讯和协作工作的能力,具有通讯和协作的能力就称为可以互操作,否则就称为不能互操作。不同工

23、作流管理系统之间不能互操作这种情况给开发商和用户都带来了很大的不方便,也在一定程度上阻碍了工作流管理系统的推广和发展。为了能够更好的支持企业经营建模、分析和实施,适应世界市场的多元化趋势,需要建立工作流管理系统的相关标准,从系统结构、术语使用、接口实施方面提供标准化与规范化的定义,并以此为基础实现不同工作流产品之间的互操作,方便于其它应用系统的集成。在建立工作流的相关规范和标准方面,WFMC就是这样的一个国际组织。它提出了有关工作流管理系统的一些规范,定义了工作流管理系统的结构及其与应用、管理工具和其它工作流管理系统之间的应用编程接口,其主要目的是为了实现工作流技术的标准化和开发性,从而支持异

24、构工作流管理系统与产品之间的互操作,并且使得其它的应用可以使用该结构和定义好的通用API(应用编程接口)访问不同的工作流管理系统提供的服务,实现与其它应用的快速有效集成。WFMC在工作流的相关规范和标准方面做出的主要贡献之一就是提出了一个工作流参考模型(Workflow Reference Model)。工作流参考模型来源于对普通工作流程序结构的分析,确定结构中的接口,这些接口可以使不同产品在不同的结构层次上协同工作。所有工作流系统都包含一系列的公共组件,组件间采用一套被定义好的方法进行协作;不同的产品在这些公共的组件中,会表现出不同的处理能力。为了实现不同工作流产品间的协同工作,需要在这些组

25、件间制定一套标准的接口和数据交换格式。通过实现这些标准接口,可以达到产品间的协同工作。图1描述了WFMC提出的工作流参考模型的主要组件和接口。图1:WFMC工作流参考模型组件与接口过程定义工具:以计算机能处理的形式进行过程定义,现在的大多数过程定义工具采用了图形方式,过程设计者通过绘图方式来创建过程模型,最后输出一个XPDL文件,有的过程定义工具还有分析、检测功能,帮助设计者设计出良好的过程模型。工作流执行服务:由一个或多个工作流引擎组成,提供过程实例的执行,为活动进行导航,与外界资源交互完成各项活动,维护控制数据和相关数据等功能。工作流客户端应用:提供用户操作工作流管理系统分配来的任务,由工

26、作流任务表管理器和任务操作共同完成。工作流任务表管理器是一个软件模块,负责管理工作流的任务表,并完成与工作流参与者的交互操作。工作流引擎直接调用应用:在工作流任务执行过程中,一些不需要人员参与的活动会直接调用一些应用。在简单的情况下,工作流引擎使用过程模型中定义的活动信息、应用程序所需要的数据来激活外部应用程序;在复杂的情况下采用工具代理的方式。工具代理与工作流引擎之间通过专用集成接口来完成数据交换和消息传递。系统管理和监控工具:对工作流在整个组织内的流程情况进行监控,并提供一系列管理功能,实现安全性、过程控制、授权等操作。典型的功能范围包括用户管理、角色管理、监控管理、资源管理、过程监控管理

27、。具体如:过程模型的实例化,启动、挂起、恢复、终止过程实例;管理正在执行的过程实例等。工作流定义转换(接口1):在建模或定义工具与运行时期工作流管理软件间的接口。工作流客户端应用程序接口(接口2):客户端工作流应用程序与工作流机之间的通信API。应用程序调用接口(接口3):工作流机直接调用应用程序或应用程序代理的API,是工作流系统同应用系统通信的主要接口之一。WAPI协作功能接口(接口4):工作流机同工作流机之间的通信接口,是构成分布式工作流管理系统的主要功能接口之一。管理和监控接口(接口5):提供对工作流机状态以及工作流运行实例的监控和管理的接口。2.3工作流管理系统工作流管理是在迅速发展

28、的技术,它在不同的行业已经得到了应用。工作流管理技术与工作流管理系统得到广泛重视的一个重要原因是它能够在信息技术的支持下实现基于人工和计算机活动组成的业务过程的自动化,它可以实现不同自动化程度(人工操作、半自动化、自动化过程)的规范化业务管理功能,具有良好的适应性。因此,虽然工作流管理最早是在办公自动化领域开始进行应用的,它在工业领域的应用同样取得了显著的成果,尤其是在制造领域得到了广泛的应用。工作流管理系统Workflow Management System(简称WFMS),在工作流定义基础上,具有如下定义。定义1:工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先

29、定义好的工作流逻辑推进工作流实例的执行。定义2:工作流管理系统是支持企业经营过程高效执行并监控其执行过程的计算机软件系统。根据工作流管理系统的定义,一个工作流管理系统应该提供如下的功能:1. 定义、实现和管理工作流的运行;2. 与工作流执行者,即人或应用系统,进行交互;3. 推进工作流实例的执行;4. 监控工作流的运行状态。需要指出的是,工作流管理系统不是企业的业务系统。在很大程度上,工作流管理系统为企业的业务系统运行提供了一个软件支撑环境,非常类似于在单个计算机上的操作系统。只不过工作流管理系统支撑的范围比较大、环境比较复杂而以,所以也有人称工作流管理系统是业务操作系统。在工作流管理系统的支

30、撑下,通过集成具体的业务应用软件和操作人员的界面操作,才能够良好地完成对企业经营过程运行的支持。所以,工作流管理系统在一个企业或部门的经营过程中的应用过程是一个业务应用软件系统的集成与实施过程。工作流管理系统可以用来定义与执行不同覆盖范围(单个工作者、部门、全企业、企业间)、不同时间跨度(分钟、小时、天、月)的经营过程。这完全取决于实际应用背景的需求。按照经营过程以及组成活动的复杂程度的不同,工作流管理系统可以采取许多种实施方式,在不同的实施方式中,所应用的信息技术、通信技术和支撑系统结构会有很大的差别。工作流管理系统的实际运行环境可以是在一个工作组内部或者在全企业的所有业务部门。2.4工作流

31、管理系统架构图2:WFMC提出的通用工作流管理系统产品架构2.4.1工作流管理系统组成部分图2为WFMC提出的工作流管理系统产品架构。这个架构给出了抽象的工作流管理系统的功能组成部件和接口,它能够满足工作流管理系统和产品应该具有的主要功能,可为实现工作流产品之间的互操作提供公共的基础。从图中可以看出,工作流管理系统主要由三部分组成:软件构件:完成工作流管理系统不同组成部分功能的实现,包括过程建模工具,工作流引擎,任务表管理器和用户界面;系统控制数据:工作流管理系统中的一个或多个软件构件使用的数据,包括过程定义,组织/角色模型数据,工作流控制数据,工作流相关数据,任务表;应用与应用数据:对于工作

32、流管理系统来说,它们不是工作流管理系统的组成部分,而是属于外部系统和数据,它们被工作流管理系统调用来完成整个或部分工作流管理的功能,如被工作流管理系统调用的外部应用以及这些应用操作的数据。2.4.2工作流管理系统组件说明过程建模工具:过程建模工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。组织/角色模型:包含了组织结构和组织中角色的信息。这些信息往往与流程定义信息紧密相关。工作流执行系统和工作流引擎:工作流执行系统也称为过程执行环境,包括一个或多个工作流引擎。工作流引擎是WFMS的核心软件。它的功能包括:解释

33、过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口(API)调用应用程序;提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。工作流控制数据:被工作流执行系统和工作流引擎管理的系统数据,如工作流实例的状态信息、每一活动的状态信息等。工作流相关数据:指与业务过程流程相关的数据。WFMS使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用。是一段工作流引擎和应用系统共享的数据区。工作列表:流程执行中,当需要用户的交互时,工作流

34、引擎便将工作项放置到由任务表管理器管理的工作列表中,通过任务表管理器实现与用户的交互。应用程序和应用数据:应用程序可以直接被WFMS调用或通过应用程序代理被间接调用。通过应用程序调用,WFMS部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WFMS的其它部件来说是不可见的。2.5 Petri网Petri网是一个图形化的数学建模工具。一方面可以利用图形化的方式来描述工作流过程,另一方面可以通过形式化的分析技术检查工作流模型的正确与否,甚至对其进行性能分析。Petri网定义成三元组,PN=(P,T,F),其中:lP=

35、p1,p2,p3pm是库所的有限非空集;lT=t1,t2,t3tn是变迁的有限非空集;lF=PTTP是有向弧的集合,P和T还满足PT=且PT;图3:一个Petri网模型实例2.5.1 Petri网的基本元素Petri网作为一个图形化的建模工具,具有四种基本的图元,任何一个Petri网模型都是由如下四种基本图元组合形成的。这四种基本图元是:(1)库所(2)变迁(3)弧(4)标记图4:Petri网基本图元标示库所库所使用圆圈表示。库所是英文place的中文译文,在英文中place意为空间、地点、位置,大多数中文文献中都将place翻译为库所是比较形象、合理的,本文后继部分将使用库所一

36、词来代表place,为了文章说明的方便,也会交替使用place和库所,它们代表同样的图元。在后继的文章中,也会使用P来表示库所,使用Pi(i=1,2,3)表示在一个Petri网模型中的某个具体的库所。在Petri网中,库所因其所处的位置的不同被划分为三类,分别是:起始库所、终止库所、中间库所。起始库所,即start place,在标准Petri网模型中有且仅有一个,它表示Petri网模型的唯一入口,模型实例将从该点开始并进行流程推进。起始库所的特征是,没有指向该库所的外向弧,但可以有一个或多个从该库所指向变迁的内向弧。终止库所,即end place,在标准Petri网模型中有且仅有一个,它表示

37、Petri网模型的唯一出口,模型实例将在该点结束流程。终止库所的特征是,没有从该库所指向变迁的内向弧,但可以有一个或多个从变迁指向该库所得外向弧。中间库所,即intermediate place,在标准Petri网模型中可以有0个或多个,它是除去起始库所和终止库所外的第三类库所,通常,中间库所起到的作用是连接变迁与变迁,中间库所根据其相对于变迁的位置的不同又可以分为输入库所和输出库所两种。当存在一条内向弧P-T时,我们称P是T的输入库所。当存在一条外向弧T-P时,我们称P是T的输出库所。变迁变迁使用矩形表示。变迁是英文transition的中文译文,在英文中transition意

38、为转换、转变,大多数中文文献中都将transition翻译为变迁是比较形象、合理的,本文后继部分将使用变迁一词来代表transition,为了文章说明的方便,也会交替使用transition和变迁,它们代表同样的图元。在后继的文章中,也会使用T来表示变迁,使用Ti(i=1,2,3)表示在一个Petri网模型中的某个具体变迁。为了后文讨论工作流引擎调度策略的方便,这里简单介绍一下变迁在模型实例中可能存在的状态。一个变迁在模型实例中可能存在三种状态,分别是:常态、就绪态和激发态。常态,或者说是未就绪态,处于该状态的变迁是指那些尚不满足被调度的条件的变迁。就绪态,就绪态的变迁是指那些已具备了被调度的

39、条件的变迁,这里的被调度的条件是指该变迁的所有输入库所中都至少获得了一个token,这将在工作流引擎调度策略章节详细分析。激发态,激发态的变迁是指那些成为就绪态的变迁所对应的任务实体被实际执行后的变迁的状态。严格来说,激发态并不是变迁的一种静态状态,而是指处于就绪态的变迁所对应的任务被实际执行时刻的动态状态,这样来说,一个就绪态的变迁所对应的任务实体被实际执行后变迁将处于激发态,激发态只是个瞬间状态,进入激发态的变迁即刻处于常态,即进入新的等待调度条件的状态。图5说明了变迁状态的变更。常态就绪态激发态等待调度条件等待激发激发并消耗调度条件图5:变迁的运行时状态迁移图弧弧使用一条有

40、向线段表示。弧是英文arc的中文译文,弧在Petri网模型中起到的作用是连接库所和变迁,因为有弧的存在,一个Petri网的模型最终形成了一个有向图。根据弧的方向是从库所指向变迁还是从变迁指向库所,弧可以分为两类:内向弧和外向弧。内向弧是指从库所指向变迁的弧,如图。内向弧是英文inward arc的中文译文。内向弧通常使用P-T来表示,即从place指向transition的弧。外向弧是指从变迁指向库所的弧,如图。外向弧是英文outward arc的中文译文。外向弧通常使用T-P来表示,即从transition指向place的弧。这里需要说明的是,当我们说外向和内向时,我们是站在变迁即trans

41、ition的角度来说明弧的方向的,因为transition在Petri网模型中是主要的元素,transition也将是工作流调度引擎进行调度的主体,这将在后继的文章中说明。标记标记在Petri网模型中使用小黑点来表示,标记一词是本文对token的翻译,在大多数中文文献中都没有给出比较合适的翻译,通常选择了直接使用token一词,应该说在Petri网中token所起到的作用很难选择一个合适的中文来描述。标记不是Petri网静态模型的元素,而是Petri网模型实例运行时的存在的元素。具体来说,在Petri网模型建模期间是不存在标记的,只有当该模型被工作流执行引擎实例化并开始调度时存在

42、的。标记始终是存在于库所中的,如果把库所理解为一种容器,那么,库所的作用就是用来装标记的。Petri网模型实例中标记在所有库所中的分布状态就反映了一个Petri网模型实例的运行状态。因此,token在Petri网中是一种运行时模型实例状态信息的载体和标记,这也是本文将token翻译为标记的直接原因。从这个角度来说,有些参考文献引用网络中的术语将Petri网中的token翻译为令牌是不恰当的,至少是不够准确的,Petri网中的token从功能上来说是一种反映模型实例运行状态的静态实体,网络中的令牌是一种处于移动中的动态实体。Petri网中的token的生存期只是在某个特定的place中从创建到消

43、耗的过程,并不会出现token在不同的place中移动的情况。这一点在后文将由具体的解释。2.5.2 Petri网的触发器从上文所阐述的变迁运行期状态迁移中可以看出,变迁处于就绪态的时刻和变迁处于激发态的时刻是不同的。能够引起一个处于就绪态的变迁向激发态迁移的事件被称为一个“触发器”。存在四种不同类型的触发器。abcd图6:petri网中变迁的四种触发类型表示图a) 自动触发:任务一旦从常态迁移到了就绪态就马上可以被激发。这种类型的触发应用于那些不需要人来交互的而是被应用程序来执行的任务。b) 用户触发:任务由人来触发,例如,用户选择一个处于就绪态的任务来执行。在一个工作流管理系统中每个用户都

44、有一个任务输入箱,这个输入箱所包含的就是那些已经就绪的可以被用户执行的任务实例,任务实例也称为工作项(workitem)。用户选择并完成一个工作项的操作就是相关的任务实例的触发,同时工作流实例也将进入流程的下一阶段。c) 时间触发:处于就绪态的任务由一个时钟来触发。例如,任务项在一个预定的时刻被执行。d) 消息触发:一个外部事件触发一个处于就绪态的任务实例。消息可能是电子邮件、传真、电话或EDI消息。每个这样的外部事件都对应应用任务的某个活动,这样工作流系统才能知道事件的发生。2.5.3 Petri网的路由从工作流程的起始库所到中止库所的路由形式有多种,如下:顺序路由图7:顺序路由示意图并行路

45、由图8:并行路由示意图条件路由图9:条件路由示意图迭代路由图10:迭代路由示意图2.5.4 Petri网的发散和汇聚为了能够实现Petri网的路由方法,需要使用发散和汇聚,Petri网具有如下基本的发散和汇聚单元:与发散显式或发散隐式或发散与汇聚或汇聚图11:petri网的发散和汇聚标示与发散与发散标示的是一种并行路由,即多个任务可以并行地或以某种不确定的次序进行。用图表示为具有一个输入库所、两个或多个输出库所的变迁。这样,当该变迁被激发后将为所有的输出库所产生token。与汇聚与汇聚用图表示为一个具有两个或多个输入库所和一个输出库所的变迁。这样,变迁只有当其所有的输入库所中都拥有了可用的to

46、ken后才能够从常态迁移到就绪态,既是说,输入库所前并行的流程必须全部执行完,才汇聚到当前变迁,任何一个输入库所没有可用的token,变迁都处于同步等待状态。显示或发散显示或发散是条件路由的一种具体实例,它在流程的推进中表现出来的特征是尽可能早的确定(as early as possible)。用图表示为在变迁的输出弧上附加了条件判断,即是说,当变迁被激发后,并不是为其所有输出库所产生token,而是要根据输出弧上的条件,通常条件是一种bool型的表达式,以决定是否为弧所连接的输出库所产生token。隐式或发散隐式或发散也是条件路由的一种具体实例,它在流程的推进中表现出来的特征是尽可能晚的确定

47、(as late as possible)。用图表示为存在两条弧从同一库所出发指向不同的变迁,这样,当输入库所获得token后,哪个变迁先激发就会获得这个token。一旦某个变迁消耗了该token,那么,另外的变迁将不再具备就绪的条件了,也就无法被激发了。或汇聚或汇聚用图表示为两个不同的变迁拥有同一个输出库所,这样,这两个不同的变迁中任何一个的激发都会使得其输出库所后继的变迁的状态的迁移。3相关工作3.1工作流发展现状工作流的概念起源于生产组织和办公自动化领域,提出的目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高工作效率、降低生产成本、

48、提高企业生产经营管理水平和企业竞争力的目标。自20世纪90年代中期至今,互联网技术在我国迅速发展和普及,引出了Intranet、Extranet、Internet、政府上网工程、企业上网工程、电子政府、电子商务、电子管理、政府内部网、企业网、数字神经系统和数字化办公等一系列新概念,这些新概念的提出背后都或多或少的存在着工作流的思想,只不过有些概念体现的工作流思想少些,而有些概念的核心思想就是工作流的思想,如办公自动化等。随着企业信息化步伐的加快,工作流的思想已经越来越多地进入了企业应用系统领域。现代化企业为了增强工作效率、缩短信息传播周期、固化业务模式、增加核心竞争力,已经将企业经营过程的各个

49、领域各个环节均纳入了企业信息化的部分。众多的企业应用系统按照功能从大的范围来划分,无非两种,一种是以公文流转、日常办公为主体的办公自动化系统,另一种则是以企业经营过程的业务流程为主要辅助对象的具体业务系统。无论是办公自动化系统还是具体业务系统,都是为企业提供软件服务的,都是本着服务于企业需求为目标的,然而,现实世界中的各个企业的经营过程是无时无刻不在变化和调整中的,以便适应瞬息万变的市场。这种变更带给信息化系统软件的最大的问题在于企业经营过程的调整往往使得原有的信息化系统软件要推倒重新设计开发,使开发成本非常的高,寻找到一种能够相对灵活的架构和管理方式以使得信息化系统能够快速的适应企业经营过程

50、的变更成为了为企业构造信息化系统的软件设计人员的头等课题。工作流及工作流管理系统之所以能为企业信息化系统所使用究其原因也在于此。虽然工作流技术已经开始在企业应用中拥有了一片天空,然而,同已经应用于企业的其他技术相比,工作流技术仍然处于其技术发展的初期。图12:工作流技术同关系数据库管理系统技术发展曲线图图12是在stevesmith提出的用来反映一种技术从其提出到最终产品化的发展趋势的曲线图上标示了工作流技术同RDBMS技术当前发展阶段的对比。从图中不难看出,工作流技术才刚刚处于技术的提出和初期的发展阶段,距离其发展的高峰期还有很长的一段路。特别是当把工作流技术同已经处于稳定阶段的产品化了的R

51、DBMS相比时,工作流技术发展的落后是非常明显的,然而,任何一种技术的发展客观上都是遵循这一技术发展曲线的,都是要有个过程的,RDBMS技术能够达到今天的程度也是从其提出之初一点点地发展起来的,因此,工作流技术尽管仍然处于其技术提出阶段,但市场对技术的需求必将加快工作流技术的发展,加快其产品化的步伐。从国内目前工作流技术应用来看,工作流进入企业应用的还非常有限,并且,已有的工作流产品大部分属于办公自动化系统,例如协同、通达、浪潮等产品。然后,能够作为企业业务系统支撑平台的工作流产品几乎没有,企业业务系统仍是大量的专业系统各自独立的构成的,相互集成协作的能力基本上靠传统的手工方式人为的来操作,失

52、去了信息化的高效性和自动性。工作流为企业业务系统提供支撑平台的需求同当前工作流技术的发展形成了鲜明的对比,当然,需求拉动市场,市场促进科研,随着工作流技术的成熟,最终将会进入到企业业务系统并为其服务的。本文所设计实现的工作流管理系统主要目的也在于此。3.2工作流研究领域工作流管理技术,在其发展的初期主要是由工作流产品开发的公司推动着其发展,随着它在实际应用中取得的良好效果而得到了充分的重视,并且得到了迅速的发展。相对于工作流产品市场的繁荣,工作流相关理论研究则显得有些滞后。在过去很长一段时间里,有关工作流方面的研究主要是商品化的工作流管理系统的开发商所领导。本着把工作流产品推向市场的目的,这些

53、开发商大多把研究的注意力放在了工作流管理系统的开发实施方面。目前,在工作流设计方法学、工作流概念模型等方面还没有形成一套比较成熟的理论和方法。在工作流理论与实施技术方面,研究的主要内容包括:1工作流管理系统体系结构的研究;2工作流模型与工作流定义语言研究;3工作流的事务特性:研究如何实现高级事务处理技术与工作流管理技术的结合,用定义良好的模型语义与恢复机制来提高工作流系统的正确性与可靠性,从而能够更好地支持企业复杂的业务过程;4工作流实现技术:包括面向对象技术、异构分布式计算技术、图形化用户界面、消息通讯、数据库、WWW等在内的与工作流系统的设计实现有关的各项技术及方法;5工作流的仿真与分析方

54、法;6基于工作流的应用集成与互操作技术:研究异构应用系统的集成以及不同工作流系统之间的互操作问题;7工作流与经营过程重组:研究如何通过工作流管理系统的实施来支持企业快速高效地实现经营过程重组;8工作流技术的其它应用:研究如何将工作流技术在不同的领域进行应用,包括在CIMS中的应用。上述主要研究问题可以分为三个方面:第一方面是工作流的理论基础,包括工作流管理系统的体系、模型与定义语言(工作流建模方法、工作流模型的形式化标识、工作流定义语言)等的研究。这一部分工作目前相对来说比较薄弱,还有许多问题需要进一步研究。第二方面是工作流的实现技术,包括工作流的事务特性、各种先进软件技术的应用、工作流仿真。

55、这方面研究工作的主要目的是提高工作流管理系统的性能,尤其是提高工作流管理系统的可靠性及其在处理大规模复杂的且具有并行业务的流程方面的能力。第三方面是工作流技术的应用,包括工作流失事技术、在不同应用领域的应用(如在企业经营过程重组、并行工程、敏捷制造)方法、应用软件集成等。这方面研究的目的是发挥工作流管理系统的优势,为解决具体应用领域内的问题提供有效实现手段。4系统描述本文所述及的工作流管理系统是一种基于web技术的工作流管理系统,该工作流管理系统的开发目的是为企业提供各种b/s架构的软件系统的底层流程运行支撑平台,该工作流管理系统所支撑的软件系统按性质分为两类,分别是以公文流转为核心的OA系统

56、和以企业业务活动为核心的业务系统。4.1系统功能描述本工作流管理系统的设计定位于同时支撑oa系统和企业业务系统这两种对流程调度需求截然不同的系统。这也本工作流管理系统集中解决的问题,也是区别于国内现有工作流管理系统的地方,国内现有工作流管理系统大多只针对以公文流转为核心的OA系统。本工作流管理系统是一种基于web技术的工作流管理系统,基于web技术是本系统的特征。基于web技术集中体现在实现工作流管理系统的各个环节和软件实体均是采用web技术实现的,不同于某些工作流管理系统产品,虽然这些工作流管理系统也称为基于web技术的,但是,严格来说,只能说是支持web技术的,因为这些软件产品仅仅是为用户

57、提供了web操作页面,核心功能却是嵌入了ActiveX控件。基于web技术的另一层含义是,被工作流引擎调度的任务执行实体也是web方式提供的,这点对于现代企业的应用集成是非常重要的,当软件系统逐步从原来的桌面C/S模式转型为基于浏览器的B/S模型后,企业中的大部分应用系统均是B/S架构的,如何将这些B/S模式下运行的企业应用系统集成进工作流管理系统,并由工作流管理系统进行集中管理和调度同样是当前工作流管理系统软件所要挑战的课题。从本系统的实现技术层面来说,本系统应该是一种符合WFMC标准的,基于web技术、Petri网技术和关系数据库技术的工作流管理系统。符合WFMC标准,意味着本工作流管理系统的系统架构设计是完全基于WFMC的参考模型标准的,或者说系统的设计初衷是定位于一种开放性的、可扩展

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论