韋樂
杭州電子科技大學(xué)信息與控制研究所 浙江 310018
隨著計算機技術(shù)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,許多行業(yè)和機構(gòu)都進行了信息化建設(shè)。行業(yè)之間和行業(yè)內(nèi)部都要進行數(shù)據(jù)共享和交換。由于各行業(yè)、各部門信息化建設(shè)水平存在著不同程度的差異,各自的業(yè)務(wù)應(yīng)用系統(tǒng)在設(shè)計中沒有統(tǒng)一的規(guī)范,數(shù)據(jù)存儲在不同的數(shù)據(jù)庫操作系統(tǒng)中(如 sql server,Oracle),使得各部門在數(shù)據(jù)共享和交換中存在困難,形成一個個的“信息孤島”,嚴重影響了各部門間的信息交互。數(shù)據(jù)的高效共享和交換已成為信息化建設(shè)水平的一個重要標(biāo)志,所以通過設(shè)計數(shù)據(jù)交換引擎來實現(xiàn)各部門之間的數(shù)據(jù)共享交換就顯得十分迫切。
XML(可擴展標(biāo)記語言)是由互聯(lián)網(wǎng)聯(lián)合組織發(fā)布的一種標(biāo)準(zhǔn),是從SGML派生言,XML是結(jié)構(gòu)化標(biāo)記數(shù)據(jù),實現(xiàn)了文檔結(jié)構(gòu)化的語言規(guī)范,采用 DTD文檔類型定義的語言標(biāo)準(zhǔn)。XML語法規(guī)則非常簡單,沒有復(fù)雜的數(shù)據(jù)定義。它提供統(tǒng)一的方法定義數(shù)據(jù)結(jié)構(gòu),這種結(jié)構(gòu)的描述獨立于應(yīng)用程序,描述的是一種能夠通過常用編輯器讀取的文檔。
由于XML的跨平臺、易表義和獨立性的良好特點,使得 XML在數(shù)據(jù)交換中擁有巨大的優(yōu)勢。雖然數(shù)據(jù)源的異構(gòu)性和應(yīng)用操作平臺的差別,使得數(shù)據(jù)交換受到了嚴重限制,但是隨著XML技術(shù)的深入研究和高速發(fā)展,XML已成為數(shù)據(jù)交換的標(biāo)準(zhǔn)和公共語言,XML將在異構(gòu)數(shù)據(jù)交換和應(yīng)用系統(tǒng)數(shù)據(jù)交換中發(fā)揮更大的作用。
異構(gòu)數(shù)據(jù)交換引擎應(yīng)具有與操作平臺獨立性、不受數(shù)據(jù)格式限制和傳輸安全性的要求,基于數(shù)據(jù)格式存在著格式眾多,標(biāo)準(zhǔn)繁雜的特性,數(shù)據(jù)交換引擎的設(shè)計需要實現(xiàn)以下功能:
(1) 數(shù)據(jù)信息展現(xiàn):充分展現(xiàn)數(shù)據(jù)庫中的表、數(shù)據(jù)類型和約束等信息。
(2) 數(shù)據(jù)格式統(tǒng)一:對各種數(shù)據(jù)進行格式統(tǒng)一。
(3) 信息展現(xiàn)服務(wù):交換節(jié)點和規(guī)則等信息的查詢和展現(xiàn)。
(4) 權(quán)限控制:對各個用戶進行權(quán)限限制,在數(shù)據(jù)交換時,用戶只能在自己的權(quán)限范圍內(nèi)操作。
根據(jù)功能要求,通過數(shù)據(jù)交換引擎來實現(xiàn)不同業(yè)務(wù)系統(tǒng)的數(shù)據(jù)交換,基于XML中間件的數(shù)據(jù)交換原理如圖1所示。
圖1 數(shù)據(jù)交換原理圖
根據(jù)數(shù)據(jù)交換高效性、準(zhǔn)確性的要求,交換引擎邏輯結(jié)構(gòu)有數(shù)據(jù)連接層、數(shù)據(jù)處理層和業(yè)務(wù)邏輯層。數(shù)據(jù)交換引擎的邏輯結(jié)構(gòu)圖如圖2所示。
圖2 數(shù)據(jù)交換引擎邏輯結(jié)構(gòu)
2.1.1 數(shù)據(jù)連接層
數(shù)據(jù)連接層是實現(xiàn)底層數(shù)據(jù)庫和數(shù)據(jù)處理層間的連接,它通過數(shù)據(jù)適配器的建立,提供統(tǒng)一的數(shù)據(jù)訪問接口來連接數(shù)據(jù)庫獲取信息。數(shù)據(jù)連接層主要包括數(shù)據(jù)的讀取和存儲。
2.1.2 數(shù)據(jù)處理層
數(shù)據(jù)處理層接收數(shù)據(jù)連接層傳輸過來的數(shù)據(jù),根據(jù)業(yè)務(wù)邏輯層中定義好的映射模式和交換規(guī)則,運用DOM模型對數(shù)據(jù)進行解析,并按XSLT語言對XML文件規(guī)定的樣式轉(zhuǎn)換,最終生成符合交換規(guī)則的XML文件。
2.1.3 業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層由交換規(guī)則庫組成,主要是規(guī)定數(shù)據(jù)交換的規(guī)則。通過與數(shù)據(jù)處理層的交互,確定數(shù)據(jù)處理層在數(shù)據(jù)轉(zhuǎn)換時的轉(zhuǎn)換標(biāo)準(zhǔn)和要求,確保數(shù)據(jù)轉(zhuǎn)換格式的統(tǒng)一性和正確性。
數(shù)據(jù)交換流程如下:首先通過數(shù)據(jù)連接層中的數(shù)據(jù)適配器進行數(shù)據(jù)提取和統(tǒng)一數(shù)據(jù)格式,再由數(shù)據(jù)處理層中的XML處理組件通過業(yè)務(wù)邏輯層中的數(shù)據(jù)交換規(guī)則來對數(shù)據(jù)進行處理,生成符合數(shù)據(jù)交換的XML中間件,最后由數(shù)據(jù)解析器解析,導(dǎo)入目標(biāo)數(shù)據(jù)庫中。整個數(shù)據(jù)交換引擎的體系架構(gòu)如圖3所示。數(shù)據(jù)交換的主要組件是數(shù)據(jù)適配器、XML處理組件、規(guī)則定義庫和管理工具。現(xiàn)在就其具體功能進行介紹。
圖3 數(shù)據(jù)交換引擎體系架構(gòu)
2.2.1 數(shù)據(jù)適配器
通過建立數(shù)據(jù)適配器組件,提供統(tǒng)一的數(shù)據(jù)庫訪問接口來獲取異構(gòu)數(shù)據(jù)庫中的數(shù)據(jù),并且監(jiān)視數(shù)據(jù)庫中的數(shù)據(jù)變化。原始數(shù)據(jù)從數(shù)據(jù)庫提取之后,通過適配器中的操作對象,把原始數(shù)據(jù)生成XML文檔,為下步數(shù)據(jù)處理轉(zhuǎn)換提供數(shù)據(jù)。數(shù)據(jù)適配器的開發(fā)采用 ADO.NET技術(shù),使用其中的DataAdapte和DataSet對象進行操作,獲取和存儲XML文檔。由于數(shù)據(jù)源的異構(gòu)性,要為不同類型的數(shù)據(jù)源提供相應(yīng)的適配器。以關(guān)系數(shù)據(jù)庫中的sql server數(shù)據(jù)庫為例,介紹數(shù)據(jù)適配器的開發(fā)。現(xiàn)有一個名稱為 MyDatabase的數(shù)據(jù)庫,其中一張表為student。主要代碼如下:
2.2.2 XML處理組件
XML處理組件是交換引擎的核心部件。它包括XML轉(zhuǎn)換器、XML封裝器、XML解析器。各組件具體功能如下:
(1) XML轉(zhuǎn)換器:XML轉(zhuǎn)換器先接收從數(shù)據(jù)連接層傳送過來的XML文檔,對其文件的格式進行檢驗,再提取規(guī)則交換庫中數(shù)據(jù)交換的定義和標(biāo)準(zhǔn),并根據(jù)XSLT樣式表設(shè)定XML數(shù)據(jù)轉(zhuǎn)換,使XML轉(zhuǎn)換成標(biāo)準(zhǔn)的格式。
(2) XML封裝器:把格式轉(zhuǎn)換后的XML文件根據(jù)SOAP協(xié)議進行封裝,并在封裝過程中加入相關(guān)屬性,例如源數(shù)據(jù)庫名稱,發(fā)送的數(shù)據(jù)類型等。
(3) XML解析器:使用DOM樹對XML文件進行解析,讀取XML的數(shù)據(jù)信息,然后根據(jù)交換規(guī)則庫中的映射規(guī)則,把數(shù)據(jù)存儲到相應(yīng)的數(shù)據(jù)庫表中。
2.2.3 數(shù)據(jù)交換規(guī)則庫
交換規(guī)則庫是對數(shù)據(jù)交換規(guī)則的管理和存儲,主要包括數(shù)據(jù)導(dǎo)入導(dǎo)出的規(guī)則。首先對源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的表、數(shù)據(jù)項和數(shù)據(jù)類型進行分析,利用XML Schema標(biāo)準(zhǔn)規(guī)定兩個數(shù)據(jù)庫的雙向映射,包括數(shù)據(jù)庫導(dǎo)出形成 XML文件和XML導(dǎo)入到數(shù)據(jù)庫的雙向映射規(guī)則。源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的映射關(guān)系是數(shù)據(jù)交換的基礎(chǔ)。
2.2.4 管理工具
管理工具主要功能是維護、修改交換規(guī)則庫規(guī)則和對數(shù)據(jù)交換的相關(guān)信息進行處理??赏ㄟ^管理工具對 Schema文件進行增加、刪除和修改,從而可對交換規(guī)則進行修改。數(shù)據(jù)交換中的源和目標(biāo)數(shù)據(jù)庫的名稱、類型和地址等相關(guān)信息也是由管理工具進行統(tǒng)一管理。
XML文檔作為各異構(gòu)系統(tǒng)數(shù)據(jù)交換的中間件,擁有極高的效率和靈活性。本文所設(shè)計的數(shù)據(jù)交換引擎以XML技術(shù)為基礎(chǔ),采用三層結(jié)構(gòu),能高效地完成數(shù)據(jù)的提取、轉(zhuǎn)換和交換。此數(shù)據(jù)交換引擎具有良好的擴展性和通用性,為異構(gòu)數(shù)據(jù)交換提供了一種解決方案,為今后設(shè)計功能更為齊全、服務(wù)更為優(yōu)秀的數(shù)據(jù)共享交換平臺奠定了基礎(chǔ)。
[1]吳敏.基于XML的數(shù)據(jù)交換技術(shù)研究[J].科技創(chuàng)新導(dǎo)報.2009.
[2]崇大志.基于元數(shù)據(jù)的電子政務(wù)數(shù)據(jù)交換引擎應(yīng)用研究[D].合肥:合肥工業(yè)大學(xué).2006.
[3]楊劍.基于 XML的異構(gòu)數(shù)據(jù)交換系統(tǒng)的研究與實現(xiàn)[D].重慶:西南交通大學(xué).2005.
[4]何國輝,卿銀波.基于XML的數(shù)據(jù)交換系統(tǒng)設(shè)計[J].計算機工程與設(shè)計.2007.
[5]韓芳,盧海濤.XML與數(shù)據(jù)庫的映射技術(shù)研究[J].云南民族大學(xué)學(xué)報.2006.