的所有item,釋放空間。
[0071] 如圖2所示,網(wǎng)管配置信息的獲取和顯示是在界面顯示前的初始化函數(shù) 化InitDialog中完成的。先生成通用配置類CCommConfig對(duì)象objPackage,然后通過(guò)該對(duì) 象調(diào)用addltem方法將要獲取的各配置參數(shù)對(duì)應(yīng)的Tag值、長(zhǎng)度加入數(shù)組,再調(diào)用getData 方法組織需要發(fā)送給server的數(shù)據(jù),然后將組成的TLV數(shù)據(jù)、對(duì)應(yīng)的命令碼和返回的消息 對(duì)象作為參數(shù)調(diào)用ClientSendSyncMsg向sever發(fā)送異步消息,若成功則通過(guò)CCommConfig 對(duì)象objPackage調(diào)用SetData解析來(lái)自server的報(bào)文,并按照group和item進(jìn)行存儲(chǔ); 最后調(diào)用網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換接口將轉(zhuǎn)換后的值賦給Tag對(duì)應(yīng)的控件來(lái)顯示。
[0072] 在下發(fā)配置數(shù)據(jù)的過(guò)程中,修改了配置參數(shù)的值并確定修改后,在確認(rèn)按鈕響應(yīng) 的事件中完成配置數(shù)據(jù)的下發(fā)。如圖3所示,首先獲取配置界面輸入框控件對(duì)應(yīng)的值,然 后進(jìn)行網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,生成通用配置類CCommConfig對(duì)象objPackage,并調(diào)用addltem 方法,將轉(zhuǎn)換后的值及對(duì)應(yīng)的Tag和長(zhǎng)度,加入數(shù)組,再調(diào)用ge證ata方法組織需要發(fā)送 給server的數(shù)據(jù),然后將組成的TLV數(shù)據(jù)、對(duì)應(yīng)的命令碼和返回的消息對(duì)象作為參數(shù)調(diào)用 ClientSendSyncMsg向sever發(fā)送異步消息,sever再將配置下發(fā)到設(shè)備即可生效。
[0073] 本實(shí)施例提出的基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,XML實(shí)現(xiàn)配置管理界 面中英文顯示,網(wǎng)管配置前后臺(tái)通信的消息結(jié)構(gòu)長(zhǎng)度可變,在TLV結(jié)構(gòu)設(shè)計(jì)時(shí)直接將顯示 頁(yè)面各配置參數(shù)的控件ID與TAG值通過(guò)MAP結(jié)構(gòu)關(guān)聯(lián),省去了固定長(zhǎng)度設(shè)計(jì)中對(duì)各個(gè)參數(shù) 的顯示控件綁定變量的操作,并對(duì)網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,TLV的構(gòu)造和解析等進(jìn)行了封裝,提供 簡(jiǎn)單易用的接口調(diào)用。在支持對(duì)其它設(shè)備的管理配置時(shí),若配置項(xiàng)對(duì)應(yīng)的MIB-致,直接就 可W支持而無(wú)需修改代碼;若不一致,則只是請(qǐng)求的結(jié)構(gòu)體和頁(yè)面顯示需要W設(shè)備型號(hào)來(lái) 區(qū)分,其它代碼不同型號(hào)設(shè)備可通用,無(wú)需改動(dòng),通用類中的配置接口在不同設(shè)備間亦可通 用,可快速支持對(duì)其它設(shè)備配置的管理。且代碼簡(jiǎn)潔,實(shí)現(xiàn)時(shí)間短,其特征在于包括:
[0074]DXML實(shí)現(xiàn)中英文。XML文件用于存儲(chǔ)配置管理部分頁(yè)面中英文,配置界面是基于 MFC(Microsoft化undationClasses,微軟基礎(chǔ)類庫(kù))實(shí)現(xiàn)的,通過(guò)加載XML動(dòng)態(tài)鏈接庫(kù)在 程序中可W非常方便的操作XML文件。界面上的元素由不同的控件組成,每個(gè)控件均對(duì)應(yīng) 全局唯一的ID。在XML文件中,根據(jù)需要中英文顯示的靜態(tài)控件的ID存儲(chǔ)對(duì)應(yīng)的中英文, 在界面顯示前的初始化函數(shù)化InitDialog中根據(jù)用戶登錄網(wǎng)管系統(tǒng)時(shí)選擇的中英文來(lái)獲 取對(duì)應(yīng)的中英文并調(diào)用SetWindowText函數(shù)顯示。
[0075] 2)控件與TAG關(guān)聯(lián)。在數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)時(shí)直接將顯示頁(yè)面各配置參數(shù)的控件ID與 TAG值通過(guò)MAP結(jié)構(gòu)關(guān)聯(lián),省去了固定長(zhǎng)度設(shè)計(jì)中對(duì)各個(gè)參數(shù)的顯示控件綁定變量的操作。
[0076] 3)消息結(jié)構(gòu)長(zhǎng)度可變。前后臺(tái)消息通信采用TLV可變長(zhǎng)格式,client和sever端 只需按TLV的組包和解包規(guī)則來(lái)對(duì)配置參數(shù)進(jìn)行封裝和解析即可,無(wú)需像struct固定長(zhǎng)度 的結(jié)構(gòu)設(shè)計(jì)那樣需要client和sever端分別保存相同結(jié)構(gòu)和長(zhǎng)度的配置參數(shù)對(duì)應(yīng)的結(jié)構(gòu) 體,避免了因結(jié)構(gòu)體不一致導(dǎo)致的錯(cuò)誤,處理起來(lái)也比較靈活。 陽(yáng)077] 4)TLV的構(gòu)造和解析。網(wǎng)管前后臺(tái)通信消息結(jié)構(gòu)約定為T(mén)LV結(jié)構(gòu),在client向 sever發(fā)送GET請(qǐng)求時(shí),client需要根據(jù)該結(jié)構(gòu)將各個(gè)要獲取的參數(shù)組織成TLV字符串發(fā) 送給server端,sever端收到數(shù)據(jù)后需要先按照TLV結(jié)構(gòu)對(duì)數(shù)據(jù)包進(jìn)行拆分(即解析)W 便知道要從設(shè)備取哪些配置參數(shù)的值。sever端在取到值后也要根據(jù)該結(jié)構(gòu)將獲取到的配 置參數(shù)的值組織成TLV字符串返回給client端,client端收到返回的值后按TLV結(jié)構(gòu)進(jìn) 行拆分(即解析)成各個(gè)配置項(xiàng)和值并將其顯示。沈T請(qǐng)求同理,運(yùn)樣不寶述。
[0078] 5)自定義通用配置類提供接口調(diào)用。為了避免重復(fù)編寫(xiě)代碼導(dǎo)致代碼冗余,使功 能能夠重復(fù)利用,縮短類似功能的開(kāi)發(fā)時(shí)間,運(yùn)里將各配置項(xiàng)通用的網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,TLV 的構(gòu)造和解析等功能進(jìn)行了封裝,直接通過(guò)生成通用配置類的對(duì)象來(lái)調(diào)用,代碼結(jié)構(gòu)簡(jiǎn)潔, 使用起來(lái)也非常方便。
[0079] 所述變長(zhǎng)消息結(jié)構(gòu),是指前后臺(tái)進(jìn)行通信的消息結(jié)構(gòu)長(zhǎng)度不固定,可W根據(jù)約定 的TLV組包和解包規(guī)則對(duì)配置參數(shù)進(jìn)行構(gòu)造和解析,消息長(zhǎng)度視配置參數(shù)類型、個(gè)數(shù)和值 而定。
[0080] 所述TLV結(jié)構(gòu),tag-length-value(TLV)Jag(標(biāo)簽),Length(長(zhǎng)度),Value(值), 在數(shù)據(jù)通信領(lǐng)域中,T、L字段的長(zhǎng)度往往固定(通常為1~4bytes),V字段長(zhǎng)度可變。T字 段表示報(bào)文類型,L字段表示報(bào)文長(zhǎng)度、V字段往往用來(lái)存放報(bào)文的內(nèi)容。
[0081] 所述XML動(dòng)態(tài)鏈接庫(kù),在程序中解析XML文件時(shí),需要引入msxmie.dll,就不需要 我們自己編寫(xiě)XML的語(yǔ)法分析器了。它是一個(gè)COM(Component化jectModel)對(duì)象庫(kù),將 進(jìn)行XML解析時(shí)所需要的所有對(duì)象進(jìn)行了封裝。因?yàn)镃OM是一種W二進(jìn)制格式出現(xiàn)的可重 用對(duì)象,和語(yǔ)言無(wú)關(guān),可W用任何語(yǔ)言(如VC,C++Builder等等)對(duì)它進(jìn)行調(diào)用,在應(yīng)用中 實(shí)現(xiàn)對(duì)XML文檔的解析。
[0082] 本發(fā)明針對(duì)網(wǎng)絡(luò)管理系統(tǒng)中的配置管理,提供了一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模 塊的實(shí)現(xiàn)方法,由XML文件設(shè)計(jì)、通用配置類設(shè)計(jì)、網(wǎng)管配置信息獲取及顯示和配置數(shù)據(jù)下 發(fā)幾部分共同完成網(wǎng)管系統(tǒng)中的配置管理功能。本發(fā)明管理頁(yè)面中英文的支持是基于XML 實(shí)現(xiàn)的,通用配置類CCommConfig提供了豐富的接口,客戶端通過(guò)配置相關(guān)MIB結(jié)點(diǎn)對(duì)應(yīng)的 TAG和值(GET時(shí)賦空值),調(diào)用CCommConfig提供的相關(guān)接口函數(shù)組織需要發(fā)送給server 的數(shù)據(jù),向server發(fā)送GET和沈T請(qǐng)求,GET成功則調(diào)用CCommConfig提供的相關(guān)接口函 數(shù)解析server返回的報(bào)文并顯示,處理起來(lái)非常簡(jiǎn)單方便。本系統(tǒng)中配置項(xiàng)主要有:RSTP、 端口鏡像、Q0S、A化訪問(wèn)控制、QINQ、告警配置、P0N、IGMP、SNMP、ONU授權(quán)、SWITCH、VLAN、 VOIP、IPTV、DHCP等。本發(fā)明網(wǎng)管已支持的設(shè)備類型有FP6508和FP8680兩種型號(hào)的化T W及多種型號(hào)的0NU,若要支持對(duì)其它設(shè)備的管理配置,在配置項(xiàng)對(duì)應(yīng)的MIB-致時(shí),直接 就可W支持,若不一致,則只是請(qǐng)求的結(jié)構(gòu)體和頁(yè)面顯示需要W設(shè)備型號(hào)來(lái)區(qū)分,其它代碼 不同型號(hào)設(shè)備可通用,無(wú)需改動(dòng),可快速支持對(duì)其它設(shè)備配置的管理。
[0083] 本發(fā)明提供了基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,前后臺(tái)通信消息結(jié)構(gòu)長(zhǎng) 度可變,在數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)時(shí)直接將顯示頁(yè)面各配置參數(shù)的控件ID與TAG值通過(guò)MAP結(jié)構(gòu)關(guān) 聯(lián),省去了固定長(zhǎng)度設(shè)計(jì)中對(duì)各個(gè)參數(shù)的顯示控件綁定變量的操作。自定義了通用配置類, 對(duì)網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,TLV的構(gòu)造和解析等進(jìn)行了封裝,提供簡(jiǎn)單易用的調(diào)用接口。配置接口 的調(diào)用,縮減了前臺(tái)業(yè)務(wù)配置部分的開(kāi)發(fā)及維護(hù)成本和負(fù)擔(dān);同時(shí),新的配置接口,滿足易 擴(kuò)展、易維護(hù)的要求,方便支持未來(lái)的需求,比如業(yè)務(wù)配置的模板化。
[0084] 通用配置類中的接口與設(shè)備類型無(wú)關(guān),在不同設(shè)備的管理配置中可通用,若要支 持對(duì)其它設(shè)備的管理配置,在配置項(xiàng)對(duì)應(yīng)的MIB-致時(shí),直接就可W支持,若不一致,則只 是請(qǐng)求的結(jié)構(gòu)體和頁(yè)面顯示需要W設(shè)備型號(hào)來(lái)區(qū)分,其它代碼不同型號(hào)設(shè)備可通用,無(wú)需 改動(dòng),可快速支持對(duì)其它設(shè)備配置的管理。
[00化]對(duì)于本領(lǐng)域的技術(shù)人員而言,閱讀上述說(shuō)明后,各種變化和修正無(wú)疑將顯而易見(jiàn)。 因此,所附的權(quán)利要求書(shū)應(yīng)看作是涵蓋本發(fā)明的真實(shí)意圖和范圍的全部變化和修正。在權(quán) 利要求書(shū)范圍內(nèi)任何和所有等價(jià)的范圍與內(nèi)容,都應(yīng)認(rèn)為仍屬本發(fā)明的意圖和范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,其特征在于,所述方法包括: 將用戶需要的配置參數(shù)創(chuàng)建一份XML文件; 為設(shè)備創(chuàng)建一個(gè)通用配置模版文件; 獲取網(wǎng)管配置信息并顯示; 下發(fā)配置數(shù)據(jù); 其中,所述XML文件中存儲(chǔ)有需要中英文顯示的靜態(tài)控件的ID,每個(gè)所述靜態(tài)控件對(duì) 應(yīng)全局唯一的ID。2. 根據(jù)權(quán)利要求1所述的基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,其特征在于,配置 界面基于MFC實(shí)現(xiàn),在所述配置界面顯示前初始化函數(shù)根據(jù)用戶登錄網(wǎng)關(guān)系統(tǒng)時(shí)選擇的中 英文來(lái)獲取所述XML文件中對(duì)應(yīng)所述參數(shù)。3. 根據(jù)權(quán)利要求1所述的基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,其特征在于,所述 通用配置模版文件采用TLV變長(zhǎng)消息結(jié)構(gòu)。4. 根據(jù)權(quán)利要求3所述的基于TLV結(jié)構(gòu)的網(wǎng)關(guān)配置模塊的實(shí)現(xiàn)方法,其特征在于,所述 通用配置模版文件包括多組MIB參數(shù)結(jié)點(diǎn)組成的組、MIB參數(shù)結(jié)點(diǎn)以及由一組MIB參數(shù)結(jié) 點(diǎn)組成的組。5. 根據(jù)權(quán)利要求4所述的基于TLV結(jié)構(gòu)的網(wǎng)關(guān)配置模塊的實(shí)現(xiàn)方法,其特征在于,所述 MIB參數(shù)結(jié)點(diǎn)包括所述MIB參數(shù)結(jié)點(diǎn)對(duì)應(yīng)的TAG、所述MIB參數(shù)結(jié)點(diǎn)值的長(zhǎng)度以及所述MIB 參數(shù)結(jié)點(diǎn)的值。6. 根據(jù)權(quán)利要求4所述的基于TLV結(jié)構(gòu)的網(wǎng)關(guān)配置模塊的實(shí)現(xiàn)方法,其特征在于,所 述由一組MIB參數(shù)結(jié)點(diǎn)組成的組包括緩存文件以及所述由一組MIB參數(shù)結(jié)點(diǎn)組成的組的索 引。7. 根據(jù)權(quán)利要求1所述的基于TLV結(jié)構(gòu)的網(wǎng)關(guān)配置模塊的實(shí)現(xiàn)方法,其特征在于,獲取 所述網(wǎng)管配置信息并顯示的過(guò)程包括步驟: 生成通用配置模版文件對(duì)象objPackage; 調(diào)用addltem方法將要獲取的所述配置參數(shù)對(duì)應(yīng)的Tag值以及長(zhǎng)度加入數(shù)組; 調(diào)用getData方法組織需要發(fā)送給server的數(shù)據(jù),然后將組成的TLV數(shù)據(jù)、對(duì)應(yīng)的命 令碼和返回的消息對(duì)象作為參數(shù)調(diào)用ClientSendSyncMsg向sever發(fā)送異步消息; 若所述消息發(fā)送成功則通過(guò)所述對(duì)象objPackage調(diào)用setData解析來(lái)自server的報(bào) 文,并按照group和item進(jìn)行存儲(chǔ); 調(diào)用網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換接口將轉(zhuǎn)換后的值賦給Tag對(duì)應(yīng)的控件來(lái)顯示。8. 根據(jù)權(quán)利要求1所述的基于TLV結(jié)構(gòu)的網(wǎng)關(guān)配置模塊的實(shí)現(xiàn)方法,其特征在于,下發(fā) 配置數(shù)據(jù)的過(guò)程包括步驟: 獲取配置界面輸入框控件對(duì)應(yīng)的值; 進(jìn)行網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,生成通用配置模版文件對(duì)象objPackage; 調(diào)用addltem方法,將轉(zhuǎn)換后的值及對(duì)應(yīng)的Tag值和長(zhǎng)度,加入數(shù)組; 調(diào)用getData方法組織需要發(fā)送給server的數(shù)據(jù); 將組成的TLV數(shù)據(jù)、對(duì)應(yīng)的命令碼和返回的消息對(duì)象作為參數(shù)調(diào)用ClientSendSyncMsg向sever發(fā)送異步消息; sever再將配置下發(fā)到所述設(shè)備。
【專利摘要】本發(fā)明提供一種基于TLV結(jié)構(gòu)的網(wǎng)管配置模塊的實(shí)現(xiàn)方法,所述方法包括:將用戶需要的配置參數(shù)創(chuàng)建一份XML文件;為設(shè)備創(chuàng)建一個(gè)通用配置模版文件;獲取網(wǎng)管配置信息并顯示;下發(fā)配置數(shù)據(jù);其中,所述XML文件中存儲(chǔ)有需要中英文顯示的靜態(tài)控件的ID,每個(gè)所述靜態(tài)控件對(duì)應(yīng)全局唯一的ID。本發(fā)明在消息結(jié)構(gòu)設(shè)計(jì)時(shí)充分考慮到消息結(jié)構(gòu)長(zhǎng)度的靈活性,采用了TLV可變長(zhǎng)結(jié)構(gòu),避免了按照固定長(zhǎng)度的結(jié)構(gòu)設(shè)計(jì)時(shí),需要前后臺(tái)定義的結(jié)構(gòu)體保持一致,否則會(huì)報(bào)錯(cuò)的問(wèn)題。
【IPC分類】H04L12/24
【公開(kāi)號(hào)】CN105429786
【申請(qǐng)?zhí)枴緾N201510730853
【發(fā)明人】黃玉鳳
【申請(qǐng)人】上海斐訊數(shù)據(jù)通信技術(shù)有限公司
【公開(kāi)日】2016年3月23日
【申請(qǐng)日】2015年10月30日