專利名稱:一種基于數據庫的無刷新告警自動監測技術的制作方法
一種基于數據庫的無刷新告警自動監測技術 所屬領域
本發明涉及一種無刷新告警自動監測方法的實現,屬于網絡管
理領域,具體的說,涉及網絡管理系統中,在GUI上實現無刷新告警 自動監測的方案。
背景技術:
隨著網絡技術的發展,網絡規模急劇膨脹,網絡復雜性大大提高, 在這種情況下,網絡的故障日益增多,管理的難度也不斷增大,而用 戶對網絡的安全性要求卻越來越高。因此,網管的故障管理需實現可 靠、實時的自動監測功能,及時處理所有告警,維持網絡的高效、有 序運行。
告警的自動監測通常通過監聽GUI端消息接收端口 ,不斷刷新界 面,截獲最新數據觸發告警提示的方式實現,這種方式在告警數據較 少時,可靠性較高,但當告警數據迅速增加時,需提高界面刷新頻率 以適應數據到達頻率的變化,以至于服務器的負荷急劇增加,影響網 管運行的可靠性。
此外,通過刷新方式實現的告警自動監聽對告警數據的紀錄極為 不便,要兼顧數據庫和網管日志的數據存儲實現難度較大,同時,刷 新界面時需要重新編譯網頁程序,對界面重新構圖,在刷新頻率較高 時,頁面的閃動對管理員的視覺會產生比較大影響,增加管理員的管理負擔。
為解決以上問題,無刷新方式通過開啟后臺程序,設置后臺刷新 函數,每隔一定時間自動刷新,獲取最新的數據,達到監聽的目的, 因為后臺的刷新不影響頁面的顯示,避免了閃動對效果的影響,同時 只需刷新某個對象,無需重編譯,保證可靠性和有效性的同時減輕了
服務器負荷。刷新方式和無刷新方式的對比如圖2。
發明內容
本發明提供一種基于數據庫的無刷新告警自動監測方法,采用
Ajax (Asynchronous javascript and xml)技術,在后臺定時對數 據庫數據進行處理,觸發告警,達到無刷新自動監測效果,在保證可 靠性和實時性的前提下,不僅降低服務器的工作負荷,美觀的告警方 式也增加了網絡管理員管理的便利性,在數據的備份上,易于實現數 據的即時存儲和記錄,達到網絡的可運營、可管理目的。
本技術主要包括兩大部分告警存儲、告警監測,分別完成告警 信息的監聽存儲和自動監測過程(如圖1)。告警存儲和告警監測都 基于數據庫進行,使用socket技術對數據進行監聽,結合Ajax技術, 異步處理告警數據,實現無刷新告警自動監測。網頁編程技術可以選 擇JSP( Java Server Page )、 ASP( Active Server Page )、 PHP( Personal Home Page)等,Ajax技術使用Javascript腳本承載,異步調用后 臺頁面對數據庫進行輪詢,同時及時刷新告警情況。這種方法利用后 臺的方式進行監測,避免了告警界面中對數據的直接操作,提高了網 絡的安全性和可靠性。
利用對參考了附圖的優選實施例的詳細敘述,將會使本發明的上
述目的及優點更加清楚明了,其中
圖1所示為基于數據庫的無刷新告警自動監測的系統框圖; 圖2所示為刷新方式與無刷新方式告警監聽對比; 圖3所示為無刷新告警自動監測系統的功能模塊; 圖4所示為無刷新告警的自動監測過程。
具體實施方案
本發明根據Ajax技術的特點,提出了基于數據庫的無刷新技術, 對告警信息進行自動監測。
參見圖1本發明系統總體設計框圖。圖中,代理agent與底層硬 件交互,完成配置和輪詢告警上報功能,管理站manager負責處理轉 發管理配置和告警信息,GUI服務器與管理員交互,接收管理配置信 息并對告警信息給出提示。
其中,數據庫系統運行在GUI服務器中,存儲所有的管理信息和 故障信息,從管理站manager過來的告警信息通過socket技術傳到 GUI服務器的告警存儲系統,繼而存儲到數據庫中。
同時,告警顯示頁面啟動javascript后臺調用告警查詢頁面查詢 數據庫中的告警信息,并返回給javascript后臺進行處理,在確定 有新告警時,javascript后臺通過無刷新技術刷新告警顯示頁面中 顯示的告警信息。
6基于數據庫的無刷新告警自動監測系統包括監聽存儲、數據顯示、
數據處理、數據查詢四大功能模塊,如圖3,其中監聽存儲模塊與管 理站manager相接,監聽存儲所有上報的告警信息。數據顯示模塊與 管理員交互,顯示所有發生的告警記錄及最新未查看告警記錄。監聽 存儲模塊通過數據庫系統與數據顯示、數據處理和數據查詢模塊進行 通信,數據顯示、數據處理和數據查詢模塊通過互為調用完成告警的 監測功能。
基于數據庫的無刷新告警自動監測過程如圖4,當底層產生告警 時,告警會自動上報管理站manager, manager服務器通過socket技 術使用DatagramPacket. send將告警信息通過以太網傳送到GUI服務 器的告警監聽端口 ,監聽模塊建立DatagramSocket. receive將告警 數據接收后轉到存儲模塊對數據進行整理后使用Insert語句將數據 存儲到SQL數據庫中。監聽端口的生存周期和GUI服務器一樣,在 GUI服務器正常運行時,所有的告警信息都將通過監聽端口存進數據 庫中。
顯示模塊在GUI界面中,負責顯示告警的詳細參數,在GUI服務 器啟動時,顯示才莫塊調用JavaScript頁面中的showAlarm()函數, showAlarm()函lt使用xmlHttp. open函凄t打開查詢頁面,并使用 xmlHttp. responseText返回查詢頁面中out. print出來的內容,然 后將這些內容賦給顯示模塊的div層顯示出來。
在JavaScript處理模塊中設置全局變量x和y,在本系統中,設 計查詢頁面顯示告警數據庫中共有告警信息的總條數,x就用于存儲最新獲取到的告警信息總數,y用于存儲上一次運行showAlarm()函 數時xmlHttp. responseText返回的查詢頁面out. print出來的告警 信息總數。
在showAlarm()函數中, 一開始便把x的值賦給y存儲,而后將 最新獲取到的getRow()返回值賦給x,如此,x和y便分別存儲了新 舊告警總數值。當x與y不等時,說明數據庫中有最新的告警信息, 這時便觸發彈出"有最新告警信息"提示框。點擊提示框確定按鈕時 觸發事件,刷新未讀告警頁面,將最新告警信息的粗略信息顯示出來。 設置showAlarmO函數的運行間隔為1秒或其它合適值,如此后臺處 理模塊便不停查詢數據庫告警信息,實時監測是否有告警信息上報。
在JavaScript處理模塊中共定義了五個函數showAlarm(), YEvaluateded() , XEvaluateY() , stateChanged () , GetXmlHUpObject()。其中showAlarm0函數是最主要的函數,在函 數的開始,調用GetXmlHttpObject()函數進行xmlHUp對象定義, 然后將x值賦給y, 4妄著調用stateChanged ()函數運行查詢頁面返回 getRow()的輸出值給x,并判斷x與y是否相等,從而決定是否給出 告警提示框。
當GUI服務器的監聽端口同時收到多條告警時,若y的值不能在 點擊確定按鈕后被賦予與x相同的值,程序向下執行,if語句會判 斷x與y不相等,從而出現多個告警提示框,這是程序設計所不允許 的。為了解決這個問題,需要在點擊確定按鈕后調用函數將x的值賦 予y,這個賦值需要4吏用YEvaluateded()和XEvaluateY 0函數。YEvaluateded()函數類似于showAlarm()函數,但其作用只是為了調 用XEvaluateY()函凄t。 XEvaluateY ()函^t運4亍查詢頁面,返回 getRow()的值給x,然后把x的值賦給y,如此y便被賦予了最新的 x值,避免了多個提示框的出現。
當監測到有最新告警時,彈出告警提示框,點擊確定按鈕后,會 刷新未讀告警頁面,將最新告警的粗略信息顯示在未讀告警頁中。將
這些信息寫成連接的形式,點擊后在GUI界面中顯示最新告警的詳細 信息,這一功能的實現需要在未讀告警模塊中設置session保存告警 信息到來之前的告警總數,在連接到新頁面后讀取session變量值, 使用數據庫操作語句以session變量值作為限定條件讀取最新告警 的詳細信息。顯示完后再次刷新未讀告警頁面,將未讀告警條數顯示 為0條。
未讀告警才莫塊中使用了兩個結果集ResultSet rs和as,用rs取 得告警信息表中的記錄總數,而as則用來顯示最新的告警信息。模 塊中使用JavaBean設置一個隨GUI服務器的啟動和關閉而產生和滅 亡的變量sum,用來存儲新告警到來之前的告警總數。實現的方法是 在頁面顯示完告警總數后將getRow()的值賦給sum, 然后使用 getSum()函數返回sum的值。在刷新未讀告警頁面時使用getRow() 返回告警表中最新的告警總數,將getRow()的值減去sum的值就是 最新的告警信息條數,從而顯示出新告警的大略信息。在GUI服務器 啟動后第一次運行程序時sum的值會被賦值為0,盡管此時沒有新告 警信息,但顯示未讀告警條數時將getRow()的值減去sum的值并不為零,也即顯示的新告警信息數不為0。為了解決這個問題,可以在 javabean中設置跟sum變量一樣屬性的另一個變量flag,第一次運 行程序時先判斷flag的值是否為0,若為零則將getRow()的值賦給 sum,然后再執行最新告警條數的顯示,在程序結束時使flag值加1, 如此在第二次以后運行未讀告警頁面時便不會執行getRow()賦值給 sum了,也即能在一開始就顯示最新告警信息條數為O條。
在顯示完告警信息條數后,使用數據庫操作語句將新告警信息保 存到as中,使用結果集的getString()函數顯示最新告警的大體信 臺
以上所述的,僅為本發明的可行實施例,并非因此局限本發明的 專利范圍,故凡應用本發明說明書或附圖內容所為的等效變化,均同 理皆包含于本發明的范圍內,以保障發明者的權益,于此聲明。
權利要求
1、一種基于數據庫的無刷新告警自動監測技術,其特征在于按照網絡管理的故障管理特點,基于數據庫對故障進行實時無刷新自動監測,并采用數據庫技術存儲所有告警信息。告警存儲在網管啟動時使用socket技術打開監聽端口,監聽所有進入該端口的告警信息,通過JDBC橋即時存儲到數據庫中以作備份并觸發告警監測,在網管界面顯示新到告警的詳細信息,同時將監聽到的信息寫入日志供網管查詢。告警監測在網管啟動時進入JavaScript后臺程序,每隔1s的時間調用告警查詢程序對數據庫中的告警信息進行查詢并返回相應的數據,對比前后兩次調用告警查詢的返回結果,若有不同即觸發告警顯示事件,顯示所到告警細節。
2、 根據權利要求1所述的一種基于數據庫的無刷新告警自動監 測技術,其特征在于所述的基于數據庫對故障進行實時無刷新自動 監測,采用Ajax技術在后臺對數據進行處理,無需刷新網管界面即 可自動監測到新到告警信息。
3、 根據權利要求1所述的一種基于數據庫的無刷新告警自動監 測技術,其特征在于所述的告警存儲在網管啟動時即使用socket 技術綁定告警監聽端口,并記錄數據。
4、 根據權利要求3所述的一種基于數據庫的無刷新告警自動監 測技術,其特征在于所述的告警存儲需要在監聽時使用JDBC橋存 儲告警數據,同時要寫入網管日志,對告警詳情進行記錄,以備查詢及管理所需。
5、 根據權利要求1所述的一種基于數據庫的無刷新告警自動監 測技術,其特征在于所述的JavaScript后臺,是無刷新技術的關鍵環節,負責調用告警查詢、處理數據并觸發告警顯示。
6、 根據權利要求5所述的一種基于數據庫的無刷新告警自動監 測技術,其特征在于所述的無刷新技術是使用Ajax技術異步調用 告警查詢,完成數據對比后無需刷新用戶接口調用消息框,彈出告警 通知。
全文摘要
本發明公開了一種基于數據庫的無刷新告警自動監測技術,在網頁中實現無刷新的告警監測,實時監控并記錄告警信息。該技術包括告警存儲和告警監測兩部分,告警存儲打開監聽端口,接收所有來自告警信息并存儲到數據庫中;告警監測則由三部分組成,告警顯示、JavaScript后臺和告警查詢。告警顯示面向用戶,顯示告警細節,定位告警信息;JavaScript后臺負責定時對比告警數據,發現新到告警,上報告警顯示;告警查詢面向數據庫,在JavaScript后臺的調用下查詢告警數據庫數據并返回后臺所需的數據信息。本發明解決了網管自動告警的存儲、可靠性和實時性問題,有效地對網絡的性能進行監測,保證網絡的“可運營、可管理、可增值”能力。
文檔編號H04L12/24GK101478423SQ200810239598
公開日2009年7月8日 申請日期2008年12月12日 優先權日2008年12月12日
發明者昱 堯, 張永軍, 暢 曹, 蔣定孚, 顧畹儀 申請人:北京郵電大學