1.問題概述 在電信網管系統的五大模塊FCAPS中,性能管理(Performance Management)是非常重要的部分。性能管理是對電信網絡的有效監控手段,是實現網絡“提前預警”或“主動式告警”的基礎。 性能管理一般分為歷史性能數據和實時數據采集兩類。歷史性能數據一般需要網管后臺系統的任務調度模塊按照預定義的系統配置參數啟動數據采集任務,并將數據采集結果存儲到數據庫中,以供用戶進行統計、分析之用。實時性能數據一般由用戶主動發起和終止,系統按照當前任務參數進行實時的數據采集,并將數據呈現。實時性能數據可選擇存庫,也可選擇不存庫,只作為瞬態數據進行呈現。實時性能數據也可掛接業務判斷規則,以便生成告警或者各種動作。 本文將針對電信網管中的實時數據的采集、呈現、自動觸發動作等開發做一個初步的探討。
2.客戶端策略 一般而言,實時性能數據采集的發起者是客戶端。用戶通過客戶端指定感興趣的網絡設備或者管理對象,并選擇感興趣的具體參數、采集周期等信息,最終形成一個采集任務。啟動后,客戶端將通過服務器對指定數據進行采集,并將結果返回到客戶端進行呈現。 由于本文只關注客戶端的呈現部分,所以只討論如何將要采集的數據和網絡管理對象進行關聯和管理,及其呈現。
3.數據建模 我們在創建網絡管理對象的數據模型過程中,需要對網絡數據進行相關的建模。我們可用創建新的類并繼承自TWaver的預定義節點對象,例如:
通過以上代碼,我們創建了一個簡單的節點管理對象,并增加了新的屬性parameter1。但是我們很快發現,對于一個實際應用中的網絡設備或管理對象,其性能參數是數量龐大的,而且種類多樣。我們如果通過java beans的方式進行編碼,代碼將非常羅嗦煩雜,而且也無法處理一些動態的數據。幸運的是TWaver為我們提供了一種“動態屬性”機制。我們可以在運行期間動態的對數據進行添加、刪除和訪問:
通過以上方法,我們就可以讓管理對象方便的攜帶任意數量和類型的性能數據,而無需預先定義。
4.數據監控 當一個管理對象的數據被性能采集輪詢模塊不斷的更新的時候,我們在客戶端如何用最簡單、可靠、有效的方法進行監控其變化呢?這個很簡單,在TWaver中,我們可以使用一個網絡元素屬性監聽器(Element Property Listener)來完成。 TWaver是通過一個數據箱(DataBox)容器來裝載所有的網絡對象的。一旦對象放入數據箱后,數據箱將對每一個對象進行監控,包括其屬性的變化,甚至動態屬性(即通過putClientProperty方法放入的數據)的變化。我們可以在數據箱上面加裝一個屬性監聽器,即可對每一個網絡對象進行屬性監聽:
可見,TWaver通過標準的java.beans包定義的PropertyChangeListener和PropertyChangeEvent來通知網絡管理對象的屬性變化,使用起來非常簡單和容易理解。并且在結構上也更加的MVC,容易擴展。當然我們也可以加裝多個監聽器分別對不同的對象進行監聽,并作出不同的相應動作。
5.數據呈現 我們使用TWaver Java提供的Chart模塊來呈現運行狀態下網絡管理對象性能數據的變化,例如通過曲線圖、棒圖、餅圖等方式呈現數據的動態變化。
下圖展示了TWaver Java的圖表呈現能力。
Powered by: BlogJava Copyright © TWaver