在網路普及的今日,網路管理系統(EMS/NMS)已經成為網路管理工作的重要工具。網路管理系統可以持續監視網路上的每個設備,並蒐集網路使用的狀態,提供給網路管理人員最快速的資訊,協助進行分析與及早發現問題。針對此一發展趨勢,本文將說明如何以Ajax、Struts 2以及AdventNet等軟體來建構一個優質的網管環境。
網路管理系統(EMS/NMS)透過SNMP通訊協定與ASN-GW/BS上的SNMP代理器(Agent)溝通,針對設備代理器提供的MIB檔,從而實現各項網路設備的功能管理,包括故障管理(Fault)、組態管理(Configuration)、帳戶管理(Accounting)、效能管理(Performance)以及安全管理(Security),如圖1所示。
|
▲圖1 系統應用情境圖。(資料來源:專案自行繪製) |
其中的各項功能說明如下:
·故障管理:接受設備所發出的TRAP訊息,儲存並做後續分析,若超出Severity等級設定,就通知管理者。
·組態管理:呈現與設定設備的環境參數。
·帳戶管理:使用者/?群組的權限管控,登入Log紀錄分析。
·效能管理:定期詢問設備流量資訊,儲存後做歷史分析,並即時呈現設備資源使用狀況。
·安全管理:針對AAA平台進行管理。
隨著Web技術的不斷發展及Web應用的不斷擴大,開發Web-based EMS/NMS網管系統時,程式碼的複雜度也遠高於以往,若能採用三層架構模式MVC(Model-View-Controller)模式,將可有效降低各層之間的耦合度,提供應用的可擴充性。
Apache採用了結合Struts和WebWork的新框架Struts 2來實現此模式,並解決前一版諸多的缺陷和局限性。另外,在前端使用Ajax技術,可縮短感知等待時間,帶來更好的用戶體驗,而後端利用AdventNet函式庫完成SNMP中介軟體來管理設備Agent。
本文希望藉此說明,讓讀者對Web-based EMS/NMS網管系統的開發有一個新的概念。
相關技術介紹
以往,Struts 1是市場占有率的佼佼者,擁有龐大的開發社群和資料文件,但其表現層卻很單一,例如FreeMarker等流行的模版技術皆無法支援。
到了Struts 2,採用WebWork的設計理念,支援包括FreeMarker、Velocity、XSLT等更多表現層技術,且具備捕捉輸入、運算式語言、型態轉換等特性,其特性說明如下:
·捕捉輸入:直接使用Action屬性作為輸入屬性,能夠透過Web頁面上的tablibs存取,簡化對POJO輸入物件的參考。
·運算式語言:除了使用JSTL外,並支援OGNL(Object Graph Notation Language)。
·型態轉換:內建轉換器,會自動呼叫相對應的程式進行型態的轉換。
相關實作方法如下所示。首先,在web.xml中設定Strut 2的核心控制器FilterDispatcher,用以攔截客戶端請求,它會在struts.xml尋找相對應的Action來處理。
Struts 2的taglibs為表現層提供豐富且強大的功能,包含資料處理、流程控制、國際化、Ajax的支援,可以最大程度地減少檢視頁面的程式量。若要使用,必須先宣告:
而一個邏輯控制器的基本結構如下所示: