(计算机应用技术专业论文)嵌入式轻量级工作流引擎的研究.pdf_第1页
(计算机应用技术专业论文)嵌入式轻量级工作流引擎的研究.pdf_第2页
(计算机应用技术专业论文)嵌入式轻量级工作流引擎的研究.pdf_第3页
(计算机应用技术专业论文)嵌入式轻量级工作流引擎的研究.pdf_第4页
(计算机应用技术专业论文)嵌入式轻量级工作流引擎的研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式轻量级工作流引擎的研究.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 工作流引擎是工作流管理系统的核心,它负责解释工作流模型定义、控制和维护 流程实例的运转。实现一个基于w e b 的嵌入式轻量级工作流引擎是主要的研究目的, 该工作流引擎针对电力行业中的特殊业务流程,强化了具体业务逻辑针对性并在特 定范围内实现灵活性,从而简化其通用性。 确定型的流程结构可以看成是一个图,图中的点表示流程活动,边表示流程流向 控制。直接将点表示成处理任务的角色和用户,可以简化流程活动的定义过程。根 据基于关系结构的流程模型定义,流向控制逻辑实现了顺序控制、选择分支与选择 合并、并行分支与并行合并等流向控制。基于w e b 的“推”方式的消息通知完成确定 型流程及不确定型流程的任务分发机制,消息的锁定与解锁机制使得任务在节点得 到合理的处理,任务的并发控制策略解决了b s 模式下多个用户可能会处理同一任务 的问题。 为适应软件设计组件化、分布化的发展趋势,可利用w e b 服务技术对工作流引擎 进行封装,使得其它的业务子系统可以像调用自身模块一样调用工作流引擎提供的 流程服务,从而使工作流引擎表现出可嵌入性。 利用关系结构定义工作流引擎所需处理的数据。使得这些数据能更好的同系统中 的其他信息融合,并利用成熟的关系数据库技术对这些数据进行有效的管理。工作 流引擎被限定处理水电行业的特殊流程,使得工作流引擎在这个领域功能强大,但 又结构轻巧,易于实现。对工作流引擎中的核心模块:流向控制、消息通知机制做 出了有自身特色的设计,并在a _ m s 系统中运行成功。利用w e b 服务对工作流引擎 进行封装,使得工作流引擎具有嵌入性,从而方便系统的升级及实现企业的i n t e m e t 化。 关键词:轻量级工作流引擎,流向控制,消息通知机制 华中科技大学硕士学位论文 a b s t r a c t w o r k f l o we n g i n ei st h ec o r eo faw o r k :f l o wm a n a g e m e n t s y s t e m i te x p l a i n sw o r k f l o w m o d e l d e f i n i t i o n ,c o n t r o l s a n dm a i n t e n a n c e sh o waw o r k f l o wi n s t a n c ew o r k s t o i m p l e m e n t a r te m b e d d e dl i g h t w e i g h tw o r k f l o w e n g i n eb a s e do nw e b i st h em a i n p u r p o s e a i m i n g a ts p e c i a lb u s i n e s sp r o c e s s e so f p o w e rp l a n t s ,t h ew o r k f l o we n g i n e i sd e s i g n e dt o b e p a r t i c u l a rb u s i n e s si o g i c a ld o m i n a t e d a n df l e x i b l ei ng i v e nd o m a i n , b u tl e s sg e n e r a l c e r t a i np r o c e s ss t r u c t u r ec a d _ b ev i e w e di l l sa g r a p h n o d e si ni ti n d i c a t ea c t i v i t i e sa n d l i n e sd e n o t ed i r e c t i o nc o n t r 0 1 t om a k er o l e sa n du s e r sw h ot a c k l i n gt a s k sa san o d ei n p r o c e s sg r a p hd i r e c t l yc a n l e a dt od e f i n ep r o c e s sa c t i v i t i e se a s i l y b a s e do np r o c e s sm o d e l d e f i n i t i o nd e s c r i b e db yr e l a t i o n a ls t r u c t u r e ,d i r e c t i o nc o n t r o li o 廖c a lr e a l i z e ss e q u e n c e , x o r s p l i ta n dx o r j o i n ,a n d s p l i ta n d a n d j o i nt r a n s i t i o nt y p e s m e s s a g en o t i f i c a t i o n m e c h a n i s mb a s e do nw e b i m p l e m e n t s t a s k sa s s i g n m e n to f c e r t a i na n du n c e r t a i np r o c e s s e s l o c ka n du n l o c km e c h a n i s mm a k e st a s k st h a tc a nb eh a n d l e db yn o d e sr e a s o n a b l y c o n c u r r e n c yc o n t r o lo f t a s k ss o l v e st h er i s kt h a tm o r et h a no n em a nm a yh a n d l et h es a m e t a s ka tt h es a n r l et i m eu n d e rb sp a t t e r n a c c o m m o d a t i n g w i t ht h ed i s t r i b u t e dc o m p o n e n ts o f t w a r ed e s i g nt r e n d , w e bs e r v i c e s c a nb ea d o p t e dt oe n c a p s u l a t ew o r k f l o we n g i n es ot h a ts o n i co t h e rs y s t e m sc a nu s e p r o c e s s s e r v i c e s p r o v i d e db yw o r k f l o we n g i n e a sm o d u l e so ft h e m s e l v e s t h u s ,t h e w o r k f l o we n g i n ec a nb ee m b e d d e di no t h e rs y s t e m r e l a t i o n a ls t r u c t u r ei su s e dt od e f n ed a t ah a n d l e db yw o r k f l o we n g i n e ,s ot h e s ed a t a c a nb ee x c h a n g e dw i t ho 也e rd a t ai nt h es a m es y s t e ms t r a i g h ta n de f f i c i e n t l ym a n a g e db y d b m s w o r k f l o we n g i n ei sr e s t r i c t e dt oh a n d l es p e c i a lp r o c e s s e so fp o w e rp l a n t s ,t h u si t i s p o w e r f u li n t h i sd o m a i nb u tl i g h t w e i g h ta n di m p l e m e n t e de a s i l y 刀砖c o r em o d u l e s d i r e c t i o nc o n t r o la n dm e s s a g en o t i f i c a t i o nm e c h a n i s mw i t hp a r t i c u l a rc h a r a c t e r i s t i c sr u n w e l li na m ss y s t e m e n c a p s u l a t e dw i t hw e bs e r v i c e s ,t h ew o r k f l o we n g i n ec a nb e e m b e d d e di no t h e rs y s t e m s ,s ot h a ta m sc a nb eu p g r a d e da n dp u s h e dt oi n t e r a c te a s i l y k e yw o r d s :l i g h tw e i g h tw o r k f l o we n g i n e ,d i r e c t i o nc o n t r o l ,m e s s a g e n o t i f i c a t i o n m e c h a n i s m i l 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:鲫藓幻 日期:a 口o l 年主月勺日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密d 。在一年解密后适用本授权书。 本论文属于 不保密曰。 ( 请在以上方框内打“”) 学位论文作者签名:当弋多籍芝刃 日期:a o 。邻年多月c 日 指删嗍锄徽 日期:牮年吖月乡珀 华中科技大学硕士学位论文 1 绪论 本章从课题研究的背景,国内外对工作流管理系统的研究概况及实现嵌入式轻量 级工作流引擎的关键技术,课题的主要研究工作三个方面对全文作概要性说明。 1 1 课题背景 工作流是指一个自动化的过程,在这个自动化的过程下,工作流参与者按照所定 义的规则,相互合作完成信息、任务的处理,从而实现某一业务目标【l ,。 八十年代中期,f i l e n e t 、v i e w s t a r 等公司率先开拓了工作流产品市场,成为最早 的一批工作流产品供应商。他们把图像扫描、复合文档、结构化路由( s t r u c t u r e r o u t i n g ) 、实例跟踪、关键字索引以及光盘存储等功能结合在一起,形成了一种全面 支持某些业务流程的集成化的软件( 包) ,这便是早期的工作流管理系统。 进入2 0 世纪9 0 年代,随着计算机与网络技术的迅速发展,特别是在i n t e r n e t 应 用日益普及的情况下,现代企业的信息系统的分布性、异构性和自治性的特征越来 越显著,相应的企业信息资源也分布在异构的计算机环境中,信息源之间的连接表 现出松散耦合的特点。这样的信息系统环境简称h a d 环境( 异构、自治、分布) 。 企业物理位置的分散性和决策制定过程的分散性特征日益明显、对日常业务活动详 细信息的需求日益提高、c l i e n t s e r v e r 体系结构和分布式处理技术( c o r b a 、 w w w 、o l e 、j a 、,a ) 的广泛应用,以上这些情况都说明了这样一个事实集中式信 息处理的时代即将成为过去,取而代之的将是大规模的异构分布式信息处理与应用 执行环境。在这种大规模的分布式环境于高效的运转相互关联的任务,并且对执行 的任务进行密切监控己成为一种发展趋势。在这种技术背景下,工作流管理系统也 由最初的创建无纸办公环境,转而成为同化企业复杂信息环境、实现业务流程自动 执行的必要工具。这样的一个转变,把工作流技术带入了一个崭新的发展阶段,使 得人们从更深的层次、更广的领域上对工作流展开了研究。 目前,在全球范围内,对工作流的技术研究以及相关的产品开发了进入了更为繁 荣的阶段,更多更新的技术被集成进来,文件管理系统、数据库、电子邮件、移动 式计算、i n t e m e t 服务等都已被容纳到工作流管理系统之中。随着计算机技术的发展, 工作流产品的供应商又及时地将新的技术融入工作流中,提高产品性能,使得工作 华中科技大学硕士学位论文 流技术得到不断完善、作为支持企业经营过程重组( b u s i n e s sp r o c e s sr e c n g i n e c r i n g b p r ) ,经营过程自动化( b u s i n e s sp r o c e s sa u t o m a t i o n b p a ) 的一种手段,工作流 技术的研究应用日益受到学术界与企业界的重视、许多大学和研究机构也致力于工 作流技术的进一步发展,开展了一系列研究项目,取得了显著的成果。 互联网的革命重新定义了常规经营方式并改变了人们的工作方法,网络成为员 工的必备工作环境。正如邮政服务和高速公路系统促成了近代商业体系的革命,互 联网推动了在组织内和组织间的经营行为革新。互联网的本质是要求企业以“网络 时代”的方式进行思考和运作。响应速度成为了主要的竞争优势。当企业要求其组 织的应变能力更为流畅,就会强烈的需求一种能使业务流程的自动化的解决方案, 从而能够提高组织效率和反应能力。他们所需要的正是基于w e b 的工作流自动化【2 1 。 本课题来源于清江发电公司的a m s ( a s s e tm a n a g e m e n ts y s t e m ) 系统的研制与 开发,该系统要求在b s 方式下实现对清江发电公司的资产的运行进行维护和管理。 本课题的主要研究方向是实现a m s 系统中业务流程的自动化。 1 2 国内外概况 以下各节说明国内外对工作流技术的研究状况及实现嵌入式轻量级工作流引擎 的关键技术。 1 2 1 国内外研究状况 工作流引擎是整个工作流管理系统的核心,工作流引擎负责解释工作流的定义: 控制流程实例的创建、激活、挂起、终止等状态的变迁;根据变迁点及条件确定流 程的流向;控制流程参与者的登录及注销;主动将任务列表中的相应项目发给相应 的流程参与者;提供外部应用程序所需的数据,并传递给外部应用程序;提供管理、 监控工具数据,并传递给管理、监控工具;引导确定型及不确定型流程【”。在工作流 引擎的设计中,实现引擎的可适应性m 】、灵活性2 1 、可扩展性及能够在分布式异 构环境下维护流程运作是设计的总原则f 1 2 - t 5 。l i a i s i o n 工作流引擎被设计成可以适应 复杂的流程环境、代理指定、自适应流程模型变化及灵活异常处理的通用结构【l ”。 基于d b m s 为流程建模的轻量级工作流管理系统盼8 ,通常利用数据库技术实现工 作流引擎中的部分功能【i “j 。 由于i n t e r n e t 的飞速发展,出现了基于i n t e r a c t 的虚拟企业,虚拟企业将不同地 华中科技大学硕士学位论文 域、不同行业的企业通过i n t e m e t 连接在起从而实现企业间的相互协同工作 2 2 - 2 4 】。 被推向i n t e r n e t 的企业就需要其内部的工作流管理系统也同样i n t e r a c t 化1 2 5 圆】,以满 足与其他企业业务间的交互,各种基于w e b 的工作流管理系统因此应运而生 3 0 - 3 5 】。 在企业业务集成的过程中,面临的最大挑战就是分布式( 企业分布在不同地域) 、 异构( 企业的业务流程以不同的平台实现) 问题,w e b 服务的出现为解决这个问题 提供了很好的手段。利用w e b 服务的特性,分布异构的企业业务流程可以统一以 w c b 服务封装【播3 9 】,w c b 服务结构语言负责描述各个w e b 服务之间的逻辑关系从而 完成流程的建模e 4 2 1 。同样以w e b 服务实现的工作流引擎为用户调用企业业务流程 提供了相应的调用接口 4 3 - 4 7 。在科学计算、基因模型预测过程中,也存在计算步骤 的依赖关系,因而这些领域在不同程度上也引入了工作流管理技术,而这些技术也 是依赖w e b 服务而实现的【4 8 ,4 9 1 。 1 2 2 主要关键技术 以下各节从工作流参考模型、n e t 框架、w i n d o w sd n a 结构、w e b 服务这几个 方面说明研究嵌入式轻量级工作流弓 擎的关键技术。 1 2 2 1 工作流参考模型 由w t m c 所提出的工作流参考模型指出作为一个完整的工作流管理系统应具有 以下的主要功能模块及接口。工作流参考模型如图1 1 所示。 图1 1 工作流参考模型 华中科技大学硕士学位论文 1 工作流定义工具 实现对流程的定义,可以是文字、脚本及可视化方式。流程的定义通过接口1 传 递给流程运行服务模块。接口】负责解释所定义的流程为工作流引擎所能理解的方 式。 2 工作流运行服务 负责实现系统中所有工作流运行实例的运行及管理,可以包括多个同构或异构的 工作流引擎。工作流引擎是整个工作管理系统的核心,它负责为流程实例的运行提 供执行环境。工作流运行服务与其他模块的交互通过接口实现。 3 工作流客户端应用程序 用户和工作流运行服务进行交互的工具,这些交曩通过接口2 实现。在一些工作 流管理系统中,工作流客户端应用程序的主要功能是对工作流引擎交给用户的工作 列表进行处理。 4 被工作流引擎所激活的应用程序 工作流中的某些活动不需要人的干预,工作流引擎可以直接调用外部的应用程序 实现。这些外部的应用程序通过接口3 与工作流引擎进行交互。 5 管理、监控工具 对工作流实例的运行情况进行管理及监控,管理工作流中用户,角色,提供审计 数据等,并通过接口5 与工作流引擎进行交互。 6 工作流应用程序接口 工作流应用程序接日实现工作流引擎与其他模块进行交互,接口1 ,2 ,3 ,5 的 功能已作描述。接口4 的功能是实现异构工作流弓 擎问的交互。 w f m c 对上述的功能模块及应用程序接口的实现已做出了一些标准化的规定,这 些规定正在被更多的厂商所遵守。所开发的工作流管理系统中应尽可能遵守这些规 定,实现参考模型中的模块和接口的功能。工作流引擎是整个工作流管理系统中的 核心组成部分,它负责解释工作流模型并维护流程实例的运转。 1 2 2 2 。n e t 框架 n e t 框架是一种新的应用平台,它简化了在高度分布式h l t e r n e t 环境中的应用程 序开发过程,n e t 框架旨在实现下列目标: 4 华中科技大学硕士学位论文 1 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执 行,还是在本地执行但在i n t e r n e t 上分布,或者是在远程执行的。 2 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 3 提供一个保证代码( 包括由未知的或不完全受信任的第三方仓4 建的代码) 安 全执行的代码执行环境。 4 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 5 使开发人员的经验在面对类型大不相同的应用程序( 如基于w i n d o w s 的应用 程序和基于w e b 的应用程序) 时保持致。 6 按照工业标准生成所有用于传输的数据,以确保基于n e t 框架的代码可与任 何其他代码集成。 n e t 框架具有两个主要组件:公共语言运行库和类库。公共语言运行库是n e t 框架的基础。可以将运行库看作一个在执行时管理代码的代理,它提供核心服务( 如 内存管理、线程管理和远程处t n ) ,而且还强制实施严格的类型安全以及可确保安 全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本 原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托 管代码。n e t 框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用 类型集合,可以使用它开发包含从传统的命令行或图形用户界面( g u i ) 应用程序到 基于a s p n e t 所提供的最新创新的应用程序( 妻d w e b 窗体和x m lw e bs e r v i c e s ) 在 内的应用程序。 a s p n e t 是使开发人员能够使用n e t 框架开发基于w e b 的应用程序的宿主环境。 但是,a s p n e t 不止是一个运行库宿主,它是使用托管代码开发w 曲站点和通过 i n t e m e t 分布的对象的完整结构。w e b 窗体和x m lw e bs e r v i c e s 都将s 和a s p n e t 用 作应用程序的发布机制。在a s p n e t 中,w e b 窗体页面的逻辑代码不再需要与m r r p 文本共享同一个文件,页面的逻辑代码经过编译后在n e t 运行库的支持下运行。与 此相对照,非托管a s p 页始终被写成脚本并以解释的方式执行程序逻辑。因此 a s p n e t 页比非托管a s p 页更快、更实用并且更易于开发,因为它f f l 像其他托管应用 程序一样能与运行库进行交互f 5 m 5 2 1 。 华中科技大学硕士学位论文 1 2 2 3w i n d o w sd n a 结构 w i n d o w f ld n a 是一种用于生成紧耦合分布式w e b 应用程序的体系结构。它的基 本原则是将应用程序逻辑地分为表示、业务逻辑及数据访问和存储三个基本层【5 3 】。 通过对应用程序进行分层,使用基于组件的编程技术,并充分利用n e t 平台与 m i c r o s o f tw i n d o w s 操作系统的功能,开发人员可以生成具有高度可伸缩性和灵活性 的应用程序。 表示层包括到应用程序的脖客户端接口或者瘦客户端接口。胖客户端通过直接使 用m i c r o s o l rw i n 3 2a p i 或间接通过w i n d o w s 窗体,为操作系统盼功能提供完全的 编程接口,并广泛地使用组件。瘦客户端( w e b 浏览器) 正迅速成为许多开发人员 优先选择的接口。利用a s e n e t 和x m lw e bs e r v i c e s ,瘦客户端能够以可视形式为 应用程序提供丰富、灵活和交互的用户界面。瘦客户端还具有在平台之间提供更大 程度的可移植性的优点。 业务逻辑层被分为应用程序服务器与服务,它们可用于支持客户端。可以使 用n e t 框架编写w e b 应用程序以利用c o m + 服务、消息队列( m s m q ) 、目录服 务和安全性服务。应用程序服务反过来可以与数据访问层上的若干个数据服务进行 交互。 数据访问和存储层支持下列数据服务: 1 a d o n e t ,通过使用脚本语言或编程语言提供对数据的简化编程访问。 2 o l ed b ,由m i c r o s o f t 开发的公认的通用数据提供程序。 3 x m l ,用于指定数据结构的标记标准。x m l 是i n t e r n e t 世界提出的标准。 h t m l 集中于信息如何由浏览器呈现和如何显示在屏幕上,丽x m l 的目标是处理数 据结构及其表示形式。 1 2 2 4w 曲服务 w c b 服务是设计面向i n t c r r l c t 的分布式异构环境下的应用程序的基本构造模块。在 i n t e r a c t 环中。需要应用程序的各个模块之间能够以透明的方式相互调用,协调工作, 但各个模块可能是用不同的方式构造,不同的方法实现。这就需要以一种通用的模 式封装各个模块,是各个模块所提供的对外接口可以相互调用,接口间交换的数据 可以相互理解。w e b 服务提供这种统一的封装模式,从而可以利用w e b 服务整合基于 6 华中科技大学硕士学位论文 i n t e r n e t 的应用程序。 w 曲服务有以下特点: 1 w e b 服务使用标准的s o a p ( s i m p l e o b j e c t a c c e s s p r o t o c 0 1 ) 协议封装客户发 送给w 曲服务的消息及w e b 服务返回给客户的消息。 2 w e b 服务以w s d l ( w e bs e r v i c e s d e s c r i p t i o nl a n g u a g e ) 作为自描述语言,从 而使客户端程序可以通过w s d l 与w e b 服务所提供的接口进行交互。 3 w e b 服务通过u d d i ( u n i v e r s a ld i s c o v e r yd e s c r i p t i o na n di n t e g r a t i o n ) 注册, 从而用户可以在i n t e m e t a x 查询到它。 w e b 服务为在不同平台下,以不同语言开发的程序模块间提供了一种标准的交互 方式。虽然c o r b a 也提供类似的功能,但w e b 服务的优势在于使用标准的s o a p 协 议在模块问交换信息,s o a p 本身是用x m l 语言描述的,而且又可以被h t r p 所封装。 x m l 事实上为异构数据的数据提供了标准的交换方式,h t r p 又是标准的i n t e m e t 协 议,这就使得w e b 服务以较低的代价方便的封装程序模块,并把程序推1 句i n t e m e t 。 w e b 服务既可以在内部由单个应用程序使用,也可通过i n t e r n e t 公开以供任何数 量的应用程序使用。由于可以通过标准接口访问,因此w e b 服务使异类系统能够作 为单个计算网络协同运行。 w e b 服务并不追求一般的代码可移植性功能,而是为实现数据和系统的互操作性 提供了一种可行的解决方案。w e b 服务使用基于x m l 的消息处理作为基本的数据通 讯方式,以帮助消除使用不同组件模型、操作系统和编程语言的系统之间存在的差 异。开发人员可以用过去在创建分布式应用程序时使用组件样的方式创建将来自 各种源的w e b 服务组合在起的应用程序。 w e b 服务的核心特征之一是服务的实现与使用之间的高度抽象化。通过将基于 x m l 的消息处理用作创建和访问服务的机制,w e b 服务客户端和w e b 服务提供程序 之间除输入、输出和位置之外无需互相了解其他信息。 w e b 服务正在开创一个分布式应用程序开发的新时代。问题已不再是对象模型之 间的战争或者编程语言竞争了。w e b 服务在一个的全新级别上提供互操作性。作为 i n t e m e t 的下一个革命性的进步,w e b 服务将成为把所有计算设备链接到一起的基本 结构 5 4 - 5 6 】。 华中科技大学硕士学位论文 1 3 课题主要研究工作 本文主要研究基于w e b 的嵌入式轻量级工作流引擎的设计与实现。工作流引擎是 工作流管理系统的核心,它负责解释工作流的模型定义、控制和维护流程实例的运 转。因为工作流引擎是针对电力行业的特殊业务流程,因此设计目标并不是实现一 个所谓的通用性工作流引擎。工作流引擎只为a m s 系统提供流程化业务支持,强化 工作流引擎的具体业务针对性并在特定范围内实现灵活性,而简化通用性。事实上, 所谓的通用性应用到具体业务上往往体现不出其通用性,这也是将工作流引擎设计 成轻量级的初衷。由于网络经济的迅速发展,大型企业都面临着集成企业现有软件 资源并将企业i n t e m e t 化,这就要求所设计的软件组件化、分布化以适应这一发展趋 势。利用w e b 服务技术对工作流引擎进行封装,使得其它的业务子系统可以像调用 自身模块一样调用工作流引擎提供的流程服务,从而使工作流引擎表现出可嵌入性。 本课题的主要研究工作为: 1 对轻量级工作流引擎模型进行研究。 2 给出轻量级工作流引擎的核心功能的详细设计。 3 利用w e b 服务封装工作流引擎的主要接口,这些接口正是工作流引擎可嵌入 性的体现。 华中科技大学硕士学位论文 2 轻量级工作流引擎模型 本章阐述了嵌入式轻量级工作流引擎模型,首先给出了工作流引擎的体系结构 然后说明了什么是轻量级工作流引擎及在w e b 方式下如何体现工作流引擎的嵌入 性。根据对确定型流程的模型定义,说明了工作流引擎的核心功能,最后给出工作 流引擎中的数据对象,以后各章节围绕本章提出的观点展开具体说明。 2 】业务流程的分类 业务流程指一个自动化的过程,在这个自动化的过程下,流程参与者按照所定义 的规则,相互合作完成信息、任务的处理,从而实现某一业务目标。业务流程一般 分为确定型流程和不确定型流程。 确定型流程:指在现实世界中由多个参与者协作完成某一指定工作,参与者往往 是人或机器设备,流程按怎样的规则运行是事先确定的。流程的运行一般需要人为 干预,一个典型的可执行业务流程是审批流程,审批表单往往要经过申请者或审批 者的“查看 决策- 填写 发送处理”后,由申请者或审批者提交表单。工作流引擎 按事先定义好的流程模型将表单转发给下一个审批者。确定型流程的运行也可以不 需要人为干预,例如:在复杂科学计算的流程中,多个相互协作的计算步骤组成一 个虚拟计算流程,而该流程的运行,除用户给出初始计算参数外,往往是不需要人 为干预的。 不确定型流程:指事先不能确定流程的模型,也不能确定有多少用户参与流程。 流程的运行往往要根据实际情况,由流程的参与者决定流程的具体运行方式,不确 定业务流程往往利用消息通知方式维护流程的运行。 2 2 工作流引擎的体系结构 工作流引擎需要支持确定型流程和不确定型流程。对于确定型流程,首先为流程 建立模型。流程模型定义负责将确定型流程翻译成为计算机能够理解的形式。可以 将节点和流向控制作为工作流模型的基本要素,从而认为工作流是一个有向图,节 点就是图中的点,流程控制是连接点的边。工作流模型定义存放在数据表中,由工 作流引擎负责解释工作流模型定义。工作流引擎的任务主要是提供控制流程流向的 9 华中科技大学硕士学位论文 决策机制,也就是如何实现对顺序、选择性分支、选择性合并、并行分发、并行合 并这些流程流向的控制逻辑。 对于不确定型流程,利用消息通知机制支持流程的运作。由于流程的不确定性, 无法事先预测流程的流向及流程步骤,因此不确定型的流程处理需要人为干预,并 且通常是由任务的前一处理者根据实际情况决定谁是任务的下一处理者。消息通知 机制定时扫描任务表,使用基于w e b 的“推”方式通知下一处理者处理任务。 不论是确定型流程还是确定型流程,流程中每个点的执行者都是人。因为用户只 能在系统的控制下被动的工作( 流程的发起者例外) ,所以需要一种通知机制将流程 中的表单实例通知给合适的人进行处理。基于w e b 的“推”方式的消息通知机制负 责推动确定型流程和不确定型流程的运转。消息通知机制如何知道有多少表单实例 需要处理及如何处理这些表单实例? 这就需要一个描述表单实例状态的任务表。 任务是一个待处理的表单实斜的抽象表示,任务需要描述待处理表单实例的实例 i d 、表单类别i d ,流程步骤、目的电厂、当前状态、起始节点、目的处理人、处理 时间、提交人等属性。任务表集合所有任务,消息通知机制通过后台定时扫描逻辑 扫描任务表决定是否将任务交给其目的处理人处理。工作流引擎的体系结构如图2 1 所示。 2 3 嵌入式轻量级工作流弓l 擎的说明 以下各节说明使用轻量级工作流引擎的理由及其特点和优势,对如何实现工作流 引擎的嵌入性也做了说明。 2 3 1 轻量级工作流引擎 轻量级工作流引擎指的是从够用、灵活和低成本的设计原则出发,不追求工作流 引擎的功能的完备和复杂,只是实现其中必不可少的功能和特征。在设计工作流引 擎时主要考虑对其数据模型的定义和解释、活动之间的协调以及任务的分配和控制 等功能提供支持,而不支持诸如提供内建( b u i l t - i n ) 的应用开发工具、对应用数据 的定义和完整性维护、完善的异常处理以及长事务控制等功能。 之所以采用“轻量级”这一特征来刻画工作流弓1 擎主要出于如下考虑: 华中科技大学硕士学位论文 提交任务 图2 1 工作流引擎的体系结构 1 许多现有的工作流产品都在不同程度上提供了对外部工具的集成功能,部分 产品还提供了基于表单的应用逻辑的定制和开发环境,但是外部工具的多样性和复 杂性决定了对外部工具的集成难以做到无缝。而工作流产品内建的开发工具除了与 流行的开发工具不兼容外,其开发功能往往都比较简单。因此对于简单的应用( 例 如公文流转、订单的审批等) ,这些产品是合适的,但是如果是开发涉及具体电厂业 务的应用系统,现有工作流产品所能提供的开发功能是远远不够的。 2 许多针对d b m s 的开发工具提供了极强的应用开发手段,但是这些开发工具 往往不具备对工作流的机制的支持,而现有的工作流产品由于其出发点不同,很难 与其他开发环境有机地融合在一起。因此开发人员往往苦于找不到一套合适的工作 流支撑系统来开发具有工作流特征应用。 3 具有工作流特征的应用的形态千变万化,要想在工作流系统中对不同的应用 ( 包括应用数据) 进行统一的表示往往不尽如人意。利用这种所谓灵活的工作流系 华中科技大学硕士学位论文 统开发出来的应用在实际运作过程中反而表现不灵活。因此,另外一种相反趋势是, 应用的逻辑仍旧由专用的应用开发工具去完成,工作流引擎只管理相关的控制数据, 对应用数据只提供必要的关联手段将其与控制数据联结在一起。 新西兰m a s s c y 大学的t a g g 等学者对工作流弓 擎的描述曾经使用过“轻量级” 这一术语,但其侧重点在于如何构造一个“瘦客户端”。而本课题的侧重点则是设计 一个充分支持工作流特征的小型内核,它可以无缝地嵌入到a m s 系统中。 将工作流弓l 擎中的数据模型全部通过关系结构来表达。控制工作流弓 擎运作的各 种程序逻辑( 即控制模型) 也是通过常规关系数据库管理系统中所提供的存储过程、 包以及触发器等机制来实现。同时,事务的并发控制也通过数据库系统所提供的机 制来实现。 从技术角度来说,使用关系结构来表达工作流引擎中的数据模型可以降低工作流 引擎开发过程中的技术难度和工作量。具体表现在: 。 。 1 与工作流引擎相关的各种控制数据( 包括业务活动的状态数据) 可以存储在 数据库系统中。 2 与此相关的数据的完整性可以由数据库管理系统来维护。 3 利用关系结构可以方便地定义工作流引擎中的各种数据格式和数据结构。 4 可以方便地利用数据库管理系统提供的各种d m l 。语句来操纵工作流引擎所 需的各种数据。 从开发应用系统的角度来看,在同一数据库环境下为开发者提供一个基于关系结 构的工作流引擎,并且如果这个工作流引擎所提供的功能可以方便地嵌入至口应用的 开发环境中,则可以降低开发应用的难度。这是因为: 1 针对具体业务的应用系统通常会采用一个常规的关系数据库系统作为后台 的支撑。 2 应用系统的开发者往往会采用一种他们所熟悉的并且适合此数据库系统的 前端开发工具来开发具体应用,这些前端开发工具一个显著特征是开发功能强大, 但一般不具备工作流机制。因此,采用基于关系结构的工作流引擎很容易与应用的 开发环境做到无缝的集成。 基于关系的轻量级工作流引擎负责解释在关系数据库基础之上定义工作流模型, 华中科技大学硕士学位论文 并根据实际业务逻辑定制逻辑实现,工作流引擎只关注具体业务的流程控制而不考 虑所有情况下的复杂逻辑控制,轻量级的工作流引擎就没有考虑流程中的两个节点 间可以互相反复处理某个表单实例的情况,因为实际需求中也没有这样的要求。这 种专注与某个具体领域的轻量级工作流引擎功能强大而又实现简单,即使用户的需 求发生变化或提出新的需求,工作流弓 擎也能迅速适应,园为在一个领域的业务基 本上是相似的。 2 3 t 2 工作流引擎的嵌入性 工作流引擎要为需要流程化的业务提供了调用接口,工作流引擎提供的调用接口 必须是“透明”的,也就是说这些接1 2 1 能够为在其它不同平台下实现而又需要流程 服务的子系统所调用,从而使工作流引擎表现为具有“嵌入”性。实现嵌入式工作 流引擎的关键在于: 1 工作流引擎与调用它的子系统之间的数据能够相互理解,这就要求两者按照 某个标准来描述数据。 2 对工作流引擎接1 3 的调用可以不受区域的限制,调用可以来自同一个局域 网,也可以来自连接企业各部门的i n t r a n e t ,甚至可以来自与i n t e r n e t 。可以利用w e b 服务来实现工作流引擎的嵌入性。 w e b l 务为实现企业业务流程提供了新的思路,w e b 服务可以理解为能实现一个 或一组指定任务的基- 于i n t e r n e t 的应用程序,而其本身又可以与其他w 曲服务结合而 形成一个能处理企业业务的工作流程。w 曲服务可以用来封装以不同技术( d e c o m , c o r b a ,e j b s ) 实现的组件,使得各个组件间以统一的方式进行交互。w 曲服务与 w 曲服务之间使用基于x m l 的标准s o a p 协议进行通讯,由于s o a p 协议可以为标准 的t c p 、s m t p 协议,特别是h r r p 协议所封装,这就使得用于局部i n t r a n e t 应用程序 可以容易的扩展为i n t e r n e t ) 立用程序。 w e b 服务的出现导致了软件设计方法的变革。传统的软件必须先实现软件功能的 各个模块如数据库操作、身份验证、权限管理等,然后将各个模块有机组合而形成 应用软件。w e b 服务可以将这些应用程序中标准的模块封装并在i r t t e m e t 上发布,用 户只需从i n t e m e t 上购买这些服务就可以实现所需的功能,用户只专注与应用相关的 特定领域的程序开发。既然可以用w e b 服务分割应用软件的各个模块,同样也可以 用w e b 服务分割实现流程中的各个任务。 华中科技大学硕士学位论文 可以像分割应用程序一样利用w e b 服务灵活的对工作流进行分割。可以认为工 作流中的每个节点就是一个w e b 服务,也可以按功能将流程中功能相近的节点划分 为不同的w e b 服务。专用的基于x m l 的流程描述语言负责将表示为w e b 服务的各 个流程节点整合成一个流程模式,并提供各个以w e b 服务表示的流程节点之间依赖 关系的控制机制。也可以利用w e b 服务来封装工作流引擎对外公开的接口,从而使 得工作流引擎具有嵌入性。 w 曲服务使用标准的s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) 协议封装客户发送 给w 曲服务的消息及w e b 服务返回给客户的消息。而s q a p 是一种基于x m l 的、 用于在w e b 上交换结构化和类型信息的简单的轻量协议。由于s o a p 基于x m l ,而 x m l 是事实上描述数据的标准,又为所有的主流应用程序开发平台所支持,所以予 系统在调用由w e b 服务封装的工作流引擎的接口时就可以不必考虑两者的数据是否 能相互理解,只要双方都支持l 。 w e b 服务以w s d l ( w e b s e r v i c e s d e s c r i p t i o i ll a n g u a g e ) 作为自描述语言,从而 使客户端程序可以通过w s d l 与w e b 服务所提供的接口进行交互。w s d l ( w e b 服 务描述语言) 利用的x m l 语法编写的x m l 文档,它定义w e b 服务可以理解的消息 格式、w e b 服务的行为及指示客户端如何与w e b 服务进行交互。除定义消息格式和 消息处理模式以外,w s d l 还可以根据需要包含与每个w e b 服务入口点关联的地址, 该地址的格式将适合用于访问该服务的协议,例如,对于h t t p 为u r l 。w e b 服务 的客户程序只要通过w 曲服务注册机构u d d i ( u n i v e r s a ld i s c o v e r yd e s c r i p t i o na n d i n t e g r a t i o n ) 在i n t e r n e t 上查询到该w e b 服务并申请该服务,w e b 服务的w s d l 就会 自动的下载到客户程序端,并以友好的形式供客户端程序调用。n e t 平台会根据 w s d l 生成一个w e b 服务代理类,从而使客户端程序可以像调用一个实例类的方法 一样方便的调用w e b 服务提供的接口。利用w e b 服务的这些特性,使得工作流引擎 在任意范围的网络环境中被需要流程服务的子系统所调用,可以认为工作流引擎被 无缝的嵌入到各个子系统成为其的一个功能模块。 2 4 确定型流程模型定义 确定型流程模型定义负责将流程结构转换为计算机所能理解的形式表达,工作流 引擎根据流程模型定义解释工作流实例,通过调用流向控制逻辑及消息通知机制, 工作流引擎保证表示流程中待处理表单实例的任务按照事先定义好的模型运行。 1 4 华中科技大学硕士学位论文 2 4 1 节点类型 每个流程由若干个节点组成,有的节点可能针对具体的业务环节,即在前台( 后 台) 对应实际的应用逻辑,有的节点

温馨提示

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

评论

0/150

提交评论