狄彩云,李洪磊,趙美枝,狄衛(wèi)國
(1.河北遠東通信系統(tǒng)工程有限公司,河北 石家莊050081;
2.中國電子科技集團公司第五十四研究所,河北 石家莊050081;
3.邢臺職業(yè)技術(shù)學(xué)院,河北 邢臺054035;
4.石家莊鐵道大學(xué)電氣與電子工程學(xué)院,河北 石家莊050043)
?
基于XML的航天測控地面設(shè)備運管代理設(shè)計
狄彩云1,李洪磊2,趙美枝3,狄衛(wèi)國4
(1.河北遠東通信系統(tǒng)工程有限公司,河北 石家莊050081;
2.中國電子科技集團公司第五十四研究所,河北 石家莊050081;
3.邢臺職業(yè)技術(shù)學(xué)院,河北 邢臺054035;
4.石家莊鐵道大學(xué)電氣與電子工程學(xué)院,河北 石家莊050043)
摘要我國航天系統(tǒng)中采用簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP)構(gòu)建測控設(shè)備統(tǒng)一化監(jiān)控管理平臺。針對采用ASN.1(Abstract Syntax Notation 1)語法管理信息庫(Management Information Base,MIB)這種方法,編寫地面測控設(shè)備MIB信息時容易出錯,易讀性差的問題,提出采用XML(Extensible Markup Language)語言來描述MIB信息的樹狀結(jié)構(gòu),并舉例說明地面站設(shè)備MIB庫轉(zhuǎn)換為XML描述的方法。然后,介紹了運管代理軟件處理的消息類型,并詳細介紹地面設(shè)備運管代理軟件的設(shè)計方案和軟件實現(xiàn)關(guān)鍵技術(shù)。仿真試驗結(jié)果表明,本文提出的方法實現(xiàn)了網(wǎng)管代理的基本功能,并提高了程序維護效率。
關(guān)鍵詞簡單網(wǎng)絡(luò)管理協(xié)議;管理信息庫;可擴展標記語言;運管代理
0引言
我國航天測控事業(yè)的不斷發(fā)展,地面測控設(shè)備越來越多,需要構(gòu)建測控設(shè)備統(tǒng)一化監(jiān)控管理平臺。網(wǎng)管中心對地面測控設(shè)備的實時監(jiān)視、控制和管理,采用簡單網(wǎng)絡(luò)管理協(xié)議,網(wǎng)管中心作為管理端,可以通過管理協(xié)議對作為代理端的地面測控設(shè)備,進行統(tǒng)一化管理[1]。
地面測控設(shè)備MIB信息一般采用ASN.1語法管理,由于地面測控設(shè)備屬性復(fù)雜,在MIB庫建立和維護中,容易出錯,一旦MIB庫有所調(diào)整,地面測控設(shè)備的代理程序也要進行相應(yīng)修改,給程序的維護帶來不便。本文提出采用XML管理設(shè)備信息和管理信息庫的方法和地面測控設(shè)備代理軟件設(shè)計及關(guān)鍵技術(shù),并通過仿真試驗,驗證了該方法的正確性、高效性。
1基于XML管理MIB
管理信息庫是由ASN.1描述樹狀結(jié)構(gòu)[2],MIB的葉子節(jié)點定義了代理被管理的可查詢和設(shè)置的參數(shù)。管理信息庫是由代理者維護的一個信息庫,可供管理者通過管理協(xié)議訪問,通過對這些信息的存取訪問,就可以實現(xiàn)地面測控設(shè)備的監(jiān)控、管理。
地面測控設(shè)備包含了發(fā)射、接收、基帶等多個分系統(tǒng),每個分系統(tǒng)又有若干個分機組成,管理信息庫葉子節(jié)點很多甚至有上千個,如果用這種方法描述MIB庫,編寫易出錯,易讀性差,維護復(fù)雜,這就需要找到一種存儲管理MIB庫的新方法。
XML即可擴展標記語言,是由W3C(World Wide Wed Consortium)發(fā)布的一種關(guān)于數(shù)據(jù)描述和存儲的一個標準[3]。XML具有可擴展性和自描述性[4],用戶可以自定義標簽來描述數(shù)據(jù)。XML文檔內(nèi)容和結(jié)構(gòu)清晰易懂,非專業(yè)人員也易于閱讀和使用。XML遵循嚴格的語法,XML中標記的信息,具有標準的結(jié)構(gòu)化數(shù)據(jù)處理模型和豐富的解析、封裝和傳輸技術(shù)支持,容易地被計算機程序所處理[5]。XML本身呈現(xiàn)一種樹狀結(jié)構(gòu),采用XML的DOM樹來描述MIB信息的樹狀結(jié)構(gòu),結(jié)構(gòu)清晰、維護方便,有利于代理軟件實現(xiàn)[6]。
地面測控設(shè)備MIB變量根據(jù)重要程度不同,劃分為A、B、C3類變量,各類變量下根據(jù)分系統(tǒng)進行分組,分系統(tǒng)細化為具體的分機,分機節(jié)點下定義具體的參數(shù)。用XML Schema(模式)描述MIB文件的結(jié)構(gòu),如圖1所示。參數(shù)用來表示MIB庫中的設(shè)備狀態(tài)葉子節(jié)點。參數(shù)節(jié)點包含ID、類型、oid、 名稱、trap共5個屬性。ID 表示數(shù)據(jù)元素標識,類型表示MIB變量的數(shù)據(jù)類型、oid表示MIB變量編碼、 名稱表示參數(shù)名稱、trap表示變量是否要發(fā)送Trap消息。
定義表1中地面測控設(shè)備MIB變量表中的變量,采用ASN.1描述如圖2所示。采用XML Schema結(jié)構(gòu),轉(zhuǎn)換為XML文件的MIB變量如圖3所示。從圖中可以看出,采用XML描述,可以清晰的體現(xiàn)變量之間的從屬關(guān)系,具有良好的用戶交互體驗。
圖1 MIB文件的XML Schema結(jié)構(gòu)圖
MIB變量編碼變量名入口.1A類入口.1.1時頻分系統(tǒng)入口.1.1.1頻標鎖定狀態(tài)入口.1.1.2B碼輸入選擇入口.1.2發(fā)射分系統(tǒng)入口.1.2.1上變頻器A入口.1.2.1.1小環(huán)檢測接收機狀態(tài)入口.1.2.1.2頻蹤鎖定狀態(tài)入口.1.2.2上變頻器B入口.1.2.2.1小環(huán)檢測接收機狀態(tài)入口.1.2.2.2頻蹤鎖定狀態(tài)
圖2 ASN.1描述的MIB文件
圖3 XML描述的MIB庫
2代理軟件設(shè)計
SNMP包含5種SNMP操作的報文類型[7-10]:即GetRequest,GetResponse,GetNextRequest,SetRequest和Trap。管理器向代理發(fā)出服務(wù)Get請求,代理在161端口偵聽并接收管理器發(fā)來的GetRequest、GetNextRequest報文后,進行解碼分析,并從設(shè)備的MIB中獲取相關(guān)信息,生成GetResponse報文,向管理器回送應(yīng)答。同時,管理器在162端口偵聽并接收來自代理的Trap報文,報告異常情況。
代理程序主要包含SNMP信息接收模塊、SNMP信息解析模塊、基于XML的MIB庫維護模塊、MIB信息檢索模塊、SNMP報文打包模塊、SNMP消息發(fā)送模塊、設(shè)備狀態(tài)變化巡檢模塊和XML格式的MIB庫如圖4所示。
圖4 代理程序結(jié)構(gòu)圖
代理軟件接收GetRequest、GetNextRequest報文,調(diào)用SNMP報文解析模塊,解析報文中的OID,通過OID查詢檢索MIB庫中的參數(shù)值和數(shù)據(jù)類型,調(diào)用SNMP報文打包部件組成GetRequest報文,最后調(diào)用SNMP報文發(fā)送模塊發(fā)送報文。
設(shè)備的狀態(tài)維護在MIB庫中,MIB庫維護部件把設(shè)備的狀態(tài)更新到XML文件中,并狀態(tài)發(fā)生變化的參數(shù)的Trap屬性值設(shè)置為TRUE。
設(shè)備狀態(tài)變化巡檢模塊定時檢索每個參數(shù)的Trap屬性值,若Trap屬性值為TRUE時,取得該參數(shù)的OID和屬性值,傳遞給SNMP打包模塊,組成Trap報文,待組成Trap報文后,把該參數(shù)的Trap屬性值修改為FALSE。
軟件的實現(xiàn)技術(shù)關(guān)鍵是SNMP報文的解析和收發(fā)、XML文檔的檢索和存儲。
3代理軟件實現(xiàn)關(guān)鍵技術(shù)
地面站測控設(shè)備監(jiān)控軟件采用組播向代理軟件定時廣播設(shè)備狀態(tài)信息,代理軟件接收到設(shè)備狀態(tài)信息后,首先讀取本地存儲的基于XML的MIB庫,對接收到的設(shè)備狀態(tài)信息與XML文件中的狀態(tài)信息進行比較,如果狀態(tài)發(fā)生變化,更新該參數(shù)節(jié)點值,并把trap屬性更新為True。
Windows環(huán)境下使用 SNMP 協(xié)議通信,筆者采用了SNMP ++開發(fā)包。下面介紹在 VC++6.0 平臺,實現(xiàn)SNMP報文解析的關(guān)鍵步驟。
①創(chuàng)建SNMP會話。
int status;
snmp = new Snmp( status);
②設(shè)置SNMP監(jiān)聽端口。
snmp ->notify_set_listen_port
(SNMP_LISTEN_PORT);
③注冊SNMP報文處理回調(diào)函數(shù)。
OidCollection oidc;
TargetCollection targetc;
status = snmp->notify_register(oidc,targetc,&RequestProcess_callback);
④聲明SNMP報文處理回調(diào)函數(shù)。
回調(diào)函數(shù)中,先獲取報文類型,在根據(jù)報文類型調(diào)用不同報文的處理函數(shù)。
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;
}
}
定義兩秒一次的OnTimer定時器,讀取3.1中維護的XML文件,判斷每個節(jié)點的trap屬性如果為True,就向管理進程發(fā)送Trap報文,然后,把該節(jié)點的trap屬性修改為false。一下為Trap報文處理的關(guān)鍵代碼:
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仿真與驗證
仿真環(huán)境采用Windows XP操作系統(tǒng),編程環(huán)境為VC++6.0,計算機采用研華610H工控機。采用Paessler SNMP Tester 3.2.1軟件進行Get操作測試,WildPackets軟件進行Trap報文測試。分別設(shè)置入口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節(jié)點進行測試,均可以正確返回Get應(yīng)答消息;修改該兩節(jié)點值,WildPackets軟件捕獲Trap報文包。試驗結(jié)果表明,本文提出的方法,實現(xiàn)了網(wǎng)管代理的基本功能,并在管理信息庫變化后,提高了程序維護效率。
5結(jié)束語
由于地面站測控系統(tǒng)種類繁多,運管中心需要監(jiān)視的參數(shù)和狀態(tài)也不相同,采用XML標記語言為基礎(chǔ)管理MIB信息庫,實現(xiàn)了數(shù)據(jù)管理和運管代理程序的分離,當管理信息庫發(fā)生變化時,不需要修改代理程序,只需要維護信息管理庫,從而提高了軟件的重用性,降低軟件維護工作量。
參考文獻
[1]趙海慶,姜宇鳴.SNMP協(xié)議在測控網(wǎng)遠程監(jiān)控中的應(yīng)用研究[J].飛行器測控學(xué)報,2011(6):55-59
[2]MILLER M A.用SNMP管理互聯(lián)網(wǎng)(第3版)[M].中國水利水電出版社,2001:33-35.
[3]張德文,徐孟春,杜曉寧.XML技術(shù)在分布式網(wǎng)絡(luò)管理系統(tǒng)中的研究與應(yīng)用[J].信息工程大學(xué)學(xué)報,2007(2):231-232.
[4]孔祥艷.企業(yè)信息系統(tǒng)的構(gòu)件化開發(fā)方法分析[J].無線電工程,2011,41(3):63-64.
[5]丁躍潮,張濤.XML實用教程[M].北京大學(xué)出版社,2006:6-9.
[6]吳潔.XML應(yīng)用教程[M].清華大學(xué)出版社,2005.
[7]蔡琳.在VC++6.0平臺下基于SNMP網(wǎng)絡(luò)管理軟件的開發(fā)[J].信息與電子工程,2005(3):255-226.
[8]李想.嵌入式SNMP衛(wèi)星網(wǎng)管代理軟件設(shè)計[J].無線電工程,2011,41(1):5-7.
[9]劉素嬋,李旭.系統(tǒng)監(jiān)控中數(shù)據(jù)傳輸?shù)囊环N新方案[J].計算機與網(wǎng)絡(luò),2011,37(1):54-55.
[10]李明江.SNMP簡單網(wǎng)絡(luò)管理協(xié)議[M].北京:電子工業(yè)出版社,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
作者簡介
基金項目:國家自然科學(xué)基金項目(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的航天測控地面設(shè)備運管代理設(shè)計[J].無線電工程,2015,45(6):59-62.