王智軍
(赤峰學院 計算機科學與技術系,內蒙古 赤峰 024000)
基于XML的異構數據集成研究
王智軍
(赤峰學院 計算機科學與技術系,內蒙古 赤峰 024000)
在企事業單位內部,由于部門間相對獨立,構建系統時缺乏統一的規劃和標準,所以造成了現有的應用系統是分散、異構、封閉的系統,相互之間不能共享信息,形成了一個個“信息孤島”.本文首先對數據集成涉及的相關技術進行了研究.分析了目前流行的數據集成方法.按照不同的實現技術,將數據集成方法分為三類,即數據轉換方法、數據聚合方法以及析取、轉換和裝載(Extract、Transform and Load,ETL)方法.然后,借鑒數據轉換方法以及ETL方法的數據集成實現思想,結合目前中小企業數據集成的需求,提出基于Java和XML技術實現異構數據交換集成的通用解決方案.
數據集成;數據抽??;ETL;XML;Java
隨著計算機技術,特別是Internet技術的迅猛發展,許多行業、單位或機構、部門內部都逐步實現了業務、信息的計算機化管理.在企業實施信息化進程中,由于企業內各部門的業務和功能歸屬不同,以及各企業信息化水平存在差異等原因,造成企業擁有許多相互隔離的、由不同核心技術構建的信息服務和管理系統.系統中數據的表示不同,數據交流效果極差,形成“信息孤島”,從而使得企業內以及企業間的協作效率與效果很不理想.
企業應用集成EAI(EnterpriseApplicationIntegration)是解決這一問題的方法之一.
目前,企業數據集成有許多成型產品,按照不同的實現技術,集成方法可以分為三類:數據轉換方法、數據倉庫法和虛擬法.
目前,由于Xml良好的可靠性與互操作性,確保了網絡中信息的傳輸與交互,加上Xml是基于WEB工作設計的,更適合于網絡化環境,因此在電子商務時代B2B的商業模式得到廣泛應用.Xml的可擴展性和自描述性更讓其在數據描述和信息共享方面有著天然的優勢.其標記可根據需求由企業自由定制,有極大的靈活性,可形成針對行業特點的不同標記集.Xml Schema支持許多復雜的數據類型,引入原型和命名空間概念,可隨意擴充等,使得其不但編寫簡單,而且內容充實完整,可以給出Xml文檔詳細明確的定義.由S c h e m a定義約束的Xml文檔,有效性更加嚴格,內容結構更加嚴謹.總之,Xml的結構性、可擴展性、自描述性、簡單性等多種特性,使之表示數據的方式真正做到了獨立于應用系統,不受任何特殊的軟件或者硬件平臺限制,并且這些數據能重復使用,簡單易懂,成為交換各種結構化、半結構化、非結構化信息的良好方式.
此外,Xml本身突出表現數據結構和語義的特點,使其自然地與數據庫結合在一起。一旦將Xml數據文件與數據庫表關系關聯起來,不但可以保留關系數據庫表的結構信息,還可以利用Xml文檔的優勢在網絡及數據庫間交換數據,并解決不同數據庫系統及數據關系、語義定義等數據表達方面的差異,如對應關系中字段內容不同、字段命名不同、數據類型不同等。這將較好地解決企業應用系統間信息資源集成的分布和異構等問題,使得數據交換的手段更為透明,并為EAI的發展提供了有效手段。
按照不同的實現技術,集成方法可以分為三類.第一類是數據轉換方法,這種方法實現的是企業數據的松散集成,通過轉換工具實現應用系統之間的數據轉換和交換,從而達到集成的目的,是一種較低層次的集成;第二類為數據聚合方法,在各種異構數據源的基礎上,借助于中間件系統構造一個虛擬的全局數據模式,是一種集中式管理、分布式存儲的較高層次的集成模式;第三類是析取、轉換和裝載(Extract、Transform and Load , ETL)方法,通過對異構數據源中的數據進行分析、轉換和裝載,建立一個數據倉庫,是一種面向企業決策的數據集成方法.
1.1 數據轉換方法
集成轉換工具是脫離具體的DBMS和應用系統,通用性很強的獨立軟件,可以在任意兩個常見的數據源之間進行數據轉換.目前成熟的集成數據轉換工具比較多,一般都采用向導驅動方式和GUI圖形用戶界面,可以進行Fox Pro、Acc ESS等桌面數據庫與Oracle,SQL Server等大型數據庫之間的數據存儲、轉換和調用.一般來說,這類工具都允許把一個數據庫中的數據(一個或多個表中的部分或全部行)轉入至另一個數據庫的一個表中(這個表可以存在或不存在).其系統原型圖如圖1所示:

圖1 數據轉換系統原型圖
1.2 數據聚合方法
數據聚合方法是將多個數據庫集成為一個統一的數據庫視圖的方法.可以認為,數據聚合工具產生的數據聚合體是一種虛擬的企業數據庫,它包括了多個實體的物理數據庫.數據聚合方法利用中間件集成異構數據源,該方法并不需改變原始數據的存儲和管理方式.其系統原型圖圖2所示:

圖2 數據聚合系統原型圖
1.3 ETL方法
ETL(extrac,transform and load)代表抽取、轉換和裝載過程.通過該過程,我們可以從多個數據源取得數據,將取出的數據進行轉換及清洗,最后裝載到另一個數據庫,數據中心或者數據倉庫,從而實現系統間數據集成,如圖3所示.

圖3 ETL系統原型圖
該方法是一種實現異構數據源的集中式管理、集中式存儲的方法.ETL工具從多個數據源中抽取數據,然后進行數據轉換和加載,最終得到統一的、完備的數據倉庫.原來分散的應用系統仍然獨立運作,原來存在的異構數據源仍然為各自的應用系統提供數據服務.
為了實現不同應用系統中異構數據的交換集成,必須提供一種統一的數據轉換模式.在進行數據提取時,以便將異構信息轉換成統一的標準結構樣式.然后在數據共享加載時再將標準化的信息轉換成本地數據格式進行加載,進而完成異構信息的共享集成.
建立各Xml Schema模式與不同數據源信息間的映射關系,作為一個數據結構間的對應關系,我們稱之為數據轉換模式定義,它給出了應用系統數據到標準結構Xml數據文件的轉換規則,如圖4所示.

圖4 數據抽取轉換集成原型
其中,中間的Xml數據文件可以建立專用的管理平臺來管理,也可以僅僅實現Xml文檔的直接流轉.
網絡環境應用中,以企業的數據交換區為核心,建立信息交換集成平臺,作為數據傳輸通道.其中所有企業應用系統間需交流的信息以Xml數據文件的形式存儲在數據交換區,可通過瀏覽器瀏覽,并提供上傳與下載操作,進而實現不同應用系統間信息的發布、獲取、協商及交換等功能,如圖5所示.該平臺上還包括用Xml Schema描述的各類交換數據的結構,一個交換數據項對應一個Schema,供所有應用下載,保證Xml數據文件所描述的數據擁有語義上的獨立性和穩定性,并幫助操作者讀懂Xml文檔,即利用Xml Schema為異構數據源提供一種統一的數據轉換結構的描述與約束.各企業或各企業應用系統間,就是通過該信息交換集成平臺,將可通過數據抽取轉換器生成標準結構X ml數據文件的各異構數據源聯系起來,并實現數據的集成和共享.

圖5 應用實現框架
該集成方案的優點是簡單易行,共同部分可以只是一些Xml文檔,對于這些文檔的管理只需存儲提取就可以了,各系統仍然按照原來的方式運行,包括數據的存儲提取,只是在需要進行信息交流時通過中間件技術把本地數據庫數據轉換成X ml數據文件或者進行相反的轉換即可.
在系統整合過程中,程序設計語言可以采用跨平臺性強的Java語言.Java語言作為一種網絡編程語言,最大限度的利用了網絡資源,并且可以跨平臺、跨網絡運行,其代碼可重用和可擴展;通過多線程運行機制來支持多任務和并行處理.利用Java語言的優勢,使系統的新增部分能夠不受系統平臺的限制,最大限度的消除“信息孤島”,從而提高信息資源的利用率,讓原有系統發揮全新的更大的應用價值.
集成交換系統分兩部分來實現,一部分為MIS數據抽取端(服務端),主要用來實現數據的抽取,運行在MIS側;另一部分為決策支持系統數據加載端(客戶端),主要用來實現抽取所得數據的加載,運行在決策支持系統側.HTTP是防火墻的友好協議,能夠透過防火墻,所以集成交換系統兩端以HTTP進行Xml數據文件的傳輸.
系統兩端各分三層來實現,分別為數據源連接層、抽取轉換層/轉換加載層以及通信層.系統以Xml為公共數據的描述規范,涵蓋了從數據抽取/加載、轉換到通信的數據交換全過程.各層彼此聯系,又相互獨立,便于擴展、維護和升級.系統框架結構如圖6所示.各層具體功能如下:

圖6 系統框架結構圖
5.1 數據源連接層
對于交換系統中使用的大量數據庫,可以抽象成數據源的概念.數據源連接層主要完成異構數據源的封裝和連接的權限驗證.我們服務端利用JDBC或ODBC數據庫訪問接口實現.客戶端運行在應用服務器環境中,通過連接池來實現數據源連接,通過JNDI來獲取數據源.
5.2 抽取轉換層/轉換加載層
抽取轉換層主要完成從異構數據源抽取數據(各企業MIS系統數據源異構),并將抽取得到的數據轉換成標準的Xml文件.轉換加載層負責將獲取到的標準Xml文件進行解析,將數據轉換成本地數據源數據格式并加載到決策支持系統數據庫.
5.3 通信層
通信層完成Xml文件的傳輸.通信層應保證數據傳輸的有效、可靠和安全.
為了比較徹底高效地解決“信息孤島”問題,將來我們可以嘗試采用Xml數據庫的解決方案.Xml作為統一的數據表示格式,能夠幫助用戶從分散的系統和應用中取出有效的信息整合成標準的Xml信息,然后提供給各種應用方便的訪問.Xml數據庫提供了一個高效的、可擴展的、靈活的Xml信息操作平臺,而且能夠方便地與其它系統和平臺進行數據集成和共享,并且能夠讓信息真正在各個系統中順暢流通,從而獲得最大的商業價值.
〔1〕王寧.一種基于CORBA的異構數據源集成系統的設計[J],軟件學報,1998(6):45-51.
〔2〕XML技術內幕[M].機械工業出版社,2002.289-321.
〔3〕彭晨陽.Java實用系統開發指南 [M].機械工業出版社,2005.336-482.
〔4〕梁利姣,吳國平.一種基于XML的異構數據源集成方案[J].現代計算機,224-232.
TP311
A
1673-260X(2010)03-0019-03