(计算机应用技术专业论文)基于mvc架构的工作流管理系统研究及应用.pdf_第1页
(计算机应用技术专业论文)基于mvc架构的工作流管理系统研究及应用.pdf_第2页
(计算机应用技术专业论文)基于mvc架构的工作流管理系统研究及应用.pdf_第3页
(计算机应用技术专业论文)基于mvc架构的工作流管理系统研究及应用.pdf_第4页
(计算机应用技术专业论文)基于mvc架构的工作流管理系统研究及应用.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)基于mvc架构的工作流管理系统研究及应用.pdf.pdf 免费下载

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

文档简介

摘要 摘要 传统工作流管理系统的设计从提供功能齐全的工作流服务角度出发,不可 避免地导致了系统架构极为庞大,系统的复杂性也随着增大。同时传统的工作 流管理系统提供的功能是以集成的方式实现,从数据存储到运行环境往往都有 自己的一整套独特的体系结构,因而想从中分离出某个功能,将会是一件非常 困难的事情。由于这些问题的存在,使得传统的工作流管理系统不能快速地根 据具体的应用需求定制,灵活地集成到应用系统。 为了克服当前工作流在应用中的不足,提出了一个基于整合m v c 轻量级的 框架结构,来进行系统的设计和应用。本架构的核心部分,由几个组件提供工作 流管理的基本功能。同时,该架构允许灵活的添加和裁减各种提供扩展功能的 工作流管理系统的组件,使得软件开发者或是产品供货商不仅可以灵活地定制 应用到不同领域的工作流管理系统,而且还可以重用功能相同的工作流管理系 统部件,为工作流管理系统的应用提供一种敏捷开发的解决方式。 在设计系统的时候,本文提出扩展r b a c 服务技术来统一建立和管理应用的 组织模型、权限分配和任务指派组件。轻量级工作流管理系统的设计目的是为 了灵活地集成到各种具体业务应用系统中,使用统一r b a c 服务技术管理的组织 模型、权限分配和任务指派策略将会降低集成的难度,减少集成的时间。 本文为基于整合m v c 架构的轻量级a l y f l o w 系统在设计时候使用开源的 s t r u t s 和h i b e r n a t e 架构及a j a x 和j s o n 技术,来设计的轻量级的工作流管理 a 1 y f l o w 系统,进行研究原型系统a l y f l o w 的设计。在已经投入使用的广东奥里 油电厂m i s 系统中,在电厂电子政务系统和办公自动系统中进行了应用和测试, 通过监控和用户反馈,采用本文的轻量级工作流管理系统的框架的应用系统, 为企业大大提高了效率,为用户赢得了时问,增加了企业的社会竞争力。 关键词:州c 框架;轻量级;工作流管理系统;r b a c 东北电力大学硕士学位论文 a b s t r a c t t h ep u r p o s ed e s i g no ft r a d i t i o n a lw o r k f l o wa r c h i t e c t u r e sa i m sa t p r o v i d i n gf u l lf l e d g e ds u p p o r t f o r t h ew i d e s tp o s s i b l ea p p l i c a t i o n s p e c t r u m c o n s e q u e n t l y ,m o s tw o r k f l o wm a n a g e m e n ts y s t e m s ,b o t hp r o d u c t s a n dr e s e a r c hp r o t o t y p e s ,a r eh e a v y w e i g h t ,m o n o l i t h i c ,a n dp a c k a g ea c o m p r e h e n s i v es e to ff e a t u r e si na l l o r - n o t h i n gm a n n e r a d d i t i o n a l l y , c u r r e n tw o r k f l o ws y s t e m sa r eh a r dt oi n t e g r a t ew i t ho t h e re n v i r o n m e n t s , t h es o l u t i o nt ot h ep r e v i o u sp r o b l e m sh e r ei sam v cf r a m e w o r k - b a s e d l i g h t w e i g h tw o r k f l o wa r c h i t e c t u r et h a te n a b l e ss o f t w a r ed e v e l o p e r st o p i c ka n dc h o o s e t h ew o r k f l o wf e a t u r e st h e yn e e d a tt h ec o r eo ft h e a r c h i t e c t u r e ,s e v e r a lc o m p o n e n t ss p r o v i d eb a s i cw o r k f l o wf u n c t i o n a l i t y a d d i t i o n a lc o m p o n e n t si m p l e m e n ta d v a n c e dw o r k f l o wf e a t u r e s t h el i g h t w e i g h tw o r k f l o wa r c h i t e c t u r ea p p l y ss a ct ob u i l da n dm a n a g e o r g a n i z a t i o nm o d e l ,r i g h ta n dt a s ka s s i g n m e n t t h ep u r p o s ed e s i g no f s y s t e mi se a s yt oi n t e g r a t ew i t ho t h e re n v i r o n m e n t s w i t h s e r v i c e s p r o v i d e db yr b a c ,t h ew o r k f l o ws y s t e mc a nc o n t r o la p p l i c a t i o ns y s t e m , i th e l pt ol o w e ri n t e g r a t ed i f f i c u l t ya n ds h o r t e ni n t e g r a t et i m e ap r o t o t y p es y s t e ma l y f l o w ,a p p l y i n go p e n - s o u r c es t r u t s ,h i b e r n a t e , a j a xa n dj s o nt e c h n o l o g y ,i sd e s i g n e d a l y l o wh a sb e e ni n t e g r a t e di n e g r o v e r m e n ta n do f f i c ea u t o m a t i o nf o ra l y l o wp o w e rp l a n to fz h a n j i a n g t h r o u g ht h ea c t u a li n s p e c t i o na n du s e rf e e d b a c k s ,t h ea p p l i c a t i o ns y s t e m t h a ta d o p t e da l y f l o wa st h ef r n m e w o r kc o u l dd r a m a t i c a l l ys h o r t e nt h e d e v e l o p m e n tc y c l eo ft h ep r o c e s si n f o r m a t i o na p p l i c a t i o ns y s t e m i m p r o v e d t h eu s e r se f f i c i e n c ya n dt h ee n t e r p r i s e ss o c i e t yc o m p e t i t i o n k e y w o r d s :m v of r a m e w o r k ;iig h t w e ig h t ;w o r k fio wm a n a g e m e n ts y s t e m ;r b a c - 论文原创性声明 本人声明,所呈交的学位论文系在导师指导下本人独立完成的研究成果。文 中依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法律意 义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论 文或成果。 本人如违反上述声明,愿意承担以下责任和后果: 1 交回学校授予的学位证书; 2 学校可在相关媒体上对作者本人的行为进行通报; 3 本人按照学校规定的方式,对因不当取得学位给学校造成的名誉损害, 进行公开道歉; 4 本人负责因论文成果不实产生的法律纠纷。 论文作者签名: j :签蝰日期:三! ! l 年三月:丛日 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属东北电力 大学。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。 本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时,署名 单位仍然为东北电力大学。 论文作者签名: 导师签名: 第l 章绪论 第1 章绪论 1 1 研究背景 随着经济信息化和全球化的深入发展,市场竞争越来越激烈,产品从原来 的生产什么卖什么,到市场需要什么则生产什么,任何以提供产品或服务为经 营方式的企业都是以满足用户需求为首要目标。因此,企业想要在竞争中生存, 就必须能够面对动态多变的市场环境,灵活快速的重组自己的业务流程,提高 应变能力和竞争力,工作流技术为这个问题提供了解决方案。 工作流技术作为现代企业实现过程管理与过程控制的一项关键技术,为企 业的经营过程提供了从模型分析、建立、管理、仿真到运行的完整框架。同时, 工作流管理系统通过一套集成化、可互操作的软件工具为这个框架提供了全过 程的支持。根据l e y m a r m 和r o l l e r 研究结果表明【1 1 ,工作流的应用范围已经扩 大到移动计算、系统管理、因特网应用、行业应用开发、面向对象技术的扩展、 操作系统和事务管理等等。 工作流技术被应用到这么广泛的领域,表明了市场上有大量的工作流产品。 然而现在市场上提供的工作流管理系统都是大型的、功能齐全的、重量级的复 杂系统。这样的系统往往从数据存储到运行环境都有自己的一套独特的体系结 构,难以集成到其它的应用系统或应用环境中,我们需要根据工作流管理系统 的设计格式对应用系统做很大的修改,甚至于重构整个应用系统。 然而在特定的领域中,应用所关心的功能只是功能集合中的一部分,但是 我们不得不实现很多根本不需要用到的接口,增加了开发的时间也增大了开发 的难度。这种现象,引起工作流研究者的兴趣。因而,相关的研究机构和人员, 例如m e m t o r - l i t e 和m i c r o - w o r k f l o w 2 3 1 ,认为应该构建轻量级的工作流架构,该 架构易于扩展和裁减,用于解决特定的问题和需求。 传统的工作流管理系统各功能相互间耦合程度比较高,导致各功能模块不 能拆开分别单独使用。m u t h 和他的同事观察到,“大部分的工作流管理系统,包 括产品和研究原型,都是致力于所提供所有的全面的功能,用于适应尽可能大 的应用范围”【4 】,从这种意图出发设计的工作流管理系统的结构框架,极大地限 制了应用的范围和类型。传统的工作流管理系统由于将所有的功能集成在一起, 分离出某个功能需要详细了解整个架构的构成和大量的代码修改工作,这些工 作往往大于重新开发相同的工作流功能的工作量,使得软件开发者望而却步。 无法重用传统工作流管理系统的功能,造成了资源的大量浪费,给企业带来了 沉重的竞争压力。 最初的工作流管理系统不能提供足够的处理能力,也不完全能在运行期间 修改流程的定义。缺乏适应性使得工作流管理系统使用者失去了信心。从而抵 制工作流技术。为此,专门有人对工作流的适应性开展研究,例如延迟资源的 绑定、提高流程的动态性等,来解决工作流灵活性问题【卯。 如果使用基于组件的m v c 架构,则可以减少软件开发的成本和维护的成 本,软件工程师可以专注于业务逻辑的设计和优化。但是重量级的集成模式的 工作流架构设计是面向最终用户,没有考虑这些实现目标。因而,现在的开发 者发现很难把市场的工作流产品集成到应用中。 使用基于m v c 架构开发出来的工作管理系统可以带来几个的好处。第一, 一些m v c 架构比较成熟,大多数是开源的,极大的减少了开发费用。专门的用 户开发一个单独的软件要比购买一个面向大量用户开发的产品费用低得多;第 二,减少了开发时间。开发者只需要根据需要处理的功能进行集成测试。这个 时间大大低于软件设计、代码开发和单元测试的时间;第三,重用一个工作流 系统,允许开发者专注于应用的定制开发,符合他们建立一个应用于解决某一 特定问题的目标要求。 综上所述,我们就应该用整合的m v c 架构来解决现有工作流管理系统在软 件开发遇到的问题,并且利用开源的框架来开发我们需要的产品,来满足客户 的需求。 1 2 国内外发展动态 国外现有很多公司致力于开发商业化的工作流系统,一些著名的工作流领 域软件供应商不断推出新的产品如i b m 的h o l o s o f x 与m q s e r i e s i 作流。 第1 章绪论 f u j i t s u ( 日本富士通公司) i f l o w , b e a 公司的礼i ,s a p 的n e t w e a v e r ,s o n i c 的 o r c h e s t r a t i o ns e r v e r ,l o t u s 的基于l i n u x 的d o m i n ow o r k f l o w 等,都是最新的 工作流产品 国内现在许多公司也在着力开发商业化的工作流系统,做的比较好的有西 安协同数码股份有限公司的s y n c h r o f l o w ,杭州信雅达的s u n f l o h ,还有上海东兰 的d l f i o 等,都是国内比较著名相比之下,工作流技术在研究方面的进展要落 后于商业应用目前,国外许多科研机构和学校已经开展了很多相关的研究工作, 也取得了不少研究成果比较著名的有i b m 公司a l m a d e n 研究中心研究开发的分 布式工作流管理系统e x o t i c a f m q i ,美国佐治亚大学计算机系研究开发的具有 自适应性的工作流管理系统m e t e o r ,欧洲多机构合作开发的基于分布式主动数 据库技术的w i d e i 作流系统,瑞士联邦银行和萨尔兰大学共同研究的基于状态 和活动图的m e n t o r 工作流系统,惠普实验室的o p e n p m - e 作流系统,德国埃朗根 大学的m o b i l e 工作流系统等另外,在该研究领域l l 较活跃的学者有w i lv a nd e r a a l s t 和m i c h a e l z u rm u e h l e n ,他们在工作流理论研究方面都取得了不少成就 国内关于工作流方面的研究还处于起步阶段,当前在这方面研究比较多的 国内学者主要有清华大学的范玉顺、史美林等此外,中科院、北京航空航天大 学、浙江大学等高校及研究所也都在工作流技术方面展开了相应的研究的工作 流软件开发公司 工作流技术研究虽然取得了一定的成果,但是还存在不少问题有待解决, 既有理论研究方面,也有技术实现方面,本课题主要在技术实现方面中的集成 化技术方面进行了研究。由于现在工作流产品的种类很多,应用于异构环境中, 开发符合w f m c 标准的工作流产品变得十分重要,这样才能扩大工作流的应用范 围,提高工作流系统的通用性和兼容性 1 3 解决办法 解决方案是采用一个和现有工作流管理系统从根本上不同的方法。与其使 用集成的方式封装了很多不同的功能的现有工作流管理系统的改进,不如使用 一个轻量级的基于m v c 架构的工作流管理系统,同时软件开发人员可以选择各 自需要的工作流管理系统的功能,可以不完全符合工作流联盟定制的要求。 本课题的工作流管理系统的核心部分由几个组件组成,如工作流模型定义、 工作流管引擎等,这些组件提供工作流的基本功能。软件开发人员可以通过扩 展其核心部分,添加他们所需要的功能,也可通过扩展核心的组件来提供更多 新的功能,但这样会增加架构的复杂性。 基于m v c 架构来实现轻量级工作流管理系统,是指从够用、灵活和低成本 的设计原则出发,不追求工作流引擎的完备和复杂,只是实现工作流管理系统 中不可以缺少的功能和特征,把业务应用逻辑的定制和开发交给第三方的开发 工具来实现,从而构造出各种灵活的具有各种工作流技术特征的应用管理系统 ( 这里提到的第三方开发工具也就是各种开源的各种组件和架构) 。 1 4 论文研究的主要内容 本文主要围绕基于整合m v c 架构的轻量级工作流管理系统所用的m v c 架 构、涉及的关键技术、工作流的核心技术等几个主要问题进行了研究和设计, 归纳主要有以下几点: 1 整合m v c 架构的轻量级工作流管理系统的组成设计传统的工作流管理 系统在应用中存在着问题,一是架构过于庞大,系统结构复杂,用户难以理解; 二是提供的功能是以集成的方式实现,从数据存储到运行环境往往都有自己的 一整套独特的体系结构。因而,想从中分离出某个功能将会是一件非常困难的 事情,既不利于功能模块的重用,也难以根据具体的应用定制需求。 一般情况下,研究工作流管理系统主要应该包括系统提供的哪些基本功能, 分离出基本的功能作为架构的核心,其它功能可以根据需要进行灵活添加或裁 减的组件系统,从而设计了轻量级的工作流管理系统框架,本文中提出组件技 术统一管理应用的组织模型、信息模型和权限控制等功能。 2 架构清晰开放在基于整合m v c 架构的轻量级工作流管理系统框架的 基础上,本文在设计工作流管理系统时候运用了目前非常流行的一些最新技术: s t r u t s 、h i b e r n a t e 、异步请求响应的h j a x 和j s o n 等关键技术,这些技术的运用 使得在进行设计工作流管理系统时候节约了大量时间和成本,提高了系统灵活 性,增强了产品的市场竞争力。 3 功能使用全面a i y f l o w 包含了工作流管理软件所必需的功能模块:核心 第l 章绪论 的工作流引擎,可视化的流程定义工具、用户执行任务的w e b 客户端应用、系 统管理人员管理监控工作流运行状态的监控工具、权限分配和任务指派模块等。 4 灵活、柔韧性的业务流程定义传统的工作流管理系统一般都由管理员 定义很多业务流程存在于工作流管理系统的模板库中,然后根据需要从库中取 出进行处理,这使得用户使用起来很难定位到具体的流程。本文可以由用户来 根据具体需要定义所需要的流程,从而在使用定义的流程进行具体的业务处理, 实现流程定义的灵活性和柔韧性。 5 扩展r b a c j 最务的组织模型、权限分配和任务指派组件的实现基于r b a c 设计思想,设计和实现了一个基于关系型数据的扩展r b a c 服务的组织模型、权 限分配和任务指派组件。文中的轻量级工作流架构通过添加组件来建立和管理 组织模型、权限分配和任务指派服务。针对不同的用户应该具有不同的权限, 权限的大小表明用户的高级程度,权限分配可以针对多种功能进行分配,也可 以针对整这个系统的树形结构的节点进行分配;任务指派使针对流程定义时把 具体要处理的任务指派给用户来处理,既可以指派多个人来处理也可以指派一 个人处理,从而实现了流程中任务处理的具体定制。 6 使用灵活方便a l y f l o w 的工作流引擎不仅能够运行在j 2 e e 应用服务器 中运行,也能够独立于应用服务器运行。工作流建模工具使用a j a x 等技术,为 流程的自由定义和流程的开发调试带来了极大的方便。 7 轻量级可移植a l y f l o w 采用了可插可拔的组件技术,从而用户可以根据 需要将a l y f l o w 裁减到最小模式使用,不需要的可以不用或隐藏或替换成用户 定制的模式。用户可以选择各种操作系统、数据库和应用服务器。 1 5 论文的组织结构 论文第2 章介绍了工作流的一些基本概念和传统工作流管理系统的架构, 总结出工作流管理系统的不足,分析了目前轻量级工作流管理系统的研究重点 和将要发展的方向。 第3 章介绍了轻量级工作流管理系统m v c 设计模式总体架构和优点,详细 的阐述了m v c 架构三个核心模块:模型、视图和控制器,运用这些核心模块, 能够提高应用程序的可重要性和可扩展性以及提高开发大型复杂软件系统的效 率。最后介绍了基于m v c 架构涉及的关键技术:s t r u t s 、h i l m m a m 和a j a x 等技 术。本论文就是运用开源的s t r u t s 和h i b e r n a t e 技术和异步,请求的a j a x 技术,解 决了在设计本课题的工作流建模工具、工作流引擎和数据库连接等一些难点, 运用这些关键技术,大大提供系统的开发效率和降低了开发成本。 第4 章进行了a l y f l o w 系统的架构设计分析,a l y f l o w 架构的设计,架构的 核心部分,提供了工作流最基本的功能。与核心的引擎规则和任务指派以及权 限分配组件一起构成工作流的引擎。a l y f l o w 基于该架构实现,还包括易于增加 和裁减提供各种的工作流特性的扩展组件。 第5 章描述了基于m y c 架构的轻量级工作流管理系统a l y f l o w 的详细设计 和实现。a l y f l o w 结合了工作流技术和m v c 技术。我们介绍了a l y f l o w 的运行需 要的组织模型和信息模型;介绍了提供工作流基本功能的轻量级引擎的五大部 分的功能组件,并且描述了多个提供不同工作流管理系统特征的扩展组件的设 计与实现。 第6 章介绍轻量级工作流原型系统a l y f l o w ,描述体系结构、应用实例和应 用效果。 第2 章工作流管理系统技术 第2 章工作流管理系统技术 随着工作流技术的发展,正在被越来越广泛地应用到了各个领域。然而, 由于各种原因,传统的工作流管理系统并不能灵活的和具体的业务( 也就是应用 系统结合) 结合,并且系统的各个功能得不到有效得重用。本章首先介绍工作流 的一些基本概念和传统的工作流管理系统架构,然后总结了传统工作流的不足, 最后分析目前轻量级工作流的研究现状和进展。 2 1 工作流技术 工作流的概念是从生产和业务过程的概念演化而来的,能够在信息技术的 支持下实现人工和计算机活动组成业务过程的自动化或半自动化,成为现代企 业管理与过程控制的一项关键技术。从7 0 年代末办公自动化系统到现在,工作 流管理系统已经发展了相当长的时间。今天,工作流管理系统被应用在各种不 同的环境中,从办公环境以文档为中心的协同处理过程到企业应用集成领域中 应用数据流的自动化处理。目前,很多软件发行商都提供了工作流管理系统的 产品,不同的软件供应商提供的产品分别强调不同的功能特点,用户也采用了 不同的产品来满足不同的需求,然而,缺乏定义的标准,不同的工作流产品无 法放在一起工作。 2 1 1 工作流的基本概念 针对工作流的概念没有统一、明确的定义,不能够适应企业间的交互的问 题,工作流管理联盟w m f c ( w o r k f l 0 wm a n a g e m e n tc o a l i t i o n ) 对工作流术语作了 相关的规定旧,图2 - 1 可以看出工作流的基本感念和它们之间的关系。一 图2 - 1 工作流的基本概念问的联系 1 工作流( w o r k f l o w )就是自动运行的业务过程部分或整体,表现为参与 者对文件、信息或任务按照规程采取行动,并使其在参与者之间传递。简单的 说,工作流就是一系列相互衔接、自动进行的业务活动或任务。 2 工作流管理系统( w o r k f l o wm a n a g e m e n ts y s t e m )一种能定义、创建和 管理工作流执行的系统。它可以通过单个或多个工作流引擎运行,并能存储和 解释过程定义。 3 活动( a c t i v i t y )流程中的个逻辑工作单元,完成某种特定的工作; 本课题的中的活动是用节点( n o d e ) 表示,每个节点就一个逻辑逻辑工作单元, 是逻辑定义。 4 业务流程( b u s i n e s sp r o c e s s )一个或多个以一定规则链接在起,以 实现同一个业务目的的程序或活动或任务组成的集合。一个业务流程可能包含 多个参与者,并且周期长短差异很大,它既可以包含无法由工作流管理系统控 制的手工活动,又可以包含由工作流管理系统的自动化活动( 任务) 。 业务流程是由活动( a c t i v i t y ) 组成的集合,本课题定把业务流程的组成定 义为一个个节点( n o d e ) ,所有业务流程是由节点组成的集合。活动包含自动活 第2 章- 作流管理系统技术 动( 由计算机程序完成) 和人工活动( 由人完成) 。在工作流定义界面,也就是在 用工作流的建模工具进行流程定义的时,我们可以为每个自动活动指定具体的 组件或程序。为每个人工活动指定负责人( 或角色) ,完成业务流程定义后,业务 流程在工作流引擎的驱动下,自动流传。 5 流程定义( p r o c e s sd e f i n i t i o n )业务流程的一种表示形式,它由工作 流管理系统解释和执行。流程定义通常包含组成此流程的活动( 本课题用节点) , 已经它们之间的关联、起始等信息。并且必须要求在定义一个业务流程时候, 必须由开始节点信息,表示一个流程的开始和结束。 6 流程节点实例( p r o c e s si n s t a n c e )具体的业务流程节点实例;个 定义流程的某一次执行,也就是对应一个具体的业务节点流程。 7 参与者( p a r t i c i p a n t ) 流程中一个任务的具体执行者。 8 任务( w o r ki t c m f r a s k ) 在具体业务流程实例等待参与者处理的活动实例。 2 1 2 w f m o 参考模型 工作流管理组织于1 9 9 4 年发布了工作流管理系统参考模型( w o r k f l o w r e f e r e n c em o d e l ) 嘲,详细描述了工作流管理系统的各个组成部分,并且定义了 各个部分的功能以及相互接口,如图2 2 所示。 图2 - 2 工作流参考模型 在这个参考模型中,定义了五个接口:流程定义交换接口、与客户端应用 程序和工作列表处理程序之间的交换接口、软件工具和应用程序的调用接口、 不同工作流管理系统之间的协同接口和管理监视接口。下面对这个五个接口做 一个简要介绍: 1 流程定义交换接口( i n t e r f a c e1 )许多不同厂商提供的工具可以进行工 作流程的分析、建模、描述和归档等工作。这些工具需要识别公共的流程交换 格式,以支持在这些不同的产品之间传送工作流流程定义。接口1 便定义了这 样的交换格式。此外,接口1 还定义了设计环境与运行环境之间交换的规范, 以使不同的工作流建模工具产生的流程定义可以输入到不同的工作流产品的运 行环境中。 2 客户端应用程序和工作列表处理程序之间的交换接口( i n t e r f a c e2 )工 作流管理系统必须提供用户之间交互的通道,以便用户参与到系统运行中。接 口2 主要完成这方面的功能。w f m c 在关于接口2 的规范中定义了工作流管理系 统必须提供的类型、数据结构、a p i 和错误代码,并以c 语言头文件的形式提供。 通过这些功能,用户可以完成与工作流管理系统之间交互的所有任务:登陆系 统、打开自己的工作列表、处理自己的工作任务、将要完成的任务提交给系统、 讲自己的任务传交给其他用户等等。 3 软件工具和应用程序的调用接口( i n t e r f a c e3 )工作流管理系统在运行 过程中有时需要调用外部的应用程序,以完成系统不能完成的工作( 比如,发送 e m a i l 或传真,扫面文件等) ,或者与其他系统集成到一起。此时可以通过接口 3 来完成。接口3 的功能同接口2 的功能大部分时相同的,因此,这两个接口有 融合的趋势。接口3 主要规定了调用外部应用程序的函数规范,经外部应用程 序返回数据的格式。 4 不同工作流管理系统之间的协同接口( i n t e r f a c e4 )在企业级的工作流 管理系统中,流程往往需要跨越多个服务器或系统,比如应用于跨国公司或大 型集团公司的工作流管理系统经常会有这样的需求,此时就需要服务器或系统 之间进行通讯,交换流程控制信息和流程定义等数据,以实现流程跨地域运行。 5 管理和监视接口( i n t e r f a c e5 )此接口提供给用户管理和监控系统的运 行状态、查看系统运行的历史记录的功能。w f m c 在此接口的规范中定义了各种 审计信息的数据格式。 在这个参考模型中,还定义了五个主要的部分:流程定义工具、工作流执 行服务、管理和监控工具、工作流客户端应用和被调用的应用。下面对这个部 第2 章工作流管理系统技术 分做一个简要介绍: 1 流程定义工具( p r o c e s sd e f i n i t i o nt 0 0 1 ) 管理流程定义的工具,它可 以通过可视化方式把复杂的流程定义显示处理并加以操作;流程定义工具同工 作流执行服务交互。 2 工作流执行服务( w o r k f io we x e c u tio ns e r vic e ) 工作流执行服务是工 作流管理系统的核心部件,它的功能包括创建、管理流程定义,创建、管理和 执行流程实例;在执行上述功能的同时,应用程序可能会通过编程接口同工作 流执行服务进行交互;一个工作流执行服务可能包含一个或多个分布式的工作 流管理系统引擎。 3 管理和监控工具( a d m i n i s t r a t i o na n du o n i t o r i n gt o o l s ) 主要指组织 机构、角色等数据的维护管理和流程执行情况的监控:管理监控工具同工作流 执行服务相交互。 4 被调用的应用( i n v o k e d p p li c a t i o n s )被工作流执行服务调用的应用; 调用应用工作流执行服务交互。为了协作完成一个流程实例的执行,不同的工 作流执行服务之间进行交互。 2 2 传统的工作流管理系统的架构 传统的工作流管理系统都是大型、重量级、功能完备和复杂的系统。 2 2 1s h a r k s h a r k 是其中一个最具有代表性的例子“”,下面我们来解说s h a r k 。s h a r k 是一个开放源代码的工作流引擎。它完全根据w f m c 规范实施的,具备良好的扩 展功能。它利用x p d l 来定义流程,同时还包括服务端的用于活动节点执行的w f 眦 工具代理a p i 。这个工具代理a p i 可以服务于j a v a s c r i p t ,3 d b ca c c e s s ,e j b a c c e s s ,p u r ej a v ac l a s s ,c o r b ac a l l s ,e - m i l ,w e h s e r v i c e s 调用。流程的 存储和活动的实例化都是通过一个可以定义的持久层a p i 来完成。s h a r k 使用自 带的一个轻量级的a n h y d r a t ed o d so i rm a p p i n g 作为自己的标准持久层,但是 它同时也支持重量级的j 2 e ee j b 持久层。 2 2 20 f b i z o f b i z 是一个非常著名的开源工作流,提供了一整套的开发基于j a v a 的b 应用程序的组件和工具n 1 1 。包括实体引擎,服务引擎,工作流引擎和规则引擎 等等。 根据研究和分析代码“”,o f b i z 的代码比较复杂。因为对于想用o f b i z 来开 发工作流的开发者来说,它不仅仅是一个纯正工作流引擎,它还是一个开发平 台和工具集,它的各个模块交叉比较多,代码量大。复杂性的另一个表现是o f b i z 的呈现使用了大量自己定义的t a g l i b ,业务逻辑层采用自己独立的页面流传控 制逻辑,持久层是实体引擎来实现,都不是通用的方法。 o f b i z 完整版数据有5 0 0 多张表,l i m i t 版( 自己搭建的用于工作流的版本) 的数据库也有1 7 0 多表,这些表的数量之大,相当难以控制,也清楚表明o f b i z 工作流是大型的、重量级的、功能完备和复杂的系统。这些系统各功能相互间 耦合度较高,导致各功能模块不能拆开分别。 2 2 3 问题小结 现在市场上提供的工作流管理系统都是大型的、重量级的、功能完备的和 复杂的系统。这些系统各功能相互间耦合程度较高,导致各功能模块不能拆开 分别单独使用。而且,还存在一个很严重的缺点,就是难以集成到其它的应用 系统或是应用环境中。综上所述,我们应该寻找建立一个新框架来解决现有工 作流管理系统在软件开发方面遇到的问题。 2 3 轻量级工作流管理系统 针对上面总结的问题,工作流的研究者们提出一个解决方案,从面向软件 开发者的角度出发,构建一个轻量级的工作流架构,软件开发者可以选择各自 需要的工作流功能。 2 3 1c r o - w o r k f l o w m i c r o - w o r k f l o w 是一个基于组件思想和面向对象思想设计的一个可扩展的 第2 章工作流管理系统技术 工作流框架结构。主要面向于使用面向对象技术开发的软件开发者,使得它们 可以方便地裁减、重用工作流的各个部分的功能。该架构的核心由几个提供基 本工作流功能的组件构成,并易于扩展具有各种工作流的特征的功能组件。 m i c r o _ w o r k f l o w 架构设计主要考虑的问题是,在扩展架构,向架构添加新 组件的时候,怎样使得对架构的影响和代码量的修改最小。 2 3 2m e n t o r - i t e m e n t o r l i t e 是一个侧重于研究解决如何无缝集成到业务系统的轻量级工 作流管理系统。它提出在考虑系统的可扩展性的同时,要考虑如何集成原有的 应用系统中的流程控制逻辑。因而,它提出工作流的描述语言必须足够强大, 能建立流程执行时期的脚本,并能影响流程执行的状态。m e t o r l i t e 由内核、 应用程序接口、脚本接口和扩展的工作流组件组成。 2 3 3u l t r a f i o w u l t r a f l o w 是一个轻量级的工作流管理系统“”。它是基于u l t r a 语言和语法 定义流程,侧重于解决流程的事务问题。u l t r a 可以形式化的描述工作流的多个 工作模式,并从数学的角度保证了其正确性和准确性。 2 3 4 基于关系结构的轻量级工作流引擎 在传统的关系结构数据基础上,提出了一个应用关键业务开发的基于关系 结构的轻量级工作流引擎的框架结构“”。此工作流模型由机构模型、信息模型 和控制模型三部分组成。 2 4 本章小结 本章主要介绍了工作流的基本概念,工作流管理联盟提出的工作流参考模 型的五个接口和五个主要部分。对传统的工作流管理系统的体系结构、功能模 块等分析基础上,总结了传统工作流管理系统存在的问题,讨论了相应的解决 方案。最后描述了目前轻量级工作流的研究和应用情况,就几个典型的模型和 系统进行介绍。 第3 章m v o 架构总体设计及关键技术 3 1m v c 工作流管理系统分层的框架流程 在建立架构的开始阶段有很多事情需要分析,摆在设计者面前有许多问题: 如何去建立用户接口? 在哪里处理业务逻辑比较合适? 怎样处理持久化的数据 等,而在这三层架构中,每一层都需要设计者去仔细考虑,本文设计m v c 架构 是围绕如何有效的解决这两种开源架构在三层结构中的适度分布、重用性、扩 展性和安全性的提高来设计。 本文这里设计的基于m v c 架构的轻量级的a l y f l o w 系统,共分为三层:表 示层是s t r u t s ,业务层是j a v a b e a n s ,持久层则用h i b e r n a t e ,总体架构流程图如3 1 所示。 客户墙 衰示逻辑层业务逻辑层 持久层 数据库服务层 应用层 d “。l 4b o 蜜麒1 f :习 i w e b一l ;i r i _ b 0 燃 浏 一霎l。1 = 弋幽 lj 麈 挣 览1 :r * 唧甲i ib 0 实现赛1 器 r ; , 一 - 1 ( v 1 i 竺: 图3 - i a i y f l o w 系统总体架构流程 3 1 1 表示层( 控制层) 一般来讲,一个典型的w e b 应用端应该是表示层,在本次设计中,表示层 采用s t r u t s 所提供的方式。因为使用s t r u t s 这样的框架成熟又稳定。下面是 第3 章m v c 架构总体设计及关键技术 表示层所负责: 1 管理用户的请求,做出相应的响应。 2 提供一个控制器,委派调用业务逻辑和其它上层处理。 3 为显示提供一个模型。 3 1 2 业务层 一个典型w e b 应用的中间部分是业务层( b u s i n e s sl a y e r ) 。从编码的视角 来看,这层是最容易被忽视的一层。而开发者却往往在w e b 层或持久层看到这 些业务处理的代码,这其实是不正确的,因为它导致了程序代码的紧密耦合。 这样给日后的维护和版本升级带来了很多问题。目前针对这一问题的处理有好 几种的开源框架都做得不错。比较受欢迎得框架是s p r i n g ,但我们在开发的过 程中没有用这种框架,用j a v a b e a n s 形式的实体对象来实现业务数据,用 j a v a b e a n s 形式过程域的对象来实现业务逻辑。j a v a b e a n s 把程序中所涉及到包 含业务逻辑和d a o 的o b j e c t s 通过h i b e r n a t ea p i 联系起来。业务层的功能如 下: 1 处理应用程序的业务逻辑和业务校验。 2 在表示和持久层之间增加了一个灵活的机制,使它们不直接联系在一起。 3 通过显示层调用业务层的由业务逻辑实现类定义的方法来访问数据库。 4 管理程序的执行( 表示层到持久层) 。 3 1 3 持久层 典型的w e b 应用的另一个末端是持久层。这里通常是程序最容易失控的地 方。一般来说设计者往往会高估他们自己的框架持久层的挑战性。系统内部的 持久层不但需要大量调试时间,而且还经常缺少功能使之变得难以控制,这是 持久层的通病。还好目前有几个o p , i 开源框架很好的解决了这类问题。尤其是 h i b e r n a t e ,h i b e r n a t e 为j a v a 提供了0 r 持久化机制和查询服务,它还给己经 熟悉s q l 和j d b ca p 上的j a v a 开发者一个学习桥梁,他们学习起来很方便。 h i b e r n a t e 的持久对象是基于p o j o 和j a v ac o l l e c t i o n s 此外,使用h i b e r n a t e 并不妨碍你正在使用的i d e 3 2 m v c 设计思路 因为传统的j a v aw e b 应用程序是采用j s p + s e r v l e t + j a v a b e a n 来实现的 l s , 1 6 这种模式实现了最基本的m v c 分层,使得程序结构分为几层,有负责显示 j s p ,负责流程控制逻辑的s e r v l e t 、负责数据封装的j a v a b e a n s 。但是这种结 构依然存在问题,如j s p 页面中需要使用 符号嵌入很多的j a v a 代码,从 而造成页面的混乱,s e r v l e t 和j a v a b e a n s 负责了大量的跳转和运算工作,耦合 紧密,程序复用度低等。 于是在本文开始先是采用了s t r u t s 框架,它是一个比较完美的m v c 架构实 现。它有一个核心控制类a c t i o n s e r v l e t ,用来针对处理不同的业务。其中一个 a c t i o n 类,负责页面跳转和后台逻辑运算,一个或多个j s p 页面负责数据的输 入和输出显示,还有一个f o r m 类,负责传递a c t i o n 和j s p 中可见的数据。它 可以完成复杂的逻辑,并且j s p 页面中一般情况下不需要出现例如传统的 包围的j a v a 代码了,这样j s p 页面维护起来方便、简洁,实现起来容易。 但是把所有的运算逻辑都放在s t r u t s 的a c t i o n 中,将使得a c t i o n 类的复 用度降低和逻辑混乱,所以在本文的整合策略对w v c 架构进行了重新设计,把 整个w e b 应用程序分为三层,s t r u t s 负责显示层,它调用业务逻辑b o 完成运算 逻辑,业务层再调用持久层来完成数据库的读写操作。但是使用j d b c 连接来读 写数据库,最常见的就是打开数据库连接、使用复杂的s q l 语句进行读写、关 闭连接,获得的数据又需要传换后封装后往外传,这是一个非常繁琐的过程。 所以在这可以采用h i b e r n a t e 框架,它需要我们创建一系列的持久化类,每个 类的属性都可以和一张数据库表的属性一一对应,当然也可以实现关系数据库 的各种表关联的对应。然后开发者操作时,只需要去操作这些持久化类,而不 在关注数据库的具体表,使开发者的软件开发真正面向对象,而不是面向复杂、 混乱的代码。根据开发者使用的反馈来的数据显示,使用h i b e r n a t e 比j d b c 方 式少了6 5 的代码编程数量“”,大大提高了编程工作的效率。 3 3 采用m v c 框架的考虑 此次架构的开发是基于m o d e l - v i e w c o n t r o l l e r 实现的“”

温馨提示

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

评论

0/150

提交评论