網路管理、監視、分析

活用MVC三層模式 開發自用web介面網管系統

2012-11-09
在網路普及的今日,網路管理系統(EMS/NMS)已經成為網路管理工作的重要工具。網路管理系統可以持續監視網路上的每個設備,並蒐集網路使用的狀態,提供給網路管理人員最快速的資訊,協助進行分析與及早發現問題。針對此一發展趨勢,本文將說明如何以Ajax、Struts 2以及AdventNet等軟體來建構一個優質的網管環境。
當Action處理完客戶端的請求後會傳回一個字串,不同字串可對應不同的檢視。在struts.xml檔案中設定Action時,用name屬性定義該Action的名稱,用class屬性定義實際處理的類別,並用method屬性定義該Action使用的方法,若不設定,預設為execute(),此外利用result屬性定義回傳字串與檢視的關聯,相關基本結構如下:


Ajax是使用客戶端指令碼與Web伺服器非同步交換資料的Web應用開發方法。使用Ajax,可以在不中斷互動流程的情況下,重新載入Web頁面,實現動態更新。

Ajax並非全新的技術,而是將幾種舊有的技術組合在一起而形成強大的功能,包含XHTML和CSS、DOM、XML及XSLT、XMLHttpRequest、JavaScript。可以使用Ajax來自動更新設備樹狀圖。

在開發SNMP溝通模組方面,使用WebNMS的函式庫AdventNet。AdventNet是以Java開發而成,擁有Java的特性,例如物件導向、跨平台。另外,也支援多種版本協定,包括SNMPv1、SNMPv2、SNMPv3、IPv6等,如此的做法在開發模組時將擁有更多的彈性。

除此之外,可以使用其所提供的SNMP Beans和API來模擬SNMP command line的動作,例如SNMP GET、SNMP GETNEXT、SNMP SET、SNMP BULK、SNMP WALK等。

接著撰寫程式,在Tomcat啟動時即自動載入待管設備的mib檔。


接下來,便可以設定代管設備的位置、埠號以及Community:


如此一來,就能夠透過oid獲得及設定一些簡單的資料。若要得到table的資料,還需要進一步開發。如果想開發trap receiver,可以透過SnmpTrapReceiver和TrapListener來進行。

軟體架構說明

相關的軟體架構如圖2所示,其中的開發單元與實作方式如下所述:

如圖2所示,UE02為管理者操作介面模組,其實作方式是以Struts 2架構來實作,前端採jsp結合taglibs、dojo、Ajax來呈現,Action端程式會接收從前端傳送過來的參數,送給後端Model程式做判斷或呈現,之後再透過struts.xml的定義將最後的檢視頁面送回給客戶端。


▲圖2 系統功能架構圖。(資料來源:專案自行繪製)

UE03則是SNMP溝通模組,它使用AdventNet函式庫來實作,提供給Client程式獲得與設定mib資料的方法,還有透過排程來收集performance與接受從設備送出的trap。

至於UE04,則為資料存取與收集模組,其使用Proxool來實作資料庫連接池,提供select、update等方法給Client程式使用,為避免同步問題採用singleton設計模式,另外將一些常用的工具程式獨立出來,避免混雜在Action端程式內。

結語

本文透過結合Ajax、Struts 2和AdventNet來打造EMS/NMS網管系統,同時實現了MVC的精神,讓開發的過程或後續維護更加便利與彈性,希望能夠帶給各位讀者一番新思維。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!