


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于ORBIX的分布式數據庫系統的設計與實現
摘要:本文給出了基于CORBA的ORBIX分布式數據庫系統結構。在此基礎上,就使用ORBIX實現分布式數據庫系統的幾個關鍵技術即分布式事務處理、交易服務、會話管理等進行了研究。關鍵詞:CORBA;ORBIX;分布式數據庫;資源管理器;XA接口ABSTRACT:TheORBIXdistributeddatabasesystemarchitectureisgiveninthisthesis.Onthisbasis,Severalkeytechnologysuchasdistributedtransactionprocessing、hedevelopmentofdistributeddatabasesystemareresearched.KeyWords:CORBA;ORBIX;DistributedDatabaseSystem;Resourcemanager;XAInterface物理上分散而邏輯上有集中是分布式數據庫系統(DDBS)的最顯著的特點。DDBS的實現實際上就是將分布在不同地理位置上的集中式數據庫系統通過相應的軟件連接起來構成邏輯上統一的數據庫系統。而對于任何節點用戶來說使用DDBS就好象在使用一個集中式數據庫。CORBA規范是目前最為流行的應用最廣的分布式對象技術。CORBA的目的是定義一套協議,符合這個協議的對象可以互相交互,不論它們是用什么樣的語言寫的,不論它們運行于什么樣的機器和操作系統。從而簡化了簡化本地與遠地對象間的通信,使之以透明的方式實現互連、互通與互操作,免去繁瑣易于出錯的底層工作,使大型分布軟件開發工作相對地提高速度并增加其可靠性[1]。2相關技術在分布式數據庫應用的設計過程中需要解決分布存儲、分布式查詢處理、邏輯互聯、網絡信息傳輸等問題,其復雜性導致軟件開發成本高、開發周期長。所以在開發過程中若能充分利用現有的分布式計算技術,將極大提高分布式數據庫的開發效率[5]。(1)CORBA的主要內容包括:IDL接口定義語言、ORB核心、OA對象適配器、IDL樁、IDL構架、DII動態調用接口、DSI動態程序構架接口、GIOP協議[1]。(2)Orbix是IONA公司研制的基于庫的CORBA規范實現,支持Windows、OS/2、各種UNIX等20余種操作平臺。Orbix是建立在IONA的ART(AdaptiveRuntimeTechnology)技術之上的。ART高效的模塊化結構允許在運行過程中添加新的功能模塊,只是通過改變配置的設置就可以完成。這樣大大的縮減了開發時間[2]。3基于ORBIX分布式數據庫系統結構如圖1為基于Orbix的分布是系統結構。其中每個客戶端Orbix對一個客戶應用程序,每個服務器端Orbix對應一個服務器應用程序。使用XA接口,使全局事務的提交是由交易服務控制,應用程序只需通知交易服務提交或回滾事務,就可以控制整個事務(可能涉及多個異地的數據庫)的全部提交或回滾,應用程序完全不用考慮沖正邏輯。XA協議屬于X/OPENDTP(DistributedTransactionProcessing)模型中的一部分,是中間件產品與數據庫之間的標準協議。采用ADO作為數據庫連接工具,從而簡化了數據庫訪問的開發過程,數據訪問更快捷,支持當前流行的各種數據庫格式,有利于使用當前已有的數據資源。4ORBIX分布式數據庫系統實現4.1分布式事務處理事務指一個程序或程序段,在一個或多個資源如數據庫或文件上為完成某些功能的執行過程的集合。為了支持面向對象、分布式、事務處理應用,實現了(1)對象事務管理器。(2)X/OpenXA接口。(3)兩階段提交(2PC)[4]協議。4.1.1分布事務管理器數據庫,支持本地事務。當一個應用需要兩個或多個資源管理器參與同一事務時,某第三方必須提供必要的協調以保證分布式事務的ACID屬性。應用程序使用事務管理器創建事務。處理期間訪問的每個資源管理器都是一個事務的參與者。因而,當應用程序完成事務時,要么一個提交請求,要么一個回滾請求,事務管理器與每個資源管理器聯絡。4.1.2OTS和X/OpenXA接口接口功能:提供管理事務劃分(創建和完成)的接口,將事務信息傳播給事務參與者和接口,允許應用參與事務。X/OpenXA接口用于數據庫的集成,以形成數據庫的邏輯連接。如圖2所示為客戶、應用、OTS及資源管理之間互操作獲得ACID屬性的過程。包括以下步驟:(1)客戶與OTS鏈接并創建一個事務。(2)客戶在事務環境中對應用作出調用并更新一些數據。(3)應用程序檢測到數據正在被更新并創建一個資源對象,向事務注冊資源對象。(4)客戶通過與OTS實現聯系,試圖提交事務。(5)事務開始提交協議。選擇哪種協議(1PC或2PC),依據向事務注冊資源對象數量及OTS是否支持1PC優化而定。(6)假定使用了2PC協議,OTS發送一個準備信息到資源。資源存貯足夠的信息以防萬一失敗(例如,通過將改變寫入一個日志文件)。資源對象表決提交事務。(7)OTS收集所有資源對象的表決并決定事務的結果。將決定發送到所有的注冊資源對象。(8)資源對象根據收到的提交或回滾消息作出必要的改變并將決定保存到日志中。(9)OTS返回結果給客戶。4.2交易服務交易服務提供對象的位置和發現的設施。與CORBA命名服務按名字定位對象不同,對象在交易服務中是沒有名字的。服務器根據對象所提供的服務類型在交易服務中廣告該對象。客戶通過查問交易服務定位感興趣的對象,以查找所有提供特殊服務的對象。客戶能夠進一步限制只搜索那些具有特殊特性的對象。CORBA交易服務是允許注冊具有功能性描述對象的一個交易服務。該服務通過使服務更易定位極大地增加了分布式系統的可伸縮性。一個交易包含許多描述服務的服務類型。服務器輸出一個提議給交易服務,包括其中一個對象對象引用和由服務類型定義的屬性值。客戶就能按照這些屬性使用稱為約束(constraint)的過濾器查詢交易服務。交易者為客戶返回一個服務提議。客戶就能使用提議中的對象引用在服務器上調用。交易服務是構造有效分布式應用的工具。用屬性注釋服務提議和允許根據這些屬性使用約束過濾提議的優點使客戶可以選擇提議而不會導致每個對象上調用操作的管理費用。4.2.1服務類型(1)服務類型定義服務類型是交易服務的一般性描述。包括:①類型名:唯一地標識服務類型。②接口類型:定義IDL接口,必須與廣告的對象類型相一致。接口類型描述廣告的服務IDL簽名。接口類型是一個字符串其格式因該是全局名或是一個如上所述服務類型名的接口倉庫標示符。當輸出一個新的服務時,交易器可使用接口倉庫確定廣告的對象與接口類型定義的接口一致。一個對象與一個接口一致如果他實現該接口,或它實現該接口的子類。③屬性類型:屬性類型的集合定義服務提供者的屬性。屬性類型的定義由名字,值類型和方式組成。值類型是CORBA::TypeCode,模式表示屬性是強制的,還是只讀的。強制屬性不能刪除,只讀屬性能被刪除。④超類型能夠從其它服務類型繼承過來,封裝服務類型共有的行為和特性。(2)服務提供者服務提供者是服務類型的實例。服務提供者特性:①服務類型名使提供者和某一服務類型關聯。②對象引用是一個指向為客戶提供服務的對象指針。③屬性集合描述該服務提供者,并且屬性與服務類型定義的屬性類型一致。交易器使用指定的服務類型定義在新的提供者上執行幾個確認步驟:①輸出者為所有的mandatoryproperty提供值(包括所有從其超類型繼承過來的服務類型)②對象必須與服務類型定義的接口類型一致。③所有屬性的值類型必須與服務類型定義的值類型匹配。(4)交易服務組成交易器依據它所支持的接口具有不同的功能。其接口有Lookup、Register、Admin、Link、Proxy。①最簡單的交易器是Querytrader,只支持Lookup接口。②簡單的交易器不僅支持Lookup接口,而且支持具有Register接口的提供者的輸出。③獨立的交易者支持簡單交易器接口,又支持使用Admin接口的交易器的配置管理。④代理交易器支持獨立交易器接口也支持proxy接口。代理交易器本質上為延遲的提供者賦值輸出lookup接口,可用于封裝遺留系統或作為一種服務提供者工廠。⑤連接交易器支持獨立交易器,使用Link接口支持交易器同盟。⑥full-service交易器組合所有的功能接口。4.2.2配置和運行交易服務(1)配置配置和運行交易服務有幾個必須的預備步驟。操作的一般次序如下:①確定在那臺主機上運行主交易服務,那臺主機運行從交易服務。②確定主,次端口號,復制器將偵聽。③將主機和端口號信息輸入到配置中。④配置交易服務以復制或非復制的方式運行。⑤在“預備”模式運行交易服務以獲得使客戶能夠與服務交互的初始引用。⑥將第4步獲得的每個引用加到配置數據庫中。⑦啟動主交易服務及從交易服務(2)運行交易服務如圖3所示為典型的客戶與服務器使用交易器相互交互過程:①一個提供者服務器為交易器增加一個服務類型(Printer)。Printer類型描述辦公室打印機具有的屬性。服務類型名與IDL接口名不同。②打印機服務器創建一個printer_if對象。它輸出該對象的對象引用到交易服務作為類型Printer的一個提供者。正常情況下,等待請求到來。③客戶過程為一個Printer提供者查詢交易服務。④然后客戶過程使用在提供者中獲得的對象引用調用打印機服務器。(3)交易服務編程與交易器交互的三個主要步驟:①使用提供者服務器增加一個服務類型。如果交易服務內相應的服務提供者類型不存在,則創建它②使用打印機服務器注冊一個服務提供者:例如,創建一個對象,一個IDL接口PrintServer的實例在類型Printer的服務提供者內,向交易服務登記對象引用。服務器就可正常接受對象調用。③使用客戶獲得一個服務提供者。查詢交易服務恢復一個服務提供者;使用在服務提供者中指定的對象引用調用服務器上的對象。4.2.3交易服務實例從圖3交易器包含的提供者集合能夠獲得多么大量的數據。此外,交易器能夠連接起來(聯合)為服務提供者相互搜索。這意味著,一個查詢需要控制在合理的時間內完成搜索。查詢也需要控制返回的數據量。查詢以服務類型名開始。通過使用在一個或多個服務屬性上使用一個約束限制搜索適當提供者。也可以指定一些限制因素,包括返回的提供者數量,優先排序,實際返回的屬性值。交易服務如何使用這些因素處理一個查詢,產生一序列所要的服務提供者。當交易服務處理一個查詢時,縮小在所有相關連的交易器中所有的潛在提供者集合,通過它收集一序列提供者在一起。交易服務使用查詢輸入確定如下:①服務名確定一個提供者是否是適當的服務類型。②使用屬性約束確定提供著是否與客戶指定的標準匹配。③優先順序確定提供者在序列中的位置。④使用所要的屬性確定返回哪個提供者的屬性值。4.3會話管理為了清除只有那個客戶使用的資源,分布式系統需要是知道客戶過程何時結束。在服務器方,基于會話的應用分配資源滿足客戶請求。為了防止服務器膨脹,必須探測與服務器有關的客戶何時完成。(1)租賃框架:租賃插件是Orbix的一個擴展特色,通過探測使用服務器的客戶何時停止管理服務器端。使用租賃框架來完成。當一個客戶啟動時,它能獲得某一個服務器的一個租約,周期性的更新。當客戶結束,它自動釋放租約。如果客戶崩潰,服務器稍后會檢測到租約過期。在這種方式中,得體的和不得體的客戶過程結束都能被檢測到。(2)服務器端,租賃框架操作:(1)當一個服務器啟動,它自動裝載租賃插件。(2)初始化期間,服務器通告租賃,在命名服務中導致一個LeaseCallback對象。(3)每當服務器輸出對象引用(IORs),插件自動地以CORBA方式在IOR中增加租賃信息。(3)客戶端,租賃框架操作:(1)當客戶端啟動時,它自動裝載租賃插件。(2)插件根據包含租賃細節的IOR檢測客戶將要調用的對象。插件發起與目標服務器會話獲得一個租賃。(3)插件自動地更新需要的租賃。(4)有關客戶端關閉:如果客戶端正常關閉,插件自動地釋放租賃。如果客端崩潰,服務器端插件稍后就知道客戶最近沒有更新的租賃。租賃過期,允許服務器適當地清除。(4)客戶端使用租賃插件客戶插件在其生命周期中定期調用命名服務。因此,在運行租賃客戶之前,Orbix域應具有一個適當配置的定位器,激活程序,及命名服務準備。使用租賃框架的客戶部署需要改變所要做的事情只是它的配置。特別是,插件必須在ORB插件列表中增加插件,并被配置參與綁定。(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車身噴繪方案范本圖
- 公會入駐合同樣本
- 云南土地流轉合同樣本
- 2025年雙遼市科技公司軟件開發合同
- 2025合作經營酒店類企業合同
- 321借款合同標準文本
- 信息管道施工合同樣本
- 農膜質保期限合同標準文本
- 班成都能力提升的工作規劃計劃
- 兼職合同正式合同范例
- 庫房管理工作職責與規范化
- 2024-2025學年七年級下學期數學期中測試(浙江瑞安市專用)(含答案)
- 2025年浙江省杭州市拱墅區中考語文模擬試卷含答案
- 2024國家數字化范式與路徑-公共政策立場-67正式版
- 路面工程安全專項施工方案
- 瑞吉歐幼兒教育
- 2025年中國人壽招聘筆試筆試參考題庫附帶答案詳解
- 語義演變與認知機制-深度研究
- 做新時代的忠誠愛國者課件
- 2024年中考模擬試卷英語(蘇州卷)
- 游戲人物立繪課程設計
評論
0/150
提交評論