[收稿日期]2008-10-28
[作者簡介]郭建勝,男,中國人民解放軍空軍工程大學(xué)工程學(xué)院教授。
[摘 要]數(shù)據(jù)集成可分為實際存儲方式和虛擬方式兩種。聯(lián)邦技術(shù)屬于虛擬方式,是進(jìn)行數(shù)據(jù)集成的有效途徑之一。本文對“信息孤島”和“應(yīng)用孤島”的形成原因進(jìn)行了探討,闡述了數(shù)據(jù)集成概念和聯(lián)邦技術(shù)基本原理,分析了聯(lián)邦技術(shù)的優(yōu)缺點,并提出了基于聯(lián)邦數(shù)據(jù)庫的數(shù)據(jù)集成體系結(jié)構(gòu)模型。
[關(guān)鍵詞]數(shù)據(jù)集成;聯(lián)邦數(shù)據(jù)庫;集成體系
doi:10.3969/j.issn.1673-0194.2009.13.029
[中圖分類號]F270.7;TP393[文獻(xiàn)標(biāo)識碼]A[文章編號]1673-0194(2009)13-0086-03
隨著信息技術(shù)的不斷發(fā)展,各類企事業(yè)單位內(nèi)部都進(jìn)行了一定規(guī)模的信息化建設(shè),各部門獨立開發(fā)了針對自己業(yè)務(wù)特點的業(yè)務(wù)管理系統(tǒng)。這些業(yè)務(wù)系統(tǒng)的數(shù)據(jù)資源和業(yè)務(wù)邏輯相互不能共享,形成了巨大的“信息孤島”和“應(yīng)用孤島”,造成信息資源的極大浪費。對這些業(yè)務(wù)系統(tǒng)進(jìn)行綜合集成,以連接各業(yè)務(wù)部門間的“信息孤島”和“應(yīng)用孤島”,實現(xiàn)信息的采集、管理和使用全過程的平滑、快速流動,已成為提高工作效率,增加競爭力的重要措施。
1 “信息孤島”和“應(yīng)用孤島”形成的原因
“信息孤島”和“應(yīng)用孤島”的形成,主要有以下幾方面原因:
(1)信息化建設(shè)缺乏整體規(guī)劃。
各應(yīng)用系統(tǒng)的建設(shè)是由不同的應(yīng)用開發(fā)單位分散進(jìn)行的,只是滿足局部需要而缺乏整體規(guī)劃,使各應(yīng)用系統(tǒng)之間的數(shù)據(jù)來源不同、用途各異,在數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)存儲方式等方面存在異構(gòu)性。
(2)人為采取分級或分離措施。
為增加可控性,在實施管理時,將管理對象人為地分級或強制分離,形成目前的組織機(jī)構(gòu)。這些強制的分級和分離措施,反映到業(yè)務(wù)管理信息系統(tǒng)中,就呈現(xiàn)出數(shù)據(jù)和功能的分離。
(3)重視程度不同。
在企業(yè)內(nèi)部,不同單位對信息化建設(shè)重視程度不同、經(jīng)濟(jì)投入不同,導(dǎo)致信息化建設(shè)水平不一致,數(shù)據(jù)采集和信息獲取的能力不同。
2 數(shù)據(jù)集成概念
數(shù)據(jù)集成是信息集成建設(shè)中最深層、最核心的工作,就是要在計算機(jī)網(wǎng)絡(luò)環(huán)境中,運用數(shù)據(jù)集成技術(shù),實現(xiàn)異構(gòu)數(shù)據(jù)庫之間完全透明的訪問,并支持不同數(shù)據(jù)庫系統(tǒng)之間的相互操作。數(shù)據(jù)集成主要是從數(shù)據(jù)底層解決異構(gòu)數(shù)據(jù)的共享問題。目前,數(shù)據(jù)集成的技術(shù)方案主要有3種:一是建立聯(lián)邦數(shù)據(jù)庫系統(tǒng);二是利用可協(xié)調(diào)數(shù)據(jù)層與應(yīng)用層的中間件集成技術(shù);三是建立數(shù)據(jù)倉庫。按數(shù)據(jù)存儲位置,即是否在本地存儲數(shù)據(jù),數(shù)據(jù)集成方法又可分為實際存儲方式和虛擬方式兩種。
實際存儲方式包括普通的DBMS和數(shù)據(jù)倉庫等。該方法把應(yīng)用程序所需數(shù)據(jù)預(yù)先提取并存儲到本地數(shù)據(jù)庫,用戶查詢和使用時直接訪問本地數(shù)據(jù),適用于數(shù)據(jù)源數(shù)據(jù)結(jié)構(gòu)固定,數(shù)據(jù)不常改變的情況。但該方法不可避免地面臨著如何保證本地數(shù)據(jù)源中數(shù)據(jù)是最新的,以及如何更新本地數(shù)據(jù)的問題。
虛擬方式包括搜索引擎、聯(lián)邦數(shù)據(jù)庫、多數(shù)據(jù)庫和基于包裝器/中介器(Wrapper/Mediator)的信息集成系統(tǒng)。虛擬方式集成模式不在本地存儲數(shù)據(jù),其最大的特點是按照查詢需求與數(shù)據(jù)源建立實時連接,直接提取結(jié)果數(shù)據(jù)。
3 聯(lián)邦數(shù)據(jù)庫技術(shù)
聯(lián)邦數(shù)據(jù)庫技術(shù)是在維持局部成員數(shù)據(jù)庫自治的前提下,在數(shù)據(jù)集成層次對異構(gòu)的成員數(shù)據(jù)庫進(jìn)行部分集成,提供對異構(gòu)成員數(shù)據(jù)庫的共享和透明訪問。聯(lián)邦技術(shù)能夠統(tǒng)一地訪問以任何模式(結(jié)構(gòu)化和非結(jié)構(gòu)化)存儲的任何數(shù)字信息,具有透明性、異構(gòu)性、底層聯(lián)邦數(shù)據(jù)源的自治性、可擴(kuò)展性和開放性等主要特征,是進(jìn)行數(shù)據(jù)集成的有效方法,大多主流數(shù)據(jù)庫廠商都提供對該集成機(jī)制的支持。
圖1顯示了聯(lián)邦數(shù)據(jù)庫的體系結(jié)構(gòu)。
聯(lián)邦數(shù)據(jù)庫服務(wù)器通過包裝器(Wrapper)與數(shù)據(jù)源進(jìn)行通信。一個包裝器對應(yīng)一類數(shù)據(jù)源。對關(guān)系型數(shù)據(jù)庫數(shù)據(jù)源而言,包裝器通過安裝在信息集成平臺的該數(shù)據(jù)庫的客戶端與其進(jìn)行交互。對非關(guān)系型數(shù)據(jù)源,包裝器直接進(jìn)行數(shù)據(jù)訪問。包裝器從信息集成服務(wù)器接受數(shù)據(jù)訪問指令,進(jìn)而轉(zhuǎn)換為數(shù)據(jù)源所支持的數(shù)據(jù)訪問指令,通過數(shù)據(jù)源的服務(wù)器提交執(zhí)行,然后將結(jié)果返回給信息集成服務(wù)處理。
除了包裝器之外,信息集成服務(wù)器還有3個核心的部分。信息集成服務(wù)器維護(hù)一個全局的數(shù)據(jù)字典,其中保存需在信息集成平臺被訪問的數(shù)據(jù)的相關(guān)描述,包括數(shù)據(jù)源的配置信息、數(shù)據(jù)源表的結(jié)構(gòu)、字段數(shù)據(jù)類型、相應(yīng)的索引,以及數(shù)據(jù)分布的統(tǒng)計信息。另外,全局?jǐn)?shù)據(jù)字典還記錄數(shù)據(jù)源的CPU、網(wǎng)絡(luò)、I/O等系統(tǒng)資源情況。
但基于傳統(tǒng)聯(lián)邦數(shù)據(jù)庫的數(shù)據(jù)集成解決方案也有技術(shù)上的固有缺陷,集成時需要在相關(guān)數(shù)據(jù)源間建立兩兩鏈接。所以當(dāng)集成數(shù)據(jù)源數(shù)量眾多時,加入新的數(shù)據(jù)源就需要建立大量的鏈接。因此,傳統(tǒng)聯(lián)邦數(shù)據(jù)庫技術(shù)比較適用于集成目標(biāo)較少,而且相對固定的或變化不大的數(shù)據(jù)集成需求。
4 基于聯(lián)邦技術(shù)的數(shù)據(jù)集成體系結(jié)構(gòu)
數(shù)據(jù)集成主要解決數(shù)據(jù)(信息)的共享問題。結(jié)合聯(lián)邦數(shù)據(jù)庫集成原理,本文針對傳統(tǒng)聯(lián)邦技術(shù)的不足,采用統(tǒng)一的全局?jǐn)?shù)據(jù)集成模式,對基于聯(lián)邦數(shù)據(jù)庫的數(shù)據(jù)集成體系進(jìn)行了設(shè)計,如圖2所示。
基于聯(lián)邦技術(shù)的數(shù)據(jù)集成體系為3層結(jié)構(gòu)模式:用戶接口層、集成處理層和數(shù)據(jù)庫層。每層都包括一些相應(yīng)的功能模塊。
4.1 用戶接口層
用戶接口層是數(shù)據(jù)集成體系與用戶的接口,負(fù)責(zé)實現(xiàn)集成成員數(shù)據(jù)庫的注冊、集成模式的建立,接收SQML(Structure Query and Manipulation Language,結(jié)構(gòu)化查詢、操縱語句)的輸入、顯示查詢結(jié)果。成員數(shù)據(jù)庫注冊操作時,其注冊信息保存在元數(shù)據(jù)庫或數(shù)據(jù)字典中,并更新聯(lián)邦數(shù)據(jù)庫的系統(tǒng)目錄和全局?jǐn)?shù)據(jù)庫視圖。
在基于聯(lián)邦技術(shù)的數(shù)據(jù)集成框架中,需要提供統(tǒng)一的數(shù)據(jù)庫語言SQML。SQML是基于標(biāo)準(zhǔn)數(shù)據(jù)庫語言SQL (Structure Query Language)的、面向集成模式下的數(shù)據(jù)庫查詢和操縱語言。SQML作為集成體系的數(shù)據(jù)庫語言,可以實現(xiàn)用戶對集成系統(tǒng)的操作,轉(zhuǎn)換成對成員數(shù)據(jù)庫的操作。如果各集成對象(數(shù)據(jù)源)的數(shù)據(jù)庫平臺基本都支持SQL,則可直接用SQL作為SQML,以簡化數(shù)據(jù)集成工作量。對于部分不支持SQL的數(shù)據(jù)源,可在集成處理層再作查詢語法的轉(zhuǎn)換。
4.2 集成處理層
數(shù)據(jù)集成處理層是數(shù)據(jù)庫集成框架的核心,包括元數(shù)據(jù)或數(shù)據(jù)字典、集成虛擬數(shù)據(jù)庫、SQML語法檢查模塊、分析映射模塊、優(yōu)化處理模塊、數(shù)據(jù)組裝模塊及使用分布式處理方法的DB通信接口等。
(1)元數(shù)據(jù)或數(shù)據(jù)字典:定義集成數(shù)據(jù)庫的數(shù)據(jù)描述、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)完整性規(guī)則,存儲成員數(shù)據(jù)庫的數(shù)據(jù)描述、數(shù)據(jù)結(jié)構(gòu)與類型,存儲各成員數(shù)據(jù)庫數(shù)據(jù)模式與集成虛擬數(shù)據(jù)庫數(shù)據(jù)模式的映射規(guī)則等,為數(shù)據(jù)模式轉(zhuǎn)換提供依據(jù)。存儲SQML語法規(guī)則,為SQML語法檢查提供依據(jù)。
(2)集成虛擬數(shù)據(jù)庫:是數(shù)據(jù)集成體系的數(shù)據(jù)交換平臺,提供統(tǒng)一的全局?jǐn)?shù)據(jù)庫視圖,存儲系統(tǒng)目錄,接收與處理用戶的數(shù)據(jù)請求,接收各成員數(shù)據(jù)庫返回的中間結(jié)果。集成虛擬數(shù)據(jù)庫還包括SQML語法檢查模塊、分析映射模塊、優(yōu)化處理模塊等,以完成對用戶數(shù)據(jù)請求的分析、處理與優(yōu)化。集成虛擬數(shù)據(jù)庫作為數(shù)據(jù)集成體系的數(shù)據(jù)交換平臺,提供各源數(shù)據(jù)模式與全局統(tǒng)一數(shù)據(jù)模式的轉(zhuǎn)換機(jī)制,避免了傳統(tǒng)聯(lián)邦技術(shù)中數(shù)據(jù)模式兩兩轉(zhuǎn)換,消除了傳統(tǒng)聯(lián)邦技術(shù)的不足。
(3)SQML語法檢查模塊:對輸入的SQML命令的語法進(jìn)行正確性和有效性檢驗,并進(jìn)行SQML的語義分析。
(4)分析映射模塊:對通過正確性和有效性檢驗的SQML語法進(jìn)行分析、分解,根據(jù)數(shù)據(jù)模式映射規(guī)則,生成各成員數(shù)據(jù)庫平臺支持的數(shù)據(jù)庫操作語言,將用戶的數(shù)據(jù)請求下推(pushdown)到相關(guān)數(shù)據(jù)源。對于數(shù)據(jù)源不能處理的數(shù)據(jù)請求操作,分析映射模塊還提供補償功能。補償功能可由兩種方式來實現(xiàn):一是請求數(shù)據(jù)源使用一個或多個操作來對應(yīng)SQML中描述的功能。例如,假設(shè)某數(shù)據(jù)源不支持余切函數(shù)cot(x),但支持正切函數(shù)tan(x),則可請求數(shù)據(jù)源用1/tan(x)來等同于cot(x)。二是提取數(shù)據(jù)至聯(lián)邦服務(wù)器,在本地進(jìn)行處理。
(5)優(yōu)化處理模塊:優(yōu)化處理往往和分析映射功能一起使用,主要是對一個數(shù)據(jù)請求進(jìn)行分析,并根據(jù)資源耗費情況生成處理數(shù)據(jù)請求的最優(yōu)計劃。查詢優(yōu)化有基于代價、基于值等多種優(yōu)化模型。
查詢語句的優(yōu)化處理流程如圖3所示。
(6)數(shù)據(jù)組裝模塊:對查詢結(jié)果進(jìn)行結(jié)構(gòu)等方面的處理,例如,進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換、中間結(jié)果合并和數(shù)據(jù)排序等操作,并以用戶希望的形式展現(xiàn)給用戶。
(7)DB通信接口:支持ODBC、ADO等協(xié)議和技術(shù),完成與成員數(shù)據(jù)庫的聯(lián)接與通信。
數(shù)據(jù)集成處理層就是利用這些功能模塊,結(jié)合數(shù)據(jù)字典或元數(shù)據(jù)定義的模式轉(zhuǎn)換規(guī)則,將用戶的數(shù)據(jù)請求轉(zhuǎn)換成對各個業(yè)務(wù)系統(tǒng)成員數(shù)據(jù)庫的訪問,并將返回結(jié)果組裝至集成虛擬數(shù)據(jù)庫以顯示給用戶。
4.3 數(shù)據(jù)庫層
數(shù)據(jù)庫層分布著各聯(lián)邦成員數(shù)據(jù)庫,通過DB通信接口可實現(xiàn)對這些自治的成員數(shù)據(jù)庫進(jìn)行數(shù)據(jù)訪問和物理操作。同時,各成員數(shù)據(jù)庫仍通過各自的業(yè)務(wù)系統(tǒng),完成其原有功能,保持高度自治性。
5 結(jié)束語
隨著信息化建設(shè)的不斷深入,各種異構(gòu)數(shù)據(jù)不斷涌現(xiàn),如何將這些異構(gòu)的數(shù)據(jù)集成起來就成為一個迫切需要解決的問題。聯(lián)邦技術(shù)就是進(jìn)行數(shù)據(jù)集成的一種有效途徑,它能最大限度地保持現(xiàn)有系統(tǒng)的獨立性和自治性,對目標(biāo)系統(tǒng)的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)共享集成。但聯(lián)邦技術(shù)的固有缺陷,使集成時在各目標(biāo)系統(tǒng)之間需要建立大量的鏈接。本文提出的集成體系方案,用統(tǒng)一的集成處理層,對各自治成員數(shù)據(jù)庫進(jìn)行管理,有效地減少了集成工作量,在一定程度上彌補了聯(lián)邦技術(shù)的缺陷。
系統(tǒng)集成是企業(yè)管理效率的倍增器。但企業(yè)信息綜合集成涉及網(wǎng)絡(luò)集成、數(shù)據(jù)集成和應(yīng)用集成各個層面,每個層面的適用集成技術(shù)又各有優(yōu)缺點。所以,企業(yè)信息綜合集成在體系結(jié)構(gòu)的設(shè)計、集成技術(shù)的運用與發(fā)展上仍需做進(jìn)一步的研究,以達(dá)到真正的應(yīng)用集成,實現(xiàn)各業(yè)務(wù)系統(tǒng)的無縫連接。
主要參考文獻(xiàn)
[1] 劉晶煒,閆健卓,朱青.IBM信息集成技術(shù)原理及應(yīng)用[M].北京:電子工業(yè)出版社,2004.
[2] 吳渝,王成良.基于EAI的企業(yè)數(shù)據(jù)集成技術(shù)的研究[J].微計算機(jī)信息,2006(53).
[3] 楊宏英,林長松.異構(gòu)數(shù)據(jù)集成系統(tǒng)的應(yīng)用模式與技術(shù)實現(xiàn)[J].微電子學(xué)與計算機(jī),2006(8).
[4] 林建宇,張國?。环N異構(gòu)數(shù)據(jù)庫集成的方法[J].南京理工大學(xué)學(xué)報,2002(10).
[5] 鄧蘇,張維明,等.信息系統(tǒng)集成技術(shù)[M].第2版.北京:電子工業(yè)出版社,2004.
[6] 張正明,佟俐鵑.異構(gòu)數(shù)據(jù)庫集成的研究與實現(xiàn)[J].航空計算技術(shù),2004(6).
[7] 宋瀚濤.異構(gòu)信息源集成技術(shù)[J].北京理工大學(xué)學(xué)報,2002(10).
[8] 王光源.?dāng)?shù)據(jù)集成體系架構(gòu)及其實現(xiàn)框架研究[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2006(12).