摘要:聯邦數據庫系統允許用戶訪問多個自治數據庫管理系統中的數據。通過聯邦事務管理確保分布在多個自治的并可能是異構的局部數據庫中數據的一致性。該文提出了一種基于CORBA OTS的聯邦事務管理器模型。
關鍵詞:聯邦數據庫;聯邦事務;CORBA OTS
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)22-608-02
A Model of Federated Transaction Manager Based on CORBA OTS
ZHANG Lei
(Qingdao Agriculture University,Information Science and Engineering Department,Qingdao 266019,China)
Abstract:A federated database allows users access to data located in multiple autonomous database management systems. We use federated transaction management to ensure the consistency of data that is distributed across multiple, autonomous, and possibly heterogeneous component databases.This paper gives a model of federated transaction manager based on CORBA OTS.
Key words:federated database;federated transaction;CORBA OTS
隨著對企業內部或企業之間的信息集成的要求日益增加,如何將多個已存的、自治的、異構的數據庫聯合起來提供給用戶一個統一的數據庫引起了人們的關注,在此基礎上產生了聯邦數據庫(或多數據庫)。在局部系統之上構建的一個附加的集成軟件層被稱為聯邦數據庫系統。這種系統結構要求維護局部數據庫之間的數據的一致性。在多個局部數據庫系統間訪問和修改數據的事務稱為聯邦事務或全局事務。聯邦事務管理是要確保分布在多個自治的并可能是異構的局部數據庫中的數據的一致性,能夠協調全局事務和局部事務。
確保聯邦事務的可串行性和原子性的方法包括在本地數據庫系統的事務協議附加額外約束,在聯邦軟件層建立事務管理器等多種,但對于聯邦數據庫的并發控制還沒有一個最佳策略。選擇最優的策略取決于本地數據庫系統所采用的事務協議,應用程序的操作特征等因素。因此,聯邦事務管理器應支持多種不同的策略來讓應用程序的創建人員(或管理人員)選擇合適的協議。另外,聯邦事務管理器還要有良好的可擴展性,隨時增添新的事務管理策略以滿足應用的需求。此外實現事務的ACID特性對聯邦數據庫來說要比同構的、集中管理的分布式數據庫系統難的多,主要原因是局部數據庫系統的事務管理機制采用的協議可能不同。上述問題的部分解決策略可以借助于COBAR的中間件技術實現,尤其是COBAR的對象事務服務(Object Transaction Service, OTS)。本文在CORBA的OTS(Object Transaction Service)的基礎上提出了一種聯邦事務管理器模型。
1CORBA與OTS
1990年,對象管理組織(Object Management Group)首次提出了“公共對象請求代理結構”(Common Object Request Broker Architecture),以后被人們簡稱為CORBA。CORBA可以最終解決跨平臺、跨操作系統、跨語言、跨協議、跨版本等兼容問題,徹底的實現分布式軟件集成。CORBA依賴于面向對象技術、分布式計算技術、多層體系結構技術和接口技術。CORBA既代表了一種軟件開發模式、一種軟件開發標準,也提供了軟件開發必需的服務、可以使用的工具集合。因此,CORBA整體上是由“對象請求代理”、“CORBA服務”、“CORBA工具集”與符合CORBA標準的各種應用程序、對象一同綜合形成的。
對象事務服務OTS的組成部分及實現過程如圖1所示。CORBA客戶首先通過規定的格式通知OTS開始或結束一個事務,然后就可以在事務作用范圍內激發各種事務型對象及可恢復型對象的操作。OTS會要求對象請求代理ORB建立、傳播有關的事務上下文對象,并與事務型對象服務器及可恢復型對象服務器一同協作,完成事務服務。事務型服務器是事務型對象的集合,這些對象本身沒有獨立可恢復資源或狀態,而是通過引用、使用、控制別的可恢復型對象參與事務。事務型對象的最終狀態與它所參與事務無關,但它可以強迫相關的事務滾回。可恢復型對象服務器是可恢復型對象的集合,這些對象往往擁有一些需保護的資源對象,如數據文件、隊列或數據庫等,本身也具備獨立的可恢復狀態。可恢復型對象通過向OTS服務器注冊資源參與事務完成,它們及擁有資源的最終狀態與事務執行情況有關。
聯邦事務管理器利用CORBAR的基層結構來實現跨服務器的方法調用,服務器回復等。恢復部件主要以OTS為基礎,它采用了OTS提供的標準化的兩階段鎖提交協議。另外,聯邦事務管理器需要嵌入聯邦數據庫中,我們采取的是VHDBS[5]聯邦數據庫系統。
2 VHDBS結構
在給出聯邦事務管理器模型之前,我們給出VHDBS的簡單介紹。VHDBS是一個能集成不同數據庫系統之下的現存的、大型自治數據庫的聯邦數據庫系統。局部系統由與其對應的DBMS協調器(DBMS Adapter)封裝起來,DBMS協調器為操作和訪問局部數據庫提供了統一的接口。另外,將局部數據庫加入到聯邦數據庫系統中也是通過DBMS協調器完成的,DBMS協調器還負責局部數據庫系統與聯邦數據庫系統之間的數據定義與查詢語言的轉化。VHDBS能夠對關系型、對象—關系型、面向對象的數據庫系統進行集成,所支持的局部數據庫系統有Oracle和O2。處于客戶端與局部數據庫系統之間聯邦層的是VHDBS聯邦服務器(VHDBS Server),它負責對局部提交結果的合并,將全局查詢和全局事務分解成相應的局部子查詢與子事務。聯邦層的數據模型是ODMG(Object Database Management Group)的一個子集,采用的查詢語言則是在操作與修改對象屬性方面做出一定擴展的ODMG的OQL語言。元數據庫(Meta Database)用來管理元數據,提供視圖、數據庫和用戶定義等信息。這里,VHDBS中的局部系統與聯邦服務器通過CORBA的接口定義語言IDL定義,封裝的局部系統和聯邦服務器可以看作是一個CORBA服務器。VHDBS的結構如圖2所示。
■
圖2 VHDBS結構
3 聯邦事務管理器模型
我們給出聯邦事務管理模型(圖3)。VHDBS的事務通過該模型處理。當客戶端的數據訪問操作需要以事務的形式執行時,VHDBS的查詢翻譯器就不再將子查詢直接送到DBMS協調器中,而是送到聯邦事務管理器中處理,由聯邦事務管理器進行并行控制處理等。聯邦事務管理器本身以獨立的CORBA服務器運行,它包含了多個提供IDL接口的模型。
■
圖3 聯邦事務管理器模型(下轉第616頁)
(上接第609頁)
聯邦事務管理器通過CORBA的對象事務服務(OTS)來保證聯邦數據庫事務的原子性,因為OTS具有符合分布式對象事務原子性的企業標準的優點。當VHDBS客戶端提出新事務請求時,聯邦事務管理器通過事務工廠(TransactionFactory)創建一個新的事務對象,該事務被注冊到OTS服務器中,以后的數據訪問操作都要通過聯邦事務管理器。當新數據庫包括到事務中,相應的DBMS的本地OTS代理將數據庫注冊到OTS數據庫中。當事務提交(或回滾)時,OTS協調局部數據庫系統的子事務,并且采用兩階段提交協議。
事務工廠負責為每個事務創建新的事務對象和事務工廠對象,這里的事務對象以IDL語言定義。事務對象負責引發或中止OTS事務服務。事務對象的定義形式如下:
module FederatedTransactionManager_name
{interface Transaction
{void CommitTransaction();
void AbortTransaction();
//VHDBS的事務方法
dbCollection select(in string query, in dbAdapter db);
//…};
interface TransactionFactory
{Transaction BeginTransaction();
//…};
//…};
聯邦事務管理器的并行控制模型采用多種不同策略,我們可以將這些策略看作為CCStrategy的IDL接口實例。CCStrategy支持隱式和樂觀票據算法[3]、語義鎖多級事務框架和處理Oracle提供的常見的快照隔離(Snapshot Isolation)的多種協議等。
4 小結
本文首先介紹了CORBA的OTS,進而介紹了聯邦數據庫系統VHDBS,最后給出了一個聯邦事務管理器模型。CORBA為構建聯邦事務管理器提供了有效的通信框架,OTS通過兩階段鎖協議能夠很好的保證聯邦事務的原子性。
參考文獻:
[1] 劉暉,沈均毅,林欣.用CORBA創建電子商務系統[M].北京:北京希望電子出版社,2000.
[2] Atluri V., Bertino E., Jajodia S. A Theoretical Formulation for Degrees of Isolation in Databases[J].Information and software Technology.Elsevier Science,1997,39(1).
[3] Georgakopoulos D., Sheth A P. Using Tickets to Enforce the Serializability of Multidatabase Transactions[J].IEEE Transactions on Knowledge and Data Engineering,1994,6(1).
[4] Schenkel R., Weikum G., N.Weiβenberg, X.Wu. Federated Transaction Management with Snapshot Isolation[Z].Springer-Verlag, 1999.
[5] Holtkamp B., Weiβenberg N., Wu X. VHDBS: A Federated Database System for Electronic Commerce[Z].EURO-MED NET,1998.