一种基于JMS的分布式异步事务处理模型设计_第1页
一种基于JMS的分布式异步事务处理模型设计_第2页
一种基于JMS的分布式异步事务处理模型设计_第3页
一种基于JMS的分布式异步事务处理模型设计_第4页
一种基于JMS的分布式异步事务处理模型设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、一种基于JMS的分布式异步事务处理模型设计第11卷第2期2010年4月信息工程大学JournalofInformationEngineeringUniversity一种基于JMS的分布式异步事务处理模型设计王成良,李立新,叶剑,秦小龙(1.信息T程大学电子技术学院,河南郑州450004;2.61840部队,北京100089)摘要:传统的分布式事务处理技术在实际应用中存在着效率较低和网络环境复杂时可靠性较差等问题.文章提出了一种基于Java消息服务(JavaMessageService,JMS)的分布式异步事务处理模型,该模型采用非阻塞的事务处理机制即异步事务处理,支持并行处理子事务和全局事务部

2、分回滚,恢复,提高了事务处理效率,增强了系统的可靠性,为分布式应用系统在复杂网络环境下事务处理和长事务处理提供了一种较好的解决方案.关键词:分布式事务;两阶段提交;异步事务;Java消息服务中图分类号:TP393文献标识码:A文章编号:16710673(2010)02023405DesignofaDistributedAsynchronousTransactionModelBasedonJMSWANGChengxin,YEJian,QINXiao-long(1.InstituteofElectronicTechnology,InformationEngineeringUniversity,Zh

3、engzhou450004,China;2.Unit61840,Beijing100089,China)Abstract:Traditionaldistributedtransactiondisposaltechniqueshavesomeploblemsinpractice,blockingtransactiondisposalmechanism,namelyasynchronoustransactiondisposal,anditsupportsdisposingsubtransitionsparallelly,rollpracticecanimprovetheefficiencyoftr

4、ansactiondisposalandthereliabilityofapplicationsystems.DistributedapplicationsystemscanusethismodeltOdisposetransactionsundercomplexnetworkenvironmentandtransactionswhichneedalongtimetoexecute.Keywords:distributedtransaction;twophasecommitmentprotocol;asynchronoustransaction;Javamessageservice0引言随着网

5、络技术的快速发展,基于分布式数据资源的应用系统得到广泛使用,分布性成为现代应用系统的主要特性之一.常见的数据资源有数据库,目录服务,文件访问系统等.在分布式计算环境下,事务处理是构造可靠性分布式应用系统的关键技术,它通过维护各个数据资源中数据的一致性和可用性,保证了分布式应用系统中各子系统间程序逻辑的正确性.因此,事务处理的好坏直接影响整个应用系统的性能.与传统集中式环境相比,在分布式计算环境下实现事务处理难度大大增加,应用系统的事务通常涉及到多个子系统的数据资源,需要在较长时间内由各个子系统协调完成,而且事务间发生数据资源竞争的几收稿Et期:20090623;修回日期:20090913基金项

6、目:科研基金资助项目作者简介:千成良(1982一),男,硕士生,主要研究方向为信息安全,信息系统开发.第2期王成良等:一种基于JMS的分布式异步事务处理模型设计235率比较大.与此同时,网络环境的复杂性增加了数据操作出错的机率,为了得到一个稳定的事务执行环境,需要一种可靠的消息传递机制-21.Java消息服务(JavaMessageService,JMS)基于消息队列的存储/转发机制和异步传输机制,能够为分布式应用系统事务处理提供高效,可靠的数据传输环境.本文首先对传统分布式事务处理技术进行分析,然后针对现有事务处理技术的缺陷,在X/OpenDTP模型上进行改进,提出了一种基于JMS的分布式异

7、步事务处理模型.1传统分布式事务处理技术分析事务是一组作为原子工作单元的操作序列,在执行过程中要么所有的操作都正常执行,要么所有的操作都不执行.传统的事务具有4个基本特性:原子性(Atomicity),一致性(Consistency),独立性(Isolation)和持久性(Durability),简称为ACID属性,具有严格ACID属性的事务也称为ACID事务.分布式事务是指事务的参与者,数据资源和事务管理器处于网络的不同节点上,事务的处理涉及到多个数据资源的参与,因此也称一个分布式事务为全局事务T,涉及到的各网络节点上的数据资源的操作序列称为子事务或事务分支.X/Open组织(即现在的Ope

8、nGroup)定义了一个被广泛接受的分布式事务处理模型:X/OpenDTP模型.X/OpenDTP模型主要由4个组件构成:应用程序(ApplicationProgram,AP),资源管理器(ResourceManager,RM),事务管理器(TransactionManager,TM),通信资源管理器(CommunicationResourceManager,CRM),如图1所示.AP使用TX接口与TM交互,开始或提交全局事务.TM给事务分配标识符,与RM负责对通信进行控制.1.2两阶段提交协议(twophasecommitprotocol,2pep)为了保证全局事务的原子性和一致性,X/Op

9、enDTP采用两阶段提交协议来协调各子事务,完成全局事务的提交或回滚,其基本思想是:当且仅当全部子事务均提交时,全局事务才能提交,如果有一个子事务不能正常提交,则全部子事务都要终止E5.2pep由2个阶段组成,准备阶段和提交阶段,如图2所示.应用程序(AP),LII,lTM,l錾Il雯l,事务发起者书务参与者A事务发起者事务参与者B准备阶段提交阶段图2两阶段提交协议交,就记录所做的操作,保持数据资源锁定,返回TM一个能够正常提交的回复,并等待其它子事务的处理情况和全局事务的决策的信息,否则就返回一个子事务执行失败的回复.提交阶段全局事务TM根据准备阶段所有RM的回复进行决策,如果各RM均回复能

10、够正常提交子事务,则TM提交全局事务,如果某个RM不能提交子事务,TM要求所有参与全局事务的RM终止子事务,进行全局回滚.两阶段提交协议能够保证分布式事务的严格ACID性质,但从实际应用中来看,还存在着以下缺陷:可靠性较差.两阶段提交协议要求TM与所有事务参与者RM时刻处于联机状态,即需要一个长期稳定可靠的网络通信环境.在实际应用中,这是很难做到的.当网络环境较差时,数据操作出错的机率较大,任意一个事务参与者的临时故障,甚至是数据接收的延迟,都会导致全局事务的失败.处理效率较低.为了保证事务的ACID性质,RM需要在事务执行过程及准备提交阶段锁定事务处236信息工程大学理涉及到的所有数据资源.

11、此时,其它需要访问数据资源的事务就始终无法执行,一直处于等待状态,直到该事务完成并释放数据资源.存在事务阻塞现象.在准备阶段,如果某一事务参与者的RM没有返回给TM一个子事务处理结果的回复,那么所有的事务参与者都将一直处于阻塞状态等待TM的决策信息,不能释放数据资源的锁定,也不能正常进行下一步的操作,直到该事务参与者最终返回一个回复或准备阶段超时.针对两阶段提交协议在实际应用的缺点和不足,国内外的研究者提出了一些改进的协议,如谨慎的两阶段提交协议,假定提交协议,乐观的两阶段提交协议等,这些协议在可靠性和效率提高方面有了较大改进,但没有较好地解决事务处理的阻塞性.Skeen提出的一种非阻塞的三阶

12、段提交协议(3pc),在一定程度上解决了事务准备提交阶段的事务阻塞问题,但却增加了事务处理时间和通讯开销,并不适用于网络环境复杂的分布式计算环境.2Java消息服务(JMS)消息中间件(Message.OrientedMiddleware)能够以一种可靠的,异步的,松散耦合的方式在分布式应用系统之间传递消息.为了统一各种MOM系统接口,SUN公司于1998年提出一套消息中间件接口的规范:Java消息服务规范(JMS).JMS为使用消息系统的客户提供了创建,发送,接收,读取消息的通用方法,支持消息可靠传输.实现了JMS接口的消息中间件产品称为JMS提供者(JMSProvider).基于JMS的消

13、息通信系统的体系结构如图3所示.应用系统采用JMS消息系统作为通信环境时,各子系统之间并不进行直接通信,消息发送者只需将消息发送至JMS消息服务器,由消息服务器负责消息的传递.各个子系统之间是松散耦合的,可以处于异构平台,整个应用系统易于管理和扩展.3基于JMS的分布式异步事务处理技术JMS消息机制是一种可靠的异步数据传输机制,但JMS本身并不能实现分布式事务处理,它将分布式X/OpenDTP基础上进行改进,将JMS和传统事务处理技术相结合,利用JMS消息中间件充当通信资源管理器,在其上层增加一个事务管理器,实现一个基于JMS的分布式异步事务处理模型(如图4所示),可以为分布式应用系统的长期事

14、务处理和复杂网络环境下事务处理提供一种较好的解决方案.JMS提供者图3基于JMS的消息通信系统体系结构图4基于JMS的分布式异步事务处理模型该模型中组件AP和RM与X/OpenDTP模型中的对应组件功能相同,AP负责定义事务边界,RM提供对共享资源的访问.JMS组件负责消息处理,采用异步传输方式为分布式事务处理提供一个稳定,可靠的数据传输环境.事务发起者的TM称为全局TM,负责给全局事务分配标识符,生成事务上下文信息,将它参与全局事务(称为事务参与者)的TM称为本地TM,通过JMS组件获取事务请求消息,启动本地事务,并管理和监控本地事务的执行,提交和回滚.第2期王成良等:一种基于JMS的分布式

15、异步事务处理模型设计237JMS采用异步通信机制,消息发送者可以在发送消息后继续进行其它的任务,不用等待接收者的回应,而接收者也不要求接到消息后立即对发送者的请求进行处理,即消息的发送和接收是异步的,两者的生命周期不必相同.通过采用JMS消息中间件作为通信资源管理器,分布式事务处理可以转化为消息处布式异步事务处理模型的事务处理过程如图5所示.事务参与者B全局事务发起者A全局事务起点锁定数据资源,执行本地操作本地操作执行完,解除数据资源锁定监听事务处理结果队列发送事务请求消息接收事务处理结果消息事务处理结果队列接收事务请求消息发送事务处理结果消息接收事务请求消息发送事务理结果消息,谣甄-1执行本

16、地操作二二二l本地操作执行I完,解除数据资I源锁定=二=创理本地事上务终点(事务参与者c本地事务起电=二二I本地操作执行l完,解除数据f源锁定=二二l创建事务处理2,1果消息本地事上务终点图5基于JMS分布式异步事务处理过程事务发起者AP调用全局TM启动一个全局事务,锁定数据资源执行本地操作,本地操作执行完后,释放数据资源锁定,创建事务处理请求和事务上下文消息,发送至JMS消息服务器.事务参与者AP通过监听事务处理请求队列,获取本地事务处理请求和事务上下文消息,调用本地TM开始事务的执行.事务处理结果封装成JMS消息发送至JMs服务器的事务处理结果队列.事务发起者全局TM从事务处理结果队列获取

17、各子事务的处理结果.为了解决在事务提交的准备阶段时间可能过长而造成的事务阻塞和资源的浪费,基于JMS的分布式异步事务处理模型对两阶段提交协议进行改进,采用快速提交协议(如图6所示):去除两阶段提交协议中的准备阶段,各事务参与者完成子事务后,不必等待全局TM发出的准备提交命令,可自行决定提交,即直接向JMS服务器的事务处理结果队列发送子事务提交的消息.快速提交协议的基础是建立在子事务最终都会正障或软件故障导致子事务执行失败时,本地TM执行事务回滚,恢复到初始状态,即子事务执行失败时只执行全局事务的局部回滚.随后,事务参与者向全局TM发失败消息后,向该事务参与者发送一个补偿事务请求处理消息.该参与

18、者从JMS服务器获取消息后,重新执行相应的子事务.图6快速提交协议与传统的两阶段提交协议相比,快速提交协议消除了事务的阻塞现象,提高了数据资源的利用率和事器一面列务趸队务一事一蜗交一238信息工程大学务处理的效率.通过采用JMs消息系统,事务参与者之间是松散耦合的,子事务的处理结果不会相互影响.因此,事务参与者可以不必等待其它事务参与者的处理结果,自行决定提交和回滚本地执行的子事务.快速提交协议通过去除事务提交的准备阶段,消除了事务阻塞现象.各事务参与者提交子事务后,就可释放对数据资源锁定,减少其它访问数据资源的事务进程的等待时间.通过采用JMS异步,可靠通信机制和快速提交协议,基于JMS的分

19、布式异步事务处理模型可以较好地应用于复杂网络环境下分布式应用系统的事务处理,与传统的分布式事务处理模型相比,具有以下特点:全局事务可靠性增强全局TM与事务参与者的RM不必时刻处于联机状态,即使现网络中断事件,或某一事务参与者的临时故障,都不会导致全局事务的失败.事务处理效率较高事务发起者启动一个全局事务,在执行完本地操作后,就可释放对数据资源的锁定,不必长时间地等待各子事务处理而阻塞其它事务进程对数据资源的访问.支持事务部分回滚与恢复某一子事务执行失败不会导致全局事务的回滚,本地TM可以进行本地操作单元的回滚,以恢复初始状态,然后重新执行该子事务.应用系统易于管理和扩展采用JMS进行异步的数据通信,降低了分布式应用系统子系统之间的耦合性和事务之间对数据资源的竞争机率,更好地实现各子系统之间的独立性,易于实现应用系统的管理和扩展4结束语事务处理模型通过在传统分布式事务模型X/OpenDT

温馨提示

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

评论

0/150

提交评论