摘 要:在企業信息化建設過程中形成的數據孤島阻礙了企業信息化程度的進一步提高,研究異構數據集成模型,對于解決數據孤島問題具有重要意義。通過應用XML技術構建數據集成中間實體,屏蔽各異構數據之間的差異,從而形成統一數據視圖的方法,實現了一種異構數據集成新模型XDIM,并將其應用在青海大學綜合信息服務平臺中。該模型采用精簡的算法,具有靈活高效的特點,能夠有效解決多數據源環境下的異構數據集成問題。
關鍵詞:異構; XML; 數據集成;數據孤島
中圖分類號:TP311 文獻標識碼:B
文章編號:1004-373X(2010)12-0039-04
Research and Application of XML-based Heterogeneous Data Integration
MA Guo-cai, LIU Hai-xiong
(Qinghai University, Xining 810016, China)
Abstract:The model of heterogeneous data integration is researched to resolve the \"data island\" which is formed in the process of enterprise infomationization and blocks the further progress of enterprise infomationization. A XDIM model of heterogeneous data integration is achieved by constructing the middle data integration components to shield the defference among all the heterogeneous data and form a unified data view. It has been applied in the comprehensive information service platform of Qinghai University. With simple algorithm, the model possesses the flexibility and high-efficiency characteristics, and can effectivly solve the problem of heterogeneous data integration in the environment of multiple data source.
Keywords:heterogeneous data; XML; data integration; data island
0 引 言
隨著計算機技術,特別是Internet 技術的迅猛發展,在許多行業、單位或機構、部門內部都逐步實現了業務、信息的計算機化管理。但是,各個行業、部門或機構由于業務和功能歸屬不同,因此都是根據自身的需要,構建了許多相互隔離的信息服務和管理系統。甚至在一個單位內部各部門所采用的計算環境由不同平臺組成,而不是固守任何一個平臺。這樣隨著時間的推移和技術的進步,這些由不同核心技術構建的信息系統就像一個個“信息孤島” ,各自有著不同的處理對象、操作方法和專用客戶端,在各個環節之間存在著數據交流和部門協同的問題[1]。“信息孤島”的存在不僅提高了企業維護數據的費用,而且企業很難根據分散的數據做出正確的決策[2]。為了改善這種局面,同時在各個“信息孤島”之中共享和交換數據,并且給企業用戶提供企業數據的集成視圖,從而根據集成之后的數據及時地調整業務策略,就必須考慮數據集成的問題。
從20世紀80年代開始,異構數據的集成問題就引起了國內外學者的廣泛關注,并有很專家學者投入到了異構數據集成的研究中。隨著計算機技術不斷快速的發展,新的數據類型也不斷涌現,異構數據的集成的研究工作也斷地追逐著新的數據類型而向前推進,尤其是XML的出現將數據集成的研究推向了一個新的階段[3]。研究者把自己對半結構化數據的研究成果,特別是對數據建模和查詢語言的研究進行必要的改變和擴展以適應新興的蓬勃發展的數據表示的要求。美國斯坦福大學開發的TSIMMIS[4]是第一個提出在模式集成中使用半結構化數據模型的項目之一。在國內,東南大學研究的Versatile[5]和華中科技大學研究的Panorana[4]系統都在虛擬數據集成方面取得了很大的成果。也都是把數據存儲在各個數據源中,通過統一定義的模式來進行查詢。
分析目前的國內外的研究成果,不難發現不同的數據集成模型追求的集成目標也不盡相同,很多模型追求大而全,希望形成標準,但存在應用不靈活、效率較低的不足[6-7],立足具體的應用領域,為特定用戶量身打造適應其業務需求的數據集成模型,為有效解決用戶的實際需求,為異構數據集成標準的形成有具有重要的意義。本文提出并實現一種基于XML的數據集成模型XDIM(XML-based data integration mode),并將其應用在青海大學綜合信息服務平臺的數據集成中。該模型采用中間件技術和Agent技術實現,它通過設計通用轉換工具,使用以XML定義的行業標記語言指導數據轉換和校驗,建立統一數據模型,從而能夠充分利用XML查詢的成熟技術[7],降低了Agent及中間件層的設計實現難度,提高了實時查詢效率。
1 異構數據集成模型
XDIM的結構如圖1所示。
圖1 基于XML的異構數據集成模型
XDIM分為用戶接口層、全局代理層、消息中間件層、局部代理和數據源層4個層次,其中:
用戶接口層位于XDIM模型的最上層,也是模型中數據的最終消費者和查詢發起者,用戶接口層包括Web瀏覽器、應用程序等多種客戶應用。
全局代理層這層是全局查詢的處理層,主要由模式倉庫和全局代理兩大部分組成。其中,模式倉庫存儲幾種不同類型的信息:一是從各數據源輸出的XML Schema;二是各輸出XML Schema集成后的全局XML Schema;三是全局XML Schema與輸出XML Schema之間的映射;四是輸出XML Schema之間的連接條件。全局代理包括4個部分:XQuery校驗器,用于驗證發送至XQuery標準化器的XQuery語句格式是否正確;XQuery標準化器根據一定的標準化規則對XQuery進行標準化;XQuery分解器根據從模式倉庫中得到的信息將全局XQuery查詢分解成數據源輸出模式上的XQuery查詢,并將分解后的XQuery查詢封裝成XML消息分別發送到消息中間件中的當前數據源消息接收隊列中;XML結果組合器,用來組合來自局部代理的XML中間結果,從而獲得全局查詢的最終結果。
消息中間件層這層為全局代理和局部代理之間的通信提供一種環境。通過使用可靠的消息隊列,提供支持消息傳遞所需的目錄,安全和管理服務,確保全局代理和局部代理之間消息傳送的安全。
局部代理和數據源層這層是XDIM的最底層,由局部代理和數據源2部分組成。局部代理是局部數據源的訪問接口,它負責維護局部數據源的輸出XML Schema,同時向數據源提交查詢任務,并將本地查詢的查詢結果封裝成XML格式后發送到消息中間件中的全局代理消息接收隊列中;數據源則是異構數據的宿地,它為上層提供數據支持。
2 XDIM數據集成模型實現的關鍵技術
2.1 模式集成
數據模式(schema)主要指異構數據源中數據的類型及各數據之間的相互關系,其主要任務是依據各異構數據源的局部模式,得到全局模式。在集成過程中需要解決各局部模式之間的異構性以及建立不同模式對象之間的映射等問題[5]。XDIM模型中采用4級模式結構,如圖2所示。
(1) 局部模式:局部模式指各異構數據源中數據的模型,不同的數據源就可能有不同的數據模型,如關系數據庫的關系模型、XML文件中的層次模型等。
(2) 輸出模式:該模式是局部模式的公共表示,即將各異構數據源中的局部數據模型翻譯成公共數據模型——XML schema。
(3) 全局模式:全局模式是各輸出模式集成后得到的一個統一模式,即由各輸出模式得到的一個全局XML schema。
(4) 用戶模式:用戶模式是為不同的用戶或應用而定制的各類模式,該模式是在全局模式的基礎上施加各種不同的約束而形成的特殊模式。
圖2 四級模式結構
2.2 全局查詢處理
當用戶在全局模式提交了一個全局查詢后,由全局代理接收并作出分解,分解后的子查詢在各異構數據源上執行并得到結果,全局代理還要負責將各子查詢產生的查詢結果進行組合,形成最終的查詢結果[8]。全局代理接收到一個全局XQuery查詢后,首先由XQuery校驗器對XQuery進行校驗,然后由XQuery標準化器對格式正確的XQuery進行標準化,標準化后的XQuery分解器分解成多個XQuery子查詢,最后由XML結果組合器組合來自局部代理的中間XML結果。
其中最關鍵的是XQuery分解算法[9],針對XDIM提出一種簡單且易于實現的查詢分解算法,為了便于敘述,將for子句的分解、where子句的分解、order by子句的分解和return子句的分解分別作為算法2、算法3、算法4、算法5給出。
算法1分解全局查詢
輸入:全局模式G上的查詢QG;
輸出:輸出模式集合L上的子查詢QL=(Q1,Q2,…,Qn}。
算法:
(1) 對for子句迭代列表中的每一個迭代項調用算法2;
(2) 對where子句謂詞列表中的每一個謂詞調用算法3;
(3) 對order by子句排序列表中的每一個排序項調用算法4;
(4) 對return子句元素構造器投影元組的每一個投影項調用算法5,計算子查詢Qi(1≤i≤n)的元素構造器創建的XML結構;
(5) 依據迭代列表、謂詞列表、排序列表以及XML結構計算子查詢Qi(1≤i≤n)。
算法2分解迭代項
輸入:形如“$var in E”的迭代項
算法:
(1) 從迭代項中分離出變量$var及綁定表達式E;
(2) 依據模式映射信息計算E的映射表達式Ei(1≤i≤n);
(3)構造迭代項$var in Ei(1≤i≤n);
(4)將迭代項$var in Ei(1≤i≤n)加入模式Li(1≤i≤n)的迭代列表中。
算法3分解謂詞
輸入: 形如“
算法:
(1) 依據模式映射信息計算
(2) 如果
(3) 依據模式映射信息計算
(4) 構造謂詞
(5) 將謂詞
算法4分解排序項
輸入: 形如“E ascending”的排序項。
算法:
(1) 從排序項中分離出排序表達式E以及排序說明ascending;
(2) 依據模式映射信息計算E的映射表達式Ei(1≤i≤n);
(3) 構造排序項Ei ascending;
(4) 將排序項Ei ascending,加入模式Li(1≤i≤n)的排序列表中。
算法5分解投影項
輸入:形如“$var”的投影項。
算法:
(1) 獲取變量$var的綁定表達式E。
(2) 依據模式映射信息計算E的映射表達式Ei(1≤i≤n);
(3) 構造投影項$var→Ei;
(4) 將投影項$var→Ei加入模式Li(1≤i≤n)的return子句投影列表中。
3 應用實例
青海大學綜合信息服務平臺由數據集成系統、內容管理系統、辦公自動化系統和統一網站4大模塊組成。其中,數據集成系統是整個綜合信息服務平臺建設的基礎,用于集成學校各應用部門應用系統的各類信息,包括學校基本情況信息、學生信息、教職工信息、教學管理信息、科研信息、體育衛生信息、辦公管理信息、房產與設備信息、儀器設備與實驗室管理信息以及圖書管理信息等。
數據集成系統的總體結構如圖3所示。
圖3 青海大學綜合信息服務平臺中數據集成系統結構圖
要集成的數據源包括XML,dbf,Access,SQL server,Sybase,Oracle等。每一種數據源用一個定制的采集Agent來實現查詢翻譯、數據轉換等功能,并將從數據源中提取的數據封裝成XML傳遞給消息中間件,同時采集Agent還負責提供數據源在XML公共數據模型上的輸出模式并對輸出模式進行維護。消息中間件負責采集Agent與數據集成平臺之間的消息傳遞。數據集成平臺負責元數據模型的維護,接收用戶的XQuery查詢請求,標準化查詢并分解成涉及到的數據源上的XQuery子查詢,組合從采集Agent返回的結果以形成最終的目標XML。數據訪問接口提供用戶訪問數據集成平臺的接口,用戶可以通過數據訪問接口定制所需的XQuery查詢。數據定制實現個性化的數據展現,可將數據集成平臺返回的XML查詢結果定制成Web用戶喜歡的樣式,如餅圖、表格、云圖以及柱狀圖等。
4 結 語
XDIM 數據集成模型通過在各異構數據源建立針對本地數據模型的采集Agent,在數據源層利用XML統一了數據模式,為全局代理件層提供了一個虛擬的分布式同構數據庫環境,大大降低了模型的設計和實現難度。在全局代理層使用模式倉庫記錄模式轉換所需要的相關信息,指導對全局查詢預處理和分解,使得數據集成系統的設計簡單靈活,具有較強的可擴展性和可移植性。同時通過數據源層設置采集Agent,使全局代理層的工作集中于查詢的分解和數據的匯總,均衡了系統 的負載,提高了整體效率,可以為異構數據集成標準的形成提供參考。XDIM數據集成模型應用在青海大學綜合信息平臺中,其有效地集成了校內主要部門,如教務處、人事處、研究生部等部門的數據,為各部間的信息共享提供了方便,為學校領導的高效決策提供了支持。
參考文獻
[1]張正明,佟俐鵑.異構數據庫集成的研究和實現[J].航空計算技術,2006,34(2):35-36.
[2]楊芳,陶世群.基于XML異構數據庫系統的集成設計[J].計算機工程與設計,2005(7):1907-1910.
[3]MOHAN S, SENGUPTA A, WU Y. Access control for XML-a dynamic query rewriting approach[J]. VLDB, 2005:1-12.
[4]趙毅.一種基于XML的數據集成系統框架及其應用[J].計算機工程,2005(26):181-183.
[5]劉科研,萬麗榮,曾慶良,等.基于XML的信息集成系統的研究與實現[J].計算機應用研究,2005(4):149-154.
[6]靳強勇,李冠宇,張俊.異構數據集成技術的發展和現狀[ J] .計算機工程與應用,2002(1):112-114.
[7]高明,宋瀚濤.異構數據源集成應用模型及其查詢處理方法[J].計算機工程,2003.29(15):91-150.
[8]張曉琳,王國仁.面向對象XML數據庫的邏輯基礎[J].計算機研究與發展,2006,43(11):2012-2019.
[9]劉喜平,萬常選.基于關系數據庫有效地處理XPATH函數[J].計算機工程與應用,2005(28):163-169.
[10]尚蕾,孫志輝.基于XML的異構數據集成系統的查詢處理[J].計算機工程,2005,31(5):79-81.