(计算机科学与技术专业论文)基于ioc容器的工作流引擎的研究与设计.pdf_第1页
(计算机科学与技术专业论文)基于ioc容器的工作流引擎的研究与设计.pdf_第2页
(计算机科学与技术专业论文)基于ioc容器的工作流引擎的研究与设计.pdf_第3页
(计算机科学与技术专业论文)基于ioc容器的工作流引擎的研究与设计.pdf_第4页
(计算机科学与技术专业论文)基于ioc容器的工作流引擎的研究与设计.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机科学与技术专业论文)基于ioc容器的工作流引擎的研究与设计.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院工学硕士学位论文 摘要 工作流的研究始于上世纪8 0 年代,并一直得到广大学者和研究机构的关注。 在全球企业竞争越来越激烈的今天,工作流管理系统作为提高企业管理水平和生 产效率的有效工具,更受到众多公司的重视。 工作流引擎是工作流管理系统的核心部件,主要为工作流管理系统提供流程 控制功能。工作流技术的不断发展和成熟,其应用范围越来越广泛和深入。除了 工作流管理系统,许多其他应用系统也都需要工作流引擎为其提供流程控制功能。 但是传统的工作流引擎同工作流管理系统绑定在一起,很难独立出来同其他应用 系统相结合。这导致了工作流引擎核心功能的重复开发。 i o c 的全称是i n v e r s i o no fc o n t r o l ,即反转控制( 也称为依赖注入) 。它 是近几年兴起的编程模式。该模式能够方便的配置系统中各构件的相互关系,使 系统各构件在运行时互相协作,因此该模式能很好的协调各构件的依赖关系,减 少构件之间的耦合,提高构件的重用性。 本文分析传统工作流引擎不足后,利用i o c 容器在构件组装方面的优势,研 究并提出一种新的嵌入式工作流引擎的设计方法。首先设计了引擎的系统框架, 详细说明引擎各个组成部分的功能,并提出基本构件和过程构件的概念。然后利 用j a v a 语言的s p r i n gi o c 容器实现了一个引擎原模型。最后测试原模型对常见 工作流模式的支持能力,并归纳引擎所能支持的工作流模式以及说明如何扩展工 作流引擎来支持特殊的流程。 基于i o c 容器的工作流引擎提取了一般工作流引擎的核心功能,易于同其他 应用系统相结合,可以为其他应用系统提供流程控制的功能,减少这些应用系统 对工作流引擎的重复开发。本文还设计了1 1 种基本构件,通过这些基本构件的组 装可以支持常见的工作流模式,满足各种软件系统对工作流技术的需求。 主题词:i o c 容器,工作流引擎,构件,基本构件,过程构件,工作流模式 第i 页 国防科学技术大学研究生院丁学硕十学位论文 a b s t r a c t t h er e s e a r c ho fw o r k f l o wt e c h n o l o g yb e g a ni n8 0 so fl a s tc e n t u r y t h e ni ta t t r a c t e d t h ea t t e n t i o no fs c h o l a r sa n dr e s e a r c hi n s t i t u t i o n sa l lt h ew a y t o d a yt h ec o m m e r c i a l c o m p e t i t i o ni sm o r ea n dm o r ei n t e n s e i nt h i ss i t u a t i o n ,t h ew o r k f l o wm a n a g e m e n t s y s t e mc a t c h e sm o r ea t t e n t i o na si ti sau s e f u lt o o lt oi m p r o v et h ec o m p a n y se f f i c i e n c y w o r k _ f l o we n g i n ei st h ec o r ec o m p o n e n to fw o r k f l o wm a n a g e m e n ts y s t e m ,t h e m a i nf u n c t i o no fi ti st oc o n t r o lt h er u n n i n go ft h ew o r k f l o w b yt h ed e v e l o p m e n to f w o r k f l o wt e c h n o l o g y ,t h eu s eo fi ti sb r o a d l ya n dd e e p l yd a yb yd a y m a n ya p p l i c a t i o n s , e x c e p tw o r k f l o wm a n a g e m e n ts y s t e m ,n e e dt h i st e c h n o l o g ya l s o b u tt h et r a d i t i o n a l w o r k f l o we n g i n ei st i e du pw i t hw o r k f l o wm a n a g e m e n ts y s t e m ,s oi ti sh a r dt or e u s et h e e n g i n ei no t h e ra p p l i c a t i o n i n v e r s i o no fc o n t r o li sc a l l e di o cf o rs h o r t i ti san e wp r o g r a mm o d er a i s e di n r e c e n ty e a r s t h i sm o d em a k e su se a s yt oc o r t f i gt h er e l a t i o n s h i po fe a c hc o m p o n e n ti n t h es y s t e m ,s ot h e s ec o m p o n e n t sc a nc o o p e r a t ew i t he a c ho t h e ra tr u nt i m e s ot h e a d v a n t a g eo fi o ci st om a k e t h ec o m p o n e n tr e u s a b l e a f t e ra n a l y z i n gt h ed i s a d v a n t a g eo ft h ec u s t o mw o r k f l o we n g i n e ,w es t u d ya n e wm e t h o do fd e s i g na ne m b e d d e dw o r k f l o we n g i n e t h i se n g i n ei sb a s eo ni o c c o n t a i n e rw h i c hi sg o o da tc o m p o n e n tc o m p o s i t i o n w ef i r s td e s i g nt h ea r c h i t e c t u r eo f t h ew o r k f l o we n g i n e t h e ni l l u m i n a t et h ef u n c t i o no fe a c hc o m p o n e n tc o n t a i n e di nt h i s a r c h i t e c t u r e w ea l s oi n t r o d u c et w oc o n c e p t sh e r e :b a s ec o m p o n e n ta n dp r o c e s s c o m p o n e n t t h e nw ef i n i s hap r o t o t y p eo ft h ei o cw o r k f l o we n g i n eb yu s i n gt h ej a v a l a n g u a g ea n ds p r i n gi o cc o n t a i n e r a tl a s t ,w et e s tt h i sp r o t o t y p et os e ew h e t h e ri t s u p p o r tt h o s eb a s ew o r k f l o wp a t t e r n so rn o t ,a n dt h e nc o n c l u d ea l ik i n d so fw o r k f l o w p a t t e r n st h a to u re n g i n ei sa b l et os u p p o r t ,i l l u m i n a t eh o w t oe x t e n do u re n g i n et om e e t t h es p e c i a ln e e do fs o m ew o r k f l o w s i o cw o r k f l o we n g i n ee x t r a c t st h ec o r ef u n c t i o n sf r o mt h en o r m a lw o r k f l o w e n g i n e i ti se a s yt oc o m b i n ew i t ho t h e ra p p l i c a t i o n s ,a n ds u p p o r tt h e s ea p p l i c a t i o n st o c o n t r o lt h e i rw o r k f l o w w ea l s od e s i g n11b a s ec o m p o n e n t s b yc o m b i n i n gt h e s eb a s e c o m p o n e n t s ,t h ee n g i n ei s a b l et os u p p o r tt h o s en o r m a lw o r k f l o wp a t t e r n s s ot h e e n g i n ei sa b l et os a t i s f yt h ea p p l i c a t i o n s n e e df o rw o r k f l o ws e r v i c e k e yw o r d s - i o cc o n t a i n e r ,w o r k f l o we n g i n e ,c o m p o n e n t ,b a s ec o m p o n e n t , p r o c e s sc o m p o n e n t ,w o r k f l o wp a t t e r n 第i i 页 国防科学技术大学研究生院丁学硕士学位论文 表目录 表3 1 基本构件的运行规则2 5 表3 2 基本构件的出度和入度( n 为大于2 的整数) 2 6 表5 1 引擎对2 0 种工作流模式的支持情况。5 7 第1 v 页 国防科学技术大学研究生院工学硕士学位论文 图目录 图2 1 工作流概念的基本关系7 图2 2 通用工作流系统模型架构8 图2 3 工作流参考模型的组件和接口9 图2 - 4 工作流实例状态变迁图1 l 图2 5 工作流管理联盟过程定义原模型1 2 图2 - 6 工作流管理联盟定义的基本工作流模式1 3 图2 7 高级同步模式13 图2 82 0 种工作流模式1 4 图3 1 嵌入式工作流引擎同业务系统的关系2 0 图3 2 独立式工作流引擎同业务系统的关系2 0 图3 3 基本构件、i o c 容器和过程构件的关系2 3 图3 4 业务流程示例2 3 图3 5 引擎结构图2 7 图3 - 6 引擎同业务系统的集成框架2 9 图4 1 工作流引擎的系统框架3 2 图4 2o r s p l i t 、x o r - s p l i t ,o r j o i n 、x o r j o i n 的区别3 3 图4 3 基本构件和过程构件的关系3 4 图4 4 过程构件和基本构件的树状关系3 5 图4 5 基本构件的静态类图3 7 图4 6 循环模式3 9 图4 7i t e r a t i o n 构件静态类图4 0 图4 8 构件控制器、实例管理器和任务处理器的静态关系图4 1 图4 - 9 过程实例创建过程4 1 图4 1 0 任务的类型4 2 图4 1 1 任务处理过程4 2 图4 1 2 数据库e r 图4 5 图5 1 死锁4 6 图5 2 顺序模式测试用例4 7 图5 3 顺序模式测试结果4 8 图5 4 并行分支模式和同步模式测试用例4 8 图5 5 并行分支模式和同步模式测试结果5 0 图5 - 6 排它选择模式测试用例5 0 第v 页 国防科学技术大学研究生院下学硕+ 学位论文 图5 7 排它选择模式测试结果5 2 图5 8 简单合并模式测试用例5 3 图5 - 9 简单合并模式测试结果5 3 图5 1 0 多路选择模式和同步合并模式测试用例5 4 图5 1 1 多路选择模式和同步合并模式测试结果5 4 图5 1 2 循环模式测试用例5 5 图5 1 3 循环模式测试结果5 5 图5 1 4 运行阶段可确定实例数目的多实例模式5 6 第v i 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文作者签名:上色啦 日期:j 州7年,夕月,7 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文作者签名:塾生丛 作者指导教师签名:) j 囱啦 日期:夕年。月,7 日 嗍:抄7 和堋少日 国防科学技术大学研究生院工学硕士学位论文 第一章绪论 1 1 课题研究背景 工作流的研究始于上世纪8 0 年代,并一直得到广大学者和研究机构的关注。在信息 技术快速发展和全球企业竞争越来越激烈的今天,工作流管理系统作为提高企业管理水平 和生产效率的有效工具,更受到众多公司和研究机构的重视。 工作流技术的主要特点是过程的自动化处理,这些过程包含以人为基础的活动和以机 器为基础的活动。许多软件开发商都有工作流管理系统相关的产品,每年也有很多新的产 品出现。因此,市场上可选的产品的范围很大。但是,每个开发商只关注产品的某一特定 功能,用户可以采用不同的产品来满足不同的需求。然而,由于不兼容的过程控制方式和 不同的规范,使得不同的工作流产品不能够互相协作。 为解决上述问题,1 9 9 3 年8 月,工作流标准化组织工作流管理联盟( w o r k f l o w m a n a g e m e n tc o a l i t i o n ,w f m c ) 成立。该联盟是一个非盈利性的组织,由国际著名公司、 研究机构、高等院校等3 0 0 多家机构组成。工作流管理联盟为工作流产品制定适当的规范, 希望这些规范能使不同的工作流产品能够互相协作,并提高工作流应用程序与其他i t 服务 ( 例如e m a i l 、文档管理) 的集成能力,从而使工作流技术在i t 市场上被更有效的应用, 使开发商和用户共同受益【2 】。工作流管理联盟的成立奠定了工作流技术在计算机研究应用 领域的重要地位i l j 。 这些年,工作流技术不断发展和成熟,使得其应用范围越来越广泛和深入。在企业的 应用中,工作流技术主要解决两类问题:包含在一个业务或软件过程中所有实体的协作和 系统内外部的数据、资源、应用逻辑的集成。当今,工作流技术已经渗透到各个领域和各 种软件系统中。除了专门的工作流管理系统外,工作流技术还广泛应用到电子政务、企业 办公、管理软件上。 1 2 研究现状与课题的提出 根据工作流管理联盟的定义,工作流是“一类能够完全或部分自动执行的业务过程, 它根据一系列过程规则,使得文档或信息或任务能够在不同的执行者之间进行传递和执 行”【2 j 。工作流管理系统将控制流程从传统的业务系统中分离出来,使得现代企业能够适 应快速变化的业务需求,因此近几年得到了广泛的应用。 工作流引擎是工作流管理系统的核心,为工作流实例提供运行时的软件环境。它在工 作流实例运行阶段需要解析过程定义;控制过程实例的创建、激活、挂起、终止等状态变 迁;根据变迁条件确定流程的流向;控制流程参与者的登记及注销;分配具体任务到指定 第1 页 国防科学技术大学研究生院工学硕七学位论文 的参与者;提供外部程序所需的数据并将数据传递给外部程序;传递相应的数据给监控工 具;引导确定型及不确定型工作流程等【引。 传统的工作流引擎同工作流管理系统是绑定在一起的。随着工作流技术的普及和广泛 应用,许多管理软件、办公系统、电子政务系统等都需要引入工作流技术。因此,对于这 些非专门的工作流管理系统,需要开发出一个简单的引擎满足这些系统对工作流技术的需 求。虽然这种工作流引擎没有专门的工作流管理系统复杂,但是也需要耗费很大的精力去 开发。 基于构件的软件复用技术已经成为近年来软件开发的主流【3 】。将工作流引擎封装设计 成可重用的构件,可以使其他软件系统通过构件配置来实现对工作流引擎的使用,避免工 作流引擎的重复开发。这种工作流引擎构件也被称为嵌入式工作流引擎。早在1 9 9 7 年,j u h a 等人就在文章 4 中提出运用构件思想来设计工作流软件,提出工作流各部分功能组件要进 行模块化设计,避免可复用组件的重复设计。p j t o u s s a i n t 在文献【5 】中利用模块化思想 和组件化设计,实现了不同工作流系统之间的柔性集成方案。2 0 0 0 年,m i c h e lz u rm u e h l e n 通过w f m c 发表的一篇论文中提出了嵌入式工作流的概念,后来他又在文献 6 】中从不同 角度分析了嵌入式工作流和自治工作流各自的优劣势。文献 7 中,将工作流系统中的通用 模块提取出来,形成一个工作流内核,这个工作流内核便是嵌入式工作流引擎。它可以同 上层应用系统相结合,提供上层系统所需的流程控制功能。 在我国,李海波等人在文献 8 中提出了一个基于工作流引擎的构件组装结构,研究了 在构件环境下,业务对象、控制流和数据流的特点和交互模式。金正晔等人在文献 3 0 】中 提出用构件化的方法来开发工作流系统,并提出“工作流业务构件 的概念。何建校在文 献 9 】中,提出并设计了一个基于j 2 e e 的嵌入式工作流引擎,通过同独立式工作流引擎对 比,阐述了嵌入式工作流引擎在部署、二次开发的难易程度、性能、是否支持分布式应用 等各方面优势。 目前,在j a v a 开源社区中,已经出现了一些嵌入式工作流引擎。由于j a v a 的开放性及 j 2 e e 在分布式应用中的优越性,基于j a v a 语言的嵌入式工作流引擎应用越来越广泛。比 较成熟的嵌入式工作流引擎有:j b p m 1 0 j 、o s w o r k f l o w 1 1 】等。j b p m 是一个灵活可扩展的工 作流管理系统。它将工作流应用开发的便利性和杰出的企业应用集成( e a i ) 能力结合了 起来。j b p m 包括一个w e b 应用程序和一个日程安排程序,可以作为j 2 e e 应用集群部署。 o s w o r k f l o w 是一个灵活的工作流引擎,设计成可嵌入到企业应用程序中。它提供了许多 的持久化a p l 支持包括:e j b ,h i b e r n a t e ,j d b c 和其它。o s w o r k f l o w 还可以与s p r i n g 集 成。 国内也出现了像j o i n w o r k 2 7 】这样的嵌入式工作流引擎。j o i n w o r k 是一款针对j 2 e e 应 用开发人员,主要以嵌入上层业务应用( 电子政务c m i 冲o a ) 的方式部署使用的工 作流软件。它的核心概念模型符合w f m c 标准,流程控制模型基于成熟工作流建模理论 第2 页 国防科学技术大学研究生院1 = 学硕士学位论文 p e t r i 网。 随着工作流技术的越来越普及,嵌入式工作流引擎的应用也越来越广泛。在上个世纪 8 0 9 0 年代,大部分工作流应用采用第一种应用方式( 独立式工作流系统) 。现在,对于 包含复杂流程的应用系统,许多软件提供商重新定位和设计它们的工作流产品,使其成为 应用系统的构件模块( 即嵌入式) 2 8 】。为使各种应用系统能更好的使用工作流技术,本文 设计并实现了一个基于i o c 容器的工作流引擎。该引擎基于构件化的设计思想,使用现在 被广泛应用的i o c 设计模式,因此能很容易的被应用到现有的软件系统中,为软件系统提 供基本的工作流服务。 1 3 1 主要研究工作 1 3 主要研究工作及意义 本文主要的研究工作有以下几方面: ( 1 ) 分析研究基于i o c 容器的工作流引擎的关键技术。 ( 2 ) 设计基于i o c 容器的工作流引擎的系统结构,详细分析系统各组成部分的功能; 提出基本构件和过程构件的概念,设计三类共1 1 种基本构件,讨论如何使用i o c 容器将 基本构件组装成过程构件。 ( 2 ) 利用s p n n gi o c 容器和j a v a 语言具体实现了i o c 工作流引擎的主要构件。s p r i n g 是一个被广泛使用的j 2 e e 框架,s p r i n gi o c 容器是s p d n g 框架的核心。通过使用s p d n gi o c 容器,我们能很好的解耦软件中的各个部件。 ( 3 ) 测试基本构件对顺序模式、并行分支模式、同步模式、排它选择模式、简单合 并模式、多路选择模式、同步合并模式、循环模式的支持。 1 3 2 研究意义 工作流技术实现业务过程逻辑和业务活动的分离,这一技术满足了现代企业可以适应 快速变化的业务需求。随着工作流技术的发展和普及,电子政务、企业办公、管理软件等 各种应用系统也融合了这一技术,以此来提高效率。本文采用构件组装的思想,设计了一 个基于i o c 容器的工作流引擎。该引擎易于同其他软件系统相结合,为其他软件系统提供 基本的流程控制功能,满足其对工作流技术的需求。该引擎易于扩展,使用灵活,具有可 移植性和可复用性,可广泛用于对工作流技术有一定需求的各种应用系统中。 1 4 小结 论文第一章分析了课题研究背景,并概括当今课题的研究现状,提出课题,并说明研 第3 页 国防科学技术大学研究生院- t 学硕十学位论文 究意义。 第二章系统介绍了工作流相关技术,分析工作流存在问题和发展趋势。 第三章分析常见工作流引擎实现技术,然后比较独立式和嵌入式工作流引擎入手,针 对传统工作流引擎的不足,提出一种新的基于i o c 容器的工作流引擎设计方法,并研究该 引擎的主要技术。 论文第四章从基于i o c 容器的工作流引擎的系统结构入手,分析如何设计工作流引擎 的各个构件,并详细说明构件的作用和功能。然后说明如何利用j 2 e e 技术和s p r i n gi o c 容器来实现引擎的关键部分。 论文第五章设计了一些基本的过程定义来测试工作流引擎,每一个过程定义都包含一 种基本工作流模式,通过测试来说明工作流引擎具有普遍的适应性,可满足基本的流程控 制需要。 第六章总结和展望。 第4 页 国防科学技术大学研究生院t 学硕士学位论文 第二章工作流技术概述 工作流的概念最早起源于办公自动化,是人们为了提高办公效率,针对日常工作中固 有的程序活动而提出的概念。 8 0 年代中期,出现了最早的工作流管理系统,f i l e n e t 公司的w o r k f l ob u s i n e s ss y s t e m 和v i e w s t a r 公司的v i e w s t a r 。这些工作流管理系统只是将图像扫描、复合文档、结构路由、 关键字索引以及光盘存储等功能结合在一块,形成一种全过程支持某些业务流程的集成化 软件。 九十年代,企业信息资源出现异构、分布、松散耦合的特点,同时c s b s 体系结构、 分布式处理等技术日益成熟。工作流技术由原来的创建无纸办公环境,转而成为同化企业 复杂信息环境、实现业务流程自动执行的必要工具。随后,更多的技术被集成到工作流中 来,文件管理系统、数据库、电子邮件、移动计算、w e bs e r v i c e 等。工作流逐渐成为支持 企业业务过程重组b p r 、业务过程自动化b p a 的有效手段,受到产业界和学术界的重视。 1 9 9 3 年,国际上成立了工作流管理联盟w f m c 。为实现不同工作流产品的互操作, w 蹦c 在工作流管理系统的相关术语、体系结构、参考模型及应用编程接口等方面制定了 一系列标准。工作流管理联盟的成立标志着工作流技术开始进入相对成熟的阶段,同时在 计算机应用领域中划分出一席之地。 2 1 工作流技术基本概念 工作流技术虽然在8 0 年代就已经出现,但如果同数据库做类比,它还处于很不成熟 的阶段。目前,关于工作流概念和术语的不统一就是它不成熟的表现之一。下面我们给出 几个不同机构和公司对工作流的定义: ( 1 ) 工作流管理联盟的定义:工作流是一类能够完全或者部分自动执行的业务过程, 它根据一系列过程规则,使得文档、信息或任务能够在不同的执行者之间进行传递和执行。 ( 2 ) i b m 的定义:工作流是业务过程的一种计算机化的表示模型,定义了完成整个 过程所需要的各种参数。这些参数包括对过程中每一个步骤的定义、步骤间的执行顺序、 条件以及数据流的建立、每一步骤由谁负责以及每个活动所需要的应用程序。 ( 3 ) p e o p l e s o f t 的定义:工作流是一个用来实施业务过程实践的机制。 ( 4 ) 清华大学范玉顺教授,吴澄院士等人的定义:工作流是一种反映业务流程的计 算机化的模型,它是为了在先进计算机环境支持下实现经营过程集成与经营过程自动化而 建立的可由工作流管理系统执行的业务模型。 以上这些对工作流的定义是用非形式化语言对工作流所进行的描述,虽然各有不同, 但基本上都达成了这样的一个共识:工作流是经营过程的一个计算机实现,而工作流管理 第5 页 国防科学技术大学研究生院工学硕士学位论文 系统就是这一实现的软件环境。 下面,我们简要介绍一下工作流技术相关的一些基本概念和它们之间的联系【2 1 。 ( 1 ) 工作流管理系统( w o r k f l o wm a n a g e m e n ts y s t e m ) :是一个通过使用软件来定义、 创建和管理工作流的执行的系统。工作流管理系统运行于一个或者多个工作流引擎之上, 工作流引擎可以对过程定义进行解释,可以与过程参与者进行交互,必需时也可以为工作 流管理系统调用其它应用程序。 ( 2 ) 流程定义( p r o c e s sd e f i n i t i o n ) :业务流程的形式化描述,用于支持系统建模和 运行过程的自动化。流程可分解为一系列子流程和活动,其定义主要包括描述流程起始、 终止的活动关系网络,以及一些关于个体行为的信息,如组织成员、与i t 相关的应用和数 据等。 ( 3 ) 活动( a c t i v i t y ) :实现流程逻辑步骤的一项工作任务的描述,一般分为手工操作和 自动处理两类,是过程执行中可被工作流引擎处理的最小工作单元。 ( 4 ) 工作流参与者( w o r k f l o wp a r t i c i p a n t ) :可执行流程活动实例的资源,可分为人员、 组织、角色和( 机器) 资源四类。 ( 5 ) 流程活动实例( p r o c e s s a c t i v i t yi n s t a n c e s ) :实际运行中的一个流程或活动,每个 实例代表一个能独立控制执行、具有内部状态的线程。 ( 6 ) 工作流引擎( w o r k f l o we n g i n e ) :为流程活动实例的运行提供执行环境的软件服 务,提供按照流程定义来执行流程的功能。一个或多个工作流引擎构成了一个工作流域。 ( 7 ) 工作项( w o r ki t e m ) :被工作流参与者执行的活动实例的表示,一个活动实例通 常产生一个或几个工作项,工作项通过赋予相关参与者的工作列表而被参与者所感知。 ( 8 ) 工作列表( w o r kl i s t ) :流程参与者所拥有的用于感知流程工作项的列表,是工作 列表处理器( w o r k l i s th a n d l e r ) 与工作流引擎的接口。 ( 9 ) 工作流控制数据( w o r k _ f l o wc o n t r o ld a t a ) :w f m s 系统所拥有的,不能被外部应 用系统访问的,用于控制工作流运行的服务的数据,如系统所保存的各种有关流程实例状 态数据。 ( 1 0 ) 工作流相关数据( w o r k f l o wr e l e v a n td a t a ) :w f m s 系统和外部应用系统所共有 的,用于控制流程实例迁移的数据,该数据由w f m s 和外部应用共同维护,是两者的交互 数据。 ( 1 1 ) 工作流应用数据( w o r k f l o wa p p l i c a t i o nd a t a ) :外部应用系统自己的数据,它由 各个外部应用所维护,不能被w f m s 感知,但w f m s 可负责在不同的应用系统间传递应用 数据。 这些工作流概念之间的关系可用图2 1 来表示【1 3 j : 第6 页 国防科学技术大学研究生院t 学硕十学位论文 图2 - 1 工作流概念的基本关系 2 2 工作流管理系统 工作流管理系统( w f m s ,w o r k f l o wm a n a g e m e n ts y s t e m ) 是一个软件系统,完成工 作流的定义、创建和管理,它能根据过程定义,有顺序的执行工作活动序列,并调用与各 种活动步骤相关的人员、资源对业务过程提供自动化或半自动化的处理。 2 2 3 通用工作流系统模型 目前,市场上已经有许多工作流管理系统。为实现不同工作流产品的协同工作,工作 流管理联盟制定了一个通用的工作流系统实现模型,这个模型适用于市场上的大部分产 品。 通用工作流系统模型的架构如图2 2 。 模型有三种类型的组件: ( 1 ) 软件组件,为工作流系统的各种功能提供支持。 ( 2 ) 各种类型的系统定义和控制数据,被一个或多个软件组件所使用。 ( 3 ) 应用程序和应用程序数据库,并不是工作流产品的一部分,但是它们会被工作 流产品调用,从而成为整个工作流系统的一部分。 虽然不同的工作流管理系统有不同的应用范围和不同的实施方式,过程建模和工作流 引擎的设计和实现也不相同,但从一个较高的层次考察工作流管理系统,可以发现所有的 工作流管理系统都提供了以下三个主要功能【l j : ( 1 ) 建立阶段功能。主要实现工作流和它的子活动的定义和正确建模。通过使用一 种或多种系统分析、建模和定义工具,把一个企业流程从现实世界转化为一个形式化的、 第7 页 国防科学技术大学研究生院丁学硕十学位论文 计算机可以处理的流程模型或流程模板( p r o c e s st e m p l a t e ) 。 ( 2 ) 运行阶段的控制功能。负责管理工作流程,并为每个过程中的不同活动排序。 ( 3 ) 运行阶段与用户或i t 工具间交互功能。一个流程的子任务通常是由参与人员通 过使用一定的i t 工具( 比如填表) 或者涉及信息处理操作( 如更新数据库) 来完成。如果要在 不同的子任务之间传送控制信息以及其他的数据或者要激活一定的应用程序,就必须不断 的通过流程控制软件来进行交互。 工作流 执行服 务 组织角 色模型 数据 2 2 4 工作流参考模型 引用 引用 生成 被解析 工作流 引擎 工作列表 - - 。_ 。 。一 交互 引用 维护圈 使用 调 调 调 工作流 相天数 据 图2 - 2 通用工作流系统模型架构 应用程序 数据、工作 库j 流应 用数 干据 更新l i x 一应用程序 软什组件 系统控制数据 外部程f 数据 工作流管理联盟通过对普通工作流程序进行分析,确定结构中的接口,这些接口可以 使不同的产品在不同的层次上协同工作。工作流参考模型便是这些接口和接口间数据交换 格式的标准。图2 3 描述了工作流参考模型的主要组件和接口拉j 。 工作流执行服务与周围组件有五个接口。通过这些接口可以访问工作流系统的服务。 下面我们简单介绍一下参考模型各个组件的功能 1 4 1 。 l 、过程定义工具( p r o c e s sd e f i n i t i o nt o o l s ) 过程定义工具( p r o c e s sd e f i n i t i o nt o o l s ) 的主要功能是给用户提供一种对实际业务过程 第8 页 国防科学技术大学研究生院工学硕十学位论文 进行分析、建模的手段,并生成业务过程的可被计算机处理的形式化描述( 流程定义) 。 目前己有许多工具可以用于对商业过程的分析、建模、描述及记录,包括非形式化的 和复杂的形式化的工具。工作流模型本身并不关心这些工具的本质以及在定义过程时怎样 交互,这些工具可以作为对工作流产品的补充或者是一个独立的产品工具集。如果工作流 产品提供了自己的过程定义工具,它的过程定义将被包含在工作流产品之中,可以通过程 序接口进行访问。如果使用了独立的产品定义了流程,需要在必要的时候进行过程定义转 化。流程建模或设计活动的最终输出是可被工作流引擎运行解释的过程定义。 过程定义工具与工作流执行服务之间的接口,即接口1 ,也被称作过程定义输入输出 接口,接口的本质是一个交换格式和a p i 调用,它支持对过程定义的转化。 工作流客 户端程序 2 被调用的 程序 图2 3 工作流参考模型的组件和接口 3 2 、工作流执行服务( w o r k f l o we n a c t m e n ts e r v i c e ) 工作流执行服务是工作流管理系统的核心部件,它提供了一个运行环境,在这个环境 中,利用一个或多个工作流引擎进行流程实例化或激活,通过与必要的外部资源进行交互, 负责解释和激活部分或全部流程定义,完成工作流流程实例的创建、执行与管理,如流程 定义的解释、流程实例的控制( 创建,激活,暂停,终止等) ,在流程各活动之间的游离, 并生成有关的工作项通知用户进行处理等,为工作流程的进行提供一个运行时的环境。 3 、工作流引擎( w o r k f l o we n g i n e ) 工作流引擎负责工作流执行服务中的部分或全部运行控制环境。它为工作流句柄提供 运行环境。其功能主要有:对流程定义进行解释;控制流程句柄的创建、激活、暂停、终止 第9 页 国防科学技术大学研究生院t 学硕+ 学位论文 等:对流程活动进行引导,包括顺序或并行操作、限期安排、工作流相关数据的安排等;特 定参与者的授权;识别用户关注的工作项和支持用户相互作用的接口;维护工作流控制数据 和相关数据,为用户传递相关数据;激活外部应用和连接工作流相关数据的接口;为控制、 管理、审计而进行监视等。 工作流引擎通过客户端应用接口( 接口2 ) 与工作项列表处理器相作用,后者负责根 据用户资源组织工作,并从工作项列表中选择和执行单个的工作项。通过接口3 ( 应用程 序调用接口) 直接激活一个特定的程序执行特定的活动。 4 、异构工作流执行服务 异构工作流执行服务由两个或多个不同的工作流执行服务组成,它们在某个定义的一 致层次上遵从公共的交互操作标准。对一个开放的交互操作的异构产品来说,支持公共工 作流控制数据及其转化是十分必要的,然而在这方面目f j 还没有成型的标准。异构工作流 执行服务的交互操作通过工作流参考模型中的接口4 ( w a p i 协调工作功能接口) 来实现。 5 、工作流客户端 工作流的客户( w o r k f l o wc l i e n t ) 的作用是给用户提供一种手段,以处理流程实例运行过 程中需要人工干预的任务。每个这样的任务就被称为一个工作项,它包括处理上的一些要 求及待处理的数据对象等。w f m s 将为每一个用户维护一个工作项列表,它表示当前需要 该用户处理的所有任务。 用户通过工作项列表处理器来管理执行w f m s 分配的任务,因此它是用户同工作流引 擎交互的接口。工作项列表处理器可能是工作流产品的附加部分,或者是用户自己编写的。 6 、被调应用程序( i n v o k e da p p l i c a t i o nf u n c t i o n s ) 被调用应用程序是指工作流执行服务在流程实例的运行过程中调用的,用以对应用数 据进行处理的应用程序。在流程定义中包含这种应用程序的详细信息,如类型、地址等。 日前己有的几种方式来执行这些程序,包括应用代理、某种标准的互换机制、本地过程调 用、远程执行调用、o r b 等。 7 、管理及监控工具( a d m i n i s t r a t i o n & m o n i t o r i n gt o o l s ) 管理及监控工具的通过系统管理和监控接口( 即接口5 ) 对w f m s 中的流程实例的状态 进行监控与管理,系统管理和监控主要有以下几项内容: ( 1 ) 用户管理,包括创建、删除、暂停、修改用户或工作组的权力; ( 2 ) 角色管理,包括定义、删除、修改角色、角色分配; ( 3 ) 审计管理,查询、打印、新建、删除审计跟踪或事件日志; ( 4 ) 资源控制,设立、修改过程或活动并发层次,询问资源控制数据; ( 5 ) 过程监控,改变流程定义或流程句柄的操作状态,控制流程定义版本,改变活 动状态,分配活动属性,终止流程句柄等。 工作流管理系统中,工作流执行服务可以看作一个状态变迁器,过程实例或活动实例 第l o 页 国防科学技术大学研究生院工学硕士学位论文 在响应外部事件和工作流引擎的调度后,其状态发生改变。图2 - 4 描述了工作流管理联盟 设计的过程实例的基本变迁模式2 1 。 一初始化 图2 - 4 工作流实例状态变迁图 在图2 - 4 中,工作流实例响应w a p i 命令并发生状态转移( 用箭头表示) , 中的条件满足也可能发生状态转移。六个基本状态的定义如下: ( 1 ) 已启动( i n i t i a t e d ) :过程实例被创建,包括与过程实例相关的日期、 关数据,但过程还没有满足条件,不能运行。 过程定义 工作流相 ( 2 ) 运行( r u n n i n g ) :过程实例已经执行,过程中的活动如果满足条件,就可以执 行。 ( 3 ) 激活( a c t i v e ) :过程中的一个或多个活动已经被执行。 ( 4 ) 挂起( s u s p e n d e d ) :过程实例被静止,并且过程中的活动不能被执行,知道过 程返回运行状态。 ( 5 ) 终止( t e r m i n a t e d ) :过程实例在正常结束前被停止。所有的完成后的操作都将 被执行( 例如记录错误日志,或恢复数据) ,过程实例被销毁。 ( 6 ) 完成( c o m p l e t e d ) :过程实例满足结束条件;所有的完成后的操作都将被执行 ( 例如记录日志或统计信息) ,过程实例被销毁。 2 2 5 过程定义原模型 元模型( m e t a - m o d e l ) 是用来定义语义模型的构造( c o n s t r u c t ) 和规贝, u ( r u l e ) 的,通常称为定 义表达模型的语言的模型【1 5 】。工作流的元模型是用于描述工作流内部的各个元素、元素之 间关系及元素属性的。工作流元模型规约出元素类型的一个基本集合,这些元素类型适合 于相对简单的过程定义,工作流开发人员根据需要可以对该元模型进行适当的扩展【1 6 1 。 工作流管理联盟给出了一个过程定义原模型,如图2 5 。 第1 l 页 国防科学技术大学研究生院t 学硕七学位论文 图2 5 工作流管理联盟过程定义原模型 2 3 工作流模式 工作流模式是指从一些实际工作流模型提取的抽象

温馨提示

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

评论

0/150

提交评论