申山宏 ,李龍江 ,夏 棋
(1.中興通訊股份公司南京研發(fā)中心,江蘇 南京 210012;2.電子科技大學 通信學院,四川 成都 611731)
現(xiàn)代網(wǎng)絡中,網(wǎng)絡規(guī)模不斷發(fā)展,網(wǎng)絡管理系統(tǒng)在維護網(wǎng)絡正常運行和保證網(wǎng)絡服務質(zhì)量上起著不可替代的作用。目前,網(wǎng)管系統(tǒng)主要是基于C/S架構(gòu)建立的,也存在一些具有良好分布性、易擴展性的網(wǎng)絡管理技術(shù),如CORBA技術(shù)、主動網(wǎng)絡技術(shù)、Web技術(shù)和移動代理Agent技術(shù)等,但這些技術(shù)都是基于Internet環(huán)境下的?;贑/S架構(gòu)的網(wǎng)管系統(tǒng)中,服務器端主要對網(wǎng)絡信息進行收集、分析和處理,并將結(jié)果過濾后分發(fā)到客戶端中進行顯示。目前,客戶端主要是桌面計算機?,F(xiàn)在移動終端實現(xiàn)網(wǎng)管功能主要是通過移動終端瀏覽Web頁面實現(xiàn)的,還沒有公開的本地原生應用方式。本文討論了一種在移動終端利用原生本地應用的方式實現(xiàn)網(wǎng)管拓撲圖功能的方法,并討論了一種利用JSON格式報文封裝網(wǎng)管數(shù)據(jù)的方法。這種方式與傳統(tǒng)網(wǎng)管或基于Web方式的網(wǎng)管系統(tǒng)相比,在移動性、用戶體驗和實時性上都更勝一籌。
本文著重討論網(wǎng)絡管理系統(tǒng)中網(wǎng)絡設備拓撲圖在移動終端中的設計與實現(xiàn),提出了一種在移動終端上顯示網(wǎng)絡設備拓撲圖的方法,即利用移動終端上的電子地圖來顯示網(wǎng)絡拓撲圖。相比于用Web方式顯示,這種原生應用效率更高,并且可以支持用戶的放大和縮小等復雜手勢操作。本方法不僅能將網(wǎng)絡拓撲圖在移動終端上進行簡單展示,還具有能將網(wǎng)絡狀態(tài)和鏈路狀態(tài)實時動態(tài)展現(xiàn)的能力。本文最后用一個實例驗證了設計方案。
在移動終端上實現(xiàn)網(wǎng)管系統(tǒng),必然會利用到現(xiàn)有傳統(tǒng)網(wǎng)管系統(tǒng)中的數(shù)據(jù)。但由于傳統(tǒng)網(wǎng)管系統(tǒng)數(shù)據(jù)接口是針對有線網(wǎng)絡而設計的,而移動網(wǎng)管系統(tǒng)接口面臨數(shù)據(jù)鏈路不穩(wěn)定、數(shù)據(jù)時延較大以及傳送帶寬較小的現(xiàn)實問題,因此不宜直接采用傳統(tǒng)網(wǎng)管系統(tǒng)接口。
移動終端通過無線網(wǎng)絡與服務器發(fā)起通信請求,移動終端網(wǎng)絡受環(huán)境影響較大,因此通信應采用異步方式實現(xiàn)。在上層通信協(xié)議選取中,移動終端與服務器通信通常采用HTTP協(xié)議來實現(xiàn)?;赪eb應用的傳統(tǒng)數(shù)據(jù)通信交換格式有XML類型和純文本類型兩種。而在Web應用中更適合采用 JSON (JavaScript Object Notation)格式的報文形式進行封裝。相比于XML格式,JSON具有語法簡潔、格式清晰、技術(shù)層次簡單、易于人閱讀和編寫以及易于機器解析生成等特點。因此,移動終端輕量級的數(shù)據(jù)交換適合利用JSON報文封裝傳輸。
JSON基礎(chǔ)結(jié)構(gòu)有“鍵/值”對集合以及值的有序列表兩種形式。在使用中通常將兩種形式結(jié)合一起使用。這種方法雖然沒有XML格式清晰明了,但是減少了XML結(jié)構(gòu)化標記帶來的代碼冗余,對于移動互聯(lián)網(wǎng)的數(shù)據(jù)交換來說,JSON無疑是首選的。
國際標準化組織(ISO)在ISO/IEC 7498-4文檔中定義了網(wǎng)絡管理功能,即故障管理、配置管理、性能管理、安全管理和計費管理。本系統(tǒng)只側(cè)重網(wǎng)管系統(tǒng)中拓撲圖在移動終端系統(tǒng)中的實現(xiàn),因此網(wǎng)管測試服務器由Tomcat搭建的Web服務器構(gòu)成。移動終端用戶可以通過請求服務器而得到JSON格式封裝的網(wǎng)絡拓撲圖信息。
數(shù)據(jù)通信示意圖如圖1所示,Web前端服務器根據(jù)用戶請求向網(wǎng)管中心數(shù)據(jù)庫請求數(shù)據(jù),認證后,Web服務器向網(wǎng)管數(shù)據(jù)服務器查詢數(shù)據(jù)庫信息,數(shù)據(jù)經(jīng)Web服務器打包成JSON格式報文后返回給用戶。
移動互聯(lián)網(wǎng)的出現(xiàn)使得移動終端的應用方式有了極大的拓展,移動互聯(lián)網(wǎng)是對傳統(tǒng)網(wǎng)絡的有力補充。對于存在于傳統(tǒng)互聯(lián)網(wǎng)中的業(yè)務形式,移動互聯(lián)網(wǎng)可以通過改造接口的方式將傳統(tǒng)業(yè)務遷移。移動互聯(lián)網(wǎng)的業(yè)務并不是獨立存在的,它通常是對傳統(tǒng)業(yè)務在移動性上進行補充與特殊功能的擴展。圖2為一種典型的移動互聯(lián)網(wǎng)利用傳統(tǒng)互聯(lián)網(wǎng)進行遷移的架構(gòu)圖。
在傳統(tǒng)的網(wǎng)絡管理系統(tǒng)(NMS)中,網(wǎng)絡拓撲圖通常是在PC上呈現(xiàn)的。要將網(wǎng)絡拓撲圖呈現(xiàn)遷移到移動終端中,就必須利用NMS中已有的網(wǎng)管數(shù)據(jù)與業(yè)務邏輯。但由于移動終端資源受限,移動終端拓撲圖顯示是對傳統(tǒng)NMS的補充,因此移動終端中拓撲圖顯示須重新考慮拓撲圖呈現(xiàn)方式與操作方式。傳統(tǒng)的NMS中拓撲圖顯示方法通常有列表顯示和圖形顯示[1]兩種。用列表顯示能清楚地反映網(wǎng)絡樹狀結(jié)構(gòu)層次關(guān)系;用圖形顯示,圖形接口能直觀簡潔地反映出節(jié)點狀態(tài)、物理連接方式與鏈路狀態(tài)。
Google Map為Google推出的電子地圖服務,它不僅能提供Web形式訪問,在當下流行的移動終端中還集成了相關(guān)的組件。例如,iOS中Map Kit套件與Android系統(tǒng)中Google Map API都是基于Google Map的電子地圖服務。
移動終端屏幕尺寸較小且通常是通過觸摸操作,用戶操控難度大,不易采用用戶自定位節(jié)點模式。移動終端處理能力比傳統(tǒng)PC弱,采用自動定位節(jié)點模式不僅會增加處理負擔,而且會耗費多余電量。因此,采用固定節(jié)點模式顯示網(wǎng)絡拓撲對于移動終端是最合適的。
移動終端上程序設計通常采用MVC思想進行。MVC設計思想中,數(shù)據(jù)與表示分離的思想能幫助程序更加清楚地設計模塊。移動終端上,客戶端程序主要分為前臺模塊與后臺模塊。前臺模塊進行數(shù)據(jù)的繪制顯示功能,并創(chuàng)造用戶交互界面;后臺模塊由數(shù)據(jù)接口模塊與控制模塊組成,負責數(shù)據(jù)的讀取、解析以及用戶操作的響應。其中,數(shù)據(jù)接口模塊需要分別向電子地圖服務器與網(wǎng)管數(shù)據(jù)中心服務器發(fā)起數(shù)據(jù)請求,獲取數(shù)據(jù)后在移動終端本地解析;控制模塊負責數(shù)據(jù)與用戶視圖模塊以及數(shù)據(jù)接口模塊的交互操作。在用戶視圖模塊中,拓撲圖界面的呈現(xiàn)分為兩層,底層為電子地圖的顯示,數(shù)據(jù)由遠端電子地圖服務商提供;電子地圖層的上層覆蓋網(wǎng)元拓撲圖層,網(wǎng)元屬性中包含了網(wǎng)元地理位置信息,根據(jù)網(wǎng)元地理位置信息在電子地圖層上找到對應的坐標后繪制相應的拓撲圖結(jié)構(gòu)。移動終端拓撲軟件層次如圖3所示。
圖3 移動終端拓撲軟件層次
移動終端通過接口獲取的數(shù)據(jù)為標準化的數(shù)據(jù),移動終端本地收到數(shù)據(jù)后為更好地向用戶呈現(xiàn),必須對數(shù)據(jù)進行有效的重構(gòu)與可視化呈現(xiàn)。網(wǎng)管數(shù)據(jù)可視化包含對設備圖標、線路狀態(tài)和網(wǎng)絡拓撲位置的可視化呈現(xiàn)。
在傳統(tǒng)網(wǎng)管系統(tǒng)界面拓撲圖呈現(xiàn)中,主要包含用戶自定位節(jié)點模式、固定節(jié)點模式和自動定位節(jié)點模式3種呈現(xiàn)模式。在用戶自定位節(jié)點模式下,網(wǎng)元節(jié)點在網(wǎng)管拓撲圖中的位置可由用戶拖動變化,節(jié)點位置由網(wǎng)管系統(tǒng)記錄,鏈路根據(jù)節(jié)點之間的關(guān)系繪制;在固定節(jié)點模式中,網(wǎng)絡連接的拓撲圖放置在包含地理信息的背景地圖上,用戶能快速地從拓撲結(jié)構(gòu)圖中獲取網(wǎng)絡拓撲位置信息,網(wǎng)元位置由網(wǎng)管系統(tǒng)提供。自動定位節(jié)點模式下,網(wǎng)元無絕對位置信息,網(wǎng)絡拓撲圖結(jié)構(gòu)由網(wǎng)管系統(tǒng)中算法生成,在網(wǎng)元數(shù)量較多時會消耗網(wǎng)管系統(tǒng)不必要的計算資源。
網(wǎng)絡拓撲圖中網(wǎng)元包含多種設備型號,對于不同類型的設備,利用不同的設備圖標標識。拓撲圖中的鏈路中通常存在故障、擁塞、忙碌和通暢4種狀態(tài),利用黑、紅、黃、綠4種顏色對4種不同鏈路狀態(tài)進行標示,以便于用戶查看。
網(wǎng)元節(jié)點信息中包含了地理位置信息,利用網(wǎng)元的地理位置信息,通過坐標變換將網(wǎng)元地理位置信息映射為移動終端屏幕上的坐標點,并在手機屏幕上繪制出來。
在移動終端中,由于存在多種設備分辨率適配問題,因此在控制拓撲圖顯示比例和字體大小等都采用相對大小布局。具體方法是檢測到設備分辨率后,通過固定的計算方法得出拓撲圖中字體大小、線條粗細以及設備圖標顯示比例等信息。
拓撲圖要與GIS地圖集成顯示,通常采用在現(xiàn)有的GIS地圖上疊加圖層的方法,但疊加過程中必須考慮到疊加圖層的屏幕坐標與地理位置坐標轉(zhuǎn)換。常見的一種方式是將GIS地圖層繪制于屏幕底層,在此之上疊加繪制的拓撲圖層,如圖4所示。
圖4 用戶視圖圖層
網(wǎng)元節(jié)點的地理坐標與屏幕坐標通常不同,必須通過相應的轉(zhuǎn)換方法將網(wǎng)元節(jié)點的地理坐標轉(zhuǎn)換為屏幕位置坐標后才能確定網(wǎng)元節(jié)點的位置。網(wǎng)元節(jié)點屏幕坐標位置與電子地圖地理坐標的映射通常通過第三方電子地圖接口實現(xiàn),電子地圖API中提供了相關(guān)的轉(zhuǎn)換與映射方法。其基本原理是通過計算網(wǎng)元節(jié)點的地理坐標與屏幕中心點地理坐標的差值,再將此差值乘以地圖放大倍率系數(shù),在獲得與屏幕中心的偏移量后計算出網(wǎng)元節(jié)點的屏幕坐標。
用戶視圖需與用戶進行交互,以完成如滑動、點擊、縮放和彈出菜單等操作。移動終端設備既包含全觸摸屏設備,又包括用實體鍵盤操作的設備,但所有設備都應能完成與GIS地圖的交互操作,這就要求在設計交互機制時考慮到用戶體驗。
GIS用戶視圖中,用戶主要與網(wǎng)元拓撲圖層中的對象進行交互操作。網(wǎng)元拓撲圖中所有設備圖標和鏈路等都是一個實例化的對象,通過設置每個對象的監(jiān)聽事件,對相應監(jiān)聽事件內(nèi)容進行用戶自定義。
用戶對圖層的拖動可以通過捕獲用戶鼠標開始點擊與松開點擊時兩點的屏幕距離計算出來,進而控制GIS地圖圖層與網(wǎng)元拓撲圖層進行相應的焦點改變。在有較多網(wǎng)元的拓撲圖中,用戶通常會放大或縮小地圖進行查看,因此在用戶視圖中還應放置縮放控件。當用戶需要增加拓撲信息時,采用在原有圖層上再疊加額外的拓撲圖層的方法顯示拓撲信息。
拓撲圖層中設備和鏈路狀態(tài)由事先規(guī)定的接口向網(wǎng)管數(shù)據(jù)中心獲取。終端每隔一段時間向網(wǎng)管數(shù)據(jù)中心獲取一次拓撲信息數(shù)據(jù)。獲取數(shù)據(jù)以后,終端在本地對數(shù)據(jù)信息進行重構(gòu)后,統(tǒng)一對原有的拓撲圖層進行銷毀并重新創(chuàng)建,以完成拓撲信息的刷新。
測試服務器操作系統(tǒng)為 Linux Ubuntu 10.04,Web服務器由Tomcat 6.0.35搭建。測試服務器數(shù)據(jù)庫使用MYSQL,服務器數(shù)據(jù)庫中與拓撲信息有關(guān)的有Group Info、Link Info和DeviceInfo 3個數(shù)據(jù)表。 其中,Group Info數(shù)據(jù)表是服務器中存放拓撲圖網(wǎng)絡結(jié)構(gòu)信息的數(shù)據(jù)表;Link Info存放網(wǎng)絡拓撲圖中的鏈路數(shù)據(jù),DeviceInfo中存放網(wǎng)元數(shù)據(jù)。
當服務端收到數(shù)據(jù)請求時,服務器根據(jù)WebService地址信息請求向數(shù)據(jù)庫中查詢相關(guān)數(shù)據(jù),并通過返回的數(shù)據(jù)表構(gòu)造JSON格式的數(shù)據(jù)報文,最后由Tomacat以Web頁面方式向終端返回。終端返回得到一個簡單的HTML頁面,里面包含了JSON格式的數(shù)據(jù)信息。
目前,主流移動終端操作平臺包括iOS、Android和Windows Phone7等,國內(nèi)的GIS廠商都推出了各自電子地圖在3種操作平臺上的對應開發(fā)包,其中以Google Map在Android平臺上尤為成熟,Android操作系統(tǒng)原生集成Google Map功能。因此,選取目前主流的移動終端操作系統(tǒng)Android 2.2平臺作為終端系統(tǒng),使用Google Map API作為電子地圖服務接口,集成開發(fā)平臺選取Eclipse和Android 2.2 版SDK。Android平臺是Google基于Linux內(nèi)核開發(fā)的移動終端系統(tǒng),Android系統(tǒng)包含Google提供的Google Map API,軟件開發(fā)者可利用接口開發(fā)基于Google電子地圖的軟件。網(wǎng)管系統(tǒng)拓撲圖的電子地圖層就是基于Google電子地圖實現(xiàn)的。
拓撲圖顯示流軟件流程圖如圖5所示。
圖5 拓撲圖顯示流程
網(wǎng)管拓撲圖是利用在電子地圖層堆疊圖層實現(xiàn)的。在Android中主要利用ItemizedOverlay類來構(gòu)建覆蓋圖層,然后重載ItemizedOverlay中的draw方法來完成對圖層中網(wǎng)元圖標和鏈路狀態(tài)的繪制。
3.3.1 電子地圖初始顯示比例的選取
點擊某個包含子網(wǎng)的網(wǎng)絡組后,即彈出Google電子地圖顯示網(wǎng)絡拓撲信息。由于終端屏幕尺寸比較小,為了更友好地向用戶展現(xiàn)拓撲信息,采用拓撲列表方式與圖形顯示相結(jié)合的方式來顯示網(wǎng)絡拓撲信息。在用電子地圖顯示網(wǎng)絡信息時,需要考慮到初始化地圖比例問題。在服務器返回的子網(wǎng)絡設備與鏈路信息中包含網(wǎng)元坐標信息,利用網(wǎng)元坐標信息計算出所有網(wǎng)元位置信息中最大精度和緯度信息,再獲取其中心坐標即可。在Google Map API中,只需計算出所有網(wǎng)元中心位置,以中心位置為焦點將所有網(wǎng)元畫在地圖層之上,它就會自動初始化匹配的比例。
3.3.2 拓撲圖中網(wǎng)絡狀態(tài)顯示
拓撲圖中不僅可以顯示網(wǎng)絡拓撲信息,還可以將對應網(wǎng)元的詳細信息與鏈路狀態(tài)表示出來。利用鏈路顏色可以表示鏈路所處的狀態(tài)。網(wǎng)元節(jié)點可以點擊選取,選取后彈出新頁面顯示網(wǎng)元節(jié)點詳細信息。
根據(jù)圖5所示流程圖,開發(fā)了基于Android平臺的網(wǎng)管系統(tǒng)拓撲圖顯示軟件??紤]到獲得的拓撲圖結(jié)構(gòu)過大,軟件采用了列表顯示與圖形顯示相結(jié)合的方法來顯示網(wǎng)絡拓撲結(jié)構(gòu)。列表中顯示的是大的網(wǎng)絡組網(wǎng)元,展開列表后顯示某個特定網(wǎng)絡中網(wǎng)絡拓撲結(jié)構(gòu),在地圖上選取某個網(wǎng)元,即可查看網(wǎng)元詳細屬性。網(wǎng)絡拓撲GIS操作流程如圖6所示。
由于移動終端屏幕尺寸的限制,在網(wǎng)絡拓撲結(jié)構(gòu)較大的情況下用列表方式加圖形顯示方式能有更好的用戶體驗。上層頂級拓撲結(jié)構(gòu)用樹狀列表顯示,用戶通過列表中“+”、“-”號展開或收起樹狀拓撲結(jié)構(gòu)。展開后選取某一個網(wǎng)絡組,即可在電子地圖上查看對應的網(wǎng)絡拓撲連接,各網(wǎng)元的位置即代表其實際的地理位置。網(wǎng)元之間鏈路用不同顏色標記來代表鏈路的即時狀態(tài),綠色代表線路暢通,黃色代表線路繁忙,紅色代表線路擁塞,黑色則表示線路故障。在地圖上選取某個網(wǎng)元,可查看網(wǎng)元詳細屬性,了解網(wǎng)絡某個網(wǎng)元節(jié)點的詳細狀態(tài)。
通過移動終端上的電子地圖來實時展示網(wǎng)管系統(tǒng)中拓撲圖,在技術(shù)和手段上是一種創(chuàng)新。測試結(jié)果表明,在移動終端上較好地現(xiàn)實了網(wǎng)絡拓撲圖,此時的網(wǎng)絡拓撲圖網(wǎng)元節(jié)點帶有地理位置信息,節(jié)點在電子地圖上的位置為節(jié)點的實際位置。但也存在以下問題:(1)節(jié)點之間的鏈路仍是直線,只能表示兩個節(jié)點之間的邏輯連接,鏈路的連接路徑不代表實際的線路;(2)設計中沒有利用終端的定位能力;(3)網(wǎng)元節(jié)點設備圖標無法隨地圖的放大縮小而變化,會出現(xiàn)地圖縮放到一定程度時網(wǎng)元圖標擁擠在一起的現(xiàn)象。
本文分析了移動終端的特點,介紹了一種移動終端在網(wǎng)絡管理系統(tǒng)中應用的場景模式,即將網(wǎng)管系統(tǒng)中的拓撲顯示功能擴展到移動終端上,通過移動終端向服務器請求數(shù)據(jù)后在本地重構(gòu)顯示出拓撲圖。根據(jù)移動終端的特點,本文提出了一種在移動終端上利用電子地圖與網(wǎng)絡拓撲圖結(jié)合現(xiàn)實網(wǎng)絡拓撲的方法,并設計了驗證方案。最后,在Android平臺上測試了拓撲圖顯示方案。測試表明,在移動終端顯示網(wǎng)絡拓撲圖是可行的,可以將網(wǎng)絡拓撲結(jié)構(gòu)顯示到電子地圖上,并且可以在地圖上動態(tài)展示網(wǎng)絡拓撲狀況。但驗證方案中仍存在不足之處,在結(jié)果分析中已逐一加以分析。
除將網(wǎng)管系統(tǒng)中拓撲圖功能顯示到電子地圖上,更加友好地展示網(wǎng)絡拓撲圖概況外,電子地圖還能與網(wǎng)管系統(tǒng)中告警功能配合,動態(tài)地定位告警源。此外,在網(wǎng)管系統(tǒng)報表統(tǒng)計功能中,電子地圖可與報表統(tǒng)計數(shù)據(jù)結(jié)合構(gòu)建在電子地圖上報表統(tǒng)計的可視化效果,為用戶提供更加直觀的報表展示。存在的問題以及不足之處需在以后的研究中加以重視,找出更好的解決方法。
[1]李航.網(wǎng)管系統(tǒng)界面拓撲圖生成的設計與實現(xiàn)[J].現(xiàn)代傳輸應用,2008(2):73-75.
[2]章宏才,陳衛(wèi)東.移動終端實現(xiàn)網(wǎng)絡遠程管理的研究和設計[J].計算機科學,2007(9):73-76.
[3]李雙慶,雷明劍.MVC在基于Java Applet網(wǎng)管系統(tǒng)的研究與應用[J].計算機應用與軟件.2008(8):212-214.
[5]張創(chuàng).基于GIS的網(wǎng)絡拓撲管理系統(tǒng)的研究與實現(xiàn)[D].北京:北京郵電大學,2006.
[6]靳巖,姚尚朗.Android開發(fā)入門與實戰(zhàn)[M].北京:人民郵電出版社,2009.
[7]楊豐盛.Android應用開發(fā)揭秘[M].北京:機械工業(yè)出版社,2010.
[8]韓敏,馮浩.基于JSON的地理信息數(shù)據(jù)交換方法研究[J].測繪科學,2010(1):159-161.
[9]韓義波,宋莉,宋俊杰.Ajax技術(shù)結(jié)合XML或JSON的使用比較[J].電腦知識與技術(shù):學校交流,2009(1):101-103.
[10]周鵬,陳紅順,尹菲.Google Maps API技術(shù)在移動終端上的 GIS 應用[J].測繪通報,2012(3).