摘 要:本文通過建立集成系統(tǒng)的全局?jǐn)?shù)據(jù)字典,確立字典和各業(yè)務(wù)系統(tǒng)數(shù)據(jù)源表字段的映射關(guān)系,解決了各業(yè)務(wù)系統(tǒng)數(shù)據(jù)源間語義異構(gòu)問題,并通過配置生成查詢接口使用戶能夠針對(duì)自己的需要并附加相應(yīng)的條件進(jìn)行查詢。
關(guān)鍵詞:可配置;全局模式;屬性映射
在異構(gòu)集成系統(tǒng)中,各局部數(shù)據(jù)源,都是不同用戶根據(jù)自身實(shí)際需要在不同時(shí)期針對(duì)專某一特定問題進(jìn)行設(shè)計(jì)的,在它們的模式上可能存在著較大的差異和沖突?,F(xiàn)階段需要對(duì)這些數(shù)據(jù)源進(jìn)行統(tǒng)一的,透明的訪問,就需要在新系統(tǒng)中屏蔽或者消除不同數(shù)據(jù)源之間的這些差異和沖突。
一、總體設(shè)計(jì)方案
通過設(shè)計(jì)數(shù)據(jù)源訪問服務(wù)實(shí)現(xiàn)了數(shù)據(jù)集成服務(wù)。根據(jù)數(shù)據(jù)源類型的不同,將對(duì)各個(gè)數(shù)據(jù)源訪問操作封裝成服務(wù),數(shù)據(jù)集成服務(wù)則接受用戶的查詢請(qǐng)求,對(duì)用戶的查詢進(jìn)行解析、分解,然后調(diào)用數(shù)據(jù)訪問服務(wù)獲取數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行整合返回給用戶。其中數(shù)據(jù)集成查詢服務(wù)是系統(tǒng)的關(guān)鍵,多源異構(gòu)數(shù)據(jù)的查詢,全局模式及其與源模式字段的屬性映射表。
數(shù)據(jù)集成服務(wù)的設(shè)計(jì)是異構(gòu)集成系統(tǒng)設(shè)計(jì)的關(guān)鍵和難點(diǎn),該服務(wù)主要解決對(duì)異構(gòu)數(shù)據(jù)源的查詢處理,全局?jǐn)?shù)據(jù)字典和屬性映射表,數(shù)據(jù)緩存,結(jié)果整合等。
因此,解決了全局模式和數(shù)據(jù)集成應(yīng)用服務(wù)的設(shè)計(jì),就可通過對(duì)查詢內(nèi)容和條件的配置達(dá)到用戶可配置查詢的目的。
二、全局模式設(shè)計(jì)
為了實(shí)現(xiàn)對(duì)多源異構(gòu)數(shù)據(jù)透明訪問,給用戶一個(gè)很好的查詢體驗(yàn),就需要建立一個(gè)全局模式來屏蔽這些差異和沖突,給用戶提供一個(gè)統(tǒng)一的、全局的視圖,集成系統(tǒng)通過對(duì)局部數(shù)據(jù)源的封裝和數(shù)據(jù)提取,能夠?qū)⑴c集成的數(shù)據(jù)以一種公共的數(shù)據(jù)格式提供給用戶
1.公共數(shù)據(jù)模型
為了解決異構(gòu)集成系統(tǒng)中多源數(shù)據(jù)異構(gòu)性,需要將每個(gè)局部數(shù)據(jù)源的模型映射到一個(gè)公共數(shù)據(jù)模型[3,4,5]上。
采用XML作為公共數(shù)據(jù)模型來表示全局模式中的各種關(guān)系及其關(guān)系的屬性。將異構(gòu)數(shù)據(jù)源的模型映射成公共數(shù)據(jù)模型[1,2],使集成工作容易進(jìn)行
利用全局?jǐn)?shù)據(jù)字典來表示參與集成的各局部數(shù)據(jù)源的全局模式并利用XML作為公共數(shù)據(jù)模型語言,將局部數(shù)據(jù)源的參與集成的表中的字段注冊(cè)其中。任何一個(gè)參與集成的數(shù)據(jù)源能夠被查詢的數(shù)據(jù)屬性都必須在這里注冊(cè),即添加到該數(shù)據(jù)屬性對(duì)應(yīng)的節(jié)點(diǎn)中。XML是一種半結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)模式,它包括很多節(jié)點(diǎn)及屬性,它表示系統(tǒng)全局模式分類關(guān)系。
2.屬性映射表
由于參與集成的各個(gè)局部數(shù)據(jù)源的命名都是各自獨(dú)立的,這樣就存在著參與集成的各數(shù)據(jù)源中不同的屬性名稱可能對(duì)應(yīng)著全局模式中的同一屬性(同一目標(biāo)屬性)。因此就需要建立它們之間的映射關(guān)系。本文通過將參與集成的各局部數(shù)據(jù)源中表的字段屬性注冊(cè)到全局模式上,實(shí)現(xiàn)了被集成的數(shù)據(jù)到全局模式的映射。
屬性映射表解決了企業(yè)中數(shù)據(jù)源中數(shù)據(jù)的命名異構(gòu)和數(shù)據(jù)類型異構(gòu)問題,并且屬性映射表協(xié)同全局?jǐn)?shù)據(jù)字典將局部數(shù)據(jù)模式轉(zhuǎn)換為全局公共數(shù)據(jù)類型。通過屬性映射表與全局?jǐn)?shù)據(jù)字典協(xié)同完成異構(gòu)數(shù)據(jù)源局部數(shù)據(jù)模型與公共數(shù)據(jù)模型之間的轉(zhuǎn)換。
三、查詢接口設(shè)計(jì)
集成系統(tǒng)為用戶提供了一個(gè)查詢接口生成功能,并通過開放查詢接口接受用戶的查詢請(qǐng)求,返回用戶所需的查詢結(jié)果。
1.查詢接口的生成
1)查詢內(nèi)容的選取:從全局?jǐn)?shù)據(jù)字典中選取用戶所要查詢的屬性,存入查詢內(nèi)容表中。
2)查詢條件控件的選?。簭牟樵儍?nèi)容表中選擇需要添加查詢條件的屬性,并根據(jù)所選屬性的特點(diǎn),選擇控件類型。用TextBox控件作為用戶查詢條件的輸入接口,查詢條件間采用AND連接,并對(duì)所選的查詢條件做精確匹配和模糊匹配。
3)接口生成:將所選擇的查詢的內(nèi)容及配置的查詢條件生成的控件布局在同一頁面,并添加搜索按鈕,形成用戶針對(duì)全局查詢的接口,查詢內(nèi)容以GridView控件綁定查詢內(nèi)容表的形式給予顯示。
2.查詢處理
根據(jù)集成系統(tǒng)體系結(jié)構(gòu),系統(tǒng)接受用戶的查詢,并依據(jù)全局模式和屬性映射表對(duì)該查詢解析,判斷該查詢涉及哪些局部數(shù)據(jù)源,數(shù)據(jù)庫,表及字段,然后將用戶的查詢條件通過處理轉(zhuǎn)化為針對(duì)不同數(shù)據(jù)源的子查詢,然后對(duì)相應(yīng)的數(shù)據(jù)源進(jìn)行訪問。局部數(shù)據(jù)源執(zhí)行查詢并返回結(jié)果,系統(tǒng)對(duì)結(jié)果進(jìn)行整合,并按照屬性映射表的映射規(guī)則,將結(jié)果轉(zhuǎn)為全局公共數(shù)據(jù)模型。用戶查詢過程如圖1所示:
查詢分解除了將用戶的查詢語句分解外,構(gòu)成了一個(gè)循環(huán),分別將子查詢語句提交到局部數(shù)據(jù)源執(zhí)行。
四、總結(jié)
本文通過自定義全局?jǐn)?shù)據(jù)字典,并建立其與局部數(shù)據(jù)源表字段的映射關(guān)系來解決語義異構(gòu)的,通過對(duì)查詢分解并根據(jù)用戶的需要定制查詢內(nèi)容解決按需查詢的問題。下一步研究的重點(diǎn)是如何發(fā)現(xiàn)數(shù)據(jù)源模式變化,提高異構(gòu)數(shù)據(jù)集成的自動(dòng)化程度。
參考文獻(xiàn)
[1]W3C Working Group.Web Services Architecture.http://www.w3.org/TR/2004/ NOTE-ws-arch-20040211/,2004-2-11
[2]王明亮,李東,基于XML的異構(gòu)多源數(shù)據(jù)查詢[J].計(jì)算機(jī)應(yīng)用于軟件,2007,12(24)
[3]蔣軍,面向數(shù)據(jù)集成的數(shù)據(jù)服務(wù)開發(fā)工具:[碩士學(xué)位論文].天津,天津大學(xué),2007
[4]王天成,數(shù)據(jù)集成平臺(tái)中數(shù)據(jù)服務(wù)管理組件的實(shí)現(xiàn):[碩士學(xué)位論文].天津,天津大學(xué),2007.
[5]強(qiáng)保華,異構(gòu)數(shù)據(jù)庫語義集成技術(shù)研究:[博士學(xué)位論文].重慶,重慶大學(xué),2005
(作者單位:中國(guó)衛(wèi)星海上測(cè)控部)