已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)基于corba的工作流管理系统——工作流引擎的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要工作流引擎是工作流管理系统中最重要的部分,它按照定义好的过程模型来推进过程的执行,并按照每个人的角色合适地分配任务,提高工作效率。根据对w f m c 和o m g 的工作流标准的分析,本文提出了相应的工作流引擎的设计和实现方案。本文论述的工作流引擎是“基于c o r b a 工作流管理系统”的核心组成部分。本文做的主要工作是:1 ) 实现了以x p d l d i d 为标准的工作流过程模型的执行。2 ) 设计并实现了基于线程池技术的执行调度器和基于角色分配的资源分配和回收。3 ) 为工作流引擎之间中的通信设计弗实现了集中式和分布式两种手段。分布式环境中的通信建立在c o r b a 的结构化事件服务上。本文组织如下:第一章为介绍。第二章分析工作流管理系统的标准,并对本系统进行了面向对象设计。第三、四、五章为本文核心,是上述三点工作的实现。第六章进行了总结,并对系统的不足进行了分析。,一 一一一关键词:工作流管理系统,工作流引擎,c o r b a一一一一 ij t ;r b a 的l ,n 流i 耀系? t1 停流t j l 催呐设i b 、l 观a b s t r a c tw o r k f l o we n g i n e e r , t h em o s ti m p o r t a n tp a r to fw o r k f l o wm a n a g e m e n ts y s t e m ,i sr e s p o n s i b l ef o rw o r k f l o wp r o c e s s e se x e c u t i o na c c o r d i n gw o r k f l o wp r o c e s sm o d e l sd e f i n e de a r l ya n di ta l s oa s s i g n st h er i g h tt a s kt ot h er i g h tp e o p l ew i t ht h er i g h tr o l es ot h a tt h eh i g hw o r k i n ge f f i c i e n c yw i l lb ep r o v i d e db ya n a l y z i n gw o r k f i o ws t a n d a r d sg i v e nb yw f m ca n do m gc o r r e s p o n d e ds o l u t i o n sf o rt h ew o r k f l o we n g i n e e r sd e s i g na n di m p l e m e n t a t i o na r ep r o v i d e dt h i si st h ec o r ep a r to f 。c o r b ab a s e dw o r k f l o wm a n a g e m e n ts y s t e m ”t h em a i nw o r ko ft h et h e s i si sa sf o l l o w s :1 ) i m p l e m e n tt h ep r o c e s se x e c u t i o na c c o r d i n gt ot h ew o r k _ f l o wp r o c e s sm o d e ls t a n d a r d i z e db yx p d ld t d2 ) d e s i g na n dr e a l i z ea c t i v i t ys c h e d u l e rb ya d o p t i n gt h r e a dp o o lt e c h n o l o g yar e s o u r c em o d u l ea b o u th u m a nb a s e do nr o l e si sa l s os h o w na n di tc a r lb eu s e df o rr e s o u r c ea l l o c a t i o na n dr e c y c l e 3 ) d e s i g na n di m p l e m e n tt h ec o m m u n i c a t i o nb e t w e e nw o r k f l o we n g i n e e r sw h e ne x e c u t i n gw o r k f l o wp r o c e s s e s b o mi 1 1l o c a la n dd i s t r i b u t ee n v i r o n m e n tt h el a t e ri sb a s eo nc o r b as t r u c t u r e de v e n ts e r v i c e t h eo r g a n i z a t i o no f t h i st h e s i si sa sf o l l o w sc h a p t e r1i sa ni n t r o d u c t i o n c h a p t e r2a n a l y z e st h es t a n d a r dw t m sa r c h i t e c t u r ea n do o dt e c h n o l o g yi su s e dt od e s i g nt h ew h o l es y s t e mc h a p t e r3 ,4a n d5 ,t h em a i np a r t so f t h et h e s i s ,s h o wt h ei m p l e m e n t a t i o na c c o r d i n gt ot h et h r e ep o i n t sa b o v ec h a p t e r6i sac o n c l u s i o n ,w h i c ha n a l y z e st h ew e a kp o i n t so f t h ew h o l es y s t e mk e y w o r d :w o r k f i o wm a n a g e m e n ts y s t e m ,w o r k _ f l o we n g i n e e r i n g ,c o r b a第一章绪论1 1 工作流技术的来源和发展趋势现代企业处在一个技术发展和市场环境都瞬息万变的环境下,归纳起来,主要表观在以下方面:市场竞争的曰益激烈要求企业对其业务流程能够快速重组。企业业务流程的不断变化要求其计算机信息系统能够快速重组。提高办公效率和生产效率是提高企业竞争力的重要基础。面向市场和客户要求企业采用过程管理( 项目管理) 和过程集成方法提高其管理水平。为了跟上时代,保持盈利,各个企业特别是制造业企业,普遍倾向于采用先进制造战略技术中的并行工程、敏捷制造和虚拟制造三大技术改造自己的生产制造流程,提高自身的竞争力。同时企业的组织机构也要做相应变化:1 ) 企业组织结构趋向扁平化和网络化,以避免官僚主义。2 ) 传统的面向功能的组织结构正在向着面向过程的组织结构变化。从根本上说,不管是企业的组织机构还是企业的业务流程总是处于不断发展变化中。工作流技术就是企业的计算机应用为适应上述变化而产生的。工作流技术就是一类能完全或者部分自动执行的企业经营过程“。工作流起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序的活动提出的一个概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程,利用计算机来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。工作流技术的历史可以追溯到7 0 年代末的办公自动化和任务批处理。操作系统中的,i c l ( j o bc o n t r o ll a n g u a g e ) 语言就带有原始的工作流思想。第一次使用工作流术语可追溯到8 0 年代初,在p c 机尚未作为信息处理工具而出现的时候,纸张是各行各业中进行日常业务活动所不可替代的载体。这种古老的载体在信息的处理、组织、存储以及查询检索方面都是很低效的。因此,一些公司建立了表单传递应用系统来实现日常表单处理的电子化和自动化。这可以认为是工作流技术应用的开始。1 9 9 3 年,工作流管理联盟( w f m c - - w o r k f l o wm a n a g e m e n tc o a l ic i o n ) 的成立标志着工作流技术的发展进入了一个新阶段。w f m c 是一个国际性的非赢利组织,其成员包括用户、销售商、生产商、研究所和大专院校等。w f m c 的宗旨是促进工作流的应用,并制定了工作流技术的一系列标准。w f c 给出的工作流定义是:工作流是一个业务流程部分或全部地用计算机自动执行“】。随符计t :) r j l t - 支术和inl o f i i ol 的发展,j 观代企业的信,皂、资源越来越表现出忪敞、异鞫、分布f 1 0 特点,这使得其计弹机应用方式发生j 巨大的变化。自从计算机的硬件价格持续下降而速度按摩尔定律捉j :t 。,软什功能不断增强和丰富,企_ , l k i t j 计算机应用乜逐步扩展,大致经历了j 个主要阶段:单个功能应用一 部门级的集成应用一 企业范围内集成应用一 集成客户与供应商一 跨企业集成与电子商务。从总的发展趋势来看,为适应企业的组织结构和业务流程的变化,企业计算机应用要求从面向功能的事务处理转换为面向过程的业务处理,并能作相应的自我调整即具有一定的柔性。同时,随着分布式处理技术( c o r b a 、w w w 、o l e 、j a v a ) 等目益成熟,企业的计算机应用系统不仅仅要处理单个的任务,还要拥有控制、监视和处理不同复杂环境下业务流程协调执行的能力。为了实现此目标,工作流技术在企业计算机应用中扮演的角色正逐渐向中间件靠拢。i b m 公司最新的w e bs p h e r ew o r k f l o w 产品的出现也正说明了这一点。针对目前计算机技术、分布对象技术、i n t e r n e t i n t r a n e t 技术的发展趋势,以后工作流技术的研究和发展趋势主要是:工作流技术,必须能够支持复杂的企业应用集成,能够支持支持异构、自治、分布式环境下的分布式对象计算,即成为企业中间件平台的核心技术之一。1 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 ) 是一种软件系统,它完成工作流的定义和管理,并按照在计算机中定义好的工作流逻辑推进工作流实例的运行根据工作流管理系统的系统构架、使用技术、工作流执行方法的不同,可以大致分为以下几类:a ) 以文档为中,i i , :以共享文件的方式来完成任务,与外界的交互能力有限。它是产生最早、发展最成熟、最具多样的。主要应用在电子文档上,即电子文档在相关人员之间进行传递,以便让不同的人进行处理与审阅。b ) 以通信为中心:一般以电子邮件为底层通信机制。通过邮件来完成工作流执行中消息的传递、数据的分发与事件的通知。它可以充分发挥电子邮件系统在广域环境下的数据分发功能,系统将在一种松散耦合的模式下运行。c ) 以过程为中一心:一般建立在数据库之上,有自己专用的通信机制,并且提供同外部交互的接口。过程型的工作流由一系列任务节点组成。各节点按照各自的规则将数据发送到其它节点中去,而数据的值可以作为运行推进的控制条件。此类型的工作流管理系统对应实际生产协作,并提供了与外界交互的接口。根据d e l p h ig r o u p 的报告,5 年前工作流产品市场几乎被过程类产品独占,但到【q 9 7 年,以过程为中心的产品仅占i 4 的市场,以文档为中心的占3 2 ,以通信为中2心的占【们。i ! f = 择个行、l t 中,商业( 包括银行业和保险业) 依旧是工作流产品的最大用户政h 、m 政;,f | j 门其次,制药、j k 利【i 生、i k 超过了制造业,成为影响工作流产品的第二火行、i k 通讯q k 也经:j 年内从2 增j j 【i 到1 9 9 7 年的j 7 。1 3 已有的较著名的工作流研究成果和特点当前工作流技术的研究正日盏受到人们的重视,许多国外大学和研究机构部开展了很多:亡作流方面的研究项目,并已经取得了一些成果o “2 1 。在这些成果中,较著名的有1 8 m 公司a 1 m a d e n 研究中心研制的基于持久消息队列( m os e r i e s ) 的分布式工作流管理系统e x o t i c a f m q m ( f l o w m a r k o nm e s s a g eq u e u em a n a g e r ) 、佐治亚大学计算机系研究开发的具有自适应能力的工作流管理系统m e t e o r ( m a n a g i n ge n d - t o - e n do p e r a t i o n ) 、基于分布式主动数据库技术的工作流管理系统w i d e( w o r k f l o wo ni n t e l l i g e n ta n dd i s t r i b u t e dd a t a b a s ee n v i r o n m e n t ) 以及德国和瑞士苏黎士合作的基于状态图和活动图的工作流管理系统- - m e n t o r ( m i d d l e w a r ef o re n t e r p r i s e w i d ew o r k f l o wm a n a g e m e n t ) 。t ) 基于持久消息队列的分布式工作流管理系统e x o t i c a 。e x o t i c a 工作流管理系统由许多具有自治能力的节点组成。每个节点彼此之间都是互相独立的,但是节点之间可以通过可靠的消息队列通知对方,告诉对方工作流过程中某一步已经完成。这种运行机制避免了节点在过程运行中不断与服务器通信所造成的阻塞,即使其中一个节点出现故障停止运行,其余节点仍能正常运转。e x o t i c a 使用i b m 本身的工作流产品提供的建模工具建立模型。该建模工具引入了输入容器、输出容器和数据流等模型元素。数据流由过程模型中的数据连接弧组成,它描述了各个输入容器和输出容器之间的映射关系,使得活动间可以相互传递数据信息。2 ) 具有自适应能力的工作流管理系统m e t e o r 。m e t e o r 系统采用了完全分布的体系结构,整个系统由建模工具、自动代码生成器、运行环境,监控器和数据库组成。m e t e o r 系统实现了对工作流任务的分布调度,可以支持大规模复杂的工作流应用,保证这些应用能在企业间异构的环境中正常运行。m e t e o r 支持图形化建模,提供了一套图形化建模工具,包括流程设计器、数据设计器和任务设计器。其中,流程设计器用于定义整个工作流模型中各个活动间的关系;数据设计器用于定义执行活动所使用和传递的数据;任务设计器可支持五种不同类型的活动。m e t e o r 建立的模型将以工作流中介语言w i l ( w o r k f l o wi n t e r m e d i a t el a n g u a g e ) 的形式保存起来。w i l 能够记录活动间的前驱和后继关系、活动间所传递的数据对象、数据对象的定义以及活动的具体描述和激活方法等等。m e t e o r 还提供了一个自动的代码生成器,能够自动地将图形化的工作流模型转换为实际运行代码,并能对模型进行动态修改,可有效地支持企业实现动态经营过程重组。m e t e o r 为基于c o r b a 的运行系统和基于w e b 的运行系统分别提供了相应的代码生成器,它以w i l 格式的工作流模型为输入,为活动管理j 。; 二( :( ) 的工作流管埋系统一j 怍流引辇的i 筻汁与实现器提供实际运行代码,包括调度、活动激活、数据刺象获取以及出错恢复等功能的代码,它还可以输出代码,对数据设计器定义的数据对象进行维护和操作。此外,m e t e o r还对各种异常情况设计了专门机制和函数,负责侦听检测异常情况。当异常发生时,i 玎以交给异常处理函数处理,也可以执行一个补偿活动来取消出错活动所产生的影响。3 ) 基于分布式主动数据库技术的工作流管理系统w i d e 。w i d e 工作流模型包括组织模型、信息模型和过程模型。w i d e 对工作流管理联盟的参考模型进行了扩展,它不仅定义了工作流的基本要素,而且还支持组织模型建模、复杂的活动约束分配、动态流程控制、复杂过程结构以及工作流事务处理。其中,组织模型记录了企业内组织结构和资源的信息:信息模型定义和维护工作流实例运行过程中所需的全部数据,并管理这些数据的使用范围和表示方式;过程模型是w i d e 工作流模型的主模型。它的活动具有以下属性:前条件规定了活动开始的标志和活动所要进行的操作;后条件表明活动结束的条件、角色限制及对系统定义和用户自己定义的异常情况的处理。4 ) 基于状态与活动图的工作流管理系统m e n t o r 。m e n t o r 以状态图和活动图作为建模理论基础,使用一个可视化工具作为建模工具,执行活动中所需要的软件可以通过扩展接口集成到系统中。活动图描述活动之间的数据流动,状态图规定活动之间控制信息的流动。在状态图中,状态的转换由e c a ( e v e n tc o n d i t i o na c t i o n ) 规则驱动。状态图还提供正交组件,允许处于相同层次的两个状态图可互相独立地并行执行。同时,m e n t o r 以c o r r a 为底层支持,可支持异构环境下的各种应用程序。总的来说,目前,各公司产品还处于百家争鸣的状态,并没有哪一个产品处于绝对领导地位,而是各自为政,这就为工作流的标准化带来了困难。虽然它们都声称完全符合w f m c 的标准,但一方面由于w f m c 标准本身的不完善和不确定,另一方面由于各自实现时本身存在的差异,不同厂家产品之闯的互操作性仍然很差。就国内对工作流技术的研究情况来看,见诸报道的成系统研究的有国家8 6 3 计划支持,由国家c i m s 工程中心研制的c i m s 应用集成平台中的c i m f i o w 工作流管理系统“和国防科技大学研制的工作流集成管理系统y h w i m s 。总的来说国内的工作流技术底层研究开发尚处于起步阶段。1 4 选题的目的和意义目前的工作流管理系统存在以下不足:大多数工作流产品之间由于缺乏统一的标准:技术本身尚不是很成熟;要实现不同系统之间的无缝互操作还有许多工作要研究;工作流管理系统的实现较复杂。但是,应该看到,工作流技术已经在国外的许多大公司、大企业进行了成功的应用,取得了显著的经济和社会效益。国内应用方面虽然处于起步,尚无有影响力的成功使用案例,但随着先迸制造战略在企业中的不断实施,以工作流作为核心支持的c i 砒s 技术在敏捷制造、并行工程、企业经营过程重组等众多领域获得了广泛的应用。l 伴随我囡j j u 入wr o ,为增强企业党争能力,缩短企业对市场的响应时间,降低生r 二+ 成本耳管理成本,企业的业务流程自动化方面的应用发展十分迅速,而工作流技术是j 核心使能技术之一。本文在分析企业在新形势下的新需求,以及计算机新技术j a v a 、c o r b a 的新发展的基础上,提出了符合w f m c 规范的分布式工作流管理系统设计和实现方案,同时从定制角度,在系统设计上作了很多可扩展接口的设计。本系统的目标是要设计和开发一个面向国防企业、以过程为中心、符合w f m c 标准、适合分布式环境的工作流管理系统。在本系统的分析设计开发过程中,充分利用了国内外己有的工作流研究成果( 包括理论、方法、成功经验等) ,并在此基础上融合、消化及刨新,形成了一整套具有自己特色的工作流模型。在系统研究过程中,坚持了理论和实践相结合的方针。理论的研究要考虑到为实际应用服务,实践经验反馈到理论模型之中,最终到达个较优化的结合。作者于2 0 0 1 年下半年进入该课题时,系统的研究工作刚开始。在大家的努力下,目前本系统取得了初步成果。自进入课题,作者主要参与工作流引擎的研究。本文的主要研究工作包括对活动执行逻辑的分类和执行,活动调度和资源调度的设计和实现,通信接口的设计和集中式及分布式下的两种实现。韭于( :b a 的工侔漉管理系统一 佯j 氚引挚的垃汁与实i 弛第二章工作流的标准和工作流管理系统的设计2 1wf m c 工作流管理系统参考模型工作流管理系统( w f m s ) 在很大程度上,为企业业务系统的运行提供了一个软件支撑环境。虽然不同的工作流管理系统具有不同应用范围和不同实施方式,但它们还是具有许多相同的特性。从比较高的层次上抽象地考察工作流管理系统,可以发现所有工作流管理系统一般都提供了以下三个主要功能“”:l ) 建立阶段的建模功能:包括组成工作流过程的活动以及它们之间的执行逻辑关系的定义。2 ) 运行阶段的控制功能:包括实例化并执行工作流过程,以及对工作流过程中的活动按模型中定义的执行逻辑进行调度执行。3 ) 运行阶段的交互功能:与用户和i t 应用工具之间的交互作用。图2 1 描述了工作流管理系统的三个主要功能之间的关系。其中,建立阶段的功能主要体现在过程的计算机模型定义。在这个阶段要通过使用分析和建模技术将一个现实世界的业务流程转换成可用计算机处理的形式化定义。这个形式化定义有时被称为过程模型或过程定义。后两种功能是工作流管理系统在解释并执行过程模型时体现的。图2 1 工作流管理系统的功能及关系示意图工作流需要企业内计算机和人员等各项资源的协调工作,显然没有大家共同认可的规范很难办到。因此从一开始提出,人们就认识到了标准化的重要性。在这方面目前的权威性机构是工作流管理联盟( w f m c ) 。6一塑堡堕至堕盔查兰婴主兰垡堡塞w f m c 发掘出工作流管理系统的共同特点,定义出标准的体系结构和接口,制定丁工作流管理系统的参考模型,用来描述工作流管理系统体系结构中的主要模块以及模块之间的接口。图2 2 给出了工作流管理系统的w f m c 参考模型及其体系结构u 。磊g 鎏至置h一口过程定义工具+ 口2工作流客户应用口3工作流使能的应用( a ) w f m c 工作流管理系统参考模型( b ) w f m c 工作流管理系统体系结构图图2 27鲨lh0一接口。淼件制品构控产件统部软系外函口口丌丛f ( o r b a ( 勺工怍流管理系统一工作流引肇的设计与实现工作流管理系统的核心是工作流执行服务( w o r k f l o we n a c t m e n ts e r v i c e s ) 。工作流执行服务,般包括一个或多个工作流引擎,它提供了一个运行环境来控制工作流的执行。过程定义工具( p r o c e s sd e f i n i t l o nt o o l s ) 用于描述和分析工作流的过程定义,该工具通常在过程设计时使用。目前大多数工作流管理系统的过程定义工具都可以在图形界面上以可视化的方式定义工作流过程。用户通过工作流客户应用( w o r k f l o wc 1 i e n ta p p l i c a t i o n s ) 和工作流管理系统通讯。工作流客户应用使用工作项列表( w o r ki t e r nl i s t ) 把任务提供给用户,用户从工作项列表中选择一个工作项来执行某个任务。工作流管理和监控工具( 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 ) 用于记录工作流运行的状态、检测出存在的瓶颈、设置参数和处理异常情况。另外,通过接口4 ,不同的工作流管理系统之间还可以实现互操作。w f m c 为这些接口定义了a p i ,提供了一系列公共的a p i 和相关的数据交换格式。“。w f 粥提出的工作流管理系统的技术标准是建议性的,而不是强靠性的,并且还在不断的发展之中,它们为开发人员提供参考。在实际开发中,并没有哪个工作流管理系统完全按照标准来实现。大部分工作流管理系统只是在工作流过程定义的数据交换格式上遵循w f m c 的标准。2 2 工作流管理系统体系的整体设计本系统的系统体系设计如图2 3 。整个系统是基于c 0 r b a 面向分布式环境的工作流管理系统。系统主要部件分为建模工具、w e b 服务器、工作流执行服务、单独的控制引擎和后台数据库服务器。建模工具是比较独立的部分,主要是提供建模功能的w i n d o w sg u i程序,具有可视化建模环境,并将模型存为x m l 描述文件。本系统的工作流模型描述采用w f m c 的过程模型的x m l 标准x p d l d t d ”1 。w e b 服务器与建模工具利用s o a p ( s m a llo b j e c ta c c e s sp r o t o c 0 1 ) 协议进行通信,对模型数据库的存储由w e b服务器负责。工作流整体的运行推进由工作流执行服务负责。工作流执行服务包括一台或者多台执行引擎。执行过程中工作流引擎要与w e b 服务器交互获得模型信息,与后台数据库交互存取实例信息,同时还必须提供运行时信息给管理员,以及工作表单分配给执行用户。可以看出工作流引擎是本系统的核心所在。另外,系统中还有一个控制引擎负责各个执行引擎闻的负载平衡。系统工作的主要流程大致如下:建模工具负责建立描述接个工作流过程的模型描述的x m l 文件,通过s o a p 协议传递到w e b 服务器后,再通过x m l 到数据库的映射存入模型数据库。工作流执行服务负责推进工作流的执行,每个执行引擎负责执行的粒度对应于活动,并且通过g d a l ( g e n e r a ld a t aa c c e s sl a y e r ) 存取实例数据库。工作i _ j c 执行中根据情况,有时需要生成用户任务列表,有时需要与外部应用程序交互,存取相关数据。当个过程实例的后续可执行的活动集为空时过程执行结束。2 3 工作流引擎的设计2 3 1 工作流引擎的功能图2 3 系统体系结构图工作流引擎提供了过程实例的运行环境,主要完成以下功能“”:1 ) 实例化过程模型并执行:解释建模工具生成的工作流定义,根据过程执行需要的初始条件和执行参数生成过程实例,运行过程实例并管理其运行。2 ) 为过程和活动的执行进行导航:根据过程定义和工作流相关数据为过程实例的运行进行导航,如根据实例的进入和退出条件启动和终止一个过程实例:根据活动之间的关联和活动的执行条件,决定并行或串行执行后续的活动:根据用户操作的需要提供过程的运行信息:根据运行的需要激活相应的应用程序等。:j ) 与外部资源交互竞成各项活动:与外部资源的交互有两个途径:客户应用接口和矗接调用应用接口方式。对于客户调用方式,工作流引擎通过任务列表管j j ( o r b a 的i 卅:流诤理系统一1 作流t j l 擎的改汁1 l “m理器对应用进行管理,它提供任务列表给用户选择, :记录执行情况:埘 二l 置接调用的活动由工作流引擎直接调用相应的应用程序来完成。维护工作流控制数据和工作流相关数据:工作流在执行过程中要维护不同过程实例和活动实例的内部状态信息,以及用于协调和恢复的各种检查数掂和恢复重起信息,还包括用户传送的必要相关数据。2 3 2 工作流引擎与o m g 公共对象设施面向对象思想反映了人类思维的一种方式,即从特殊到一般和从一般到特殊。工作流的面向对象设计应该从两个层面来理解,一是采用面向对象程序设计的方法将工作流管理系统本身中各个元素以对象形式加以描述从而支持系统要素的重构和重用:二是使用面向对象的方法完成过程的分析建模,由多个对象构成联盟来表示工作流程,从而支持过程模型定义的重构和重用。其中第二个层面的实现是以第一个层面的实现为基础。如果在第一个层面中将过程定义相关的部件的设计固定化,那么运行状态下的第二个层面的动态重构就无法实现。基于工作流管理系统本身是以实用为目标的,为方便用户的工作流实施和实施中可以重构重用,工作流系统面向对象设计和使用接口的标准化是很重要的。图2 4o l g 工怍流管理设施中的对象关系类图在这个方面,w f m c 和o m g ( o b j e c tm a n a g e m e n tg r o u p ) 很早就已做了相关的工作1 0束航空航犬大学硕士学位论文。最新的o m g 规范中制订了构建在对象请求代理上的工作流管理设施规范w o r k f l o wm a n a g e m e n tf a c i l i t ys p e c i f i c ac i o n ”。图2 4 用u m l 类图描述了此规范对用户的接口关系图,包括w f p r o c e s s ( 过程) 、w f a cc i v i t y ( 活动) 、w f r e q u e s t e r ( 请求者) 、w f p r o c e s s m g r ( 过程管理员) 、w f r e s o u r c e ( 资源) 和w f a s s i g n m e n t ( 分配者) ,以及它们之间的关系。为简化起见没有加入与管理工具相关的接口w a pr 5 的相关统计信息类。图2 5 是按用户按标准接口进行一个过程实例执行的u m l 顺序图。执行流程如下:首先,请求者w f r e q u e s t e r 发起建立一个过程( w f p r o c e s s ) ,通过调用已经定位的w f p r o c e s s m g r 对象的c r e a t e _ p r o c e s s 操作,创建了一个新的w f p r o c e s s 对象实例并把此对象的引用返回给请求著。w f r e q u e s t e r 获得此引用后,通过调用w f p r o c e s s m g r 的g e t c o n t e x t i n f o 从过程管理员那里获得过程上下文签名信息,并通过s e t初始化。接着是请求者调用已经建立的_ c o n t e x tw f p r o c e s sw f p r o c e s s对象的s t a r t 操作开始过程实例的运行。在此时,w f p r o c e s s 决定要激活的活动( a c t i v i t y ) ( 实际情况可是多个活动,图中情况只有一个) ,并建立相应的代表过程图2 5 依照标准接口进行的一个过程实例执行的顺序图p蜒于( 1 | o r b a 的上1 流谌理系统一工作流弓i 绎的没计与实现运行第一步的w f a c t i v i t y 对象,初始化这些对象的上下文。在建立各个活动的时候,对应的w f a c t i v e 对象通过建立各自的w f a s s i g n m e n t 对象( 在活动执行前建立)来关联自身与资源w f r e s o u r c e 对象问的分配关系。接下来,资源对象w f r e s o u r c e接收清求( a c c e p t ) ,w f a s s i g n m e n t 实际分配得到确认。资源或应用程序完成请求后,返回结果给活动,调用活动的c o m p f e t e 操作。活动将相应的执行结果返回给过程,过程依据此决定下面要开始的活动。在上述的执行中,当w f p r o c e s s 认为工作已经结束时,发信号给w f r e q u e s t e r 通知其执行的最终结果。w f r e q u e s t e r 通过调用过程的g e t r e s u l t 操作获得最终执行结果。2 3 3 工作流引擎的体系结构设计工作流执行服务在实际工作流管理系统中特别在分布式环境下,通常由一个或者多个工作流引擎组成。工作流引擎是系统的核心部分。本系统中每个工作流引擎的功能包括活动执行调度、资源的分配和回收以及事件通信。在执行过程中,本系统的工作流引擎需要与模型数据库、实例数据库以及其它的工作流引擎打交道。其设计的主要模块包括事件通信、过程管理、活动执行调度、资源的分配和回收、条件判定和对后台数据库的通用数据存储层( g a d l ) ,如图2 6 所示。图26 本系统的工作流引擎的结构图主要模块的功能叙述如下: 事件处理模块1 接收其它工作流引擎发送来的事件,! 扛件的内容主要是事件类型和要接收的实 木信,翅、。2 存储历史事件库。:j 在活动或过程发生状态变化时发送新的事件。 过程管理模块1 建立新的过程实例或者从实例数据库中得到一个过程实例。2 与“条件判定模块”交互获取条件判定结果( 逻辑值) 。3 通过过程实例实现对活动实例的管理,与“活动执行调度模块”交互实现活动实例执行状态的改变,与“资源分配模块”交互进行资源的分配和回收以及用户工作任务列表的管理。这其中还包括对过程实例库、活动实例库的存取管理。 活动执行调度模块负责活动实例的执行调度,与操作系统的进程调度功能类似,负责活动实例的就绪、运行、阻塞三个状态的转换。详细情况见第四章。 资源分配模块l 在系统初始化时生成每项资源对象,并组织成一定的数据结构。2 在需要分配资源的活动实例接收请求时,决定是否分配资源。3 在活动实例执行完毕,回收所分配的资源。 条件判定模块依据模型描述中的条件表达式和过程实例的上下文( c o n t e x t :实际上是变量的名和值序列) 进行匹配,确定表达式的逻辑值( t r u e 或f a l s e ) 。此用于选择分支和循环执行的逻辑判定中( 见第三章3 2 活动的执行逻辑) 。2 3 4 工作流引擎的面向对象设计如前所述,在设计中必须考虑各个分割模块之间的低耦合以便保持可扩展性,同时又要符合标准接口以便移植和与其它厂商的工作流管理系统的通信。在本系统工作流引擎的设计中,充分考虑到了与标准接口的对应性。核心的大部分类与接口相对应或者说本系统设计的类很容易抽象为标准接口以便让用户使用,并可与其它具有标准接口的工作流管理系统进行很好的交互。同时基于标准也是处于不断的发展之中”“,本系统的设计充分考虑了可扩展性。在图2 7 所示的本系统工作流引擎的设计类图中,与事件通信模块的交互都是依靠其公布的统一接口。这样通信本身可以同一接口不同实现,便于移植。同样,与模型库交互的部分都通过g a d l 支持的m o d e l r e a d e r 接口进行。各个活动的不同执行实现分成各个不同子类。过程管理模块的功能主要由过程管理员的类厂( w f p r o c e s s f a c t o r y ) 和过程管理员( w f p r o c e s s m g r i n s t ) 完成,而条件匹配模块是1 1壁。ri o r b a 的j 一作流管理系统一上_ 怍流引肇的改汁与实现弛立的模块在此未表述,在具体的实现中是一个单子类。关于活动调度器和资源分配器以及事件通信的具体实现细节见第四章和第五章。图2 7 工作流引擎核心类图本系统中工作流引擎中核心的几个类表述如下:1 ) w f r e q u e s t e r i n s tw f r e q u e s t e r i n s t 是一个过程实例w f p r o c e s s i n s t 建立的发起者,w f r e q u e s t e r l n s t 与w f p r o c e s s i n s t 有两类关系: 工作流的嵌套。一个活动实例( w f a c t i v i t y l n s t ) 可以重定义为过程实例的请求者( w f r e q u e s t e r i n s t ) ,且有一个对应w f p r o c e s s l n s t 是它的执行者( p e r f o r m e r ) 。在这个情况下,w f a c t i v i t y i n s t 必须设定其实现类型是子工作流( s u b f l o w ) ,w f p r o c e s s l n s t 并在过程建立时向请求者注册,以便在过程执行完时报告执行结果,然后此活动实例才进入完成状态。将一个工作流过程与其它的活动联系起来。这个是请求者( r e q u e s t ) 与过程( p r o c e s s ) 的主要关系。当这个情况下,请求者不与w f a c t i v i t y n s t 联系在一起。这里非活动类型的请求者一般是外部发起这个企业业务流程的客户。2 ) w f p r o c e s s f a ct o r y过程工厂,确切说应该是过程管理员( w f p r o c e s s m g r i n s t ) 的工厂。这个类对象对于确切的工作流引擎来说是一对应的。其唯一的静态方法是依据所要求的自豪吼,航犬人舢姬t 学逝沦义模型i d 信息获得过程管理员实例,如尚未建立则建立之。3 ) w f p r ( ) c e s s m g r i n s t过程管理员w f pr ( ) c e s s m g r in s t 是一组过程实例( w f p r o c e s s ir l sc ) 的管理类,这组过程实例的特点是具有相同的过程模型。其模型信息和过程管理员对象联系在一起,且同一模型的过程管理员在整个执行系统的全局是唯一的。过程管理员本身由过程工厂w f p r o c e s s f a c t o r y 建立。过程管理员的一个重要作用在于实现分布式执行中的过程实例迁移。w f p r o c e s s l g r i n s t 依据过程模型定义产生特定的过程实例对象,并有对过程的元数据信息( 上下文c o n t e x t 、执行结果r e s u l t 等) 的存储接口,可按照模型存取接口m o d e l r e a d e r 获得的上下文签名和执行结果签名进行初始化。w f m c 没有给出过程定义接口,即i n t e r f a c e1 ( 即w a p i 1 ) 没有具体化。但一般认为从模型来的过程应实例化为具体的过程步骤( p r o c e s ss t e p s ) ,每一个过程步骤对应相应的活动( a c t i v i t y ) ,其后由过程实例本身负责管理每个步骤对应的活动。一个过程模型包含一个活动集合和它们之间的逻辑关系,这个逻辑关系在过程执行的生命期内对于所有相关的活动实例是可见的。4 ) w f e x e c u t i o n o b j e c t i n s tw f e x e c u t i o n o b j e c t i n s t 是活动实例类( w f a c t i v i t y i n s t ) 和过程实例类泔f p r o c e s s i n s t ) 的抽象超类。w f e x e c u t i o n o b j e c t i n s t 的状态( s t a t e ) 转换是过程和活动均遵守的,在标准中此状态的转换是一个层次图。( 图2 8 ) 。其中最外层即o p e n 到c l o s e 状态转换是要求所有遵从标准的工作流管理系统强制支持的。实际系统的实现可以分别定义o p e n 和c l o s e 这两个状态的子状态,如图中的n o t r u n n i n g - - r u n n i n g 和c o m p l e t e d t e r m i n a t e d - - a b o r t e d 。厂嘞、厂c m 、n o tn n m m g,【c 唧- 嘶a3t a f t,:州a r t c aj 、f-,爿一8 ,哇咖洒嘲j s u s 弦删多、f1。愁曲啡8 图2 8w f e x e c u t i o n o b j e cc i n s t 对象的状态转换w f e x e c u t i o n o b j e c t l n s t 类的主要工作是确定支持的运行状态和状态转换是否合法,并提供审计事件,包括状态转换以及执行体上下文的数据变化日志。5 ) w f p r o c e s s i n s t1 5丝寸二c o r i j a 的工作流管理系统上作流引肇的设计与实堰w 门rc c e s s i n s t 是执行一个商业业务流程的实体。其提供的方法中有过程的开始( 蚍吖l ) 、暂停( s u s p e n d ) 、终止( a h o rl ) 操作,以及对过程状态( s t a l e ) 、上下文( c f i n t e x t ) 、执行结果( r e s u l t ) 诸属性的存图4 2 取接口。过程状态包括运行( r u n n in g ) 、阻塞( s u s p e n d e d ) 、结束( c o m p l e t e d ) 。个过程在建立的时候将与其请求者( w f r e q u e s t e r i n s t ) 关联,其上下文属性( c o n t e x t ) 由请求者通过商业业务具体信息来初始化,一般在请求者请求建立此过程实例时进行初始化。如从银行贷款这个商业过程需要用户名和帐户。上下文在后面可根据情况更新。过程执行时执行情况被记录,最终的执行结果由r e s u l t 依据结果签名来记录。在过程状态发生变化时,一条新的事件统计的日志信息将产生并由审计程序记录下来。过程状态改变需通知相应的对象( 包括相应的请求者w f r e q u e s t e r l u s t ,过程的各个活动实例等) ,在分布式环境下可通过o m g 的通知服务( n o t i f i c a t i o ns e r v i c e ) 来实现。一个过程包括一系列的活动,对应于各个过程执行步骤( p r o c e s ss t e p s ) 。一个过程模型包含一个活动集合和各个活动之间的执行顺序上的逻辑关系。这个逻辑关系的实施时机就在活动实例韵执行完毕,所在的过程实例要继续向前推进时。活动的逻辑关系的执行实现见第三章。6 ) w f a c t i v i t y l n s tw f a c t i v i t y l n s t 代表过程执行中的一个步骤或者过程执行上下文中需要的一个商业业务流程( 作为子过程s u b f l o w ) 。w f a c t i v i t y i n s t 提供了对自身执行状态的控制( 如暂停s u s p e n d 、终止a b o r t ) 和对活动的属性( s t a t e 、c o n t e x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无人机电子技术基础课件 8.6.2 只读存储器(ROM)(下)
- 2026年三类人员安全继续教育网上考试题库含答案详解AB卷
- 2026年幼儿园鬼鬼盯着你
- 2026年幼儿园自主设计
- 2026年幼儿园教学评价
- 2025福建福州市仓山区国有投资发展集团有限公司招聘3人笔试参考题库附带答案详解
- 2025福建泉州晋江市坊源生态科技有限公司招聘14人笔试参考题库附带答案详解
- 2025福建三明永安市城市建设投资集团有限公司公开招聘工作人员5人笔试参考题库附带答案详解
- 2025湖南衡阳市衡阳县城市和农村建设投资有限公司招聘专业技术人员2人笔试参考题库附带答案详解
- 2025浙江省国贸集团资产经营有限公司招聘9人笔试参考题库附带答案详解
- 2026年滁州凤阳大明旅游发展(集团)有限公司招聘导游员(讲解员)15名笔试备考题库及答案详解
- 2026年黑龙江省《保密知识竞赛必刷100题》考试题库带答案详解(基础题)
- 2026乌鲁木齐市招聘警务辅助人员(1134人)建设笔试备考试题及答案解析
- 2026上海春季高考语文试题试题含答案
- 蝶阀维修施工方案(3篇)
- 2026年济南历城区九年级中考英语一模考试试题(含答案)
- T∕SZSSIA 019-2026 反恐怖防范管理规范 总则
- 调解中心内部管理制度
- 肛门指检培训课件
- 内蒙古呼和浩特市北兴产业投资发展有限责任公司招聘笔试题库2026
- 金山文档讲解课件
评论
0/150
提交评论