一種高實時性Web應用系統及其數據實時推送方法
【專利摘要】本發明公開了一種高實時性Web應用系統及其數據實時推送方法,所述系統中消息投遞接口、數據推送服務模塊和DCN監聽服務模塊的承載協議為WebSocket協議;數據推送服務模塊和DCN監聽服務模塊采用Node.js實現;客戶端可將需要發送的數據或消息發送至數據推送服務模塊用于發送至其他客戶端;消息投遞接口用于外部數據或消息的輸入接口;DCN監聽服務模塊用于獲得Oracal數據庫的數據變化信息;所述數據實時推送方法包括了外部數據的推送、客戶單之間的數據推送以及Oracal數據庫變化數據的推送。本發明使得整個Web應用系統完成數據的實時推送和廣播,并且結構簡單,易于擴展。
【專利說明】一種高實時性Web應用系統及其數據實時推送方法
【技術領域】
[0001]本發明涉及一種高實時性Web應用系統及其數據實時推送方法。
【背景技術】
[0002]目前,開發人員想實現一些實時的Web應用最常用的為Polling和Comet技術,而Comet技術實際上是輪詢技術的改進,又可細分為兩種實現方式,一種是長輪詢機制,一種稱為流技術。Polling是最早的一種實現實時Web應用的方案。客戶端以一定的時間間隔向服務端發出請求,以頻繁請求的方式來保持客戶端和服務器端的同步;長輪詢是對定時輪詢的改進和提高,目地是為了降低無效的網絡傳輸,當服務器端沒有數據更新的時候,連接會保持一段時間周期直到數據或狀態改變或者時間過期,通過這種機制來減少無效的客戶端和服務器間的交互;流技術方案通常就是在客戶端的頁面使用一個隱藏的窗口向服務端發出一個長連接的請求,服務器端接到這個請求后作出回應并不斷更新連接狀態以保證客戶端和服務器端的連接不過期,通過這種機制可以將服務器端的信息源源不斷地推向客戶端。然而,以上這些技術都不是真正的實時技術,在實際的應用中,開發人員往往需要構造兩個HTTP連接來模擬客戶端和服務器之間的雙向通訊,一個連接用來處理客戶端到服務器端的數據傳輸,一個連接用來處理服務器端到客戶端的數據傳輸,這不可避免地增加了編程實現的復雜度,也增加了服務器端的負載,制約了應用系統的擴展性。
【發明內容】
[0003]發明目的:本發明的發明目的是針對現有技術的不足而公開了一種高實時性Web應用系統,使得整個Web應用系統完成數據的實時推送和廣播,并且結構簡單易于擴展。
[0004]技術方案:為了實現發明的發明目的,本發明公開了一種高實時性Web應用系統,包括客戶端、消息投遞接口、數據推送服務模塊、客戶端會話管理模塊以及DCN監聽服務模塊;消息投遞接口、數據推送服務模塊和DCN監聽服務模塊的承載協議為WebSocket協議;數據推送服務模塊和DCN監聽服務模塊采用Node, js實現;客戶端可將需要發送的數據或消息發送至數據推送服務模塊用于發送至其他客戶端;消息投遞接口用于外部數據或消息的輸入接口 ;DCN監聽服務模塊用于獲得Oracal數據庫的數據變化信息;數據推送服務模塊用于將消息投遞接口、DCN監聽服務模塊以及客戶端廣播請求的數據或消息推送到所有客戶端;客戶端會話管理模塊用于客戶端網絡連接關系的管理及監測。
[0005]作為優選,為了使得客戶端之間的數據信息實現雙向實時性同步并且保證數據信息的安全性,每個接入會話接入接口的客戶端都生成一個WebSocket雙向長連接會話,這些會話由客戶端會話管理模塊管理及監測。
[0006]作為優選,為了使得消息投遞接口可以通過簡單的HTTP請求就能實現廣播消息的投遞,所述消息投遞接口為采用Node, js實現的一個Webserver服務。
[0007]作為優選,為了提高監聽效率,DCN監聽服務模塊設有定時器,定時器到達時DCN監聽服務模塊將Oracal數據庫的數據變化信息發送至數據推送服務模塊。[0008]為了進一步實現發明目的,本發明還公開了一種使用上述Web應用系統數據實時推送方法,包括以下部分:
[0009]( I)當有外部消息或者數據到達消息投遞接口,消息投遞接口通過數據推送服務模塊將外部消息或者數據推送至客戶端;
[0010](2)當有一個客戶端請求推送消息或者數據至其他客戶端,該客戶端就會通過會話接入接口進行數據或者消息的推送;
[0011](3)當Oracal數據庫的數據發生變化,DCN監聽服務模塊則會通過數據推送服務模塊將該變化數據提送至各客戶端。
[0012]有益效果:本發明與現有技術相比:采用新興的HTML5標準之一 WebSocket技術,高效的異步中間件Nodejs技術,結合Oracle數據庫的DCN技術,實現了一套完整的B/S三層Web應用數據實時推送和廣播架構,使得整個Web應用系統完成數據的實時推送和廣播,并且結構簡單易于擴展。
【專利附圖】
【附圖說明】
[0013]圖1為本發明Web應用系統的結構圖;
[0014]圖2為本發明客戶端會話接入及會話管理的示意圖;
[0015]圖3為本發明外部消息源向客戶端實時推送或廣播數據示意圖;
[0016]圖4為本發明一個客戶端向其他客戶端實時廣播數據示意圖;
[0017]圖5為DCN監聽服務模塊向客戶端實時廣播數據示意圖;
[0018]圖6為DCN監聽服務模塊的監聽示意圖。
【具體實施方式】
[0019]下面結合圖對本發明作更進一步的說明。
[0020]如圖1所示,Web應用系統由消息投遞接口、數據推送服務模塊、客戶端會話管理模塊、DCN監聽服務模塊以及會話接入接口組成;消息投遞接口、數據推送服務模塊、DCN監聽服務模塊和會話接入接口的承載協議為WebSocket協議;數據推送服務模塊和DCN監聽服務模塊采用Node, js實現;客戶端可將需要發送的數據或消息發送至數據推送服務模塊用于發送至其他客戶端;消息投遞接口用于外部數據或消息的輸入接口 ;DCN監聽服務模塊用于獲得Oracal數據庫的數據變化信息;數據推送服務模塊用于將消息投遞接口、DCN監聽服務模塊以及客戶端廣播請求的數據或消息推送到所有客戶端;客戶端會話管理模塊用于客戶端網絡連接關系的管理及監測;會話接入接口可監聽指定的網絡端口,并且每個接入會話接入接口的客戶端都生成一個WebSocket雙向長連接會話,這些會話由客戶端會話管理模塊管理及監測。
[0021]如圖2所示,當有客戶端接入時則會添加會話并且更新客戶端會話管理模塊的會話列表;當有連接超時或者連接斷開時則會刪除會話并且更新客戶端會話管理模塊的會話列表。
[0022]如圖3所示,基于如圖1的Web應用系統,消息源或數據源向消息投遞接口發送請求連接的請求,消息投遞接口回執接手/建立連接,消息源或數據源開始向消息投遞接口投遞信息,結束后斷開連接;消息投遞接口將數據發送至數據推送服務模塊,數據推送服務模塊則將數據發送至與其連接的所有客戶端。與此同時,客戶端會話管理模塊會管理這會話列表。
[0023]如圖4所示,當某個客戶端將其需要發送的數據通過廣播的形式發送至數據推送服務模塊,數據推送服務模塊再將其發至與其連接的所有客戶端。
[0024]如圖5所示,DCN監聽服務模塊與某個Oracle數據庫建立連接/監聽關系,這時如圖6所示,當此Oracle數據庫的數據發生變更時則將其存儲于暫存隊列中并且啟動定時器,等待定時器到達則DCN監聽服務模塊將隊列中的數據進行整合以廣播形式將變更數據發送至數據推送服務模塊,數據推送服務模塊則將數據發送至與其連接的所有客戶端。
[0025]以上的設計使得本發明的Web應用系統可以實現三種類型的數據數據實時推送和廣播需求,包括從外部消息源向客戶端實時推送或廣播數據、任意一個客戶端向其他客戶端實時廣播數據以及高效的實時監聽和捕獲Oracle數據庫的表數據變化。
【權利要求】
1.一種高實時性Web應用系統,其特征在于,包括客戶端、消息投遞接口、數據推送服務模塊、客戶端會話管理模塊、會話接入接口、Oracal數據庫以及DCN監聽服務模塊; 消息投遞接口、數據推送服務模塊和DCN監聽服務模塊的承載協議為WebSocket協議;數據推送服務模塊和DCN監聽服務模塊采用Node, js實現; 客戶端可將需要發送的數據或消息發送至數據推送服務模塊用于發送至其他客戶端;消息投遞接口用于外部數據或消息的輸入接口 ;DCN監聽服務模塊用于獲得Oracal數據庫的數據變化信息并將變化信息發送至數據推送服務模塊;數據推送服務模塊用于將消息投遞接口、DCN監聽服務模塊以及客戶端廣播請求的數據或消息推送到所有客戶端;客戶端會話管理模塊用于客戶端網絡連接關系的管理及監測;會話接入接口用于監聽指定的網絡端口并且用于客戶端的會話接入。
2.如權利要求1所述的一種高實時性Web應用系統,其特征在于,每個接入會話接入接口的客戶端都生成一個WebSocket雙向長連接會話,這些會話由客戶端會話管理模塊管理及監測。
3.如權利要求1所述的一種高實時性Web應用系統,其特征在于,消息投遞接口為采用Node, js實現的一個WebServer服務。
4.如權利要求1所述的一種高實時性Web應用系統,其特征在于,DCN監聽服務模塊設有定時器,定時器到達時DCN監聽服務模塊將Oracal數據庫的數據變化信息發送至數據推送服務模塊。
5.使用權利要求1中Web應用系統的數據實時推送方法,其特征在于,包括以下部分: (1)當有外部消息或者數據到達消息投遞接口,消息投遞接口通過數據推送服務模塊將外部消息或者數據推送至客戶端; (2)當有一個客戶端請求推送消息或者數據至其他客戶端,該客戶端就會通過會話接入接口進行數據或者消息的推送; (3)當Oracal數據庫的數據發生變化,DCN監聽服務模塊則會通過數據推送服務模塊將該變化數據提送至各客戶端。
【文檔編號】H04L29/08GK103780681SQ201410004933
【公開日】2014年5月7日 申請日期:2014年1月6日 優先權日:2014年1月6日
【發明者】苗陽, 陳瑛, 徐海靈, 李鵬飛 申請人:南京萊斯信息技術股份有限公司