李亞平 劉夢(mèng)陽 張一村 何曉煥 敦科翔
摘要:真實(shí)的網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜多級(jí)、設(shè)備數(shù)量及種類較多,難以對(duì)網(wǎng)元信息及設(shè)備故障告警信息等進(jìn)行高度、全面、直觀的可視化監(jiān)控。介紹了JSON, JTopo技術(shù)的重要特性、優(yōu)勢(shì)以及系統(tǒng)總體設(shè)計(jì)與數(shù)據(jù)處理過程,實(shí)現(xiàn)了一種基于JSON的網(wǎng)管拓?fù)涠ㄖ?,具有?gòu)建靈活、多級(jí)展示、便于存儲(chǔ)、映射準(zhǔn)確和耦合性低等特點(diǎn),使設(shè)備告警故障分析與定位更加直觀化、自動(dòng)化及智能化,具有一定的應(yīng)用價(jià)值。
關(guān)鍵詞:JSON;JTopo;網(wǎng)管;拓?fù)?/p>
中圖分類號(hào):TP393.02文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2019)19-65-4
0引言
JSON是一種輕量級(jí)的數(shù)據(jù)交換語言,可在很大程度上節(jié)省數(shù)據(jù)量[1],JTopo是一款國產(chǎn)免費(fèi)且強(qiáng)大的拓?fù)鋱D形化界面開發(fā)工具[2]。由于真實(shí)的網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜多級(jí)、設(shè)備數(shù)量及種類較多,難以對(duì)網(wǎng)元信息、設(shè)備故障告警信息等進(jìn)行全面、直觀的可視化監(jiān)控,針對(duì)這一問題,結(jié)合JSON, JTopo技術(shù)的優(yōu)勢(shì),實(shí)現(xiàn)了一種基于JSON的網(wǎng)管拓?fù)涠ㄖ?,使得設(shè)備告警故障分析與定位更加直觀化、自動(dòng)化和智能化。
1關(guān)鍵技術(shù)
1.1 JSON的重要特性
JSON數(shù)據(jù)格式簡潔清晰,是獨(dú)立于語言的文本格式,為開發(fā)者閱讀和計(jì)算機(jī)解析提供便利[3]。JSON具有下列重要特性:①擴(kuò)展性良好,能夠彌補(bǔ)HTML僅能描述數(shù)據(jù)顯示樣式的缺點(diǎn)[4];②格式簡潔清晰、占用帶寬少、傳輸速率高[5];③易于解析和處理,大大提升開發(fā)效率;④支持多種語言,易于維護(hù)。
1.2 JTopo優(yōu)勢(shì)
JTopo基于HTML5 Canvas關(guān)系[6],相對(duì)于當(dāng)下的很多圖形界面開發(fā)軟件,具有如下優(yōu)勢(shì):①接口設(shè)計(jì)簡單,圖形構(gòu)建便捷;②兼容性良好[7];③采用JSON數(shù)據(jù)格式進(jìn)行數(shù)據(jù)傳輸,格式簡潔清晰;④使用方便,容易閱讀,用戶滿意度高;⑤占用空間少,傳輸高效[8]。
2系統(tǒng)總體設(shè)計(jì)
2.1拓?fù)浣Y(jié)構(gòu)
拓?fù)涑橄蠛蜋C(jī)框資源抽象如圖1所示。
拓?fù)涫蔷W(wǎng)管系統(tǒng)的主要展現(xiàn)形式,是融合展示、一體化集成操作的關(guān)鍵所在。拓?fù)涫菢湫谓Y(jié)構(gòu),可抽象成類似的數(shù)據(jù)格式。拓?fù)涞淖泳W(wǎng)是一個(gè)小型拓?fù)?,可邏輯迭代、降低冗余,?shí)現(xiàn)分層。設(shè)備可通過3級(jí)設(shè)備描述網(wǎng)元進(jìn)行描述,一個(gè)機(jī)框資源可對(duì)應(yīng)多個(gè)設(shè)備。
2.2整體框架設(shè)計(jì)
網(wǎng)管拓?fù)鋵?shí)現(xiàn)的整體架構(gòu)如圖2所示,采用B/S架構(gòu),從模塊上可分為以下4個(gè)部分。
①前臺(tái)界面層:系統(tǒng)的前端模塊,負(fù)責(zé)發(fā)送用戶操作請(qǐng)求到業(yè)務(wù)邏輯層,然后接收并顯示返回結(jié)果。本系統(tǒng)使用JTopo實(shí)現(xiàn)拓?fù)浜透婢认嚓P(guān)信息的展示。具體包括:界面組成、顯示及操作。
②后臺(tái)數(shù)據(jù)處理模塊:系統(tǒng)的業(yè)務(wù)邏輯層,負(fù)責(zé)接收界面層發(fā)送的操作請(qǐng)求并對(duì)數(shù)據(jù)層進(jìn)行訪問,將結(jié)果以JSON格式返回給界面層。本系統(tǒng)使用Java技術(shù),其相關(guān)數(shù)據(jù)處理過程,包括告警管理及網(wǎng)元和拓?fù)涔芾怼?/p>
③數(shù)據(jù)庫接口Hibernate:在本系統(tǒng)中負(fù)責(zé)連接后臺(tái)數(shù)據(jù)處理模塊與MySQL數(shù)據(jù)庫。
④MySQL數(shù)據(jù)庫:系統(tǒng)的數(shù)據(jù)訪問層,負(fù)責(zé)存儲(chǔ)用戶輸入的原始數(shù)據(jù)和經(jīng)處理后的數(shù)據(jù)。
3數(shù)據(jù)處理實(shí)現(xiàn)
利用JSON數(shù)據(jù)格式和JTopo技術(shù)在網(wǎng)管系統(tǒng)中可以實(shí)現(xiàn)靈活定制、多級(jí)展示、便于存儲(chǔ)、映射準(zhǔn)確、耦合性低的拓?fù)涔芾砉δ埽饕負(fù)湫陆?、拓?fù)鋽?shù)據(jù)展示、拓?fù)渑c網(wǎng)元告警映射等。
3.1關(guān)鍵數(shù)據(jù)表及JSON結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)中涉及的數(shù)據(jù)表包括:系統(tǒng)設(shè)備表(Equips)、拓?fù)鋽?shù)據(jù)表(TopoData)、機(jī)框資源表、產(chǎn)品系列表、設(shè)備類型表以及告警狀態(tài)表等,關(guān)鍵數(shù)據(jù)表設(shè)計(jì)如表1所示。
表1為系統(tǒng)設(shè)備表,用來存儲(chǔ)系統(tǒng)所管理的實(shí)際物理設(shè)備。設(shè)備通過TopoID與TopoData表關(guān)聯(lián),表示設(shè)備所屬拓?fù)洹TO(shè)備通過ResID與機(jī)框資源表關(guān)聯(lián),表示設(shè)備所屬機(jī)框資源。通過Series, Style, EquipID能唯一確定某個(gè)設(shè)備,并且通過Series, Style與產(chǎn)品系列表和設(shè)備類型表進(jìn)行關(guān)聯(lián)。
拓?fù)鋽?shù)據(jù)表,用來存儲(chǔ)系統(tǒng)的拓?fù)鋽?shù)據(jù)。關(guān)鍵設(shè)計(jì)通過所屬父拓?fù)涞腎D將拓?fù)渑c子網(wǎng)進(jìn)行關(guān)聯(lián),給定最上層拓?fù)銲D即可查詢其下層的所有子網(wǎng)。通過子網(wǎng)ID唯一確定某個(gè)子網(wǎng)。設(shè)備的JSON結(jié)構(gòu)的主要key值說明如表2所示。
3.2拓?fù)湫陆▽?shí)現(xiàn)
拓?fù)湫陆ǖ暮笈_(tái)數(shù)據(jù)處理流程如圖3所示。
首先解析拓?fù)銳SON,得到拓?fù)湫畔⒓熬W(wǎng)元信息JSON,然后將網(wǎng)元信息JSON以HTML形式保存到指定路徑;再保存拓?fù)湫畔⒌絋opoData表;接著解析網(wǎng)元信息JSON為設(shè)備、子網(wǎng)或IMS;保存設(shè)備到Equips表,保存子網(wǎng)和IMS到TopoData表;最后判斷數(shù)據(jù)是否保存成功,返回結(jié)果到前臺(tái),并給出提示。
3.3拓?fù)湔故緦?shí)現(xiàn)
拓?fù)湔故镜牧鞒虉D如圖4所示。
前臺(tái)進(jìn)行Ajax請(qǐng)求,后臺(tái)根據(jù)TopoID查詢拓?fù)?,得到HTML文件路徑、背景圖路徑、Equips表及TopoData表等需要展示的數(shù)據(jù),然后對(duì)其進(jìn)行業(yè)務(wù)處理及數(shù)據(jù)庫操作,再將對(duì)象封裝為JSON格式,前臺(tái)調(diào)用Ready函數(shù),獲取JSON數(shù)據(jù)并解析,然后利用JTopo對(duì)其展示。
3.4拓?fù)渑c網(wǎng)元告警映射實(shí)現(xiàn)
拓?fù)渑c網(wǎng)元告警映射實(shí)現(xiàn)流程如下:
①前臺(tái)通過定時(shí)器進(jìn)行Ajax請(qǐng)求;
②后臺(tái)根據(jù)拓?fù)銲D通過回調(diào)函數(shù)查詢所有屬于該拓?fù)涞淖泳W(wǎng),然后通過拓?fù)銲D查詢系統(tǒng)設(shè)備表和告警狀態(tài)表,如果屬于子網(wǎng)的設(shè)備存在告警,則子網(wǎng)也存在告警,子網(wǎng)的告警信息取決于屬于該子網(wǎng)的設(shè)備的最高級(jí)別的告警,得到所有子網(wǎng)的告警信息,包括子網(wǎng)ID、告警級(jí)別和告警顏色;
③后臺(tái)根據(jù)拓?fù)銲D查詢屬于當(dāng)前拓?fù)涞乃性O(shè)備及其對(duì)應(yīng)的告警狀態(tài),得到當(dāng)前拓?fù)湓O(shè)備的告警信息,包括產(chǎn)品系列—設(shè)備類型—設(shè)備ID、告警級(jí)別和告警顏色;
④將存在告警的對(duì)象(包括設(shè)備及子網(wǎng))及相應(yīng)告警信息封裝為JSON數(shù)據(jù)格式;
⑤前臺(tái)根據(jù)唯一標(biāo)識(shí)對(duì)JSON進(jìn)行解析,得到相應(yīng)告警信息;
⑥前臺(tái)啟用告警閃爍定時(shí)器,顯示拓?fù)渲芯W(wǎng)元的告警顏色和告警級(jí)別信息。
通過上述拓?fù)湫陆?、?shù)據(jù)展示、拓?fù)渑c網(wǎng)元告警映射,可以實(shí)現(xiàn)整個(gè)網(wǎng)管系統(tǒng)實(shí)時(shí)、直觀地展示信息。同時(shí)在拓?fù)湔故卷撁嬷校€可以查看當(dāng)前告警、歷史告警,清除當(dāng)前告警及對(duì)設(shè)備進(jìn)行配置等。
本系統(tǒng)除了實(shí)現(xiàn)上述功能外,還完成了拓?fù)渚庉?、機(jī)框資源管理、設(shè)備描述網(wǎng)元與告警映射等。
4實(shí)驗(yàn)結(jié)果
經(jīng)過拓?fù)湫陆?、展示及拓?fù)渑c網(wǎng)元告警映射后,利用JSON, JTopo技術(shù)繪制出網(wǎng)管拓?fù)鋱D和機(jī)框資源圖,分別如圖5和圖6所示。圖5中顯示各網(wǎng)元、子網(wǎng)及IMS的當(dāng)前狀態(tài),若存在告警,則閃爍顯示告警級(jí)別及告警顏色。圖6中顯示各設(shè)備描述網(wǎng)元的當(dāng)前狀態(tài),若存在告警,則閃爍顯示告警級(jí)別及相應(yīng)的告警顏色。
相對(duì)于其他拓?fù)鋱D,該網(wǎng)管拓?fù)渚哂懈叨燃?、分層解耦、高效處理、完美兼容及靈活部署等優(yōu)勢(shì),可多級(jí)展示、便于存儲(chǔ)、映射準(zhǔn)確,實(shí)現(xiàn)故障設(shè)備及單元的快速定位,提高分析與解決故障的效率。
5結(jié)束語
介紹了JSON, JTopo技術(shù)的重要特性及優(yōu)勢(shì)、系統(tǒng)總體設(shè)計(jì)與數(shù)據(jù)處理過程,繪制了網(wǎng)管拓?fù)鋱D,具有高度集成、分層解耦、高效處理、完美兼容及靈活部署等優(yōu)勢(shì),設(shè)備告警故障分析與定位更加直觀化、自動(dòng)化及智能化,未來可借鑒和應(yīng)用于設(shè)備配置、云平臺(tái)、監(jiān)控系統(tǒng)和智慧城市等。
參考文獻(xiàn)
[1]葉晶晶.基于HTML5的拓?fù)鋱D繪制引擎設(shè)計(jì)與實(shí)現(xiàn)[D].南昌:南昌航空大學(xué), 2017.
[2]黃永旭.Web網(wǎng)絡(luò)拓?fù)湔故鞠到y(tǒng)關(guān)鍵技術(shù)研究[D].北京:北京郵電大學(xué), 2017.
[3]平淑文,潘玨羽,張學(xué)金,等.基于HTML5和Java Script輕量型動(dòng)畫框架開發(fā)[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2013,23(12):5-10.
[4]朱峰.基于JSON的互聯(lián)網(wǎng)異構(gòu)數(shù)據(jù)整合的應(yīng)用研究[D].南京:南京郵電大學(xué), 2016.
[5] Crockford D. JSON:The Fat-free Alternative to XML[J].Proc of XML,2016:1-13.
[6]谷偉.基于HTML5 Canvas的客戶端圖表技術(shù)研究[J].信息技術(shù), 2013,37(9):107-110.
[7]吳煜州.XML壓縮算法及二進(jìn)制數(shù)據(jù)序列化研究[D].廈門:廈門大學(xué), 2012.
[8]王粵.硬件資源信息獲取與展示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].開封:河南大學(xué), 2018.
[9]過其峰,阮海波,王玉紅,等.基于Flex和Java的配網(wǎng)通信網(wǎng)管系統(tǒng)的拓?fù)湓O(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化技術(shù)與應(yīng)用,2018,37(12):48-50.