喬冠禹 劉冰峰 薛永奎
摘 要:在試驗鑒定與數據資源建設中,美國針對各相關領域完成了一系列元數據標準的制定,但這些在實際應用中仍存在較多問題。為此,美國靶場指揮官協會基于XML標準格式語法、XML樣式指南等標準,結合領域內各個機構間的約定與實際應用需求,制定了一系列對基于XML的元數據文件進行自動化測試的方式方法,有效避免了問題的發生,對于促進各靶場間的互聯、互通、互操作具有重要意義,可以為我國試驗鑒定領域數據工程建設提供重要參考。
關鍵詞:試驗鑒定;元數據;XML;自動化測試
中圖分類號:TP311 文獻標識碼:A 文章編號:1671-2064(2019)15-0053-04
0 引言
當前,試驗需求的不斷增長和信息技術的快速發展,指引著裝備試驗鑒定領域的方式方法不斷向數字化、網絡化、信息化邁進。[1]試驗和基于信息系統的體系運用能力的考核和檢驗,更加強調數據跨領域和跨機構的應用。為此試驗機構內部以及相互間互聯互通和互操作的試驗需求對數據工程提出了相應要求。美國等發達國家尤其重視對于試驗鑒定方法的創新,并不斷在實踐中進行完善和發展。近年來,在試驗鑒定領域,元數據與其相關技術受到高度重視,大量的元數據標準應運而生,其科學性與可讀性已經開始對試驗鑒定效果產生重要影響。各試驗鑒定機構制訂的元數據標準涉及范圍廣、格式雜、含義亂、冗余多等問題,直接制約了元數據技術在試驗鑒定領域的進一步應用與發展。為此,美國基于XML標準格式語法、XML樣式指南等,結合領域內各機構間的相關協議與實際應用需求,制定了一系列對基于XML的元數據實例進行自動化測試的方法,對于促進各試驗機構間的互聯、互通、互操作起到了積極作用。本文對美國在試驗鑒定元數據自動化測試方法研究的概況進行簡要介紹,以期為我國試驗鑒定領域數據工程建設提供參考與借鑒。
1 基于XML實現的元數據標準概述
美國靶場指揮官協會(RCC)認為,今后的試驗鑒定活動將高度依賴元數據,并為此制定了一系列XML格式元數據的標準,來支持對元數據進行模塊化地開發運用,使得各項試驗鑒定活動能夠根據實際情況,來混合和匹配來自不同領域的元數據,能夠按需提取所需的部分元數據,保證了元數據的可重用性和互操作性。[2]
美國試驗鑒定領域的現行元數據標準包括元數據描述性語言(MDL)、遙測數據傳輸標準(TMATS)、數據展示標注語言(DDML)、儀器硬件抽象語言(IHAL)等,它們基于相同的標準制訂,各自涵蓋了一定的試驗鑒定領域,并闡明了試驗鑒定領域內的一些重要概念。在理想的試驗活動中,試驗鑒定系統和各個子系統將根據實際需求,從上述標準中進行抽取,并與其各自業務相結合。例如,遙測地面站可以選取并使用與數據測量(MDL)、數據打包(MDL和TMATS XML),以及數據展示(DDML)方面的標準;而儀器儀表工程師的系統則需要用到與儀表硬件(IHAL)、數據測量(MDL)相關的標準,以及定義了儀表硬件和測量活動之間關系的標準。
1.1 XML標準
隨著Web技術的飛速發展,信息交換的方式發生了深遠變化,要求信息具有可擴展的語言描述能力和基于語義的信息搜索特征。為此,XML(eXtensible Markup Language)標準應運而生。XML標準是由萬維網聯盟(W3C)制定的一種規范,其初衷是提供一種機器可讀的描述性文檔。[3]XML在互聯網上廣泛普及,并能夠描述包含web服務和試驗鑒定元數據在內的高度復雜的數據結構。圖1為TMATS XML文件的片段。
1.2 TMATS、IHAL、DDML、MDL等標準
遙測數據傳輸標準(TMATS)提供了完整描述從被測裝備傳輸或記錄的數據所需信息的通用定義。TMATS也是信息源(通常是儀器測量組)和用戶(通常是測試機構)之間的信息交互媒介。
儀器硬件抽象語言(IHAL)標準制訂了一種基于XML的格式。IHAL能根據儀器硬件的當前配置和可能配置來描述儀器硬件的屬性。[4]
數據顯示標記語言(DDML)標準制訂了數據顯示之間的通用的內部通信語法。DDML標準包了含各個設備供應商的數據顯示驅動,并提供了通用的接口。DDML標準具有可重用性和可擴展性,便于在未來按需進行擴展。[5]
元數據描述語言(MDL)標準制訂了在遙測系統組件之間交換配置信息的通用交互語言,提供了用于描述遙測系統中組件配置以及其邏輯關系、物理關系的必要手段。標準中,MDL語法定義了詞匯表和語法結構,而MDL語義定義了其內涵。
2 XML元數據的自動化測試方法
盡管美國靶場指揮官協會已經建立了試驗鑒定元數據的一系列標準,但在實際應用中,仍然存在著元數據不符合標準,甚至因為自身語法、格式、約束性等一系列方面的錯誤導致元數據無法解析,甚至數據丟失的問題。對此,靶場指揮官協會依據XML標準格式語法、XML樣式指南、各項標準,參照試驗鑒定領域各個領域內各個機構間的約定和靶場試驗中的本地實際應用要求,制定了一系列對元數據文件進行自動化測試的方式方法,有效避免了問題的發生。
2.1 元數據文件語法測試
2.1.1 目的
該項測試用于確定元數據文件是否符合標準XML模式定義(XSD),即其是否存在語法錯誤。若未通過此項測試,元數據文件很可能無法用于后續處理。
2.1.2 測試環境
圖2為執行語法測試的環境。
測試環境包括:(1)標準的XML模式定義(XSD);(2)元數據文件;(3)開發環境(C,C++,Java等);(4)符合XML Simple API或所選編程環境的文檔對象模型(DOM)的XML解析庫。可以使用Apache Xerces項目、XML綁定的Java體系結構(JAXB)和xmllint工具來實現。
2.1.3 測試方法
測試的步驟如下:
(1)初始化開發環境;(2)根據庫的開發指南或應用程序編程接口(API)編寫測試程序代碼,以使用XML解析庫。使用XML解析庫來驗證元數據文件是否符合XSD。該步驟輸出測試報告,來描述XML解析庫返回的錯誤或警告信息;(3)編譯并構建測試程序;(4)運行測試程序,根據庫的指令(包括相關配置參數)將元數據文件和標準的XSD編碼加載到XML解析庫中;(5)觀察測試應用程序的輸出,記錄錯誤和警告。
2.2 樣式指南符合性測試
2.2.1 目的
該項測試用于確定XSD或元數據文件是否符合靶場指揮官協會發布的XML樣式指南。未通過此測試說明被測元數據文件可讀性、可維護性較差。此測試適用于XML格式的元數據文件以及XSD。
2.2.2 測試環境
圖3為執行樣式指南符合性測試的環境。
該項測試的測試環境包括:(1)要測試的標準或元數據文件的XSD;(2)開發環境(C,C ++,Java等);(3)與開發環境兼容,用于執行樣式指南規則的規則引擎。可以選擇開源規則引擎;(4)可由所選規則引擎讀取和執行的樣式指南規則編碼。
2.2.3 測試方法
測試的步驟如下:
(1)初始化開發環境;(2)根據規則引擎開發指南或API編寫測試程序。此程序將元數據文件或XSD以及樣式指南規則編碼加載到規則引擎的內部對象中,然后調用相應的規則引擎API,以根據編碼的樣式指南規則對元數據文件或XSD進行驗證。該步驟輸出測試報告,來描述規則引擎驗證返回的錯誤或警告信息;(3)編譯并構建測試應用程序;(4)運行測試程序,根據庫的指令(包括相關配置參數)將元數據文件或XSD以及樣式指南規則的編碼加載到規則引擎中;(5)運行測試程序以根據樣式指南規則的編碼評估元數據文件或XSD;(6)觀察測試程序的輸出以識別錯誤和警告。
2.3 領域內各個機構間約定測試
2.3.1 目的
該項測試用于測試元數據文件是否符合由領域內各個機構建立的約定。機構包括標準委員會、靶場、測試項目組等。約定包括數據的命名、屬性長度(如數據源ID限制為不超過32個字符),以及標準中記錄的非語法規則(如當存儲介質是磁帶時,允許磁帶寬度作為屬性)等。未通過此測試表明被測元數據文件可讀性較差,可能占用過多的內存,并因違反各個機構間建立的一系列規則和約束,并且可能無法為所有機構的軟件所讀取,因而不能達到預期用途。此測試適用于元數據文件。
2.3.2 測試環境
圖4為執行領域內各個機構間約定測試的環境。
該項測試的測試環境包括:(1)元數據文件;(2)開發環境(C,C ++,Java等);(3)與開發環境兼容,用于執行領域內各個機構間約定的規則引擎。可以選擇開源規則引擎;(4)可由所選規則引擎讀取和執行的領域內各個機構間約定編碼。
2.3.3 測試方法
測試步驟如下:
(1)初始化開發環境。(2)根據規則引擎開發指南或API編寫測試應用程序。此應用程序將元數據文件和領域內各個機構間約定的規則編碼加載到規則引擎的內部對象中,然后調用相應的規則引擎API,以根據編碼的領域內各個機構間約定規則來對元數據文件進行測試。該步驟輸出測試報告,來描述規則引擎驗證返回的錯誤或警告信息;(3)編譯并構建測試程序;(4)運行測試程序,根據庫的指令(包括相關配置參數)將元數據文件和領域內各個機構間約定的編碼加載到規則引擎中;(5)運行測試程序以根據社區約定的編碼評估元數據文件;(6)觀察測試程序的輸出以識別錯誤和警告。
2.4 本地實際應用測試
2.4.1 目的
該項測試用于驗證元數據文件是否滿足本地實際應用的要求。靶場測試項目的要求包括硬件兼容性要求、物理約束、業務規則,配置規則等。未通過此測試說明該文件與靶場實際應用的要求不相符,無法滿足靶場業務需求。此測試適用于元數據文件。
2.4.2 測試環境
圖5為執行本地實際應用測試的環境。
該項測試的測試環境包括:(1)元數據文件;(2)合適的開發環境(C,C++,Java等);(3)與開發環境兼容,用于執行的規則引擎。可以選擇開源的或其他可以由政府和其他利益相關者免費獲得的規則引擎;(4)所選規則引擎可以讀取和執行的各項實際應用需求編碼。
2.4.3 測試方法
測試步驟如下:
(1)初始化開發環境;(2)根據規則引擎開發指南或API編寫測試程序。此程序將元數據文件和本地實際應用的要求的規則編碼加載到規則引擎的內部對象中,然后調用相應的規則引擎API,以根據編碼的本地實際應用的要求來對元數據文件進行測試。而后該步驟輸出描述規則引擎驗證返回的錯誤或警告的測試報告;(3)編譯并構建測試程序;(4)運行測試程序,根據庫的指令(包括相關配置參數)將元數據文件和需求的編碼加載到規則引擎中;(5)運行測試程序以根據需求的編碼評估元數據文件;(6)觀察測試程序的輸出以識別錯誤和警告。
2.5 回歸測試
2.5.1 目的
回歸測試通過對新引入的XSD、樣式指南編碼、領域內各個機構間約定編碼以及實際應用要求的編碼等進行測試,來確定它們是否引入了新的錯誤,或導致已有代碼、元數據出現錯誤。此外,還對XSD、樣式指南編碼、領域內各個機構間約定編碼、實際應用要求編碼對開發環境、XML解析庫和規則引擎的兼容性進行測試。未通過此測試說明對元數據的各項更改引入了回歸錯誤,可能與先前的XSD實例、領域內各機構間約定編碼及本地實際應用要求無法兼容。此測試適用于XSD或元數據文件。
2.5.2 測試環境
圖6為執行回歸測試的環境。
該項測試的測試環境包括:(1)要測試的XSD或元數據文件;(2)領域內各個機構間要求支持的開發環境(C,C++,Java等);(3)領域內各個機構間要求支持的所有XML解析庫,符合XML Simple API或與編程環境兼容的文檔對象模型(DOM);(4)一套標準編碼規則(所選規則引擎可以讀取和執行的樣式指南規則、領域內各個機構間約定、本地實際應用要求,以及標準XML編碼規則);(5)規則引擎。
2.5.3 測試方法
該項測試方法使用標準編碼規則來驗證規則引擎和其他工具是否協同工作,并可適用于不同開發環境、XML解析庫、樣式指南規則引擎、領域內各個機構間約定的規則引擎和需求規則引擎的組合。
(1)初始化開發環境;(2)編寫測試程序代碼,以根據規則引擎開發指南或API編寫測試程序來使用規則引擎和XML解析庫。該測試程序包括3.3,3.3,5.3和6.3節中描述的測試應用程序的功能;(3)編譯并構建測試程序;(4)運行測試程序,根據庫的指令(包括相關配置參數)將每個元數據文件和標準的XSD編碼加載到XML解析庫中;(5)觀察測試程序的輸出以識別錯誤和警告;(6)運行測試程序,根據庫的指令(包括相關配置參數)將每個元數據文件和XSD以及樣式指南規則的編碼加載到規則引擎中;(7)運行測試程序以根據樣式指南規則的編碼評估元數據文件和XSD;(8)觀察測試程序的輸出以識別錯誤和警告;(9)運行測試程序,根據庫的指令(包括相關配置參數)將元數據文件和領域內各個機構間約定的編碼加載到規則引擎中;(10)運行測試程序以根據領域內各個機構間約定的編碼評估元數據文件;(11)觀察測試程序的輸出以識別錯誤和警告;(12)運行測試程序,根據庫的指令(包括相關配置參數)將元數據文件和本地實際應用要求的編碼加載到規則引擎中;(13)運行測試程序以根據需求的編碼評估元數據文件;(14)觀察測試程序的輸出以識別錯誤和警告。
3 啟示與建議
美國在試驗鑒定領域建立了一系列元數據標準體系,并圍繞標準體系,依據試驗鑒定活動的實際情況,為實現元數據有效應用,實現數據增值增效,開發了元數據自動化測試方法,為后續試驗鑒定工作開展提供了有力支持,有效提升了數據管理工作效率,保證了數據共享和應用。其有益經驗和成功做法,也對我國試驗鑒定領域數據工程建設具有重要的借鑒意義。
3.1 建立標準時注重調研,統籌各方
試驗鑒定領域范圍極為廣泛,覆蓋了組織指揮、環境構設、測試測量、分析評估、仿真建模、基礎保障等諸多領域。為此,在建立標準時,應當廣泛調研各個領域的實際需求,統籌規劃,在統一的元數據描述方法基礎上,規劃元數據標準體系,并針對各領域實際,有針對性的制定領域級標準,從而形成相對完善的元數據標準體系。
3.2 使用標準時結合實際,注意測試
盡管已經制定了統一的元數據描述方法,但在試驗鑒定中往往需要結合來自多個領域的元數據據標準,并且在標準使用過程中需要依據實際情況來設定元數據。因而在元數據文件生成后,應當根據總體和領域級標準,以及特定使用需求進行檢驗。保證數據標準適用性和有效性,保證數據的可讀性、真實性、可用性。
3.3 注重配套設施建設,發揮元數據價值
元數據建設工作中,應當更加注意軟硬件配套設施的建設。應當在梳理需求、建立標準的同時,構建標準化、可擴展的元數據及數據測試系統、管理系統等,以支持元數據的標準化管理和有效拓展,不斷提高數據標準的可用性。
參考文獻
[1] 周杰韓,曾慶良,謝金崇,等.基于XML的互聯網信息資源描述及其應用研究[J].計算機工程與應用,2002(03):65-67.
[2] Range Commanders Council (RCC), Document 118-17 Volume 6, AUTOMATED TEST METHODS FOR XML METADATA[S],2017,12.
[3] Range Commanders Council (RCC), Document 125-15, XML STYLE GUIDE[S],2017,7.
[4] Range Commanders Council (RCC), Document 128-17, INSTRUMENTATION HARDWARE ABSTRACTION LANGUAGE (IHAL) HANDBOOK[S],2017,1.
[5] Range Commanders Council (RCC), Document 127-17, DATA DISPLAY MARKUP LANGUAGE (DDML) HANDBOOK[S],2017,1.