摘 要:首先給出基于XML的交互式電子技術手冊(IETM)的概念,介紹XML文檔的存儲格式。在分析XML數據庫模型和Tamino系統框架的基礎上構建以Tamino為核心基于XML的IETM數據庫,詳細闡述該數據庫的結構組成和各模塊功能,并對XML格式的IETM技術文檔類型定義和數據的存儲和檢索進行初探。
關鍵詞:Tamino;XML;IETM;數據庫模型
中圖分類號:TP319,TP392文獻標識碼:B
文章編號:1004-373X(2008)08-103-03
Applicationof Tamino in the Interactive Electronic Technical Manual Based on XML
YU Pengfei,SHI Heping
(Xi′an Communication Institute,Xi′an,710106,China)
Abstract:The concept of the interactive electronic technical manual based on XML is provided at first,and the memory form of XML file is introduced.On the basis of analyzing XML database model and Tamino systematic frame,the model taking Tamino as the core of IETM database based on XML is constructed,structure making up and every module function of this database is explained in detail,and file defined type of IETM technological of XML format and search with the data and visited to the database are discussed simply.
Keywords:Tamino;XML;IETM;database model
XML(eXtensible Markup Language,可擴展標記語言)技術的日趨成熟以及交互式電子技術手冊(Interactive Electronic Technical Manual,IETM)的不斷發展為XML技術和IETM的融合提供了技術支撐,而純XML數據庫Tamino則是XML技術和IETM融合的絕佳橋梁。
1 基于XML的交互式電子技術手冊
20世紀70年代,美軍提出了技術手冊數字化的思想,交互式電子技術手冊(Interactive Electronic Technical Manual,IETM)是其思想的體現。20世紀90年代美國防部為IETM制定了完整的技術規范。目前,IETM已成為各國軍方競相發展的領域,而且在民用大型機械設備上也有廣闊應用前景。在IETM的研發方面,國外發達國家已有一些成熟的IETM創作工具,如美國波音公司的Quill 21,韓國的“先進IETM制作工具”等[1]。但這些工具大多使用SGML文檔存儲數據,由于SGML語法冗長、結構復雜,研制基于SGML的IETM都將耗費大量財力,因此該類IETM只限在美國軍方或大型跨國公司使用。為了降低IETM的開發成本,發展IETM的網絡應用,針對SGML的缺陷,出現了將XML應用于IETM的趨勢。
隨著網絡技術的發展,XML已經成為互聯網環境中數據描述和交換的標準。XML語法簡單,被許多商業軟件支持,具有標記可擴展(用戶可自定義標記)、數據和其顯示樣式分離、強大的超級聯接功能,是一套跨平臺、跨網絡、跨程序語言的數據描述方式,能夠高效地組織大量數據。
所謂基于XML的IETM,就是在IETM中用XML取代SGML來組織和管理數據、構建純XML數據庫、實現IETM技術數據的傳輸和交互。在IETM創作過程中,IETM數據庫設計是關鍵,那么制作基于XML的IETM的關鍵就是構建純XML數據庫。
2 XML數據庫模型
2.1 XML文檔的中心內容
XML文檔可以分為“以數據為中心”和“以文檔為中心” 2種類型:
(1) 以數據為中心(datacentric)
“以數據為中心”的XML文檔著重于文檔中的數據,而非文檔格式,如航班信息、銷售定單、科學計算結果等。這種文檔的數據一般由機器產生,來源于傳統數據庫中的數據。主要應用在電子商務、ERP、EAI等領域,集成不同數據源的數據、交換信息。
(2) 以文檔為中心(documentcentric)
“以文檔為中心”的XML文檔主要是用來表示人類自然語言描述的數據,如電子郵件、書和用戶手冊。這種文檔具有更復雜的結構,一般不是機器自動產生。很明顯,IETM是技術手冊,是“以文檔為中心”的XML文檔。
對于“以數據為中心”的XML文檔,支持XML的傳統數據庫可以方便地將其中的數據抽取,存儲在傳統數據庫中,但對于“以文檔為中心”的XML文檔則顯得力不從心。
2.2 XED和NXD
事實上,XML作為數據交換的標準,更著重于統一數據格式,而不是提供數據庫的特性。因此在XML應用中,數據庫作為數據管理的位置依然沒有改變。
XML數據本身是如圖1所示的樹形結構,不同于關系模型中的二維表結構,這種差別反映在數據庫產品處理XML數據的技術上,形成2大陣營:支持XML的數據庫系統(XMLEnabled DBMS,XED)和 純XML數據庫系統(Native XML DBMS,NXD)。
圖1 XML數據的樹形結構
XED是在原有數據庫基礎上擴展XML支持模塊,完成XML數據和數據庫之間的格式轉換和傳輸。從存儲粒度上,可以把整個XML文檔作為關系數據庫表中一行,或把XML文檔進行解析后,存儲到相應的表格中。為了支持W3C的一些XML操作標準,如XPath,XED提供一些新的原語(如Oracle9iR2增加了一些數據包來操作XML數據等),并優化XML處理模塊。
NXD則出現在XML數據處理領域內,專門為存儲XML文檔設計,也兼有一般數據庫的特性,例如支持事務、并發控制、查詢語言、安全機制,二次開發接口等[2]。惟一的不同之處在于其內部存儲模型是基于XML文檔樹形結構,而非關系模型。采用層次數據存儲模型,保持XML文檔的樹形結構,省掉XML文檔和傳統數據庫的數據轉換過程。相對于XED,具有XML文檔存取無需模式轉換,存取速度快,對格式復雜的XML文檔支持比XED要好,支持大部分最新的XML技術標準等優勢。更利于基于XML的IETM數據庫的構建。
3 基于XML的IETM數據庫在Tamino上的實現
3.1 Tamino數據庫簡介
Tamino由Software AG公司開發的一個純XML數據庫,是NXD的一種[3]。通過使用XML作為存儲的元結構,各種格式(文本、聲音、圖像或視頻等)、各種來源(NXD、現有文檔及RDBMS等各種數據庫系統)的數據,都可以統一的XML格式進行存取。作為一個完全的XML數據庫,Tamino XML Database能保存層次結構的XML文檔而無需將其轉化為關系型、基于表的格式,而是通過基于一個小但極快的XML引擎,直接對XML數據進行存儲、集成和交換。因為不需要額外的層做XML的數據轉化,所以可以獲得高性能和擴展性。
Tamino除了能夠存儲和訪問XML外,還提供了相關的各種組件和機制,例如開放數據庫連接(Open Database Connectivity,ODC)、兼容Unicode、HTTP通信、處理nonXML數據的能力以及強大的XML查詢功能。
3.2 Tamino數據庫的結構功能
Tamino數據庫主要包括5個部分:XML Engine,Tamino XNode,Data Map,Tamino XTension和Tamino Manager。如圖2所示:
圖2 Tamino組成結構
[BT(4+1]3.2.1 [ZK(]Tamino數據庫中的數據組織——XML Engine[BT)]
XML Engine是一個高效的服務器,他允許Tamino將XML對象存儲為其本來面貌(放置在Native XML Data Store中),并可從Native XML Data Store或其他數據源中查詢這些XML對象。他是基于管理員定義在數據映射(Data Map)中的模式處理存儲和查詢。
3.2.2 訪問其他數據庫——Tamino XNode
Tamino XNode的功能是將傳統數據庫中的數據映射為XML結構,為用戶訪問異種傳統數據庫提供接口,用戶可存取散布于多個異質數據,這可包含存儲在數據庫、檔案系統中或有信息傳遞系統等提供的數據。XNode將這些數據展示給應用程序,就好像這些數據來自單一數據庫或服務器一樣。Tamino以統一的XML數據模型提供給XNode,多個數據來源的數據可以表示為互相一致的XML對象。
3.2.3 映射規則——Data Map
Data Map中定義傳統數據庫和XML結構的映射規則[4]。這些模式主要是由管理員定制,包含存儲和查詢及組織生成XML對象的規則。這些模式的制定可以由圖形工具支持并保持其模式樹的正確性。
[BT(4+1]3.2.4 [ZK(]將數據映射到相關的功能—Tamino XTension[BT)]
XTension則是Tamino的擴展功能插件,使用戶可以執行自定義功能。
3.2.5 中心管理器——Tamino Manager
Manager是Tamino的中心管理器,他提供了良好的圖形用戶界面。
[BT(3+1]3.3 [ZK(]以Tamino為核心的基于XML的IETM數據庫模型[BT)]
考慮到IETM技術數據的復雜多樣性和XML在表現某些數據方面存在的局限性,構建基于XML的IETM數據庫應該以Tamino為核心數據庫,同時兼用傳統數據庫。數據庫模型如圖3所示:
圖3 以Tamino為核心的基于XML的IETM數據庫結構
在該數據庫中對IETM技術數據的處理都是以XML文檔作為元數據。其中電子格式文檔、紙質文檔、多媒體文檔等資料經轉換器轉換分別以XML或SGML格式輸入至Native XML Data Store或傳統數據庫。傳統數據庫只對不便于用XML表現的數據進行存儲,具體操作仍由Tamino中的XNode模塊來調用。
3.3.1 DTD和Schema
DTD(文檔類型定義)是W3C為了支持SGML而開發的,他是一套關于標記符的語法規則,其定義了可用在文檔中的元素、屬性和實體,以及這些內容之間的相互關系,指定文檔結構的一系列規則。每個有效的SGML文檔必須指定他對于哪個DTD有效。XML從SGML繼承了DTD。
Schema(模式定義)所起的作用與DTD相同,也是由W3C開發的。與DTD相比,Schema具有如下的幾個優點:
(1) DTD是用一種與XML不同的語法編寫的,而Schema是用一種類XML的語言;
(2) DTD中所有的聲明都是全局聲明,而Schema則既有全局聲明也有局部聲明,應用更具靈活性;
(3) DTD不能對給定的元素或屬性的數據類型定義,而Schema具有一套完整的數據類型系統,他允許對數據類型如整型,時間型或字符串型進行詳細定義。
結合IETM技術數據的復雜多樣性和純XML數據庫Tamino的實際應用情況,選用Schema對XML文檔進行模式定義更有利于IETM技術數據的處理。
3.3.2 文檔類型定義
XML文檔作為該數據庫的元數據,是結構化且有效的XML文檔,因此給不同類型的信息定義相應的XML文檔結構很重要。下面采用Schemas描述XML文檔的結構以及XML文檔中元素、屬性等的數值類型。
該數據庫中信息主要包括:備件信息、技術資料以及故障診斷等。為這一類數據編寫Schema模式文件doc.xsd如下:
3.3.3 存儲及檢索
在該數據庫中,由Tamino內核提供的編程接口中包括2種Mapping函數,其中Mapping In函數用于將XML數據存入Tamino時,由文檔處理器調用;而另一種Mapping Out函數則在從Tamino檢索數據時調用。Tamino X Query使Tamino擁有直接XML檢索和特殊檢索的能力,他是在W3C的X Query標準上實現的,是一種建立在XML標準基礎上的XML查詢語言,可以比X path 1.0等更好地滿足NXD的查詢需求。Tamino X Query查詢語言強大而簡短,可進入任意深度。
查詢的結果是一個結構完整的XML文件。如果查詢返回多于一個的文檔(或者文檔片斷),他們的簡單合并無法返回一個結構正確的XML,因為XML只有一個根節點。為此,Tamino把結果集合包含在一個系統設計的根節點中以保證查詢結果的正確返回。
4 結 語
Tamino能充分挖掘XML文檔對于表達各種數據類型,如關系型、文本、圖片、音頻、視頻等的能力,實現對XML規范數據的有效存儲和管理。
利用Tamino支撐基于XML的IETM數據庫可以高效進行XML格式技術數據的存儲和查詢。誠然Tamino在查詢的效率上還不如傳統的關系數據庫,但可以肯定,Tamino的不斷完善將推動基于XML的IETM不斷走向成熟。[LL]
參 考 文 獻
[1]宋建社,曹小平,曹耀欽,等.裝備維修信息化工程[M].北京:國防工業出版社,2005.
[2]劉剛,喻成.Native XML數據庫的研究與應用[J].微機發展,2005,15(8):6567.
[3]司功閃,王鴻谷,徐捷.以XML為核心的Tamino數據庫的研究與分析[J].計算機工程,2004(16):7879.
[4]孫屏蹇.Tamino在電子病案中的應用[J].醫學信息,2006,19(5):943944.
[5]郝森,朱戰立.對XML文檔結構樹形表示的研究與實現\\[J\\].現代電子技術,2007,30(18):8384,90.
作者簡介 于鵬飛 男,1982年出生,內蒙古集寧人,在讀碩士研究生。主要從事軍事通信裝備信息化管理方面的研究。
時和平 男,1960年出生,山東單縣人,教授。主要從事軍事通信裝備發展與體制方面的研究。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文