徐孝娜, 雒江濤, 胡燕清
(重慶郵電大學 通信網與測試技術重點試驗室,重慶 400065)
隨著公眾對通信網絡質量的要求越來越高,實現對網絡的可控管理[1-2]顯得愈發的重要。網絡的故障管理、配置管理、性能管理等方面都與網絡的拓撲結構有關,因此對網絡的拓撲結構的研究具有最重要意義。
網絡拓撲[3-4]圖是指網絡中各種網絡元素網絡設備、端點、鏈路的布局和分布。傳統的網絡拓撲圖顯示采用C/S架構,但由于C/S需要開發專用的客戶端程序,技術難度大,開發周期長等缺點,近幾年,大部分的網絡拓撲圖顯示采用B/S[5-6]架構。文中提出了一種新的MxGraph[7]與XML[8]相結合的方案,來實現Web[9]方式的網絡拓撲顯示。MxGraph是旨在應用程序中展現圖表并實現交互的函數庫,文中使用的是基于JavaScript的函數庫,它僅包含一個JavaScript文件,該文件通過隱藏的矢量圖形語言能在所有主流的瀏覽器中渲染顯示圖形。
MxGraph以graph狀態與服務器交換信息,它能夠實現在所有主流瀏覽器中交互而不使用第三方插件。應用MxGraph的環境非常簡單:一個能提供頁面訪問的 Web服務器和一個支持 JavaScript的Web瀏覽器即可。MxGraph將可視化的圖形組件抽象成為可操作的API接口,以下是API的核心類圖(如圖1所示),其他都是輔助類。

圖1 API核心類
HTML/JSP頁面通過文檔對象模型(DOM,Document Object Model)節點將MxGraph與JS結合。MxGraph圖形的基本單元是mxCell,它包括兩種類型節點(Vertex)和連線(Edge),二者的組合構成圖。
文中設計的網絡拓撲顯示模塊結構如圖2所示,它采用了B/S模型的3層架構,分為呈現層、業務層、持久層。呈現層能提出業務請求,同時用來顯示業務層返回的處理結果,業務層主要負責業務邏輯處理,執行上層的業務請求與觸發事件,持久層負責訪問數據庫,將數據包裝成業務層需要的形式,該層將數據封裝成DO(Data Object)供業務層調用。

圖2 基于MxGraph和XML的拓撲顯示結構
呈現層中JS解釋器調用MxGraph函數庫,展示 XML文件包含的拓撲關系及相關信息。業務層的Tomcat Web Server 負責接收前端業務請求,它將請求分派給具體的應用邏輯,將結果返回給呈現層。持久層用來操作數據庫,Hibernate是一個開放源碼的對象關系映射框架,它負責把業務處理器的SQL語句接收過來并發送到數據庫,而數據庫返回來的信息由 Hibernate接收后直接生成一個對象傳給業務層。
Oracle數據庫是目前最流行的B/S模型的數據庫之一,它具有完整的數據管理功能:①數據的海量性;②數據保存的持久性;③數據的共享性;④數據的可靠性,綜合以上因素選擇Oracle數據庫。
訪問數據庫生成拓撲圖的數據表有設備表T_EQU_INFO和鏈路表T_TOPMAP_LINK,指標告警表定義為 T_ALERT_KPI。T_EQU_INFO主要包含的字段有設備ID、設備名稱、設備類型、設備IP、所屬區域ID等,T_TOPMAP_LINK表中主要包含鏈路ID、鏈路名稱、連接類型(表征是屬于設備之間的鏈路或地區子網之間的鏈路)、所屬區域 ID、連接起點設備/網絡ID、連接終點設備/網絡ID等字段。T_ALERT_KPI指標告警表包含告警設備 ID、告警名稱、告警級別、告警狀態(表征是否處理或確認)、告警信息等字段。
主呈現區初始化會根據拓撲管理的監測范圍,計算并呈現網絡拓撲圖。在網絡拓撲顯示中,文中采用了分層結構:一層為區域拓撲圖,二層為區域內部的網絡拓撲圖,在頁面布局上分別占有一個DIV分區。同時,需要顯示設備或鏈路屬性以及呈現功能按鈕。設備或鏈路屬性包括基本信息和指標告警信息,功能按鈕是實現拓撲真是結構的呈現操作,諸如預覽、放大、縮小。
在形成拓撲的過程中,如何實現設備表T_EQU_INFO和鏈路表T_TOPMAP_LINK中散列的信息融合成一個整體是設計的關鍵,簡單來說區域拓撲和區域內部的網絡拓撲的實現采用了“以鏈路帶出設備”的思想。以區域內部的網絡拓撲為例,設備表與鏈路表中都存在所屬區域ID字段,以該字段為查詢條件可以得到設備列表EquipList、鏈路列表LinkList,然后按照圖3所示流程構造拓撲圖。

圖3 構造拓撲流程
①先處理LinkList,判斷是否有未進行編碼的鏈路,如果有未編碼的鏈路取出一條,對鏈路編碼,將該鏈路在列表中刪除;②由一條鏈路會關聯出起點設備和終點設備,對兩個設備判斷是否已進行編碼,對未編碼的設備編碼,編碼后標記為已編碼;③重復前兩步,直到所有的鏈路已編碼;④判斷EquipList中是否存在未標記的設備,若存在表明該設備是獨立的并且尚未存在與其它設備的連接關系,對其編碼并做標記;⑤重復第④步直到所有設備已編碼,拓撲圖XML編碼構造完成。
指標告警存儲在表 T_ALERT_KPI中,其中字段ALERT_LEVEL代表告警級別。在網絡拓撲圖顯示時,比較出該設備告警級別最高的記錄,顯示在拓撲圖上。由于告警是實時數據,所以在拓撲圖上顯示的告警信息也要實時變化,設置30 s時間間隔動態獲取告警數據,不斷更新網絡拓撲監測信息。
呈現層采用JSP/JS/CSS技術,業務層采用Java編程語言,持久層結合Oracle數據庫實現了拓撲管理功能。選用Tomca6.0作為Web組件容器,實現拓撲圖XML編碼顯示、實時告警顯示、設備/鏈路屬性查詢以及簡單的拓撲圖呈現功能,拓撲管理頁面運行效果如圖4所示。

圖4 拓撲管理頁面
文中介紹了MxGraph與XML結合的拓撲管理實現方案,具體介紹了MxGraph的工作原理以及構成網絡拓撲的算法。通過現場測試,充分證明了MxGraph實現網絡拓撲圖的有效性和可行性,同時驗證了在B/S模型下呈現層、業務層、持久層架構開發方案的正確性。這種顯示方式直觀、靈活,并實時反映被測網絡運行狀態。但對網元屬性顯示、管理及網絡告警維護等還需進一步深入研究。
[1] 劉鵬,馬琳,廉新科.網絡安全設備的統一管理方法研究[J].信息安全與通信保密,2010(07):66-68.
[2] 趙旺飛,王齊.網絡管理及安全準入機制研究[J].通信技術,2011,44(03): 93-95.
[3] 蔡慧,韓國棟,劉洪波.基于 K均值聚類的拓撲生成算法[J].通信技術,2008, 41(09):110-112.
[4] 孟利霞.基于JGraph動態繪制Web網絡拓撲圖的設計與實現[J].計算機應用與軟件,2010,27(07):247-248,279.
[5] 陳遙,李珊,趙英男.基于SSH+DWR的 Web開發框架研究與應用[J].南京信息工程大學學報:自然科學版,2010,2(05):455-460.
[6] 許科峰,高建民,陳富民,等.基于 Web Services的企業應用集成技術及實現[J].計算機應用,2004,24(03):155-157.
[7] JGraph Ltd. MxGraph User Manual-JavaScript Client[EB/OL]. (2009-5-22) [2012-8-19].http://jgraph.github.com/mxgraph/docs/manual.html.
[8] World Wide Web Consortium(W3C). Extensible Markup Language(XML)1.0(Fifth Edition)[EB/OL].(2008-11-26)[2012-8-25]. http://www.w3.org/TR/xml.
[9] 王宏,許波,李鑒,等.Web與IMS業務融合技術探討[J].信息安全與通信保密,2011(06):69-71,74.