摘要:為了實現異構環境中數據集成的目標,提出了基于XML、B/S三層架構的企業異構數據庫之間數據共享的實施方案,設計和實現了一個通用的異構數據集成系統。文章介紹了該系統的核心體系結構、工作流程和各模塊的功能;闡述了XML文檔模式的驗證和提取、XML文檔問的映射、XML文檔模式和數據庫關系模式之間的映射等關鍵模塊的設計和實現:最后簡要說明了實現系統所采用的相關Java技術。
關鍵詞:數據集成;XML;關系模式;映射
0 引言
企業信息化的逐步深入,使得任何一個獨立的信息持有或使用單位都有可能成為一個異構的數據源。與此同時,企業又需要訪問各種異構數據源,來加強戰略伙伴之間的合作關系,對資源進行集成和協調,快速響應市場需求,提高自身競爭力。為此,必須要有一種系統能夠支持異構數據源的數據集成。

數據集成即是把不同來源、格式、特點、性質的異構數據在邏輯上或物理上有機地集中起來,為用戶提供全面的數據共享。在企業數據集成領域,已經有了很多成熟的框架可以利用。目前通常采用聯邦數據庫系統(Federated Database System,FDBS)、中介系統(Mediation System)和數據倉庫(Data Warehouse)等方法來構造集成系統,這些框架在不同的側重點和應用上解決了數據共享問題,本文研究了目前國內外數據集成策略以及相關應用技術,在此基礎上提出了一種基于XML(eXtensible Markup Language,可擴展標記語言)、B/S三層架構,建立數據交換中心的總體解決方案,并結合相關的Java技術實現了其系統原型。
1 相關技術簡介
1.1 XML技術
XML是由W3C(World Wide Web Consortium,萬維網聯盟)定義的一種語言,它是SGML(Standard Generalized Markup Language,標準通用標記語言)的一個簡化子集。XML文件是由標記及其所標記的內容構成的文本文件。與HTML(HyperText Markup Language,超文本標記語言)文件不同的是,這些標記可由用戶自定義,使得XML文件能夠很好地體現數據的結構和含義。WBC推出XML的主要目的是使Intenet網絡上的數據相互交流更方便,讓文件的內容更加簡明易懂。
作為表示結構化數據的行業標準,XML具有許多特點,如可擴展性、自描述性等等,非常適合用于企業間異構數據的集成。
1.2 Web服務
為了在數據的發送方和接收方之間建立一個通道,需要有一種能夠跨平臺、跨語言的協議或組件,它能夠使用XML來描述和包裝需交換的數據或對象內容,以使得各種平臺的數據和對象都能通過同一個標準進行傳輸。HTTP(HyperText Trans-fer Protocol,超文本傳輸協議)和SOAP(simple Object Ac-tess Protocol,簡單對象訪問協議)正是這樣一種協議。

HTTP是ISO/OSI開發系統互聯參考模型的應用層協議,采用請求,響應方式傳送WWW的數據。SOAP是一種輕量級協議,用于在分散型、分布式環境中交換結構化信息。SOAP利用XML技術定義一種可擴展的消息處理框架,并提供了一種可通過多種底層協議進行交換的消息結構(如圖1所示)。這種框架獨立于任何一種特定的編程模型和其他特定實現的語義。
2 基于XML的企業間信息集成框架
2.1整體解決方案
系統在整體結構上采用“數據交換中心”的思想來解決不同企業應用系統之間的協同問題。通過采用統一的數據交換標準,使各應用系統與數據交換中心相連,利用數據交換中心來實現數據共享和路由。由于隔離了數據存儲層和應用層,應用與其底層的數據結構和存儲方式無關,從而不需要對原有業務系統進行改造,也不需要對已有的業務流程重新開發。這種連接方式實現了數據的無縫集成和共享訪問,既保證了各業務系統的有效協同,同時又保證了各應用系統的相互獨立性和低耦合性,從整體上提高了系統運作的高效性和安全性。
基于數據安全性、系統性能、系統擴展性和實施難度等方面的考慮,整個體系結構在物理拓撲上采用星型結構(如圖2所示)。
根據以上拓撲結構,結合異構數據交換需求和現有技術的可行性,考慮采用基于Web服務的數據交換模式來實現異構數據集成。基于Web服務的數據交換模式獨立于所有的參與者,可以很好地實現數據的實時性和完整性,能更好地屏蔽企業的內部數據(具體的數據處理由企業的業務邏輯來決定)。更重要的是,它是一種高度松散耦合的交換方式,參與數據交換的任何一方修改了其業務邏輯或數據格式,所影響的只是它本身,共享的方法屏蔽了所有的外部改變。

2.2框架結構
數據交換中心之所以能夠交換基于不同操作平臺和數據庫的數據,主要得益于其對信息的統一表示、完整的消息服務能力以及功能完備的交換平臺軟件系統。信息的統一表示依靠元語言標準、信息標準、元數據標準、顯示標準、解析標準、轉換標準和封裝標準來保證。完整的消息服務能力依靠信息的統一封裝、統一編址、信息的可靠性傳輸、路由管理等技術手段實現。交換平臺軟件系統一般采用基于基礎/中心數據庫的數據交換、消息中間件服務器等技術方式。
以下給出該數據交換中心節點及企業終端節點的框架結構(如圖3所示),并對各模塊功能予以說明。
(1)數據操作引擎:它是負責接收和發送XML數據的平臺。實現接收功能的部分實際上是一些監聽組件,監聽并接收來自數據交換節點傳入的數據;實現發送功能的部分是通過各種傳輸協議來把XML數據發送到指定目標地址。
(2)XML解析器:主要完成XML模式的確認,即測試文檔是否符合施加到其文檔類型之上的約束條件。分析該XML文檔的語法和格式是否正確,以確保在傳輸過程中沒有數據丟失和錯誤。分析企業所用的Schema是否和交換中心使用的Schema一致,如果不一致,則需要進行映射處理。
(3)XML映射器:當企業所用的Schema和交換中心使用的Schema不一致的時候,將用到該功能模塊。它首先檢查是否有相應的XSLT(可擴展樣式表語言)文件。如果有,則直接按該文件的規則把企業的XML轉換為標準格式的XML文件;如果沒有,則從企業用的Schema中提取出對應的數據格式和數據類型以及字段名,根據業務規則把標準Schema中對應的數據格式、數據類型以及字段名一一映射,系統將按此生成一個XSLT文件并用此文件進行映射。
以企業間完成一次數據交換為例,XML解析器與XML映射器進行的數據解析過程描述如下。
步驟1:XML檢查器首先檢查在數據交換中心服務器上是否有發送方所發送數據類型的Schema文件。如果沒有,就提取傳入數據的Schema并將此Schema作為發送方對所傳送數據類型的Schema,并轉入第3步。
步驟2:如果有,則用該Schema來檢查接收到的XML文檔是否符合該Schema所規定的結構。如果不符合,則認為發送方的數據結構發生了變化,提取傳入數據的Schema并將此Schema作為發送方對所傳送數據類型的Schema。
步驟3:檢查數據交換中心服務器端是否有該數據類型的通用Schema。如果沒有,則將發送方的Schema作為該數據類型的通用Schema,并轉入第5步。
步驟4:如果有,則檢查通用Schema和發送方的Schema是否一致。如果一致,則轉入第5步;如果不一致,則檢查是否有相應的XSLT文件。如果有,就用該XSLT文檔將接收到的XML文檔轉化為通用的格式;如果沒有相應的XSLT,則需要用XML文檔的映射器生成一個XSLT文檔,再用該XSLT將接收到的XML文檔轉化為通用的格式。
步驟5:檢查接收方在服務器端是否有所要交互數據類型的Schema文檔。如果沒有,則以通用Schema作為接收方的Schema文檔,并進行后續處理。如果有,就檢查該Schema是否和通用的Schema一致。若一致就進行后續處理,不一致就檢查是否有相應的XSLT文件。如果有,就用該XSLT文檔將通用的XML文檔轉化為符合接收方Schema的格式;如果沒有相應的XSLT,則需要用XML文檔的映射器生成一個XSLT文檔,將通用的XML文檔轉化為符合接收方Schema的格式。
(4)XML-based轉換器:主要完成XML數據模式與其它相應數據模式(關系模式、HTML文檔、文本文件等)的轉換。
利用XML文檔作為中間文件的數據集成,必須實現數據庫和XML文檔之間的雙向轉換。兩者轉換的實質是,XML文檔中的數據(可以是內容、屬性值、元素名等)與關系模式中字段的映射,XML文檔中數據的相互位置的關系與關系模式中元組與元組的關系及元組與字段的關系的映射。本文采用模型驅動方法實現相互映射,它將XML文檔中的數據視為特定的對象樹模型。在這個模型中,元素及其類型、元素內容或混合內容(復合元素類型)通常被視為類,只具有文本內容的元素(簡單元素類型)、屬性以及文本都被當作簡單屬性,然后借助于傳統的對象一關系映射技術將XML文檔映射成關系數據庫。
(5)XML-based封裝器:把經過處理后得到的數據按一定的規則轉化為XML文件,并將該XML采用SOAP格式進行封裝。
(6)數據處理器:直接與數據庫及其他信息系統進行交互。
3 實現
針對該系統的特點,采用如下的開發環境。
應用服務器采用Apache組織的Tomcat。Tomcat在本應用系統中有兩個作用:其一是作為企業內部MIS系統的Web服務器,其二是提供Web Service功能。
開發工具選擇Java進行應用系統的開發。Java需要另外的開發包支持,這里選的是JWSDP,它內部已經整合了開發Web Service及客戶端的工具。
開發平臺選用Windows系統。基于Java優秀的跨平臺性,Web Service也能很方便地部署到其他的操作平臺。
4 結束語
通過對當前各種數據集成策略的比較,以及對XML技術、Web服務技術的研究,本文提出了基于XML的異構數據集成框架,并對其內部結構進行了詳細說明。該框架采用星型拓撲結構,便于對數據集中管理,實施時可以在數據交換中心制定一套統一的安全管理策略。數據交換發生在中心節點上,該節點接收來自各個企業的數據,解析接收到的數據并按數據交換目的地所識別的格式進行轉換,然后發送到目的地。通過數據交換中心節點,可以在數據源和目的地之間建立一個透明的安全數據通道。