趙 聰,寇德齊,張子偉
(1.裝甲兵工程學院,北京 100072;2.72253部隊,濟南 250022)
隨著裝備保障信息化建設的不斷深入,各兵種以及裝備保障各業務部門都開發了一系列的信息管理系統,這些信息管理系統在一定程度上滿足了裝備保障工作的需要。但這些系統在開發初期沒有統一的標準和規范,因此,數據定義、數據存儲格式不統一,并且各類裝備保障數據分布在各業務分系統中,必然導致決策部門或首長機關無法進行高效的數據匯總、查詢和應用,嚴重影響了對裝備保障工作的決策和控制,裝備保障信息化建設的整體效能也無法得到最大程度的發揮。
目前集成異構數據源的體系結構主要有3種:聯邦數據庫、數據倉庫和中介集成系統。聯邦數據庫中數據源之間使用數據轉換接口來實現數據互訪,在集成的數據源種類和個數限定的情況下容易實現,但在數據源種類繁多并且經常變化的情況下,擴展性差;數據倉庫將幾個異構數據源的數據存儲到數據倉庫,主要適用海量數據的統計分析,但是由于集成的數據是原有數據的副本,一方面增加了存儲的負擔,另一方面不能反映各異構數據源的實時情況;中介集成系統不存儲數據副本,只提供查詢溝通的機制,當用戶進行數據查詢時,必須到各異構數據源中得到相關的數據,然后利用這些數據構造用戶需要的結果,主要應用于對數據響應速度要求不高的情況中。
本文在中介集成系統的基礎上,利用XML和Web技術,提出了裝備保障數據集成平臺的設計方案。
在對裝備保障現有的系統和數據庫特點以及信息化戰爭對數據的需求進行深入分析的基礎上,提出數據集成平臺的設計目標:數據集成平臺不改變現有業務系統的數據庫,如車務、修理、器材等,而是建立獨立的中間件系統對現有數據系統進行抽取、轉換和集成;數據集成平臺靈活配置各種集成數據源;集成框架應支持多種操作系統。
在集成框架中,需集成的數據稱為局部數據源,分布于各地,它們在存儲方式和組織方式上各不相同。為了將這些異構的局部數據源集成起來,從各個局部數據源抽取公共部分建立新的數據模型,并在局部數據源和新的數據模型之間建立映射關系,這個新的數據模型被稱之為全局數據源,并呈現給用戶。用戶對全局數據源的操作都可以通過映射關系對應到具體的局部數據源中,從而屏蔽了數據的異構性。
裝備保障數據集成平臺的體系結構如圖1所示,從下到上分為數據層、邏輯層、表示層。

圖1 裝備保障數據集成平臺體系結構
1)數據層包括各種異構的局部數據源和包裝器。其中局部數據源可以是Oracle、SQL Server等關系型數據庫,也可以是XML文檔。與以往中介系統對每個數據源分別建立包裝器不同,圖1的架構中只采用1個包裝器來對所有局部數據源進行包裝。收到邏輯層傳過來的查詢指令后,從元數據庫中查找映射信息操作局部數據源。
2)邏輯層包括中介器和元數據庫。中介器一方面負責將表示層傳來的針對全局數據源的查詢轉換為對各局部數據源的查詢,另一方面將數據層返回的結果整合后發送給表示層。元數據庫存放局部數據源、全局數據源及它們之間的關系。中介器以Web Service形式發布。
3)表示層直接面向用戶。由于邏輯層的中介器采用Web Service發布,所有可以調用Web Service的客戶端都可以用于表示層,因此,表示層可以采用多種語言,為用戶提供友好的操作界面。表示層還接收用戶發出的XQuery查詢指令,將XQuery指令發送到下面的邏輯層,并接收邏輯層發來的查詢結果。
數據集成平臺主要包括邏輯層和數據層。集成平臺的主要構件中介器和包裝器都是以Web Service的形式進行發布的,方便所有用戶調用。
元數據庫位于邏輯層,用于存儲全局數據源、局部數據源及它們之間的映射。為了實現輕量配置,采用XML文件充當存儲介質。元數據庫向下層的包裝器提供局部數據源的地址信息、數據源類型、用戶信息等,實現1個包裝器對多個局部數據源的包裝,并向同層的中介器提供全局數據源和局部數據源的映射信息,實現全局查詢向局部查詢的轉換。
從圖1中可以看出,中介器是集成系統的核心模塊。根據功能,將中介器劃分為2個部分:元數據處理器和查詢處理器。中介器的結構如圖2所示。

圖2 中介器結構
元數據處理器負責操作元數據庫中的數據,包括全局數據源管理、局部數據源管理和映射關系管理。查詢處理器進行2方面的工作:一方面向上接收表示層發送的全局查詢語句,將其分解為針對局部數據源的查詢語句發送到數據層;另一方面向下接收數據層的查詢結果,對其進行全局數據源封裝之后,發送至表示層。
中介器工作流程為:
1)表示層根據系統提供的全局數據源,編寫并發送XQuery查詢語句。
2)查詢處理器中的查詢解析部件收到XQuerv后,驗證其語法,提取相應的關鍵字,判斷該語句是否合法。如果合法,將XQuery傳到查詢分解器,轉第3步,否則返回第1步。
3)查詢分解器通過調用數據處理器查詢元數據庫中的全局數據源與局部數據源的映射關系,將針對全局的XQuery分解為針對局部的XQuery。
4)查詢分發器將針對局部的XQuery發送到數據層的包裝器。
5)數據層的包裝器從元數據庫中獲取局部數據源信息,執行局部查詢,以XML形式返回查詢結果。整合器收到查詢結果后,根據全局數據源與局部數據源的映射關系,按照全局數據源樣式將其封裝,返回涵蓋多個局部數據源的集成數據。
包裝器是中介器與局部數據源聯系的橋梁,用來封裝局部數據源,為中介器提供統一的查詢接口。按照功能可以分為查詢語言轉換器、查詢執行引擎、JDBC Driver和結果轉換器4部分,如圖3所示。

圖3 包裝器結構
圖3中,包裝器收到中介器分解后的局部XQuery查詢語言后,通過查詢語言轉換器,將XQuery語句翻譯成本包裝器對應數據源的查詢語言。如對于SQL Server等關系數據庫,將XQuery轉換為SQL語句。對于XML文檔,則無需進行轉換,直接用XQuery進行查詢,轉換后的查詢語言被發送到查詢執行引擎。
查詢執行引擎根據不同的數據源,選擇不同的JDBC驅動程序,與對應的局部數據源建立連接,執行查詢語言轉換器轉換后的查詢語言,并將查詢結果發送到結果轉換器。結果轉換器將查詢結果按照一定的規則包裝成統一的XML格式,返回給中介器。
通過上述的設計方案可以看出,數據集成平臺的主要構件(查詢處理器、元數據處理器、結果轉換器、查詢語言轉換器以及查詢執行引擎等)是通過接口通信的,同時采用了與平臺無關的XML作為傳輸數據的載體。所以各構件可以在各種機器、平臺上運行,其主要特征有:
1)自治性。裝備保障數據集成平臺通過元數據庫中的存儲全局數據源、局部數據源以及它們之間的映射關系,使得對全局數據庫的操作轉化為對局部數據庫的操作,因此,保持原有系統的自治性,在進行數據集成的同時不影響原系統的正常運行。
2)通用性。通過XML及其相關技術(XQuery、XML、Schema等),裝備保障數據集成平臺可廣泛集成不同數據格式的數據源,同時各數據源只需建立與平臺相對應的數據接口即可,大大減少了接口的數量,在很大程度上提高了平臺的通用性。
3)實時性。通過裝備保障數據集成平臺進行的數據操作實際上是通過網絡對分布在不同位置的局部數據源進行的,同時由于保持了局部數據源的高度自治,因此,數據操作是實時進行的,得到的數據也是最新的。
4)易更新。裝備保障數據集成采用數據集成平臺技術,中介器和包裝器全部位于集成平臺上,如果數據源發生變動,只需在集成平臺上對中介器和包裝器進行更新即可。
不足之處是裝備保障數據集成平臺每次在進行數據操作時都需要連接數據源,有時還會出現網絡延時等現象,這些都會對性能產生影響。但隨著計算機硬件、網絡環境的改善以及DBMS的不斷升級,裝備保障數據集成平臺的性能也會不斷提高。
裝備保障數據集成平臺利用XML和Web Service技術解決了裝備保障數據點多面廣、數據異構等問題,為裝備保障指揮決策提供強有力的數據支撐。但數據集成只是裝備保障信息化建設的一部分,如果沒有通信集成和應用集成,數據集成也很難發揮其應有的功效。
[1]史萬江,吳健.一種異構數據集成框架及關鍵技術研究[J].微處理機,2008(4):167-173.
[2]方長江.異構數據源集成技術在軍事中的應用研究[D].濟南:山東大學,2007.
[3]李軍懷,周明全,耿國華,等.XML在異構數據集成中的應用研究[J].計算機應用,2002,22(9):18-24.
[4]孫長俊,周曉峰.基于Web Services的企業應用集成模型[J].計算機技術與發展,2006,16(5):209-210.
[5]佘名高,賈秀峰,林坤江,等.基于Web服務的企業應用集成[J].計算機技術與發展,2007,17(5):55-58.
[6]李燁,馮志勇.基于XQuery的數據集成研究[J].微處理機,2008(3):120-122.
[7]尚蕾,孫志輝.基于XML的異構數據集成系統的查詢處理[J].計算機工程,2005(3):121-123.
[8]W3C.Web Services Architecture[EB/OL].[2004-02-01].http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/.
[9]徐宗昌.保障性工程[Z].北京:兵器工業出版社,2002.
[10]愈康倫.裝備保障系統運行理論研究[D].石家莊:軍械工程學院,2002.