摘 要:研究高校綜合管理過程中存在的信息孤島問題,并提出相應的解決方案,以及使用的關鍵技術。重點分析數據庫數據到XML文檔數據轉換的方法、XML文檔存儲模式以及將XML查詢轉化為SQL的查詢轉換問題。該方案簡單易行,既實現了應用系統間的數據交換與共享,同時也保留了已有的信息資源,保證了各部門仍然可以按照原來的方式運行。
關鍵詞:XML; 信息集成; JDOM; Dietz; Xpath
中圖分類號:TP311文獻標識碼:A
文章編號:1004-373X(2010)08-0056-03
Research of University Information Integration Platform Based on XML
MA Feng-mei
(Ankang University, Ankang 725000, China)
Abstract:The information isolated islands issues existing in university inegrated management progress are studied. The corresponding solutions and key technologies are presented. The method of converting the database data into XML text file, the pattern of storing XML documents, and the problem of query transformation of converting XML query into SQL query are analyzed. The method is easy to be conducted. The data exchange and share between the application systems are realized, andat the same time the existing information resources are kept to ensure that all the departments are still operating according to the original approach.
Keywords:XML; information integration; JDOM; Dietz; Xpath
0 引 言
隨著社會的發展,商業環境已經進入了電子商務“隨需應變”的時代。為提升高校的綜合管理能力,更有效、更方便地管理教職工、學生信息,為廣大師生服務,各高校都在加快校園信息化建設,其中一個關鍵的工作就是將學校當前采用的各類信息管理系統以及各類數據進行有效的集成。目前,許多高校都已經開始了這方面的努力,然而由于高校內各單位、各部門的信息化進程不一,開發工具和平臺的差別也很大,在開發時缺少統籌協調,特別是早期網絡不太完善時開發的系統,甚至根本沒有考慮過數據共享的問題,故而形成了一個個的信息孤島。這一類系統使用時間長,數據量大,數據遷移成本高。在統一實現校園信息化過程中,如何利用現有系統數據并實現信息系統間的數據共享,對節省開發費用,提高系統運行效率和性能,進而提高管理水平具有十分重要的意義。
針對上述問題,合理的解決辦法是將原有系統集成為有機的整體,提供給用戶一個統一的視圖,這樣才能從這些資源數據中獲取人們所需要的信息[1-2]。因而為各種各樣的數據提供某種統一的表示方法無疑是解決問題的關鍵,這就要求能找到一種標準、開放的數據結構來表示數據信息。XML的出現無疑為這些異構數據源的集成帶來了新的希望。XML是互聯網聯合組織(W3C)設計并推薦的新一代標記語言,是SGML的一個優化子集。它以一種開放的自我描述方式定義數據結構,在描述數據內容的同時能突出對結構的描述,從而體現出數據之間的關系。
1 系統實現方案
1.1 高校信息系統的需求分析
高校的各個部門之間是有緊密聯系的,各個部門的數據之間存在著很多的關聯。就教務處而言,其與財務處、人事處、學工處等多個部門有著數據的交換與共享[3]。另外,高校與高校之間、高校與國家管理部門之間也需要信息共享。
1.2 基于XML的高校信息集成系統架構
該系統的最終目的是要實現高校各應用系統中異構數據的交換集成,所以必須提供一種統一的數據轉換模式。由于XML具有與數據庫相似的結構化特征,同時具有平臺無關性、簡單、靈活等優點,所以該平臺基于XML構建。
在網絡環境應用中,以高校的數據交換區為核心,建立信息交換集成平臺,作為數據傳輸通道,其中所有高校部門間需交流的信息都以XML數據文件的形式存儲在數據交換區,進而實現不同部門間信息的發布、獲取、協商及交換等功能[4-5],如圖1所示。另外,需要建立專用數據庫統一管理這些XML數據文件。各部門或各部門應用系統間,就是通過該信息交換集成平臺,將可通過轉換接口生成標準結構XML數據文件的各異構數據源聯系起來,從而實現了數據的集成和共享。
圖1 應用實現框架
在該系統中,采用了三層結構。其中,數據庫層是部門已經采用的數據庫;接口層主要完成從數據庫中導出數據,XML文檔;XML層則用于為高校各部門之間、高校與互聯網之間交換信息。
2 實現的關鍵技術
2.1 數據庫數據到XML文檔的轉換
對于低層各部門的異構數據,需要統一轉換為XML文檔并保存在數據交換區,從而滿足其他部門對資源的共享。在此,僅研究將Micorsoft SQL Server數據庫存儲的數據用JDOM轉換為XML文檔[6]。首先,利用JDOM接口建立與數據庫的連接,然后從JDOM接口中獲取數據庫中表的基本信息及其表中各字段信息,之后利用JDOM中的Element類建立根元素、元素及各節點元素,接著將根元素用Document類植入到文檔中。具體的實現語句如:Document doc=new Document(root)(這里假設root為根元素),用Element類中的setText方法修改各節點元素的值;用addContent方法添加各節點元素到元素,最后利用JDOM實現XML文檔格式的控制。
2.2 基于Dietz編碼的XML關系數據庫存儲
雖然XML十分適合保存Web上的半結構化信息,但由于XML采用的是基于文件的管理機制,存在容量大,管理困難的缺點,所以必須將數據交換區的大量XML文檔存儲在關系數據庫中,這樣可以充分利用關系數據庫在處理數據和數據管理等方面已有的一些成熟功能。
在XML文檔中的元素存在有父子關系,因此就需要對元素進行編碼,以反映這些父子關系,并將這些編碼保存在關系表中。這里使用對元素進行Dietz編碼來反映元素之間的父子關系。
2.2.1 Dietz編碼規則
Dietz編碼是P.F.Dietz\\提出的。它的編碼規則是XML文檔可以表示為一個樹型結構,樹T中的每一個結點被賦予一個先序遍歷序號和后續遍歷序號的二元組
。由于樹T中的一個祖先結點u在先序遍歷(后序遍歷)中必然出現在其后裔結點v之前(之后),因此,結點u和v是祖先/后裔關系,當且僅當pre(u)一個XML文檔樹的先序遍歷等價于它的文檔順序,即如果對文本形式的XML文檔進行順序存取,則一個元素被訪問的順序就是它們先序遍歷的序號;反之,XML文檔的文本能夠以先序遍歷它的文檔樹的形式進行重構。
2.2.2 產生的關系模式
產生的關系模式如下:
Document(DocumentID,DocumentName)
Element(DocumentID,ElementPre,ElementPost,TagName,ParentPre,ParentPost)
Attribute(DocumentID,AttributeID,ElementPre,ElementPost,AttributeName,AttributeValue)
Text(DocumentID,TextID,ElementPre,ElementPost,TextContent)
表Document存儲的是數據庫中保存的XML文檔的文件名,該表的主鍵為文檔標號(DocumentID)。表Element存儲的是XML文檔中的元素,屬性ElementPre和ElementPost分別表示元素的先序和后序編碼。由于XML文檔中元素最多有一個父元素,因此屬性ParentPre和ParentPost分別表示父元素的先序和后序編碼;屬性TagName代表元素的標記名稱,該表的主鍵為DocumentID,ElementPre,ElementPost。表Attribute存儲的是XML文檔中屬性結點,屬性AttributeID表示每個XML文檔中屬性編號。根據XPath數據模型中對于屬性結點的描述,表中還要保存該屬性所從屬的元素信息,即需要保存元素的先序和后序編碼。表Text存儲的是XML文檔中的文本結點,表中的屬性分別表示文本編號、父元素的先序和后序編碼及文本內容。
2.3 關系模式下轉換XML文檔查詢
這里把數據交換區的XML文檔映射為關系數據,利用經典的關系數據庫系統來管理XML數據。所以,在處理XML的查詢時,需將它轉換為等價的SQL語句。
2.3.1 XPath查詢
XPath路徑語言(XML Path Language,XPath)是W3C關于查詢部分XML文檔的通用標準,是為了定位XML文檔或其他文檔而設計的。XPath把整個XML文檔看成一個節點樹,節點可能有多種類型,如元素節點、屬性節點和文本節點等。XPath是一個在XML樹中選擇節點的基本機制[9-10]。
2.3.2 轉換XPath路徑表達式為SQL查詢
將一個XPath路徑表達式轉換為一個SQL查詢分為兩個步驟來實現。第一步是將一個XPath路徑表達式轉化為一個圖的形式進行表示,稱為Xpath查詢圖(記為XPathGraph)。XPathGraph是XPath路徑表達式的中間表示形式;第二步是根據XPathGraph來產生SQL查詢,XPathGraph中的結點和邊用來生成SQL查詢子句。
3 結 語
為了充分利用高校已有的信息資源,需要在異構業務系統之間建立統一的信息交換平臺。本文在分析研究高校信息數據管理現狀的基礎上,提出了數據交換與共享的可行性方案。使用XML作為信息交換的載體,為學校各部門提供了通用、廉價和高效的信息交換平臺,也提高了高校綜合管理效率。
參考文獻
[1]陳樺, 麻風梅. 基于XML的異構數據集成模式的研究[J]. 微電子學與計算機, 2009(1): 137-139.
[2]顧天竺, 沈浩, 陳曉紅, 等.基于XML的異構數據集成模式的研究[J]. 計算機應用研究, 2007(4): 94-95.
[3]劉愛華. Web Services在高校信息集成化中的應用研究[J]. 現代計算機, 2008(3): 109-110.
[4]陳敏. 基于XML的高校信息系統數據集成與交換[J]. 中國教育技術裝備, 2008(18): 40-41.
[5]趙俊鋒.基于XML的異構數據集成方法研究與實現\\. 長沙: 國防科學技術大學, 2005.
[6]趙曉, 陳樺. 一種實現數據庫數據到XML文檔的轉換方法[J]. 西安工業大學學報, 2007(4): 398-399.
[7]王剛.關系數據庫中存儲和查詢XML文檔的設計與實現\\. 天津: 天津師范大學, 2007.
[8]萬常選.XML數據庫技術\\. 北京: 清華大學出版社, 2005.
[9]李靜. 基于XPath的XML查詢重寫算法[J]. 計算機工程, 2009(5): 83-84.
[10]王競原, 胡運發, 葛家翔. XPath中的文本查詢研究\\. 計算機工程, 2007, 33(11): 70-72.