摘要:給出了一種適用于SOA環(huán)境的事務(wù)處理系統(tǒng)——DTPS。它能夠適應(yīng)SOA的松耦合環(huán)境,完成商用事務(wù)的并發(fā)控制與恢復(fù)。首先給出DTPS系統(tǒng)的整體結(jié)構(gòu)與功能;然后詳細(xì)討論了其并發(fā)控制算法及消息傳遞機(jī)制。
關(guān)鍵詞:面向服務(wù)的架構(gòu); 事務(wù)處理系統(tǒng);簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議; Web服務(wù)
中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2007)11-0218-04
0引言
SOA是一種松散耦合的軟件體系結(jié)構(gòu)。在該體系結(jié)構(gòu)中,由各自獨(dú)立可復(fù)用的服務(wù)構(gòu)成系統(tǒng)功能。這些服務(wù)對(duì)外提供意義明確的接口,軟件的開(kāi)發(fā)通過(guò)對(duì)這些接口的調(diào)用來(lái)完成[1,2]。在此環(huán)境下,事務(wù)仍然是并發(fā)控制與恢復(fù)的基礎(chǔ)設(shè)施。但由于系統(tǒng)的各個(gè)組成部分都有自己的事務(wù)管理系統(tǒng)且各不相同,傳統(tǒng)的事務(wù)處理技術(shù)[3]不能直接應(yīng)用。
針對(duì)此環(huán)境,IBM、微軟和BEA提出WS-C/T[4,5]等協(xié)議。WS-C/T建立在SOAP、WSDL等Web服務(wù)的標(biāo)準(zhǔn)之上,提供協(xié)調(diào)分布式應(yīng)用活動(dòng)的可擴(kuò)展框架及框架支持的協(xié)調(diào)類(lèi)型和協(xié)調(diào)協(xié)議。OASIS組織也提出了business transaction protocol[6]規(guī)范。BTP采用互操作協(xié)議來(lái)定義Web服務(wù)的事務(wù)性表現(xiàn)及消息內(nèi)容。文獻(xiàn)[7]在滿(mǎn)足傳統(tǒng)事務(wù)ACID性質(zhì)的基礎(chǔ)之上引入?yún)f(xié)調(diào)器(coordinator)的概念,提出了適用于Web服務(wù)的協(xié)同工作框架及協(xié)議。此外,文獻(xiàn)[8]針對(duì)服務(wù)組合,基于CORBA和J2EE對(duì)象通信模型,提出了對(duì)象事務(wù)(object transac ̄tion)的解決方案。
文獻(xiàn)[9]總結(jié)了Web 服務(wù)環(huán)境下事務(wù)的主要特點(diǎn),如事務(wù)涉及到的實(shí)體是分布在網(wǎng)絡(luò)中不同位置、不同平臺(tái)上的服務(wù)參與者;存在很多長(zhǎng)事務(wù)、交互事務(wù);每個(gè)事務(wù)都可能存在多個(gè)可選的子事務(wù);事務(wù)結(jié)構(gòu)比傳統(tǒng)事務(wù)更松散、更靈活、更復(fù)雜,并不嚴(yán)格地遵循傳統(tǒng)事務(wù)ACID 原則等。筆者認(rèn)為SOA環(huán)境下,事務(wù)管理還有一些新的特征:
a)協(xié)同性。系統(tǒng)由多個(gè)組成部分按調(diào)用關(guān)系組合而成,且每個(gè)組成部分都有自己的事務(wù)管理方式。在SOA環(huán)境下,事務(wù)管理主要是把系統(tǒng)中已存在的事務(wù)管理系統(tǒng)組織起來(lái),進(jìn)行協(xié)同事務(wù)管理。
b)脆弱性與冗余性。單個(gè)節(jié)點(diǎn)更容易斷開(kāi)或消失。所以單一節(jié)點(diǎn)上的事務(wù)非常脆弱,更容易失敗。但系統(tǒng)可能存在多個(gè)冗余節(jié)點(diǎn),一個(gè)事務(wù)(或子事務(wù))又可在多個(gè)節(jié)點(diǎn)同時(shí)啟動(dòng)多個(gè)副本,因此事務(wù)執(zhí)行的成功率又有所提高。本文針對(duì)SOA環(huán)境中對(duì)事務(wù)系統(tǒng)的新特征,給出一種新的事務(wù)處理系統(tǒng)——DTPS(distributed transaction process system)。該系統(tǒng)采用嵌套事務(wù)模型來(lái)表示對(duì)多個(gè)服務(wù)的嵌套調(diào)用,利用完全分布的算法進(jìn)行服務(wù)的并發(fā)控制管理,并采用SOAP作為底層通信協(xié)議。DTPS 的運(yùn)行可以跨越不同的企業(yè)和組織,能夠滿(mǎn)足Web服務(wù)事務(wù)的需求,同時(shí)又有一定的靈活性、實(shí)用性、可擴(kuò)展性和可靠性。
1SOA事務(wù)處理框架——DTPS
1.1DTPS整體設(shè)計(jì)架構(gòu)
DTPS的整體架構(gòu)如圖1所示。系統(tǒng)由協(xié)調(diào)者、參與者、事務(wù)、傳輸構(gòu)件組成。應(yīng)用程序通過(guò)API接口與協(xié)調(diào)器交互,提出或取消事務(wù),并接收事務(wù)處理結(jié)果。協(xié)調(diào)器負(fù)責(zé)管理和控制事務(wù)的運(yùn)行,負(fù)責(zé)創(chuàng)建事務(wù),允許參與者登記和解除登記,完成參與者之間的并發(fā)控制和協(xié)調(diào)等。參與者完成事務(wù)承擔(dān)事務(wù)性工作的Web服務(wù)。傳輸構(gòu)件則完成事務(wù)系統(tǒng)其他部分之間的消息傳送。協(xié)調(diào)器、參與者、傳輸構(gòu)件均以Web服務(wù)部署單元的形式部署在Web服務(wù)運(yùn)行時(shí)容器中。
在該模型中,事務(wù)模型是基礎(chǔ),協(xié)調(diào)器管理是關(guān)鍵,事務(wù)上下文是事務(wù)管理的實(shí)現(xiàn)機(jī)制,而補(bǔ)償事務(wù)處理機(jī)制則是一種事務(wù)恢復(fù)策略。
1.2DTPS的事務(wù)模型與補(bǔ)償機(jī)制
4結(jié)束語(yǔ)
本文給出了一個(gè)用于SOA環(huán)境的事務(wù)處理模型DTPS。從事務(wù)模型、事務(wù)上下文管理、協(xié)調(diào)器管理和補(bǔ)償事務(wù)處理機(jī)制等方面詳細(xì)介紹了DTPS的架構(gòu),詳細(xì)討論了DTPS的并發(fā)控制算法以及消息傳遞機(jī)制。DTPS能夠較好地適應(yīng)SOA架構(gòu)的松耦合特征,同時(shí)又有一定的靈活性、實(shí)用性、可擴(kuò)展性和可靠性。
目前筆者已實(shí)現(xiàn)了DTPS的原型系統(tǒng),正準(zhǔn)備推廣到應(yīng)用中去,考慮增加圖形界面,讓用戶(hù)更方便地進(jìn)行事務(wù)管理。補(bǔ)償事務(wù)并不能適用于所有事務(wù),對(duì)不可補(bǔ)償事務(wù)的處理是下一步的工作重點(diǎn)。另外對(duì)事務(wù)的原子性進(jìn)一步的放松及恢復(fù)機(jī)制的研究也是下一步要做的工作。
參考文獻(xiàn):
[1]ENDREI M, ANG J, ARSANJANI A, et al. Patterns: service oriented architecture and Web services[R].[S.l.]: 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 techniques[M]. San Francisco: Morgan Kaufmann,1993.
[4]ORCHARD D. Web services coordination[EB/OL]. (2002-08).http://dev.bea.com/technologies/webservices/standards.jsp.
[5]COX W. Web services transaction[EB/OL]. (2002-08).http://dev.bea.com/technologies/webservices/standards.jsp.
[6]FURNISS P. Business transaction protocol version1.1.0[EB/OL]. (2004-11-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 reservation-based coordination protocol for Web services[C]//Proc of the IEEE Internatronal Conference on Web Services. Orlando:[s.n.],2005.
[8]SCHMIT B A, DUSTDAR S. Towards transactional Web services[C]//Proc of the 7th Int’l Conf on E-commerce Technology Workshop. 2005.
[9]岳昆,王曉玲,周傲英. Web服務(wù)核心支撐技術(shù):研究綜述[J]. 軟件學(xué)報(bào),2004,15(3):428-442.
[10]MOSS J E B. Nested transactions: an introduction[C]//Proc of Concurrency Control and Reliability in Distributed Systems. New York : Van Nostrand Reinhold,1987:395-425.
[11]GARCIA-MOLINA H, SALEM K. Sagas[C]//Proc of the ACM SIGMOD Conference on Management of Data. San Diego:[s.n.]
, 1987:249-259.
[12]丁柯. 網(wǎng)絡(luò)分布計(jì)算中的事務(wù)工作流研究[D].北京:中國(guó)科學(xué)院,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事務(wù)處理技術(shù)的研究[D]. 廣州:華南理工大學(xué),2006.
[15]陳曉萍.虛擬數(shù)據(jù)庫(kù)事務(wù)模型研究與設(shè)計(jì)[D].廣州:華南理工大學(xué),2006.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”