乔冠禹 刘冰峰 薛永奎
摘 要:在试验鉴定与数据资源建设中,美国针对各相关领域完成了一系列元数据标准的制定,但这些在实际应用中仍存在较多问题。为此,美国靶场指挥官协会基于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.