羅廣,陽許軍(.武漢郵電科學(xué)研究院 湖北 武漢 430074;.武漢虹信服務(wù)有限公司 湖北 武漢 430074)
基于web的推送技術(shù)在風(fēng)險預(yù)警系統(tǒng)中的應(yīng)用
羅廣1,陽許軍2
(1.武漢郵電科學(xué)研究院 湖北 武漢 430074;2.武漢虹信服務(wù)有限公司 湖北 武漢 430074)
為解決風(fēng)險預(yù)警系統(tǒng)因傳統(tǒng)web系統(tǒng)請求/響應(yīng)模式而造成信息延遲的問題,本文提出了一種基于web服務(wù)器主動推送技術(shù)的風(fēng)險預(yù)警系統(tǒng)的的方案,并闡述了此方案的關(guān)鍵技術(shù)以及具體實現(xiàn)。本風(fēng)險預(yù)警方案通過使用基于HTTP長鏈接的Comet技術(shù),具備了在web頁面不重新刷新的情況下預(yù)警風(fēng)險風(fēng)險的能力。該系統(tǒng)一旦檢測到風(fēng)險,能夠及時預(yù)警,因此,該系統(tǒng)滿足設(shè)計需求,該方案是可行的。
服務(wù)器推送;風(fēng)險預(yù)警;數(shù)據(jù)庫技術(shù);Comet;web
隨著IT技術(shù)的發(fā)展,越來越多的應(yīng)用開始使用B/S架構(gòu)。在傳統(tǒng)的請求/響應(yīng)模型中,服務(wù)器監(jiān)聽來自于客戶端瀏覽器端的HTTP請求,一旦接收到請求,web服務(wù)器立即作出相應(yīng),向客戶端瀏覽器發(fā)送HTTP響應(yīng)報文。對于客戶端瀏覽器而言,B/S模型是一種被動的模型,除非瀏覽器發(fā)送請求,否則客戶端瀏覽器接收不到來自服務(wù)器的任何響應(yīng)。
對于大部分web應(yīng)用程序,傳統(tǒng)模式可以滿足需求,但是,隨著IT技術(shù)的應(yīng)用領(lǐng)域日益廣泛,越來越多的新業(yè)務(wù)需求出現(xiàn)在web應(yīng)用程序中,傳統(tǒng)模式開始出現(xiàn)弊端,無法完成業(yè)務(wù)需求。
風(fēng)險預(yù)警是一個web技術(shù)新的應(yīng)用領(lǐng)域。風(fēng)險預(yù)警是一種需要高實時性的web應(yīng)用程序,在風(fēng)險預(yù)警系統(tǒng)中,一旦服務(wù)器檢測到風(fēng)險產(chǎn)生,為保證風(fēng)險預(yù)警的實時性,需要立即推送預(yù)警,而不是等待客戶端瀏覽器頁面刷新時發(fā)送請求,重新加載數(shù)據(jù)。
近些年興起的服務(wù)端主動推送技術(shù)為為風(fēng)險預(yù)警系統(tǒng)提供了很好的解決方案。在風(fēng)險預(yù)警系統(tǒng)中,使用的服務(wù)端主動推送技術(shù)是Comet技術(shù)。Comet技術(shù)是一種基于HTTP長鏈接的技術(shù),與AJAX更新數(shù)據(jù)模式不同,Comet技術(shù)只有在服務(wù)器有數(shù)據(jù)更新時才向客戶端瀏覽器發(fā)送數(shù)據(jù),當(dāng)客戶端瀏覽器接收完數(shù)據(jù)是并不和web服務(wù)器斷開連接,而是繼續(xù)等待下一次服務(wù)器的數(shù)據(jù)更新。直到其中一方發(fā)送斷開連接報文,或者有超時或網(wǎng)絡(luò)錯誤發(fā)生,鏈接才會打開。因此,較其他主動推送技術(shù)Ajax輪循技術(shù)而言,Comet技術(shù)更加節(jié)省網(wǎng)絡(luò)資源。
本風(fēng)險預(yù)警系統(tǒng)是一個典型的web應(yīng)用程序,主要分為web服務(wù)器、web頁面、底層數(shù)據(jù)持久層3個部分,系統(tǒng)結(jié)構(gòu)圖如圖1所示。在本系統(tǒng)中,web服務(wù)器起到了重要的作用。一方面,web服務(wù)器可以從底層數(shù)據(jù)接入層讀寫數(shù)據(jù),為web頁面提供用戶登陸、配置風(fēng)險預(yù)警參數(shù)、用戶權(quán)限控制等功能;另一方面,web服務(wù)器也在收到web頁面請求之后,與web頁面建立預(yù)警推送通道,一旦接收到預(yù)警信息,主動發(fā)起風(fēng)險預(yù)警。
圖1 系統(tǒng)結(jié)構(gòu)圖
Web頁面提供了用戶操作界面。系統(tǒng)所涉及人員分為兩種,一種是用戶,即系統(tǒng)操作人員;另一種則是客戶,即操作對象。本系統(tǒng)主要面向操作人員提供風(fēng)險預(yù)警功能,預(yù)警客戶業(yè)務(wù)數(shù)據(jù)的風(fēng)險。
2.1個性化預(yù)警參數(shù)的配置
本風(fēng)險預(yù)警系統(tǒng)通過配置客戶風(fēng)險預(yù)警參數(shù),來提供個性化的風(fēng)險預(yù)警功能??蛻麸L(fēng)險預(yù)警參數(shù)為系統(tǒng)每一位客戶在每一個可能存在風(fēng)險的業(yè)務(wù)項下提供個性化的參數(shù)配置,風(fēng)險信息抓取程序能夠根據(jù)風(fēng)險預(yù)警參數(shù)提供個性化風(fēng)險預(yù)警服務(wù)。
風(fēng)險獲取程序在獲取預(yù)警信息時,將會在底層數(shù)據(jù)持久層獲取風(fēng)險預(yù)警參數(shù),以此參數(shù)為不同客戶、不同業(yè)務(wù)配置個性化風(fēng)險預(yù)警標(biāo)準。風(fēng)險捕獲程序在捕獲風(fēng)險信息時,將會查詢底層數(shù)據(jù)接入層是否保存有對應(yīng)客戶風(fēng)險預(yù)警參數(shù),若存在,則以客戶風(fēng)險預(yù)警參數(shù)作為缺省風(fēng)險預(yù)警參數(shù);否則,則以默認風(fēng)險預(yù)警參數(shù)作為缺省風(fēng)險預(yù)警參數(shù),抓取風(fēng)險數(shù)據(jù)。
圖2 風(fēng)險預(yù)警參數(shù)的獲取
2.2預(yù)警信息獲取
預(yù)警信息的獲取主要有兩種方式。一種方式是頁面加載時,使用AJAX技術(shù),通過頁面向web服務(wù)器發(fā)起請求,web服務(wù)器通過查詢底層數(shù)據(jù)持久層查詢風(fēng)險預(yù)警信息,獲取風(fēng)險預(yù)警數(shù)據(jù),通過HTTP響應(yīng)將數(shù)據(jù)發(fā)送給web頁面。第二種方式是通過風(fēng)險獲取程序獲取通過定時高頻檢索數(shù)據(jù)持久層,及時獲取預(yù)警信息,通過web服務(wù)器風(fēng)險預(yù)警接口向web服務(wù)器發(fā)送預(yù)警通知,web服務(wù)器風(fēng)險預(yù)警接口一旦接收到風(fēng)險通知,立即向web頁面推送風(fēng)險預(yù)警信息。文中主要描述的是第二種預(yù)警信息的推送方式。
2.3服務(wù)器主動推送
服務(wù)器主動推送技術(shù)是本風(fēng)險預(yù)警系統(tǒng)最關(guān)鍵的技術(shù),此技術(shù)為web服務(wù)器及時預(yù)警風(fēng)險提供了保證。目前常用的服務(wù)器推送技術(shù)是AJAX輪詢技術(shù)以及基于HTTP長連接的Comet技術(shù)。
作為一種被廣泛使用的web應(yīng)用程序開發(fā)技術(shù),AJAX技術(shù)在web應(yīng)用程序開發(fā)中日益流行。AJAX輪詢技術(shù)是一種以AJAX技術(shù)為核心的服務(wù)器推送技術(shù)。在AJAX引擎中的XMLHttpRequest對象通過周期請求的方式定時訪問服務(wù)器來獲取新的數(shù)據(jù),服務(wù)器程序通過向與AJAX通信建立的臨時通道中寫入數(shù)據(jù),其后,客戶端接收新數(shù)據(jù),解析并獲得數(shù)據(jù)內(nèi)容,然后Javascript腳本修改頁面 DOM對象實現(xiàn)用戶界面的更新。
Comet技術(shù)與AJAX輪詢技術(shù)類似,主要不同之處是Comet技術(shù)通過建立一個和服務(wù)器端的長連接,當(dāng)服務(wù)器端有新的數(shù)據(jù)需要發(fā)送給客戶端時,才向長連接持久管道中寫入數(shù)據(jù),客戶端瀏覽器通過接收并解析獲得新的數(shù)據(jù),并將新的數(shù)據(jù)寫入到DOM中,通過頁面進行風(fēng)險預(yù)警。
Comet技術(shù)很好的解決了在風(fēng)險預(yù)警系統(tǒng)中遇到的問題。一方面,Comet技術(shù)通過建立HTTP長連接,減少客戶端和服務(wù)器端的通信量,只有在新數(shù)據(jù)到來時才產(chǎn)生服務(wù)器和客戶端的通信。另一方面,消息將不會延遲。在瀏覽器/服務(wù)器通信過程中,web服務(wù)器/客戶端瀏覽器之間HTTP連接一直打開,服務(wù)器端傳輸數(shù)據(jù)的方式是以主動傳輸?shù)姆绞竭M行,不用等待客戶端請求后再傳輸,通信的雙方消息將是實時同步的。
在風(fēng)險預(yù)警系統(tǒng)中,一旦頁面完成加載,客戶端瀏覽器發(fā)起長連接請求,web服務(wù)器響應(yīng)請求,建立HTTP長連接,供web服務(wù)器發(fā)起主動推送功能。此時,若服務(wù)器接口捕獲風(fēng)險預(yù)警,web服務(wù)器發(fā)起響應(yīng),更新風(fēng)險信息,發(fā)起預(yù)警。
圖3 主動推送流程
2.4風(fēng)險預(yù)警信息的清除
本風(fēng)險預(yù)警系統(tǒng)使用的風(fēng)險預(yù)警信息來自于底層數(shù)據(jù)接入層,有風(fēng)險捕獲程序產(chǎn)生,產(chǎn)生后本系統(tǒng)在底層數(shù)據(jù)接入層查詢數(shù)據(jù),向web頁面預(yù)警風(fēng)險。系統(tǒng)風(fēng)險預(yù)警詳情頁面提供進入業(yè)務(wù)系統(tǒng)接口,可以處理風(fēng)險信息,一旦處理完成,風(fēng)險預(yù)警自動清除。風(fēng)險預(yù)警信息清除后,頁面重新加載,更新風(fēng)險預(yù)警信息。
2.5風(fēng)險預(yù)警推送測試
通過向web服務(wù)器風(fēng)險預(yù)警接口發(fā)送模擬數(shù)據(jù)實現(xiàn)風(fēng)險預(yù)警推送測試。在測試過程中,web服務(wù)器向web頁面推送預(yù)警信息,在此過程中,頁面沒有重新進行加載,web頁面接收到推送信息,JavaScript腳本程序?qū)L(fēng)險數(shù)量寫入一級菜單風(fēng)險管理處,以數(shù)字向用戶預(yù)警風(fēng)險。同時,進入風(fēng)險預(yù)警功能模塊已經(jīng)風(fēng)險詳情頁面,可查詢風(fēng)險預(yù)警列表和風(fēng)險預(yù)警相信信息。
圖4 風(fēng)險預(yù)警信息列表
圖5 風(fēng)險管理
本文介紹了一種基于服務(wù)器主動推送的風(fēng)險預(yù)警方案,重點闡述了基于HTTP長連接的Comet技術(shù)在本風(fēng)險預(yù)警技術(shù)中的應(yīng)用。通過使用Comet技術(shù),一旦服務(wù)器接收到風(fēng)險預(yù)警,能立即向web頁面推送預(yù)警信息,不用再等待頁面刷新才更新數(shù)據(jù)。本風(fēng)險預(yù)警方案在web應(yīng)用程序中起到重要作用,能及時查找出危險、敏感的業(yè)務(wù)數(shù)據(jù),為web應(yīng)用程序穩(wěn)定性、安全性提供了保障。
[1]陳航,趙方.基于服務(wù)器推送技術(shù)和XMPP的Web IM系統(tǒng)實現(xiàn)[J].計算機工程與設(shè)計,2010,31(5):925-928,994.
[2]孫君曼,方華京.基于推送技術(shù)的網(wǎng)絡(luò)化監(jiān)控報警系統(tǒng)[J].計算機工程,2008(4):269-271.
[3]曾維紅,陳鐵軍,孟麗,等.基于技術(shù)的主動信息服務(wù)系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2005,11(11):2893-2894.
[4]孫清國,朱瑋,劉華軍,等.Web應(yīng)用中的服務(wù)器推送技術(shù)研究綜述[J].計算機系統(tǒng)應(yīng)用,2008(11):116-120.
[5]景慎艷.基于PUSHLET的服務(wù)器推送技術(shù)的研究與應(yīng)用[J].現(xiàn)代計算機,2009(10):132-134.
[6]李明,陳蘇,張雨,等.計算機網(wǎng)絡(luò)中的Push技術(shù)[J].計算機工程,2000,26(6):29-31.
[7]王茜,謝萍,王穎.基于Hadoop的同步相量數(shù)據(jù)處理平臺性能分析[J].電力信息與通信技術(shù),2014(9):1-5.
[8]王峰,劉蓓莉,馮玉森.基于Hi3516的Web視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].電子科技,2013(10):62-63.
[9]徐淑萍,李軍,張軍,等.嵌入式Web服務(wù)器軟件的設(shè)計與實現(xiàn)[J].西安工業(yè)大學(xué)學(xué)報,2014(3):193-198.
Web-based push service applications in risk early warning system
LUO Guang1,YANG Xu-jun2
(1.Wuhan Research Institute of Postal and Telecommunications,Wuhan 430074,China;2.Wuhan Hongxin Technology Service Co.,Ltd.,Wuhan 430074,China)
In order to solve the risk early warning system for the request/response mode of traditional web system caused by the information delay problem,this paper proposes a risk warning system based on active web server push technology,and expounds the key technology of the scheme and implementation.The risk early warning scheme is based on the HTTP long link Comet technology,with the ability of risking early warning without refreshing the web page.Once the system detected the risk,can timely warning,so the system satisfies the design need,this plan is feasible.
server push;risk early warning;database technology;comet;Web
TN02
A
1674-6236(2016)11-0046-03
2015-06-15稿件編號:201506160
羅 廣(1989—),男,湖北武漢人,碩士研究生。研究方向:計算機軟件與技術(shù),互聯(lián)網(wǎng),軟件開發(fā)。