(计算机应用技术专业论文)工作流管理系统中事务模型的研究与应用.pdf_第1页
(计算机应用技术专业论文)工作流管理系统中事务模型的研究与应用.pdf_第2页
(计算机应用技术专业论文)工作流管理系统中事务模型的研究与应用.pdf_第3页
(计算机应用技术专业论文)工作流管理系统中事务模型的研究与应用.pdf_第4页
(计算机应用技术专业论文)工作流管理系统中事务模型的研究与应用.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机应用技术专业论文)工作流管理系统中事务模型的研究与应用.pdf.pdf 免费下载

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

文档简介

江苏大学硕士研究生学位论文 摘要 工作流技术是近年来发展最为迅速的几项新技术之一。它是实现企业业务自 动化的核心技术,也为协调复杂业务过程活动提供了有效的方法。工作流管理系 统是开发和执行工作流的工具和平台,主要应用于实现业务流程自动化和基于层 面的企业应用集成。 为了在工作流管理系统运行过程中保证数据的一致性、正确性和可靠性,必 须使工作流管理系统具有事务处理的能力。因此,工作流管理系统中的事务处理 逐渐成为近年来研究的热点之一。为了更好地描述工作流的事务特性和解决工作 流的事务处理问题,人们提出了许多高级事务模型,包括嵌套事务模型、分支 汇合事务模型、s a g a s 模型、柔性事务模型、a c t a 等。此外,还出现了专门针对 工作流的事务模型c o n t r a c t s 和事务工作流。 s a g a s 模型是由普林斯顿大学的h g a r c i a - m o l i n a 等人提出用于解决长事务 问题的一种模型。由于这种模型允许事务在全部提交之前释放某些占用资源,大 大提高了资源的利用率,并且也加强了系统的事务处理能力而受到广泛关注。 本文对s a g a s 模型做了详细分析,指出在按照s a g a s 模型定义的流程执行时 存在着三个缺陷,第一是当任意一个子事务出现异常时,就需要撤销全部己提交 的事务;第二是当长事务完成补偿事务后会退出,而不是选择更有效的执行手段; 第三是该模型只支持所有子事务的补偿子事务都存在的情况。针对这三个缺陷, 在s a g a s 模型中增加一致点的概念来保存尽可能多的已完成任务,增加失败处理 模式使模型在发生异常后能够更智能化地自动恢复,同时引入补偿服务的概念解 决了补偿子事务不存在的问题。在此基础上,建立了改进的s a g a s 事务模型。 本文以成熟的j a v a 和关系数据库技术为基础,对改进模型进行了详细的设 计,定义了在关系数据库中长事务和子事务的保存方式,并且对事务管理器进行 了详细的分析和设计。该模型在镇江给排水系统中得到了应用,本文以系统中的 合同管理模块中的合同变更处理流程为例,对模型的应用效果进行了分析,证明 该模型是可用并且有效的。 关键字:工作流,事务模型,s a g a s 事务,事务管理器,异常处理 江苏大学硕士研究生学位论文 i nr e c e n ty e a r s , w o r i d t o wi so n eo ft h em o s tr a p i d l yd e v e l o p i n gt e e l m o l o g i e s i t i st h ec o l et e e l m o l o g yt oi m p l e m e n tb u s i n e s sa u t o m a t i o n , a n da l s o 柚e f f e c t i v e t e c h n i q u et oc o o r d i n a t e t h ec o m p l e xb u s i n e s sp r o c e s s e s w o r l d t o wm a n a g e m e n t s y s t e mo v 伽s ) i st h et o o la n dp l a t f o r mt od e v e l o pa n di m p l e m e n tw o r k f l o w i ti s m a i n l yu s e d t oa c h i e v eb u s i n e s s p r o c e s sa u t o m a t i o na n de n t e r p r i s ea p p l i c a t i o n i n t e g r a t i o n t oe l l s u r et h ec o n s i s t e n c y , v a l i d i t ya n dr e l i a b i l i t yo ft h ed a t ao fw t m sw h i l e o p e r a t i n g , w f m sm u s th a v et h ea b i l i t y o fp r o c e s sl l d n s a c t j o n s a c c o r d i n g l y , i i a l l s a c t i o l lp r o c e s s i n gi so n eo ft h ef o c u s e si nw f m sr e s e a r c h i no r d e rt od e s c r i b e t h ec h a r a c t e r i s t i c so ft r a n s a c t i o n sa n ds o l v et h ep r o b l e mo ft r a n s a c t i o np r o c e s s i n gi n w o r k :f l o w , p e o p l ep r o p o s e dm a n ya d v a n c e dt r a n s a c t i o nm o d e l ,i n c l u d i n gn e s t e d t r a n s a c t i o nm o d e l ,s p l i t j o i nt r a n s a c t i o nm o d e l ,s a g a s ,f l e x i b l et r a n s a c t i o nm o d e la n d a c t ae t e i na d d i t i o n ,c o n t r a c t sa n dt r a n s a c t i o nw o r k t l o w , w h i c hu s e ds p e c i a l l yi n w o i i t 盘i o w , e m e r g e dt o o s a g a sm o d e lw a sp r o p o s e db yh g a r c i a - m o l i n af r o mp r i n c e t o nu n i v e r s i t yt o s o l v et h ep r o b l e mo fl o n gt r a n s a c t i o n c e r t a i ni i s o u i c e 8c a nb er e l e a s e db e f o r ea l l t r a n s a c t i o n sa l es u b m i t t e di nt h i sm o d e l i ti n c r e a s e dt h eu t i l i z a t i 0 1 1r a t eo fi e s o u i c e s g r e a t l y , a n da l s os t r e n g t h e n e dt h es y s t e m s 曲m t yt op r o c e s st r a n s a c t i o n s ,s oi t a t t r a c t e dw i d e s p r e a da t t e n t i o n t h i st h e s i sa n a l y z e d s a g a sm o d e li nd e t a i l ,p o i n t e dt h a tt h e r ew e r et h r e e s h o r t a g e sw h i l ee x e c u t i n ga c c o r dt ot h ef l o wt h i sm o d e ld e f i n e d f i r s t , i :fa n y t r a n s a c t i o n 、釉a b n o r m a l ,a l l 虹砌墙删ss u b m i t t e dm u s tb er o l l e db a c k s e c o n d ,t h e l o n gt r a n s a c t i o nw o u l dq u i ta f t e rt h ec o m p e n s a t i o nt r a n s a c t i o n sw e r ec o m p l e t e ,b u t n o tc h o s eam o l ee f f e c t i v e w a y a h i r a , t h i sm o d e lh a dap r e c o n d i t i o nt h a ta l l c o m p e n s a t i o ns u b t r a n s a c t i o n sw e r ee x i s t e d i nv i e wo ft h e s et h r e es h o r t a g e s , c o i n c i d e n tp o i mw a sa d d e dt o p r e s e r v et a s k sc o m p l e t e da sm u c h 勰p o s s i b l e a n d e x c e p t i o np r o c e s s i n gw a sa d d e dt om a k et h em o d e lr e c o v e ra u t o m a t i c a l l y a n d c o m p e n s a t i o ns e r v i c ew a sa d d e dt os o l v et h ep r o b l e mt h a tc o m p e n s a t i o n s u b - t r a n s a c t i o nw a sn o te x i s t e d o nt h i sb a s e ,a l li m p r o v e dm o d e lw a sc r e a t e d b a s e do nt h em a t u r et e c h n o l o g yj a v aa n dr e l a t i o n a l d a t a b a s e , t h ei m p r o v e d m o d e lw a sd e s i g n e di n d e t a i l ,t h es t o r a g em o d eo fl o n gt r a n s a c t i o na n d 江苏大学硕士研究生学位论文 s u b - t r a n s a c t i o nw e r ed e f i n e d , a n a l y z e da n dd e s i g n e dt h et r a n s a c t i o nm a n a g e ri nd e t a i l t h i sm o d e lw a sa p p l i e di nz h e n j i a n gd r a i n a g em a n a g e m e n ts y s t e m a ne x a m p l e , t h e f l o wc o n t r a c tc h a n g ei nc o n t r a c tm a n a g e m e n t , w a sc i t e dt oa n a l y z et h ee f f e c to ft h i s m o d e l ,p r o v e dt h a tt h em o d e li sa v a i l a b l ea n d e f f e c t i v e k e y w o r d s :w o r k f l o w ,t r a n s a c t i o nm o d e l , e x c e p t i o np r o c e s s i n g m 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部 内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 本学位论文属于 保密口,在年解密后适用本授权书。 不保密回。 学位论文作者签名:王彳毪l 亘 皿口- 7 年月7 日 币签移少二,7 1 印7 年舌月 日 独创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已注明引用的内容以外,本论 文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:王佳恒 日期:2 0 0 7 年6 月7 日 江苏大学硕士研究生学位论文 第一章绪论 1 1 工作流技术及事务处理的引入 在计算机网络技术和分布式数据库技术迅速发展,多机协同工作技术日臻成 熟的基础上,工作流技术【l 】从2 0 世纪8 0 年代开始逐渐发展起来,并为企业更好 地实现这些经营目标提供了先进的手段。工作流技术的出现受到了广泛的重视和 研究,并且逐渐应用到了多个领域。 1 9 9 3 年工作流管理联盟w f m c l 2 1 ( 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 ) 的成立 标志着工作流技术开始进入相对成熟的阶段,他们给出明确的工作流的定义i 副: “工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列过程规 则,使文档、信息或活动能够在不同的执行者之间进行传递与执行”。 在实际情况中可以更广泛地把凡是由计算机软件系统( 工作流管理系统) 控 制其执行的过程都称为工作流。工作流通常用于过程的自动化,通过将文档、信 息或任务按照预先定义好的规则和流程在参与者之间进行传递,从而帮助用户实 现或完成整个经营目标。在企业应用中,工作流经常与经营过程重组相联系,它 完成对一个组织( 或机构) 中核心经营过程( 或者称为关键经营过程) 的建模、评价 分析和操作的实施。虽然并非所有的b p r 过程都需要采用工作流的方式进行实 施,但是工作流技术通常是实施b p r 的一个较好的方法,因为工作流提供了经营 过程逻辑与它的信息支撑系统的分离,并实现了应用逻辑和过程逻辑分离,这种 方式在进行企业实际应用时具有显著的优点。它可以在不修改具体功能模块实现 方式( 硬件环境、操作系统、数据库系统、编程语言、应用开发工具、用户界面) 的情况下,通过修改( 重新定义) 过程模型来改进系统性能,实现对生产经营过程 部分或全部地集成管理,有效地把人、信息和应用工具合理地组织在一起,提高 软件的重用率,发挥系统的最大效能1 4 1 。工作流技术可以支持企业实现对经营管 理和生产组织的过程控制以及决策支持,它能够实现现代企业对“在适当的时间 把适当的信息传给适当的人”的要求。工作流管理系统还可以提供系统日志功能, 这种t :t 志记录对于进行企业经营过程的运转情况的事后分析和流程优化提供了 十分重要的数据。 w f m c 给出的关于工作流管理系统的定义【5 】是:“工作流管理系统是一个软件 系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑 推进工作流实例的执行”。工作流管理系统是在某种计算机表示的流程逻辑的驱 动下,完整地定义、管理和执行工作流的软件系统。它不是企业的业务系统,而 江苏大学硕士研究生学位论文 是运行在一个或多个称为工作流机的软件上的用于定义、实现和管理工作流运行 的一套软件系统【6 l 。它和工作流执行者交互,推进工作流实例的执行,并监控工 作流的运行状态。 工作流管理系统是以计算机支持的分布式、协同工作业务流程的自动或半自 动化为研究目标的软件系统,由于工作流管理系统是定义、创建、执行工作流的 系统,因此开发这类软件系统就是要协调分布式、协同处理的各个节点上的活动, 按照预定义的控制流程进行执行,以达到对它们的自动执行和有效的管理1 7 l 。这 类软件的开发有很大的重复性,因为工作流管理系统是将这类软件的公共的流程 控制部分、管理部分和其它公共部分抽象出来,形成一种软件开发平台,用户只 需将他们的控制流程描述出来,该平台软件就可对它们的控制流程进行自动执行 和有效的管理,而不需要对每次不同的应用重复地开发。 虽然不同的工作流管理系统具有不同的应用范围和不同的实旌方式,但他们 仍有很多共同的特性【羽。从高层次上抽象地考察工作流管理系统,可以发现所有 的工作流管理系统都提供了三种功能: ( 1 )建立阶段功能:主要考虑工作流过程和相关活动的定义和建模功 能; ( 2 )运行阶段的控制功能:在一定的运行环境下,执行工作流过程, 并完成每个过程中活动的排序和调度功能; ( 3 )运行阶段的人机交互功能:实现各种活动执行过程中用户与i t 应用工具之间的交互。 目前在全球范围内,对工作流的技术研究以及相关的产品开发进入了更为繁 荣的阶段,更多更新的技术被集成进来,文件管理系统、数据库、电子邮件、移 动式计算、i n t e r n e t 服务等都被容纳到工作流管理系统之中【9 l 。市场上比较成熟 的工作流产品有2 0 0 多种,其中具有代表性的产品有:清华大学研究开发的用于 计算机集成制造的工作流管理系统c i m f i o w i “、i b m 公司开发的基于持久消息队 列的分布式工作流管理系统e x o t i c a l f m q m 1 0 】和佐治亚大学开发的基于分布式主 动数据库技术的工作流管理系统w i d e i l “。 尽管工作流技术从最初的萌芽发展到现在已经有了很大的进步,在完成业务 过程的功能方面越来越丰富,但工作流技术并不成熟。目前没有一种工作流产品 或原型系统能够在过程执行的可靠性与一致性方面达到与关系数据库管理系统 同水平的功能。现有的w f g s 在实际应用中也很难达到用户所提出的在大业务量 下保证系统高可靠性与数据无差错性的要求,在许多情况下,w f m s 自身的可靠 性成为制约工作流应用的瓶颈。缺乏充分的事务支持是引起w f m s 这些可靠性问 题的主要原因。对事务处理的支持与实际的可靠性需求相差较远,导致w f l h s 在 2 江苏大学硕士研究生学位论文 满足业务需求、处理长时间执行的事务、工作流数据的一致性、异常处理等方面 存在很多问题,使工作流技术的应用受到限制,尤其是在明确要求事务性的应用 中。 1 2 工作流事务处理的研究意义和存在的问题 随着网络技术的成熟与普及,计算机领域不断扩大,集中式、同种以及桌面 应用技术渐渐被分布式、异构以及网络应用技术所取代。因为工作流技术能够在 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 ) 环境下支持大规模、多系统 应用f 1 2 1 ,所以越来越受到重视。但是,由于缺乏对事务处理的支持,工作流技 术的推广被严重阻碍。因此,近几年来高级事务模型技术纷纷被提出,用来解决 工作流管理系统中事务处理出现的问题。这些技术都是从数据库系统的观点出 发,保持了事务的数据库操作属性,还提供完好定义的语义,实现了事务执行并 发控制机制和进行复杂事务恢到1 3 】。工作流事务是当前工作流技术亟待解决的 首要问题之一,对工作流事务的研究具有十分重要的理论意义和应用价值: ( 1 ) 在工作流管理系统中增加事务处理,是保证系统可靠执行的前提。良 好的事务处理可以推动工作流技术的迅速发展和广泛应用。反之,若没有事务支 持,就难以保证系统的安全性和稳定性,从而限制工作流的应用范围,阻碍工作 流技术的推广1 1 4 1 。 ( 2 ) 在工作流管理系统中增加事务处理,可以为系统提供良好的并发控制 能力,减少工作流管理系统执行过程中并发控制带来的错误。 ( 3 ) 在工作流管理系统中增加事务处理,可以保证工作流管理系统运行过 程中数据的一致性。 ( 4 ) 在工作流管理系统中增加事务处理,可以使工作流管理系统具有失败 自动恢复的功能,提高了工作流管理系统的健壮性。 然而,目前市场上的工作流产品还不够成熟,无法满足上述需求。主要表现 为,对异构、分布式计算框架支持的限制以及没有足够的理论基础,没有明确定 义正确性标准,对并发工作流之间的协同工作支持不足,尤其是在系统出现错误 和异常时,系统的可靠性无法保证。目前的大多数工作流管理系统不能以自然的 方式描述企业管理业务流程,不能准确对工作流管理系统的流程和可用性进行分 析。在现有工作流管理系统中引入事务,可以解决系统可靠性的问题,但是比较 有影响的工作流原型系统,在事务处理上都存在一些问题,主要表现在以下几点 【1 5 】: 1 、不支持业务过程中包含原子性处理的需求:在实际的业务过程中很多环 3 江苏大学硕士研究生学位论文 节的执行存在一定的关联性,要么都执行或者都不执行。如果在处理事务时,仍 然应用数据库中事务的原子性,则在处理工作流管理系统中的长事务时会遇到很 多困难。这就要求工作流管理系统提供保障多个活动执行的原子性功能。否则为 了满足此类需求所做的二次开发将带来无法预计的难度与工作量。 2 、不能合理地对执行时间相对较长的过程环节进行处理:现在企业内部和 企业之间业务的相关性不断提高,相互的联系也越来越紧密。随着业务过程中环 节数量的增加,业务过程的执行时间也随之变长。有时,业务过程中的某些步骤 会持续几天甚至几周,这时对执行长时间活动在资源分配和活动运行的中间结果 处理上,就十分重要了。 3 、不能保证系统中数据的一致性:工作流管理系统外界的环境是复杂多变 的,工作流实例在执行过程遇到的各种异常情况都有可能导致工作流管理系统中 的执行数据出现错误。这些数据可能涵盖了从工作流控制数据、工作流相关数据 到工作流应用数据的不一致。如果工作流的控制数据出现异常,则可能出现工作 流实例和活动实例状态不一致的情况;如果工作流的相关数据出现异常,则工作 流参与者可能会使用过期文档或数据;如果工作流的应用数据出现异常,则可能 在进行外部数据读写时出现错误。因此,保护工作流数据的一致性,才能提高工 作流管理系统运行时的可靠性,增强异常处理的能力。 4 、无法处理系统运行时期出现的不可预见性错误:在工作流建立时期,业 务过程建模工程师在建立流程模型时会尽量考虑到流程运行时期有可能出现的 一些错误,并在流程中加以处理。但是考虑到在运行时期可能出现的所有错误是 不现实的,从而在工作流管理系统执行过程中一旦发生不可预见性错误,将导致 严重的后果。如果工作流管理系统中增加了事务处理,就可以对不可预见性错误 进行处理,保证系统数据的一致性,提高系统的可靠性。 1 3 论文主要工作 本文对高级事务模型中的s a g a s 模型做了详细分析,指出在按照s a g a s 模型 定义的流程执行时存在着三个缺陷: l 、如果正常子事务中的任意一个在执行过程中出现异常,则从对应的补偿 子事务开始逆序执行所有补偿子事务,将之前所有已经成功执行的子事务所做的 工作全部撤销; 2 、如果某个子事务出现异常,逆序执行完补偿子事务后,长事务会退出, 这时就需要系统管理员的介入,来确保系统的继续运行。由于增加了人机交互的 过程,会使系统处于不必要的等待状态; 4 江苏大学硕士研究生学位论文 3 、s a g a s 模型是以所有补偿子事务都存在的为前提的,在实际系统的应用 中,这个前提是不存在的。 针对s a g a s 模型中存在的三个缺陷,分别提出相应的解决方案: 1 、增加一致点的概念,保留尽可能多的已完成任务; 2 、在s a g a s 模型中增加了补偿策略,并且保存一致点对象,当按照策略补 偿到一致点后,重新读取当时的状态继续执行; 3 、引入补偿服务的概念解决了补偿子事务不存在的问题。在此基础上建立 了改进的事务模型。 本文以成熟的j a v a 和关系数据库技术为基础,提出了改进的事务模型的详 细设计方案。不仅给出了长事务对象和子事务对象在数据库中的保存方式,并且 对在数据库上的操作进行分类,针对操作类型决定补偿策略。此外,还对事务管 理器进行了详细的分析和设计,定义了本模型中事务管理器的主要功能和内部结 构,给出了在本模型中长事务和子事务对象的j a v a 描述,之后针对事务管理中 的一致点确认和异常恢复给出了详细的设计方案。 该改进后的事务模型在镇江给排水管理系统中得到了应用,最后以给排水系 统中合同管理模块的合同变更流程实例对本模型的应用效果进行了分析。 1 j4 论文组织结构 本文的各章节结构和主要内容如下: 第一章 绪论:简要介绍了工作流技术,指出当前工作流管理系统中事务 处理的研究意义和存在的问题。 第二章工作流管理系统中的事务模型:简要介绍了几种高级事务模型 和工作流事务模型,不仅分析比较了传统事务和高级事务模型, 还将高级事务模型和工作流事务模型进行了比较。 第三章基于s a g a s 的改进事务模型:首先对s a g a s 模型进行分析,指出 模型中的三个不足之处,再针对这三个不足之处分别提出了相 应的解决方案。最后对解决方案进行分析,肯定解决方案的可 行。 第四章改进模型的详细设计:以成熟的j a v a 和关系数据库为基础,对 改进模型中的关键部分进行了详细的设计。 第五章简要介绍镇江给排水系统,并以其中的合同管理模块为例说明 改进事务模型在给排水管理系统中的应用。 第六章结论:总结了论文的研究工作,并给出了进一步的展望。 5 江苏大学硕士研究生学位论文 第二章工作流管理系统中的事务模型 2 1 传统事务概述 事务的概念最早是在数据库领域中提出的。事务是由一系列操作序列构成的 程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单元1 1 6 j 。 事务通常指一组对于物理的或者抽象的应用状态的操作组成的集合。事务处理系 统通常指一个完整的系统,包括应用生成器、操作工具、数据库、外设、网络和 操作系统。数据库事务的概念为基于数据库的软件开发奠定了咯实的基础,它把 程序员从复杂的保证数据库操作完整性的工作中解放出来,使程序员能集中精力 进行数据操作处理,并且事务的概念大大提高了基于数据库的软件系统的可靠 性。 事务与普通程序操作的最大区别是它具有的事务特性,简称为a c i d 特性。 事务所具有的四个特性为: ( 1 ) 原子性( a t o m i c i t y ) :所有关于一个事务的操作必须当成一个原子单元, 即所有的操作或者都成功执行,或者一个都不执行。如对数据库中数据所 做的一系列操作必须全部完成后才能提交,否则所做的部分操作必须全部 取消; ( 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 ) ;事务提交后,对数据的操作结果不会丢失,将持 续保留。 一个事务开始运行后,其结果是难以预测的,为了保障系统赋予事务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 ) :事务完成了所有读写操作,执行完最后一 个语句。 ( 4 ) 事务失败( a b o r t ) :事务在进行某些读写操作后出现异常情况,不能继续 下去或是部分交付后要求撤销其操作结果。 6 江苏大学硕士研究生学位论文 ( 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 ) 事务交付或事务撤销后进入终止状态。 他们之间的状态转化图如下: 图2 1 事务状态转化图 其中的部分提交状态是指当事务结束后,从用户看,事务已经完成,但从系 统看,事务的工作虽已完成,但它产生的结果是否全部保存下来,尚不得而知。 此时事务的状态称为部分提交状态( p a r t i a l l yc o m m i t t e d ) 。 事务特性的提出主要是为了提高数据库的出错恢复能力和数据库系统的可 靠性,目前事务处理的概念已经在许多应用领域得到了应用。经过研究人员多年 的工作,在事务处理领域已经形成了许多用于并发控制、死锁预防、出错恢复等 的一系列机制和方法,这些方法已经成为编制分布应用环境下具有高可靠性的大 规模复杂系统的重要基础。 2 2 高级事务模型 为了更好地描述工作流的事务特性和解决工作流的事务处理问题,人们首先 在数据库模型的基础上提出了许多高级事务模型( a d v a n c e dt r a n s a c t i o n m o d e l ) ,包括嵌套事务模型、s a g a s 、分支汇合事务模型、柔性事务模型、a c t a 等。高级事务模型通常把一系列的操作分组成为层次化的结构,并且放宽了经典 事务模型对a c i d 特性的要求,以便适应不同性质的实际问题,因此又被称为扩 展事务模型。 由于高级事务模型在解决长时间事务方面的问题时仍有很多局限性,人们把 注意力由专门的数据库事务扩展到了工作流这一范围。c o n t r a c t s 模型提出了自 己的高级数据模型和高级并发控制机制,已经具备了一定的工作流描述能力,而 且从解决问题的思路来看,c o n t r a c t s 模型跳出了原有的高级事务模型的局限: 7 江苏大学硕士研究生学位论文 l m i ts h e t h 在对高级事务模型进行研究的基础上则提出了事务工作流的概念, 他完全从工作流的角度提出任务的结构化定义以及基于任务间依赖关系的工作 流定义,还对系统的实现方法提出了有意义的见解。 高级事务模型可以用来实现工作流事务管理是因为以下两方面原斟1 。7 】:一 方面是工作流可以看作是由序对事务组成的有序集合,这些事务对应工作流中的 活动,同时工作流事务序列的一个运行结构对应工作流结构,这个结构可通过扩 展传统的事务模型来定义,并且工作流遵守正确性准则,这个准则可以通过高级 事务模型规格化。另一方面,高级事务模型可以看作是由事务集合以及事务间的 依赖关系的集合这两个集合构成的。事务的依赖关系可以通过正确性准则或事务 运行结构规格化实现,它是扩展事务运行结构定义的事务状态的条件。正确性依 赖关系说明了并发运行的扩展事务保证了结果的一致性和正确性。 下面我们对一些主要的高级事务模型以及c o n t r a c t s 模型、事务工作流进行 介绍。 2 2 1 嵌套事务模型 从经典事务模型到高级事务模型,一个很重要的改进步骤就是由单层结构扩 展为多层结构。嵌套事务模型是把一个事务分解为多个子事务;同时,子事务也 可以继续分解称为更细的子事务,由此形成一棵事务树。如下图所示。 图2 2 事务树的分解 子事务只有在父事务开始之后开始,而父事务只有在所有的子事务全部结束 后才能结束。如果父事务退出,则所有的子事务必须退出,包括已经提交的子事 务也必须撤销;如果某个子事务失败,父事务可以选择自己的恢复方法。同一层 的子事务之间可以同时处于活动状态,但一个子事务不能看到另外一个可能退出 的予事务的更新结果。嵌套事务模型在全局层次上保证了完全的分离性,同时增 加了事务的模块化程度,在失败处理时具有更细的粒度,在事务内部具有更高的 并发性,减少了处理的响应时间【1 8 】。 8 江苏大学硕士研究生学位论文 嵌套事务和软件工程中的模块化技术具有非常大的相似性。实际上,将嵌套 事务模型的概念与软件工程的模块化方法结合起来,利用它们之间的互补性可以 得到较理想的实施效果:模块化设计完成应用的结构化和局部数据结构的封装, 嵌套事务模型保证这些模块使用的全局数据具有独立性并且是可恢复的。 2 2 2 分支汇合事务模型 分支汇合事务( s p l i t 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 ) ”的活动而专门设 计的。所谓“末端开放”是指活动具有不可确定的执行时间、不可预知的发展方 向、与其他并发的活动进行交互等特点。这种高级事务模型通过动态重构正在进 行的事务,解决了多个用户间的合作问题。“分支”命令可以把一个正在进行的 事务分成两个事务,“汇合”命令可以把两个事务合并成为一个事务。与其它事 务模型相比,这种模型在初始化的事务集合与最后提交的事务集合之间不存在简 单的对应关系,因为在事务执行的过程中经历了分支汇合的操作,使得事务被 重新构造,可能无法与最初的事务相对应。分支汇合事务模型如下图所示: t l b ( a ) 分支 t 1 t 1 ( b ) 汇合 图2 3 分支汇台事务模型 分支汇合事务模型实现了一种多用户的合作行为9 j ,通过“分支”和“汇 合”能够把部分事务的处理工作分配给某合作者。另外,如果分支后的某一事 务能够立刻提交,这将增加系统的并发处理能力,因为这将比原来的事务能够更 早地释放某些资源并产生持久的操作结果。 2 2 3s a g a s 模型 h 6 a r c i a - m o l i n a 2 0 1 等人提出了用于解决长事务问题的s a g a s 模型,这种模 型的基本思想是允许事务在全部提交之前能够释放某些占用的资源,它提高了资 源的利用率,同时也增强了系统的事务处理能力。在s a g a s 模型中,一个长事务 由一个预先定义好执行顺序的子事务集合t 和一个相对应的补偿子事务集合c t 组成【2 l 】。子事务集合t 是一个子事务序列t 。,t 2 ,t 。,补偿子事务集合c t 则包括了集合t 中的每一个事务所对应的补偿子事务c t 。,c t :,c t 日。任意一 9 江苏大学硕士研究生学位论文 个子事务t 。都具有a c i d 特性,以保证数据库的一致性。只有当t l ,t 2 ,t n 按顺序依次提交后,一个长事务才被成功地完成,如果其中某个子事务执行失败, 比如是第k 个子事务n ,那么系统将通过执行补偿予事务来撤销n 和前面已经 提交地k 一1 个子事务的操作结果,补偿子事务一般都是逆序执行的。这样,如 果执行过程中,第k 个子事务发生异常,则整个过程的执行顺序为t ,t 2 , n ,c t k ,c t 。,c t 。如下图所示: q 翘雾蟠甲皤胭 盛癌崮曲 l 研l 翻肼2 肾l 研k 卜钊呱l 图2 ,4s a g a s 模型于事务的执行顺序 从图上也可以看出,s a g a s 模型有两条执行路径,一是成功执行所有子事务, l 执行完成后结束;二是在执行子事务r 时出现异常,依次逆序执行补偿子事务 c l ,c t 。,c t 。执行完c t ,后整个流程结束。 s a g a s 放松了对事务操作的分离性的要求,增加了事务间的并发性。在线性 s a g a s 的基础上,h g a r c i a - m o l i n a 等人又进行了扩展,提出了并行s a g a s 模型 和一般s a g a s 模型,引入了必要的并行机制和嵌套机制。s a g a s 为研究人员提出 了一些有价值的想法:把一个需要长时间运行的事务分解成几个部分,同时在各 个部分之间建立明确的控制流与数据流。这种思想与工作流的过程定义非常类 似,只不过后者具有更为复杂的形式。 2 2 ,4 柔性事务模型 柔性事务模型瞄l 最早提出时主要用于异构多数据库环境的上下文管理。在 异构多数据库环境中,每一个局部数据库所执行的操作独立于其他数据库,它可 以单方面使一个事务失败,但是不能强制执行提交一个全局事务。柔性事务模型 中引入了等价事务的概念,在主事务失败的时候,它通过执行相应的等价事务以 期达到同样的效果;它允许设计者指定事务的可接受状态,因此原子性的要求降 低了,另外对补偿事务的支持降低了隔离性的要求。在柔性事务模型中把柔性事 务的子事务分为可补偿事务、可重试事务和支点事务。相应地,在工作流执行过 程中,工作流的活动【2 3 l 也分为:可补偿活动、可重试活动和支点活动。可补偿 事务在提交后可以通过执行它的补偿事务回到事务执行前的状态,可重试事务通 过足够多的次数尝试执行后一定能够最终成功提交。那些既不属于可补偿事务, 也不属于可重试事务的予事务称为支点事务。当然有些事务既属于可补偿事务, 也属于可重试事务的予事务。 江苏大学硕士研究生学位论文 柔性事务模型具有事务失败的弹性处理,这种处理保证即便子事务失败时事 务可能仍然可以成功执行和提交。它允许对柔性事务的子事务的依赖关系进行规 格化,这些关系由事务的内部依赖关系和外部依赖关系构成,内部依赖关系定义 了事务的执行顺序,而外部依赖关系定义的事务执行时的驱动事件。柔性事务模 型还允许用户通过补偿事务来控制事务孤立性大小的粒度。 柔性事务模型改变了工作流管理系统受批评最多的“僵硬”的缺点,它将过 程定义部分工作推迟到运行时完成,以松耦合的方式协调工作流执行过程再定 义,以非常小的代价完成对新的业务过程的支持,即要求有自协调性和重用性 2 a i 。柔性事务模型通过指明全局事务的子事务间的依赖关系来支持对事务执行 的柔性控制。柔性事务的关键是提供备用执行路径。如果一个子事务被取消,那 么提交另外一个子事务并希望它成功执行以完成指定的任务。如果一个柔性事务 的主子事务提交或者备用子事务提交,都可看作是柔性事务的提交。在工作流事 务中,经常用这种备用路径的方法实现对工作流异常的处理【2 5 1 ,从而实现对工 作流分布式事务的保护。 2 2 5a 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 事 务又称活动事务。它具有足够的柔性用以实现对多种扩展事务模型属性的格式化 描述与推理。它强调自身是一个描述这些动作属性的框架。与前面提到的事务模 型相比, c t a 并不是一个单独的事务模型,它实际上是一个元模型。 a c t a 把事务的属性表达为可见性( v i s i b i l i t y ) 、一致性( c o n s i s t e n c y ) 、 恢复性( r e c o v e r y ) 、持久性( p e r m a n e n c e ) ,每一个属性都有相应确定的依据。 它允许采用重要事件来表达事务间的相互依赖关系,这比单纯地用普遍存在的提 交和退出事件来表达事务间的交互要更强大。a c t a 是一个具有开放性质的框架, 不只局限于表达层次化结构的事务。a c t a 的结构框架图如下鲫: c 事务视图事务冲突集代理 1 1 江苏大学硕士研究生学位论文 图2 j a c t a 结构框架图 在a c t a 框架下,一个事务模型的定义由一个公理集构成。在这个公理集中, 通常定义了有关该模型中事务历史的不变式断言,也有可能是操作的前条件、后 条件或事务管理原语。a c t a 支持对已经存在的各种事务模型的定义和分析, r a m a m r i t h a m 等人已把原子事务、分布事务、嵌套事务以及分支汇合事务、s a g a s 等用a c t a 框架进行了描述,给出了每一种模型的公理化定义。同时,a c t a 还可 以通过对属性的修改和综合,来建立新的事务模型。这些新的事务模型可以由用 户针对不同的应用环境与应用需求进行定制,所以,a c t a 还是一种开发新型事 务模型的有力工具。 2 3 工作流事务模型 2 3 1 c o n t r a c t s 事务 c o n t r a c t 模型【2 s l 是a n d r e a sr e u t e r 等人在德国s t u t t g a r t 大学的 c o n t r a c t s 研究项目中提出的,其目的是寻求解决数据库中长时间计算事务的方 法。项目启动之初,c o n t r a c t s 研究人员尝试用s a g a s 、柔性事务、分支事务等 高级事务模型来实现,但是研究结果认为:扩展原有的事务模型并不能解决问题, 因为长时间的计算过程要比一个具有a c i d 特性的事务复杂得多,不具有完备的 a c i d 特性的事务实际上是没有应用价值的;对长时自j 事务的管理需要一个系统 的方法,不能仅仅在原有模型的基础上修修补补;对于一般简单的事务可能只在 系统中存留1 0 _ 1 秒,而对于可能执行几年的过程来说它将存留1 0 8 秒这种数量 级上的变化将导致事务本质的变化,宏观与微观的差距将使它们的一致性问题变 得各具特色,决不能一概而论。 一个“c o n t r a c t ”可以理解为一个过程,它是由一系列定义好的步骤,这些 步骤按照一定的控制流脚本进行执行。在c o n t r a c t 脚本中,包含了对c o n t r a c t s 局部变量的声明,这些变量就是构成c o n t r a c t s 数据模型的基本元素,他们被保 存在可靠的、事务性的存储器中,只能由定义它们的c o n t r a c t s 来访问。为了避 免全局的分离性,过程中的某些操作结果有可能在过程尚在执行的过程中就已对 外可见了,因此,c o n t r a c

温馨提示

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

评论

0/150

提交评论