-220・ 计算机应用研究 第24卷 调程序,而不是把协调程序绑定到两阶段提交协议上。 //执行局部事务t; 协调器由下列三个服务组成: 接收其他节点发送的消息; a)激活服务(activation service)。用于创建活动和事务上 switch消息类型 case执行局部事务{ 下文,管理上下文的生命周期。它允许用户制订新事务及其与 设置与事务T冲突的集合中 0nnh(T)为空集; 已有事务的关系,建立并维护事务调用关系树,进行并发控制 ofr each t;∈执行列表d0 与事务恢复。 If(ti t.) b)注册服务(registration service)。用于协调协议选择、注 中。舢 (T)=中 Icl(T)utj所属的全局事务; 把t;添加到执行列表中; 册参与方。它允许参与者进行注册,以接收与特定协调器相关 if(与事务T冲突的集合中 Ⅱic (T)是空集){ 的协议。 在13志中写入局部事务t 操作步骤; c)协调服务(coordination service)。用于活动完成处理。 执行局部事务t.; 参与者用它注册协调协议,参加到事务中。 修改局部事务t 的执行状态; 协调是指协调器发送信息到许多参与者,以保证所有参与 向事务T发送成功执行结果和冲突事务集合; }者得到特定消息的行为。它创建子协调器或者对等协调器之 else{ 间的关系树,如图4所示。 设置局部事务t.为等待执行状态; 向事务T发送局部事务t 执行状态和冲突事务集合 获取执行列表中的第一个局部事务t ; if(tj是等待执行状态){ 在13志中写入局部事务t;操作步骤; 图4协调器和参与者之间的关系树 执行局部事务ti; 修改局部事务ti的执行状态 2 DTPS实现技术 向t;所属的全局事务T 发送成功执行结果; }//end of else 2.1 完全分布的并发控制算法 }//end offor }//end of case 该系统在并发控制方面采用基于序列化图的完全分布的 //提交局部事务t. 死锁检测算法。算法分两部分:协调器方面负责检测是否存在 case提交局部事务{ 死锁;参与者负责传送事务上下文。 在13志中写入全局事务提交操作; 算法1 协调器端并发控制算法 执行提交操作,提交局部事务; (T)={t .-,t }//事务T的局部事务集合 设置事务T后序事务的集合中 (T)为空集; 中(P)={P .-,P }//执行局部事务的站点集合 for each t;∈执行列表d0 if(tl—t )中 (T):中 (T)utj所属的全局事务; SG =¨//事务T的序列化图 在13志中写入局部事务t;提交; {//算法开始 从执行列表中删除t ; //执行阶段,启动事务并更新序列化图 向事务T发送后序事务集合; for eacht ∈中(T)do{ } 将t。发送到相应的P 去执行; f//end of switch 等待来自P 的回答; }//end of algorithm 更新t 的执行状态; Void Update(SefiMGraph SGT,Message answer from Pi) Update(SGT,answer from P。);//更新序列化图 whiletrue do{ if(updated(SGT))//判定SGT是否更新 if(SGT有更新){ 将SG 的更新信息传递给事务T的所有前序事务; 更新SGT; } 将sG 的更新信息传递给事务T的所有前序事务; //验证阶段 } wait until SGT中节点T没有人边; if(SGT有更新^SGT中有环){ //提交阶段 在环中选择时间戳值最大的全局事务进行回滚; for each t.∈中(T)do{ 给该全局事务管理器发送回滚消息; 给执行局部事务t.的P。发送提交命令; Update(SGT,answer from Pi); //end of case 从序列化图sG 获取全局事务T的所有后序事务; //算法结束 将SG 的更新信息传递给事务T的后序事务; Boolean Updated(SerilaGraph SG) } {/ 判定sG是否被上次update操作改变,若有改变返回true,否 }//算法结束 则返回false /} 在该算法中,局部事务管理器等待接收来自其他服务节点 Boolean hasWcycle(SerialGraph SG) 的事务请求,根据事务请求的操作类型,执行不同操作。 {//判定sG中是否有回路,若有返回true,否则返回false} 算法2参与者并发控制算法 以上算法保证死锁的正确检测。其正确性源于序列化图 { 方法的正确性,证明见文献[13]。 维普资讯 http://www.cqvip.com 第11期 2.2消息传递机制 郭玉彬,等:SOA事务处理系统设计与实现 ・221・ 4结束语 本文给出了一个用于SOA环境的事务处理模型DTPS。 DTPS采用SOAP进行底层通信支持。SOAP是Web ser- vices技术的核心之一,用于Web services调用的XML消息表 示。SOAP消息还可以组合以支持多种通信行为,这其中包括 从事务模型、事务上下文管理、协调器管理和补偿事务处理机 请求/响应、请求响应、单向异步消息或者事件通知等。因此系 统采用SAOP协议进行事务之间消息的传递。消息类型如表2 制等方面详细介绍了DTPS的架构,详细讨论了DTPS的并发 控制算法以及消息传递机制。DTPS能够较好地适应SOA架 所示。 表2 DTPS系统的主要消息类型 3相关工作比较 目前SOA正处于不断发展之中,许多公司和标准化组织 已推出支持SOA事务的产品。OASIS的BTP是其中较成熟的 模型。BTP不是专门用于Web服务的事务处理协议,其目的 是使它也能用于其他环境中。因而BTP定义了事务性的XML 协议,并且必须在规范中指定所有的服务依赖性。BTP规范本 质上还是封闭的,而且受到其两阶段协议的。DTPS与 BTP的异同如表3所示。 表3 DTPS与BTP的比较 IBM公司的WSAT 也是一个Web服务事务系统。但 WSAT基于两段提交协议,要求所有参与者的工作完全提交或 者完全取消。其事务性应用程序的开发受限于WebSphere平 台。而DTPS系统中能做到依据自己的商业逻辑,部分地回滚 或提交事务,更好地适应了复杂商业逻辑的需要。DTPS在系 统结构设计上把事务的主要工作放在协调器上,相应地简化了 客户端和参与者的工作。DTPS的运行可以跨越不同的企业 和组织,能够满足Web服务事务的需求,同时又有一定的灵活 性、实用性、可扩展性和可靠性。 构的松耦合特征,同时又有一定的灵活性、实用性、可扩展性和 可靠性。 目前笔者已实现了DTPS的原型系统,正准备推广到应用 中去,考虑增加图形界面,让用户更方便地进行事务管理。补 偿事务并不能适用于所有事务,对不可补偿事务的处理是下一 步的工作重点。另外对事务的原子性进一步的放松及恢复机 制的研究也是下一步要做的工作。 参考文献: [1]ENDREI M,ANG J,ARSANJANI A,et a1.Patterns:service often- ted architecture and Web services[R].[S.1.]:IBM International Technical Support Organization,2004. [2]BLOOMBERG J.The role of the service oriented architect[EB/ OL].(2003—04—12).http://www.ibm.com/developerworks/ratio— nal/library/content/RationalEdge/may03/Bloomberg.pdf. [3]GRAY J,PEUTER A.Transaction processing:concepts and tech— niques[M].San Francisco:Moran Kaufmann,1993. [4]ORCHARD D.Web services coordination[EB/OL].(2002・08).ht・ tp://dev.bea.com/technologies/webservices/stnadards.jsp. [5]COX W.Web services transaction[EB/OL].(2002・08).http:// dev.bea.com/technologies/webservices/stnadards.jsp. [6]FURNISS P.Business transaction protocol version1.1.0[EB/OL]. (2004—1 1・24).http://www.oasis—open.org/committees/download. php/4343/WS2CAF%2Primer.pdf. [7]ZHAO Wen・bing,MOSER L E,MELLIAR—SMITH P M.A reserva・ tion.based coordination protocol for Web services[C]//Proc of the IEEE Intematronal Conference on Web Services.Orlnado:[S.n.], 2005. [8]SCHMIT B A,DUSTDAR S.Towards trnasitional web services [C]//Proc of the 7th Int’1 Conf"on E・commeme Technology Work・ shop.2005. [9]岳昆,王晓玲,周傲英.web服务核心支撑技术:研究综述[J]. 软件学报,2004,15(3):428—442. [10]MOSS J E B.Nested transactions:an introduction[C]//Pmc of Con. currency Control and Reliability in Distributed Systems.New York: Van Nostrand Reinhold,1987:395・425. [1 1]GARCIA・MOLINA H,SALEM K.Sagas[C]//Pmc of the ACM SIG. MOD Conference on Management ofData.San Diego:[s.n.],1987: 249.259. [12]丁柯.网络分布计算中的事务工作流研究[D].北京:中国科学 院.2003. [13]IBM Corporation.Web services atomic transaction for WebSphere application server 5.0.2 technical preview[EB/OL].(2003・10). http://www.alphaworks.ibm.com/tech/wsat. [14]王新忠.SOA事务处理技术的研究[D].广州:华南理工大学, 2006. [15]陈晓萍.虚拟数据库事务模型研究与设计[D].广州:华南理工大 学,2006.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务