摘 要:在企業(yè)信息化建設(shè)過程中形成的數(shù)據(jù)孤島阻礙了企業(yè)信息化程度的進(jìn)一步提高,研究異構(gòu)數(shù)據(jù)集成模型,對(duì)于解決數(shù)據(jù)孤島問題具有重要意義。通過應(yīng)用XML技術(shù)構(gòu)建數(shù)據(jù)集成中間實(shí)體,屏蔽各異構(gòu)數(shù)據(jù)之間的差異,從而形成統(tǒng)一數(shù)據(jù)視圖的方法,實(shí)現(xiàn)了一種異構(gòu)數(shù)據(jù)集成新模型XDIM,并將其應(yīng)用在青海大學(xué)綜合信息服務(wù)平臺(tái)中。該模型采用精簡(jiǎn)的算法,具有靈活高效的特點(diǎn),能夠有效解決多數(shù)據(jù)源環(huán)境下的異構(gòu)數(shù)據(jù)集成問題。
關(guān)鍵詞:異構(gòu); XML; 數(shù)據(jù)集成;數(shù)據(jù)孤島
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):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 引 言
隨著計(jì)算機(jī)技術(shù),特別是Internet 技術(shù)的迅猛發(fā)展,在許多行業(yè)、單位或機(jī)構(gòu)、部門內(nèi)部都逐步實(shí)現(xiàn)了業(yè)務(wù)、信息的計(jì)算機(jī)化管理。但是,各個(gè)行業(yè)、部門或機(jī)構(gòu)由于業(yè)務(wù)和功能歸屬不同,因此都是根據(jù)自身的需要,構(gòu)建了許多相互隔離的信息服務(wù)和管理系統(tǒng)。甚至在一個(gè)單位內(nèi)部各部門所采用的計(jì)算環(huán)境由不同平臺(tái)組成,而不是固守任何一個(gè)平臺(tái)。這樣隨著時(shí)間的推移和技術(shù)的進(jìn)步,這些由不同核心技術(shù)構(gòu)建的信息系統(tǒng)就像一個(gè)個(gè)“信息孤島” ,各自有著不同的處理對(duì)象、操作方法和專用客戶端,在各個(gè)環(huán)節(jié)之間存在著數(shù)據(jù)交流和部門協(xié)同的問題[1]。“信息孤島”的存在不僅提高了企業(yè)維護(hù)數(shù)據(jù)的費(fèi)用,而且企業(yè)很難根據(jù)分散的數(shù)據(jù)做出正確的決策[2]。為了改善這種局面,同時(shí)在各個(gè)“信息孤島”之中共享和交換數(shù)據(jù),并且給企業(yè)用戶提供企業(yè)數(shù)據(jù)的集成視圖,從而根據(jù)集成之后的數(shù)據(jù)及時(shí)地調(diào)整業(yè)務(wù)策略,就必須考慮數(shù)據(jù)集成的問題。
從20世紀(jì)80年代開始,異構(gòu)數(shù)據(jù)的集成問題就引起了國(guó)內(nèi)外學(xué)者的廣泛關(guān)注,并有很專家學(xué)者投入到了異構(gòu)數(shù)據(jù)集成的研究中。隨著計(jì)算機(jī)技術(shù)不斷快速的發(fā)展,新的數(shù)據(jù)類型也不斷涌現(xiàn),異構(gòu)數(shù)據(jù)的集成的研究工作也斷地追逐著新的數(shù)據(jù)類型而向前推進(jìn),尤其是XML的出現(xiàn)將數(shù)據(jù)集成的研究推向了一個(gè)新的階段[3]。研究者把自己對(duì)半結(jié)構(gòu)化數(shù)據(jù)的研究成果,特別是對(duì)數(shù)據(jù)建模和查詢語言的研究進(jìn)行必要的改變和擴(kuò)展以適應(yīng)新興的蓬勃發(fā)展的數(shù)據(jù)表示的要求。美國(guó)斯坦福大學(xué)開發(fā)的TSIMMIS[4]是第一個(gè)提出在模式集成中使用半結(jié)構(gòu)化數(shù)據(jù)模型的項(xiàng)目之一。在國(guó)內(nèi),東南大學(xué)研究的Versatile[5]和華中科技大學(xué)研究的Panorana[4]系統(tǒng)都在虛擬數(shù)據(jù)集成方面取得了很大的成果。也都是把數(shù)據(jù)存儲(chǔ)在各個(gè)數(shù)據(jù)源中,通過統(tǒng)一定義的模式來進(jìn)行查詢。
分析目前的國(guó)內(nèi)外的研究成果,不難發(fā)現(xiàn)不同的數(shù)據(jù)集成模型追求的集成目標(biāo)也不盡相同,很多模型追求大而全,希望形成標(biāo)準(zhǔn),但存在應(yīng)用不靈活、效率較低的不足[6-7],立足具體的應(yīng)用領(lǐng)域,為特定用戶量身打造適應(yīng)其業(yè)務(wù)需求的數(shù)據(jù)集成模型,為有效解決用戶的實(shí)際需求,為異構(gòu)數(shù)據(jù)集成標(biāo)準(zhǔn)的形成有具有重要的意義。本文提出并實(shí)現(xiàn)一種基于XML的數(shù)據(jù)集成模型XDIM(XML-based data integration mode),并將其應(yīng)用在青海大學(xué)綜合信息服務(wù)平臺(tái)的數(shù)據(jù)集成中。該模型采用中間件技術(shù)和Agent技術(shù)實(shí)現(xiàn),它通過設(shè)計(jì)通用轉(zhuǎn)換工具,使用以XML定義的行業(yè)標(biāo)記語言指導(dǎo)數(shù)據(jù)轉(zhuǎn)換和校驗(yàn),建立統(tǒng)一數(shù)據(jù)模型,從而能夠充分利用XML查詢的成熟技術(shù)[7],降低了Agent及中間件層的設(shè)計(jì)實(shí)現(xiàn)難度,提高了實(shí)時(shí)查詢效率。
1 異構(gòu)數(shù)據(jù)集成模型
XDIM的結(jié)構(gòu)如圖1所示。
圖1 基于XML的異構(gòu)數(shù)據(jù)集成模型
XDIM分為用戶接口層、全局代理層、消息中間件層、局部代理和數(shù)據(jù)源層4個(gè)層次,其中:
用戶接口層位于XDIM模型的最上層,也是模型中數(shù)據(jù)的最終消費(fèi)者和查詢發(fā)起者,用戶接口層包括Web瀏覽器、應(yīng)用程序等多種客戶應(yīng)用。
全局代理層這層是全局查詢的處理層,主要由模式倉(cāng)庫和全局代理兩大部分組成。其中,模式倉(cāng)庫存儲(chǔ)幾種不同類型的信息:一是從各數(shù)據(jù)源輸出的XML Schema;二是各輸出XML Schema集成后的全局XML Schema;三是全局XML Schema與輸出XML Schema之間的映射;四是輸出XML Schema之間的連接條件。全局代理包括4個(gè)部分:XQuery校驗(yàn)器,用于驗(yàn)證發(fā)送至XQuery標(biāo)準(zhǔn)化器的XQuery語句格式是否正確;XQuery標(biāo)準(zhǔn)化器根據(jù)一定的標(biāo)準(zhǔn)化規(guī)則對(duì)XQuery進(jìn)行標(biāo)準(zhǔn)化;XQuery分解器根據(jù)從模式倉(cāng)庫中得到的信息將全局XQuery查詢分解成數(shù)據(jù)源輸出模式上的XQuery查詢,并將分解后的XQuery查詢封裝成XML消息分別發(fā)送到消息中間件中的當(dāng)前數(shù)據(jù)源消息接收隊(duì)列中;XML結(jié)果組合器,用來組合來自局部代理的XML中間結(jié)果,從而獲得全局查詢的最終結(jié)果。
消息中間件層這層為全局代理和局部代理之間的通信提供一種環(huán)境。通過使用可靠的消息隊(duì)列,提供支持消息傳遞所需的目錄,安全和管理服務(wù),確保全局代理和局部代理之間消息傳送的安全。
局部代理和數(shù)據(jù)源層這層是XDIM的最底層,由局部代理和數(shù)據(jù)源2部分組成。局部代理是局部數(shù)據(jù)源的訪問接口,它負(fù)責(zé)維護(hù)局部數(shù)據(jù)源的輸出XML Schema,同時(shí)向數(shù)據(jù)源提交查詢?nèi)蝿?wù),并將本地查詢的查詢結(jié)果封裝成XML格式后發(fā)送到消息中間件中的全局代理消息接收隊(duì)列中;數(shù)據(jù)源則是異構(gòu)數(shù)據(jù)的宿地,它為上層提供數(shù)據(jù)支持。
2 XDIM數(shù)據(jù)集成模型實(shí)現(xiàn)的關(guān)鍵技術(shù)
2.1 模式集成
數(shù)據(jù)模式(schema)主要指異構(gòu)數(shù)據(jù)源中數(shù)據(jù)的類型及各數(shù)據(jù)之間的相互關(guān)系,其主要任務(wù)是依據(jù)各異構(gòu)數(shù)據(jù)源的局部模式,得到全局模式。在集成過程中需要解決各局部模式之間的異構(gòu)性以及建立不同模式對(duì)象之間的映射等問題[5]。XDIM模型中采用4級(jí)模式結(jié)構(gòu),如圖2所示。
(1) 局部模式:局部模式指各異構(gòu)數(shù)據(jù)源中數(shù)據(jù)的模型,不同的數(shù)據(jù)源就可能有不同的數(shù)據(jù)模型,如關(guān)系數(shù)據(jù)庫的關(guān)系模型、XML文件中的層次模型等。
(2) 輸出模式:該模式是局部模式的公共表示,即將各異構(gòu)數(shù)據(jù)源中的局部數(shù)據(jù)模型翻譯成公共數(shù)據(jù)模型——XML schema。
(3) 全局模式:全局模式是各輸出模式集成后得到的一個(gè)統(tǒng)一模式,即由各輸出模式得到的一個(gè)全局XML schema。
(4) 用戶模式:用戶模式是為不同的用戶或應(yīng)用而定制的各類模式,該模式是在全局模式的基礎(chǔ)上施加各種不同的約束而形成的特殊模式。
圖2 四級(jí)模式結(jié)構(gòu)
2.2 全局查詢處理
當(dāng)用戶在全局模式提交了一個(gè)全局查詢后,由全局代理接收并作出分解,分解后的子查詢?cè)诟鳟悩?gòu)數(shù)據(jù)源上執(zhí)行并得到結(jié)果,全局代理還要負(fù)責(zé)將各子查詢產(chǎn)生的查詢結(jié)果進(jìn)行組合,形成最終的查詢結(jié)果[8]。全局代理接收到一個(gè)全局XQuery查詢后,首先由XQuery校驗(yàn)器對(duì)XQuery進(jìn)行校驗(yàn),然后由XQuery標(biāo)準(zhǔn)化器對(duì)格式正確的XQuery進(jìn)行標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化后的XQuery分解器分解成多個(gè)XQuery子查詢,最后由XML結(jié)果組合器組合來自局部代理的中間XML結(jié)果。
其中最關(guān)鍵的是XQuery分解算法[9],針對(duì)XDIM提出一種簡(jiǎn)單且易于實(shí)現(xiàn)的查詢分解算法,為了便于敘述,將for子句的分解、where子句的分解、order by子句的分解和return子句的分解分別作為算法2、算法3、算法4、算法5給出。
算法1分解全局查詢
輸入:全局模式G上的查詢QG;
輸出:輸出模式集合L上的子查詢QL=(Q1,Q2,…,Qn}。
算法:
(1) 對(duì)for子句迭代列表中的每一個(gè)迭代項(xiàng)調(diào)用算法2;
(2) 對(duì)where子句謂詞列表中的每一個(gè)謂詞調(diào)用算法3;
(3) 對(duì)order by子句排序列表中的每一個(gè)排序項(xiàng)調(diào)用算法4;
(4) 對(duì)return子句元素構(gòu)造器投影元組的每一個(gè)投影項(xiàng)調(diào)用算法5,計(jì)算子查詢Qi(1≤i≤n)的元素構(gòu)造器創(chuàng)建的XML結(jié)構(gòu);
(5) 依據(jù)迭代列表、謂詞列表、排序列表以及XML結(jié)構(gòu)計(jì)算子查詢Qi(1≤i≤n)。
算法2分解迭代項(xiàng)
輸入:形如“$var in E”的迭代項(xiàng)
算法:
(1) 從迭代項(xiàng)中分離出變量$var及綁定表達(dá)式E;
(2) 依據(jù)模式映射信息計(jì)算E的映射表達(dá)式Ei(1≤i≤n);
(3)構(gòu)造迭代項(xiàng)$var in Ei(1≤i≤n);
(4)將迭代項(xiàng)$var in Ei(1≤i≤n)加入模式Li(1≤i≤n)的迭代列表中。
算法3分解謂詞
輸入: 形如“
算法:
(1) 依據(jù)模式映射信息計(jì)算
(2) 如果
(3) 依據(jù)模式映射信息計(jì)算
(4) 構(gòu)造謂詞
(5) 將謂詞
算法4分解排序項(xiàng)
輸入: 形如“E ascending”的排序項(xiàng)。
算法:
(1) 從排序項(xiàng)中分離出排序表達(dá)式E以及排序說明ascending;
(2) 依據(jù)模式映射信息計(jì)算E的映射表達(dá)式Ei(1≤i≤n);
(3) 構(gòu)造排序項(xiàng)Ei ascending;
(4) 將排序項(xiàng)Ei ascending,加入模式Li(1≤i≤n)的排序列表中。
算法5分解投影項(xiàng)
輸入:形如“$var”的投影項(xiàng)。
算法:
(1) 獲取變量$var的綁定表達(dá)式E。
(2) 依據(jù)模式映射信息計(jì)算E的映射表達(dá)式Ei(1≤i≤n);
(3) 構(gòu)造投影項(xiàng)$var→Ei;
(4) 將投影項(xiàng)$var→Ei加入模式Li(1≤i≤n)的return子句投影列表中。
3 應(yīng)用實(shí)例
青海大學(xué)綜合信息服務(wù)平臺(tái)由數(shù)據(jù)集成系統(tǒng)、內(nèi)容管理系統(tǒng)、辦公自動(dòng)化系統(tǒng)和統(tǒng)一網(wǎng)站4大模塊組成。其中,數(shù)據(jù)集成系統(tǒng)是整個(gè)綜合信息服務(wù)平臺(tái)建設(shè)的基礎(chǔ),用于集成學(xué)校各應(yīng)用部門應(yīng)用系統(tǒng)的各類信息,包括學(xué)校基本情況信息、學(xué)生信息、教職工信息、教學(xué)管理信息、科研信息、體育衛(wèi)生信息、辦公管理信息、房產(chǎn)與設(shè)備信息、儀器設(shè)備與實(shí)驗(yàn)室管理信息以及圖書管理信息等。
數(shù)據(jù)集成系統(tǒng)的總體結(jié)構(gòu)如圖3所示。
圖3 青海大學(xué)綜合信息服務(wù)平臺(tái)中數(shù)據(jù)集成系統(tǒng)結(jié)構(gòu)圖
要集成的數(shù)據(jù)源包括XML,dbf,Access,SQL server,Sybase,Oracle等。每一種數(shù)據(jù)源用一個(gè)定制的采集Agent來實(shí)現(xiàn)查詢翻譯、數(shù)據(jù)轉(zhuǎn)換等功能,并將從數(shù)據(jù)源中提取的數(shù)據(jù)封裝成XML傳遞給消息中間件,同時(shí)采集Agent還負(fù)責(zé)提供數(shù)據(jù)源在XML公共數(shù)據(jù)模型上的輸出模式并對(duì)輸出模式進(jìn)行維護(hù)。消息中間件負(fù)責(zé)采集Agent與數(shù)據(jù)集成平臺(tái)之間的消息傳遞。數(shù)據(jù)集成平臺(tái)負(fù)責(zé)元數(shù)據(jù)模型的維護(hù),接收用戶的XQuery查詢請(qǐng)求,標(biāo)準(zhǔn)化查詢并分解成涉及到的數(shù)據(jù)源上的XQuery子查詢,組合從采集Agent返回的結(jié)果以形成最終的目標(biāo)XML。數(shù)據(jù)訪問接口提供用戶訪問數(shù)據(jù)集成平臺(tái)的接口,用戶可以通過數(shù)據(jù)訪問接口定制所需的XQuery查詢。數(shù)據(jù)定制實(shí)現(xiàn)個(gè)性化的數(shù)據(jù)展現(xiàn),可將數(shù)據(jù)集成平臺(tái)返回的XML查詢結(jié)果定制成Web用戶喜歡的樣式,如餅圖、表格、云圖以及柱狀圖等。
4 結(jié) 語
XDIM 數(shù)據(jù)集成模型通過在各異構(gòu)數(shù)據(jù)源建立針對(duì)本地?cái)?shù)據(jù)模型的采集Agent,在數(shù)據(jù)源層利用XML統(tǒng)一了數(shù)據(jù)模式,為全局代理件層提供了一個(gè)虛擬的分布式同構(gòu)數(shù)據(jù)庫環(huán)境,大大降低了模型的設(shè)計(jì)和實(shí)現(xiàn)難度。在全局代理層使用模式倉(cāng)庫記錄模式轉(zhuǎn)換所需要的相關(guān)信息,指導(dǎo)對(duì)全局查詢預(yù)處理和分解,使得數(shù)據(jù)集成系統(tǒng)的設(shè)計(jì)簡(jiǎn)單靈活,具有較強(qiáng)的可擴(kuò)展性和可移植性。同時(shí)通過數(shù)據(jù)源層設(shè)置采集Agent,使全局代理層的工作集中于查詢的分解和數(shù)據(jù)的匯總,均衡了系統(tǒng) 的負(fù)載,提高了整體效率,可以為異構(gòu)數(shù)據(jù)集成標(biāo)準(zhǔn)的形成提供參考。XDIM數(shù)據(jù)集成模型應(yīng)用在青海大學(xué)綜合信息平臺(tái)中,其有效地集成了校內(nèi)主要部門,如教務(wù)處、人事處、研究生部等部門的數(shù)據(jù),為各部間的信息共享提供了方便,為學(xué)校領(lǐng)導(dǎo)的高效決策提供了支持。
參考文獻(xiàn)
[1]張正明,佟俐鵑.異構(gòu)數(shù)據(jù)庫集成的研究和實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2006,34(2):35-36.
[2]楊芳,陶世群.基于XML異構(gòu)數(shù)據(jù)庫系統(tǒng)的集成設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(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的數(shù)據(jù)集成系統(tǒng)框架及其應(yīng)用[J].計(jì)算機(jī)工程,2005(26):181-183.
[5]劉科研,萬麗榮,曾慶良,等.基于XML的信息集成系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2005(4):149-154.
[6]靳強(qiáng)勇,李冠宇,張俊.異構(gòu)數(shù)據(jù)集成技術(shù)的發(fā)展和現(xiàn)狀[ J] .計(jì)算機(jī)工程與應(yīng)用,2002(1):112-114.
[7]高明,宋瀚濤.異構(gòu)數(shù)據(jù)源集成應(yīng)用模型及其查詢處理方法[J].計(jì)算機(jī)工程,2003.29(15):91-150.
[8]張曉琳,王國(guó)仁.面向?qū)ο骕ML數(shù)據(jù)庫的邏輯基礎(chǔ)[J].計(jì)算機(jī)研究與發(fā)展,2006,43(11):2012-2019.
[9]劉喜平,萬常選.基于關(guān)系數(shù)據(jù)庫有效地處理XPATH函數(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2005(28):163-169.
[10]尚蕾,孫志輝.基于XML的異構(gòu)數(shù)據(jù)集成系統(tǒng)的查詢處理[J].計(jì)算機(jī)工程,2005,31(5):79-81.