一種網管系統中WebSocket推送告警信息的方法及系統的制作方法
【技術領域】
[0001]本發明涉及網絡通信的技術領域,特別是涉及一種網管系統中WebSocket推送告警信息的方法及系統。
【背景技術】
[0002]在瀏覽器中通過http僅能實現單向的通信,comet可以一定程度上模擬雙向通信,但效率較低,并需要服務器有較好的支持。flash中的socket和xmlsocket可以實現真正的雙向通信,通過flex ajax bridge,可以在javascript中使用這兩項功能。面對這種狀況,HTML5定義了 WebSocket協議,其實現了瀏覽器與服務器全雙工通信,從而能夠更好的節省服務器資源和帶寬并達到實時通訊。
[0003]WebSocket作為HTML5引入的web應用的雙工通信協議,可以用于網管系統中實時向瀏覽器客戶端推送告警信息。如圖1所示,一般網管系統中用WebSocket推送信息的做法是,網管服務器接收到一條設備上報的告警信息,即將告警信息通過WebSocket推送到各個客戶端;客戶端接收到網管服務器發來的WebSocket消息后,解析消息,刷新頁面。
[0004]然而,在某個時間段告警消息量比較大的情況下,網管服務器會不停的向客戶端發送消息,客戶端會不停地解析消息,刷新頁面。這會給服務器/瀏覽器客戶端帶來負擔,同時增加了網絡吞吐量。
【發明內容】
[0005]鑒于以上所述現有技術的缺點,本發明的目的在于提供一種網管系統中WebSocket推送告警信息的方法及系統,網管服務器對需要發送的告警信息進行緩存,通過監測單位時間片中需要推送的告警信息數目,動態調整WebSocket推送告警信息的時間片窗口的大小,將時間片窗口內的告警信息合并為一條告警消息發送至客戶端,從而既能保證告警消息推送的實時性,又能減少網絡吞吐量。
[0006]為實現上述目的及其他相關目的,本發明提供一種網管系統中WebSocket推送告警信息的方法,包括以下步驟:設置WebSocket推送告警信息的單位時間片和最大時間片的大小;將單位時間片作為當前時間片窗口,對當前時間片窗口網管服務器接收到的設備上報的告警信息進行緩存,并在當前時間片窗口結束時,將緩存的告警信息合并為一條信息通過WebSocket推送至客戶端;監測當前時間片窗口所推送的告警信息的數目,計算單位時間片所推送的告警信息的數目;若單位時間片所推送的告警信息的數目小于預設閾值下限,則減小當前時間片窗口的大小;若單位時間片所推送的告警信息的數目大于預設閾值上限,則增大當前時間片窗口的大小;若單位時間片所推送的告警信息的數目介于預設閾值下限和預設閾值上限之間,則保持當前時間片窗口的大小不變。
[0007]于本發明的一實施例中,減小當前時間片窗口的大小時,將當前時間片窗口減少一個單位時間片的大小。
[0008]于本發明的一實施例中,減小當前時間片窗口的大小時,若減小后的當前時間片窗口小于等于單位時間片,則將單位時間片作為當前時間片窗口。
[0009]于本發明的一實施例中,增大當前時間片窗口的大小時,將當前時間片窗口增加一個單位時間片的大小。
[0010]于本發明的一實施例中,增大當前時間片窗口的大小時,若增大后的當前時間片窗口大于等于最大時間片,則將最大時間片作為當前時間片窗口。
[0011]同時,本發明還提供一種網管系統中WebSocket推送告警信息的系統,其特征在于:包括設置模塊、緩存推送模塊、監測計算模塊和調整模塊;
[0012]所述設置模塊用于設置WebSocket推送告警信息的單位時間片和最大時間片的大小;
[0013]所述緩存推送模塊用于將單位時間片作為當前時間片窗口,對當前時間片窗口網管服務器接收到的設備上報的告警信息進行緩存,并在當前時間片窗口結束時,將緩存的告警信息合并為一條信息通過WebSocket推送至客戶端;
[0014]所述監測計算模塊用于監測當前時間片窗口所推送的告警信息的數目,計算單位時間片所推送的告警信息的數目;
[0015]所述調整模塊用于在單位時間片所推送的告警信息的數目小于預設閾值下限時,減小當前時間片窗口的大小;在單位時間片所推送的告警信息的數目大于預設閾值上限時,增大當前時間片窗口的大小;在單位時間片所推送的告警信息的數目介于預設閾值下限和預設閾值上限之間,保持當前時間片窗口的大小不變。
[0016]于本發明的一實施例中,減小當前時間片窗口的大小時,將當前時間片窗口減少一個單位時間片的大小。
[0017]于本發明的一實施例中,減小當前時間片窗口的大小時,若減小后的當前時間片窗口小于等于單位時間片,則將單位時間片作為當前時間片窗口。
[0018]于本發明的一實施例中,增大當前時間片窗口的大小時,將當前時間片窗口增加一個單位時間片的大小。
[0019]于本發明的一實施例中,增大當前時間片窗口的大小時,若增大后的當前時間片窗口大于等于最大時間片,則將最大時間片作為當前時間片窗口。
[0020]如上所述,本發明的網管系統中WebSocket推送告警信息的方法及系統,具有以下有益效果:
[0021](1)在單位時間片推送告警信息量比較大的情況下,增加推送的當前時間片窗P ;
[0022](2)在單位時間片推送告警信息量比較小的情況下,較小推送的當前時間片窗P ;
[0023](3)將多條告警信息合入一條消息中通過WebSocket進行推送,減少了服務器/客戶端的通信壓力,保證了告警消息推送的實時性。
【附圖說明】
[0024]圖1顯示為現有技術中網管系統中WebSocket推送告警信息的示意圖;
[0025]圖2顯示為本發明的網管系統中WebSocket推送告警信息的方法的流程圖;
[0026]圖3顯示為本發明中網管系統中WebSocket推送告警信息的示意圖;
[0027]圖4顯示為本發明的網管系統中WebSocket推送告警信息的系統的結構示意圖。
[0028]元件標號說明
[0029]1 設置模塊
[0030]2 緩存推送模塊
[0031]3 監測計算模塊
[0032]4 調整模塊
【具體實施方式】
[0033]以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節也可以基于不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。
[0034]需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪制,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可能更為復雜。
[0035]本發明的網管系統中WebSocket推送告警信息的方法及系統對需要推送的告警信息進行緩存,并將時間片窗口中的告警信息合并后一起發送到客戶端;同時監測單位時間片中推送的告警消息的數目,若單位時間片中告警消息的數目超過預設閾值,則增加時間片窗口的大小;若單位時間片中告警信息的數目小于預設閾值,則減少時間片窗口的大小。
[0036]參照圖2,本發明的網管系統中WebSocket推送告警信息的方法包括以下步驟:
[0037]步驟S1、設置WebSocket推送告警信息的單位時間片和最大時間片的大小。
[0038]其中,單位時間片即為WebSocket推送告警信息所需的最小時間間隔。最大時間片即為WebSocket推送告警信息所限定的最大時間間隔。設定單位時間片為T0,最大時間片為TP。優選地,最大時間片為單位時間片的整數倍。
[0039]步驟S2、將單位時間片作為當前時間片窗口,對當前時間片窗口網管服務器接收到的設備上報的告警信息進行緩存,并在當前時間片窗口結束時,將緩存的告警信息合并為一條信息通過WebSocket推送至客戶端。
[0040]與現有技術中,網管服務器針對接收到的每條告警信息進行一次推送不同,本發明中首先將當前時間片窗口接收到的告警信息在網管服務器上緩存。設當前時間片窗口為
TKo
[0041]步驟S3、監測當前時間片窗口所推送的告警信息的數目,計算單位時間片所推送的告警信息的數目。
[0042]具體地,設當前時間片窗口所推送的告警信息的數目為m,則單位時間片所推送的告警信息的數目n = m*T0/TK。