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

(计算机应用技术专业论文)基于web服务的工作流长事务处理的研究.pdf.pdf 免费下载

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

文档简介

摘要 企业应用集成和电子商务等系统利用w e b 服务,在工作流技 术的保障下,实现了企业间以及企业内的业务流程管理( b p m ) , 使得整个互联网成为一个整合了各种服务的工作流程的有机整 体。事务处理技术是保证信息可靠性和一致性的关键技术。 本文首先讨论了w e b 服务工作流程事务框架,给出了框架的 组成。对w e b 服务工作流的事务模型、事务协同协议和事务异常 处理做了介绍和归类整理。提出了一个w e b 服务工作流程事务模 型w t b w s ,定义了基于预申请和功能替代的w e b 服务流程长事 务,并给出了该模型的事务阶段和协同协议。基于w t b w s 的特 点,本文给出了w t b w s 的设计,描述了w t b w s 的架构、各组 成部分之间的关系,并给出了其中关键性组件的设计及它们之间 的协同。接下来,在w t b w s 模型上提出了基于事务语义和e c a 规则的异常恢复和失败处理策略,保证了在w e b 服务运行出现异 常乃至流程失败后能到达可预测的结果,从而进一步保障了流程 事务的一致性。最后,介绍了w e b 服务在邮政业务系统中的应用, 将w t b w s 模型和e c a 异常处理规则运用到其报刊预订业务流程 中,并在业务流程描述语言b p e l 4 w s 中添加事务上下文信息, 用其描述该流程事务过程。 关键词长事务,w e b 服务,工作流,事务模型,e c a 规则 w i t ht h ew o r k f l o wt e c h n o l o g y , e - c o m m e r c ea n de a is y s t e m s u t i l i z ew e bs e r v i c et oi m p l e m e n tt h eb u s i n e s sp r o c e s sm a n a g e m e n t w i t h i nt h e e n t e r p r i s ea n da m o n gt h e m ,f i n a l l ym a k et h ei n t e r n e t b e c o m ea ne n t i t yw h i c hi n t e g r a t i o nm a n yw e bs e r v i c e t r a n s a c t i o n p r o c e s si s ak e yt e c h n o l o g yt og u a r a n t e et h ei n f o r m a t i o nr e l i a b i l i t y a n dc o n s i s t e n c e t h i sp a p e rf i r m l yd i s c u s s e st h ew e bs e r v i c et r a n s a c t i o np l a t f o r m , a n dg i v e st h ea r c h i t e c t u r eo ft h ep l a t f o r m i nt h ea r c h i t e c t u r e ,w e i n t r o d u c et h et r a n s a c t i o nm o d e l ,t r a n s a c t i o nc o l l a b o r a t i o np r o t o c o la n d t r a n s a c t i o nd e s c r i p t i o nl a n g u a g eo fw e bs e r v i c ep r o c e s s t h i sp a p e r b r i n gf o r w a r daw o r k f l o wt r a n s a c t i o nm o d e lo f w e bs e r v i c e - w t b w s , a n dd e f i n e sw e bs e r v i c e p r o c e s s t r a n s a c t i o nb a s e do n a p p l y b e f o r e h a n da n df u n c t i o n a la l t e r n a t i o nc h a r a c t e r i s t i c s ,a n di n t r o d u c e t h e i rc o l l a b o r a t i o np r o t o c o l s b a s e do nt h ew t b w s sc h a r a c t e r s ,w e g i v et h er e a l i z a t i o nd e s i g no fw t b w s i n t h ed e s i g n ,w ed e s c r i b et h e r e a l i z a t i o na r c h i t e c t u r ea n dt h er e l a t i o n s h i po fe a c hp a r t ,a n dg i v et h e d e t a i ld e s i g no ft h ek e yc o m p o n e n t so ft h er e a l i z a t i o no fw t b w s n e x t ,t h i sp a p e rp r o p o s e se x c e p t i o nr e c o v e ra n df a i l u r em a n a g e s t r a t e g yb a s e do nt r a n s a c t i o n a l s e m a n t i ca n de c ar u l e so nt h e w t b w sm o d e l i tg u a r a n t e e st h a tw e bs e r v i c ec a ng e tp r e d i c t a b l e r e s u l t sa f t e rf a i l u r e ,t h e r e b yf u r t h e rp r o t e c t i n gt h ec o n s i s t e n c yo ft h e w o r k f l o w t r a n s a c t i o n f i n a l l y , t h ep a p e ri n t r o d u c e sw e bs e r v i c e a p p l i c a t i o n s u t i l i z a t i o no nt h es y s t e mo f p o s t a ls e r v i c e s t h ew t b w s m o d e la n de c ar u l e sw i l l a p p l yt o t h e n e w s p a p e r so r d e r i n g w o r k f l o wt r a n s a c t i o np r o c e s s ,m e a n w h i l ei tw i l la d d i n gt r a n s c a t i o n c o n t e x ti n f o r m a t i o n st ot h eb p e l 4 w st od e s r i b et h ep r o c e s s k e yw o r d sl o n gt r a n s a c t i o n ,w e bs e r v i c e ,w o r k f l o w , t r a n s a c t i o n m o d e l ,e c ar u l e s 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研 究工作及取得的研究成果。尽我所知,除了论文中特别加以标注 和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究 成果,也不包含为获得中南大学或其他单位的学位或证书而使用 过的材料。与我共同工作的同志对本研究所作的贡献均已在论文 中作了明确的说明。 作者签名: 日期:上丑年三月阜日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学 校有权保留学位论文,允许学位论文被查阅和借阅;学校可以公 布学位论文的全部或部分内容,可以采用复印、缩印或其它手段 保存学位论文;学校可根据国家或湖南省有关部门规定送交学位 论文。 作者签名:导师羔塾翌竺垫日期:迎年片兰画 硕士学位论文第一章绪论 1 1 研究背景 第一章绪论 w e b 服务是随着w w w 的发展和x m l 的出现而迅速发展起来的一项新 技术。w 曲提供了一种在全球范围内共享和分布信息的方式,并且充当了人 和应用之间交互的媒介。通过信息的结构化表示,x m l 的出现使得异构环境 能够在w w w 上共享信息,而w e b 服务则实现了应用之间通信消息的结构 化,提升了基于w e b 的应用之间的交互能力,使大规模的资源共享成为可能。 w 曲服务具有独立性和自描述的特点,可以通过互联网或企业内部网发 现和调用。通过w 曲服务,可以包装现有的业务流程,搜索和订阅其它服务, 从而实现跨越企业边界的信息交换。w 曲服务是在互联网上实现应用间交互 的关键技术【”。企业应用集成和电子商务等系统利用w e b 服务,在工作流技 术的保障下,实现了企业间以及企业内的业务流程管理( b u s s i n e s sp r o c e s s m a n a g e m e n t ,简称b p m ) ,从而将业务流程扩展到整个i n t e r n e 上,有效的 利用了i n t e m e t 上现有的服务,增强了互联网上的交互能力,最终使得整个 互联网成为一个整合了各种服务的业务流程的有机整体。目前,各个标准化 组织制定了许多w e b 服务的流程协作规范,在业务流程管理( b p m ) 上得到 了广泛的应用。 事务处理最早源于d b m s 。是保证共享数据的并发访问一致性和失效恢 复正确性的关键技术。事务是构成一个逻辑工作单元的操作集合,是一种用 来确保应用程序中的所有参与方都能达到彼此已达成协定的输出结果的机 制。事务是具有原子性、一致性、隔离性和持久性( a t o m i c i t y , c o n s i s t e n c y , i s o l m i o na n dd u r a b i l i t y ,简称a c i d ) 【2 】的原子操作序列。 对事务处理技术的研究包括事务模型和事务处理的核心技术。事务模型 从事务实际应用的结构和流程建模方面对事务进行讨论,各种事务模型反映 了系统设计中通过原子性和隔离性进行的简化与其所付出的代价之间的权衡 结果。事务处理的核心技术包括:并发控制、恢复和提交协议。并发控制目 的在于保证多个并发执行事务的最终执行效果等价于某种串行化执行的效 果,即保证执行的串行等价性( s e r i a le q u i v a l e n c e ) 。目前有三种常用并发控 制方法:锁机制、时间戳机制和乐观并发控制1 3 1 7 1 ,实用系统( 例如d b m s ) 一般利用锁机制。恢复处理针对事务处理过程中出现的各种故障,保证事务 的一致性【4 】。恢复的主要手段是日志技术,s a g a 5 】提出了补偿事务的恢复机制 用于解决长事务的一致性问题。提交协议保证了事务的原子性,事务的原子 硕士学位论文 第一章绪论 特性要求事务结束时,它的所有操作要么全部成功,要么全部取消。常用的 提交协议有单阶段提交协议和j g r a y 提出的两阶段提交协议【6 j 。 一方面,w 曲服务工作流需要由传统事务机制所提供的协调行为来控制 应用程序的各项操作和输出结果;另一方面,w e b 服务工作流还需要能够以 一种更灵活的方式来协调对多个服务的输出状态或结果进行处理。这就需要 形式更松散的事务这些事务并不严格遵循a c i d 属性。这两方面的需求 引出了w 曲服务长运行工作流事务。由于w 曲服务所处的松耦合环境和工 作流事务长时间运行的特点,我们无法采用锁技术来保证流程事务的严格 a c i d 属性,长运行工作流事务需要放松的事务a c i d 属性,我们可以采用 s a g a 的思想,通过补偿事务来满足整个流程事务放松的原子性和一致性。 在w 曲服务工作流程的应用中,存在大量的长运行工作流事务的需求。 如基于s o a 的保险电子商务系统,在客户网上投保的流程中,需要利用长运 行流程事务来保证客户投保服务、银行网上支付服务、业务系统承保服务、 电子投保单邮寄服务、短信通知服务等服务问调用的放松原子性和一致性。 1 2w e b 服务工作流事务的研究现状和问题总结 1 2 1 研究现状 对w e b 服务事务的研究来自于对i n t e m e t 上应用系统集成的可靠性的研 究。相比上世纪9 0 年代,企业应用从最开始无序和孤立的状态,步向有序和 协同工作发展,并且这种协同性的要求跨越了i n t r a n e t 的边界。如何在i n t e m e t 所处的分布式松耦合环境下,保证应用系统整合集成的可靠性是大家所关注 的重点。h p 实验室的a s a h a i 、j o u y a n g 等提出了分布相关性方法,目的是 保证分布式松耦合环境下,跨越多重服务的会话和事务的端到端的相关性 1 5 l 】。分布式相关性机制不需要一个集中的相关性引擎,它在服务之间交换文 档数据的同时传送相关性数据( 如事务上下文) 。根据分布式相关性的要求, 他们提出了m ip r o t o c o l ( m a n a g e m e n ti n f o r m a t i o np r o t o c 0 1 ) ,并围绕该协议提 出了m i a p i 和m is t r u c t u r e 。这种方法通过m is t r u c t u r e 的约定,统一了不同 的网络服务的实现;通过m is t r u c t u r e 中的p o l i c y ,服务的请求者可以加入自 己对服务的策略要求:由于相关性数据包含在请求和应答中,所以不需要一 个相关性管理的中心负责维护交互双方的相关性,减少了网络上的交互次数, 降低了对网络质量的依赖。这种方法同时也面临很多挑战:网络服务交互层 次的增长会迅速的增加交互的相关性数据m is t r u c t u r e 的大小;另外,只有当 服务的请求返回时,调用者才能了解整个服务调用及其相关的管理信息。 2 硕士学位论文第一章绪论 x i p ( e s e r v i c et r a n s a c t i o ni n t e r n e tp r o t o c 0 1 ) 为提供网络上服务的事务支 持给出了一种新的方案d 0 1 。该方案包括两个部分:第一部分系统性的提出了 保证i n t e r a c t 事务语义的乐观提交协议;第二部分为已提交事务的补偿提出 了个事务撤销算法。与传统的基于补偿的方法不同,事务的撤销是通过对后 端数据库服务器调用的拦截。因此,该算法对事务的撤销是透明的,不需要 应用的任何参于。 i b m 的s 1 越、t a m i k a l s e n 等在a e m ( a d v a n c e de n t e r p r i s em i d d l e w a r e ) 的子研究项目d s p h e r e 中提出了对消息事务架构的两阶段提交协议的扩展 i 2 9 1 。传统消息中间件对分布式事务的支持主要是对持久消息的保证。d s p h e r e 在此基础上,提供了关键事务消息条件的并发评估,从而支持应用对消息成 功的定义。d s p h e r e 对消息成功的评估使用“w o r r y i n g p a r e n t m o d e l ”的方法, 提供了与事务中间件类似的事务协议。如果消息失败,d s p h e r e 宣告事务失 败,从而开启恢复。d s p h e r e 支持恢复的消息补偿:当进行消息恢复时,撤 销还未发送的消息,同时发送预先定义的补偿消息到已接收到消息的参与者。 定义基于i n t e m e t 的事务协议,简化分布式应用的编程,t i p ( t r a n s a c t i o n i n t e m e tp r o t o c 0 1 ) 应该是最早的尝试之_ 3 0 1 。传统的分布式事务采用o n e - p i p e 模型。事务协议流和应用交互流通过相同的管道。这样的模型在i n t e m e t 上 实现非常复杂,1 1 p 采用t w o p i p e 模型分离了事务协议和应用交互协议,简 化了传统的分布式事务模型,为i n t e m e t 异构环境提供了分布式的事务支持。 虽然t i p 为基于2 p c 协议的短事务提供了灵活的适应性,却不能适用于长运 行的流程事务。不过它将应用语义与事务协议分离的想法对于w e b 服务的事 务支持是有借鉴意义的。 对于w e b 服务事务中的长事务来说,补偿事务是主要的维护一致性的手 段。但是,并不是所有的商业事务( 一般来说是长事务) 都可以进行补偿, 如网上购票服务就是一种不可补偿的商业活动。为了解决不可补偿的商业事 务。同时,出于性能、时间等各方面的考虑,尽量减少补偿事务的产生,w 3 c 提出了t i - i p ( t e n t a t i v eh o l dp r o t o c 0 1 ) 【3 l 】。t h p 的思想主要是预约,暂时保 持有可能使用的资源,当全部资源的预约都成功后,发起商业事务。t h p 协调 者分布在客户和资源拥有者两端,负责双方的协议通信。客户的预约采用异 步方式,无需等待结果。同时提供客户对资源预约的通知、查询、请求、取 消等能力。t h p 与商业事务的配合提高了商业事务的成功率,减少了补偿事 务的发生。 b e a 、c h o r e o l o g y 和h p 向o a s i s 组织提交了b t p ( b u s i n e s st r a n s c a t i o n p r o t o c 0 1 ) 。b t p 标准定义了x m l 信息传递,以便提供跨越i m e m e t 中多个实 体的商业级的事务处理能力【3 2 1 。b t p 模型中有两种事务类型:原子事务 硕士学位论文第一章绪论 ( a t o m s ) 和聚合事务( c o h e s i o n s ) 。b t p 中的原子事务基于两阶段提交协议, 适用于时间短的交互,遵从事务a c i d 的属性要求。原子事务可以被组合为 聚合事务,满足长事务的要求,提供松散的原子性。模型中规定了三种角色: 事务初始化者、事务协调者和事务参与者。事务初始化者是向w e b 服务发起 调用的应用,事务协调者是实现了b t p 模型的组件,它指导事务参与者完成 协调信息的交互:如p r e p a r e 、v o t e 、c o n f i r m 等。b t p 模型与传统的基于两阶 段提交协议的事务模型最大的不同在于在提交阶段不需要对资源进行锁定, 这样提高了w e b 服务资源的并发性,不过牺牲了资源的严格一致性。对于 w e b 服务所处的松耦合环境,这种取舍保证了大多数商业事务的要求。 i b m 和m i c r o s o f t 联手将原来的x l a n g 和w s f i 融合,提供了新的w e b 服务标准。其中w s t r a l l s a c t i o n 【3 3 1 和w s c o o r d i n a t i o n 【3 4 】是有关不同企业间计 算机进行高可靠性和长持久性的w e b 服务协作的标准。具体说来, w s c o o r d i n a t i o n 定义的是w e b 服务合作机制,而w s - t r a n s a c t i o n 则定义了 监视合作机制是否正常运转的程序。w s c o o r d i n a t i o n 和w s t r a n s a c t i o n 作为 b p e l 规范的补充,提高了长运行事务的可靠性。并提供了很好的可扩展性 和互操作性。w s c o o r d i n a t i o n 通过上下文共享为分布式应用活动的协调提供 了一个框架,w s t r a n s a c t i o n 则提供了原子事务和长事务的标准,为分布式 应用活动的协调提供具体的协议。 另外,w e b t r a n s a e t 事务处理框架【3 5 】为自治、异构环境中建立可靠的w e b 服务合成提供必要的基础设施。e f l o w l 3 6 i 是h p 实验室开发的服务合成系统, 将需要作为一个整体完成的一组服务定义为事务区,可为其定义不同的隔离 模式,支持事务区服务补偿机制。其他研究包括悉尼大学的松耦合环境中的 事务管理【3 7 】和g r a y 提出的改进的事务提交协议1 3 8 i 等。文献1 3 9 l 基于移动 a g e n t 技术,提出并初步实现了p 2 p 的事务性过程执行一致性保证机制。 1 2 2 问题总结 综上所述,现有的规范和研究成果在w e b 服务流程事务领域做出了许多 令人瞩目的成果,为w e b 服务工作流程的成功实施提供了可靠性的保障。然 而,我们也可以看出,现有研究成果还不完善,还存在许多待解决的问题。 这节我们对这些问题做了分析和总结。 ( 1 1 平面事务模型对长运行工作流事务的不适用 平面事务模型要求保证严格的a c i d 属性,在整个工作流事务没有结束 前,流程内部的状态变化不能被其它流程事务所察觉。这要求利用锁机制等 方式保证流程所涉及服务的隔离性。对于长运行工作流事务来说,加锁的方 式是无法接受的,这样会造成极低的并发性。可以考虑放松该事务的一致性, 4 硕士学位论文第一章绪论 在流程没有结束前,允许内部的服务所涉及的事务提交,若之后发生回滚, 利用预先注册的补偿事务完成一致性的保障。这个思想来自s a g a ,也是工作 流事务保障放松原子性和一致性的主要手段。 ( 2 ) 补偿回滚的代价太高 如上所述,对于长运行工作流事务来说,主要通过补偿事务来保证放松 的原子性和一致性。然而,当回滚真正发生时大量的补偿事务需要唤起,对 于整个系统来说代价太高。特别是如果长运行的工作流事务执行了大部分的 工作后再回滚。所以一方面考虑在某个服务事务失败后对整个流程事务的影 响决定权交给工作流和w e b 服务本身,另一方面是否可以考虑事先对流程事 务进行一些处理,减少补偿回滚的发生。 ( 3 ) 对w e b 语义相同的w e b 服务的利用和处理 i n t e m e t i n t r a n e t 上存在大量的w e b 语义相同的w e b 服务,可以考虑利用 该特点增强工作流的事务保障,从而进一步减少补偿回滚的发生。现有的 w e b 服务工作流事务规范和研究项目都试图根据w e b 服务工作流程的特点, 解决以上的关键性问题。这些工作为w e b 服务工作流的可靠性做出了大量的 贡献。同时我们也注意到,w e b 服务工作流事务的研究尚不充分,本文工作 就是针对w e b 服务工作流事务中的上述问题进行更加深入的研究。 ( 4 ) 异常发生时没有根据不同的事务语义进行相应的处理 在w e b 服务工作流执行过程中,不同的w e b 服务具有不同的事务语义 属性,如可补偿事务、可重复事务、关键事务以及可替代事务等。当异常发 生时,可以根据不同的事务语义属性进行不同的异常处理。比如,当发生异 常的事务是可替代事务时,系统可以执行它的替代w e b 服务达到相同的效果。 1 3 论文的主要工作 论文工作主要围绕w e b 服务工作流事务中以下几个方面的问题展开研 究: ( 1 ) w e b 服务工作流事务框架的讨论和分析 w 曲服务工作流事务框架协调分布异构的业务功能服务,保证它们之间 的协同工作,以及预测事务流程的结果,从而将松耦合的w e b 服务协调并结 合成一个工作流事务。它使得工作流程在流程规定的不同持久状态间迁移, 最大程度的保障了工作流程的可靠性。w e b 服务工作流程事务框架位于w e b 服务工作流程协同架构之上,依赖w e b 服务工作流程协同完成复杂的流程定 义、服务调用,控制数据的流向以及异常处理和流程的生命周期控制。本文 讨论和分析了w e b 服务工作流程事务框架的组成,结合现有的规范和研究成 5 硕士学位论文 第一章绪论 果对框架的各组成部分做了详细的分析。 ( 2 ) w e b 服务工作流程事务模型w t b w s ( w o r k f l o w t r a n s a c t i o nb a s e do i l w 曲s e r v i c e ) w e b 服务工作流的事务模型是研究w e b 服务工作流事务的理论基础。 w e b 服务工作流事务模型应该包括定义w e b 服务工作流事务的结构及其执 行。本文提出的基于预申请和功能替代的w e b 服务工作流长事务通过预申请 阶段,预订流程长事务所需资源,从而在工作流事务的执行过程中减少了并 发的冲突,尽可能的减少了补偿回滚的发生。另外,利用网络上存在w e b 语 义相同的w e b 服务的特性,在服务事务调用失败时,发起对另一个w e b 语 义相同的服务事务的调用,从而大大提高了工作流事务的成功率,减少了补 偿回滚的发生。 ( 3 ) 定义w e b 服务事务语义和使用e c a 规则进行事务异常和失败处理 在w e b 服务描述语言w s d l 中添加w e b 服务的事务语义属性【8 一,用来说 明该w e b 服务是否可补偿事务,可重做事务等。当一个w e b 服务事务异常发 生后,采用事件监视器来捕获该事件,然后依据事件一条件一动作 ( e v e n t c o n d i t i o n - a c t i o n ,简称e c a ) 规则进行条件判断,选择合适 的执行动作。判断的依据是该w e b 服务的事务语义属性,根据不同的事务语 义执行不同的恢复策略。 h ) w e b 服务工作流事务模型w t b w s 的设计 基于w t b w s 的特点,本文给出了w t b w s 的设计,在w t b w s 的设计中, 我们描述了w t b w s 的架构、各组成部分之间的关系,并给出了其中关键性 组件的设计及它们之间的协同。我们使用b p e i a w s 语言【1 0 】来作为描述语言, 配合w e b 服务所处的底层系统所提供的服务,为w e b 服务工作流事务提供了 可靠性保障。 ( 5 ) 将w t b w s 事务模型应用在实际的业务流程中,描述流程的执行过 程,并扩展b p e l 4 w s 流程描述语言,在b p e l 4 w s 中添加事务上下文用来 表示流程事务信息,为w e b 服务工作流提供了可靠性保障。 1 4 论文的组织 论文的后续章节按以下方式组织: 第二章首先详细的分析了事务处理技术、w e b 服务以及w e b 服务工作流 事务方面的研究成果,之后讨论和分析了w e b 服务工作流事务框架以及w e b 服务工作流事务的事务属性要求,探讨了w e b 服务工作流事务框架的意义和 作用,然后结合现有的规范和研究成果分析了w e b 服务工作流事务框架的各 6 硕士学位论文第一章绪论 个组成部分。这一章为本文后面的研究工作做了框架性的指导。 第三章提出了w e b 服务工作流事务模型w t b w s ,该模型定义了基于预 申请和功能替代的w e b 服务工作流长事务。本章还定义了该模型在不同事务 阶段的状态变迁。w t b w s 事务模型是全文工作的核心,该模型的提出是为 了解决第二章所提出的问题。 第四章给出了w t b w s 的设计,描述了w t b w s 的架构、各组成部分之间 的关系,并给出了其中关键性组件的设计及它们之间的交互。 第五章在w t b w s 模型的基础上对w e b 服务事务异常处理与恢复进行了 研究,提出e c a 事务异常和失败处理规则,给出w e b 服务事务语义的定义以 及基于e c a 事务处理规则的异常监测模型。 第六章介绍了w t b w s 事务模型在邮政业务系统中的应用,定义了报刊 预订业务的事务流程,并扩展w e b 服务流程描述语言b p e l 4 w s ,在其上添加 事务上下文信息描述了该流程的执行过程。 第七章对全文工作进行了总结。列举了论文工作的主要工作,并且对进 一步研究提出展望。 7 硕士学位论文第二章w e b 服务工作流事务技术及框架 第二章w e b 服务工作流事务技术及框架 2 1 事务介绍 2 1 1 并发控制和恢复 并发是分布式系统的内在特征,然而并发性和并发程序之闻的交互性是 很难处理的。基于这个原因,事务处理系统要努力让程序运行在隔离的环境 中,让大量的独立的事务在共享的数据库上并行运行。利用并发控制方法可 以合理地调度事务,使它们的执行效果等价于某种串行化的执行效果,从而 保证资源更新的一致性。常用的三种并发控制方法分别是锁方法、乐观并发 控制方式和时问戳方式嘲。 绝大部分系统都用了封锁机制来实现这种环境,通过让事务在访问对象 前加锁并一直保持到事务提交时才释放。可以保证每一个事务的执行不会有 并发异常。该思想的改进是谓词封锁和粒度锁,允许事务动态调整封锁粒度。 使用封锁和隔离性定理,事务处理系统可以自动设置锁来保证隔离性1 。 降低隔离级别是减少一个事务某一时间内封锁性的一项技术。减少封锁 数量和持续时问,可以减少该事务对其他事务的影响,并增大其并发执行的 机会。锁不能获得时,一些事务必须等待。等待导致锁调度和全局系统资源 调度之间的交互作用。耳前任何系统提供的交互都不能够令人满意。死锁是 等待的极端情况,往往通过回滚来解决,简单分析模型指出等待和死锁以多 道程序数量的平方级速度而增大。这里也是封锁和资源调度之间的一种交互。 在乐观并发控制中,事务访问数据时不考虑是否产生冲突,而在事务提 交时再验证执行过程中是否存在访问冲突。如果验证的结果是没有冲突,那 么事务将成功提交;如果发现存在冲突,那么该事务将被回滚并重新运行。 在时间戳方式中,每个事务在开始执行时被附上一个时间戳标记。共享 数据一旦被某个事务访问,那么该数据也被标记上该事务的时间戳。如果事 务访问数据时发现数据的时问戳晚于该事务的数据戳,这表明数据已经被一 个更晚的事务访问,当前事务将被放弃。时间戳方式利用时间戳为并发事务 确定了一个全序关系,并发事务的执行效果正对应了这个全序关系,因此是 一种串行等价的执行。 这三种并发控制方法在处理操作冲突的策略方面不同,锁方式采用“悲 观”策略,即通过阻塞冲突操作而避免不一致更新。乐观并发控制方式和时 间戳方式采用“乐观”策略。乐观并发控制假设绝大多数事务访问不同的数 8 硕士学位论文第二章w e b 服务工作流事务技术及框架 据,而时间戳方式假设绝大多数冲突操作总是按照事务的时间戳次序执行。 当冲突发生时,锁方式要求事务阻塞等待,可能会引起死锁:乐观并发控制 方式不阻塞事务,不会产生死锁,而时间戳方式只会要求事务等待较早的事 务,因此不会形成循环等待,也不会引起死锁【6 ”j 。 事务处理通常要处理三类故障:事务故障( t r a n s a c t i o nf a i l u r e ) 、系统故 障( s y s t e mf a i l u r e ) 和介质故障( m e d i af a i l u r e ) 。事务故障是指事务执行过程 中主动或者被动放弃回滚。系统故障是指由于软件或者硬件故障造成操作系 统崩溃,而使内存中存放的所有数据丢失。介质故障是最严重的故障,此类 故障发生时,持久存储发生部分或者全部数据丢失。 先写日志w a l ( w r i t e a h e a dl o g g i n g ) b 2 】和阴影页( s h a d o w - p a g e ) 是两 种常用的恢复处理方式。在w a l 方式下,更新后的数据页直接覆盖磁盘上 的原始页,即实现原地更新( i n p l a c eu p d a t i n g ) 。在阴影页方式下,更新后的 数据页必须写到一个新地址处,原有的页面须保留到下一次检查点( c h e e k p o i n t ) 。当进行事务提交处理或检查点处理时,由于需要暂时中断系统的所有 访问,并将原始页面全部丢弃,同时更新页面表,因此阴影页方式下检查点 代价过大。目前,商用系统基本上都采用w a l 方式。 2 1 2 提交协议 事务的原予特性要求分布式事务结束时,它的所有操作或者全部成功, 或者全部取消。就分布式事务而言,客户端调用了多个服务器上的操作。事 务在客户端发起提交或放弃。一个保证事务原子性的简单方法是让协调者不 断地向所有参与者发送提交或放弃请求,直到所有参与者执行完相应操作并 发回确认。这种方法是一种单阶段提交协议1 1 2 1 。 但是这种简单的单阶段提交协议存在缺陷,如果客户端发出命令后,该 协议不允许任何服务器单方面放弃事务,由于各种并发控制方面的原因服务 器可能不能提交事务。通常,不正确的输入数据、死锁和超时等原因都有可 能引起与应用相关的回滚,还可能引起与资源管理器相关的回滚,如:违背 完整性约束。 两阶段提交协议( t w op h a s ec o m m i t ,简称2 p c ) 【5 0 1 的设计出发点是允 许任何一个服务器可自行放弃事务。它把分布式事务的某一个代理( 根代理) 指定为协调者,所有其它代理称为参与者,目的是要实现分布式事务的唯一 性与一致性。2 p c 分两个阶段,第一阶段为表决阶段。协调者向所有参与者 发p r e p a r e 消息,记入l o g ,启动t t m e o u t 后进入等待;参与者收到p r e p a t _ c 消息后,如本事务c o m m i t ,则向协调者发r e a d y 消息,如本事务a b o r t ,则 向协调者发a b o r t 消息,记入l o g 。参与者具有单方面撤销本事务的决定权, 9 硕士学位论文第二章w e b 服务工作流事务技术及框架 协调者收集所有参与者的消息。如果所有参与者均回答r e a d y ,协调者向所 有的参与者发c o m m i t 命令,否则,向参与者发a b o r t 命令;如t i m c o u t 超时, 吐三向参与者发a b o r t 命令,记入l o g 。第二阶段为执行阶段,参与者根据协 调者的命令提交事务或撤销事务,向协调者发送a c k n o w l e d g e 消息。记入l o g 。 涛凋者等待所有参与者的a c k n o w l e d g e 消息,记入l o g 后结束。2 p c 协议可 以表示为图2 1 所示的状态图形式。其中圆形表示状态,边表示状态转换。 边的标号为收到的消息和发出的消息。 超时, 协调者 2 1 3 事务模型 参与者 图2 - 12 p c 协议的状态图 i 平面事务模型 平面事务是所有事务类型中最简单的一种。是应用程序成为原子操作的 基本组成模块。它可以包括任意数目的简单操作,如果需要这些操作既可以 是受保护的也可以是实操作,甚至可以是无保护的。将平面事务看作是一个 由受保护的或实操作序列组成的执行单元使得从应用程序角度看整个事务是 不可分割的。这些事务被称为平面的是因为应用程序的控制只有一层。由 b e g i nw o r k 和c o m m i tw o r k 括起来的部分处于同一个层次。也就是说, 事务既不与其他语句共存( 如提交) 也不会被其它语句回滚( 如中止) 。 平面事务的原子性表明它出现在三种不同的情况中。第一种是提交的情 况( “要么全做,要么全不做”的“全做”的情况) 。其他两种是“全不做” 的情况,不是因为事务放弃就是因为外界的事件使事务不能完成,如超时或 崩溃【3 1 。 1 0 硕士学位论文第二章w e b 服务工作流事务技术及框架 分布事务一般是平面事务,它应用于分布环境下,因此必须根据数据的 位置来访问网络中的节点。分布事务的子事务分解不反映执行程序的层次结 构,而是由数据的网络分布决定的。因此,子事务不是运行在较低的控制层 次上,如x o p e n 分布式事务处理模型d t p ,该模型由三个组件构成:应用 程序( a p ) ,资源管理器( r m ) 和事务管理器( t m ) ,x o p e n 定义了这三 者之间的接口,其中应用最广泛的是资源管理器和事务管理器的接口_ x a 接口。x a 接口提供了来自不同厂商的资源管理器和事务管理器之间的互操 作规范。 图2 - 2 x o p e n 事务处理模型 ,提交、中止 如图2 2 所示,应用发起一个被本地事务管理器管理的事务,应用调用 了资源管理器后,资源管理器就加入到了事务中。当应用提交或中止时,事 务管理器把结果通知每个资源管理器。在这个模型中,资源管理器有私有锁 和日志,事务管理器对事务日志不进行u n d o 扫描。 当分布式事务涉及到多个事务管理器的时候,就要比上述复杂多了。提 交事务过程中这些事务管理器必须合作。应用开始一个由本地事务管理器管 理的事务,当应用或者代表应用的一些资源管理器发出一个远程请求时,每 一个节点的通讯管理器把事务的输入和输出结果通知本地事务管理器。每一 个节点的事务管理器管理本节点上事务的工作。当事务提交或中止时,事务 管理器互相合作提供原子性和永久性的提交。 事务的分布不反映事务的层次结构,无论事务是否分布,平面事务的研 究重点集中在以下四个方面:崩溃发生时的原子性、关于一致性限制的控制 状态转换、并发环境的隔离执行、外存介质失败时结果的持久性。这些性质 也就是我们所说的a c i d 属性,平面事务提供一个执行框架来管理所有这四 个方面。 硕士学位论文第二章w e b 服务工作流事务技术及框架 2 高级事务模型 平面事务的主要限制是不能提交或中止事务的某一部分,或分几个步骤 提交结果。平面事务适用于短事务,而在处理长时间事务时存在根本性不足。 利用平面事务模型执行长时间事务时,由于过多占用的系统资源不能及时释 放,降低了系统的并发度和性能。 ( 1 ) 嵌套事务 为了解决平面事务所遇到的困难,基于平面事务发展了许多扩展事务模 型,计算机科学家使用他们熟悉的递归建立了嵌套事务1 1 3 】的概念。从事a r g u s 工程的e l l i o tm o s s 1 4 1 描述了层次化结构事务的设计。它包含了恢复和提交控 制的嵌套范围的基本规则,从根本上提供了就事务而言的控制区域的一般思 想。 嵌套事务的出发点是将平面事务扩充成一个层次结构。一个嵌套事务由 一些子事务组成,每个子事务可以递归地包含自己的子事务,从而组成了一 颗事务树。只有当父事务开始之后,子事务才能运行,并且只有在所有的子 事务结束后,父事务才能结束。当父事务回滚时,它的所有子事务也必须回 滚。但是如果有一个子事务出现故障时,父事务可以进行灵活的故障处理。 嵌套事务模型在顶层事务之间提供了完全的隔离,但是在子事务之间允许相 互读取更新后的数据。当执行一个子事务时,子事务将从父事务继承需要的 锁,在子事务执行完毕时,再将锁归还给父事务【1 2 1 。 ( 2 ) 链事务 人们发现一旦程序发生错误就放弃整个事务是个不可取的解决方法,因 此引入了保存点思想,链事务可以看作是保存点思想的一种实现,允许游标 从一个事物传到下一个事务。链事务允许提交某种稳定的、中间的结果( 因 此一旦发生崩溃也不会丢失结果) ,同时依然保持对资源的控制,而这些资源 是不分配给其他用户( 事务) 的。 ( 3 ) s a g a s s a g a 5 】产生的目的是为了达到向系统提供类似于事务序列的小批量运行 的支持。它从两方面对链事务进行了扩充:一方面,它定义了一个链事务作 为控制单元;另一方面,它使用多级别事务中的补偿概念来确保整个链的原 子性 在一个s a g a 的执行过程中,每当子事务提交后,就释放它的所有锁,事 务的原子性的实现是一旦当前执行的事务回滚时,就开始执行子事务的补偿 序列。但补偿事务仅仅对原事务进行逻辑上的补偿,并不保证s a g a 回滚后系 统的状态与s a g a 执行前的状态完全一致。s a g a 模型首次引入了补偿事务的 概念,s a g a 的恢复不再是使用传统的阴影页或日志方法,而是利用应用语义 1 2 硕士学位论文第二章w e b 服务工作流事务技术及框架 来“补偿”已执行事务的更新效果。s a g a 不再提供严格的a c i d 特性,而是 松弛原子性。松弛原子性的最大特点是放松了隔离特性,由于s a g a 的子事务 一旦提交即对其它s a g a 可见,各个并发执行的s a g a 之间不再是完全隔离的。 ( 4 ) 多级别事务 多级别事纠1 5 i 是嵌套事务的一个变形,它允许对事务内部某一抽象级别 上的中间结果提早提交。如果有一个对事务操纵的一个对象的定义良好的实 现层次结构,那么较低层次的修改可以提早提交,而条件是隔离性在更高级 别得到控制,在发生回滚时在较低级别对象有逆操作执行【3 j 。多层事务的子 事务可以在全局事务结束前提交或者回滚,从而释放自己占用的资源。如果 全局事务回滚,它的原子特性是通过执行补偿子事务来取消已提交的子事务 的作用。但是,如果某个事务观测到一个后来被补偿的子事务的执行效果时, 系统状态就可能不一致。开放嵌套事务通过子事务的可交换性来解决这个问 题,只有当某个事务和另一个已提交事务可交换时,前者才能访问后者的执 行结果【i “。 ( 5 ) 分支汇合事务 分支汇合事务模型 1 6 】是由c o l u m i b a 大学的g k a i s e r 和c p u 等在研究非 封闭活动时提出的。非封闭活动的特点将产生长时间事务,分支汇合事务模 型采用动态重构技术,对活动的各个并发事务进行动态的修改。一种操作是 将一个正在进行的事务分成两

温馨提示

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

评论

0/150

提交评论