999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SNMP的網管國網北向接口設計與實現

2017-10-20 05:58:10劉夢陽曾永安
無線電通信技術 2017年6期
關鍵詞:設備設計

劉夢陽,曾永安

(1.河北遠東通信系統工程有限公司,河北 石家莊 050200; 2.國網江西省電力公司撫州供電分公司,江西 撫州 344000)

基于SNMP的網管國網北向接口設計與實現

劉夢陽1,曾永安2

(1.河北遠東通信系統工程有限公司,河北 石家莊 050200; 2.國網江西省電力公司撫州供電分公司,江西 撫州 344000)

針對國家電網提出的北向接口統一標準,在AcroView網管基礎上提出了基于SNMP協議的網管北向接口軟件的實現設計方案。介紹了北向接口的組織架構、功能及操作方式,描述了系統的總體設計,并對各個分層模塊的實現方案分別說明,在SNMP接口層及業務處理層的實現設計中,重點說明了使用Synapse實現SNMP協議棧及MIB庫對象數據組織架構的實現方法,通過系統測試驗證了設計的有效性及先進性。

SNMP;北向接口;MIB庫;數據組織架構;Syncapse

0 引言

2016年11月國家電網公司出臺規定,要求各廠家的專業網管具備針對國家電網通信管理系統TMS(Telecommunication Management System)的北向接口,并提出了統一的技術規范[1]。該接口要求網管軟件通過SNMP接口按照技術規范具備告警信息獲取、性能管理信息獲取及配置管理的功能,并根據配置及告警數據的變化上報TRAP消息。簡單網絡管理協議SNMP是目前廣泛使用的一種網絡管理協議,它有易于實現、便于擴充等優點,得到眾多廠家的支持和廣泛的應用,已成為網絡管理領域中事實上的工業標準[2]。

為了滿足國家電網行業的市場需求,需要在網管基礎之上開發出具備國網要求的北向接口。本文主要論述了在Acroview網管(NMS系統)上采用SNMP協議實現國網北向接口的設計方案及實現技術,并使用專用工具進行了驗證。

1 國網北向接口介紹

北向接口位于網絡管理系統(SG-TMS)的服務端和網元管理系統(NMS)的服務之間,對網絡管理系統和網元管理系統之間的消息、通知和服務進行適配[3]。設備網管北向接口的位置如圖1所示。

北向接口需要向TMS提供配置管理、告警管理、性能管理3項功能,包含以下信息:

① 配置管理功能需要NMS提供以下功能:系統信息采集、設備信息采集、設備機框信息采集、設備槽位信息采集、設備板卡信息采集、設備端口信息采集和拓撲信息采集。

② 告警管理功能需要NMS提供以下功能:設備的告警管理、NMS與TMS之間的握手消息。

③ 性能統計功能需要NMS提供以下功能:設備性能信息、端口性能信息。

TMS與NMS之間的接口是采用SNMP協議來實現。SNMP是TCP/IP協議的一個子集,是應用層管理協議,它使用UDP作為傳輸層協議,能管理支持代理進程(或委托代理)的網絡設備。SNMP是適用于互聯網絡設備的網絡管理框架,主要由管理信息結構SMI (Structure of Management Information)、管理信息庫MIB (Management Information Base)和SNMP協議組成[4]。本文中,TMS作為管理者,NMS作為代理進程(Agent)。

SNMP協議支持GET/GETNEXT/SET、GETRespose、TRAP消息3種格式。

① GET/GETNEXT/SET是管理者對Agent請求數據的操作,流向為NMS至Agent;

② GetResponse是Agent對管理者的請求響應操作,流向為Agent至管理者。

③ TRAP消息是Agent對管理者的主動上報通告,無需確認。

TMS的數據獲取方式有2種。一種是主動獲取:通過對變量數據的GET操作獲取值,SET操作設置變量的值,采用GetNext遍歷來獲取表格表數據的讀取;另一種是被動接收:接收NMS系統上報的TRAP消息。

2 系統總體設計與各分層設計

2.1 總體設計

系統采用分層設計[5],按照功能層次劃分為SNMP接口層、業務處理層、數據存儲解析層和設備接入層。

SNMP接口層集成了SNMP協議及MIB對象的管理。負責接收和發送SNMP消息,將收到的SNMP消息及其他模塊傳遞的消息進行轉換。

業務處理層處理SNMP接口層下發的業務處理請求及數據存儲解析層上報的數據消息。在業務處理層有面對北向接口的存儲數據,是以內存鏈表的形式進行存儲,方便對消息的及時響應操作。

數據存儲解析層主要是對設備接入層上報的設備原始信息進行解析存儲。數據解析完畢后存儲入數據庫的各個對應表,負責網管數據的存儲和讀取。

設備接入層是與網管接入設備的接口。這部分沿用AcroView網管之前的處理,使用自定義協議,實現設備的告警、性能數據采集,數據采用統一格式[6]。

系統的消息處理的流程如圖2所示。

圖2 系統消息處理流程

① 對GET/GETNEXT消息進行解碼。

② 判斷是否是支持的OID。

③ 通過OID找到對應的鏈表,根據數據的索引找到對應的數據,返回給SNMP接口層。

④ 返回錯誤編號,回GetResponse消息。

⑤ 根據值和OID進行SNMP報文編碼并發送給TMS。

⑥ 對SET消息進行SNMP解碼。

⑦ 判斷OID是否已知且合法。

⑧ 返回錯誤編號,回GetResponse消息。

⑨ 根據OID判斷調用不同的事件處理函數,返回對象值。

⑩ 根據值和OID進行SNMP報文編碼并發送給TMS。

2.2 SNMP接口層設計

整個接口層的設計采用線程的方式,使用Synapse的TSynaClient類來實現Agent的功能。TSynaClient類主要包括FAgent_Sock、FAgent_Buffer、FAgent_HostIP和FQuery變量。

表1 接口層數據結構

變量類型說明FAgent_SockTUDPBlockSocket數據收發阻塞socketFAgent_BufferAnsiStringRequest及Response的公共BufferFAgent_HostIPAnsiString對端管理者IPFQueryTSNMPRecSnmp數據包,具備編碼De-codeBuf、解碼EncodeBuf等函數

SNMP數據接收實現方法如下:

① 初始化FAgent_Sock,bind接收端口。

② 調用RecvPacket(Timeout)接收數據。將數據保存入FAgent_Buffer,將對端管理者IP賦值給FAgent_HostIP。

③ FQuerry執行DecodeBuf(FAgent_Buffer)函數將數據包解碼,將MIB值加入MIB接收鏈表SNMPMibList。

④ 調用MIBByIndex讀取MIB值,通過API接口發送給業務處理層。

SNMP發送實現方法如下:

① GETResponse消息:根據業務處理層返回的OID、數據值及數據類型,使用FQuerry的MIBAdd加入至SNMPMibList。采用EncodeBuf編碼至FAgent_Buffer,通過FAgent_Sock.SendString發送。

② TRAP消息通過net-snmp的相關TRAP API實現。

2.3 MIB與業務處理層設計

在SNMP中,網絡管理資源是以對象的形式表示的,所有對象都存放在MIB的數據結構中[7]。管理信息庫 (MIB)存儲了被管設備資源的管理信息[8],具有標量和表格形式組織的變量兩種操作對象[9]。北向接口MIB庫根據需求的差異將各個對象編碼成不同的變量類型。系統信息等可以直接讀取的變量設置為標量,具有大量信息的配置及告警、統計表可以設置為表格變量。

在北向接口節點(northTms)下總體分成3個主要的節點。告警接口節點(northTmsAlmInterface)、配置接口節點(northTmsConfiginterface)、性能統計接口節點(northTmsStsConfigInterface)。每個節點下再按照數據的類型進行細分添加。節點的屬性主要包括:名稱、OID、語法(數據類型,包括Integer、OCtstring、TimeTicks、Object Identifer等)、權限(read-only、read-write、write-only)、類型(變量、Table、Row、Columnar、Trap)。系統的MIB結構如圖3所示。

業務處理層的核心是對MIB的查詢操作實現及對內存鏈表的維護。內存鏈表保存了北向接口所需要的所有數據信息。MIB庫的對象主要由OID及數據組成,通過MIB設計確定了每個節點對應的OID。每個鏈表的元素的數據結構定義如下:Instance(行索引)+具體的參數,每個鏈表的元素就是表中的一行數據。

圖3 MIB設計樹狀圖

設備鏈表元素結構說明如表2所示。

表2 設備鏈表元素數據結構

參數類型含義InstanceString索引,元素的唯一標示equipIdString[32]設備ID。產品系列-類型-ID組合equipNameString[32]設備名稱areaIDString[32]區域說明equipTypeInteger設備類型LocationString[50]設備安裝位置DespString[50]設備描述onlineStateinteger設備離線狀態AlmHiLevelInteger設備當前最高級別告警

MIB的主要操作是Get及GetNext操作。標量對象的獲取比較簡單,直接根據OID及Instance找到對應的變量值,將值及類型返回即可,這里詳細討論GetNext的實現。根據SNMP規定,GETNEXT按照字典序和先深搜索的原則查找下一個節點,分2種情況:如果請求的OID不是葉節點,那么從該OID開始按字典序返回第一個葉節點;如果GETNEXT請求的OID是葉節點,那么從該節點開始向上回溯到第一個具有“下一個節點”的節點,然后從“下一個節點”開始按字典序返回第一個葉節點[10]。

GetNext操作實現的算法如下:

說明:每個表元素的數據結構中的變量對應唯一的OID,如equipId對應OID_EQUIP_TABLE_EQUIP_ID_OID='1.3.6.1.4.1.37405.2.2.2.1.1',eqipName對應OID_EQUIP_TABLE_EQUIP_NAME_OID = '1.3.6.1.4.1.37405.2.2.2.1.2'。List為鏈表,list[i]代表鏈表的第i個元素。List[i].part[j]標示鏈表第i個元素的第j個變量。Cnt、index為integer,ListUsedLen表示鏈表的有效數據長度,NextOID為返回的OID值,Value為返回的變量的值,ValueType為返回變量的類型。變量Cnt標示數據結構中第Cnt個變量。

(a) OID是否等于表ID或者表EntryID。如果是,NextOID等于變量1對應的OID+’.’+List[0].Instance,Value等于 List[0].part[0]的值,ValueType等于List[0].part[0]值的類型。如果否,進行(b)。

(b) Index=-1;

For cnt = 0 To ListUsedLen-1 do

ifList[cnt].Instance := instance

{

Index =cnt;

Break;

}

(c) Cnt:=0

(d) If (OID =變量Cnt對應的OID)

{

If (index+1)< ListUsedLen

{

NextOID=變量Cnt對應的OID+’.’+List[index+1].instance;

Value= List[index+1]part[cnt]的值;

ValueType= List[index+1]part[cnt]的值類型;

}else

{

NextOID=變量Cnt+1對應的OID+’.’+List[0].instance;

Value= List[0]part[Cnt+1]的值;

ValueType= List[0]part[Cnt+1]的值類型;

}

}

If(OID=最后變量對應的OID)

{

If (index+1)< ListUsedLen

{

NextOID=變量Cnt對應的OID+’.’+List[index+1].instance;

Value= List[index+1]part[cnt]的值;

ValueType= List[index+1]part[cnt]的值類型;

}else

{

NextOID=’’;

Value= ‘’;

ValueType= 0;

}

}

(e) Cnt := Cnt+1;返回(d)

2.4 數據存儲解析層設計

數據存儲層采用DLL的方式來實現,每種類型的設備數據對應一個獨立的DLL[11]。數據存儲層的數據源是從Acroview網管前置機模塊接收并初步翻譯后的數據記錄。系統數據類型有3種:告警、性能和配置,每種類型有自己的統一格式。解析層的工作就是根據不同的設備類型、不同的數據類型分別進行進一步的分析處理。通過dll方式來實現解析層,每種設備類型數據類型用一個獨立的dll來實現。這樣如果數據分析有問題修改對應的dll即可,如果新增設備類型增加新dll即可。系統擴充新類型的監控設備影響的是接口層和解析層,其他部分可以不變。

數據解析dll分2層組織,第一層是DLL負責初始化各個具體數據類型dll的數據輸入接口及提取數據,根據數據類型調用具體分析接口來分析數據。第二層DLL負責具體類型數據的分析工作。例如告警功能的實現流程如下:

① 網管前置機將告警數據接收后按照固定格式存儲入數據庫原始告警表;

② 第一層DLL讀取數據庫告警表數據,將數據進行分類處理,按照不同的設備類型調用分設備的DLL進行處理;

③ 第二層DLL為分設備的DLL,按照告警的設備ID、位置、狀態等進行解析,根據對應的狀態,更新設備告警狀態,將不同的數據存入對應的數據表;

④ 第一層DLL根據第二層DLL的返回結果,將變化的告警信息(增、刪、改)及變化的設備信息(連接狀態、最高告警級別)等數據發給業務處理層;

⑤ 業務處理層根據數據存儲解析層上報的數據,進行內部告警鏈表及設備鏈表等相關鏈表的相關數據更新

3 系統測試

系統測試的目標是驗證通過上述設計方案檢驗系統的穩定性、可靠性。測試需要的軟件為具備北向接口的網管軟件、測試demo程序及ManageEngine MibBrowser。測試方法如下:

① 配置管理功能測試

在網管客戶端上隨機進行設備網元的增、刪、修改操作以及機架、板卡、槽位、端口的增、刪、修改操作。采用ManageEngine MibBrowser讀取對應表格的數據,看是否與實際操作相符。注意在設備網元刪除時,能否刪除對應機架、板卡、槽位、端口數據的一并操作。設備連接網管之后,設備表的連接狀態是否更新。手動進行100次操作,測試結果與預期一致,內容相符且準確。

② 告警及性能統計管理功能測試

使用測試demo程序定時(10 s)向網管軟件發送模擬告警和模擬性能統計消息。采用ManageEngine MibBrowser讀取告警表及性能表,查看是否與demo發送的及內容一致。同時利用TrapViewer接收TRAP消息,驗證接收的TRAP消息是否與demo發送一致。經過24小時測試,測試結果與預期一致,且內容相符準確。

從結果看,系統的北向接口功能與設計一致,能夠與實際數據保持100%的一致性,在長時間的測試過程中無異常現象,具備良好的穩定性。

4 結束語

目前系統已經部署在國家電網多地省市局應用,與國網TMS系統順利對接,受到用戶的一致好評。實踐證明了該系統完全達到了預期設計效果,能夠滿足國家電網對分系統網管北向接口的定義及要求。由于SNMP的簡單性和可擴展性,具備SNMP的北向接口將是網絡管理軟件的發展趨勢。文中采用的SNMP接口的實現方案,對網絡管理軟件的北向接口實現具有重大的指導和借鑒意義。

[1] 國家電網公司調度交換網管北向接口技術規范[S].南京:國網江蘇省電力公司信息通信分公司,2016.

[2] 蔡麗,張大方,謝高崗,等.基于SNMP網絡管理系統的設計與實現[J].計算機應用,2003,23(3):55-57.

[3] 楊冰.電力終端通信接入網管理系統北向接口的設計與實現[D].北京:北京郵電大學,2014.

[4] 嚴斌宇,劉方圓,吳少華.基于SNMP的網絡管理軟件的設計與實現[J].計算機與數字工程,2012(4):126-129.

[5] 李千日.軟件體系結構設計[M].北京:清華大學出版社,2008:30-370.

[6] 徐海軍.電信網管發展的五大趨勢[N].通信產業報,2004-14(39).

[7] 藍波,楊琴.基于SNMP動態擴展MIB的設計與實現[J].計算機工程,2004(30):192-194.

[8] 周劍,張曉彤,王沁.SNMP協議動態MIB結構與高效查找算法[J].計算機工程,2008(34):171-174.

[9] 區海平,壽國礎.基于MIB定義的SNMP分析系統及實現[J].計算機應用,2009(1):58-61.

[10] 沙俊星.在嵌入式環境中使用Lua和SQLite擴展Net-SNMP代理[J].北京聯合大學學報,2011(25):10-13.

[11] 李士東.軌道交通專用通信集中告警系統設計[J].無線電通信技術,2012(38):58-61.

DesignandImplementationofAcroViewNorthboundInterfaceBasedonSNMP

LIU Meng-yang1,ZENG Yong-an2

(1.Hebei Far-east Communication System Engineering Co,Ltd.,Shijiazhuang Hebei 050200,China; 2.Jiangxi State Grid Jiangxi Fuzhou Electric Power Co.,Fuzhou Jiangxi 344000,China)

Considering the unified standard of northbound interface proposed by the State Grid,a design scheme of network management northbound interface software based on SNMP protocol is proposed on the basis of AcroView network management.The structure,function and operation mode of northbound interface are introduced,and the overall design of the system is described,then the realization scheme of each module layer is presented.The implementation design of SNMP interface layer and business layer focuses on the realization method of using Synapse to realize the SNMP protocol stack and MIB library object data structure.Finally,the effectiveness and efficiency of the design are verified by system test.

SNMP;northbound interface;MIB;data organization framework ;Syncapse

TN915.07

A

1003-3114(2017)06-91-6

10.3969/j.issn.1003-3114.2017.06.22

劉夢陽,曾永安.基于SNMP的網管國網北向接口設計與實現[J].無線電通信技術,2017,43(6):91-96.

[LIU Mengyang,ZENG Yongan.Design and Implementation of AcroView Northbound Interface Based on SNMP[J].Radio Communications Technology,2017,43(6):91-96.]

2017-07-27

劉夢陽(1986―),男,工程師,主要研究方向:通信技術。曾永安(1988―),男,工程師,主要研究方向:電力通信網技術。

猜你喜歡
設備設計
諧響應分析在設備減振中的應用
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于VB6.0+Access2010開發的設備管理信息系統
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
如何在設備采購中節省成本
主站蜘蛛池模板: 久久久久久高潮白浆| 国产中文在线亚洲精品官网| AV色爱天堂网| 一区二区在线视频免费观看| 日韩精品亚洲精品第一页| 91口爆吞精国产对白第三集| 亚洲AⅤ波多系列中文字幕| 国产一级一级毛片永久| 国产精品蜜芽在线观看| 国内精品视频在线| 在线看片中文字幕| 激情乱人伦| 日韩在线播放中文字幕| 久久一色本道亚洲| 国产网站一区二区三区| 亚洲天堂啪啪| 国产自在线播放| 中文字幕 日韩 欧美| 国产sm重味一区二区三区| 久久国产香蕉| 国产亚洲精品97在线观看| 精品国产网| 五月丁香伊人啪啪手机免费观看| 精品国产三级在线观看| 免费视频在线2021入口| 久久福利片| 九九这里只有精品视频| 中文字幕无码制服中字| 国产香蕉97碰碰视频VA碰碰看| 午夜性刺激在线观看免费| 国产精品xxx| 欧美日韩午夜| 91青青在线视频| 一级高清毛片免费a级高清毛片| 国产精品福利在线观看无码卡| 精品久久综合1区2区3区激情| 国产综合另类小说色区色噜噜| 成年人国产视频| 国产区在线看| 在线观看免费人成视频色快速| 国产精品第| 婷婷成人综合| 婷婷色中文网| 亚洲综合欧美在线一区在线播放| 丁香五月婷婷激情基地| 精品国产一区91在线| 亚洲第一成年人网站| 久久福利片| 丁香婷婷久久| 深爱婷婷激情网| 亚洲精品欧美日本中文字幕| 国产精品尹人在线观看| 久视频免费精品6| av在线手机播放| 日日碰狠狠添天天爽| 国产精品第一区| 国产精品爽爽va在线无码观看 | 日本免费福利视频| 99热这里只有精品在线播放| 亚洲欧美日韩中文字幕在线一区| 国产男女XX00免费观看| 精品视频福利| 中国精品久久| 日韩高清欧美| 亚洲日韩AV无码一区二区三区人| 亚洲无码高清一区二区| 中国国产一级毛片| 国产在线无码av完整版在线观看| 免费在线视频a| 欧美精品亚洲二区| 一个色综合久久| 国产精品偷伦在线观看| 欧美三级视频网站| 欧美亚洲欧美区| 午夜不卡视频| 亚洲人成网站在线播放2019| 88国产经典欧美一区二区三区| 国产综合欧美| 国产麻豆另类AV| 色悠久久久| 女人毛片a级大学毛片免费| 999精品视频在线|