(计算机软件与理论专业论文)工作流系统中应用agent改进的高级事务模型设计.pdf_第1页
(计算机软件与理论专业论文)工作流系统中应用agent改进的高级事务模型设计.pdf_第2页
(计算机软件与理论专业论文)工作流系统中应用agent改进的高级事务模型设计.pdf_第3页
(计算机软件与理论专业论文)工作流系统中应用agent改进的高级事务模型设计.pdf_第4页
(计算机软件与理论专业论文)工作流系统中应用agent改进的高级事务模型设计.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机软件与理论专业论文)工作流系统中应用agent改进的高级事务模型设计.pdf.pdf 免费下载

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

文档简介

中文摘要 摘要 工作流高级事务模型往往因为结构过于复杂,或者实现起来过于困难,而很 难应用到实际的工作流系统中。而且在目前的工作流产品以及工作流原型系统中, 大多都没有对工作流事务即长事务有比较多的研究和实现。因此研究一种能够应 用到现实工作流系统中并能解决系统中长事务的高级事务模型尤为重要。 论文详细介绍了与事务处理相关的基本概念、事务属性以及几种事务模型。 对工作流中的错误进行了详细的分析,着重研究了长事务处理的关键技术和长事 务恢复技术。在此基础上,借鉴多智能体( m u l t i - a g e n t ) 协同工作的思想,进而 提出了一种工作流系统中应用a g e n t 改进的高级事务模型l t m - a g e n t 。该模型建立 在c o r b a 对象事务服务模型( o t s ) 基础之上,具有平台独立和语言独立等特点。 论文给出了与模型实现相关的实现平台、长事务控制方式、长事务处理接口 和关键数据结构;对模型的长事务管理器和事务智能体进行了详细分析、设计和 实现;模型的实际应用和长事务处理特色用一个实例进行了验证和展示。 关键词:工作流系统;长事务;事务处理;a g e n t 英文摘要 a d v a n c e dt r a n s a c t i o nm o d e li m p r o v e db y a g e n t i nt h ew o r k f l o w s y s t e md e s i g n a b s t r a c t m o s to fa d v a n c e dt r a n s a c t i o nm o d e l sc a r ln o tb ee m p l o y e di nr e a l i s t i cw o r k f l o w s y s t e m s ,b e c a u s eo f t h e i rc o m p l i c a t e ds t r u c t u r e so rd i f f i c u l t i e si ni m p l e m e n t a t i o n i nt h e c u i t e n t w o r l f f l o w p r o d u c t sa n d p r o t o t y p es y s t e m ,m o s t o f t h e w o r k f l o w t r a n s a c t i o n ( l o n gl i v e dt r a n s a c t i o n ) t h a tn ol o n g e rh a v e b e e nm o r er e s e a r c h e d ,t h e r e f o r et h e s t u d yo f a d v a n c e dl o n gl i v e dt r a n s a c t i o n ( l l t )m o d e l w h i c hc a nb eu s e di n t ot h e r e a l i s t i cw o r k f l o ws y s t e mi sp a r t i c u l a r l yi m p o r t a n t p a p e r sd e t a i lt h eb a s i cc o n c e p t sa s s o c i a t e dw i t ht h et r a n s a c t i o np r o c e s s i n g , p r o p e r t ya n da f f a i r so f s e v e r a lt r a n s a c t i o nm o d e l ,a n dh a v ead e t a i l e da n a l y s i so nt h e e r r o r si nt h ew o r k f l o w , a n df o c u s i n go nt h ek e y t e c h n o l o g i e so f t h el l tp r o c e s s i n ga n d t r a n s a c t i o nr e s u m et e c h n o l o g y o nt h i sb a s i s ,l e a r nf t o mm a sw h i c hc o n c e p ti sw o r k t o g e t h e r , t h e np r e s e n t sa na d v a n c e dt r a n s a c t i o nm o d e ll t m - a g e n tw h i c hi m p r o v e db y a g e n ti n t h ew o r k f l o ws y s t e m t h em o d e lb u i l to nt h eb a s i so f o b j e c tt r a n s a c t i o n s e r v i c eo f c o r b a ,w h i c hh a v ep l a t f o r m i n d e p e n d e n ta n d l a n g u a g e i n d e p e n d e n t f e a t u r e s 丑坨r e a l i z e dp l a t f o r m ,l l tc o n t r o lm e t h o d ,l l tp r o c e s si n t e r f a c ea n d k e yd a t a s t r u c t u r er e l a t et ot h ei m p l e m e n t a t i o no f t h em o d e la r eg i v e n , a n dt h ec o n c r e t e i m p l e m e n t a t i o no f u jm a n a g e r , t r a n s a c t i o na g e n t sa r ea n a l y z e d d e s i g n e da n dr e a l i z e d a tl e n g t h t h ea p p l i c a t i o no f t h em o d e la n dt h es p e c i a l t yo f l i z p r o c e s s i n gi si l l u s t r a t e d a n ds h o w nb ya l le x a m p l e k e y w o r d s :w o r k f l o ws y s t e m :l o n gl i v e dt r a n s a c t i o n ( l i j t ) ;t r a n s a c t i o n p r o c e s s i n g ;a g e n t 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文:王往逋丕筮虫廑旦g ! 匹夔进的直级塞釜搓型遮让:。除论 文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在 文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经 公开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:j 琦华彬归月节日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 榉雠嫣最d 。“请在,凹( 请在以上方框内打“”) 论文作者签名:j 同绊 导师签名 日期:矽6 7 年弓月冲日 工作流系统中应用a g e n t 改进的高级事务模型设计 第1 章引言 1 1 论文研究背景 工作流( w o r k f l o w ) 技术是实现企业业务流程( b u s i n e s sp r o c e s s ) 的建模与 仿真、分析与优化、管理与集成,从而最终实现业务流程的自动化的核心技术“1 。 利用工作流技术进行企业信息系统的开发,不仅可以规范企业的业务流程,发现 业务流程中不合理的环节,进而对企业的业务流程进行优化或重组,而且可以根 据业务的需要或者市场的变化,快速的调整或者重建业务流程,实现业务系统对 业务需求的快速响应。 工作流系统的核心思想0 1 在于细化企业的业务流程并进行合理的拆分与整合, 从而达到最大限度的灵活控制。企业可以根据需要,实时的改变业务流程或者业 务规则。业务流程是由一组工作流活动( a c t i v i t y ,包括内部活动和按照一定标准 暴露出来的外部活动) 按照一定的逻辑关系组合而成,系统的运行过程,实际就 是这些活动的迁移过程。所以,如何保证活动迁移过程中流程数据和系统状态的 一致性,也就是传统意义上的事务性,成为影响工作流系统可靠性的一个关键因 素。如果按照传统数据库事务理论,通过锁定资源来实现业务流程的事务属性, 又无法满足现代企业系统支持并发与分布的基本要求,因为这些事务往往具有较 长的生命周期,需要访问多种异构数据源,其结构也比较复杂。如何处理长事务 或者全局事务这类高级事务,成为近1 0 年来事务研究领域的一大热点“。为了解决 这一闯题,人们在传统事务模型的基础上提出了许多高级事务模型,但是往往因 为结构过于复杂,或者实现起来过于困难,而很难应用到实际的工作流系统中。 在目前的工作流产品以及工作流原型系统中,大多都没有对工作流事务即长事务 有比较多的研究和实现,这也是工作流管理系统在实际应用推广中所遇到的主要 障碍之一。 另一方面,传统的工作流管理系统多是基于集中式的c s 模型的。工作流引擎 驻留在一个或者多个服务器上,负责调度所有物理上分布的各个活动并监控整个 工作流的运行。这种c s 结构的弊端在于实时连接和频繁交互,会造成网络拥塞和 第1 章引言 服务器端的资源瓶颈,而且有单点失败的可能性嘲。近年来出现的a g e n t 技术作为 一种分布式计算方法具有跨平台持续运行和自我控制、移动性以及协作性和智能 性的能力“1 ,因此将a g e n t 技术引入到分布式工作流管理系统的高级事务模型中具 有很好的理论和应用价值。 论文就是基于以上情况而选题的,试图在刘发军的学位论文“异构数据集成 系统中基于c o r b a 的事务处理研究”的研究基础之上,对长事务处理关键技术、 数据库长事务处理技术以及在分布式环境中有足够优势的a g e n t 技术作更深入的 研究,对“分布式事务处理系统”进行补充使其能够解决工作流中的长事务处理 问题。论文得到了国家自然科学基金项目“分布式智能异构数据集成支持系统的 研究”( 批准文号:6 0 1 7 2 0 4 3 ) 和国家自然科学基金项目“智能语义网服务中本体 集成机理与应用模式研究”( 批准文号:6 1 6 7 2 0 3 1 ) 的资助,同时本课题研究的内 容是国家自然科学基金项目( 两个项目) 的组成部分。 1 2 工作流的发展现状 目前,国内外众多的研究机构越来越关注工作流技术,国外有代表性的商用 工作流管理系统有i b mm q s e r i e sw o r k f l o w 、t e a mw 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 等啪;国内方面的研究机构主要包括清华大学自动化系等, 各软件公司还未开发出拥有自主知识产权的严格意义上的工作流产品,它们大都 是采用工作流思想对不同应用领域进行的集成。 在工作流的恢复处理方面,现有系统也存在诸多不足: ( 1 ) 美国佐治亚大学研制的m e t e o r 。系统“1 。考虑了分布式环境中的各种故障 可能对w f 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 系统“”。工作流的错误处理基于规则, 对任务的要求比较严格。在事务失败后,只用一种补偿的处理方法,没有根据事 工作流系统中应用a g e n t 改进的高级事务模型设计 务特点对不同性质的事务用不同的事务失败处理方法。 ( 4 ) 土耳其中东大学开发的m e t u f l o w 系统“。使用多级事务串行化的设计 方法。要求工作流在资源访问上满足可串行化。这样就限制了工作流的效率。系 统对工作流的恢复机制没有提出建设性方法。 在a g e n t 与工作流的结合方面,一个比较成型的系统是由d a r t m 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 3 目前工作流管理系统的不足 随着网络技术的成熬与普及,计算领域不断扩大,集中式、桌面应用技术等 渐渐的被分布式、异构以及网络应用技术所取代。这就要求工作流技术能够在h a d ( h e t e r o g e n e o u s ,a u t o n o m o u s ,d i s t r i b u t e d ) 环境下支持大规模、多系统应用。然 而,目前市场上的工作流产品还不够成熟,无法满足上述需求。主要表现为,对 异构、分布式计算框架支持的限制以及没有足够的理论基础,没有明确定义正确 性标准,对并发工作流间的协同工作支持不足,尤其是在系统出现错误和异常时, 系统的可靠性无法保证“”。 工作流系统需要集成在不同环境下运行的异构应用系统;要支持独立于系统 环境和应用层的数据访问与通讯。另外,由于工作流系统自身的性质,其为参与 者分配相应的任务,从而要求其能够为分布式环境中的组织机构角色进行任务分 配。目前己有的成熟基础通讯架构技术、对象组件模型以及分布式对象管理标准 ( 例如,c o r b a i i o p ,d c o m a c t i v e x ,j a v a b e a n s 和w w w 技术等) 为这些问题 的解决提供了基本条件“”。 综合上面的阐述,工作流系统的可靠性是一个很难解决的难题,目前尚没有 一种工作流产品或原型系统能够在过程执行的可靠性与一致性方面达到与关系数 据库管理系统相当的水平。现有的工作流管理系统在实际应用中仍很难达到用户 第1 章引言 所提出的,在大业务量下保证系统高可靠性与数据无差错性的要求。这时,工作 流管理系统自身的可靠性成为制约工作流应用的瓶颈“”。对事务处理的支持是提 高软件系统可靠性的主要方式之一,目前的工作流管理系统或原型系统中对事务 的支持都与实际的应用需求相差较远,导致工作流管理系统在错误处理、满足业 务需求、多实例并发执行、工作流数据的致性几个方面存在很多缺陷,主要表 现为以下几点“”; ( 1 ) 不支持业务过程中包含原子性处理的需求; ( 2 ) 不能合理的对执行时间相对较长的过程环节进行处理: ( 3 ) 不能保证系统中的数据一致; ( 4 ) 无法处理系统运行时期出现的不可遇见性错误; ( 5 ) 工作流技术的应用场景受到限制,尤其是在明确要求事务性的应用中。 下面针对上述几点进行详细讨论: 在实际的业务过程中很多环节的执行存在一定的关联性,要求都执行或者都 不执行,即要求两个或多个环节的执行是原子性的。例如,在电子政务并联审批 系统中的旅业执照中请审批业务流程中,假设要求公安局审批环节与消防审批环 节具有原子性,亦即公安局审批环节若失败则要求系统回滚到消防审批环节开始 前的状态。这就要求工作流系统提供保障多个活动执行上原子性的功能。不然, 要满足此类需求,会为二次开发带来无法预计的难度与工作量。 今天,企业内部、企业间的业务相关性不断提高,相互关联的越来越紧密, 业务过程中的环节数量相应增加,业务过程的执行时间也随之变长。在某些情况 下,业务过程中的某些步骤运行时间会到达几天、几周甚至数月,即工作流过程 中的某些活动运行时间较长,这时对执行时间较长的活动在资源分配以及活动运 行的中间结果处理上,就变得十分重要了。 由于工作流系统外界环境复杂多变,工作流实例的执行过程中必然会出现各 种异常情况,由此导致工作流执行阶段的数据出现错误,这些数据可能涵盖了从 工作流控制数据、工作流相关数据到工作流应用数据的全部工作流运行时的数据 空间。对于工作流控制数据,可能会出现工作流实例和活动实例状态数据的不一 工作流系统中应用a g e n t 改进的高级事务模型设计 致:对于工作流相关数据,工作流参与者可能会使用过时数据或文档;对于工作 流应用数据,则可能会导致在外部数据源中读出写入错误的数据。因此,必须采 用有效措施来保护工作流数据的一致性。以提高工作流系统运行时的可靠性,增 强异常处理的能力“”。 在工作流建立时期,业务过程建模工程师在建立流程模型时会尽量考虑到流 程运行时期有可能出现的一些错误,并在流程中加以处理。但要考虑到业务过程 执行时全部有可能出现的错误是不现实的,从而工作流系统在发生不可预见性错 误时将无法处理,导致严重的系统错误。工作流系统的事务处理可以使其能够对 不可预见性错误进行处理,通过事务处理保证系统数据的一致性,提高系统的可 靠性。 工作流模型目前一般不具备恢复与失败处理的语义,通常依靠管理人员的手 工参与来实现此功能;而事务模型则在自身的定义中重点对这方面内容进行了约 束,提出了一些相应的解决方法,不同的约束就构成了不同的事务模型。工作流 模型正好需要引入一定的事务处理能力,可以提高工作流系统的性能以及健壮性。 定义不同方面的事务处理增加了可靠性的同时,使得工作流的解决方案既具有健 壮性又具有灵活性。 通过以上叙述可以让我们清楚的认识到,对工作流事务模型的研究具有重要 的理论意义与应用价值。 1 4 工作流的基本概念 1 9 9 3 年工作流管理联盟( w o r k f i o wm a n a g e m e n tc o a l i t i o n ,w f m c ) 的成立标 志着工作流技术进入相对成熟的阶段。为了实现不同的工作流产品之间的互操作, 它对相关术语、体系结构以及编程接e l ( w a p i ) 等方面制定了一系列标准。下面 本节将介绍与本文相关的工作流的基本概念。 工作流( w o r k f l o w ) : 不同的研究者和工作流产品供应商从不同的角度给出了工作流的定义。 c r i g a g r o u p 给出的工作流定义是:工作流是经营过程中可运转的部分,包括 任务的顺序以及由谁来执行、支持任务的信息流、评价与控制任务的跟踪、报告 第1 章引言 机制“”。 i b ma l m a d e n 研究中心给出的工作流定义是:工作流是经营过程的一种计算机 化的表示模型,定义了完成整个过程所需要的各种参数。这些参数包括对过程中 每一个步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一个步骤由 谁负责以及每个活动所需要的应用程序“。 工作流管理联盟( w f m c ) 给出的工作流定义是;工作流是一类能够完全或者 部分自动执行的经营过程,根据一系列过程规则,文档、信息或任务能够在不 同的执行者之间传递、执行1 。 清华大学的范玉顺教授对工作流做了进一步的解释,认为工作流应该能够描 述业务过程以下几个方面的问题:即业务过程是什么( 由哪些活动、任务组成,也 就是控制流与信息流的定义) ;由谁来做( 人或者计算机应用程序,就是组织角色 的定义) 嘲。 以上的这些工作流定义,包括其他一些的工作流定义都是用非形式化语言对 工作流进行了描述,虽然表达方式略有不同,但是基本上说明这样一个问题,即 工作流是业务流程的一个计算机实现。 工作流管理系统( w o r k f l o wm a n a g e m e n ts y s t e m ) : w f l v l c 给出的关于工作流管理系统的定义是:工作流管理系统是一个软件系 统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推 进工作流实例的执行。“。 通常,工作流管理系统指运行在一个或多个称为工作流机的软件上的用于定 义、实现和管理工作流运行的一套软件系统,它和工作流执行者交互,推进工作 流实例的执行,并监控工作流的运行状态。需要强调的是,工作流管理系统不是 企业的业务系统。 过程( p r o c e s s ) : 过程是业务流程的形式化描述,用来支持系统建模和运行过程的自动化。过 程可分解为一系列子过程和活动,定义中主要包括描述过程起始、终止的活动关 系网络以及一些关于个体行为的信息,如组织成员、与i t 相关的应用和数据等。 工作流系统中应用a g e n t 改进的高级事务模型设计 任务( t a s k ) : 一个任务或称活动,代表工作流实例中的一个基本计算单元,它在本质上可 以是事务的,也可以是非事务的。 一个任务结构模型包括一组状态,如:i n i t i a l ,e x e c u t i n g ,f a i l ,d o n e 和这些状 态问的转移。任务的结构有:事务的,非事务的,简单的,复合的,二段提交的。 任务管理器( t a s km a n a g e r ) : 一个任务管理器( 有的地方称代理) 是和工作流执行环境中每个任务相联系 的,它作为任务和工作流调度器的一个中间媒介。它负责向任务提供合乎规格的 输入,并收集任务的输出;负责和工作流调度器交流任务的状态信息;负责执行 错误处理和恢复功能;记录任务的输入、输出及状态到日志;调度相关依赖的任 务管理器。 工作流引擎( w o r k f l o we n g i n e ) : 它负责按照预先定义的任务间的依赖关系来协调一个工作流实例中的各种任 务的执行嘲。 事务( t r a n s a c t i o n ) : 事务的概念来自数据库研究领域,包括两方面的内容:恢复和并发控制。简 单的说,事务就是一组操作,它们要么全做,要么全部不做,不能存在中间状态。 也就是说事务是被原子性执行的操作集合,事务具有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 ) :事务提交后,对数据的操作结果不会丢失,而 第1 章引言 是持久保留。即使数据库因故障而受到破坏,d b m s 也应该能够恢复。 事务通常是由高级数据操纵语言或编程语言书写的用户程序的实现,并用形 如b e g i n t r a n s a c t i o n 和e n d t r a n s a c t i o n 的语句或函数调用来界定。在事务开始与事务 结束之间执行的全体操作就构成一个事务。 举一个银行的例子,如果它同时完成了支出和帐户更改,那它就是原子的。 如果支出的钱等于帐户上收入,那么它是一致的。如果这个事务程序不受其他并 发读写你帐户的程序的影响( 比如你的配偶也在并发的存款) ,那么它是是隔离 的。如果一旦事务完成了,帐户的余额必然会反映取款后的情况,那么它是持久 的。 事务的状态( t r a n s a c t i o ns t a t e ) : 一个事务开始运行后,其结果如何是难以预测的。为了保障系统赋予事务 a c i d 特性,必须记载事务的状态,供d b m s 分析和处理。事务有以下六个状态洲: ( 1 ) 事务开始( b e g i n - t r a n s a c t i o n ) :开始执行,进入活跃状态。 ( 2 ) 事务操作( o p e r a t i n g ) :事务进行操作仍处于活跃状态。 ( 3 ) 事务结束( e n d - t r a n s a c t i o n ) :事务完成了所有读、写操作,执行完最后 一个语句。从用户看,事务似乎已完成它的使命。但从系统看,事务的工作虽己 完成,但它产生的结果是否全部保存下来,尚不得而知。此时事务进入部分提交 状态( p a r t i a l l yc o m m i t t e d ) 。 ( 4 ) 事务失败( a b o r t ) :事务在进行某些读写操作后出现异常情况,不能继 续下去或部分交付之后要求撤消其操作结果,则进入失败状态。 ( 5 ) 事务交付( c o m m i t - t r a n s a c t i o n ) :事务完成了所有读、写操作。系统己 保存或承诺保存该事务的所有操作结果,此时事务进入交互状态。 ( 6 ) 事务终止( t e r m i n a t e d ) :事务交付或事务撤销后进入终止状态。系统 运行时从此开始忘记该事务。 事务状态转化图如图1 1 所示。 工作流系统中应用a g e n t 改进的高级事务模型设计 图1 1 事务状态转化图 f i g 1 1t r a n s f o r m a t i o no f t r a m a c t i o ns t a t i o n 长事务( l o n gl i v e dt r a n s a c t i o n ( l l t ) ) : 长事务是指需要长时间执行的事务,它可以用于聚集任意的操作组合一一短 事务、长事务,在总体上是由长事务控制的。通常,长事务会包含多个嵌套的短 事务,整个业务过程有一个入口:开始和多个出口,包括成功出口和失败出口, 其他均必须包含长事务内。 1 5 本文的研究内容 论文在已有的分布式事务处理系统研究的基础上,结合硕士学位论文“异构 数据集成系统中基于c o r b a 的事务处理研究”的成果,借鉴国内外有关事务处理 技术的研究成果,对工作流高级事务模型尤其是s a g a :事务模型、数据库长事务处 理技术以及在分布式环境中有足够优势的a g e n t 技术作深入的研究,对“分布式事 务处理系统”进行扩展、补充,设计一个比较基本的高级事务模型,并提出一 个可行的设计方案。本文的工作主要围绕以下五点展开: ( 1 ) 研究工作流事务处理技术和工作流高级事务模型。 ( 2 ) 研究工作流的错误模型和错误恢复技术。 ( 3 ) 研究a g e m 技术。 第1 章引言 ( 4 ) 设计一个在工作流系统中应用a g e r t t i 尤化的高级事务模型,并提出一种 可行方案。 ( 5 ) 给出工作流系统中应用a g e m 优化的高级事务模型的具体实现,并对它 的实际应用进行了测试和分析。 工作流系统中应用a g e n t 改进的高级事务模型设计 第2 章事务模型 事务特性的提出主要是为了提高数据库的出错恢复能力和数据库系统的可 靠性,目前事务处理的概念己经在许多应用领域得到了应用。事实上,工作流也 可以看成是一系列有序操作的集合,只不过这些操作并不仅仅限于数据库中的数 据,因此工作流也同样具有事务特性。例如:工作流中的某一活动实例对一用 户数据进行写操作,此时就不应该允许其他的活动实例同时对该数据迸行有关的 读写操作;当一个工作流过程在执行到某一个活动时被迫取消,那么,在这一活 动之前已经完成的活动所造成的影响也就应该尽可能地取消。由此可见工作流的 事务处理要比数据库中的事务处理复杂得多。 为了更好的描述工作流的事务特性和解决工作流的事务处理问题,人们首先 在数据库事务模型的基础上提出了许多高级事务模型以及其他一些事务模型。下 面先对数据库的传统事务进行研究,再分别对各种工作流的高级事务模型和分布 式事务模型进行研究,最后通过分析得出自己的高级事务模型。 2 1 经典事务 事务管理就是为系统提供一种保证数据完整性的机制,实现系统数据的正确 性和可靠性。数据的完整性是由事务的基本属性a c i d 确定的,由于事务的a c i d 特性已经在本文1 4 节介绍过,这里不再重复介绍。 在经典的事务管理理论中,事务通常包括两方面内容:并发控制和恢复,他 们分别确保事务能够执行,并保持一致性和原子性等特征硎。由于其在事务处理 中的重要地位,下面我们将详细介绍并发控制和恢复处理技术。 并发控制( c o n c u r r e n c yc o n t r o l ,c c ) 是分布式事务处理中的一个重要研究方 向,它负责的是事务的一致性和隔离性,事务将数据库从一个一致性转变到另一 个一致性状态。即事务执行前和执行后,数据库都应该处于一致性状态。但这种 一致性在事务的执行过程中将不被保证。例如,基金从一个帐号转帐到另一个帐 号就是一个事务,这个事务的所有操作要么都执行要么都不执行。如果事务发生 到一半,一个账号的基金已经转出,而另一个账号的基金还没有转入的时候,这 第2 章事务模型 时系统发生了故障( 可能是程序的问题,也可能是硬件的问题) ,数据库的一致 性遭到了破坏,数据库管理系统中的恢复模块就要负责将数据库恢复到故障发生 前最近的一个一致性状态。 恢复管理机制负责的是永久性和原子性,当系统从失败中恢复以后,必须保 证:一个事务的所有执行结果要么全部都记录在数据库中,要么全部都不作长久 记录。当事务执行一个对数据库的写操作时,数据首先写入数据库缓冲区,数据 经此再回写到二级存储器中。在这两次过程中,都有可能发生失败,恢复管理机 制负责的就是要将数据库恢复到一致性状态,在数据库系统中,这里数据库日志 扮演了很重要的角色。 上面介绍的是事务的基本概念,在单用户模式,事务非常容易理解。然而, 在多用户模式中,事务变得复杂多了。多用户事务的经典说明仍是银行帐户问题, 其中一个应用程序试图在借记帐户,同时另一个应用程序试图借记同一个帐户。 根本的问题是除非两个事务相互隔离,否则一个应用程序就可能影响另一个,从 而导致错误的程序状态。当处理多个访问相同数据的用户时,通常可能出现三种 问题嘲: ( 1 ) 脏读。当应用程序使用了被另一个应用程序修改过的数据,而这个数据 处于未提交状态时,就会发生脏读。第二个应用程序随后会请求回滚被其修改的 数据。第一个事务使用的数据就会被损坏,或者“变脏”。 ( 2 ) 不可重复的读。当一个事务获得了数据,而该数据随后被一个单独的事 务所更改时,若第一个事务再次读取更改后的数据,就会发生不可重复的读。这 样,第一个事务进行了一个不可重复的读。 ( 3 ) 虚读。当事务通过某种查询获取了数据,另一个事务修改了部分该数据, 原来的事务第二次获取该数据时,就会发生虚读。第一个事务现在会有不同的结 果集,它可能包含虚读。 2 2 工作流高级事务模型 最初的工作流管理系统主要是为了实现局部与集中环境下办公流程与文档管 工作流系统中应用a g e n t 改进的高级事务模型设计 理的自动化,因此,在今天的分布、异构环境与复杂的企业经营过程下,工作流 管理系统面对所出现的并发操作与操作失败等情况缺乏保证执行正确性与可靠性 的能力。 为了更好地描述工作流的事务特性和解决工作流的事务处理问题,人们首先 在数据库事务模型的基础上提出了许多高级事务模型( a d v a n c e dt r a n s a c t i o n m o d e l ) 。高级事务模型通常把一系列的操作分组成为层次化的结构,并且放宽了 经典事务模型对a c i d 特性的要求,以便适应不同性质的实际问题,因此又被称为 扩展事务模型。 2 2 1 嵌套事务模型 从经典事务模型到高级事务模型,一个很重要的改进步骤就是由单层结构扩 展为多层结构。嵌套事务( n e s t e d t r a n s a c t i o n ) 模型d q m o s s 提出伽。它把一个事务 分解为多子事务,同时子事务也可以继续分解成为更细的子事务,由此形成一棵 “事务树”。如图2 1 所示。 图2 1 事务树的分解 f i g 2 1d e c o m p o s i t i o no f t r a n s a c t i o nt r e e 子事务只有在其父事务开始后才可以开始,而父事务只有在所有的子事务全 部结束后才能结束。如果父事务退出,则所有子事务必须退出,包括己经提交的 子事务也必须撤销i 如果某个子事务失败,父事务可以选择自己的恢复方式,比 如,执行一个替换性操作,称意外子事务。同一层的子事务之间可以同时处于活 动状态,但一个子事务不能看到另一个可能退出的子事务的更新结果。嵌套事务 第2 章事务模型 模型在全局层次上保证了完全的分离性,同时增加了事务的模块化程度,在失败 处理时具有更细的粒度,在事务内部具有更高的并发性,减少了处理的响应时间。 嵌套事务的以上属性可以归纳为如下规则: ( 1 ) 提交规则( c o m m i t ) :子事务提交后,父母事务能够访问其执行结果。 父事务的提交只有在它的所有子事务都提交或失败后才能进行。子事务提交的结 果和释放的资源只有在它所有的祖先事务乃至项层事务也提交后才能对外部开 放。 ( 2 ) 回滚规则( r o l l b a c k ) :如果一个事务回滚,它的所有子事务也要回滚, 不管它已经执行到什么程度,这条规则可以在嵌套事务内部递归使用。如果顶层 事务回滚,整个事务都将回滚。相反,子事务的失败并不一定会导致祖先事务失 败,子事务失败后,其父母事务有多种选择方式来处理针对子事务的失败,它可 以忽视这种失败继续执行,也可以把这种失败作为子事务的一个结果,还可以让 子事务重新执行等等。 ( 3 ) 可见性( v i s i b i l i t y ) :子事务执行的所有改变在它提交后对其父母事务 是可见的,在嵌套事务终止前,子事务可以看到它的父母事务和兄弟事务的部分 己完成的执行结果,相反,子事务执行的变化不能被并发执行的兄弟事务看到 嵌套事务模型在一些系统中已经得到了实现,包括卡内基梅隆大学的c a m e l o t 原型系统、加州大学洛杉矶分校( u c l a ) 的l o c u s 系统、t r a n s a r c 的e n c i n a 事务处 理系统、麻省理工的a r g u s 项目等。 2 2 2 传奇事务( s a g a ) 传奇事务模型最早由g a r e i am o n l i n a 和s a l e m 提出“”用于解决长时间事务问题 的一种事务模型。这种模型的基本思想是允许事务在全部提交之前能够释放某些 占用的资源( 数据) ,这一点对于持续时间很长的事务而言是很有意义的,它大 大地提高了资源的利用率,同时也增强了系统的事务处理能力。传奇事务后来被 扩展为并行s a g a s 模型( p a r a l l e ls a g a s ) 和通用s a g a s 模型( g e n e r a l i z e ds a g a s ) 。 s a g a 模型的基本思想。“;假设长事务s a g a ,它由预先定义好执行顺序的子事 务集合t 和相对应的补偿予事务集合c t 组成。子事务集合t 是一个子事务序 工作流系统中应用a g e n t 改进的高级事务模型设计 列t 卜t 2 、t n ,补偿子事务集合c t 则包括了集合t 中的每一个子事务所 对应的补偿子事务c t l 、c t 2 、c t n ,任意一个子事务都具有自己的a c i d 特 性。只有当t i 、t 2 、t n 按顺序提交后,s a g a 事务才成功地完成;如果其中的 某个子事务执行失败,比如是第1 0 个子事务t k ,那么系统通过执行子事务来撤销t k 和前面已经提交的k 1 个子事务的操作结果,补偿子事务一般都是逆序执行的,这 样,整个过程的执行顺序为t 。、t 2 、l 、c l 、c t 。、c t 2 、c t 。图2 2 是一个只有三个小事务的s a g a 萼g 务模型。实际上许多s a g a s 的扩展事务模型例如 并行s a g a 事务模型等的基本原理都大同小异。”。 卤叶鼻毡叵卜刮兰i 图2 2s a g a 模型 f i g 2 2s a g am o d e l s a g a 模型的工作原理如下,事务的所有子事务都以块分组,块内的控制流由 s a g a 事务来反映,每一个子事务代表一个活动。当一个事务成功提交时,该事务 ( 活动) 相关的控制连接器表示的条件赋值为“真”,事务向前执行;当一个事 务失败时,控制连接器赋值为“假”,事务标识为结束,其控制连接器的所有输 出都赋值为“假”。当事务块结束时,事务块内的所有事务的输出数据容器将包 含每一个活动的状态表。补偿活动是通过一个补偿块来实现的,它包含了补偿活 动,执行顺序与原事务执行的顺序相反。 s a 叠a 事务模型开创了研究工作流事务管理的新方法,提出了几个有价值的观 点:把一个长时间执行的事务分割成几个执行单元,并在这些单元之间建立了明 确的控制流和数据流,通过补偿机制实现事务的恢复,这与工作流的表示方式是 第2 章事务模型 一样的。当然,s a g a 也存在一些未解决的问题,如其概念至今并没有得到实际系 统的实现,另外还有以下问题。”: ( 1 ) 子事务粒度过小。s a g a 模型的基本事务单元是传统事务,而且在大多数 情况下是一个传统的数据库事务。由于传统数据库事务理论本身的局限性,使得 s a g a 模型中的这种基础事务活动的粒度过小。 ( 2 ) 不支持分布式事务。这一缺陷也是传统事务模型的一个固有缺陷。传统 的事务模型大多出现在分布式计算环境普及以前,所以在当前分布式事务广泛普 及的情况下,s a g a 模型的底层子事务的应用产生了很大的局限性。 ( 3 ) 事务边界划分不明确。s a g a 模型中对于底层子事务的一条明确要求是这 些事务彼此之间应该是可见的,也就是应该在逻辑上可以很好的划分开,因为每 一个底层事务都必须能够独立提交,而且结果对于后面的事务应该可见。但是, 在工作流系统中,这样的划分很难进行。因为可能一个活动本身就要求多个原子 操作之间保持一定的事务性关系,如果一定要分拆的话,往往很难决定到底哪里 是事务的边界。 ( 4 ) 补偿事务过于复杂。引起这一问题的直接原因在于s a g a 奠型的子事务粒 度太小。 本文通过对s a g a 模型的思想、工作原理、以及其存在的问题进行研究,将s a g a 模型的补偿思想引入到“工作流系统中应用a g e n t 0 眭化的高级事务模型”中,并弥 补t s a g a 模型不支持分布式事务、补偿事务过于复杂的不足,使得s a g a 模型能够被 真正应用到实际的系统中。 2 2 3 分支汇合事务模型 分支汇合事务( s p l i v j o i nt r a n s a c t i o n ) 模型是由美国哥伦比亚大学的g k a i s e r 和c p u 提出的咖,是针对“末端开放( o p e n - e n d e d ) ”的活动而专门设计的。所 谓“末端开放”是指活动具有不可确定的执行时间、不可预知的发展方向与其他 并发的活动进行交互等特点。这种高级事务模型通过动态重构正在进行的事务, 解决了多个用户间的合作问题。“分支”命令可以把一个正在进行的事务分成两 个事务, “汇合”命令可以把两个事务合并成一个事务。 工作流系统中应用a g e n t 改进的高级事务模型设计 分支汇合事务模型实现了一种多用户的合作行为,通过“分支”和“汇合” 能够把部分事务的处理工作分配给某一合作者。另外,如果分支后的某一个事务 能够立刻提交,则将增加系统的并发处理能力,因为这将比原来的事务能够更早 地释放某些资源并产生持久的操作结果。 分支汇合事务模型存在一些很棘手的问题,如:如何保证分支后的两个事务 能够再次形成有效的工作单元,如何定义资源的分配等。 2 2 4a c t a a c t a 是由麻省理工学院的r a m a m r i t h a m 等提出的一个综合性事务框架, a c t a 在拉丁文中的意思是“a c t i o n s ”,指构成计算的多个动作( 操作) ,a c t a 模型具有足够的柔性用于实现多种扩展事务模型属性的形式化描述与推理。 与前面的事务模型相比,a c t a 并不是一个单独的事务模型,它实际上是一个 元模型。a c t a 把事务的属性表达为可见性,一致性,恢复性,及持久性。a c t a 允许采用重要事件来表达事务间的相互依赖关系,这比单纯地用普遍存在的提交 和退出事件来表达事务间的交互要更强大。这些重要事件包括:开始( b e g i n ) , 准备( p r e p a r e ) ,提交( c o m m i t ) ,退出( a b o r t ) ,产生( s p a w n ) ,分支( s p l i t ) ,汇合 ( j o i n ) 。它们被定义成原语,从而事务间建立了不同的依赖关系,包括提交依赖, 退出依赖,开始依赖等;a c t a 的组成分成两个方面:一个是事务方面,主要为事 务间的依赖关系:另一个方面是对象方面,包括事务视图、事务冲突集及a g e n t 一- 个部分。 a c t a 实际上是一个框架,是一

温馨提示

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

评论

0/150

提交评论