• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      WebSocket服務(wù)器推送技術(shù)的研究

      2014-07-09 02:31:36張翠肖
      河北省科學院學報 2014年2期
      關(guān)鍵詞:服務(wù)器端插件瀏覽器

      張 玲,張翠肖

      (石家莊鐵道大學 信息科學與技術(shù)學院,河北 石家莊 050043)

      隨著Internet技術(shù)的不斷發(fā)展,基于HTTP協(xié)議的Web應(yīng)用成為人們從互聯(lián)網(wǎng)上獲取大量信息的主要途徑。傳統(tǒng)基于HTTP協(xié)議的Web應(yīng)用采用的是“請求—應(yīng)答”模式,以客戶端發(fā)出請求,服務(wù)器端響應(yīng)請求的方式工作。而HTTP協(xié)議是無狀態(tài)的,客戶端向服務(wù)器端發(fā)送一次請求就建立一次TCP連接,即客戶端向服務(wù)器端發(fā)送請求,服務(wù)器端處理客戶端發(fā)送的請求并做出響應(yīng),此時TCP連接斷開。當用戶需要獲取新的數(shù)據(jù)時,必須重新建立TCP連接,因此無法將最新的消息及時的傳送給客戶端[1]。現(xiàn)如今對Web應(yīng)用中數(shù)據(jù)的實時性要求越來越高,能夠及時的獲取最新消息的服務(wù)器推送技術(shù)就顯得越來越重要。傳統(tǒng)的基于HTTP協(xié)議的Web應(yīng)用不能滿足客戶的需求,HTML5標準中提出的WebSocket通信協(xié)議提供了一條客戶端與服務(wù)器端的基于TCP的雙向通道,可同時在客戶端與服務(wù)器端傳送數(shù)據(jù),使建立的實時Web應(yīng)用更高效[2]。

      1 服務(wù)器推送技術(shù)

      1.1 服務(wù)器推送技術(shù)概述

      服務(wù)器推送技術(shù)的基本思想是在客戶端與服務(wù)器端建立長連接,服務(wù)器端主動將更新的數(shù)據(jù)及時的發(fā)送到客戶端,而不需要客戶端發(fā)送請求。

      1.2 現(xiàn)有服務(wù)器推送技術(shù)

      1.2.1 HTML refresh

      最簡單的方法就是HTML refresh,即刷新。原理是不管服務(wù)器端的數(shù)據(jù)是否有更新,客戶端都不停的向服務(wù)端發(fā)送請求,當服務(wù)器端數(shù)據(jù)發(fā)生變化時就可以及時的傳送到客戶端。該方法利用HTML中的<meta>標簽,設(shè)置文件的自動刷新頻率[1]。例如<META HTTP-EQUIV=“Refresh”CONTENT=“3;URL=http://www.baidu.com”>,意思是每隔3s刷新一次百度頁面。

      1.2.2 基于插件的服務(wù)器推送技術(shù)

      基于插件的服務(wù)器推送技術(shù)可利用的瀏覽器插件有ActiveX、Applet和Flash[1]。推送原理是在客戶端瀏覽器安裝插件,插件在瀏覽器頁面打開的同時被初始化,并與服務(wù)器端建立TCP連接,使用套接口傳送數(shù)據(jù)信息或是使用MRI、CORBA進行遠程調(diào)用,來實現(xiàn)服務(wù)器端向客戶端主動的發(fā)送數(shù)據(jù)。

      1.2.3 無插件的服務(wù)器推送技術(shù)

      無插件服務(wù)器推送技術(shù)的原理是在HTTP的頭信息中添加Connection屬性,設(shè)置Connection的屬性值為Keep-Alive,建立客戶端與服務(wù)器端的長連接,服務(wù)器會主動的將最新的數(shù)據(jù)及時發(fā)送給客戶端而不需要客戶端向服務(wù)器端發(fā)送請求[3,4]。例如輪詢、長輪詢、Comet。

      由上述可知,刷新雖然可以自動發(fā)送請求但刷新的是整個頁面,而我們需要的只是部分數(shù)據(jù),重復(fù)的刷新整個頁面會造成資源的浪費;使用有插件的服務(wù)器推送技術(shù),瀏覽器必須先安裝插件,這樣操作系統(tǒng)和插件的兼容性不同會給用戶帶來很大麻煩;無插件的服務(wù)器推送技術(shù),需要服務(wù)器與瀏覽器建立長連接,當有大量的用戶與服務(wù)器建立長連接,服務(wù)器就喪失了高并發(fā)性[1,3,4]?,F(xiàn)在出現(xiàn)一種基于 WebSocket協(xié)議的服務(wù)器推送技術(shù)可以使服務(wù)器端與客戶端建立雙向通信,解決上述問題。

      2 HTML5中的WebSocket協(xié)議

      WebSocket是HTML5定義的一個非常重要的新特性,目的是解決客戶與服務(wù)器間的實時通信,有Web TCP之稱[5]。它通過單一的Socket套接字在客戶端瀏覽器和服務(wù)器端建立全雙工的通信連接,該連接可以及時的將最新數(shù)據(jù)推送到客戶端,并且直到明確關(guān)閉之前一直保持打開狀態(tài)。使用戶能夠僅僅通過網(wǎng)頁就可以實現(xiàn)很多以前必須安裝客戶端才能實現(xiàn)的功能,例如在線聊天應(yīng)用。

      WebSocket連接是通過將客戶端與服務(wù)器端之間第一次握手時的HTTP協(xié)議升級到WebSocket協(xié)議,但是其底層使用的還是TCP/IP連接。連接建立后使用標準HTTP的80或443端口進行通信,其參數(shù)格式是“ws://localhost:80/zza/Chat”,ws使用80端口是普通的WebSocket通信協(xié)議,還有這一種wss是安全的 WebSocket通信協(xié)議使用443端口[2,5]。其本質(zhì)是通過HTTP協(xié)議進行握手升級到WebSocket協(xié)議后創(chuàng)建TCP連接,此后服務(wù)器端與客戶端通過此TCP連接進行實時數(shù)據(jù)傳輸。因此,不需要安裝新的硬件或者要求開放新的端口,只要服務(wù)器端和客戶端都能解析 WebSocket協(xié)議,就可以順利地建立WebSocket連接。

      3 服務(wù)器推送模型設(shè)計

      3.1 實時Web應(yīng)用架構(gòu)設(shè)計

      如今HTML5得到了很多瀏覽器的支持,例如Firefox、Chrome、Maxthon以及基于IE推出的360瀏覽器、搜狗瀏覽器等。為提高實時 Web系統(tǒng)的實時數(shù)據(jù)處理能力和實時響應(yīng)能力,在實時 Web系統(tǒng)架構(gòu)設(shè)計中使用了 WebSocket協(xié)議的服務(wù)器推送技術(shù),利用了復(fù)雜事件處理技術(shù)對數(shù)據(jù)進行快速處理[6,7]?;赪ebSocket協(xié)議系統(tǒng)架構(gòu)模型如圖1所示。

      圖1 基于WebSocket協(xié)議系統(tǒng)架構(gòu)模型

      3.2 用戶代理模塊

      用戶代理有兩種形式,一種是當用戶瀏覽網(wǎng)頁時,用戶代理獲取用戶的瀏覽信息,根據(jù)用戶瀏覽信息發(fā)現(xiàn)用戶感興趣的信息,建立用戶興趣模型;另一種是根據(jù)用戶提交的訂閱信息,建立用戶興趣。

      3.3 數(shù)據(jù)轉(zhuǎn)換模塊

      當Internet網(wǎng)絡(luò)中各種信息以數(shù)據(jù)流的形式傳輸?shù)椒?wù)器端時,數(shù)據(jù)流首先經(jīng)過數(shù)據(jù)轉(zhuǎn)換模塊轉(zhuǎn)換為事件處理模塊能夠識別的事件流,然后數(shù)據(jù)以事件流的形式輸出到事件處理模塊。

      3.4 事件處理模塊

      對事件的處理采用了復(fù)雜事件處理技術(shù)。其基本原理是首先從事件流中提取原子事件;然后根據(jù)已經(jīng)設(shè)置的規(guī)則,去除不需要的事件,其次將低層次的事件聚合成高層次的事件,并將局部事件組合成整體事件;然后對原子事件或整體事件進行匹配、判斷和推理,從而獲取事件之間的時間關(guān)系、因果關(guān)系、邏輯關(guān)系等;最后與已存儲的用戶興趣數(shù)據(jù)進行對比,進而進行判斷,查找,決策和預(yù)測等功能[8,9,10]。復(fù)雜事件處理過程如圖2所示。

      圖2 復(fù)雜事件處理過程圖

      首先復(fù)雜事件建模根據(jù)事件類型、邏輯關(guān)系、時序關(guān)系等,將接收的事件流進行整合,其次通過復(fù)雜事件語言描述生成復(fù)雜事件模型庫,然后根據(jù)用戶代理生成的用戶興趣模型與復(fù)雜事件模型庫進行復(fù)雜事件檢測,若不符合用戶需求,則直接忽略;若符合用戶需求,則形成復(fù)雜事件庫,同時生成事件消息并觸發(fā)數(shù)據(jù)推送模塊。

      3.5 數(shù)據(jù)推送模塊

      數(shù)據(jù)推送采用基于WebSocket協(xié)議的服務(wù)器推送技術(shù),建立WebSocket建立,連接建立的過程與TCP建立連接的過程是類似的,都基于TCP協(xié)議[4,11]?;?WebSocket協(xié)議的通信圖如圖3所示。

      圖3 基于WebSocket協(xié)議的通信圖

      WebSocket協(xié)議是服務(wù)器端和客戶端瀏覽器之間建立一條可以進行雙向通信的基于TCP連接的雙向連接通道??蛻舳藶g覽器通過80或433端口向服務(wù)器端發(fā)出建立連接請求,服務(wù)器端根據(jù)HTTP header解析客戶端瀏覽器發(fā)送來的請求,若是WebSocket請求,則升級請求建立WebSocket連接。連接成功后,客戶端瀏覽器和服務(wù)器端就可以通過 Web-Socket連接直接進行數(shù)據(jù)交換。服務(wù)器在接收消息的同時觸發(fā)推送機制將消息推送到客戶端瀏覽器,呈現(xiàn)在客戶面前。

      4 結(jié)束語

      本文通過對服務(wù)器推送技術(shù)工作原理及其各自優(yōu)缺點的介紹,了解到基于WebSocket協(xié)議的服務(wù)器推送技術(shù)具有高實時性和資源占用小等優(yōu)點。通過對實時Web應(yīng)用架構(gòu)的設(shè)計,了解到利用WebSocket協(xié)議可以設(shè)計出多種實時性強、效率高的 Web應(yīng)用。Websocket作為一個正在演變中的web規(guī)范,Websocket規(guī)范和API存在變動的可能,雖然目前websocket構(gòu)建應(yīng)用程序可能存在一定的風險,但websocket將會成為未來開發(fā)實時Web應(yīng)用的主力軍。

      [1]孫清國,朱瑋,劉華軍,張鵬.Web應(yīng)用中的服務(wù)器推送技術(shù)研究綜述[J].計算機系統(tǒng)應(yīng)用,2008,11:116-120.

      [2]李代立,陳榕.WebSocket在 Web實時通信領(lǐng)域的研究[J].電腦知識與技術(shù),2010,28:7923-7925+7935.

      [3]鄭強.web服務(wù)器推送技術(shù)的設(shè)計與實現(xiàn)[D].北京郵電大學,2013.

      [4]費日東,李定主.服務(wù)器推送技術(shù)研究[J].電腦知識與技術(shù),2012,07:1516-1517.

      [5]溫照松,易仁偉,姚寒冰.基于 WebSocket的實時 Web應(yīng)用解決方案[J].電腦知識與技術(shù),2012,16:3826-3828.

      [6]廖清平.基于 Web的服務(wù)器的Push技術(shù)研究和應(yīng)用[D].中山大學,2013.

      [7]湯玲麗.復(fù)雜事件處理引擎關(guān)鍵技術(shù)研究[D].哈爾濱工程大學,2012.

      [8]江連峰,趙佳寶.復(fù)雜事件處理技術(shù)及其應(yīng)用綜述[J].軟件,2014,02:188-192.

      [9]方金燦.面向港口物流的物聯(lián)網(wǎng)中間件復(fù)雜事件處理[D].大連理工大學,2013.

      [10]湯新.Ceper:一個高性能復(fù)雜事件處理引擎[J].電腦與信息技術(shù),2013,04:32-37.

      [11]鄢金端,夏吉廣,張愛玉.服務(wù)器推送技術(shù)在智能倉儲物聯(lián)網(wǎng)中的應(yīng)用[J].警察技術(shù),2013,02:19-22.

      猜你喜歡
      服務(wù)器端插件瀏覽器
      自編插件完善App Inventor與樂高機器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      反瀏覽器指紋追蹤
      電子制作(2019年10期)2019-06-17 11:45:14
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      環(huán)球瀏覽器
      再見,那些年我們嘲笑過的IE瀏覽器
      英語學習(2015年6期)2016-01-30 00:37:23
      MapWindowGIS插件機制及應(yīng)用
      在Windows中安裝OpenVPN
      基于Revit MEP的插件制作探討
      網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
      瀏覽器
      南江县| 青龙| 潜山县| 屯门区| 年辖:市辖区| 石景山区| 云林县| 唐山市| 犍为县| 嘉禾县| 陆丰市| 交城县| 靖宇县| 天峨县| 凉山| 岱山县| 浙江省| 泰顺县| 乾安县| 徐水县| 柘城县| 息烽县| 克山县| 读书| 岚皋县| 恩平市| 云龙县| 广东省| 遵化市| 辽阳市| 根河市| 宣威市| 桐乡市| 长沙县| 湖州市| 工布江达县| 视频| 福建省| 荔浦县| 民勤县| 河池市|