(计算机应用技术专业论文)轻量级工作流引擎的设计与实现.pdf_第1页
(计算机应用技术专业论文)轻量级工作流引擎的设计与实现.pdf_第2页
(计算机应用技术专业论文)轻量级工作流引擎的设计与实现.pdf_第3页
(计算机应用技术专业论文)轻量级工作流引擎的设计与实现.pdf_第4页
(计算机应用技术专业论文)轻量级工作流引擎的设计与实现.pdf_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

摘要 工作流技术是实现业务过程自动化的关键技术,这些年来逐渐成为研究热点。现有 的工作流产品大多庞大复杂、使用困难,而且架构封闭,自成体系,很难与业务应用无 缝集成,不适用于国内许多初次使用工作流技术的中小型项目。 针对以上问题,本文构建了一个基于p e t r i 网的轻量级工作流引擎p n l p l o w , 聊师l o w 具有架构清晰开放、模型简单成熟、轻量级可移植等特点。论文分别从工作流系统的体 系结构、工作流模型和开发方案三个方面对p n f i o w 进行了论述。p n f i o w 体系结构的 设计充分遵循了工作流管理联盟的工作流参考模型标准,便于和其它工作流引擎进行交 互,工作流模型采用p e m 网进行系统建模,高效实用,开发方案采用了s t r u t s + h i b e r n a t e 这种当今最流行的j 2 e e 开发框架,有效的满足了p n f l o w 的设计目标。 本文详细给出了p n f i o w 工作流引擎的设计和实现。p n f l o w 工作流引擎的设计充 分采用面向对象的设计思想,由业务类和实体类组成,业务类是p n f i o w 工作流模型中 各主要实体的对象模型,工作流的运行就是业务类的实例交互作用的结果,实体类为业 务类提供底层数据库支持。p n f l o w 的实现重点介绍了引擎的核心调度机制,调度算法 采用了p e t r i 网的经典算法。本文最后设计实现了网上购物系统,并将p n f i o w 运用到其 中。 关键宇:工作流引擎,工作流参考模型,j 2 e e ,p e t r i 网 a b s t r a e t a sa l le s s e n t i a lt e c h n o l o g yt or e a l i z eb u s i n e s sp r o c e s sa u t o m a t i o n , w o r k f l o wt e e l m 0 1 0 9 y b e c o m e sar e s e a r c hh o ts p o tg r a d u a l l yt h e s ey e a r s m o s to fe x i s t i n gw o r k f l o wp r o d u c t sa l e h u g e 、c o m p l e x 、h a r dt ou s e 。a n dt h e ya r co t t e nu n i q u ei nt h e i rs t y l ea n dc a n ti n t e g r a t ew i t h b u s i n e s sa p p l i c a t i o n ss e a m l e s s t h e s ec a u s et h e ya r en o tf i tf o rm a n ym e d i u ma n ds m a l l n a t i v ep r o j e c t s p n f l o w , al i g h t w e i g h tw o r k f l o we n g i n eb a s e do np e t r in e t ,i sc o n s t r u c t e da i m i n gt o 8 0 l v et h e s ep r o b l e m s p n f l o wh a sac l e a ra n do 口e l la r c h i t e c t u r e , as i m r l eb u tm a t u r em o d e l , a n di ti s l i g l a t w e i g l a ta n dt r a n s p l a n t a b l e t h i st h e s i sd i s c u s s e st h ep n f i o wf r o mt h r e e a s p e c t :w f m sa r e h i t e e t u r e 。w o r k f l o wm o d e la n dw t m sd e v e l o p m e n t 丘a m e w o r k t h e a r c h i t e c t u r eo fp n f l o wf u l l ye o n f o r l n st ot h es t a n d a r do fw o r k f l o wr e f e r e n c em o d e lo f w f m c ( w o r k f l o wm a n a g e m e n tc o a l i t i o n ) ,s ot h a ti tc :a nc o m m u n i c a t ew i t ho t h e rw o r k f l o w e n g i n e s t 1 1 ep n f l o w sw o r k f l o wm o d e la d o p t sp e t r in e t t om o d e l i n gs y s t e m , e f f e c t i v e l ya n d p r a c t i e a u y p n f l o wu s e ss t r u t s + h i b e r n a t e am o d e m a n dp o p u l a rj 2 e e d e v e l o pf i - a m e w o r kt o f u l f i l li t sd e s i g ng o a le f f e c t i v e l y t h i st h e s i se l a b o r a t e st h ed e s i g na n di m p l e m e n t a t i o no fp n f l o we n g i n e f u l l ya d o p t i n g t h eo b j e c t - o r i e n t e dd e s i g ni d e a s ,t h ew o r k f l o we n g i n ei sc o m p o s e do fl o g i cc l a s s e sa n de n t i t y c l a s s e s l o g i cc l a s s e sa r et h eo b j e c tm o d e lo fm a i ne n t i t i e so ft h ew o r k f l o wm o d e l ,t h e e x e c u t i o no fw o r k f l o wi st h er e s p o n s eo ft h ei n t e r a c t i o no fo b j e c t so fl o g i cc l a s s e s e n t i t y c l a s s e sp r o v i d ei n f r a s t r u c t u r a ld bs e r v i c ef o rl o g i cc l a s s e s t h ep a r to fi m p l e m e n t a t i o n i n t r o d u c e sc o r es c h e d u l i n gm e c h a n i s m , t h es c h e d u l i n ga l g o r i t h mo fw h i c hi l s e $ t h es u t r a a l g o r i t h mo f p e t r in e t f i n a l l yid e s i g n e da n di m p l e m e n t e dt h es y s t e mo f s h o p p i n go n l i n ea n d d e s c r i b e dh o wt h ee n g i n ei su s e di nw h i c h k e yw o r d s :w o r k f l o we n g i n e ,w o r k f l o wr e f e r e n c em o d e l , j 2 e e ,p e t r in e t 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取 得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得墨盗墨兰盘堂 或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研 究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名:z 抱诠签字日期:厶田年7 月日 学位论文版权使用授权书 本学位论文作者完全了解墨生堡兰太堂有关保留、使用学位论文 的规定。特授权墨盗堡墨盘堂 可以将学位论文的全部或部分内容编入 有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编, 以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复本和电子 文件。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:2 艳拎 签字日期:捌年月钿 导师签名: 签每h 期l 0 年| a “日 第一章绪论 1 1 研究背景 1 1 1 工作流问题的起源 第一章绪论 工作流技术的出现可以追溯到2 0 世纪7 0 年代的办公自动化和任务批处理,操作系 统中的j c l 语言( j o bc o n t r o ll a n g u a g e ) 就带有原始的工作流思想。8 0 年代中期,f i l e n e t 和v i e w s t a r 等公司率先开拓工作流产品市场。进入9 0 年代,随着计算机与网络技术的 迅速发展,特别是在i n t e m e t 应用日益普及的情况下,现代企业的信息系统的分布性、 异构性和自治性的特征越来越显著。在这种技术背景下,工作流管理系统也由最初的创 建无纸化办公环境,转而成为同化企业复杂信息环境,实现业务流程自动执行的必要工 具。这样的一个转变,把工作流技术带入了一个崭新的发展阶段,使得人们从更深的层 次、更广的领域对工作流展开了研究。 1 9 9 3 年工作流技术的标准化组织工作流管理联盟( w o r k f l o wm a n a g e m e n tc o a l i t i o n w f m c ) 的成立标志着工作流技术开始进入相对成熟的阶段。为了实现不同工作流产品 之间的互操作,w f m c 在工作流管理系统的相关术语、体系结构及应用编程接e l ( w a p i ) 等方面制定了一系列标准1 1 , 2 , 3 1 。 不同的研究人员分别从不同的角度对工作流提出了不同的定义,工作流管理联盟对 工作流的定义是:工作流堤一类能够完全或者部分自动执行的业务过程,它根据一系 列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行,正如数据库 的建立、运行、维护需要有数据库管理系统( d b m s ) - - 样,工作流的定义、执行和管理 需要有工作流管理系统( w f m s1 。 工作流引擎是工作流管理系统的核心。工作流管理联盟给工作流引擎下的定义是: 工作流引擎【l 】是为工作流实例提供运行时执行环境的软件服务器。实际上工作流引擎是 业务过程的任务调度器,在某种程度上还是资源的分配器。在采用工作流管理系统支持 业务过程中,工作流引擎可以看成是一个业务操作系统b o s ( b u s i n e s so p e r a t i n g s y s t e m ) 。业务过程在她的管理、监控之下运行,因此工作流引擎的性能和可靠性就直 接决定了业务过程的运行效率和安全性。 1 1 2 研究现状 近年来,工作流管理方面的研究十分活跃,在北美和欧洲等地,相关的研究机构纷 纷成立,主要的研究项目有i b ml o t u sw o r k f l o w 4 1 ,o r a l c ew o r k f l o w 5 1 等。在国内,清华 大学、浙江大学、国防科技大学和上海交通大学等高校也进行了一定的研究工作。其中, 上海交通大学的基于p e t r i 网的分布式工作流管理的研究,浙江大学研制的基于工作流 过程定义语言( w p d l ) 的工作流建模平台,都取得了良好的研究成果。但工作流管理技 第一章绪论 术在很多方面还是不成熟的。特别是针对国内的一些中小型企业,使用过程中往往会遇 到如下问题: ( 1 ) 庞大复杂,使用困难 一些工作流软件产品( 特别是国外成熟的工作流软件产品) 经过多年的发展,功能强 大、模块众多、配置和接口多样灵活,对于高端客户或工作流软件应用经验丰富的客户 来说,它们可以说是不错的选择。但对于现在国内大部分初次使用工作流技术的中、小 型项目来说,这些工作流软件的功能特性大大超过了项目需要,客户即使能够承受较高 的工作流软件采购成本,但漫长的培训学习周期、复杂的安装配置和维护都会给时间进 度已十分紧张的项目带来额外的风险。 ( 2 ) 架构封闭,自成体系 工作流管理系统要实现多个功能,如工作流建模、工作流执行和工作流监控,这些 功能应当由不同的功能构件实现,而且构件之间应当相互独立,使得用户能够选用不同 的构件来组合成工作流系统。但现有的工作流产品以一种“要么都用,要么都不用”的方 式提供给用户。例如使用o r a l c ew o r k f l o w 就得使用o r a c l e 应用服务器和o r a c l e 数据库, 使用i b ml o t u s 工作流产品就得使用其d o m i n o 服务器。这些工作流软件以所谓“群件” 技术提供用户使用,不使用此类工作流软件附加的工具或模块几乎不能使用,很难使建 于其上的业务应用相对独立完整。 ( 3 ) 针对应用开发人员的工作流软件很少 当前许多商用工作流产品为吸引客户,提倡完全由实际的业务人员来负责工作流应 用的定义和开发,宣传只需通过可视化的流程定义工具和界面定制工具就能实现工作流 应用的开发,但实际上这只适合简单的工作流应用,一旦业务逻辑比较复杂,要他们将 业务逻辑转换为工作流并且自己定制相应的应用逻辑,就会非常困难。要构造出复杂、 灵活而且可扩展的工作流应用,应当是由应用开发人员将实际的业务应用转换为工作 流,但当前的工作流产品对开发人员的支持考虑不多。 正是因为上述原因,许多需要使用工作流技术的企业级软件项目,选择了自己开发 工作流组件或在开放源码的基础上加以修改利用。然而,多数企业级软件项目都是在业 务需求繁杂,时间、人力资源极其有限的条件下进行的。开发工作流软件涉及的理论基 础和领域专门知识,项目开发人员是很难在短时间内掌握并能够灵活运用的。因此,做 出上面的选择会使本己成功概率不高的软件开发项目,面临更大的风险。 1 1 3 本文的研究内容 针对上节提到的种种问题,本文提出了构建一个基于p e t r i 网的轻量级工作流引擎 p n f i o w 的设计方案,p n f i o w 是针对j 2 e e j a v a 应用开发人员,主要以嵌入上层业务应 用( 电子商务c r m e r p o a ) 的方式部署使用的工作流软件。 轻量级工作流引擎p n f i o w 与一般的工作流引擎相比,主要有如下特点: ( 1 ) 架构清晰开放 p n f l o w 在充分使用了j 2 e e 架构的优势的同时,也有选择的使用了一些业已成熟的 应用框架( s 缸u t s i “】) 和数据访问层( o 瓜m a p p i n 一2 5 1 ) 技术。从而使得系统各模块或各层次之 2 第一章绪论 问有着清晰的接口,支持灵活的替换插拔。 ( 2 ) 模型简单成熟 p n f l o w 的核心概念模型符合w f m c 标准,易于理解接受。基于p e t r i 网 1 0 】进行业 务建模,p e t r i 网是一个图形化的数学建模工具,具有强大的理论支持可以验证模型的正 确性,使用起来又非常简单,用很少的图元就能够方便灵活的构建复杂、强大的工作流 程。引擎的核心调度也是根据p c t r i 网的经典算法进行设计,保证了引擎运行的效率与 正确性。 ( 3 ) 轻量级可移植 用户可以根据需要将p n f l o w 裁减到最小模式使用,不需要的功能模块如客户端应 用可以不用或替换成用户定制的模块,用户可以选用各种操作系统、数据库和应用服务 器。 本文最后实现了p n f l o w 在电子商务中的应用,取得了良好的效果。 1 2 论文结构安排 本文由以下六章和参考文献组成。 第一章绪论,介绍了论文的研究背景、研究现状及研究内容。 第二章工作流概述,介绍了工作流的基本概念,工作流管理系统,工作流管理联 盟制定的工作流参考模型等,然后给出了p n f i o w 的体系结构,p n f i o w 体系结构的设 计遵循了工作流参考模型标准。 第三章基于p c t r i 网的工作流系统建模,介绍了工作流模型及p e t r i 网的基础知识, 然后进行了两者之间的映射。最后给出了p n f l o w 的工作流模型,p n f i o w 的元模型对 象与p e t r i 网的基本元素一一对应。 第四章工作流引擎的设计与实现,这是本篇论文的核心部分,介绍了引擎的体系 结构,类与数据库的设计,引擎的核心调度机制,最后给出了核心部分的编码实现。核 心调度算法采用了p e t r i 网的经典算法,保证了引擎运行的效率与正确性。 第五章工作流引擎在电子商务中的实现,首先介绍了网上购物系统的设计方案及 开发技术,然后是工作流引擎与电子商务系统的结合。重点介绍了嵌入工作流引擎的开 发过程及最后呈现的效果。 第六章总结,总结全文工作,并给出下一步工作的展望。 第二章工作流概述 第二章工作流概述 随着工作流产品市场需求的不断扩大,许多软件开发商都有w f m 产品,并且不断 有新的w f m 产品走入市场。但是不同的工作流产品从术语的定义、系统结构的设计到 应用之间的接1 3 规范上都存在较大的差异,因此,不同产品之间的互操作以及产品与其 他应用之间的集成十分困难。这种情况给开发商和用户都带来了很大的不便,也在一定 程度上阻碍了工作流管理系统的推广与发展。 为了解决上述问题,由一些公司联合到一起成立了w f m c 组织。w f m c 制定了有关 工作流管理系统的一系列规范,定义了工作流管理系统的结构及其与应用、管理工具、 其他工作流管理系统之间的接口,其目的就是为了实现工作流技术的标准化和开放性, 从而使不同的工作流产品可以协同工作,并提高工作流应用与其他i t 服务的集成能力, 进而提高工作流技术在i t 市场的有效应用。 本章首先介绍了w f m c 工作流的基本概念,然后详细介绍了w f m c 工作流管理系 统的功能及体系结构,然后在此基础上设计了p n f i o w 的体系结构。 2 1 工作流的基本概念 按照w f m c 标准,本节对工作流的基本概念及相关术语作一些介绍。 工作流( w o r k f l o w ) :是一类能够完全或者部分自动执行的经营过程,它根据一系列 过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行。 业务过程( b u s i n e s s p r o c e s s ) :企业或者机构为了一个总的业务目标而进行的一系列 相关活动,这些活动的执行需要遵循一定的规则。 过程定义( d e f i n ep r o c e s s ) :业务流程的形式化描述,用来支持系统建模和运行过程 的自动化。过程可分解为一系列的子过程和任务,其定义包括描述过程起始、终止的任 务关系网络以及一些关于个体行为的信息,具体而言,即构成过程的各任务以及各任务 的关系、组织成员的角色、应用中的数据结构等。 任务( a c t i v i t y ) :业务过程的一个执行阶段,由执行者完成。执行者可以是人、软 件系统或二者的集合。任务是过程执行中可被工作机调度的最小工作单元,要求有人或 机器的参与。 实例( i n s t a n c e ) :过程的一次运行被称作一个过程实例;任务的一次运行被称作一个任 务实例。 工作流管理系统( w f m s ) :提供工作流管理功能的系统软件。 工作流引擎( w o r k f l o we n g i n e ) :工作流管理系统的核心,为工作流实例提供运行实 践的执行环境。 工作流基本概念之间的联系用图2 1 来描述: 第二章工作流概述 图2 i t 作流基本概念联系图 p i c t u r e2 - 1r e l a t i o nb e t w e e nb a s ec o n c e p t so f w o r l o q o w 2 2 工作流管理系统 2 2 1 工作流管理系统简介 工作流管理系统【l 】是一个软件系统,它完成工作流的定义和管理,并按照在计算机 中预先定义好的工作流逻辑推进工作流实例的运行。可以这样认为,工作流管理系统是 一个真正的各种i t 资源与人之间协调工作的系统。参与者是系统的基本角色,是直接的 任务分派对象。每个参与者可以直接看到系统针对自己列出的“任务清单”,跟踪每一项 任务的状态或继续一项任务的执行。这样,参与者的任务分派和任务的完成状态可以被 最大程度的电脑化和受到控制。 虽然不同的工作流管理系统具有不同的应用范围和不同的实施方式。但从最高层次 上抽象的考察工作流管理系统,其主要提供以正3 方面的功能支持【1 1 ; ( 1 ) 建立阶段功能 定义建模工作流过程及其组成任务。通过利用工作流建模工具,完成过程模型的建 立,将企业的实际经营过程转化为计算机可处理的工作流模型,即过程定义,或称为工 作流模型、工作流模板定义。 ( 2 ) 运行阶段的功能 在动态环境中管理工作流过程及运行过程中的各个任务。工作流引擎解释工作流过 程定义,创建和控制工作流实例,调度过程执行中的相应任务,分配适当的人员与应用 第二章工作流概述 程序资源。工作流引擎充当现实世界中的工作过程和描述工作过程的流程定义间的连接 工作,并将控制结果反映到与人和应用系统的交互上,工作流引擎是工作流管理系统的 核心部件 ( 3 ) 运行时与用户及应用工具交互功能 用户通过客户端部件和工作流引擎进行交互,工作流引擎维护系统中各个用户工作 项列表,表示该用户当前阶段需要处理的所有工作项。用户通过客户端部件查询并处理 工作项,并向工作流引擎汇报处理结果与状态。 图2 2 说明了工作流管理系统的基本特征及主要功能之间的关系。整个系统中,工作 流执行服务是核心功能,它包括面向参与者和工作流领域的各种应用的接口。 图2 - 2 :e 作流管理系统的基本特征以及主要功能之间的关系 p i c t u r e2 - 2b a s ew o r k f l o wc h a r a c t e r s & r e l a t i o n sb c x * - w e k 目t lf u n c t i o n s 2 2 2 工作流管理系统体系结构 为了建立工作流的相关规范和标准,“工作流管理联盟”提出了有关工作流管理系统 的一些规范,定义了工作流管理系统的结构及其应用、管理工具和其他工作流管理系统 之间的应用编程接口。图2 3 为w f m c 提出的工作流管理系统的体系结构图【2 】。 这个参考模型的体系结构给出了抽象的工作流管理系统的功能组成部件和接口,它 能够满足工作流管理系统和产品应该具有的主要功能特征,可以为实现工作流产品之间 的互操作性提供公共的基础。 第二章工作流概述 图2 3 工作流管理系统体系结构图 p i c t u r e2 - 3g e n e r i cw o r k f l o wp r o d u c ts t r u c t u r e 由图可以看出,工作流管理系统主要由三类构件【1 】组成: ( 1 ) 软件构件:包括图2 3 中的过程建模工具、工作流引擎、任务表管理器和用户界面,其 功能是完成工作流管理系统不同组成部分功能的实现。 ( 2 ) 系统控制数据:工作流管理系统中的一个或多个软件构件使用的数据。包括图2 3 中的 过程定义、组织角色模型数据、任务表、工作流控制数据等等。 ( 3 ) 应用与应用数据:包括图2 - 3 中的应用和工作流应用数据。对于工作流管理系统来说, 它们不是工作流管理系统的组成部分,而是属于外部系统和数据,它们被工作流系统调 用来完成整个和部分工作流管理的功能。 2 2 3 工作流参考模型 为了实现不同工作流系统之间的信息交换和协作,工作流管理联盟定义了工作流参 考模型1 2 】,图2 4 描述了该模型的基本部件和基本接口,说明了在工作流体系结构范畴内 主要的构件和接口。该参考模型包括五个基本部件和五个基本接口。这五个基本部件分 别是: c ) i 作流过程定义:负责给出工作流程的定义,并以一定的数据格式提供给工作流引擎解 释、执行。 ( z ) i 作流执行服务:它是工作流管理系统的核心,由一个或多个工作流引擎组成,负责 创建、管理和执行工作流实例。各个工作流应用通过工作流应用编程接口( w a 肼) 访问它。 第二章工作流概述 ( 3 ) 供调用的应用:它是一些功能应用的集合,每一个应用可能负责工作流的某项任务, 工作流引擎根据工作流的运行情况调用它们来完成工作流的执行。 ( 4 ) 工作流客户端应用:它可以通过工作列表访问接口访问工作列表库,而工作流引擎可 以把任务分配到工作列表库,由用户去访问接受分配给的仟务。 ( 5 ) - r 作流的管理和监控:负责管理监控工作流,包括用户管理、角色管理、运行记录、 错误恢复、停止和删除工作流等。 图2 - 4 1 1 2 作流参考模型一构件和接口 p i c t u r e2 - 4w o r k f l o wr e f e r e n c em o d e i - c o m l x m e n t s i n t e r f a c e s 2 2 4 工作流执行服务与工作流引擎 工作流执行服务【l 】是工作流管理系统的核心。实际上它是业务过程的任务调度器。 而工作流执行服务又是由一个或若干工作流引擎( w o r l d l o w e n g i n e ) 组成,用于创建、管 理和执行工作流实例。工作流执行服务又称为工作流运行环境,在该环境中利用工作流 引擎将流程实例化并激活流程中相应任务集合,解释并执行全部或部分工作流流程定 义,并且通过接口存取处理各个任务所需要的外部数据。 工作流引擎【i j 又是工作流执行服务的核心,它为工作流实例的执行提供运行服务环 境的软件或“引擎”。w f m c 给出的定义是:“t 作流引擎是一种软件服务,为工作流实例 提供运行实践的执行环境”。从提供的功能上看,它主要完成以下任务: 1 ) 实例化及执行过程模型:解释业务流程定义,根据过程执行需要的初始条件和执行参 数生成过程实例,运行过程实例并管理其运行过程。 2 ) 为过程和任务的执行导航:根据过程定义和工作流相关数据,为过程实例的运行进行导 航,包括启动或终止过程实例、决定并行或串行任务执行的后续任务、启动相应应用程 第二章工作流概述 序、解释工作流相关数据等等。 ( 3 ) 与外部资源交互完成各项任务:工作流执行服务通过两种途径完成与外部资源和用户 的交互,即客户应用接口和直接调用应用接口方式。对于客户应用方式,工作流引擎通 过任务项列表管理器对应用的执行进行管理。任务项列表管理器提供任务项列表供用 户进行选择,并记录监督工作项的完成情况。而对于直接调用的任务,由工作流引擎直 接调用相应的应用来完成,应用完成后将结果反馈给工作流引擎。 ( 4 ) 维护工作流控制数据和工作流相关数据:工作流在执行过程中要维护不同过程和任务 实例的内部状态信息,以及用于协调和恢复的各种检查数据和恢复挂起信息,还包括用 户传送的必要的相关数据。 2 3 p n f l o w 的体系结构 轻量级工作流引擎【6 l 指的是从够用、灵活和低成本的设计原则出发,不追求工作流 引擎的功能的完备和复杂,只是实现其中必不可少的功能和特征。在设计工作流引擎时 主要考虑对其工作流模型的定义和解释、任务之间的协调以及任务分配和控制等功能提 供支持,而不支持诸如提供内建( b u i l t - i n ) 的应用开发工具、对应用数据的定义和完整 性维护、完善的异常处理以及事务控制等功能。依据上面介绍的w f m c 标准,p n f i o w 体系结构如图如示: 图2 - 5p s f l o w 的体系结构 p i c t u r e2 5s t r u c t u r eo fp 1 蝴可o w 第二章工作流概述 主要有引擎内核和外围接口两大部分组成。引擎内核包括流程管理器、任务管理器 两个模块,外围接口包括应用代理,任务表管理、工作流定义三个模块,分别实现了 w f m c 规范中的l 、2 、3 三个接口。 1 流程管理器: 流程的管理是工作流引擎的核心部分,其功能包括:根据请求对流程进行实例化, 解释流程定义。流程管理器控制工作流实例的生命周期,任务之间的调度,控制工作流 实例的执行。当流程管理器确定一个任务处于准备状态时,它将任务的执行分派给任务 管理器。在任务执行完毕后,流程管理器决定下一个要处理的任务。 2 任务管理器 任务管理器负责任务实例的控制,主要是维护任务实例相关数据和状态。调用任务 的具体业务实现,并传递任务实例的信息。任务结束时,与流程管理器交互决定下一个 要处理的任务,以此推动整个流程的向前运转。 3 应用代理 应用代理实质上是代理程序管理器。对于自动执行的任务,由调用单元负责调用相 关的a g e n t 程序,没有用户接口;当执行任务用到的工具需要与终端用户交互时,通常 使用任务表处理器来处理。 4 任务表处理器 任务表处理器管理工作流参与者与工作流引擎间的交互,过程执行中需要与用户交 互的地方,工作流引擎把任务添加到任务表中,任务表处理器负责将写入任务表中的任 务分发给相应的任务处理人来处理。 5 工作流定义模块 工作流定义包含,工作流引擎运行过程所需的过程所有详细信息,包括过程的开始 和结束条件、组成任务、在任务间进行导航的规则、需执行的用户任务、可能会被调用 的应用程序、所有工作流相关数据的定义等。工作流定义模块负责接收用户的定义信息, 并存入相应的数据库表中。 下面对工作流引擎的工作方式作一简单描述:首先客户端会调用引擎提供的相应接 口,实例化一个事先定义好的流程,使这个实例与相应的流程和表单关联起来。在流程 实例表中插入相应的流程实例信息( 流程实例玎、流程m 、开始时间、状态等) 。在 这个过程中p f l o w 调用c o n t i n u e i f p p o s s i b l e o 会遍历流程的所有节点,找到该实例的第一 个任务执行,同时在w o r k l i s t 中插入该任务的相关信息( 任务的起始时间、任务的所有 者、t 任务d 、流程m 等) 。然后判断任务类型,是自动还是手l 如果是自动就启动 应用代理,从数据库中提取应用程序相关数据,调用外部应用程序。如果是手工,任务 表管理器查找任务表,把需要处理的任务呈现在相应用户界面中。 相关的操作人员使用该系统登录后,会查看任务表看是否有自己需要办理的任务, 如果有则办理。办理完成后点“确定”通知工作流引擎任务结束,引擎通过调用p f l o w 中的c o m p l e t e t a s k ( ) 改变任务状态,处理该任务的收尾工作,然后调用e o n t i n u e l f l a o s s i b l 印 找到下一个可以执行的任务,重复这个过程直到流程结束。 第二章工作流概述 2 4 本章小节 本章参考工作流管理联盟的相关资料,首先介绍了工作流的基本概念和定义,详细 探讨了工作流管理系统相关的基本概念,体系结构、参考模型、工作流执行服务和工作 流引擎等理论知识。然后给出了p n f l o w 的体系结构,p n f l o w 体系结构的设计遵循了工 作流参考模型标准。在下一章将详细介绍基于p e t r i 网工作流建模的方法。 第三章基于p e t r i 网的工作流系统建模 第三章基于p e t ri 网的工作流系统建模 工作流模型1 】是对工作流的抽象表示,由于工作流需要在计算机环境下运行,因此 建立相应的工作流模型是必不可少的。将业务过程所包含的任务及其执行规则的有序集 形式化就是工作流模型。 工作流模型完整地提出支持工作流定义的概念,为建模用户提供工作流定义所需要 的组件或元素。理想的工作流模型能够清楚地定义任意情况下的工作流,能够适应用户 在建模过程中所提出的各种要求。工作流必须要描述清楚一个经营过程是怎样进行的, 所以许多工作流模型都是从过程定义入手,主流的建模方法主要包括基于活动网络的过 程模型、基于语言行为理论的工作流模型、基于p e 啊网的工作流模型、基于事件过程链 的工作流模型等四种。在本章中,笔者对基于p e t r i 网的工作流建模理论进行了深入研究。 3 1 基于p e t r i 网的工作流网描述 p e t r i 网【lo 】是由德国学者c a r l a d a m p e t r i 于6 0 年代提出来的一种图形化描述过程的强 有力的工具,经过三十多年的发展,它已被广泛应用于各个领域进行系统的建模、分析 与控制。 p e t r i 网是一个图形化的数学建模工具。一方面可以利用图形化方式描述工作流过 程,另一个方面可以通过形式化分析技术检查工作流模型的正确与否,甚至对其进行性 能分析。 p e t r i 网定义成三元组,p n = ( p ,t ,f ) ,其中: p _ - p l , p 2 ,p 3 p m ) 是库所的有限非空集; t = 础t z ,t i l 是变迁的有限非空集; f = p x t u t x p 是有向弧的集合( x 表示笛卡尔集合) p 和t 还满足p n t = c 且p u t c ; p e t r i 网由库所和变迁组成,圆圈表示库所,矩形表示变迁,库所和变迁用有向弧连 接。p e t r i 网的动态行为用托肯( t o k e n ) 的分配来描述,用( ) 表示,p e t r i 网结构是固定的, 而库所中的托肯的分布是可以变化的。 变迁是p e t r i 网中的主动元素,通过实施变迁,过程从一个状态转移到另一个状态。 变迁经常表示为事件、操作、转换、传输:库所是p e t r i 网中的被动元素,不能改变网的 状态,通常表示为媒介、缓冲器、位置、阶段、条件;托肯表示为对象,可以表示为一个 特定的事务或抽象的信息。 通过扩展p e t r i 网模型定义,假如p e 伍网p n 满足如下两个条件:条件l ,p n 具有一 个起始库所和一个终止库所,进入起始库所的托肯代表一个过程实例的开始:而进入终止 库所的托肯代表一个过程实例的结束;条件2 ,p n 中不存在处于孤立状态的变迁与库所, 第三章基于p e t r i 网的工作流系统建模 所有的变迁与库所都位于起始点到终止点的通路上,该p e t r i 网就能被称为工作流网【1 6 1 , 其数学定义为: p n 有两个特殊的库所i 和o 。i 是一个起始库所,即i :c ;o 是一个终止库所,即 o = c 如果在p n 中加入一个新变迁t ,使t 连接库所i 和o ,即t = i ) ,t 一 0 , 得到的n 是一个强连通的p e t r i 网。 在建模过程中,如果使用条件和任务的概念,则库所表示条件,变迁表示任务。一 个变迁( 任务) 有一定数量的输入和输出库所,分别表示任务的前置条件和后置条件。库 所中的托肯表示可以使用的资源或数据。被建模系统的状态可以用每个库所中的托肯表 示,状态的变化由变迁的触发引起,变迁触发的结果是每个连到该变迁的库所,在触发 后,所有的输入库所减少一个托肯,而所有的输出库所增加一个托肯,状态的变化代表 了流程的演进过程。 3 2 工作流模式与工作流网的映射 在工作流系统应用范畴内,用工作流过程表示企业的一个业务流程,用库所表示条 件,其中包含一个开始库所和一个结束库所分别对应了过程的开始和结束,用变迁表示 任务,任务的执行方式由路由决定。根据w f m c 的定义,工作流应该包括4 种基本的 路由结构m3 1 ,分别是顺序、分支、并行、循环,由它们能构造出复杂的流程嘲。 棚靳( ! ! 卜刚! ! 卜卧! ! 卜刚竺) b 圈t 井行 d 圈,循环 图3 - 1 用f e l r i 网描述工作流的四种基本模式 p i c t u r e3 - 1f o u rw o r k f l o wp a 岫, n sd e s c r i b e di np e l a in e t 顺序路由用于表达任务间的因果关系。见图3 - l ( a 图) 。只有a 执行完后b 才能开 始。c 2 模拟任务a 的后置条件和任务b 的前置条件。任务的前置条件指明相应任务的 启动条件,启动条件是通过相应任务的直接前趋任务以及相应的状态标志来表示的;任务 第三章基于p e t r i 网的工作流系统建模 的后置条件是当前任务所对应的任务结束后该启动哪些后继任务。在p c t r i 网中,通过 在两个任务间添加一个库所进行链接的方式来建模。 并行路由如图3 - 6 0 3 图) 所示,任务b 和c 可按任意顺序执行。为了表达这种关系, 在p e t r i 网中添加a n d s p l i t 任务和a n d - j o i n 任务。任务a 表达了b 与c 并行的关系, 而d 表达了同步的思想,只有b 与c 所在的任务都执行结束后d 才可以开始。 选择路由( 或分支) 见图3 - 6 ( c 图) ,任务a 具有两个输出库所c 2 与c 3 ,但这里与“与 分支”不同,a 在这里表示“或分支 a 只能根据其某个任务属性x 的值来决定向哪个库所 输出托肯。比如,若x 0 ,e 2 获得托肯,任务b 被执行;若x 0 ,则0 获得托肯,任务c 被执行。 循环路由见图3 - 6 ( d 图) 所示,b 是被反复执行的任务,c 可以理解为一个起控制作 用的任务,用来检验b 的执行结果,来决定是把托肯转移到“还是移回c 2 ,如果托肯 被移到c 4 b 不再被执行,而是继续推进流程的执行;如果托肯被移回c 2 ,b 将反复的执行。 在对某个业务流程进行分析时,构造块( 如a n d - s p l i t , a n d - j o i n , o r - s p l i to r - j o i n ) 被用 来建模条件、并行、循环路由。在p e t r i 网与工作流过程映射中,一个a n d - s p l i t o r - s p l i t 对应一个或多个输出库所的变迁,一个a n d - j o i n o r - j o i n 对应着一个或多个输入库所的 变迁。 3 3p e a - i 网建模的意义 利用p e t r i 网进行工作流过程建模主要有以下几个优点【1 1 1 : ( 1 ) p e t r i 网兼有严格语义和图形化表示的特点。 一方面,p e t r i 网的所有元素都经过严格定义,具有规范的模型定义,因此基于p e t r i 网表示的工作流过程也具有十分清晰与严格的定义。p e t r i 网具有足够丰富的表达能力, 可以完全支持w f m c 定义的四种工作流路由结构,可以无歧义地表示规范的业务流程。 另一方而,p e t r i 网是一种图形化语言,具有直观易懂的特点,使得建模人员能够比较方 便地针对模型的含义去和用户进行交流,以便描述用户环境及改进模型。 ( 2 ) p e t r i 网是一种基于状态的建模方法。 现有许多工作流管理系统所采用的过程建模方法都是基于事件驱动的,这类方法把 任务与任务之间的转移定义得十分清楚,而对于任务的状态并没有明确体现。相比之下, p e t r i 网则是一种基于状态的建模方法。它明确定义了模型元素的状态,而且它的演进过 程也是受状态驱动的,和基于事件驱动的方式相比,基于状态的建模方法具有更丰富的 表达能力以及更多的柔性特征,因此,更加适合于工作流程的定义。 f 3 ) p e t r i 网具有强有力分析技术与手段 经过三十多年的发展,p e t r i 网拥有了多种可以利用的分析技术,可以用来分析工作 流模型的各种特征,如有界性( 安全性) 、活性( 无死锁) 、不变量等;也可以用来计算模型 的各种性能指标,如响应时间、等待时间等。 综上所述,p e t r i 网是一种具有较好基础的,适合于描述工作流过程的建模方法。 第三章基于p e t r i 网的工作流系统建模 3 4p n f i o w 的工作流模型 在p n f i o w 模型中,一个完整的流程由一个p e t r i 网构成。库所表示条件,变迁表示 任务。组成模型的基本元素包括流程( c a s e ) 、任务( t a s k ) 和条件( c o n d i t i o n ) 。 3 4 1 流程 流程是为完成某一预定的目标而定义的。它由一系列具体的步骤组成,每一个步骤 叫做一个任务。在p n f i o w 中工作流程用p e t r i 网表示,一个流程有初始、运行、挂起和 完成4 个状态。其状态转换图如图3 2 所示: 图3 - 2 流程状态图 p i c t u r e3 - 2s t a t u so f f l o w 1 开始( i n i t i a t e d ) :等待激活状态。这时流程实例已经被创建,但是还没有被激活。 2 运行( r u n n i n g ) :流程正在处理状态。 3 挂起( s u s p e n d e d ) :发生异常,中止处理状态。 4 完成( c o m p l e t e ) :执行完成状态。 3 4 2 任务 流程中的每一个步骤叫做一个任务,在p e t r i 网中,它由一个矩形节点表示。一个 任务可以是人工执行,也可以是自动执行。自动执行是指为任务绑定一段程序代码,当 任务被激活时,相应的

温馨提示

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

评论

0/150

提交评论