999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CORBA對象事務服務及其并發控制研究

2010-09-27 01:40:50祁明龍
電子設計工程 2010年1期
關鍵詞:資源服務

李 浩,祁明龍

(武漢理工大學 計算機學院,湖北 武漢430070)

CORBA對象事務服務及其并發控制研究

李 浩,祁明龍

(武漢理工大學 計算機學院,湖北 武漢430070)

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

CORBA對象事務服務;ACID;兩步提交協議;并發控制服務

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

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

1 CORBA對象事務服務

1.1 對象事務服務模型

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

圖1 分布式事務處理模型

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

1.2 OTS提供的IDL接口

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

從OTS1.2版開始不再使用TransactionalObject接口,取代它的是新增的POA策略OTSPolicy(取值為REQUIRES,FORBIDS或ADAPTS)和以該POA策略創建的事務型對象引用,從而應用程序無需為增加事務處理能力而修改原有的IDL接口定義,可更好集中處理業務邏輯。

2 CORBA并發控制服務

并發控制服務 CCS(Concurrency Control Service)支持多個客戶程序并發訪問共享資源。當多個并發客戶訪問某一共享資源時,該服務可協調客戶程序之間有沖突的活動,從而維持共享資源狀態的一致性。

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

并發控制服務利用鎖(lock)管理控制共享資源的并發使用。鎖代表某一客戶程序以特定方式訪問某一共享資源的能力,每一個鎖都與一個資源和一個客戶程序相關聯。客戶程序必須在訪問共享資源之前獲取合適的鎖,如果多個客戶程序訪問共享資源的并發行為有可能產生沖突,則由并發控制服務負責避免這些客戶程序同時擁有該共享資源的鎖。

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

并發控制服務為應用程序和對象事務實現鎖的管理提供一套標準的接口,這些IDL接口定義在模塊CosConcurrencyControl中。其定義如下:

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

3 ORBA事務服務及其并發控制的實現

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

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

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

客戶程序的主要操作部分關鍵代碼如下:

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

4 結論

CORBA對象事務服務通過兩步提交協議很好地解決分布式事務處理,保證一個事務的ACID性質,而CORBA并發控制服務則解決了事務的并發性。另外,還可以進一步對資源的加鎖粒度進行研究和細化,以提高程序內在的并發程度,具有廣泛應用領域。

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

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

[3]OMG.CORBA服務[M].北京:電子工業出版社,2002.

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

[5]OMG.CORBA系統結構原理與規范[M].韋樂平,薜居敖,孟洛明,譯.北京:電子工業出版社,2000.

[6]Orfali Robert,Harkey Dan.Java 與 CORBA 客戶/服務器編程[M].北京:電子工業出版社,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—),男,安徽淮北人,碩士。研究方向:分布式計算。

猜你喜歡
資源服務
讓有限的“資源”更有效
基礎教育資源展示
一樣的資源,不一樣的收獲
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
資源回收
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 婷婷午夜天| 女人18毛片一级毛片在线 | 中文字幕日韩丝袜一区| 国产偷国产偷在线高清| 亚洲福利片无码最新在线播放| 久久久久久久97| 中日韩欧亚无码视频| 国禁国产you女视频网站| 最新国产在线| 在线免费亚洲无码视频| 成年女人a毛片免费视频| 日本免费a视频| 婷婷五月在线视频| 热99精品视频| 国产精品嫩草影院av| 97在线观看视频免费| 亚洲高清中文字幕| 久草青青在线视频| jizz在线观看| 99久久精品无码专区免费| 亚洲国产日韩一区| 国产青青操| 亚洲男人在线| 伊人久热这里只有精品视频99| 天堂成人av| 91小视频在线观看免费版高清| 亚洲三级成人| 久久久久青草线综合超碰| 专干老肥熟女视频网站| 国产成人一区| 亚洲综合激情另类专区| 国产成人一级| 欧美97色| 亚洲欧美日韩成人高清在线一区| 国内视频精品| 国产www网站| 激情综合网址| 囯产av无码片毛片一级| 看av免费毛片手机播放| 亚洲中久无码永久在线观看软件 | 日本亚洲国产一区二区三区| av色爱 天堂网| 无码日韩视频| 日本色综合网| 欧美激情第一区| 人人澡人人爽欧美一区| 精品国产aⅴ一区二区三区| 亚洲精品无码AV电影在线播放| 91青青视频| 精品国产污污免费网站| 91亚洲免费| 97免费在线观看视频| 99视频在线免费观看| 四虎国产成人免费观看| 欧美午夜在线观看| 美女免费黄网站| 国产精品色婷婷在线观看| 国产人成乱码视频免费观看| 少妇精品在线| 亚洲AV免费一区二区三区| 福利在线不卡| 国产精品99在线观看| 久久精品国产999大香线焦| 国内精品久久久久久久久久影视| 曰韩人妻一区二区三区| 成人国产小视频| 91免费国产高清观看| 午夜毛片免费看| 国产成人精品无码一区二| 精品视频一区在线观看| 中日韩一区二区三区中文免费视频| 夜夜拍夜夜爽| 国产免费自拍视频| 中文字幕欧美日韩| 中国一级特黄视频| 在线日本国产成人免费的| 国产日韩丝袜一二三区| 40岁成熟女人牲交片免费| 国产毛片基地| 亚洲中文在线视频| 欧美午夜视频在线| 国产手机在线观看|