(计算机应用技术专业论文)基于移动agent的事务工作流研究.pdf_第1页
(计算机应用技术专业论文)基于移动agent的事务工作流研究.pdf_第2页
(计算机应用技术专业论文)基于移动agent的事务工作流研究.pdf_第3页
(计算机应用技术专业论文)基于移动agent的事务工作流研究.pdf_第4页
(计算机应用技术专业论文)基于移动agent的事务工作流研究.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

摘要 传统的工作流管理系统多是基于集中式的c s 结构,工作流引擎驻留在个或者多个服 务器上,负责调度所有物理上分布的各个活动的执行,实时连接和频繁交互会造成网络拥塞 和服务器端的资源瓶颈、大量资源的浪费、处理效率低,系统的智能性、协同能力和适应性 不足。另一方面,当前的1 】f ) l s s 对业务流程级事务属性的支持不足,系统的一致性和可靠性 得不到保障影响了工作流系统进一步普及与实用化。 本论文从移动代理技术在工作流领域的应用和工作流事务处理研究入手,提出一种基于 移动a g e n t 的工作流建模、运行和监控及恢复系统模型,在此基础上给出基于移动a g e n t 技术的具有事务处理能力的工作流原型系统的体系结构,并针对工作流管理系统的特点对其 进行详细设计。之后用j a v a 语言作为开发语言,以a g l e tw o r k b e n c h 作为移动代理的迁移和 运行平台,将工作流引擎的功能封装在移动a g e n t 内,按照流程定义,发送到任务所在节点 与本地交互完成任务并在任务完成后迁移到下一节点继续执行,以此推进业务流程;当任务 执行失败时调用事务处理算法使系统恢复正常,从而体现了系统的优势。并针对系统的不 足提出了进一步的改进和扩充方法。 关键词:工作流移动a g e n t 分布式计算事务恢复 泰南 掌礓论文 a b s t r a c t m o s tt r a d i t i o n a lw o r k f l o wm a n a g e m e n ts y s t e m sa r eb a s e do nc ss t r u c t u r e ,i nt h i sm e a n s , w o r k f l o we n g i n e sa r ei n s t a l l e di nas e r v e ro rag r o u po fs e r v e r sa td i f f e r e n ts i t ep h y s i c a l t y , w h i c h a r e r e s p o n s i b l e f o rc o n t r o lt h ea e t i v i t y s c h e d u l i n gw i t h i n o p e r a t i o n a lp r o c e s s r e a lt i m e c o n n e c t i o na n df r e q u e n ti n t e r a c t i o nb e t w e e nt h e mw i l ll e a dt on e t w o r kc o n g e s t i o na n dr e s o u r c e s w a s t e o nt h eo t h e rh a n d ,t h ew f m s sa tp r e s e n tl a c ks u p p o r tf o rw o r k f l o wt r a n s a c t i o n s ,h e n c e c o n s i s t e n c ya n dr e l i a b i l i t yc a r l tb eg u a r a n t e e d ,w h i c hp r e v e n tt h e mf r o mf u r t h e ra n dp o p u l a r u s a g e - b e g i n n i n gw i t hr e s e a r c h e so i lm o b i l ea g e n tt e c h n o l o g yi nw o r k f l o w a n d p r o b l e m si nw o r k f l o w t r a n s a c t i o n s ,t h i s t h e s i sf i r s ti n t r o d u c e sap r o t o t y p eo fw o r k f l o wm a n a g e m e n ts y s t e mb a s e do f t m o b i l ea g e n t ,b yw h i c ho n ec a nm o d e l ,e n a c t , m o n i t o ra n dr e c o v e raw o r k f l o ww h e nf a i l u r e o c c h r s 。t h e nd e s c r i b e st h eo v e r a l la r c h i t e c t u r eo ft h ep r o t o t y p es y s t e ma n dg i v e sad e t a i l e d d e s i g n i n gt h r o u g l 】a n a l y z i n gt h es y s t e mr e q u i r e m e n ta n dt h e f e a t u r e so fl v i ab yt a k i n gi n t o a c c o u n to ft r a n s a c t i o nm a n a g e m e n t n e x t ,b yu s i n gj a v aa st h ep r o g r a ml a n g u a g ea n da g l e t w o r k b e n c ha st h em i g r a t i o na n di m p l e m e n tp l a t f o r mf o rm o b i l ea g e n t s ,d e s i g n st h ew o r k f l o w e n g i n ea sa nm o b i l ea g e n td i s p a t c h e dt on o d e st a s k se x i s t si n a n di n t e r a c t sw i t hl o c a ln o d e st o p e r f o r mt a s k sa n dg o e so n w h e nat a s kf a i l s i tc a nc a l lt h et r a n s a c t i o nm a n a g ec o m p o n e n tt o r e c o v e rt h es y s 把m t h u ss h o w st h es u p e r i o r i t yo ft h es y s t e m w ee n dt h ew h o mt h e s i sw j t hs o i l t e p r o p o s a l s t oi m p r o v et h es y s t e m k e y w o r d s :w o r k f l o w , m o b i l ea g e n t ,d i s t r i b u t e dc o m p u t i n g ,t r a n s a c t i o n ,r e c o v e r y - i i , 末南 掌硕论x 东南大学学位论文独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我 所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研 究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了i 9 意。 研究生签名:! l 蒸立1 日期:丝! ! :! j 关于论文使用授权的说明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括 刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 签名: 塞至兰l 导师签名:羔【兰 日期:控! 生! 土! 1 1 论文背景 第一章引言 工作流技术实现业务流程的全部或部分自动化是实现企业业务过程建模、仿真、管理 与集成以及过程优化,从而最终实现业务过程自动化的核心技术“。采用工作流技术作为核 心开发的各种业务管理系统与普通的应用软件的最大差别是他们具有高度的灵活性。 当前的肝m s ( w o r k f l o wm a n a g e m e n ts y s t e m ) 对业务流程级事务属性的支持不足,目前 尚没有一种工作流产品或原型系统能够在过程执行的可靠性与一致性方面提供达到与关系 数据库管理系统同水平的功能。对系统运行中出现的并发访问和异常错误缺乏正确和可靠的 支持“,这是影响工作流系统进一步普及与实用化的一个重要原因。 工作流的事务不同于传统事务,因此,现有数据库管理系统的事务管理功能并不能对工 作流中的事务进行有效的管理。各种高级事务模型虽然通过放松隔离性和原子性要求对传统 事务进行扩充。但是仍然不能满足工作流事务管理的需要。面对大量潜在的工作流应用,研 究出有效的工作流事务管理机制成为当务之急。 另一方面,传统的工作流管理系统多是基于集中式的c t s 模型的。工作流引擎驻留在一 个或者多个服务器上,负责调度所有物理上分布的各个活动并监控整个工作流的运行。这种 c s 结构的弊端在于实时连接和频繁交互会造成网络拥塞和服务器端的资源瓶颈,而且有单 点失败的可能性p 】。近年来出现的移动a g e n t 技术作为一种分布式计算方法具有跨平台持续 运行和自我控制、移动性以及协作性和智能性的能力1 4 j ,因此用移动代理技术建立具有事务 管理功能的工组流管理系统具有很好的理论和应用价值。 1 2 当前国内外的研究现状 目前,国内外众多的研究机构越来越关注工作流技术,国外有代表性的商用工作流管理 系统有i b mm q s e r i e sw o r k f l o w l 4 j 、t e a m w a r e 、v i s u a lw o r k f l o w 、i n t e m p o 、a c t i o nm e t r o 等: 国内方面的研究机构主要包括清华大学自动化系等。各软件公司还未开发出拥有自主知识产 权的严格意义上的工作流产品,它们大都是采用工作流思想对不同应用领域进行的集成。 在移动a g e n t 与工作流的结合方面,一个比较成型的系统是由d a r t r a o u t h 大学研究开发 的一个基于移动a g e n t 的工作流管理系统原型d a r t f l o w ”。d a r t f l o w 选用该大学开 发的a g e n t t c l 系统作为a g e n t 支持平台,但由于a g e n t t c l 系统本身的缺陷,使得原型系统 很难描述复杂的业务过程,活动仅能顺序执行,不具备并行处理的能力,且只能在同构环境 下运行,不具有跨平台的能力。 在工作流的恢复处理方面,现有系统也存在诸多不足: 1 美国佐治亚大学研制的m e t o r 2 系统。考虑了分布式环境中的各种故障可能对, t m s 造成的不良影响,但是对具有多级事务特性的工作流任务处理方面的研究存在明显不足。 2 i b m 公司的的f l o w m a r k 系统“。引入补偿方法解决失败处理问题,但是利用集中式存 储结构,造成系统瓶颈。 3 欧洲委员会e s p r i t 项目的w i d e 系统”1 。工作流的错误处理基于规则,对任务的要求 比较严格。在事务失败后,只用一种补偿的处理方法,没有根据事务特点对不同性质的事务 用不同的事务失败处理方法。 4 土耳其中东大学开发的m e t u f l o w 系统“。使用多级事务串行化的设计方法。要求工 作流在资源访问上满足可串行化。这样就限制了工作流的效率。系统对工作流的恢复机制没 有提出建设性方法。 为了处理长时间执行的事务( l o n gl a s tt r a n s a c t i o n ) ,人们首先在数据库事务模型的 基础上提出了许多高级事务模型( a d v a n c e dt r a n s a c t i o nm o d e l ) t gj i 包括嵌套事务模型、 s a g a s “”、分支汇合事务“、柔性事务模型、a c r a ”“等。高级事务模型通常把一系列的操 作分组成为层次化的结构,并且放宽了传统事务模型对a c i d 特性的要求,以便适应不同性 质的实际问题。这些模型提供了定义良好的错误语义来处理并发和恢复。高级事务模型利用 传统事务来构建基本功能,作为构建高级事务的基本模块,由于以数据为中心,在解决长事 务方面仍有很多局限性。工作流的事务管理相对复杂,设计的对象类型复杂,不仅是数据, 还包括应用程序、工具、人员等,因此不管是将工作流绑定到一种事务模型,还是绑定到几 种事务模型的结合体,都将限制工作流优点的发挥。 c o n t r a c t s 模型提出了自己的高级数据模型和高级并发控制机制。,已经具备了一定的 工作流描述能力,而且从解决问题的思路看,跳出了原有的高级事务模型的局限。不足之处 是任务的执行必须严格满足a c i d 要求。 a m i ts h e t h 在对高级事务模型进行研究的基础上则提出了事务工作流( t r a n s a c t i o n a l w o r k f l o w ) “”的概念,它完全从工作流的角度出发提出了任务的结构化定义及基于任务间依 赖关系的工作流定义,还对系统的实现方法提出了有意义的见解。 1 3 论文的研究目标 本论文旨在研究如何实现高级事务处理技术与工作流管理技术的结合,用定义良好的模 型语义与恢复机制来提高工作流系统的正确性和可靠性。 本论文将利用移动代理技术。在现有a g e n t 平台之上,设计一个工作流建立和运行的原 型系统系统包括建模和执行功能;针对工作流中事务的特点,结合现有数据库技术和高级 事务模型理论研究解决工作流中事务处理的方法,并在工作流平台中实施。 1 4 论文的组织结构 本篇论文由三个部分组成:第一部分介绍了有关工作流、移动a g e n t 以及事务管理的概 念和发展状况;第二部分讨论了基于移动代理的工作流管理系统的建立以及事务管理的方 法提出了保证事务特性的工作流定义方式以及针对工作流不同失败处理模式的恢复方法: 第三部分描述了实现的细节。具体如下: 第一章引言 主要介绍了论文的研究背景、研究目标等。 第二章基本概念介绍 主要介绍原型系统的相关概念,包括工作流的概念以及体系结构、移动a g e m 的概 念、事务概念及活动失败处理模式等。 第三章用移动a g e n t 实现的具有事务特性的工作流管理系统 主要介绍了如何用移动a g e n t 技术建立工作流,如何在定义中融入事务因素,如何 设计事务管理器,实现在工作流执行期间对活动执行失败情况进行处理。 第四章原型系统的设计和实现 主要介绍与原型系统实现相关的环境、语言、开发平台,并给出各功能的实现方法 - 2 及测试结果。 第五章工作流事务管理的进一步研究及展望 主要介绍对原型系统进一步完善的设想以及对工作流发展的展望 参考文献 致谢 3 2 1 工作流技术概述 第二章基本概念介绍 工作流( w o r k f l o w ) 的概念源于生产组织和办公自动化领域,它是针对日常工作中具有 固定程序的活动而提出的一个概念,目的是通过将工作分解成定义良好的任务、角色,按照 一定的规则和过程来执行这些任务并对他们进行监控,达到提高办事效率、降低生产成本、 提高企业生产经营管理水平和企业竞争力的目的。在计算机网络技术和分布式数据库技术迅 速发展、多机协同工作技术逐渐成熟的基础上,工作流技术为更好的实现企业目标提供了先 进的手段。已经成功运用到图书馆,医院,保险公司,银行,商业等行业,以及制造行业等 诸多领域。 在企业应用中,工作流从更高的层次上提供了实现各种资源的集成,从而使得企业能够 实现业务过程集成、业务过程自动化与业务流程管理。在工作流概念下实现业务过程集成化 是通过定义不同任务之间相互关系的工作流模型( 也成为过程模型) 来实现的。工作流中的 基本元素是任务( 也称为活动) 和任务之间的连接弧。连接弧反映了对业务处理过程的控制 逻辑和数据流动逻辑,定义了活动之间的连接关系和执行顺序。 2 1 1 工作流相关概念 工作流软件产品由8 0 年代的萌芽到9 0 年代的繁荣,它的发展可以总结为3 个阶段”“: 第1 阶段,主要为应用于某些特定领域的、相对独立的应用系统比如图像、文档管理系统: 第2 阶段,主要表现为具有底层的通信基础结构、能够实现任务协作的应用系统,比如具有 消息传递功能的工作流系统;第3 阶段,具有图形用户界面的过程定义工具、用户定义与任 务执行完全分离的工作流系统。经历了这3 个阶段的发展,工作流产品基本上确定了它在计 算机应用软件市场上的独立位置。 1 9 9 3 年工作流管理联盟( w o r k f l o wm a n a g e m e n tc o a l i t i o n ,w f m c ) 的成立标志着工作 流技术进入相对成熟的阶段。为了实现不同的工作流产品之间的互操作,它对相关概念做出 了定义: 1 工作流( w o r k f l o w ) :工作流是一类能够完全或者部分自动执行的业务过程,根据一系 列过程规则,文档、信息或任务能够在不同的执行者之间传递、执行。工作流通常用于过程 的自动化,通过将文档、信息或任务按照预先定义好的规则和流程在参与者之间进行传递, 从而帮助用户实现或完成整个业务目标。它可以有效地把人、信息和应用工具合理地组织在 一起,提高软件的重用率,发挥系统的最大效能,并且具有流程优化和过程重组的能力。一 个工作流应该反映如下问题:业务过程是什么( 由哪些活动、任务组成,也就是结构上的定 义) 、怎么做( 活动间的执行条件、规则及交互的信息,以及控制流与信息流的定义) 、由谁 来做( 人或者计算机应用程序,也就是组织角色的定义) 、做的怎么样( 通过工作流系统对 执行过程进行监控) 。 2 业务流程( b u s i n e s sp r o c e s s ) :就是活动的集合。在功能确定的组织结构中,能够实 现业务目标和策略的相互连接的过程和活动集。例如银行业务过程。业务过程与工作流的区 别在于工作流具有更深一层的特定含义一一专指基于信息技术规划、运作、管理的业务过程。 3 过程定义( p r o c e s sd e f i n i t i o n ) :业务流程的形式化描述,用来支持系统建模和运行过 程的自动化。过程可分解为一系列子过程和活动,定义中主要包括描述过程起始、终止的活 t 动关系网络以及一些关于个体行为的信息,如组织成员、与l t 相关的应用和数据等。 4 活动( a c t i v i t y ) :实现过程逻辑步骤的工作任务的描述,一般分为手工操作和自动处 理两类。活动是过程执行中可被工作流引擎调度的最小工作单元,可以自动执行或者在用户 的参与下执行。活动可处于以下状态之一:未开始( i n a c t i v e ) 、运行中( a c t i v e ) 、挂起 ( s u s p e n d e d ) 、结束( c o m p l e t e d ) 。 5 条件( c o n d i t i o n s ) :定义事件发生的环境。有三类条件:变迁条件( t r a n s i t i o nc o n d i t i o n ) , 开始条件( s t a r tc o n d i t i o n ) ,退出条件( a b o r tc o n d i t i o n ) 。 6 角色( r o l e ) :定义工作流参与者的逻辑抽象意义。 7 过程活动实例( p r o c e s s a c t i v t yi n s t a n c e s ) :实例化的,处于运行过程中的一个过程或 活动。每个实例代表一个能独立控制执行、具有内部状态的线程,可被外界通过标识进行存 取。 8 工作流引擎( w o r k f l o we n g i n e ) 是一个为工作流实例提供执行环境的软件服务。它 主要提供以下功能:解释定义;控制过程实例的生成、激活、挂起、终止等;控制过程活动 期间的转换,包括串行或并行的操作、工作流相关数据的解释等;维护工作流控制数据和工 作流相关数据,在应用或用户间传递工作流相关数据;提供控制、管理和监督的功能。 9 工作流管理系统( w o r k f l o wm a n a g e m e n ts y s t e m ) : 是一个通过软件来定义、创建和 管理工作流的系统,它运行在一个或多个工作流引擎上,这些引擎解释对过程的定义,与工 作流参与者( 包括人或者软件) 相互作用,并根据需要调用其他的i t 工具或应用。 2 1 2 工作流管理系统的体系结构 图1 工作流参考模型 w f m c 给出的工作流系统结构“8 1 如图1 所示,在最高层上w f m s 应能提供以下三个方面的功 5 能支持: 1 建模功能:对工作流过程及其组成活动定义和建模,完成业务过程的计算机化的定义: 2 运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度和控 制; 3 运行交互功能:指在工作流运行中,w f m s 与用户o i i , 务流程的参与者或控制者) 及外部应用程序工具交互的功能。 工作流系统由软件构件和数据构成。软件构件完成工作流管理系统不同组成部分功能的 实现;工作流中的数据有三种: 1 工作流控制数据:工作流执行服务通过内部的工作流控制数据来辨别每个过程或活动 实例的状态。这些数据由工作流执行服务控制。用户、应用程序或其他的工作流执行服务不 能对其直接进行读写操作: 2 工作流相关数据:工作流管理系统通过工作流相关数据来确定过程实例状态转换的条 件,并选择下一个将执行的活动。这些数据可以被工作流应用程序访问并修改; 3 工作流应用数据:由应用程序操纵的数据,是企业完成具体的业务功能所需要的数据, 工作流管理系统无法也不需要对他们进行访问。 2 1 3 实施工作流管理系统的优点 工作流管理系统的应用将给企业带来很大的好处。首先,采用工作流管理将使企业改变 传统的按照功能来配置人员的组织结构,变成根据企业要求实现的主要业务流程配置组织结 构,缩短业务过程的处理时间,改善对市场的响应能力。组织结构的改变将大大减少在企业 内部的物料、信息的传递时间。由于信息技术的发展和日趋激烈的商业竞争,人们不再满足 于独立、零散的办公自动化和计算机应用,而是需耍综合的、集成化的解决方案l 。作为一 种对常规性事务进行管理、集成的技术,w f m s 的出现是必然的。它可以带来以下效益: 1 提高企业管理的规范化程度; 2 改进和优化业务流程,减少业务过程的处理时间,提高业务工作效率; 3 实现更好的业务过程控制,提高顾客服务质量: 4 提高业务流程的柔性7 1 : 5 降低管理成本。 2 1 4 工作流的应用领域 工作流的应用领域非常广泛:电子政务,办公自动化,电子商务中的客户关系管理,供 应链管理,制造领域的并行工程、敏捷制造、虚拟制造、e r p 等,企业中的信息化应用、 企业流程再造( b p r ) 、企业应用集成( e a l ) 等。 企业中遗产系统的存在,导致了信息孤岛的出现工作流管理系统可以按照流程的定义, 在适当的时间激活相应的应用系统,传递给应用系统相应的参数,获取应用系统的处理结果, 把其传递到下一应用,从而实现应用系统的集成。 2 1 5 发展动向 在工作流管理系统开发的最初阶段缺乏统一的普遍遵循的标准并且限于当时软件技术的 水平,不同公司的工作流管理系统采用的技术和接口不尽相同,存在的问题是: 1 标准化程度差,不同厂家的产品彼此不兼容: 2 系统的鲁棒性差,系统的安全性不足,对系统运行中出现的并发访问和异常错误缺乏 - 6 - 束南太攀砸论文 正确和可靠的支持。在可靠性和一致性方面未达到与关系数据库管理系统同等水平。而这样 的能力对于实际应用是很重要的: 3 系统的实用性差,性链不能够满足处理大业务量韵需求,对于分布式引擎,缺乏底层 通信结构的支持。 针对目前存在的问题,现在的研究动向有:分布式工作流引擎的实施方法、融入事务管 理的概念处理异常和错误恢复及并发问题、应用的集成方法等。 2 2 工作流事务概念 事务已经成为设计与编制高可靠性软件系统的重要概念,事务的概念来源于数据库领 域。为了对工作流的事务进行有效的管理,人们又提出了各种高级事务模型及其扩展以及事 务工作流的概念。 传统事务是一组按顺序执行的操作单位,它将数据库从某种一致性状态转移到下一种一 致性状态。与此类似,工作流事务是一组工作流任务的操作单位,它将业务处理从某种一致 性状态转换到下一种一致性状态。工作流任务本身也是工作流事务。 2 2 1 事务概念 数据库中事务管理【l3 】有两方面的内容:恢复和并发控制。具体来说,是指系统在执行 的过程中会出现故障,因此会使系统处于一个未知的状态:多个程序并发执行时,相互交错 干扰,对共享数据访问,会造成不正确的结果。 在关系数据库管理系统中,为了保证数据完整性,对数据库的操作要通过事务进行。简 单的说,事务就是一组操作,它们要么全做,要么全部不做,不能存在中间状态。也就是说 事务是被原子性执行的操作集合,事务具有a c i d 特性: 1 原子性( a t o m i c ) :所有关于一个事务的操作必须当成一个原子单元,即或者所有的 操作都成功执行,或者一个也没有执行,不存在中间状态。如对数据库中数据所做的一系列 操作必须全部完成后才能提交,否则所做的那部分操作必须全部取消( 滚回) 。 2 一致性( c o n s i s t e n c y ) :事务对数据库的作用应使数据库从一个一致状态转变到另一 个一致状态。数据库中的数据满足完整性约束。 3 隔离性( i s o l a t i o n ) :在事务状态下执行的任何操作如同它在一个单用户环境下执行 那样,不受其它并行操作的任何影响。 4 持久性( d u r a b i l i t y r ) :事务提交后,对数据的操作结果不会丢失,而是持久保留,即 使数据库因故障而受到破坏,d b m s 也应该能够恢复。 事务的本质特征是其原子性,它是逻辑上的原子单位( 由一段相对完整的任务的操作序 列构成) ,是并发控制的原子单位( 各事务的运行相互不干扰) ,而且是恢复的原子单位( 一 个事务的运行或者成功、或者不对数据库产生任何影响) 。 事务通常是由高级数据操纵语言或编程语言书写的用户程序的实现,并用形如b e g i n t r a n s a c t i o n 和e n dt r a n s a c t i o n 的语句或函数调用来界定。在事务开始与事务结束之间执 行的全体操作就构成一个事务。 : 作流也可以看成是一系列有序操作的集合,但是操作的对象具有更广的内涵,不再限 于数据库中的数据。因此,工作流也同样具有事务特性。比如工作流中的某一活动实例正在 对一用户的应用数据进行写操作,此时应该禁止其他活动实例对该数据进行读写操作;当一 个工作流过程实例在执行到某个活动时被取消,那么这个话动之前已经提交的活动的影响也 应该尽量取消,恢复到提交前的状态。工作流中引入事务的概念比数据库中的事务概念复杂 7 东南大学砸诧i 因为工作流具有更复杂的操作、更广的分布性以及更多的异构性1 1 9 1 。 工作流的活动具有运行时间氏、任务协同并发的特性,因此严格的a c i d 准则不再适用, 主要区别在于: 原子性:是依赖于应用的原子性。与传统事务的区别在于,当失败发生时,并不回滚所 有的工作,而是有选择的回滚部分工作到工作流的最近的一致状态。也就是放松了的原子性。 它放松了传统事务中事务要么全做要么全不做的限制。工作流的一个基本任务是一个原子执 行单元,或者访问共同数据的任务作为一个原子执行单元,以保证数据的完整性约束。 隔离性:工作流中的任务具有时间长、协同工作和并发执行的特点,而传统事务中保证 事务特性的可串行化调度策略限制了这些特点,因此要放宽隔离性,用基于语义的调度,允 许子任务的提交来提高并发度。 持久性:事务提交后对系统的影响是永久的,但是这种影响可以通过补偿活动取消。 工作流在运行中会出现各种故障,这些故障大体上分为三类:1 基本结构故障。这类故 障通常是硬件原因,如计算机系统故障、网络故障等。2 工作流平台故障。往往是设计的错 误和不当。3 任务执行故障。这类故障是工作流任务执行过程中发生的故障,比如资源不足, 任务无法完成等。 对于第l 、2 类故障,需要底层硬件的支持和工作流平台的正确设计,本论文不考虑对 他们的处理方式。第3 类故障需要应用层的语义依赖处理属于逻辑故障,本论文将要解决 的就是这类故障发生后的处理。在故障发生后,我们希望保证系统的完整性和一致性。 工作流完整性控制有三类:1 语义完整性:语义反映了工作流的语义完整性2 并发控制: 资源共享是工作流的一个突出的特点。在一个系统中可以有多个工作流程的多个实例并发执 行,他们中间的某些事务( 包括复合事务) 对资源可能同时访问,因此数据可能产生不一致: 不可重读、脏数据、写值不可再现等。3 工作漉恢复:工作流系统遭到破坏后,恢复到某个 一致状态。 本论文针对工作流语义完整性和工作流失败之后的恢复提出解决方案。 2 2 2 工作流的失败处理模式 工作流出现错误后,如果是可预测错误,则调用已有的相应错误处理方法;如果是不可 预测错误,则调用以下介绍的方法,如果是不可自动处理的,则通知人来手工处理。 在工作流执行的过程中。活动执行失败时,为了保持工作流的正确性。仅仅取消当前活 动的影响是不够的,往往要取消相关的一些活动的影响。如果将整个工作流看作一个事务来 处理,那么活动执行失败的时候,需要取消所有活动的影响,然后从工作流的开始重新执行 这在现实中往往是行不通的,因为工作流事务不同于传统事务,不是瞬间完成的,而是持续 时间很长,可能是几天甚至几个月。所以,工作流中事务的处理方式必须兼顾事务特性和应 用特性。可以利用活动的失败处理模式来对具有不同失败处理模式的活动分别处理。在介绍 失败处理方法之前,先来介绍保护点概念,它是用于放松事务原子性的一个重要概念。 保护点( s a f e p o i m ) 概念的引入是为了实现工作流的灵活、部分退出,也就是放松事务 原子性的要求。这里保护点的概念不同于传统事务模型中保护点的概念。工作流中的保护点 ”是这样一个概念:它是系统的一个一致性状态,当工作流出现错误需要退出或者重新执 行,或者需要撤销活动的某些影响时,只需要向后卷回到保护点,然后从保护点开始重新执 行,这样就避免了整个工作流的卷回和重新执行口1 i 。如图2 ,当事务n 6 失败时( 用黑色圆表 示) ,只需要向后卷回到保护点( s p ,用灰色圆表示) ,然后从s p 开始执行。这样,它的卷回 事务集为 n 4 ,n 5 ,否则的化,如果没有保护点的存在就需要对已经提交的事务全部进行 卷回操作,假如n 8 已经提交,那么卷回事务集就是 n 4 ,n 5 ,n 3 ,n 8 ,n 7 ,n 2 ,n l ,。 - 8 图2 “保护点”示意图 在现有工作流产品和工作流原型系统中,设计与开发人员主要是集中精力建立正常情况 下的模型、实例运行及监控“”等,重于实现系统核心功能。如任务分派、模型导航、数据 传递等。在实际应用中,由于工作流系统外界环境复杂多变工作流实例在执行过程中必然 会出现各种异常情况,由此导致工作流执行阶段的数据出现错误,这些数据覆盖了从工作流 控制数据、工作流相关数据到应用数据的全部工作流运行时的数据空间。文献口”提出了针 对这三类数据的不同的数据保护策略,但是那里使用的对工作流并发访问的加锁协议限制 结点事件申请锁必须一次性全部授予,否则一个也不授予,以此来防止死锁,串行化的限制 对于工作流这种长时间执行特性的应用也并不适用。同时,虽然框架提出了一些数据补偿和 重做的机制,但是,没有给出这些机制具体的设计和实现方法。本论文设计并实现了活动的 失败处理机制并将保护点的概念引入失败处理策略中。 在某个任务执行失败时,仅仅对当前失败活动采取相应的处理措施取消其影响,还不足 以保证整个工作流系统的正确性和一致性。我们希望,出现错误后,系统能够自动确定需要 处理的相关活动实例,取消因为当前活动的退出对系统整体的影响,实现事务管理功能。比 如,在旅游订票这个简单的工作流中,当宾馆预定失败后,只需要用可选活动,在另外一个 宾馆预定即可。如图3 所示。如果是在节日期间,旅游繁忙。有可能所有的宾馆都已经定满, 这个时候“宾馆预定”活动重做多次后不能成功,需要取消整个旅游预定的工作就需要 取消已经提交的活动“机票预定”和“汽车预定”,乃至取消“旅游预定”的影响,这些可 以通过对它们做补偿1 2 ”活动来实现。也就是取消相应的预定。 宾馆预定 汽车预定 图3 旅游预定工作流 现实中的工作流具有复杂的流程,因此出现错误后采取措施来使流程恢复正常,往往是 需要用户来参与,决定什么活动可以重做,什么活动需要通过其它活动来取消已经执行的活 动对今后的影响。当需要补偿的活动过于多,出现级联情况时,是极其复杂的,有可能涉及 更多人。对于普通用户来说如果没有一个妥善的解决方案。完全由用户决定,就加重了客 户的负担,违背了工作流的初衷。对于出现错误后那些事先就可以决定的决策如果能够由 建模人员在设计流程的时候定义好,将大大加快流程的执行速度和自动化程度。因此,我们 对工作流的建模要素进行扩充,加入事务要素,并且设计事务处理器,在工作流执行的时候 日- 与执行部件交互,实现活动执行失败后系统的自动处理。 因此,对工作流系统的功能扩充需要两方面的支持:一个是建立工作流模型的时候需要 定义工作流的失败处理模式;其二,设计事务处理器和相应的接口,建立工作流失败后的动 态流程重建功能。 对不同的活动,失败处理方式也不一样口”。具体来说,工作流活动的失败处理可以分 为以下几种模式:忽略、取消、替代、重做、补偿,表示成f a i l u r e m o d e = i g n o r e ,a b o r t ,a l t e r , r e d o ,c o m p e n s a t e a b o r t ) 。 1 “忽略”模式 若一个活动在执行过程中失败,但是该活动已经执行的部分所产生的行为不影响其他活 动的正确执行,并且,如果该活动没有执行的部分也不影响其它活动的正确执行则可以采 用忽略策略。即f a i l u r e m o d e = i g n o r e 。如果一个活动的失败处理模式是“忽略”,那么当活动 失败后不需要做其它的恢复操作,流程可以继续执行。 2 “直接退出”模式 在这种模式下,当某个活动a c t 出现失败后( a b o r t 。事件出现在执行序列中) ,则工作流 系统对a b o r t a e t 的响应过程为:a b o r t 一a b o r t s d ,产生流程退出到保护点的事件;对于a b o r t s p 的发生,系统将进一步针对这个工作流实例产生级联事件:对于该工作流实例中已被初始化、 但尚未结束、正处于中间态的所有某个保护点之后的活动r l ,均产生a b o r t 。事件a b o r t 。一 a b o r t 。,使失败实例中所有活动节点的控制数据保持一致。随着工作流实例退出到保护点, 所有已初始化、但尚未最终完成的任务都将被强制退出,而所有已执行过的任务,则不加处 理地废弃。“直接退出”模式的示例如图4 。这种失败模式适合工作流相关数据和应用数据 都不需要做任何处理的状况,这种情况一般来说是工作流应用数据没有改变或者发生的改变 不需要回到改变之前的情况。这类活动的异常处理模式在定义的时候就应该是 f a i l u r e m o d e = a b o r t 。 图4 “直接退出”模式 3 “有补偿回滚退出”模式 这种模式与“直接退出”模式的共同之处在于都要退出整个工作流实例到某一个保护点, 然后从保护点开始重新执行或者从保护点选择另一条可选路径重新执行;二者的区别在于, “有补偿回滚退出”要对已经执行或正在执行的活动所产生的影响与后果进行清除后再退 出。 在工作流执行过程中当执行到一个活动实例出现异常时。己执行的活动已经产生了一 些影响为了使得整个流程能通过其他路径继续下去或正常停止,必须对已执行的行为产生 的影响进行消除,能够消除这个活动的影响的另外一个相对应的活动,就称对活动进行补偿, 即f a i l u r e m o d e = c o m p e n s a t e a b o r t a 这种模式对a b o r k 。事件的响应过程为:对于工作流实例中当前处于执行状态的所有保 护点之后的活动节点n ,均产生a b o r t 事件,强制中止己初始化、但尚未结束的活动;从 失败节点a c t 以及各个被强制中止的节点i 1 开始,按照与执行时相反的顺序,依次对已执 行过的活动进行补偿。补偿的具体算法,将在第三章中介绍。 举个简单的例子,假定工作流中的活动是串行执行的,并且执行顺序为( a 1 ,a 2 ,a n ) , 它们相对应的补偿事务是( c i ,c 2 ,c n ) ,a 0 是保护点。当执行a n 出现错误时,则应该做 1 0 - l 南 m 士论文 的事情如下:首先取消a n 的执行,然后,从a + 1 开始逆向补偿,依次执行c n ,1 ,c n 2 ,c 1 , 作用是清除己执行过的操作所遗留下的不需要的结果。例如某些无用的数据、文档、已发布 的信息等。如果在补偿事务执行鸽时候出现错误,那么就重做那个补偿事务( 为了保证补偿 活动的正确性,所有补偿活动都是可重做的) 。当c 1 提交之后,活动a n 对工作流的影响已 经消除,工作流从保护点a 0 以后开始重新执行。 图5 “有补偿回滚退出”模式 补偿退出有完全补偿退出和部分补偿退出两种模式,图5 是完全退出的例子,但是在补 偿与前滚过程中并不一定要补偿或前滚所有的节点,而是有选择地进行部分节点的补偿与前 滚。图6 是逆向式不完全补偿前滚的例子,图串忽略了活动节点2 的补偿活动,在逆向补偿 时,直接由节点c 3 跳至节点c 1 。 图6 “部分补偿退出”模式 这种模式适用于需要保留部分原有执行结果,或者在过程中有些活动节点无需进行补偿 的情况。它们往往应用于需要灵活处理的失败情况,以便尽可能地不浪费企业资源,充分利 用工作流参与者已完成活动的操作结果, 4 重做 在工作流执行过程中,当执行到一个活动实例失败时,可以重新执行这个活动,直到成 功,或者规定重做次数的最大值,只要重做次数不到这个上限,工作流都可以从这个活动开 始重叛执行,即f a i l u r e m o d e = r e d a ,如图7 所示。 图7 “重做”模式 5 可选路径 若工作流执行过程中,在某个活动执行时失败,使得该活动不能继续,但存在另外一个 可选的活动或另外一条执行路径,使得执行过程可以继续,就可以采用替代策略 f a i l u r e m o d e = a i t e r 例如图8 中,a 5 是a 3 的可选路径,那么当a 3 失败退出时,取消了a 3 已经执行的活 动的影响后( 事务未提交) ,将执行a 5 路径。 图8 “可选路径”模式 6 手工恢复 这类任务不具有原子性,也不是可选择任务,同时也不适合取消工作流。这类活动的恢 复需要人工完成。 针对活动的这几种失败处理模式,如果希望在活动失败的时候能够由系统自动构造相应 的处理流程,就需要在建模时定义活动的失败处理模式,在工作流执行过程中当活动失败的 时候利用第三章介绍的事务处理算法来动态计算失败处理步骤。具体的方法是:在建模时增 加活动的与事务处理相关的属性。 2 3 移动a g e n t 概述 2 3 1a g e n t 及移动a g e n t 概述 a g e n t 最早出现在1 9 8 6 年m m i n s k y 出版的“s o c i e t yo f m i n d ”一书中,经过近几年的 研究和实践,a g e n t 的概念日臻成熟,它是一个自主的计算实体,是一段可帮助用户完成简 单、重复操作。具有一定代理性的软件( 程序) ,它通常保存一定的状态。并能同它的所有 者、其他的a g e n t 以及所处的环境交换信息,达到协同工作的目的,并具有自主性、智能性 和协作性。自主性指a g e n t 具有独立完成用户所赋予的任务的能力。并能对其内在状态和动 作进行控制:智能性指a g e n t 具有知识( 知识库) 和能力( 推理、学习) ;协作性指a g e n t 在特定通信机制的基础上与其它a g e n t 共同完成特定任务的能力( 2 4 】。 随着网络技术的飞速发展,计算机应用从单机系统、集中式系统发展到分布式、网络化 系统,分布式计算逐渐成为当今计算机技术的关键研究领域之一。分布式计算的主要目标在 于实现跨平台资源的透明互操作和协同计算,它的发展经历了基于过程的分布式计算( 如 r p c ) 阶段和面向对象的分布式计算阶段( 如c o r b a 、d c o m 等) ,这两种分布式计算环 境均采用传统的c l i e n t s e r v e r 模式,通过远程过程调用或对象引用实现跨平台的互操作,适 合于传统的相对稳定的网络环境和应用程序。但在网络规模迅速增长的今天,低带宽、高延 时日益成为限制网络应用和发展的瓶颈,在新型的应用领域缺乏智能动态的处理能力。在这 种情况之下发展起来的移动a g e n t 技术,作为种新型分布式计算模式,其智能性和移动性 为分布式计算带来新思路和新的技术特点。 移动a g e n t ( m o b i l ea g e n t ,m a ) 可以定义为:“旨在解决网络计算中的

温馨提示

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

评论

0/150

提交评论