劉靜宜,劉旭東
(煙臺職業學院,山東 煙臺 264670)
基于XML的企業異構數據源集成系統的研究與設計*
劉靜宜,劉旭東
(煙臺職業學院,山東 煙臺 264670)
介紹了企業異構數據集成技術產生的背景、研究目的以及相關概念和技術;提出了一種基于Internet系統的三層架構的企業異構數據源集成模型框架,并闡述了實現該數據集成模型的關鍵技術和優越性。
XML;數據集成;架構;異構數據源
隨著企業信息化的逐步深入,特別是Internet技術的迅猛發展,各種異構應用系統之間存在著大量的數據交換和信息集成,而數據交換和信息集成的核心問題就是信息的標準化,主要解決信息的可理解性問題,包括人和機器對信息的理解。而且更重要的是機器對信息的識別,并能根據數據進行自動處理。在可擴展標記語言XML出現之前,常用的數據交換方式有傳真、電子郵件和電子數據交換(EDI)。傳真和電子郵件必須經過再次輸入和數據轉換才能納入后臺信息管理系統,效率低,實時性差,EDI通過增值網(VAN)在各應用系統間傳輸數據。這種方式可使計算機系統可靠的協同工作,但技術復雜,靈活性差,費用昂貴,報文讀寫轉換困難,這些缺點使 EDI未能得到廣泛使用。XML的出現,為信息的標準化提供了有力的工具。
XML是互聯網聯合組織(W3C)涉及并推薦的新一代標記語言,是SGML的一個優化子集。它以一種開放的自我描述方式定義數據結構,在描述數據內容的同時能突出對結構的描述,從而體現出數據之間的關系。它的出現無疑為異構數據源的集成帶來了新的希望。只有將異構數據源集成起來,人們才能從這些資源數據中獲取所需要的信息。
針對上述問題和功能要求,本文詳細討論了利用 XML技術,將來自不同應用程序的數據轉化到XML中間件這個統一的框架中,進行交互、轉化和進一步的加工,以實現更大范圍的數據共享,以便更有效的利用信息資源。
異構應用系統是指在不同的硬件的體系結構和操作系統平臺(Windows,Unix,Linux)以及網絡數據庫系統上運行的各種信息系統與輔助工程系統(如CAD/CAM/CAPP等)。
本文提出的企業異構數據源集成架構采用了因特網系統的三層體系結構即瀏覽器/Web服務器/數據庫服務器結構。因為XML已經成為Internet上數據表示和交換的標準,另外XML具有自描述的特性,結構化、半結構化和非結構化數據均可采用 XML來進行描述,因此本系統采用XML技術,一方面解決異構數據集成問題,另一方面實現企業數據的動態發布。其總體架構如圖1所示。

圖1 基于XML的企業異構數據源集成總體架構圖
(1)數據源層:系統的數據提供者,由不同來源的數據構成。包括各種類型的數據庫、文件、多媒體等信息。
(2)XML中間件層:提供必要的數據轉換功能或工具。
有一個代理程序運行于中間層,通過它來訪問數據庫中的數據,將此數據與XML格式進行相互轉換和輸出XML文檔。代理程序也起著橋梁的作用。另外,這種代理程序還可以進行雙向的基于事件的數據更新,也就是說,客戶端的數據變化(如數據的插入、刪除、修改等)可以通過代理程序反映到底層數據庫,而數據庫的更新也能夠及時通知到客戶端。通過中間層的代理程序,可獲取的數據來源可以不必局限于某臺固定的數據庫服務器,而可以是分布于企業內,甚至于遍及全球各地的數據庫服務器。
(3)客戶層:用戶界面層,根據具體的應用和用戶計算環境,采用合適的信息訪問技術或應用軟件。
由圖1可以看出,整個系統的實現完全是一個傳統或目前技術成熟的三層應用。在該架構中,關鍵的一個問題是以XML格式作為中間格式,進行企業數據抽取和存儲以及以XML格式完成部門間數據共享,即架構中XML中間件層的實現。因此本文只對模型中XML中間件層的實現進行討論。
在數據管理上采用“XML包裝”的方式進行,也即所有數據的變化請求均需通過XML中間件層進行存取訪問,而中間件層并不存儲具體的數據,只存儲所有數據的集成模式。具體的講,每一個異構信息由一個傳統數據源和一個“外套(wrapper)”構成,它通過一個 XML接口(引擎)作為低層DBMS或其它資料的包裝,在不改變服務器中原DBMS或其它數據源的前提下,只需用一種統一的可擴展語言XML為各種服務器做一件外觀統一的“外套(wrapper)”。XML中間件層及其與數據源層映像結構如圖2所示。

圖2 XML中間件層及其與數據源層映像結構圖
在XML中間件層,主要涉及兩個問題,一個是針對每個數據源的wrapper,即完成某種類型數據源與虛擬數據庫之間的雙向映射;另一個是XMLEnabled的集成數據(虛擬數據庫)公共模型建立及管理。
(1)Wrapper中的雙向數據映射
首先,用XML描述集成數據,用XSL定義用戶視圖,用XML文檔和格式文件DTD表示集成模式和數據源之間的映射。
Wrapper的第一個任務是將各個數據源的Schema通過相應的wrapper溶入全局Schema。在這個過程中,wrapper將數據源中的數據轉換為一個DOM對象。例如,一個關系wrapper能決定關系模型和DOM對象數據模型之間的映射(如tuple=object,column=attribute)。
例如 ,有 Person(PersonID,Name,BirthDate,Address,IdentifyId)和 Treatment(TreatID,Drugname,TreatNote,PeasonId)兩個關系表,他們與XML DTD之間的映射如下:


在XML文檔與數據庫進行雙向轉化的過程中,除去最上層的根結點外,元素結點對應數據庫中的表,屬性和元素的類型對應表中的列,若一個元素結點為另一個元素結點的子結點,則用數據庫中的主碼和外部碼建立表之間的關系。在上面的例子中,元素結點 Person和 Treatment對應數據庫中的表。而PersonID,Name等對應表中的列。由于結點 Treatment為結點 Person的子結點,因此用 PersonID與Person建立關聯。
Wrapper的第二個任務是完成數據的雙向映射。具體來講,就是完成數據源到XML-Enabled虛擬數據庫的轉換和虛擬數據庫中數據向數據源的轉換。這可以通過ASP或Java技術實現。
(2)中間件中的XML包裝器
XML包裝器對異構數據源進行包裝,在集成系統內部,使用XML對數據進行統一的描述和存儲,包裝器完成XML數據模型和各異構數據源上的數據之間的映射,屏蔽了各異構數據源之間的差異。與異構數據源之間存在一一對應的關系,并將數據源的返回結果用XML數據模型進行描述。
該集成采用XML模型作為公共模型。這就必然涉及到如何實現對各個數據源的集成存取問題,或者說將用戶對集成視圖的操縱轉換成對低層數據源的操縱,包括兩個方面,一個是將用戶對集成模式的訪問轉換成數據源可以執行的請求;另一個是將各數據源返回的數據轉換成集成模式的表示形式。反之亦然。步驟如下:
1)從數據源中讀取數據,生成XML文件,統一的格式表示。
2)將XML轉換成一個DOM對象模型,為上層提供訪問服務。
具體程序實現可以采用ASP或Java作為設計語言,利用Microsoft、IBM或其它公司的文檔解析器,通過XML DOM來操縱XML文檔。
下面的Java程序利用DOM型的Parser讀入上例中的XML文件,生成DOM樹型結構,并根據樹型結構進行相應的操作和處理。


經過上述步驟的實施,就可以實現企業各個分散、異構系統的數據集成,同時也可以通過數據中心進行業務流程或企業各系統之間的數據交互,最終達到整個企業中各個系統間的整合。
該架構具有如下優勢:
1)擴展性、可維護性好。所有的應用邏輯均集中在服務器端,從而使開發、維護過程中的大部分工作可以集中在服務器端,無需考慮客戶端的系統狀況,僅在調用和調試時涉及到客戶端。此外,由C#.Net來實現應用處理邏輯使得系統能夠方便地增加或調整網絡服務類型以適應新的業務需求。
2)使用Java技術,使系統具有良好的可移植性。現在Java技術不僅可以在不同操作系統、Web服務器組合上運行,而且在不同的平臺之間移植時,無需重編譯。
因此,采用這種架構實現對異構數據源的系統集成具有廣泛的應用前景。
一直以來,由于異構數據源之間的顯著差異,使得異構數據源集成成為一個難以解決的問題。而XML的出現,為異構數據集成技術帶來了希望,也使共享不同數據庫中的數據成為可能,為解決異構數據源集成提供了機會。隨著XML體系結構的不斷發展和完善,可以更好地實現異構數據間的集成和共享,并大大提高信息系統的整體性能。
[1]龍德應.基于Web服務/XML的電子商務體系及數據集成研究[J].廣東工業大學學報,2003,20(1):32-39.
[2]李軍懷,周明全,耿國華,等.XML在異構數據集成中的應用研究[J].計算機應用,2002,23(9):10-12.
[3]吳增德,劉巖,馬范援.基于服務的電子商務應用集成框架研究[J].上海交通大學學報,2002,36(9):1341-1345.
[4]謝芳華,任午令,唐人仲.基于XML的異構數據交換集成技術及其實現[J].制造業自動化,2004,26(4):1-4.
[5]婁淵勝,尹燕敏,王志堅.基于CORBA的通用數據存取中間件研究及實現[J].小型微型計算機系統,2001,22(10):1210-1212.
[6]嚴峰.基于XML的異構數據源集成中間件的研究[D].天津:南開大學,2005.
(責任編輯:肖恩忠)
TP391
A
1671-4288(2010)06-0053-04
2010-04-26
劉靜宜(1982—),女,山東榮成人,煙臺職業學院信息工程系助教。研究方向:軟件工程,信息管理與信息系統。