APP下载

基于XML的航天测控地面设备运管代理设计

2015-02-22狄彩云李洪磊赵美枝狄卫国

无线电工程 2015年6期

狄彩云,李洪磊,赵美枝,狄卫国

(1.河北远东通信系统工程有限公司,河北 石家庄050081;

2.中国电子科技集团公司第五十四研究所,河北 石家庄050081;

3.邢台职业技术学院,河北 邢台054035;

4.石家庄铁道大学电气与电子工程学院,河北 石家庄050043)



基于XML的航天测控地面设备运管代理设计

狄彩云1,李洪磊2,赵美枝3,狄卫国4

(1.河北远东通信系统工程有限公司,河北 石家庄050081;

2.中国电子科技集团公司第五十四研究所,河北 石家庄050081;

3.邢台职业技术学院,河北 邢台054035;

4.石家庄铁道大学电气与电子工程学院,河北 石家庄050043)

摘要我国航天系统中采用简单网络管理协议(Simple Network Management Protocol,SNMP)构建测控设备统一化监控管理平台。针对采用ASN.1(Abstract Syntax Notation 1)语法管理信息库(Management Information Base,MIB)这种方法,编写地面测控设备MIB信息时容易出错,易读性差的问题,提出采用XML(Extensible Markup Language)语言来描述MIB信息的树状结构,并举例说明地面站设备MIB库转换为XML描述的方法。然后,介绍了运管代理软件处理的消息类型,并详细介绍地面设备运管代理软件的设计方案和软件实现关键技术。仿真试验结果表明,本文提出的方法实现了网管代理的基本功能,并提高了程序维护效率。

关键词简单网络管理协议;管理信息库;可扩展标记语言;运管代理

0引言

我国航天测控事业的不断发展,地面测控设备越来越多,需要构建测控设备统一化监控管理平台。网管中心对地面测控设备的实时监视、控制和管理,采用简单网络管理协议,网管中心作为管理端,可以通过管理协议对作为代理端的地面测控设备,进行统一化管理[1]。

地面测控设备MIB信息一般采用ASN.1语法管理,由于地面测控设备属性复杂,在MIB库建立和维护中,容易出错,一旦MIB库有所调整,地面测控设备的代理程序也要进行相应修改,给程序的维护带来不便。本文提出采用XML管理设备信息和管理信息库的方法和地面测控设备代理软件设计及关键技术,并通过仿真试验,验证了该方法的正确性、高效性。

1基于XML管理MIB

1.1 管理信息库

管理信息库是由ASN.1描述树状结构[2],MIB的叶子节点定义了代理被管理的可查询和设置的参数。管理信息库是由代理者维护的一个信息库,可供管理者通过管理协议访问,通过对这些信息的存取访问,就可以实现地面测控设备的监控、管理。

地面测控设备包含了发射、接收、基带等多个分系统,每个分系统又有若干个分机组成,管理信息库叶子节点很多甚至有上千个,如果用这种方法描述MIB库,编写易出错,易读性差,维护复杂,这就需要找到一种存储管理MIB库的新方法。

1.2 XML

XML即可扩展标记语言,是由W3C(World Wide Wed Consortium)发布的一种关于数据描述和存储的一个标准[3]。XML具有可扩展性和自描述性[4],用户可以自定义标签来描述数据。XML文档内容和结构清晰易懂,非专业人员也易于阅读和使用。XML遵循严格的语法,XML中标记的信息,具有标准的结构化数据处理模型和丰富的解析、封装和传输技术支持,容易地被计算机程序所处理[5]。XML本身呈现一种树状结构,采用XML的DOM树来描述MIB信息的树状结构,结构清晰、维护方便,有利于代理软件实现[6]。

1.3 基于XML的地面测控设备MIB库

地面测控设备MIB变量根据重要程度不同,划分为A、B、C3类变量,各类变量下根据分系统进行分组,分系统细化为具体的分机,分机节点下定义具体的参数。用XML Schema(模式)描述MIB文件的结构,如图1所示。参数用来表示MIB库中的设备状态叶子节点。参数节点包含ID、类型、oid、 名称、trap共5个属性。ID 表示数据元素标识,类型表示MIB变量的数据类型、oid表示MIB变量编码、 名称表示参数名称、trap表示变量是否要发送Trap消息。

定义表1中地面测控设备MIB变量表中的变量,采用ASN.1描述如图2所示。采用XML Schema结构,转换为XML文件的MIB变量如图3所示。从图中可以看出,采用XML描述,可以清晰的体现变量之间的从属关系,具有良好的用户交互体验。

图1 MIB文件的XML Schema结构图

MIB变量编码变量名入口.1A类入口.1.1时频分系统入口.1.1.1频标锁定状态入口.1.1.2B码输入选择入口.1.2发射分系统入口.1.2.1上变频器A入口.1.2.1.1小环检测接收机状态入口.1.2.1.2频踪锁定状态入口.1.2.2上变频器B入口.1.2.2.1小环检测接收机状态入口.1.2.2.2频踪锁定状态

图2 ASN.1描述的MIB文件

图3 XML描述的MIB库

2代理软件设计

2.1 SNMP操作的报文类型

SNMP包含5种SNMP操作的报文类型[7-10]:即GetRequest,GetResponse,GetNextRequest,SetRequest和Trap。管理器向代理发出服务Get请求,代理在161端口侦听并接收管理器发来的GetRequest、GetNextRequest报文后,进行解码分析,并从设备的MIB中获取相关信息,生成GetResponse报文,向管理器回送应答。同时,管理器在162端口侦听并接收来自代理的Trap报文,报告异常情况。

2.2 代理软件设计

代理程序主要包含SNMP信息接收模块、SNMP信息解析模块、基于XML的MIB库维护模块、MIB信息检索模块、SNMP报文打包模块、SNMP消息发送模块、设备状态变化巡检模块和XML格式的MIB库如图4所示。

图4 代理程序结构图

代理软件接收GetRequest、GetNextRequest报文,调用SNMP报文解析模块,解析报文中的OID,通过OID查询检索MIB库中的参数值和数据类型,调用SNMP报文打包部件组成GetRequest报文,最后调用SNMP报文发送模块发送报文。

设备的状态维护在MIB库中,MIB库维护部件把设备的状态更新到XML文件中,并状态发生变化的参数的Trap属性值设置为TRUE。

设备状态变化巡检模块定时检索每个参数的Trap属性值,若Trap属性值为TRUE时,取得该参数的OID和属性值,传递给SNMP打包模块,组成Trap报文,待组成Trap报文后,把该参数的Trap属性值修改为FALSE。

软件的实现技术关键是SNMP报文的解析和收发、XML文档的检索和存储。

3代理软件实现关键技术

3.1 MIB信息管理

地面站测控设备监控软件采用组播向代理软件定时广播设备状态信息,代理软件接收到设备状态信息后,首先读取本地存储的基于XML的MIB库,对接收到的设备状态信息与XML文件中的状态信息进行比较,如果状态发生变化,更新该参数节点值,并把trap属性更新为True。

3.2 SNMP报文解析

Windows环境下使用 SNMP 协议通信,笔者采用了SNMP ++开发包。下面介绍在 VC++6.0 平台,实现SNMP报文解析的关键步骤。

①创建SNMP会话。

int status;

snmp = new Snmp( status);

②设置SNMP监听端口。

snmp ->notify_set_listen_port

(SNMP_LISTEN_PORT);

③注册SNMP报文处理回调函数。

OidCollection oidc;

TargetCollection targetc;

status = snmp->notify_register(oidc,targetc,&RequestProcess_callback);

④声明SNMP报文处理回调函数。

回调函数中,先获取报文类型,在根据报文类型调用不同报文的处理函数。

voidRequestProcess_callback (int reason,Snmp *snmp,Pdu &pdu,SnmpTarget &target,void *cd)

{

int pdutype = pdu.get_type();//获取报文类型

switch(pdutype)

{

case PDU_GET_REQUEST:

GetRequestProcess(reason,snmp,pdu,target,cd);

break;

case PDU_GETNEXT_REQUEST:

GetNextRequestProcess(reason,snmp,pdu,target,cd);

break;

case PDU_GETBULK_REQUEST:

GetBulkRequestProcess(reason,snmp,pdu,target,cd);

break;

}

}

3.3 TRAP报文处理

定义两秒一次的OnTimer定时器,读取3.1中维护的XML文件,判断每个节点的trap属性如果为True,就向管理进程发送Trap报文,然后,把该节点的trap属性修改为false。一下为Trap报文处理的关键代码:

Pdu pdu;

CTarget target( (IpAddress) "10.4.8.5");

target.set_version(version2c);

Pdu pdu;

Snmp snmp( status);

Oid trapid;

Vb vb;

vb.set_oid(trapid);

pdu.set_notify_id( trapid);

vb.set_value(ivalue);

pdu += vb;

pdu.set_notify_id( "1.3.6.1.4.1.134865.18");

status = snmp.trap( pdu,target);

4仿真与验证

仿真环境采用Windows XP操作系统,编程环境为VC++6.0,计算机采用研华610H工控机。采用Paessler SNMP Tester 3.2.1软件进行Get操作测试,WildPackets软件进行Trap报文测试。分别设置入口1.3.6.1.4.1.13526.12.10.6.1.3和1.3.6.1.4.1.13526.12.10.6.1.5.1,只修改入XML文件的入口地址,无需修改程序,对OID入口.1.1.1和入口.1.1.2节点进行测试,均可以正确返回Get应答消息;修改该两节点值,WildPackets软件捕获Trap报文包。试验结果表明,本文提出的方法,实现了网管代理的基本功能,并在管理信息库变化后,提高了程序维护效率。

5结束语

由于地面站测控系统种类繁多,运管中心需要监视的参数和状态也不相同,采用XML标记语言为基础管理MIB信息库,实现了数据管理和运管代理程序的分离,当管理信息库发生变化时,不需要修改代理程序,只需要维护信息管理库,从而提高了软件的重用性,降低软件维护工作量。

参考文献

[1]赵海庆,姜宇鸣.SNMP协议在测控网远程监控中的应用研究[J].飞行器测控学报,2011(6):55-59

[2]MILLER M A.用SNMP管理互联网(第3版)[M].中国水利水电出版社,2001:33-35.

[3]张德文,徐孟春,杜晓宁.XML技术在分布式网络管理系统中的研究与应用[J].信息工程大学学报,2007(2):231-232.

[4]孔祥艳.企业信息系统的构件化开发方法分析[J].无线电工程,2011,41(3):63-64.

[5]丁跃潮,张涛.XML实用教程[M].北京大学出版社,2006:6-9.

[6]吴洁.XML应用教程[M].清华大学出版社,2005.

[7]蔡琳.在VC++6.0平台下基于SNMP网络管理软件的开发[J].信息与电子工程,2005(3):255-226.

[8]李想.嵌入式SNMP卫星网管代理软件设计[J].无线电工程,2011,41(1):5-7.

[9]刘素婵,李旭.系统监控中数据传输的一种新方案[J].计算机与网络,2011,37(1):54-55.

[10]李明江.SNMP简单网络管理协议[M].北京:电子工业出版社,2007:25-26.

狄彩云女,(1981—),工程师。主要研究方向:航天测控。

李洪磊男,(1984—),工程师。主要研究方向:航天测控。

The Design of Space TT&C Ground Equipment Running

Management Agent Based on XML

DI Cai-yun1, LI Hong-lei2,ZHAO Mei-zhi3, DI Wei-guo4

(1.HebeiFar-EastCommunicationSystemEngineeringCo.,Ltd.,ShijiazhuangHebei050081,China;

(2.The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China;

3.XingtaiPolytechnicCollege,XingtaiHebei054035,China;

4.CollegeofElectricalandElectronicsEngineering,ShijiazhuangTiedaoUniversity,

ShijiazhuangHebei050043,China)

AbstractIn aerospace systems,Simple Network Management Protocol is applied to construct unified monitoring and control management platform of TT&C equipment.It is error-prone and poor-readability to write Management Information Base (MIB) information of TT&C equipment.To solve this problem,this paper puts forward the method using Extensible Markup Language (XML) to describe the TREE-STRUCTURES of MIB information,and the example of how to convert equipment MIB information to XML description is given.Finally,this paper introduces message types that the network management agent software deals with,the design scheme of equipment agent software and the key technique for software implementation.Simulation experiment results show that the method has realized the basic function of network management agent,and improves the efficiency of the program maintenance.

Key wordssimple network management protocol;management information base;extensible markup language;network management agent

作者简介

基金项目:国家自然科学基金项目(51307112);河北省教育厅项目(Q2012118)。

收稿日期:2013-03-11

中图分类号TN915.04

文献标识码A

文章编号1003-3106(2015)06-0059-04

doi:10.3969/j.issn.1003-3106.2015.06.16

引用格式:狄彩云,李洪磊,赵美枝,等.基于XML的航天测控地面设备运管代理设计[J].无线电工程,2015,45(6):59-62.