(计算机应用技术专业论文)半同步非阻塞的corba事务服务的研究与实现.pdf_第1页
(计算机应用技术专业论文)半同步非阻塞的corba事务服务的研究与实现.pdf_第2页
(计算机应用技术专业论文)半同步非阻塞的corba事务服务的研究与实现.pdf_第3页
(计算机应用技术专业论文)半同步非阻塞的corba事务服务的研究与实现.pdf_第4页
(计算机应用技术专业论文)半同步非阻塞的corba事务服务的研究与实现.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

摘要 随着计算机网络的不断发展以及计算机硬件价格的下降,将计算任务分布到多个物理主 机上处理,以提高任务计算速度和降低任务运算成本已经成为一个趋势。这种通过通信线路 将多台计算机互联,协同为用户提供服务的系统,称之为分布式计算机系统。分布式计算机 系统给用户提供了一个丰富的资源集合。 原子提交是分布式计算机系统的一个重要问题,也是基于分布式计算机系统的现代信息 系统所必需的关键功能。例如,分布式数据库、银行转帐系统以及分布式对象平台都是围绕 原子提交而构建的分布式计算机系统。原子提交的目的在于确保分布计算参与者数据的一致 性。分布计算参与者以及其原子提交过程被称之为一个分布事务。c o r b a 对象事务服务结 合了分布式对象技术和事务处理技术,是为分布式环境下的c o r b a 应用系统保持事务 a c i d 属性的一种服务。但采用两阶段原子提交协议( 2 p c ) 的c o r b a 对象事务服务在特 定失效场景之下可能导致阻塞。 本文针对c o r b a 对象事务服务的不足,提出了一种基于非阻塞原子提交协议的分布事 务应用解决方案。该解决方案可以为半同步系统中的分布事务应用开发提供支持,并且内部 集成了使用非阻塞原子提交协议的c o r b a 对象事务服务。 本论文的主要贡献有:( 1 ) 基于2 p c ,提出了非阻塞原子提交协议一- - a r b 2 p c ,并证 明其满足作为非阻塞原子提交协议的性质。该协议可以在文中所提出的假设条件之下避免 2 p c 的阻塞问题。( 2 ) 实现了c o r b a 对象事务服务的部分接口,并利用a r b 2 p c 作为其 原子提交协议,形成o t s a r b 2 p c 系统。该系统支持c o r b a 对象事务服务规范定义的接 口,提供事务处理功能,同时支持事务协调者的容错。( 3 ) 针对分布事务开发,提供了开发 库o t sl i b ,该开发库配合o t s a r b 2 p c 系统,能够为基于c o r b a 的分布事务开发提供 解决方案。( 4 ) 利用分布事务应用,深入分析验证o t s a r b 2 p c 系统的功能以及一些参数 对系统性能指标的影响。 关键词:非阻塞原子提交;分布事务;容错;c o r b a ;对象事务服务; i i a b s t r a c t w i t ht h ep r e s e n t l ya v a i l a b l ec o m p u t e rn e t w o r kt e c h n o l o g ya n dt h eh a r d w a r e t h e r ei saw a yt o d i s t r i b u t e d l yd e p l o yc o m p l e xc o m p u t i n gt a s k so nm a n yp h y s i c a l h o s t si no r d e rt oi m p r o v e c o m p u t i n gp e r f o r m a n c e s u c has y s t e mi sc a l l e da sd i s t r i b u t e dc o m p u t i n gs y s t e m ( d c s ) m a n y c o m p u t e r sa r ec o n n e c t e db yc o m m u n i c a t i o nl i n k ss e r v i n gu s e r sa sas i n g l ec o m p u t e r d c s p r o v i d e su s e r sr i c hr e s o u r c e s a t o m i cc o m m i t m e n ti sa l li m p o r t a n ti s s u ei nd c s a s l oi ti so n eo ft h ek e yf u n c t i o n a l i t i e so f m o d e mi n f o r m a t i o ns y s t e m s c o n v e n t i o n a ld i s t r i b u t e dd a t a b a s e s ,a c c o u n tt r a n s f e r r i n gs y s t e m s ,o r d i s t r i b u t e do b j e c tp l a t f o r m sa r ee x a m p l e so fc o m p l e xs y s t e m sb u i l ta r o u n da t o m i cc o m m i t m e n t t h ea i mo fa t o m i cc o m m i t m e n ti st oa s s u r et h a tt h ed a t ao fd i s t r i b u t e dp a r t i c i p a n t sa l w a y sr e m a i n c o n s i s i t e n t t h ec o n c e p to fd i s t r i b u t e dt r a n s a c t i o nr e f e r st od i s t r i b u t e dp a r t i c i p a n t sa n dt h e i r a t o m i cc o m m i t m e n tp r o c e d u r e c o r b ao b j e c tt r a n s a c t i o ns e r v i c e ( o t s ) c o m b i n e st h e t e c h n o l o g yo fd i s t r i b u t e do b j e c tc o m p u t i n ga n dt r a n s a c t i o np r o c e s s i n g , w h i c hc a np r o v i d ea c d c h a r a c t e r i s t i c st oc o r b aa p p l i c a t i o n s y s t e m s i nd i s t r i b u t e de n v i r o n m e n t s u n f o r t u n a t e l y , c o r b ao t sw h i c ha d o p t st w op h a s e sc o m m i t ( 2 p c ) m a yb l o c ku n d e rc e r t a i nf a i l u r es c e n a r i o s a i m i n ga t t h ed e f i c i e n c yo fc o r b ao t s ,t h i sa r t i c l eb r i n g sf o r t has o l u t i o no fd i s t r i b u t e d t r a n s a c t i o n a la p p l i c a t i o n sw h i c hi sb a s e do nan o n - b l o c k i n ga t o m i cc o m m i t m e n t ( n b a c ) p r o t o c 0 1 t h es o l u t i o nc o n t a i n sn b a c - b a s e dc o r b ao t s ,a n dc a ns i m p l i f yt h ec o n s t r u c t i o no f t r a n s a c t i o n a la p p l i c a t i o n si np a r t i a l l ys y n c h r o n o u sd i s t r i b u t e ds y s t e m s t h em a i nc o n t r i b u t i o n so f t h i st h e s i sc a r lb ed e s c r i b e da sf o l l o w s :( 1 ) t h et h e s i sp r o p o s e san b a c p r o t o c o ln a m e da r b 2 p c 。a n dp r o v e st h ec o r r e c t n e s s a r b 2 p cc a l la v o i dt h eb l o c k i n go f2 p c a l t h o u g hi ti s2 p c l i k e ( 2 ) t h et h e s i si m p l e m e n t sap r o t o t y p es y s t e mo fo t s - a r b 2 p c ,w h i c hi s t h ec o m b i n a t i o no fc o r b ao t sa n da r b 2 p c o t s a r b 2 p cc a np r o v i d et r a n s a c t i o n p r o c e s s i n ga b i l i t ya n df a u l tt o l e r a n c eo ft r a n s a c t i o nc o o r d i n a t o r ( 3 ) t h et h e s i sp r o v i d e sa p r o g r a m m i n gl i bn a m eo t s _ l i b ,w h i c hc a nh e l pw i t ht h ed e v e l o p i n go fd i s t r i b u t e dt r a n s a c t i o n a l a p p l i c a t i o n sb a s e do nc o r b ai no t s a r b 2 p c ( 4 ) t h r o u g ht h et e s t i n go fd i s t r i b u t e dt r a n s a c t i o n a p p l i c a t i o n s ,t h et h e s i sf i n a l l yv a l i d a t e st h ef u n c t i o n a l i t i e so fo t s - a r b 2 p c a n da n a l y z e st h e e f f e c t so fs e v e r a lt y p e so fp a r a m e t e r so ns y s t e mp e r f o r m a n c ei n d e p t h k e y w o r d s :n o n b l o k i n ga t o m i cc o m m i t m e n t ;d i s t r i b u t e dt r a n s a c t i o n ;f a u l tt o l e r a n c e ;c o r b a ; o t s i i i 论文插图索引 图1c o r b ao r b 体系结构图4 图2 协调者的状态转换图1 0 图3 参与者的状态转换图1 0 图4 正常情况下的协调者和参与者过程1l 图5 非正常情况下的协调者和参与者过程1 3 图6c o r b a 对象事务服务的结构框架。1 6 图7 对象事务服务的应用模式1 8 图8o t s a r b 2 p c 系统的结构框架2 0 图9o t sa r b 2 p c 系统应用示例2 3 图1 0o t s a r b 2 p c 系统的实现模型2 6 图1 l 客户端事务管理模块的逻辑视图2 7 图1 2 事务协调者模块的逻辑视图2 8 图1 3 事务参与者模块的逻辑视图3 0 图1 4 数据库存储模块的逻辑视图3 0 图1 5 应用客户端启动事务的交互过程3 l 图1 6 应用客户端请求提交事务的交互过程3 2 图17 应用客户端请求回滚事务的交互过程3 3 图1 8 协调者组成员加入的交互过程3 4 图1 9 协调者组成员失效的交互过程3 5 图2 0 参与者失效后恢复的交互过程3 6 图2 1 事务功能测试中参与者所保留的投票值信息3 9 图2 2 事务功能测试中参与者所保留的事务结果信息3 9 图2 3 容错测试中协调者组视图演进过程4 0 图2 4 容错测试中参与者所保留的投票值信息4 l 图2 5 容错测试中参与者所保留的事务结果信息4 l 图2 6 非阻塞测试中参与者所保留的事务结果信息4 2 图2 7 性能测试中不同参与者个数时客户端的响应时间4 3 图2 8 性能测试中多客户端并发时客户端的响应时间4 5 图2 9 性能测试中不同协调者个数时客户端的响应时间4 6 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位 论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人 电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论 文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包 括刊登) 授权东南大学研究生院办理。 研究生签名:里壁鳖导师签名:l 堕 日期:如。3 l p 州 第一章绪论 1 1 引言 第一章绪论 由于数据的分布特性( 地理上分布或者为了提高可用性而被置于不同的物理结点上) , 数据管理系统通常是一个分布式系统。这种系统的一个基本问题在于如何确保数据的一致 性。为了解决这个问题,在上个世纪7 0 年代提出了事务i i j 的概念。一个事务是这样一个数 据控制单元:( 1 ) 一个事务单独执行时,能够保持数据的一致性。( 2 ) 能够保证如下两个 原子特性,即并发原子性和失效原子性。并发原子性指确保一系列的事务并发执行不会导 致数据不一致。这一系列的事务并发执行的结果必须同这些事务串行执行结果相同。失效 原子性指保证失效情况的发生并不会导致数据不一致:一个事务中的所有更新操作要么全 被执行,要么全不被执行。 在一个分布式系统中,一个事务通常包括若干个结点作为其参与者。在事务结束时, 这些参与者需要进入一个提交过程来决定是提交还是终止该事务。提交过程通常采用两阶 段的模式一一两阶段的原子提交协议( 2 p c ) 。2 p c 简单、易于实现,但是可能导致阻塞。 当这种情况发生时,不但导致无法结束事务,同时导致其他事务无法访问该事务中被锁的 资源。三阶段的原子提交协议( 3 p c ) 可以避免阻塞,但是它在2 p c 上增加了对于失效的 处理以及使用的复杂子协议使得它变得相当复杂并且难以理解以及证明。到目前为止,还 未有实月j 的支持非阻塞的2 p c 系统。 因此,有必要设计具有效率的非阻塞原子提交协议,利用其设计和实现实用的非阻塞 原予提交系统,不仅能够保证正常的事务处理逻辑,而且在即使发生失效情况依然保证事 务的结束( 提交或终止) 。 1 2 原子提交协议的研究背景 1 2 1 同步和异步系统以及半同步系统 一个分布式系统是由通过一个通信网络相互连接的结点构成的有限集合。每个结点拥 有本地的内存以及稳定存储器并且执行一个或多个进程。简单起见,可以假设每个结点只 有一个进程。进程之间相互通信并且通过网络信道交互消息以进行通信。 在一个同步分布式系统中,对于一个进程来说,消息传输延迟、进程调度延迟以及消 息处理时间都具有上限。可用6 表示消息传输延迟+ 进程调度延迟+ 消息处理时间的上限。 6 对于同步分布式系统中的各结点是恒定并且已知。 对于异步分布式系统而言,上界6 是不存在的。异步分布式系统的特点在于消息传输 以及进程调度延迟是无法预估并且这些延迟可能是任意大。 半同步分布式系统i l0 1 中系统延迟具有恒定上界,但上界6 未知,并且系统要经过一个 未知的稳定时段才具有此上界。 东南大学硕士学位论文 1 2 2 失效模型 在一个分布式系统中,分布在网络上的不同主机有可能发生各种错误,如主机崩溃、 拜占庭错误等,正确进程是指按照预先设定的动作序列执行的进程,而出错进程是指在程 序执行过程中发生错误的进程。 针对出错进程,有两种不同的失效模型:崩溃无恢复模型1 2 】和崩溃恢复模型【3 1 。其中, 在崩溃无恢复模型中,进程发生崩溃之后,就不再参与系统中的活动。而在崩溃恢复模 型中,进程在发生崩溃一段时间之后,可以恢复正常运行。 除了主机失效之外,连接这些主机的网络链路中也有可能发生消息的丢失、重复等等 这些错误,并且网络本身也会发生分裂、合并这样的行为。 1 2 3 事务以及原子提交协议 事务是具有a c i d 属性的操作集合1 4 j : 原子性( a t o m i c ) :一个事务的最终结果是所有操作都执行,或者所有操作都不 执行,不会部分地执行。 一致性( c o n s i s t e n t ) :事务总是从一个一致状态转换到另一个一致状态。 隔离性( i s o l a t e d ) :一个事务的中间状态对于其他事务不可见,一系列的事务 并发执行的结果如同这些事务串行地执行。 持久性( d u r a b l e ) :事务的结果被持久地保存,即使发生系统崩溃也不会丢失。 在一个分布式系统中,一个事务通常包括若干个进程( 结点) 作为其参与者。事务在 结束时,所有参与者遵从原子提交协议米决定是提交还是终止该事务。 两阶段的原子提交协谢i j 垆j ( 2 p c ) 是最简单并且常见的原子提交协议:在第一阶段, 针对某一个指定的事务,每个参与者进行投票y e s 或者n o 。如果出现任何促使一个参与者 无法提交事务的原因( 例如死锁,并发控制冲突等) ,该参与者投票n o ;否则投票y e s , 表示该参与者可以提交事务并将本地更新持久化。在第二阶段,如果所有参与者都已经投 票y e s ,则协调者通知提交事务的命令,而一旦有参与者投票n o ,则协调者通知终止事务 的命令。而此过程中,若有参与者失效,则被认为其投票值为n o 。 2 p c 的缺陷在于其可能导致阻塞:例如协调者在各个参与者等待其决定时失效,将导 致所有参与者无法结束事务。阻塞意味着未失效的参与者必须等待失效的协调者的恢复以 结束事务。当这种情况发生时,未失效的参与者就无法释放自己申请用于互斥访问的资源, 此时不仅该事务无法结束,同时将影响其他需要访问这些被锁资源的事务。 三阶段的原子提交协议1 6 j ( 3 p c ) 是一个非阻塞原子提交协议,但是相比2 p c 而言, 3 p c 相当复杂并且难以理解以及证明。在3 p c 中,为了避免阻塞,正确的参与者需要互相 通信并且考虑各种可能的系统状态以保证在事务结束时能够正确给出事务的结果。另外, 可能使用到的选举算法以及各种子协议也使得3 p c 缺乏效率。从文献 1 5 可以看出,在没 有广播网络存在的情况下,3 p c 提交一个包含3 个参与者的事务的平均时间是2 p c 的1 7 0 ;在广播网络存在的情况下,3 p c 提交一个包含3 个参与者的事务的平均时间是2 p c 的 1 6 0 。 2 第一章绪论 1 2 4 非阻塞原子提交问题以及协议 非阻塞原子提交( n b a c ) 问题 7 1 要求即使在任何失效情况之下都能够确保所有正确的 参与者作决定,c o m m i t 或a b o r t 。若决定是c o m m i t ,则所有参与者将自己对数据的更新持 久化;若决定是a b o r t ,则不对数据作任何更新。 能够求解n b a c 问题的解决方案称为n b a c 协议。n b a c 协议的结果值取决于各个参与者 的投票值以及失效的发生情况。n a b c 协议必须满足如下性质峭j : ( 1 ) 有效性:事务的结果为c o m m i t ,仅当所有参与者投票v o t e _ c o m m i t 。 ( 2 ) 统一一致性:任两个参与者的决定相同。 ( 3 ) 终止性:每个正确参与者最终作出决定。 ( 4 ) 非平凡性:若所有参与者都投票v o t e _ c o m m i t 并且没有任何进程被怀疑失效,则事 务结果为c 0 姗i t 。 1 2 5 非阻塞原子提交问题研究现状 对于n b a c 问题,底层通信网络被假设为是可靠的,即不会丢失、生成以及篡改消息。 文献 1 和 9 证明了在不可靠通信的前提下无法解决n b a c 问题。因此,对于n b a c 问题的 失效模型,底层网络链路被假设为不会发生消息的丢失、重复等等这些错误,并且网络不 会发生分裂、合并这样的行为。 n b a c 协议需要其所基于的分布式系统提供一些失效检测的活性保证。c h a n d r a 和t o u e g 在【l0 】中证明了失效检测器只要满足s 性质,就可以提供为不可靠的异步分布式系统设计 n b a c 协议所需要的活性保证。同步分布式系统由于其进程调度以及消息传输延迟上界的 存在,可以通过超时机制来安全地检测失效。异步系统无此上界,满足s 性质的不可靠的 失效检测器在t c p i p 环境下无法实现,因此通过超时机制实现的失效检测器只能提供一些 关于怀疑某些参与者失效的不可靠信息,这种做法可能导致误判( 因为超时机制使用的上 限值可能不合适,异步分布式系统中进程调度处理以及消息传输延迟无法预估) 。 文献 i 1 3 讨论了同步分布式系统中的n b a c 问题,并利用可靠广播提出了一些解决方 案。文献 8 3 首次将不可靠的失效检测器引入异步分布式系统n b a c 协议的设计。文献 1 2 讨论了异步系统中的n b a c 协议的非集中式解决方案。阻塞的发生,是由于协调者在关键时 刻失效。若系统中部署多个协调者进程形成容错组则可以大大减少阻塞发生的概率。文献 1 3 和 1 4 讨论了利用备份协调者形成容错组来降低阻塞的可能,而文献 1 5 3 和 1 6 通过 复制协调者来避免阻塞,文献 1 6 3 中的协调者角色不同于其参与者,而文献 1 5 3 中的协调 者可由其普通的参与者担当。 1 3c o r b a 简介 近年来,随着互联网技术的日益成熟,公众及商业企业正享受着高速、低价网络信息 传输所带来的高品质数字生活。但是,由于网络规模的不断扩大以及计算机软硬件技术水 平的飞速提高,给传统的应用软件系统的实现方式带来了巨大挑战。首先,在企业级应用 中,硬件系统集成商基于性能、价格、服务等方面的考虑,通常在同一系统中集成来自不 同厂商的硬件设备、操作系统、数据库平台和网络协议等,由此带来的异构性给应用软件 的互操作性、兼容性以及平滑升级能力带来了严重问题。另外,随着基于网络的业务不断 3 东南大学硕士学位论文 增多,传统的客户服务器( c s ) 模式的分布式应用方式越来越显示出在运行效率、系统 网络安全性和系统升级能力等方面的局限性。对象管理组织( o m g ) 提出了公共对象请求代 理体系结构( c o r b a 【1 7 1 ) ,以增强软件系统间的互操作能力,使构造灵活的分布式应用系统 成为可能。正是基于面向对象技术的发展和成熟、客户服务器软件系统模式的普遍应用以 及集成已有系统等方面的需求,推动了c o r b a 技术的成熟与发展。作为面向对象系统的对 象通信的核心,c o r b a 为当今网络计算环境带来了真正意义上的互联。 1 3 1o r b 的体系结构图 对象请求代理o r b 是c o r b a 的核心【l7 1 ,它负责在对象之间传递消息。o r b 是c o r b a 应 用的基础,不同的公司可以开发出不同的o r b 。但由于大家使用相同的通信协议,因此基 于不同o r b 实现的应用之间可以无缝通信。它提供一种代理机制,使得分布式环境中的对 象可以透明地发出请求和接收响应。基于o r b 机制就可以充分利用分布的、可互操作的对 象构造可互操作的应用。这种优势是明显的,用户可以在不了解实现交互细节的情况下, 建立共享资源的应用。 c o r b ao r b 的体系结构如图1 所示: 在该体系结构中,主要描述了以下主要内容: ( 1 ) 对象实现( o b j e c ti m p l e m e n t a t i o n ) 驻留在服务器端的c o r b a 对象,包括 了接口及其具体实现( s e r v a n t ) 。 ( 2 ) 客户( c i i e n t ) 客户端程序。对于客户来说,发起一个远程对象调用应该是 透明的,就像调用一个本地( l o c a l ) 对象操作一样,而o r b 结构中的其他部件提供了对此 透明性的支持。 ( 3 ) o r b 核心( o r bc o r e ) 叫r b 核心为客户与目标对象实现提供一种代理机制, 使得分布式环境中的对象可以透明地发出请求和接收响应,从而简化了分布式编程的细节。 当一个客户发起调用的时候,o r b 核心负责为其找到目标对象实现并激活、发送请求报文 至目标对象端、并传同调用结果给调用的发起者。 图1c o r b a o r b 体系结构图 4 第一章绪论 ( 4 ) o r b 接口( o r bi n t e r f a c e ) 0 r b 为对象适配器、客户端桩、服务端构架、动 态调用以及客户程序和服务端对象实现程序提供的一些接口。包括将对象引用转化为字符 串,将对象的字符串转化为对象引用,建立和关闭o r b 等通用操作。 ( 5 ) 对象适配器( o b j e c ta d a p t e r ) 它协助o r b 把客户请求分发给对象,更为重 要的是,对象适配器位于o r b 核心与对象之间,它把o r b 与对象实现联系了起来。 ( 6 ) i d l 桩( i d ls t u b s ) 位于客户端,由i d l 编译器编译i d l 文件生成,其功 能类似一个客户代理,帮助客户程序访问o r b 。客户程序无须关心其实现细节,只需将其 与客户端编写程序编译。 ( 7 ) 静态i d l 构架( s t a t i ci d ls k e l e t o n ) 位于服务端,由i d l 编译器编译i d l 文件生成,o a 接受到客户端的请求后会找到构架,之后构架找到服务端的对象实现。服务 器程序无须关心其实现细节,只需将其与服务端编写程序编译。 ( 8 ) 动态调用( d y n a m i ci n v o c a t i o n ) 该接口允许客户直接调用o r b 的底层请 求机制。用户通过d i i 接口可以动态的对目标对象发起调用而不需要i d l 桩的介入。 ( 9 ) 动态构架( d y n a m i cs k e l e t o n ) 这是服务器端与客户端d i 相对应的部件。 d s 允许o r b 把调用请求直接发给对象实现而不需要知道服务对象的接口信息。对于客户而 言,它并不需要知道对方是采用i d l 静态或者是动态构架。 1 3 2c o r b a 技术的特点 c o r b a 技术在充分发挥新技术的优势和克服已有方法缺陷的基础上,引入了自身的新 特色,使之成为新一代分布计算技术中有影响力的工业规范。目前,c o r b a 技术已经在制 造、电信、金融、电子商务、军事、航空、航天、教育和交通运输等应用领域的软件系统 中得到的广泛的运用i l 引。 与其他的分布式计算技术相比,c o r b a 技术的主要特点是: ( 1 ) 将面向对象的概念与分布计算相互结合c o r b a 技术秉承了面向对象技术的所 有优点,使基于c o r b a 技术开发的分布式应用系统具有良好封装性和继承性,提高了软件 开发的效率。 ( 2 ) 客户方程序与服务方程序的完全分离在统一接口描述语言i d l 的支持下, c o r b a 应用系统的客户端和服务器端可以独立开发,从而使两者之间的关系更为灵活,为 系统的维护和扩展带来了便利。 ( 3 ) 操作系统平台独立性、编程语言无关性:c o r b a 系统屏蔽了操作系统与编程语言 的异构性,使得基丁二c o r b a 技术开发的应用系统可以运行于不同的操作系统平台( 如 w i n d o w s ,s o l a r i s ,l i n u x ) ,以多种编程语言实现( 如c + + 、c 、j a v a 、s m a l i t a l k 、a d a 和c o b o l ) ,从而为整个分布式环境中的资源整合以及遗留系统的集成利用提供了良好的解 决方案。 1 4c o r b a 对象事务服务 1 4 1c o r b a 对象事务服务简介 由于事务具有的a c i d 属性,对构建高可靠性应用,特别是要求并发访问共享数据的分 布式应用起着关键作用,事务处理技术已经在银行、证券、电信等行业得到了广泛应用。 5 东南大学硕j :学位论文 随着应用的普及和深化,传统的事务处理技术面临新的挑战,如系统规模无限扩大对性能 的要求更高,业务逻辑的快速变化希望开发周期更短。 作为c o r b a 一个公共对象服务,对象事务服务1 4 j ( o t s ) 将事务概念引入到分布式对 象计算中。o t s 结合了分布式对象技术和事务处理技术,是为异构分布式环境下的c o r b a 应 用系统保持事务a c i d 属性的一种服务。它包括了一系列的接口来定义众多的分布式对象如 何进行协作以保证原子性,这些接口确保分布式对象在即使出现失效的情况下也能够一致 地提交或者回滚。c o r b a 事务服务是构建c o r b a 分布式系统的一个极其重要的部分。它为 c o r b a 分布式系统的稳定性、健壮性提供了保证,对于建立可靠的大型企业级c o r b a 系统 来说是一个关键的服务。 1 4 2c o r b a 对象事务服务的研究现状 由于c o r b a 对象事务服务应用广泛,o m g 组织在2 0 0 0 年发布了事务服务规范的第一版, 详细地定义了事务服务的概念、组成结构、数据类型和i d l 接口。一些公司和研究机构也 相继开始开发相应的基于c o r b a 对象事务服务规范的产品。 由i o n a 公司开发的0 r b i x 2 0 0 0 1 1 9 j 可以为c o r b ao t s 和j t s ( j a v at r a n s a c t i o ns e r v i c e ) 提 供完全的支持,能够确保将e j b 、u n i x 上的c + + o r a c l e 应用程序和0 s 3 9 0 应用程序全部 作为相同的原子交易中的实体处理。o r b i x 2 0 0 0 能够保证在多用户会话中,不同平台和语 言环境中的资源之间( 并发地) 的交易的完整性。 由c o r b a 领域的著名专家,范德堡大学的d o u g l a ss c h m i d t 教授带领开发的t a o 系统 中目前正在进行的一项一l 作就是实现遵从c o r b a 对象事务服务规范的开源代码实现【2 0 】。 i b m 的t x s e r i e s 2 i i 集成了交易中间件的完整分布交易管理系统,t x s e r i e s 所提供的开发 平台也集成了c o r b a 对象事务服务。 1 4 本论文的主要研究内容 本论文研究了分布式环境下的原子提交协议,分析了各种非阻塞原子提交协议的特点。 研究了c o r b ao t s 的模型结构以及事务处理机制,分析其不足以及可以改进的方案。提 出了非阻塞原子提交协议a r b 2 p c ,利用a r b 2 p c 以及c o r b ao t s 并基于c o r b a 设计 o t s a r b 2 p c 系统,最后实现半同步系统中的基于c o r b a 的分布事务应用解决方案。 本论文的主要贡献有: ( 1 ) 基丁二2 p c ,提出了n b a c 协议一一a r b 2 p c ,并证明其满足作为非阻塞原予提交协 议的性质。该协议可以在系统模型中所作的假设条件之下避免2 p c 的阻塞问题, 并且其本身也是两阶段的。 ( 2 ) 实现了c o r b ao t s 的部分接口,并利用a r b 2 p c 作为其原子提交协议,形成 o t s - a r b 2 p c 系统。该系统支持c o r b ao t s 规范定义的接口,提供事务处理功能, 同时支持事务协调者的容错,能够避免2 p c 的阻塞问题。 ( 3 ) 针对分布事务开发,提供了开发库o t s l i b ,该开发库配合o t s - a r b 2 p c 系统,能 够为基于c o r b a 的分布事务开发提供解决方案。 ( 4 ) 利用分布事务应用,深入分析验证( i t s a r b 2 p c 系统的功能以及一些参数对系统 性能指标的影响。 6 第一章绪论 1 5 论文的组成 本论文的其他组成部分如下:第二章提出并详细描述非阻塞原子提交协议a r b 2 p c , 证明其正确性。第三章分析和设计o t s - a r b 2 p c 系统,提出设计方案。第四章为系统实现 的方法讨论以及实现方案设定。第五章对系统进行测试和结果分析,最后为总结和进一步 的工作。 7 东南大学硕士学位论文 第二章基于主动复制的n b a c 协议一 a r b 2 p c 利用资源冗余可以实现容错【2 2 】,对于2 p c 中造成阻塞的情况,可通过将事务协调者组 成一个容错组来在一定条件下解决这个问题。本章所提出的n b a c 协议一一a r b 2 p c 将基 于主动复制容错技术来组织2 p c 中事务协调者容错组的形成和管理。 2 1 系统模型 2 1 1 主动复制技术 软件实现容错多采用复制的方法。复制技术主要有主从备份复制和主动复制两种方法 怛引。主动复制技术复制关键服务器,同一服务器的所有复本构成了该服务器的容错组。这 些关键服务器的复本同时运行,它们都接收客户的请求,执行请求操作,并对客户发出请求 响应。一旦有复本发生错误,只要有足够多的复本在正常工作,系统仍正常运行。而主从备 份复制方法只有土服务器接收客户的请求,执行请求操作,并对客户发出请求响应,同时将 执行结果复制到每一个复本上。与主从备份复制相比,主动复制的优点是可靠性高,在容错 组成员出错的情况下客户端请求响应延时较小。 2 1 2 系统模型 考虑一个通过可靠信道连接的有限个进程组成的半同步分布式系统。系统内各进程的消 息传输延迟、进程调度延迟以及消息处理时间具有恒定上界6 ,但6 未知,并且系统需要经 过未知的稳定时段t ,进程的各种动作才具有延迟上界6 。 进程间通过交换消息进行通信二进程的失效模型为崩溃恢复模型【3 1 ,进程可能因为崩溃 而失效,并且失效进程可能恢复,本文不考虑拜占庭错误1 2 制。 系统中的进程分为两种:参与者进程p = p 一,p z ,p l i ) 和协调者进程c = c - ,c :9o ,c i l i ) 。协 调者进程通过主动复制构成一个容错组f t c 。对于协调者容错组f t c ,假设在任一时刻, 在组视图中,至少有一个协调者进程是止确的。正确进程意味着该进程未发生崩溃失效或者 已经从崩溃火效中恢复,出错进程则代表该进程发生了崩溃失效且并未恢复。每个协调者进 程拥有一定的存储空间,用于存储事务的相关信息。将协调者组织成容错组,可以确保原子 提交协议不会因为关键时刻的协调者失效发生阻塞,并且可以使协调者具有容错能力。 本文采用【2 5 】中的组管理协议管理f t c 以确保其成员具有统一的组视图信息。该组管理 协议需要不可靠的失效检测器s i i 叭。o s 为系统内的进程提供了目前怀疑失效进程的信息。 o s 保证了:( 1 ) 每个失效进程最终都会被所有的正确进程怀疑失效;( 2 ) 最终某个正确进程 不会被所有正确进程怀疑失效。 参与者与协调者组的进程通信使用到下列原语: ( 1 ) m u l t i s e n d ( m ,p ) 2 6 o 其中,m u l t i s e n d ( m ,p ) 支持组播服务,没有容错能力,若发送者 8 第二章基于主动复制的n b a c 协议一- - a r b 2 p c 在发送过程中失效,则可能导致p 中部分接收者无法接受消息m 。 ( 2 ) a sr e lm u l t i c a s t ( m ,p ) 1 2 酬。该原语支持可靠组播,在m u l t i s e n d ( m ,p ) 上增加了统一 一致性性质,即若p 中有进程接受了消息m ,则所有p 中正确的进程接受消息m 。 ( 3 ) v s c a s t t 2 3 1 2 7 1 原语:视图同步组播,在协调者组内部统一事务结果时使用。若消 息m ( i ) 被组播发送给视图v i 中的所有成员,则v s c a s t 保证 视图v i 的所有成员接受 消息m ( i ) ,或者 组视图发生变化,产生一个新视图v i + 1 。在情况 乏下,v s c a s t 保证 所有v inv i + 1 的成员在接受视图v i + l 之前接受消息m ( i ) 或者都不接受消息m ( i ) 。 为了满足组管理协议以及视图同步组播的要求,通信信道必须具有先入先出( f i f o ) 的性质,另外系统内配备了满足文献【2 5 】中组管理协议所要求的失效检测器s 。对于半同步 分布式系统,最终强失效检测器s 是可以实现的,文献 3 2 】【3 3 】 3 4 讨论了半同步系统中不 可靠失效检测器的实现。 f t c 中每个成员c i 的主存中维护表t r a nt a b l e 以存储事务相关的信息。表中的每一条记 录代表一个事务的状态,包括属性:事务i d ( t i d ) 、事务结果( o u t c o m e ) 、事务结果发送标 记( t r a ns e n d ) 、事务起始时戳( t i m e s t a m p ) 、参与者列表( pl i s t ) 和投票列表( v o t el i s t ) 等。 协议中使用到的消息如下: ( 1 ) :主协调者用于通知参与者投票的消息; ( 2 ) :协调者成员向主协调者通知可以决定事务提交: ( 3 ) :参与者的投票信息,其中p i d 代表了参与者的i d ,v o t e 值可以是v o t ec o m m i t 或v o t ea b o r t : ( 4 ) :参与者向主协调者查询某个事务的结果; ( 5 ) :主协调者向参与者发送的事务结果信息,o m c o m e 值可以为 c o m m i t 、a b o r t 或u n d e c i d e d 。 2 2a r b 2 p c 的协议过程 a r b 2 p c 中的角色包括协调者组以及多个参与者进程。系统初始情况下,从协调者组 中选取i d 最小的协调者进程担当主协调者。协调者失效或恢复都会导致协调者组视图演进, 发生演进后,选择当前活动进程中最小i d 并属于前一视图的进程作为新的主协调者。 参与者进程在收到主协调者的 消息之后会向磁盘写p r e p a r el o g 记录。 该记录记载了当参与者进程失效并恢复之后用于得到事务结果的信息。记录中包含参与者 i d 、事务i d 和互斥锁等信息。 对于协议中的u n i f o r mc o m m i t ( t i d ) 以及u n i f o r n la b o r t ( t i d ) 过程,可以使主协调 者利用视图同步组播原语v s c a s t 向所有的协调者组成员发送消息 或 ,利用v s c a s t 所具有的性质保证协调者组中属于当前视图v i 并且能够进入 下一视图v i + l 的所有成员在接受视图v i + l 之前接受该消息。组成员在接受消息时,将 c o m m i t 或a b o r t 作为t i d 所对应的事务的结果写入主存。 协议中协调者以及参与者执行过程的状态转换如图2 和

温馨提示

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

评论

0/150

提交评论