




已阅读5页,还剩54页未读, 继续免费阅读
(计算机应用技术专业论文)轻量级工作流管理系统miniflow——工作流引擎的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
轻量缎1 作流管理系统m i n i f l o w - - 工作流l 擎的设计与实现;町海大学硕士学位论文 摘要 工作流技术是实现业务过程自动化的关键技术,这些年来逐渐成为研究热点。 现有的工作流产品大多庞大复杂、使用困难,而且架构封闭,自成体系,很难与 业务应用无缝集成,不适用于国内许多初次使用工作流技术的中小型项目。 针对以上问题,本文构建了一个基于j 2 e e 的轻量级工作流管理系统m i n i f l o w 。 m i n i f l o v q 具有功能实用全面、架构清晰开放、模型简单成熟、使用灵活方便、轻 量级可移植等特点。论文分别从工作流管理系统的体系结构、开发方案和工作流 模型三个方面论述了m i n i f l o w 对传统工作流管理系统的改进。m i n i f l o w 体系结 构的设计充分遵循了工作流管理联盟的工作流参考模型标准,以x p d l 作为自己 的工作流定义语言,是一个单引擎、可裁减的工作流管理系统。m i n i f l o w 采用了 s t r u t s + h i b e r n a t e 这种当今最流行的j 2 e e 开发框架,有效的满足了m i n i f l o w 的设 计目标。m i n i f l o w 工作流模型简单实用,分为过程模型、组织模型和信息模型。 本文详细给出了m i n i f l o w 工作流引擎的设计和实现。m i n i f l o w 工作流引擎的 设计充分采用面向对象的设计思想,由模型类和服务类组成,模型类是m i n i f l o w 工作流模型中各主要实体的对象模型,工作流的运行就是模型类的实例交互作用 的结果,服务类为模型类提供底层支持。本文最后给出了m i n i f l o w 工作流引擎的 实现,并将其运用到一个实际项目中。 关键词:工作流管理系统,工作流引擎,轻量级,j 2 e e 轻量级工作流管理系统m i n i f l o w - - 工作流引擎的设计j 实现 河海大学硕士学位论戈 a b s t r a c t a sa l le s s e n f 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 w t e c h n o l o g y b e c o m e sar e s e a r c hh o t s p o tg r a d u a l l y t h e s e y e a r s m o s t o fe x i s t i n g w o r l d l o wp r o d u c t sa r eh u g e ,c o m p l e x ,h a r dt ou s e ,a n dt h e ya r eo f t e nu n i q u ei nt h e i r s t y l ea n dc a n ti n t e g r a t ew i t hb 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 t f i tf o rm a n ym e d i u ma n ds m a l ln a t i v ep r o j e c t s m i n i f l o w , al i g h t w e i g h tw 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 ) b a s e do nj 2 e e , i sc o n s t r u c t e d a i m i n g t os o l v et h e s e p r o b l e m s m i n i f l o w h a s p r a c t i c a l a n d c o m p r e h e n s i v ef u n c t i o n s ,ac l e a ra n do p e na r c h i t e c t u r e ,as i m p l eb u tm a t u r em o d e l ,a n d i ti se a s yt ou s e ,l i g h t w e i g h ta n d t 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 ei m p r o v e m e n t o fm i n i f l o wo v e rt r a d i t i o n a lw f m sf r o mw f m sa r c h i r e c t u r e w t m sd e v e l o p m e n t f r a m e w o r k ,w o r k f l o wm o d e l t h ea r c h i t e c t u r eo fm i n i f l o wf u l l yc o n f o r m st ot h e s 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 fw f m c ( w o r k t l o wm a n a g e m e n tc o a l i t i o n l u s i n gx p d l ( x m l p r o c e s sd e f i n i n gl a n g u a g e ) a si t so w n p r o c e s sd e f i n i n gl a n g u a g e m i n i f l o wi sas o a l a b l ew 蹦sm a th a so n l yo n ew o r k f l o we n g i n e m i n i f l o wu s e ss t m r s + h i b e m a t e ,am o d e ma n dp o p u l a rj 2 e e d e v e l o pf r a m e w o r k t of u l f i l li t sd e s i g ng o a l e f f e c t i v e t y m i n i f l o wh a sas i m p l eb u tp r a c t i c a lw o r k f l o wm o d e lt h a ti sc o m p o s e do f p r o c e s sm o d e l o r g a n i z a t i o n m o d e la n di n f 0 1 1 1 a t i o nm o d e l 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 fm i n i f l o we n g i n e f u l l v a d o p t i n gt 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 fm o d e l c l a s s e sa n ds e r v i c ec l a s s e s ,m o d e lc 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 e w o r k f l o wm o d e l ,t h ee x e c u t i o no f w o r k f l o wi st h er e s ;p o n s eo f 恤ei n t e r a c t i o no f o b i e c t s o fm o d e lc l a s s e s s e r v i c ec l a s s e sg i v ei n f r a s t r u c t u r a ls e r v i c ef o rm o d e l c l a s s e s f i n a l l y t h ei m p l e m e n t a t i o no ft h ew o r k f l o w e n g i n ei sp u tu pa n dh o w t h ee n g i n ei su s e di na p r a c t i c a lp r o j e c ti sa l s od e s c r i b e d k e y :w o r k f l 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 ,l i g h t w e i g h t ,j 2 e e 轻量级工作流管理系统m i n i f l o w - - 工作流引擎的没计与实现 学位论文独创性声明: 本人所呈交的学位论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工 作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并表 示了谢意。如不实,本人负全部责任。 论文作者( 签名) : 学位论文使用授权说明 垦生笙2 0 0 5 年6 月1 7 日 河海大学、中国科学技术信息研究所、国家图书馆、中国学术期 刊( 光盘版) 电子杂志社有权保留本人所送交学位论文的复印件或电 子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文 档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允 许论文被查阅和借阅。论文全部或部分内容的公布( 包括刊登) 授权河 海大学研究生院办理。 论文作者( 签名) :2 0 0 5 年6 月1 7 日 轻量级工作流管理系统m i n i f i o m - - 工作流引擎的设计与实现河海大学硕士学位论文 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 c r n e t 应用日益普及的情况下,现代 企业的信息系统的分布性、异构性和自治性的特征越来越显著。在这种技术背景 下,工作流管理系统也由最初的创建无纸化办公环境,转而成为同化企业复杂信 息环境,实现业务流程自动执行的必要工具【l 一1 。这样的一个转变,把工作流技 术带入了一个崭新的发展阶段,使得人们从更深的层次、更广的领域对工作流展 开了研究。 1 9 9 3 年工作流技术的标准化组织工作流管理联盟( w o r k f l o wm a n a g e m e n t c o a l i t i o n ,w f m c ) 的成立标志着工作流技术开始进入相对成熟的阶段。为了实现 不同工作流产品之间的互操作,w f m c 在工作流管理系统的相关术语、体系结构 及应用编程接口( w a p i ) 等方面制定了一系列标准【3 ,4 ,5 6 1 。 不同的研究人员分别从不同的角度对工作流提出了不同的定义,工作流管理 联盟对工作流的定义是:工作流是一类能够完全或者部分自动执行的业务过程, 它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与 执行吼 正如数据库的建立、运行、维护需要有数据库管理系统( d b m s ) 一样,工 作流的定义、执行和管理需要有工作流管理系统( w f m s ) 。工作流管理联盟给 出的工作流管理系统的定义是:工作流管理系统是一个软件系统,它完成工作流 的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执 行【3 i 。 工作流引擎是工作流管理系统的核心。工作流管理联盟给工作流引擎下的定 义是:工作流引擎是为工作流实例提供运行时执行环境的软件服务器【3 】。按照工 作流管理系统所包含的工作流引擎数量可以把工作流管理系统分为集中式工作 流管理系统和分别式工作流管理系统。集中式工作流管理系统只包含一个工作流 引擎;分布式工作流管理系统包含多个同构或异构工作流引擎,这些工作流引擎 一般位于不同的计算机上,工作流任务被分解在不同的引擎上执行。 在现代管理软件中,使用工作流技术来实现复杂、多变的业务流程,已经是 轻量级工作流管理系统m i n i f i o w - - 3 2 作流引擎的设计与实现河海大学硕士学位论文 绝大多数系统架构师必然的选择了。然而在为上层业务应用软件选择工作流软件 时,经常会碰到这些问题: ( 1 ) 庞大复杂,使用困难 些工作流软件产品( 特别是国外成熟的工作流软件产品) 经过多年的发展, 功能强大、模块众多、配置和接口多样灵活,对于高端客户或工作流软件应用经 验丰富的客户来说,它们可以说是不错的选择。但对于现在国内大部分初次使用 工作流技术的中、小型项目来说,这些工作流软件的功能特性大大超过了项目需 要,客户即使能够承受较高的工作流软件采购成本,但漫长的培训学习周期、复 杂的安装配置和维护都会给时间进度已十分紧张的项目带来额外的风险。 ( 2 ) 架构封闭,自成体系 工作流管理系统要实现多个功能,如工作流建模、工作流执行和工作流监控, 这些功能应当由不同的功能构件实现,而且构件之间应当相互独立,使得用户能 够选用不同的构件来组合成工作流系统。但现有的工作流产品以一种“要么都用, 要么都不用”的方式提供给用户叽i 例如使用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 ) 针对应用开发人员的工作流软件很少 当前许多商用工作流产品为吸引客户,提倡完全由实际的业务人员来负责工 作流应用的定义和开发,宣传只需通过可视化的流程定义工具和界面定制工具就 能实现工作流应用的开发,但实际上这只适合简单的工作流应用,一旦业务逻辑 比较复杂,要他们将业务逻辑转换为工作流并且自己定制相应的应用逻辑,就会 非常困难。要构造出复杂、灵活而且可扩展的工作流应用,应当是由应用开发人 员将实际的业务应用转换为工作流,但当前的工作流产品对开发人员的支持考虑 不多,文献 7 】 8 】对这个问题也做了论述。 正是因为上述原因,许多需要使用工作流技术的企业级软件项目,选择了自 己开发工作流组件或在开放源码的基础上加以修改利用。然而,多数企业级软件 项目都是在业务需求繁杂,时间、人力资源极其有限的条件下进行的。开发工作 流软件涉及的理论基础和领域专门知识,项目开发人员是很难在短时间内掌握并 能够灵活运用的。因此,做出上面的选择会使本已成功概率不高的软件开发项目, 面临更大的风险。 针对以上问题,本文提出了构建一个基于j 2 e e 的轻量级工作流管理系统 m i n i f l o w 的设计方案,m 础l o w 是针对j 2 e e j a v a 应用开发人员,主要以嵌入 上层业务应用( 电子政务,c r m e r p o a ) 的方式部署使用的工作流软件。 2 轻量级工作流管理系统m i n i f l o w - - 工作流引擎的设计与实现河海大学硕士学位论文 与一般的工作流管理系统相比,m i n i f l o w 主要有如下特点: ( 1 ) 功能实用全面 m i n i f l o w 包含了工作流软件所必需的功能模块:核心的工作流引擎、完成流 程定义的g u i 工具、用户执行工作任务的客户端应用、系统管理人员管理监控 工作流运行状态的控制台、组织机构管理模块等: ( 2 ) 架构清晰开放 m i n i f l o w 在充分使用了j 2 e e 架构的优势的同时,也有选择的使用了一些业 已成熟的应用框架( s t r u t s ) 和数据访问层( 0 rm a p p i n g ) 技术。从而使得系统各 模块或各层次之间有着清晰的接口,支持灵活的替换插拔; ( 3 ) 使用灵活方便 m i n i f l o w 的工作流引擎不仅能够运行在j 2 e e 应用服务器中运行,也能够独 立于应用服务器运行。流程定义工具使用插件技术,与l a v a 常用开发工具融为 一体,为流程的开发调试带来了极大的方便; ( 4 ) 模型简单成熟 m i n i f l o w 的核心概念模型符合w t m c 标准,易于理解接受。基于成熟工作 流建模理论的流程控制模型,通过图形化建模工具,使用很少的图元就能够方便 灵活的构建复杂、强大的工作流程: ( 5 ) 轻量级可移植 用户可以根据需要将m i n i f l o w 裁减到最小模式使用,不需要的功能模块( 客 户端应用组织结构管理认证模块等) 可以不用或替换成用户定制的模块。用户 可以选用各种操作系统、数据库和应用服务器。 1 2 研究现状 已有学者在轻量级工作流方面做过有益探索。在总结工作流产品、标准、研 究的发展趋势时,c m o h a n 回顾了一大堆商用产品和研究项目 8 1 。他认为虽然许 多工作流管理系统是用面向对象的编程语言实现的,但是它们并没有充分发挥面 向对象技术的潜能,导致这些产品的用户不能够通过面向对象技术来裁制系统的 功能,将这些工作流管理系统集成到面向对象的应用程序时会非常困难。 d r a g o sm a n o l e s c u 也意识到这个问题,在他的博士论文中用s m a l l t a l k 设计 实现了一个轻量级的工作流管理系统m i c r o w o r k f l o w l 7 1 。他将m i c r o w o r k f l o w 分为核心组件和扩展组件,核心组件实现工作流管理系统基本功能,扩展组件实 现附加功能,但是m i e m w o r k f l o w 的设计并没有遵循w t m c 的工作流参考模型 标准,而且他主要是从嵌入式可裁减的角度来研究轻量级工作流管理系统,没有 考虑系统的可移植性。 轻量级工作流管理系统m i n i f i o w - - 工作流引擎的设汁与实现河海大学硕士学位论文 中科院的何清法等在文献 9 1 设计了个基于关系结构的轻量级工作流引擎, 他将工作流引擎构建在关系数据库中,利用d b m s 内嵌的编程语言来实现工作 流引擎的控制逻辑,试图利用成熟的关系数据库技术来简化工作流引擎的设计实 现和为应用系统提供支撑平台。但这种解决方案也有其局限性,将工作流引擎构 建在关系数据库内部,那么引擎本身无法集成外部应用程序,因为现有主流数据 库产品中还很少能实现从数据库内部来调用数据库外部的应用程序,o r a c l e 的 p l s q l 语言现在虽然提供了此功能,但使用起来也非常复杂。 关于工作流技术的研究目前集中在以下几个方面: ( 1 )工作流模型和工作流定义语言 以适当模型构筑和表达业务过程以便能转换为计算机可理解和可执行的工 作流定义语言,这可以说是工作流技术要得以应用首先需要解决的问题。理想的 工作流模型应该能够清楚的定义任意情况下的工作流,然而到目前为止,虽然已 经有许多工作流模型被提出,但从建模能力上来看距离这一理想情况还有相当距 离。不过,完全理想的模型也是不现实的。这方面的研究工作主要可见文献 1 0 1 一 1 4 】。 ( 2 ) 工作流模型分析和优化 模型分析和优化的主要目的是保证工作流模型的正确有效和高性能,相应 的,也存在两种类型的工作流分析方法:定性分析和定量分析,即合理性分析和 性能分析。合理性分析检测和分析工作流模型的合理性( 如不存在死锁和同步丢 失) ,目前用的最多的是基于p e t r i 网的分析技术。性能分析是指通过仿真获得仿 真数据( 业务平均处理时间、资源平均利用率) 来评估新建立的业务过程是否满 足目标需求,一般使用模拟、排队论和马尔可夫链方法。这方面是目前学术界研 究的热点,主要研究成果可见文献 1 5 】一 1 9 。 ( 3 ) 工作流的事务特性 工作流管理系统要负责整个业务过程的执行、监控,并保证其执行结果的完 整性、可靠性和正确性,这就是工作流的事务特性。与传统数据库系统的事务管 理类似,工作流管理系统也必须提供相应的工作流事务管理,但是工作流的事务 处理要比数据库中的事务处理复杂的多,因为工作流系统具有更复杂的操作、更 广的分布性以及更多的异构性。目前这方面的研究主要是将各种高级事务模型, 如s a g a 2 。1 、a c t a 2 ”、f l e x i b l e t 2 2 1 运用到工作流管理系统中,这方面的主要研究 可参见文献 2 3 卜一 2 5 。 ( 4 ) 工作流系统的集成与互操作技术 由于工作流系统要控制业务过程中各项活动的执行,而这些活动可能是人工 完成的,也可能是软件系统完成的,而且还可能是各种各样的异构计算机软硬件 系统,因此需要研究异构应用系统的集成 2 6 】与不同工作流系统之间的互操作问 4 轻量级工作流管理系统m i n i f i o w - - _ t _ 作流引擎的设计与实现 河海大学硕士学位论文 题【2 72 8 1 ,同时还要考虑跨组织机构的分布式工作流应用中各项功能的集成1 2 9 1 3 0 1 0 ( 5 ) 工作流的实现技术 将先进、可用的各种技术用于工作流系统的实现,主要包括面向对象技术、 异构分布式计算、图形用户界面、消息通信机制、数据库技术、w w w 等在内的 与工作流实现有关的各向技术和方法。在实现技术上主要考虑的问题有采用什么 样的底层技术、如何提高工作流管理系统的可靠性( 包括在出现错误以后如何可 靠的恢复) 、柔性( 处理工作环境中发生的变化问题,如人员变化、过程结构变 化) 、以及大规模复杂应用的分布性问题。 工作流管理软件的当前形式可以同数据库管理软件在2 0 世纪7 0 年代初期的 情形进行比较。在2 0 世纪7 0 年代初期,数据库管理系统( d b m s ) 领域的先驱 们正在使用他们自己的特殊概念。这种混乱的情形和一致意见的缺乏只成就了 套不完整的数据库管理系统。然而,在关系数据库模型和实体联系模型成为数 据库管理系统的公共基础后,数据库管理系统得到了极大的繁荣和发展。今天的 工作流管理系统( w f m s ) 与2 0 世纪7 0 年代初期的数据库管理系统有很多相似 之处。尽管工作流管理联盟做出了很大努力,仍然没有一个真正的概念标准。结 果很多组织只能很勉强地使用现有的工作流管理软件【3 ”。 1 3 研究内容和成果 工作流管理系统的设计和实现是一个复杂而浩大的工程,即使是一个轻量级 的工作流管理系统,其设计开发也要分步骤进行,由于工作流引擎是工作流管理 系统的核心,本文的研究工作也主要是涉及m i n i f l o w 的工作流引擎。 所做的主要工作和取得的成果如下: ( 1 ) 针对现有工作流管理系统庞大复杂、使用困难、架构封闭、难以和应用集 成等问题,提出了构建轻量级工作流管理系统的思想,并构建了一个基于j 2 e e 的轻量级工作流管理系统m i n i f l o w ,m i n i f l o w 的体系结构遵循了w f v l c 的工作 流参考模型标准,是一个单引擎的可裁减的工作流管理系统。 ( 2 ) 采用j 2 e e 下基于s w a t s + h i b e r n a t e 的开发方案实现了m i n i f l o w 的设计目标。 s t r u t s 已经成为了用j a v a 创建w e b 应用的一个最流行的框架工具,s t r u t s 所实现 的m v c 模式给w e b 应用带来了良好的层次划分。h i b e r n a t e 是一种新型的对象 关系映射工具,同时它是一个独立的、轻量级的持久层解决方案。本文将s t r u t s 和h i b e r n a t e 结合起来,为开发m i n i f l o w 的客户端和服务器端提供了全方位的支 持,大大提高了m i n i f l o w 的开发效率,同时满足了m i n i f l o w 架构清晰开放、轻 量级可移植的特点。 ( 3 ) 从构建轻量级工作流管理系统的初衷出发,本文构建了一个简单实用的工 轻量级工作流管理系统m i n i f i o w - - 工作流引擎的设计与实现河海大学硕士学位论文 作流模型,此工作流模型由过程模型、组织模型和信息模型组成,分别描述了工 作流的组成结构、流程的参与者、流程加工的对象。过程模型基于活动网络图, 是对w f m c 的x p d l 过程模型的简化,组织模型能够采用最少的组织概念灵活 的表示各种组织结构,信息模型使用x m l 表示各种简单和复杂数据。 ( 4 ) 在设计了m i i l i f l o w 工作流模型的基础上,采用面向对象的编程思想,设计 了m i n i f l o w 工作流引擎的类结构。m i n i f l o w 工作流引擎由模型类和服务类组成。 模型类是对工作流模型中主要实体的对象模型,工作流的执行就是这些模型类的 实例交互作用的结果;服务类为模型类实例的运行提供相关的支持,服务类构成 了工作流引擎的静态框架。在设计工作流引擎的类结构后,本文详细的给出了工 作流引擎中关键技术的实现。 ( 5 ) 将m i n i f l o w 工作流引擎运用到江苏省水利厅取水许可管理系统中,实现了 取水许可申请审批工作流,取得了良好的效果。 1 。4 论文结构 本文由以下六章和参考文献组成。 第一章绪论。介绍论文的研究背景、研究现状、研究内容和成果。 第二章介绍m i n i f l o w 的体系结构和开发方案。首先介绍了工作流管理联盟 制定的工作流参考模型标准,然后给出了m i n i f l o w 的体系结构,m i n i f l o w 体系 结构的设计遵循了工作流参考模型标准。从轻量级的角度出发,选择j 2 e e 下的 w e b 应用程序设计框架s t r u t s 和轻量级持久层解决方案h i b e r n a t e 来实现 m i n i f l o w 的设计目标。文中分别介绍了这两种技术,然后给出了基于s t r u t s + h i b e r n a t e 的m i n i f l o w 开发方案。 第三章给出了m i n i f l o w 工作流引擎的设计方案。首先设计了m i n i f l o w 的 工作流模型,分为过程模型、组织模型和信息模型。然后设计了工作流引擎的类 结构,工作流引擎由模型类和服务类组成,模型类是m i n i f l o w 工作流模型中主 要实体的对象模型,工作流的执行就是模型类实例交互作用的结果,服务类为模 型类实例的运行提供服务,服务类构成了m i n i f l o w 工作流引擎的静态框架。 第四章给出了m i n i f l o w 工作流引擎的具体实现。详细描述了工作流引擎的 流程定义解析、工作流过程导航、执行体状态控制、资源分配和人工交互、应用 代理实现等。 第五章将m i n i f l o w 1 2 作流引擎运用到江苏省水利厅取水许可管理系统中 首先对业务流程进行分析,然后介绍了在m i n i f l o w 工作流引擎上所做的应用开 发工作。 第六章总结与展望。总结全文工作,并给出下一步工作的展望。 轻量级工作流管理系统m i n i f i o w - - 工作流引擎的设计与实现 河海大学硕士学位论文 第二章m i n i f l o w 体系结构和开发方案 随着工作流产品市场需求的不断扩大,许多公司纷纷推出了各具特色的工作 流产品。但是,由于工作流管理技术与产品缺乏统一的标准,不同的工作流产品 从术语的定义、系统结构的设计到应用之间的接口规范上都存在较大的差异,因 此,不同产品之间的互操作以及产品与其他应用之间的集成十分困难。这种情况 给开发商和用户都带来了很大的不便,也在一定程度上阻碍了工作流管理系统的 推广与发展。 在这种背景下,1 9 9 3 年,国际上成立了“工作流管理联盟( w f m c ) ”组织, 现有3 0 0 多名分别代表了软件开发商、用户、学术界和咨询界的成员。w f m c 制 定了有关工作流管理系统的一系列规范,定义了工作流管理系统的结构及其与应 用、管理工具和其他工作流管理系统之间的接口,其目的就是为了实现工作流技 术的标准化和开放性,从而使不同的工作流产品可以协同工作,并提高工作流应 用与其他i t 服务的集成能力,进而提高工作流技术在i t 市场的有效应用。 w f m c 制定的工作流参考模型( w o r k f l o wr e f e r e n c em o d e l ) 即是为上述各 种规范的开发提供一个支持框架,为工作流管理系统确定其特征、术语和组成部 分,使得各个厂家能够在工作流系统整体模型的范围中进行开发。 本章首先简要介绍w f m c 工作流参考模型,然后在此基础上设计了m i n i f l o w 的体系结构,最后针对m i n i f l o w “轻量级”的特点给出了一个开发方案。 2 1 工作流参考模型 工作流参考模型来源于对一般工作流应用程序结构的分析,并在此基础上确 定系统中各个构件之间的接口,这些接口可以使不同的工作流产品在不同的结构 层次上协同工作。所有的工作流系统都包含一系列公共构件,构件间采用一套定 义好的方法进行协作,不同的产品在这些公共构件中,会表现出不同的处理能力。 为了实现不同工作流产品间的协同工作,需要在这些构件间制定一套标准的接口 和数据交换格式。 图2 一l 展示了工作流参考模型中的各主要构件与接口。围绕在工作流执行服 务之外的是工作流应用编程接口( w a p i ) 和数据交换格式,它可以被看成是统一 的服务接口,支持工作流管理的五个功能领域:过程定义、客户应用、被调用程 序、工作流互操作和管理监控。各主要构件说明如下: 7 轻量级工作流管理系统m i n i f t o w - - 工作流引擎的设计与实现河海大学硕士学位论文 图2 一l 工作流参考模型 ( 1 ) 过程定义工具:为用户提供一种对实际业务过程进行分析、建模的手段, 并生成业务过程的可被计算机处理的形式化描述。 ( 2 ) 工作流执行服务:它借助于一个或多个工作流引擎,激活并解释过程定义 的全部或部分,并同外部的应用程序进行交互,完成工作流过程实例的创建、执 行与管理,为工作流程的运行提供一个运行时环境。 ( 3 ) 其他工作流执行服务:在大型的工作流管理系统中,工作流可能需要多个 工作流引擎共同完成,甚至需要其他异质的工作流执行服务来辅助来完成,这涉 及到工作流管理系统之间的互联。 ( 4 ) 客户端应用程序:它给用户提供一种手段,以处理过程实例运行过程中需 要人工干预的任务。每一个这样的任务就被称为一个工作项。工作流管理系统为 每一个用户维护一个工作项列表,它表示当前需要该用户处理的所有任务。 ( 5 ) 被调应用程序:指工作流执行服务在过程实例的运行过程中,调用的、用 以对应用数据进行处理的程序。在过程定义中包含这种应用程序的详细信息,如 类型、地址等。 ( 6 ) 管理及监控工具:其功能是对工作流管理系统中过程实例的状态进行监控 与管理,如用户管理、角色管理、审计管理、资源控制等。 2 。2m i n i f i o w 系统体系结构 轻量级工作流管理系统m i r t i f l o w 体系结构的设计充分遵循了w f m c 的工作 流参考模型标准,以x p d l 作为自己的工作流定义语言,从轻量级的角度出发, 是一个单引擎的工作流管理系统,实现了w f m c 参考模型的接1 2 1l 、接1 :32 、接 口3 、和接口5 。由于是单引擎的结构,并且也不考虑和其它工作流管理系统的 轻量级工作流管理系统m i n i f l o w - - 工作流引擎的设计与实现河海大学硕士学位论文 交互,所以没必要实现接口4 ,因此设计工作流引擎时不需要考虑工作流过程的 分解和与其它工作流引擎之间的协同这些复杂的问题,从而大大降低了开发难 度,而且m i n i f l o w 工作流管理系统中各模块之间耦合度低,除工作流引擎外, 其它各部分可根据用户需要裁减和替换,工作流引擎提供一组开放的编程接口, 可供用户进行二次开发。图2 2 给出了m i n i f l o w 系统的体系结构图: 纵 圈 外部工具数据 图2 2m i n i f l o w 体系结构 m i n i f l o w 中有三种类型的构件: ( 1 ) 软件构件:为m i n i f l o w 工作流系统的各种功能实现提供支持的各类软件。 ( 2 ) 系统控制数据:m i n i f l o w 系统中的一个或多个软件构件使用的数据。 ( 3 ) 外部应用程序与应用数据:它们本身不是m i n i f l o w i 作流系统的直接组成 部分,而是属于外部系统和数据,但它们被m i n i f l o w i 作流系统调用来完成整个 工作流管理系统的功能。 其中主要功能构件描述如下: ( 1 ) 流程定义工具 流程定义工具是一个独立的j a v a 应用程序,支持图形化方式的流程建模, 提供各种基本图元( 如活动、连接弧等) 供工作流设计者构建各种简单或复杂 的工作流,并可对各种建模图元进行属性编辑。流程定义的结果以x p d l 文件形 9 轻量级工作流管理系统m i n i f l o w 一工作流引擎的设计与实现 河海大学硕士学位论文 式保存。 ( 2 ) 流程定义 流程定义包含了所有执行过程所需要的信息,包括开始和结束条件、构成过 程的活动和活动之间关联的规则、用户承担的任务、对外部应用程序的引用、工 作流相关数据的定义等。流程定义还可能会涉及到一个组织角色模型,模型包 含组织结构和组织中的角色等信息,工作流执行服务负责把工作流运行环境中的 参与者与相应的组织实体或角色联系起来。 ( 3 ) 工作流执行服务和工作流引擎 工作流执行服务软件负责解释过程定义、控制过程的实例化和活动的执行 顺序、向用户的工作列表中添加工作项并适时调用应用程序工具。这些是通过 m i n i f l o w 工作流引擎来实现的。工作流执行服务维护了一组内部控制数据,它 们包括了执行中的过程和活动实例的内部状态信息。 过程定义以及相关联的工作流运行时数据被工作流引擎用来控制过程内部 活动的承接关联,它所提供的信息包括:各个活动的进入与退出条件、不同活 动之间并行或顺序执行的选择、与活动相关联的用户任务和应用程序等。 工作流引擎可以按流程定义要求激活多种外部应用程序,包括本地应用程 序和远程应用程序。 ( 4 ) 工作流相关数据和应用数据 过程如何推进的决策以及工作流引擎的一些控制操作取决于工作流应用程 序产生或修改的数据,这些数据称为工作流相关数据,这是工作流引擎唯一可 以访问的应用程序数据。 工作流应用数据是指那些由工作流应用程序操作的数据,它们是针对应用 程序、完成具体业务功能所需要的数据。工作流引擎负责在应用程序间传递这 些数据,但不直接对这些数据进行访问。 ( 5 ) 任务表 当过程执行中需要与用户交互的时候,工作流引擎通过任务表管理器把任 务项添加到任务表中,由任务表管理器管理与用户的交互。任务表对用户屏蔽 了过程,用户从任务表中选择工作项逐个执行。 ( 6 ) 任务表管理器与用户晃面 任务表管理器是一个管理工作流参与者和工作流执行服务之间交互的服务 器端s e r v l e t ,运行于w e b 服务器中。它负责控制需要用户注意的任务,并通过任 务表与工作流执行服务进行交互。在上图中,用户界面是一个w e b 浏览器。 ( 7 ) 管理监控工具 管理监视工具是一个独立的j a v a 应用程序,启动时和工作流引擎建立连接, 系统管理员通过它可以导入流程定义并实例化,维护组织角色模型数据,监控 工作流实甥i 的运行,挂起、重启或终止、放弃工作流实例的运行,查看运行日志 轻量级工作流管理系统m i n i f l o w - - 工作流引擎的设计与实现河海大学硕士学位论文 等。 2 3m i n i f i o w 系统开发方案 为实现m i n i f l o w 的设计目标,m i n i f l o w 采用了s t r u t s + h i b e r n a t e 这种最新的 j 2 e e 应用程序设计框架。 在w e b 应用系统的实际开发中经常遇到这样的问题:如何快速搭起w e b 应 用程序的框架? 每个项目是否需要从头开始? 应用程序的扩展性、重用性以及可 维护性如何? j a v a 平台下传统的w e b 开发方法中,有的大量使用j s p 技术,有 的使用复杂的e j b 技术以及其它一些方案,造成了以下情况: ( 1 ) 整个w e b 应用程序体系结构混乱,各种代码混杂,难以修改和重用: ( 2 ) 开发代价( 对应用系统硬件的要求,人员素质的要求) 太高: ( 3 ) 新w e b 应用程序开发经常从头开始,难以利用现有的成果。 以开源项目s t r u t s 为代表的w e b 开发框架和以h i b e m a t e 为代表的o r ( 对 射关系) 映射工具最近得到了迅猛的发展。本文针对m i n i f l o w 工作流管理系统 “轻量级”的特点,结合上面这两种技术,给出了个快速开发结构清晰、可重 用性好、维护方便的m i n i f l o w 系统的设计方案。 2 3 1s t r u t s 技术简介 s t r u t s 是a p a c h e 基金会j a k a r t a 项目下的开放源码项目,是一个用于开发w e b 应用程序的框架,基于m v c 设计模式,目前版本是1 1 t 3 2 1 。整个框架工作流程 示意图如图2 3 所示。 处理 图2 3s t r u t s 框架图 控制器a c t i o n s e r v l e t 是s t r u t s 的核心。s t r u t s 提供了视图与控制器完整的解 决方案:视图采用j s p 页面和自定义标( c u s t o m t a g ) 控制器采用自身的 a c t i o n s e r v e t :对于模型层,s t r u t s 自身耒提供方案,但它可采用其它成熟技术 轻量级工怍流管理系统m i n i f l o w - - 工作流引擎的设计与实现河海大学硕士学位论文 如j d b c 、e j b 或者其它持久层解决方案如o r 映射等。 下面将s t r u t s 的重要部分简介如下。 a c t i o n s e r v l e t :作为惟一的控制器接受用户的请求,分析其请求并转发到相 应的页面上去,并且负责在视图和模型之间传送数据。 a c t i o n f o r m :个a c f i o n f o r m 代表了一个h t m l 的表单,用于在视图和控 制器之间传送数据,但它仍然被视为是控制器的部分,在使用时需要继承这个 类。 a c t i o n :用来处理用户的请求,并且可以将处理完的结果转发到另外一个页 面。a c t i o n 类一般自身不完成具体的业务逻辑,需调用其它具体的业务逻辑处理, 如j a v a b e a n 或者e j b 等。 a c f i o n m a p p i n g :a c t i o n s e r v l e t 使用a c t i o n m a p p i n g 完成将用户请求的页面映 射到具体的处理部分即a c t i o n 。 s t r u t s c o n f i g x m hs t r u t s 框架的核心配置文件,定义了整个w e b 应用程序的 流程。这样无需在程序里面硬编码程序流程控制,非常方便更改程序的流程,扩 展性非常好。 s t r u t s 在国际化、错误处理、数据验证等方面都给出了非常好的解决方案。 s t r u t s 资料丰富,对系统和开发人员要求都不是很高,并且由于它符合m v c 架 构,为快速开发结构清晰、可重用性好、易于扩展和管理的w e b 应用系统提供 了强有力的支持。 2 3 2h i b e r n a t e 技术简介 面向对象的开发方法是当今的主流,但是同时我们不得不使用关系型数据 库,所以在企业级应用开发的环境中,对象、关系的映射( o r m ) 是一种耗时 的工作。围绕对象关系的映射和持久数据的访问,在j a v a 领域中发展起来了一 些a p i 和框架,下面分别简单介绍。 j d b c 可以说是访问持久数据层最原始、最直接的方法。在企业级应用开发 中,我们可能使用d a o ( d a t aa c c e s so b j e c t ) 模式来把数据访问封装起来,然 后在其它的层中同一调用。这种方式的优点是运行效率最高,缺点是把d a o 对 象和s q l 语言紧密耦合在一起使得在大项目中难以维护。但是不管怎么说,使 用j d b c 来直接访问持久数据层是当今企业级应用开发中使用最广泛的。 c m p 方式作为一种重大改进,减少了程序员直接写s q l 语句操纵数据库的 麻烦,由e j b 容器自动生成访问数据库的s q l 代码,但是在运行时我们需要额 外购买e j b 容器( 当然,如今也有免费的e j b 容器,如b o s s ) ,并且使用不同 的应用服务器,需要重新书写不同的部署描述,使得在不同应用服务器下移植企 t 2 轻
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特斯拉玻璃贴膜施工方案
- 2026届辽宁省大连高新区名校联盟化学九年级第一学期期末综合测试试题含解析
- 福建省泉州市鲤城北片区2026届英语九上期末调研试题含解析
- 外挂坐板外墙施工方案
- 市场策划工作总结报告
- 培训工作亮点总结
- 2026届河南省洛阳市涧西区洛阳市九上化学期中复习检测模拟试题含解析
- 2026届山东省济南市中学化学九年级第一学期期末经典模拟试题含解析
- 儿童托管服务政策解读
- 2026届山东省滕州市张汪中学九年级英语第一学期期末监测试题含解析
- 医院死亡报卡培训课件
- catia考试图纸题目及答案
- pos机风险管理办法
- 2025年京东集团招聘笔试指南与面试技巧
- 起重机械定期检查与维护方案
- 2025年行业机器人边缘计算技术应用与场景分析
- 国际物流运输合同(标准版)
- 2025年江西省高考物理真题
- 肝癌的中西医治疗
- 芳华电影介绍模板课件
- 四川省高中信息技术会考试题
评论
0/150
提交评论