摘要:提出一個基于Java的網元管理系統,首先對網管系統進行功能分析和結構設計,然后以此為基礎,最后給出了網管系統的實現方法。
關鍵詞:Java;網絡管理;TWaver;SNMP
中圖分類號:TP315 文獻標識碼:A文章編號:1009-3044(2009)36-10622-02
The Design and Implementation of a Network Element Management System Based on Java Platform
XU Ming-yang, LV Hong-wei, WEI Shuai
(China Electronics Technology Group Corporation No.34th Research Institute, Guilin 541004, China)
Abstract: A Java based network management system is proposed in this paper. Function and design of the system are discussed. And then model of the system is provided. The implementation of this system is also given at the end.
Key words: Java; network management; TWaver; SNMP
網絡管理的現狀是它的發展在很大程度上滯后于網絡規模的發展,而網絡的動態性能的提高主要是通過網絡管理系統加以實現,因網絡管理不善而導致的網上信息擁塞、網絡不通,已影響到電信網絡的應用性能。網絡管理的自動化和智能化,己成為網絡管理亟待解決的問題之一。
Java,尤其是J2EE技術,在網絡管理系統中的應用已經比較普遍。很多公司都將自己的新一代網絡管理產品構建在J2EE技術平臺之上,以便實現大型網絡管理系統的分布式架構。
1 系統功能分析與設計
1.1 系統功能分析
該系統主要功能是識別、控制、管理網元,提高網元的工作效率,并為管理員提供一個友好的人機界面,以便管理員能方便地檢測網元的狀態,據此,本系統主要提供了配置管理、性能管理和告警管理三個方面的管理功能。
配置管理:配置管理涉及網絡的實際物理安排,主要實施對網元的識別、檢測、控制和數據交換,建立和修改網絡拓撲圖,增加、刪除網元,獲取網元參數信息和對網元配置的相關數據進行修改,并記錄有關的操作,建立操作日志,以便管理人員管理和維護。
性能管理:實時監視各網元設備的性能,完成收集設備實際運行的質量數據,為管理人員提供評價、分析、預測系統性能的手段。包括性能監視歷史記錄和告警門限兩部分,管理員據此可判斷系統或網元的目前工作狀態和趨勢分析。
告警管理:對網絡中網元設備的異常運行情況進行監控,完成對告警的監視、報告以及故障的診斷、定位和處理等任務,同時在GUI(Graphics User Interface,圖形用戶界面)上給出告警顯示。對歷史告警信息進行查詢和刪除。
1.2 系統設計
為了實現2.1小節所描述的功能,適應網絡管理的層次化要求和分布式的管理要求,本系統采用了GUI-Manager-Agent結構,該結構提供了分布式環境下的系統管理方法,支持多個Agent連接,如圖2所示,該網絡管理系統主要包含三個部分:
GUI:提供圖形化的界面呈現網絡拓撲和網元設備的運行狀態、配置信息等,直接與管理員進行交互,管理員通過鍵盤、鼠標等FCAPS模塊的各種功能入口對網管進行操作。
Manager:負責與GUI與Agent之間的通信,對數據進行處理、實時轉發,并把拓撲信息、告警信息、配置信息等存入數據庫,方便GUI調用。
Agent:是嵌入被管網元設備中的代理,收集、處理網元中的性能、告警/故障和狀態數據,接收和響應從Manager來的與網元有關的各種命令,進而操作網元設備。
管理員通過用戶管理平臺實現對網元設備的遠程管理,用戶管理平臺與被管網元之間通過網絡進行通訊。GUI與Manager之間采用標準TCP/IP進行通信,Manager與Agent之間采用SNMP(Simple Network Management Protocol,簡單網絡管理協議)進行通信[4]。
2 系統實現
2.1 上層網管實現
上層網管是安裝在用戶管理平臺(PC)供管理員操作的管理程序,全部有java實現。它分為兩大功能模塊:1) GUI 模塊:提供直觀、友好的GUI 操作界面,以圖形化的形式顯示網元設備并響應用戶的操作,便于管理員監測、操作被管網元設備,力求做到所見即所得的操作效果。2) Manager模塊:負責與Agent 通訊,通過網絡訪問Agent 中的MIB 信息保存到本地數據庫中,并將管理網元的操作通過網絡發送給Agent。
GUI的核心是網絡拓撲。網元是網管系統的被管對象,網管系統需要用最直觀的方式呈現網元的拓撲結構、運行狀態、配置信息等。客戶端的各種功能一般以網絡拓撲圖為核心進行展開,用戶通過菜單、鼠標等提供FCAPS模塊的各種功能入口,來進行操作。面對復雜的網絡結構和大量網絡運行信息,用圖形化的界面來呈現和操作網絡無疑是最直觀、方便的方式。
本網管系統GUI采用SERVA Software公司的TWaver圖形組件來實現[3]。基于MVC的架構設計的開發工具TWaver是一套Java 2 平臺的Java Swing圖形界面組件,其設計的目標非常明確,就是用于電信網管界面的開發。只要把將創建的各種電信網絡圖形對象(例如各種節點、網元、設備、連接等),直接放置在一個內存數據容器類中(稱為DATABOX),而各種用于顯示數據的圖形組件(例如樹圖、屬性表格、告警等)直接與此容器連接即可。
有了以上基本概念,使用TWaver就比較容易了。其基本過程是:
1) 創建數據容器;
2) 創建各種視圖(地圖/樹圖),并與容器連接;
3) 創建各種網絡對象并設置其屬性,并放入容器中;
4) 動態更改對象的各種屬性,實現數據的實時更新;
下面就是創建一個簡單GUI的演示代碼。首先創建一個簡單的界面,它由中間的拓撲圖、左邊的樹視圖、右面的屬性表以及下面的告警表組成。他們分別對應于TWaver的TNetwork控件、TTree控件、TPropertySheet控件以及TAlarmTable控件。同時,他們共享一個統一的數據容器TDataBox。
private TDataBox box = new TDataBox(\"NEManager\"); //創建數據容器
private TNetwork network = new TNetwork(box); //創建拓撲圖
private TTree tree = new TTree(box); //創建樹視圖
private TPropertySheet sheet =new TPropertySheet(new TPropertySheetModel(network));
//創建屬性表
private TAlarmTable alarmTable=new TAlarmTable(box);//創建告警表
private TTableNavigator navigator=new TTableNavigator(alarmTable.getTableModel(), new int[] {10, 30, 50, 0 }, true); //創建告警表導航
//以上代碼創建了一個界面,顯示了一幅空的拓撲圖,下面對網絡數據進行初始化
Node server = new Node(); //創建一個node對象
server.setImage(\"/GUI/res/server.png \"); //指定圖片
server.setLocation(60, 100); //設置其X、Y坐標
server.setName(\"SERVER\"); //設置節點顯示名稱
box.addElement(server); //將節點放入容器
for (int i = 0; i < 10; i++) {//圍繞服務器創建n個節點,并通過一條link與服務器相連
Node node = new Node (\"node \"+i); //創建一個普通節點并設置其位置
node.setName(\"node \"+i);
node.setImage(\"/GUI/res/computer.png\"); //指定圖片
int x = 20 + server.getLocation().x +(int) (70 * Math.cos(2 * Math.PI / 10 * i));
int y = server.getLocation().y +(int) (100 * Math.sin(2 * Math.PI / 10 * i));
node.setLocation(x, y); //設置其X、Y坐標
box.addElement(node); //將節點放入容器
Link link=new Link(node, server); //創建一條link并讓它連接到云圖
box.addElement(link);
}
此時運行程序,將界面顯示如圖3。
如上圖可以看到,拓撲圖上的網元按照我們設定的位置顯示了出來,可以通過鼠標進行選擇、拖拽等操作。同時,樹圖上也顯示了網元之間的層次關系,屬性表則顯示了當前選中的對象的屬性集合,告警表則顯示當前所有的告警信息。
2.2 代理實現
Agent是一種特殊的軟件,它包含了關于一個特殊設備或該設備所處環境的信息。當一個Agent被安裝到一個設備上時,上述的設備就被列為“ 被管理的”。換句話說,Agent就是一個數據庫。簡言之,Agent是在通信網絡中被管理的對象,即網絡設備,它是駐留于網絡被管理設備中的處理實體,每個代理擁有自己的本地MIB。
事實上,SNMP協議的管理任務是移交給代理來執行的,代理直接與相應的功能實體通信并執行信息處理任務,其主要任務是訪問相關模塊數據,發布控制信息,有兩種消息由代理提供:GetReponse和Trap。代理翻譯來自管理者的請求,驗證操作的可行性、執行命令并發出合適的響應。SNMP Agent軟件與Manager之間采用UDP進行通信。Agent是嵌入被管網元設備內的代理,和被管網元設備的其他軟件之間采用緊耦合方式進行通信,可共享全局變量或者調用其他模塊的函數,它負責收集、保存網元的相關信息,并為Manager提供訪問接口。Manager通過訪問被管網元設備的MIB樹來獲取網元信息,并把GUI對網元設備的操作命令也提交給Agent,然后由Agent進行過濾、解析,進而操作網元設備。
3 結束語
本系統的功能完善,把所有的網元設備(數量可成百上千)呈現在GUI的拓撲視圖中,管理員可以很容易的用圖形化的方式配置、管理和維護網絡中的設備,能夠詳細、全面地掌握網絡的狀態,大大提高了管理的效率和服務質量,達到最初的設計目標。
參考文獻:
[1] 岑賢道,安常青.網絡管理協議及應用開發[M].北京:清華大學出版社,1998.
[2] 韋樂平.SDH及其新應用[M].北京:人民郵電出版社,1998:170-184.
[3] SERVA Software.TWaverTM Swing Components Developer Guide Version 2.0[S].2008:10-260.
[4] 唐寶民,張穎.電信網監控和管理計數[M].北京:人民郵電出版社,2006:138-168.