程亚安
国网信通股份公司安徽继远软件有限公司 安徽 合肥 230088
XMI是由W3C(万维网联盟)开发的一种CI17标记语言,用于描述数据文件中数据的组织和布局。XMI II是为存储和交换数据而设计的,它提供了一种描述和交换结构化数据的统一方法,即自描述XMI 跨越操作系统,不受编程语言的限制,实现了不同系统间的数据交互,是物联网设备配置文件的理想选择。
XMI二文档是一种树形结构。他有且只有一个根元素,该元素是其他所有元素的父元素。所有元素均可拥有子元素、文本内容和属性,元素用于定义配置项,属性用于添加额外描述信息,文本内容存储实际的配置参数。
以一个具有普遍代表意义的配置为例,包括3种常见的类型参数[1]:整数、浮点和字符串。在配置中,“iteml ~ item3”定义了3个参数的名称,第一个参数是整数,第二个参数是浮点数,第三个参数是字符串。参数值为“000,10.00,null”。相应的XML文件如下:
当配置使用二进制表示时,约定:3个参数按“item1 ~item3”的顺序组织,第一个参数用带符号整数(int)表示。第二个参数由单精度实数类型表示,第三个参数由单精度实数类型表示,并由4字节字符数组表示。相应的二进制配置的内容如表1所示。
表1 二进制配置示例表
在上面的示例中,XML配置为171字节(包括不可见的选项卡和回车),二进制配置为12字节;XML配置易于阅读,但机器识别更为复杂;二进制配置可以通过访问地址直接访问,但必须参照上述约定进行解释;XML配置和二进制配置可以相互转换。
在传统的二进制配置方法中,首先需要开发一个专有的配置工具,将配置规则固化到该工具中,然后使用配置工具生成二进制配置。对于XML设置,您只需要使用普通的文本编辑工具来直接编辑文件。
利用XML和二进制配置各自的优点以及二者相互转换的特点,提出了一种基于XML的二进制配置管理方法[2]。通过文本编辑工具生成XML配置,将其与相应的XML配置规则一起导入统一的配置工具,生成二进制配置,并将二进制配置下载到Power Internet计算机上运行。相反,在维护配置时,从设备中提取二进制配置,将其与相应的XML配置规则一起导入统一配置工具,生成XML配置,然后通过文本编辑工具进行维护,或执行更完整的配置信息生命周期管理。
该方法的特点是二进制配置和XML配置之间存在一一对应关系;物联网电源设备只需分析制造商定义的二进制配置,配置内容包括所需的或行业标准的配置项和制造商的设备专利配置项;XML配置用于标准化配置和全生命周期管理。
该方法的关键是实现XML配置规则和统一的配置工具。XML配置规则是配置的一部分,不同的配置会产生不同的配置规则。统一配置工具与特定配置项的内容无关。它只根据XML配置规则对配置进行解析,在XML配置和二进制配置之间进行一对一的转换,可以应用于所有设备的不同配置。
XML配置规则是实现XML配置与二进制配置相互转换的桥梁。合理设计XML配置规则和XML配置可以生成任何结构的二进制目标配置[3]。XML配置规则包括三个元素:配置元素的结构和顺序;XML配置中配置元素的元素名称;以及二进制配置中配置元素的数据类型。
XML配置规则采用XML文件格式。根元素称为
XML配置规则的示例如下。
由“type”属性定义的数据类型如表1所示,包括几种常见的数据类型。除了“str-n”,其他数据类型都是基本类型。str-n是一种结构类型,由多个“char”类型组成,它们表示一个“length”字符串。
表2 数据类型定义
统一配置工具是用QT开发的,可以在Linux或Windows维护工作站上实现。Qt的QtXML模块是一个成熟的XML数据处理套件,它为处理XML文档中的数据提供了三个不同的应用程序编程接口:QXMLStream Reader、DOM、SAX。其中,DOM(Document Object Model)可以按任意顺序遍历XML文档的表示树,实现了多路径分析算法,成为作者的首选。
从XML配置转换为二进制配置的过程如图1所示:统一配置工具遍历XML配置规则树的根节点
图1 XMI.配置转换二进制配置流程
如图,parseElementdo函数(element.r,element.c)通过
本理论基于XML生成二进制配置的管理方法,不仅利用了XML便于管理和信息交换的特点,而且保证了物联网设备能够快速方便地进行分析。这样解决了配置工具的维护问题。当配置内容较少时,可以直接使用XML配置;当配置内容较大时,使用该方法的效果更为明显。