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

具有備份恢復功能的OTS設計與實現

2007-12-31 00:00:00王鵬杰苑森淼
計算機應用研究 2007年12期

摘要:提出一種對象事務服務器備份恢復模型,并結合CORBA的OTS標準實現了一個具有恢復管理功能的CORBA對象事務服務器。結果表明,該事務服務器除了具有OMG規范規定的功能外,還具有事務數據在線備份及意外失敗后恢復的功能。

關鍵詞:分布式計算; 公共對象請求代理體系結構; 對象事務服務; 備份與恢復; 事務; 兩階段提交協議

中圖分類號:TP311文獻標志碼:A

文章編號:1001-3695(2007)12-0220-03

CORBA是由對象管理組所提出的一種規范[1]。OMG的COSS標準[2]定義了大約16種公共對象服務。這些服務是CORBA為使用和維護對象系統而提供的基本服務集合。它們獨立于應用領域,是分布式對象程序使用的接口。OTS[3]是OMG組織推出的一種COSS服務,它保證了企業應用中事務性操作的原子性和持久性,對構建高可靠性應用,特別是要求并發訪問共享數據的分布式應用起著關鍵作用。

在事務服務器處理事務的過程中,可能會因為斷電等故障而導致事務服務器的崩潰。為了維護數據的一致性,就應該有一種完善的機制保證事務的重新啟動和恢復。文獻[4~6]實現了幾種不同特點的事務服務器,但是實現的事務服務器沒有考慮恢復功能;文獻[7]討論了分布式事務處理中的事務失敗恢復,但是沒有給出具體的實現。本文提出了一種事務服務器意外失敗恢復模型,并且結合OTS規范在Orbas[8]的ORB上實現了一個具有恢復管理功能的事務服務器。

1總體設計

如圖1所示,org.omg.CosTransactions包中是OTS各接口的POA框架類和碼根類。Orbas.OTS中的類均繼承自該包的POA框架類。Orbas.OTS包還要調用org.omg.CORBA包和orb內核子系統。Orbas.TransRecovery包是備份恢復管理模塊,事務服務器在進行事務處理的過程中須與該模塊聯系進行事務數據的動態備份;同樣,當事務服務器失敗后重啟時,備份恢復模塊主導整個事務服務器的恢復過程,在此過程要頻繁地與OTS模塊交換信息。

2OTS模塊的設計與實現

2.1OTS接口定義

圖2描述了OTS接口:

Current 接口中定義了控制和管理事務的操作,可以開始和結束一個事務,通過Current 可以獲得當前事務的相關信息。

TransactionFactory 接口中定義了兩個操作,即create和recreate。前者可以生成一個新的頂層事務;后者可以生成一個PropagationContext,定義已存在事務的新代表,并返回一個Control 對象。

Control 接口允許一個程序顯式地管理或者隱式地傳播一個事務上下文。該接口定義了兩種操作,即get_terminator和get_coordinator。前者返回一個Terminator對象,該對象支持結束事務的操作;后者返回一個Coordinator 對象,以支持相關資源參與到事務所需要的操作。

Terminator接口提供提交和回退事務的操作。一般由事務的發起者調用這些操作。

Coordinator接口提供一個分布式對象參與到事務所需要的操作。這些參與者既可以是可恢復對象,又可以是可恢復對象的代理。

RecoveryCoordinator提供了可恢復對象恢復自身的接口。

Resource接口是資源接口,可恢復服務器繼承此接口,以參與兩階段提交協議。

Synchronization接口是繼承自TransactionalObject接口,因此它是個特殊的事務對象,它的某些數據依賴資源對象。如果一個事務對象的數據本身雖然不是資源,但是它需要在資源中改變數據時得到通知,這時,該事務對象可以實現Synchronization接口,并將自己注冊在Coordinator上。這樣在兩階段協議開始或者結束時,分別調用Synchronization中的before_completion和after_completion操作進行相應的處理。

2.2OTS實現

OTS靜態類圖如圖3所示。

CurrentImpl是事務型應用程序和OTS交互的橋梁。它提供了事務服務中常用的API,是對事務進行直接管理的基礎。它包括發起和終止一個事務,獲得當前的事務狀態,獲得與設置事務的上下文、設置事務的超時、掛起和恢復一個事務等。TransactionFactoryImpl用于創建ControlImpl,這樣就構建起整個事務處理的上下文。ControlImpl在其構造函數中根據傳入的time_out等各個參數創建CoordinatorImpl和TerminatorImpl。CoordinatorImpl用來登記資源和同步對象,用兩個向量分別存儲注冊到該Coordinator的資源和同步對象。

TerminatorImpl是兩階段提交協議的具體執行者。當事務型應用程序發出commit操作時,將使所有與事務相關的資源執行兩階段提交協議。圖4展示了兩階段提交的整個過程。

TimeOutControl用于控制事務的超時,它繼承于java.lang.Thread。在事務上下文被創建時設置啟動,然后線程休眠time_out設定的時間。如果在規定的時間內事務還沒有對其進行提交,定時器將執行回退操作。

org.omg.CosTransactions.Resource和org.omg.CosTransactions.Synchronizations是資源對象和同步對象在其客戶端的對象引用,它們注冊到CoordinatorImpl上并被其管理。

3備份恢復模塊設計與實現

在OTS服務器進行事務處理的過程中,可能會出現斷電等故障而導致意外失敗。為了維護數據的一致性,OTS服務器應具有意外失敗后自我恢復的能力。本文提出了OTS服務器的一種備份恢復模型,如圖5所示。具體分為兩個階段:a)在OTS服務器運行過程中,OTS模塊與備份模塊協作,采用事務日志的方式動態地記錄事務運行的過程,即OTS的動態備份階段;b)當事務服務器意外失敗而重啟后,恢復管理模塊根據動態備份的事務日志信息與OTS模塊協作進行事務的恢復,即OTS的恢復階段。

3.1事務數據的動態備份

事務在運行的過程中,每當進行狀態的轉換和其他重要的事件,如注冊資源、提交資源、準備好資源等時都將必要的信息通過LogWriter寫入日志。如圖5所示,OTS在適當的時機調用LogWriter寫入日志。問題的關鍵是寫入日志的時機及日志的格式。

3.1.1日志寫入時機

要確定日志寫入的時機,需要分析事務服務器運行過程中的重要的狀態點。事務的九種狀態及其變遷過程如圖6所示。

應用程序開始一個事務,創建事務上下文,事務的狀態變為StatusActive;OTS和參與事務的各個資源聯系,進入兩階段提交協議的prepare階段,事務的狀態轉變為StatusPreparing;如果各個資源投票通過,事務狀態轉變為StatusPrepared;接著將進入兩階段提交協議的commit階段,事務狀態轉變為StatusCommitting;如果提交成功,事務狀態變為StatusCommitted;在準備階段出現某個資源投票未通過,事務狀態變為StatusRollingBack;回退結束,事務狀態變為StatusRolledBack;如果事務標記為回退,事務狀態變為StatusMarkedRollback。

參照以上事務的狀態變遷過程,根據各個狀態點,給出事務日志記錄的時機如表1所示。

3.1.2日志格式

事務日志的格式如下:transcation_id,nested_trans_id,phase,resource,vote,status,time。其中,phase是表1中的14個可能值中的一個;而transaction_id是事務的惟一性標志;nes-ted_trans_id為嵌套事務的惟一性標志;resource是該事務涉及的資源對象的IOR(interoperable object reference,可互操作對象引用);vote為事務投票的結果;status為事務相應的狀態,取值為圖6中九種狀態中的一種;time為日志記錄的時間。

3.2事務的恢復

當事務服務器意外失敗而重新啟動后,RecoveryManager負責判斷OTS在失敗時的狀態,而進行相應的回退或者繼續提交的操作。RecoveryManager與LogMonitor聯系得以決定是否進行事務恢復。如果需要恢復,LogMonitor與LogReader聯系從Logs中讀出并解析相應的信息。RecoveryManager在實施恢復的過程中需要與OTS模塊進行交互。例如根據日志中得到的資源IOR調用CoordinatorImpl中的register_resource操作進行注冊等。RecoveryManager進行恢復的具體過程如圖7所示。它描述了恢復事務的整個過程。從圖7中可以看出,只要當事務服務器崩潰時,事務的狀態是_StatusPrepared或者_StatusCommitting, 并且日志記錄沒有回退的資源時,恢復管理器

才執行事務的繼續提交。因為此時能肯定事務已經成功完成了兩階段提交協議,在別的情況下要執行事務的回退。

4結束語

事務處理是分布式應用中特別是企業應用中需要處理的一個重要問題。在開發機械第九設計院協同設計管理系統的過程中,一個重要的問題就是解決事務的處理。要求在整個系統所應用的事務處理模塊不僅能保證事務的ACID準則,并且應具有事務服務意外失敗后能進行自我恢復的能力。本文所實現的具有失敗恢復能力的OTS系統能很好地應用在協同設計管理系統中,作為一個分布式事務處理中間件,承擔著在整個系統中協調分布式對象之間的事務處理的功能。

參考文獻:

[1]Object Management Group. The common object request broker: architecture and specification: 3.0 edition[EB/OL].[2006-08-27].http://www.omg.org.

[2]Object Management Group. CORBAServices: common object services specification[EB/OL].[2006-08-27].http://www.omg.org.

[3]Object Management Group. Object transaction service specification: 1.3 edition[EB/OL].[2006-08-27].http://www.omg.org.

[4]陳良銀,李志蜀,鄧麗華,等.CORBA對象事務服務的實現[J].計算機應用與軟件,2005,22(2):57-58,87.

[5]徐海淵,吳泉源.基于StarBus的對象事務服務的設計與實現[J].國防科技大學學報,1999,21(1):76-79.

[6]楊濤,鄭曉霞,劉錦德.CORBA中對象事務服務研究與實現[J].電子科技大學學報,2001,30(6):590-595.

[7]齊勇,馬莉,趙季中,等.分布式事務處理技術及其模型[J].計算機工程與應用,2001,37(9):60-62.

[8]王克波.The orbas project: CORBA implementation project[EB/OL].[2006-08-27].http://labs.huihoo.com/orbas/index.html.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 日韩在线影院| 91丝袜乱伦| 91欧美亚洲国产五月天| 国产产在线精品亚洲aavv| 素人激情视频福利| 国产成人久视频免费| 亚洲成网777777国产精品| 亚洲综合日韩精品| 亚洲日韩欧美在线观看| 日韩中文字幕亚洲无线码| 中国精品久久| 国产精品网拍在线| 91久久精品国产| 91久久偷偷做嫩草影院电| 欧美亚洲日韩不卡在线在线观看| 亚洲69视频| 午夜日b视频| 国产成人精品高清在线| 亚洲成人福利网站| 国产精彩视频在线观看| 国产永久免费视频m3u8| 台湾AV国片精品女同性| 九九热精品在线视频| 大学生久久香蕉国产线观看| 色妞www精品视频一级下载| 国产精品久久久久鬼色| 精品国产自在在线在线观看| www.精品国产| 少妇高潮惨叫久久久久久| 成人在线观看不卡| 亚洲成aⅴ人在线观看| 99精品视频在线观看免费播放| 这里只有精品免费视频| 国产视频你懂得| 国产视频欧美| 免费一级毛片在线播放傲雪网| 亚洲综合色婷婷中文字幕| 香蕉久久国产超碰青草| 亚洲中文字幕手机在线第一页| 久久精品国产精品青草app| 中文字幕精品一区二区三区视频| 国产成人精品视频一区二区电影| 亚洲中文字幕久久精品无码一区| 在线观看免费国产| 日韩色图区| h网址在线观看| 58av国产精品| 伊人久综合| 亚洲无码一区在线观看| 欧美精品成人| 91口爆吞精国产对白第三集| 日韩在线2020专区| 国内精品久久久久久久久久影视| 精品1区2区3区| 亚洲色精品国产一区二区三区| 欧美精品另类| 欧美有码在线| 国产网友愉拍精品视频| 精品国产Av电影无码久久久| 日韩成人在线网站| 亚洲精品男人天堂| 亚洲一区二区三区麻豆| 亚州AV秘 一区二区三区 | 欧美日韩在线国产| 国产成人AV大片大片在线播放 | 国产成人综合亚洲欧美在| 波多野结衣中文字幕久久| 国产主播在线一区| 精品综合久久久久久97超人| 久久99久久无码毛片一区二区| 99在线国产| 啪啪永久免费av| 精品视频一区二区观看| 玩两个丰满老熟女久久网| 免费又黄又爽又猛大片午夜| 久久国产高潮流白浆免费观看| 无码av免费不卡在线观看| 国产乱人免费视频| 国产精品流白浆在线观看| 动漫精品啪啪一区二区三区| 女人毛片a级大学毛片免费| 秋霞国产在线|