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