基于tlv結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法及網(wǎng)管配置模塊的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及數(shù)據(jù)通信領(lǐng)域,尤其設(shè)及一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方 法。
【背景技術(shù)】
[0002] 設(shè)備的業(yè)務(wù)配置功能部分,在網(wǎng)管中占有比較大的比重,通過網(wǎng)管系統(tǒng)中的配置 模塊可方便直觀的根據(jù)實(shí)際組網(wǎng)情況獲得網(wǎng)管系統(tǒng)中被管理設(shè)備的數(shù)據(jù)配置信息,同時(shí)對(duì) 被管理的設(shè)備下發(fā)參數(shù)配置。
[0003] 網(wǎng)絡(luò)管理系統(tǒng)是一個(gè)軟硬件結(jié)合W軟件為主的分布式網(wǎng)絡(luò)應(yīng)用系統(tǒng),通過網(wǎng)絡(luò)管 理系統(tǒng)對(duì)網(wǎng)絡(luò)進(jìn)行管理,是保障網(wǎng)絡(luò)可靠、高效且正常運(yùn)行的重要手段。隨著網(wǎng)絡(luò)技術(shù)的不 斷發(fā)展,應(yīng)用水平的不斷提高,網(wǎng)絡(luò)環(huán)境和組網(wǎng)結(jié)構(gòu)越來越復(fù)雜,網(wǎng)絡(luò)管理系統(tǒng)的功能也在 不斷地增強(qiáng),同時(shí)網(wǎng)絡(luò)管理的技術(shù)和方法也在不斷地創(chuàng)新。
[0004] 目前已有的方案,在實(shí)現(xiàn)網(wǎng)絡(luò)管理系統(tǒng)配置管理上,基于C/S架構(gòu)的網(wǎng)絡(luò)管理系 統(tǒng)配置管理前后臺(tái)通信消息結(jié)構(gòu)體是采用的struct結(jié)構(gòu)的固定長度的結(jié)構(gòu)設(shè)計(jì),頁面用 于顯示配置參數(shù)值的控件均需綁定變量,而基于B/S架構(gòu)實(shí)現(xiàn)的網(wǎng)絡(luò)管理系統(tǒng)配置管理則 是通過ht化報(bào)文Wjson數(shù)據(jù)方式進(jìn)行前后臺(tái)通信的。 陽〇化]目前現(xiàn)有的技術(shù),同樣是基于C/S架構(gòu)實(shí)現(xiàn)的網(wǎng)絡(luò)管理系統(tǒng),通過struct結(jié)構(gòu)的 固定長度的消息結(jié)構(gòu)體存儲(chǔ)配置項(xiàng),需要前后臺(tái)定義的結(jié)構(gòu)體保持一致,同時(shí)初始化結(jié)構(gòu) 體時(shí)字符型配置參數(shù)的長度需要與結(jié)構(gòu)體中定義的長度保持一致,否則會(huì)報(bào)錯(cuò),尤其在MIB 節(jié)點(diǎn)有變化的情況下;在固定長度設(shè)計(jì)中需對(duì)頁面顯示各配置參數(shù)的控件綁定變量,配置 參數(shù)較多時(shí),該操作較繁瑣;并且網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,初始化結(jié)構(gòu)體W及從結(jié)構(gòu)體取值并賦給 界面上對(duì)應(yīng)的控件等均未進(jìn)行封裝,導(dǎo)致前臺(tái)代碼不夠簡潔且代碼量較大,不易于后期維 護(hù)。因此怎樣提供一個(gè)靈活、不易出錯(cuò)、方便處理的數(shù)據(jù)結(jié)構(gòu),W及縮減前臺(tái)業(yè)務(wù)配置部分 的開發(fā)及維護(hù)成本和負(fù)擔(dān),使新的配置接口能滿足易擴(kuò)展、易維護(hù)的要求,同時(shí)方便支持未 來的需求,無疑是程序必須急待解決的問題。
【發(fā)明內(nèi)容】
[0006] 鑒于上述問題,本申請(qǐng)記載了一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,所 述方法包括:
[0007] 將用戶需要配置參數(shù)創(chuàng)建一份XML文件;
[0008] 為設(shè)備創(chuàng)建一個(gè)通用配置模版文件;
[0009] 獲取網(wǎng)管配置信息并顯示;
[0010] 下發(fā)配置數(shù)據(jù);
[0011] 其中,所述XML文件中存儲(chǔ)有需要中英文顯示的靜態(tài)控件的ID,每個(gè)所述靜態(tài)控 件對(duì)應(yīng)全局唯一的ID。
[0012] 較佳的,配置界面基于MFC實(shí)現(xiàn),在所述配置界面顯示前初始化函數(shù)根據(jù)用戶登 錄網(wǎng)關(guān)系統(tǒng)時(shí)選擇的中英文來獲取所述XML文件中對(duì)應(yīng)所述參數(shù)。
[0013] 較佳的,所述通用配置模版文件采用TLV變長消息結(jié)構(gòu)。
[0014] 較佳的,所述通用配置模版文件包括多組MIB參數(shù)結(jié)點(diǎn)組成的組、MIB參數(shù)結(jié)點(diǎn)W 及由一組MIB參數(shù)結(jié)點(diǎn)組成的組。
[0015] 較佳的,所述MIB參數(shù)結(jié)點(diǎn)包括所述MIB參數(shù)結(jié)點(diǎn)對(duì)應(yīng)的TAG、所述MIB參數(shù)結(jié)點(diǎn) 值的長度W及所述MIB參數(shù)結(jié)點(diǎn)的值。
[0016] 較佳的,所述由一組MIB參數(shù)結(jié)點(diǎn)組成的組包括緩存文件W及所述由一組MIB參 數(shù)結(jié)點(diǎn)組成的組的索引。
[0017] 較佳的,獲取所述網(wǎng)管配置信息并顯示的過程包括步驟:
[0018] 生成通用配置模版文件對(duì)象ObjPackage;
[0019] 調(diào)用addltem方法將要獲取的所述配置參數(shù)對(duì)應(yīng)的Tag值W及長度加入數(shù)組;
[0020] 調(diào)用ge證ata方法組織需要發(fā)送給server的數(shù)據(jù),然后將組成的TLV數(shù)據(jù)、對(duì)應(yīng) 的命令碼和返回的消息對(duì)象作為參數(shù)調(diào)用ClientSendSyncMsg向sever發(fā)送異步消息;
[0021] 若所述消息發(fā)送成功則通過所述對(duì)象objPackage調(diào)用Se社)ata解析來自server 的報(bào)文,并按照group和item進(jìn)行存儲(chǔ);
[0022] 調(diào)用網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換接口將轉(zhuǎn)換后的值賦給Tag對(duì)應(yīng)的控件來顯示。
[0023] 較佳的,下發(fā)配置數(shù)據(jù)的過程包括步驟:
[0024] 獲取配置界面輸入框控件對(duì)應(yīng)的值; 陽0巧]進(jìn)行網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,生成通用配置模版文件對(duì)象ObjPackage; 陽0%] 調(diào)用addltem方法,將轉(zhuǎn)換后的值及對(duì)應(yīng)的Tag值和長度,加入數(shù)組;
[0027] 調(diào)用ge證ata方法組織需要發(fā)送給server的數(shù)據(jù);
[002引將組成的TLV數(shù)據(jù)、對(duì)應(yīng)的命令碼和返回的消息對(duì)象作為參數(shù)調(diào)用ClientSendSyncMsg向sever發(fā)送異步消息;
[0029] sever再將配置下發(fā)到所述設(shè)備。
[0030] 上述技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果:本發(fā)明主要用于提供一種基于TLV結(jié)構(gòu) 的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,主要包括XML文件設(shè)計(jì)、通用配置類設(shè)計(jì)、網(wǎng)管配置信息獲取 及顯示和配置數(shù)據(jù)下發(fā)幾部分。網(wǎng)管系統(tǒng)是管理多種不同設(shè)備的綜合管理軟件平臺(tái),本發(fā) 明在消息結(jié)構(gòu)設(shè)計(jì)時(shí)充分考慮到消息結(jié)構(gòu)長度的靈活性,采用了TLV可變長結(jié)構(gòu),避免了 按照固定長度的結(jié)構(gòu)設(shè)計(jì)時(shí),需要前后臺(tái)定義的結(jié)構(gòu)體保持一致,否則會(huì)報(bào)錯(cuò)的問題,尤其 在MIB節(jié)點(diǎn)有變化的情況下;在TLV結(jié)構(gòu)設(shè)計(jì)時(shí)直接將顯示頁面各配置參數(shù)的控件ID與 TAG值通過MAP結(jié)構(gòu)關(guān)聯(lián),省去了固定長度設(shè)計(jì)中對(duì)各個(gè)參數(shù)的顯示控件綁定變量的操作; 同時(shí)對(duì)網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,TLV的構(gòu)造和解析、將配置參數(shù)賦給界面上對(duì)應(yīng)的控件等操作進(jìn)行 了封裝,提供簡單易用的調(diào)用接口。配置接口的調(diào)用,縮減了前臺(tái)業(yè)務(wù)配置部分的開發(fā)及維 護(hù)成本和負(fù)擔(dān);新的配置接口,滿足易擴(kuò)展、易維護(hù)的要求,方便支持未來的需求,比如業(yè)務(wù) 配置的模板化。
【附圖說明】
[0031] 參考所附附圖,W更加充分的描述本發(fā)明的實(shí)施例。然而,所附附圖僅用于說明和 闡述,并不構(gòu)成對(duì)本發(fā)明范圍的限制。
[0032] 圖I為本發(fā)明一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法的總體流程圖;
[0033] 圖2為本發(fā)明一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法中獲取網(wǎng)管配置信息 并顯示過程的流程圖;
[0034] 圖3為本發(fā)明一種基于TLV結(jié)構(gòu)的網(wǎng)關(guān)配置模塊的實(shí)現(xiàn)方法中下發(fā)配置數(shù)據(jù)過程 的流程圖。
【具體實(shí)施方式】
[0035] 下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn) 方法進(jìn)行詳細(xì)說明。
[0036] 實(shí)施例一
[0037] 如圖1所示,一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,包括步驟:
[003引將用戶需要配置的各類型的參數(shù)創(chuàng)建一份XML文件;
[0039] 為設(shè)備創(chuàng)建一個(gè)通用配置模版文件;
[0040] 獲取網(wǎng)管配置信息并顯示;
[0041] 下發(fā)配置數(shù)據(jù)。
[0042] 其中,基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法主要包括XML文件設(shè)計(jì)、通用配置 模版的設(shè)計(jì)、網(wǎng)關(guān)配置信息獲取及顯示W(wǎng)及配置數(shù)據(jù)的下發(fā)。
[0043] 具體來說,將用戶需要配置的各類型的參數(shù)創(chuàng)建一份XML文件的過程主要為設(shè)及 XML文件的設(shè)計(jì)。本實(shí)施例中配置管理部分頁面中英文主要基于XML文件實(shí)現(xiàn),配置界面是 基于MFC實(shí)現(xiàn)的,界面上的元素由不同的控件組成,每個(gè)控件均對(duì)應(yīng)全局唯一的ID。在XML 文件中,根據(jù)需要中英文顯示的靜態(tài)控件的ID存儲(chǔ)對(duì)應(yīng)的中英文,在界面顯示前的初始化 函數(shù)化InitDialog中根據(jù)用戶登錄網(wǎng)管系統(tǒng)時(shí)選擇的中英文來獲取對(duì)應(yīng)的中英文并調(diào)用 SetWindowText函數(shù)顯示。W端口鏡像配置為例:
[0044] <DLG_M{R民OR-CFG> <STATIC_M化民OR_PO財(cái)興 <ZH>鏡像端口號(hào)</ZH> <EN>MirrorPort</EN> </STATIC-MWROR-PORT〉 <STATIC_MIR艮 0R_ING艮ESSP0RT> <ZH> 進(jìn)端口 </ZH> <EN>MirrorlngressPort</EN> </S7ATIC_MIRROR_JNGRESSPORT> <STATIC_MIR艮 0R_EGRESSP0RT> <ZH>出端口</ZH> <EN>Mim)化隻傲沈oit</EN> </STAT!C_MI民民OR_EG民ESSPORT> </DLG_M化艮 0R_CFG>
[0045] 為設(shè)備創(chuàng)建一個(gè)通用配置模版文件的過程主要設(shè)及通用配置模版文件的設(shè)計(jì)。本 實(shí)施例中前后臺(tái)通信的消息結(jié)構(gòu),采用TLV變長消息結(jié)構(gòu),通用配置類CCommConfig(即通 用配置模版文件)在設(shè)計(jì)之初充分考慮到接口的易擴(kuò)展性和易維護(hù)性,同時(shí)要方便支持未 來的需求,并且通過配置接口的調(diào)用可W縮減前臺(tái)業(yè)務(wù)配置部分的開發(fā)及維護(hù)成本和負(fù) 擔(dān)。對(duì)網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,TLV的構(gòu)造和解析等進(jìn)行了封裝,提供簡單易用的調(diào)用接口。
[0046] 用配置類CCommConfig屬性如下表1所示:
[0047] 表 1CCommConfig成員列表
[0048]
[0049] 主要方法及功能如下:
[(K)加]CCommConfig: : createGroup方法:包!建一個(gè)item group,并添加到數(shù)組末尾;
[0051] CCommConfig: :addltem方法:往數(shù)組中最后一個(gè)group中添加一個(gè)item ;
[0052] CCommConfig: :getData方法:組織需要發(fā)送給server的數(shù)據(jù); 陽化引 CCommConfig::SetData方法:解析來自server的報(bào)文,并按照group和item進(jìn) 行存儲(chǔ);
[0054] CCommConfig: :getItemInfo方法:根據(jù)結(jié)點(diǎn)對(duì)應(yīng)的TAG值,在解析后的Group中 取出對(duì)應(yīng)的值; 陽化5] 其中,CTlvItem和CTlvItemGroup為通用配置類成員對(duì)應(yīng)的類,CTlvItem是MIB 參數(shù)結(jié)點(diǎn)類,CTlvItemGroup是MIB參數(shù)結(jié)點(diǎn)組成的組類。
[0056] CTlvItem成員列表及主要方法如表2所示:
[0057] 表2 CTlvItem成員列表
[0059] 主要方法及功能如下:
[0060] CTlvItem: : getItemID方法:取MIB參數(shù)結(jié)點(diǎn)對(duì)應(yīng)的TAG ;
[0061] CTlvItem: :getValue方法:取MIB參數(shù)結(jié)點(diǎn)對(duì)應(yīng)的值;
[0062] CTlvItem: : getSize方法:取MIB參數(shù)結(jié)點(diǎn)值的長度;
[0063]CTlvItemGroup成員列表及主要方法表3所示:
[0064]表 3CTlvItemGroup成員列表 陽0化]
[0066] 主要方法及功能:
[0067]CTlvItemGroup: :addltem方法:新創(chuàng)建一個(gè)item;
[0068]CTlvItemGroup::getItemInfo方法:讀取該組中的一個(gè)item信息;
[0069]CTlvItemGroup: :getData方法:把該組的所有item轉(zhuǎn)化為TLV的格式;
[0070]CTlvItemGroup: :release方法:刪除該組中