亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        CORBA對象事務(wù)服務(wù)及其并發(fā)控制研究

        2010-09-27 01:40:50祁明龍
        電子設(shè)計(jì)工程 2010年1期
        關(guān)鍵詞:調(diào)用事務(wù)應(yīng)用程序

        李 浩,祁明龍

        (武漢理工大學(xué) 計(jì)算機(jī)學(xué)院,湖北 武漢430070)

        CORBA對象事務(wù)服務(wù)及其并發(fā)控制研究

        李 浩,祁明龍

        (武漢理工大學(xué) 計(jì)算機(jī)學(xué)院,湖北 武漢430070)

        為有效地保證分布式事務(wù)的ACID性質(zhì)以及解決多個客戶程序并發(fā)訪問某一事務(wù)所造成的訪問沖突,根據(jù)CORBA對象事務(wù)服務(wù) OTS(Object Transaction Service)、并發(fā)控制服務(wù) CCS(Concurrency Control Service)及其提供的相關(guān)接口,采用兩步提交協(xié)議和并發(fā)控制鎖機(jī)制實(shí)現(xiàn)。并將兩者相結(jié)合實(shí)現(xiàn)一個賬戶之間的轉(zhuǎn)賬操作,證明其可行性。

        CORBA對象事務(wù)服務(wù);ACID;兩步提交協(xié)議;并發(fā)控制服務(wù)

        早期的事務(wù)處理多是基于數(shù)據(jù)庫管理系統(tǒng)DBMS(Database Management System),比較簡單。隨著應(yīng)用程序的日趨復(fù)雜和龐大,一個應(yīng)用往往要跨越網(wǎng)絡(luò)中的多個平臺,甚至是不同廠商提供的不同產(chǎn)品,即使是一種分布式DBMS,也未必總能滿足各種分布式應(yīng)用需求,因此保證事務(wù)在分布的、異構(gòu)的環(huán)境下工作成為迫切問題 。這就要求制定用于規(guī)范應(yīng)用程序與不同資源之間相互協(xié)調(diào)進(jìn)行事務(wù)處理的標(biāo)準(zhǔn),以維持事務(wù)的ACID性質(zhì),即原子性(Aomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。X/Open 提出的分布式事務(wù)處理DTP模型就滿足這種需求[1]。

        由OMG發(fā)布的CORBA對象事務(wù)服務(wù)就是基于DTP而制定的,它支持多個分布式對象通過兩步提交2PC(Two-Phase Commit)協(xié)議參與1個分布式事務(wù)[2]。然而,當(dāng)有多個并發(fā)客戶程序訪問某一共享資源時,就有可能造成客戶程序之間的沖突。為此,CORBA發(fā)布并發(fā)控制服務(wù)CCS(Concurrency Control Serivce)來協(xié)調(diào)并發(fā)事務(wù)的活動。本文通過研究事務(wù)服務(wù)及其并發(fā)控制,利用CORBA對象事務(wù)服務(wù)保證一個分布式事務(wù)的ACID性質(zhì),利用CORBA并發(fā)控制服務(wù)為1個事務(wù)申請或釋放鎖,以此協(xié)調(diào)多個并發(fā)事務(wù)訪問共享資源,最后實(shí)現(xiàn)CORBA對象事務(wù)服務(wù)及其并發(fā)控制。

        1 CORBA對象事務(wù)服務(wù)

        1.1 對象事務(wù)服務(wù)模型

        所謂事務(wù)是指一組操作的集合,該集合能將系統(tǒng)的共享狀態(tài)從一個一致狀態(tài)轉(zhuǎn)換到另一個一致狀態(tài)。其主要特征可概括為ACID,分別表示原子性、一致性、隔離性和持久性。一個事務(wù)的結(jié)束方式只有2種情況:一是事務(wù)提交,相關(guān)請求所作的修改具有永久效果;二是事務(wù)已回滾,相關(guān)請求所作的修改被取消[3]。早期基于DBMS的事務(wù)模型由服務(wù)程序管理事務(wù),客戶程序不參與事務(wù)的控制,但在許多分布式應(yīng)用中,服務(wù)程序通常無法全部預(yù)知客戶程序想做的事情,適用性不夠好。為此,引入事務(wù)管理器以供客戶程序靈活地定義事務(wù)的邊界,圖1是分布式事務(wù)處理的抽象模型。

        圖1 分布式事務(wù)處理模型

        該模型包括應(yīng)用程序(AP)、資源管理器(RM)和事務(wù)管理器(TM)[4]。其中,應(yīng)用程序負(fù)責(zé)定義事務(wù)的邊界,指定組成事務(wù)的操作;資源管理器提供對共享數(shù)據(jù)的訪問;事務(wù)管理器用于控制事務(wù)的執(zhí)行過程,協(xié)調(diào)共享資源之間的關(guān)系,并負(fù)責(zé)處理失敗后的恢復(fù)工作。資源管理器和事務(wù)管理器之間雙向通信,實(shí)現(xiàn)兩者之間的兩步提交協(xié)議。兩步提交協(xié)議是指在TM向所有的RM發(fā)出正式提交請求前,先詢問所有的RM是否已準(zhǔn)備好提交,僅當(dāng)所有RM都給出肯定回答時,TM才發(fā)出提交請求;如果有一個RM給出否定的回答,TM就指示所有RM回滾。OMG發(fā)布的對象事務(wù)服務(wù)OTS(Object Transaction Service)基于分布式事務(wù)處理模型的,它支持分布式對象通過兩步提交協(xié)議參與一個分布式事務(wù)。該服務(wù)提供的接口允許對象不是一起提交所有修改,而是一起回滾所有修改,從而保證分布式事務(wù)的ACID性質(zhì)。

        1.2 OTS提供的IDL接口

        為了使事務(wù)服務(wù)更好地融入CORBA框架中,OTS將傳統(tǒng)的事務(wù)處理接口從基于C語言的過程式風(fēng)格改進(jìn)為基于IDL的面向?qū)ο箫L(fēng)格,提出以下接口[5]:1)Current接口。支持客戶程序顯示地管理線程與事務(wù)的關(guān)聯(lián),可為大多數(shù)應(yīng)用提供簡化的操作,含有 begin()、commit()和 rollback()等方法,開始、提交和回滾一個事務(wù)。2)TransactionFactory接口。供發(fā)起事務(wù)的客戶程序創(chuàng)建一個新事務(wù)。3)Control接口??刂茖ο笾С謶?yīng)用程序顯示地管理或傳播事務(wù)上下文,其定義的get_terminator()用于返回當(dāng)前事務(wù)的終結(jié)對象,get_coordinator()用于返回當(dāng)前事務(wù)的協(xié)調(diào)對象。4)Terminator接口。定義commit()和 rollback()方法,提供提交或回滾操作,通常由事務(wù)發(fā)起者調(diào)用。5)Coordiantor接口。提供事務(wù)參與者調(diào)用的操作。6)RecoveryCoordiantor接口。恢復(fù)對象在失敗時將使用恢復(fù)協(xié)調(diào)對象完成恢復(fù),恢復(fù)協(xié)調(diào)對象通常在注冊資源時獲取。7)Resource接口。資源對象為完成2PC提供與已注冊資源所需的操作。當(dāng)資源上的2PC開始時,prepare()操作被調(diào)用并返回投票結(jié)果,即2PC的第1步。commit()和rollback()操作用于提交、回滾,是2PC的第2步。8)Synchronization接口。同步對象是在兩步提交協(xié)議的前后會收到通知的一種事務(wù)型對象。

        從OTS1.2版開始不再使用TransactionalObject接口,取代它的是新增的POA策略O(shè)TSPolicy(取值為REQUIRES,F(xiàn)ORBIDS或ADAPTS)和以該P(yáng)OA策略創(chuàng)建的事務(wù)型對象引用,從而應(yīng)用程序無需為增加事務(wù)處理能力而修改原有的IDL接口定義,可更好集中處理業(yè)務(wù)邏輯。

        2 CORBA并發(fā)控制服務(wù)

        并發(fā)控制服務(wù) CCS(Concurrency Control Service)支持多個客戶程序并發(fā)訪問共享資源。當(dāng)多個并發(fā)客戶訪問某一共享資源時,該服務(wù)可協(xié)調(diào)客戶程序之間有沖突的活動,從而維持共享資源狀態(tài)的一致性。

        并發(fā)控制服務(wù)提供事務(wù)和非事務(wù)2種模式。在事務(wù)模式中,由OTS在事務(wù)提交或回滾時負(fù)責(zé)解鎖;在非事務(wù)模式中,由使用并發(fā)控制服務(wù)的客戶程序決定何時解鎖。引入事務(wù)模式是為了使OTS能利用并發(fā)控制服務(wù)提供的接口協(xié)調(diào)并發(fā)事務(wù)的活動。并發(fā)控制服務(wù)保證采用2種不同操作模式的客戶程序的串行執(zhí)行。

        并發(fā)控制服務(wù)利用鎖(lock)管理控制共享資源的并發(fā)使用。鎖代表某一客戶程序以特定方式訪問某一共享資源的能力,每一個鎖都與一個資源和一個客戶程序相關(guān)聯(lián)??蛻舫绦虮仨氃谠L問共享資源之前獲取合適的鎖,如果多個客戶程序訪問共享資源的并發(fā)行為有可能產(chǎn)生沖突,則由并發(fā)控制服務(wù)負(fù)責(zé)避免這些客戶程序同時擁有該共享資源的鎖。

        并發(fā)控制服務(wù)定義5種適用于不同資源訪問類型的鎖模式:1)讀鎖(read)與寫鎖(write)。 這 2 種最常見的鎖模式支持經(jīng)典的多讀出器/單寫入器策略。讀鎖是共享鎖,其間無沖突;寫鎖是獨(dú)占鎖,讀鎖與寫鎖之間有沖突,寫鎖與寫鎖之間也有沖突。2)升級鎖(update)。類似于讀鎖,但升級鎖與升級鎖之間有沖突,可看作是一種獨(dú)占的讀鎖。3)意圖讀鎖(intention_read)與意圖寫鎖(intention_write),這兩種意圖鎖支持在不同力度加鎖。意圖讀鎖與寫鎖之間有沖突,意圖寫鎖與讀鎖、寫鎖、升級鎖之間均有沖突。

        并發(fā)控制服務(wù)為應(yīng)用程序和對象事務(wù)實(shí)現(xiàn)鎖的管理提供一套標(biāo)準(zhǔn)的接口,這些IDL接口定義在模塊CosConcurrencyControl中。其定義如下:

        在上述定義中,接口LockSetFactory提供的create()和create_transactional()分別用于創(chuàng)建一個普通鎖集合與一個事務(wù)鎖型集合;事務(wù)型鎖集合的接口為TransactionalLockSet,該接口為一個事務(wù)提供申請與釋放鎖的操作,這些操作需要增加參數(shù)current以標(biāo)識事務(wù)。接口LockCoordinator支持CORBA對象事務(wù)(OTS)釋放一個事務(wù)持有的所有鎖,當(dāng)事務(wù)提交或回滾時調(diào)用該接口提供的操作。

        3 ORBA事務(wù)服務(wù)及其并發(fā)控制的實(shí)現(xiàn)

        CORBA事務(wù)服務(wù)定義的組件包括事務(wù)發(fā)起者(transaction originator)、可恢復(fù)服務(wù)器和事務(wù)服務(wù)本身。與事務(wù)發(fā)起者相關(guān) 的接口有 TransactionFactory,Control,Terminator 以 及Current。這些接口的使用者都是事務(wù)發(fā)起者,由其啟動一個事務(wù),事務(wù)環(huán)境將與隨后的請求一起傳遞。在一個事務(wù)范圍內(nèi)所調(diào)用的對象是可恢復(fù)狀態(tài)的對象,它們由事務(wù)發(fā)起者直接調(diào)用,或被一個或若干個事務(wù)對象間接調(diào)用。事務(wù)發(fā)起者利用TransactionFactory對象開始新的頂層事務(wù),此時所創(chuàng)建的Control對象將返回給調(diào)用者。通過Control對象訪問Terminator對象和Coordinator對象。Terminator對象用確認(rèn)或回滾操作結(jié)束一個事務(wù),而Coordinator對象則顯示或隱式地為可恢復(fù)服務(wù)器所使用??苫謴?fù)服務(wù)器將資源對象注冊到Coordinator對象中,實(shí)現(xiàn)由事務(wù)服務(wù)驅(qū)動的兩階段提交協(xié)議。

        OTS為客戶程序提供直接和間接方式管理事務(wù)上下文,有顯式和隱式2種傳播事務(wù)方式。間接管理是指客戶程序利用Current對象綁定事務(wù)上下文與客戶程序線程。而直接管理是指客戶程序直接操縱事務(wù)的控制對象(Control接口)、終結(jié)對象(Terminator接口)或協(xié)調(diào)對象(Coordinator接口)。顯式傳播是指由客戶程序負(fù)責(zé)管理事務(wù),客戶程序?qū)⑹聞?wù)上下文作為調(diào)用請求的一個參數(shù)傳播給對象。隱式傳播是指由系統(tǒng)負(fù)責(zé)管理事務(wù)傳播,調(diào)用請求隱式地與客戶程序的事務(wù)相關(guān)聯(lián),所有調(diào)用請求共享事務(wù)上下文。事務(wù)的不同上下文管理方式與不同傳播方式相結(jié)合,可形成客戶程序與事務(wù)型對象的4種交互方式:1)間接管理/隱式傳播;2)直接管理/顯式傳播;3)直接管理/隱式傳播;4)間接管理/顯式傳播。其中,間接管理/隱式傳播是最常見、最簡單的方式。這種方式中,客戶程序調(diào)用Current接口提供的操作創(chuàng)建并控制一個事務(wù),當(dāng)客戶程序發(fā)送事務(wù)型對象上的調(diào)用請求時,與該客戶程序線程相關(guān)聯(lián)的事務(wù)上下文被隱式的傳播給目標(biāo)對象。

        通過上述分析,可利用CORBA對象事務(wù)服務(wù)來保證一個分布式事務(wù)的ACID性質(zhì),用CORBA并發(fā)事務(wù)服務(wù)提供的接口及鎖模式協(xié)調(diào)并發(fā)事務(wù)活動,解決多個客戶程序并發(fā)訪問某一共享資源造成的沖突[6]。以下采用間接管理/隱式傳播方式對賬戶之間的轉(zhuǎn)賬操作進(jìn)行簡要說明。主要IDL接口定義:

        客戶程序的主要操作部分關(guān)鍵代碼如下:

        在正常提交的情況下,客戶程序首先創(chuàng)建并開始一個事務(wù),為了保證事務(wù)的并發(fā)性,利用CORBA并發(fā)控制服務(wù)對其進(jìn)行申請鎖的操作,接著資源對象source、target分別向OTS注冊資源,當(dāng)向OTS提交該事務(wù)時,OTS會分別向source、target資源對象返回投票結(jié)果,如果所有的投票結(jié)果均已就緒,則可以進(jìn)行提交事務(wù),即通過兩步提交協(xié)議保證該事務(wù)的ACID性質(zhì),提交事務(wù)后執(zhí)行釋放鎖的操作,通過申請釋放鎖的操作避免多個客戶程序因訪問共享資源引起沖突。

        4 結(jié)論

        CORBA對象事務(wù)服務(wù)通過兩步提交協(xié)議很好地解決分布式事務(wù)處理,保證一個事務(wù)的ACID性質(zhì),而CORBA并發(fā)控制服務(wù)則解決了事務(wù)的并發(fā)性。另外,還可以進(jìn)一步對資源的加鎖粒度進(jìn)行研究和細(xì)化,以提高程序內(nèi)在的并發(fā)程度,具有廣泛應(yīng)用領(lǐng)域。

        [1]朱其亮,鄭 斌.CORBA原理及應(yīng)用[M].北京:北京郵電大學(xué)出版社,2001.

        [2]Jason Pritchard.COM與CORBA本質(zhì)與互用[M].北京:清華大學(xué)出版社,2002.

        [3]OMG.CORBA服務(wù)[M].北京:電子工業(yè)出版社,2002.

        [4]尹 皓.基于CORBA的分布式對象技術(shù)研究[D].成都:四川大學(xué),2000.

        [5]OMG.CORBA系統(tǒng)結(jié)構(gòu)原理與規(guī)范[M].韋樂平,薜居敖,孟洛明,譯.北京:電子工業(yè)出版社,2000.

        [6]Orfali Robert,Harkey Dan.Java 與 CORBA 客戶/服務(wù)器編程[M].北京:電子工業(yè)出版社,2004.

        Research of CORBA object transaction service and concurrency control

        LI Hao,QI Ming-long
        (College of Computer Science,Wuhan University of Technology,Wuhan430070,China)

        In order to effectively guarantee the ACID properties of distributed transactions and to solve the conflict caused by a number of clients access to a transaction,according to the CORBA object transaction service,concurrency control and their related interfaces,using respectively two-phase commit protocol and lock mechanism to accomplish them.At last, this paper combining the two to implement the operations of a account,and proves their feasibility.

        CORBA object transaction service; ACID; two-phase commit protocol; concurrency control service

        TP311

        A

        1674-6236(2010)01-0014-03

        2009-08-17 稿件編號:200908034

        李 浩(1984—),男,安徽淮北人,碩士。研究方向:分布式計(jì)算。

        猜你喜歡
        調(diào)用事務(wù)應(yīng)用程序
        “事物”與“事務(wù)”
        基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        河湖事務(wù)
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        刪除Win10中自帶的應(yīng)用程序
        電腦報(2019年12期)2019-09-10 05:08:20
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        SQLServer自治事務(wù)實(shí)現(xiàn)方案探析
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        人妻少妇中文字幕,久久精品| 伊人久久大香线蕉在观看| 欧洲乱码伦视频免费| 亚洲中文字幕一区二区三区多人| 久久久久成人精品免费播放动漫 | 亚洲av日韩av一卡二卡| 日本97色视频日本熟妇视频| 色综合天天综合网国产成人网| 亚洲成av人在线观看天堂无码| 欧美国产高清| 精品av一区二区在线| 国产亚洲精品久久午夜玫瑰园| 在线综合亚洲欧洲综合网站| 亚洲av日韩av综合aⅴxxx| 最新国产一区二区三区| 本道天堂成在人线av无码免费| 亚洲av无码不卡久久| 亚洲av日韩av一卡二卡| 三级网站亚洲三级一区| 热re99久久精品国99热| 最新亚洲人成无码网站| 网红极品女神精品视频在线| 久草视频在线手机免费看| 东京热人妻一区二区三区| 久久久精品国产亚洲AV蜜| 亚洲福利视频一区二区三区| 老太婆性杂交视频| 国产精品白浆在线观看无码专区| 久久99久久99精品免观看女同| 亚洲精品国产av成拍| 乱码av麻豆丝袜熟女系列| 精品久久久久久久久久久aⅴ| 国产精品国产三级国产一地| 国产亚洲精品97在线视频一| 国内精品久久久久影院一蜜桃 | 中国老熟妇自拍hd发布| 91超碰在线观看免费| 天涯成人国产亚洲精品一区av| 国产做爰又粗又大又爽动漫| 麻豆国产高清精品国在线| 在线精品亚洲一区二区三区|