所屬欄目:通信論文 發布日期:2015-05-20 16:31 熱度:
【摘 要】WebRTC具有簡單易擴展、開放標準、開源免費的特點。通過介紹利用WebRTC提供的標準API快速開發Web應用,研究了傳統Web服務器存在的問題,分析了其存在問題的瓶頸,并實現了基于瀏覽器的Web服務器。系統地實現WebRTC技術可以為Web服務器提供支持,并能為信息的傳播和分享帶來更多的解決方案。
【關鍵詞】網絡安全技術與應用雜志,WebRTC,Web服務器,瀏覽器,Nodejs
1 引言
WWW[1]從首次亮相以來20多年過去了,如今萬維網給全世界人民的信息獲取、檢索和發布帶來了極大的便利。不同地域、民族和年齡段的人們可以通過網絡交流并分享信息。網絡改變了人們的日常生活方式,且不斷向傳統行業滲透,越來越多的行業都在使用萬維網來提升自己的競爭力。
隨著通信網絡和互聯網的飛速發展,基于瀏覽器的實時通信技術RTC Web[2]或者是WebRTC[3-4]受到了各大IT巨頭和初創公司的青睞。這種技術使得瀏覽器之間有了對等通信的能力,使用該技術瀏覽器可以運用P2P的特性實時傳送內容。和目前基于瀏覽器的準實時通信技術相比,該技術在時延、成本和安全性方面都有較大的優勢。
本文圍繞WWW信息分享需求和WebRTC提供的Peer-To-Peer特性,提出了一種新的,有別于傳統服務器和免費個人建站的解決方案,給用戶提供了一種分布式、基于瀏覽器的低成本、高可用性的Web服務器。同時,文章中也分析了傳統Web服務器的弊端和新的服務器帶來的可能性,并對未來Web發展做出了展望。
2 傳統Web服務器存在的問題
Web服務器即WWW(WORLD WIDE WEB)服務器,其主要提供網上信息瀏覽和檢索服務。WWW是Internet上最受歡迎、最為流行的多媒體信息查詢工具,是Internet上20多年前誕生的服務,也是發展最迅速和當前應用最廣泛的服務。正是因為有了WWW工具,近年來Internet和移動互聯網才能得到迅速發展,PC端和移動端的用戶數量不斷激增。
Web服務器的主要功能是存儲、處理用戶請求的資源及數據,同時向客戶端分發網頁。客戶端和服務器之間的交互通過HTTP協議進行。通常分發的頁面是HTML文檔,主要是文本內容,包括圖片、樣式和交互腳本。
2.1 傳統Web服務器處理客戶請求的過程
客戶端的請求交給服務器處理,服務器端的監聽程序被動等待客戶瀏覽器發起請求。用戶的每次請求都交由服務器處理,解析URL、尋找請求的文件、生成靜態頁面文檔并發回客戶端瀏覽器,具體過程如圖1所示。當服務客戶數量過多或者同一時間網絡流量過大,則會造成服務器資源負荷過大、處理速度過慢、帶寬不足,從而導致響應速度變慢等問題,更有甚者會造成服務器崩潰無法訪問。
2.2 集中式和分布式
傳統Web服務器采用集中式管理,所有資源和數據放置在機房或者公司內部,服務器故障或者斷電將導致站點或者服務無法訪問。即使有做服務器分布式配置,也不能保證服務的不間斷運行,在管理和配置不當時則可能導致大量數據和文件丟失。該技術提出的解決方案,所有資源放在用戶自己的電腦中,即使面臨數據丟失的風險,造成的損失和傳統服務器的災難性故障相比也是可以接受的。分布的世界各地作為服務器的瀏覽器,可以有效利用PC和網絡資源,帶來更多的價值。
2.3 安全性和穩定性
Web服務器使用的操作系統份額最大的是Windows、Linux與Unix。這些Web服務器的配置和管理比較繁瑣,且安全問題日益突出。最近爆出的OpenSSL[5]漏洞導致眾多科技公司賬號泄露,引起了大家對互聯網安全的一陣恐慌。相反地,由于瀏覽器屬于用戶特別廣的產品,安全性極高,各大公司應對問題的速度相應較快,即使存在漏洞,影響的數據也很有限,不會導致整個系統發生故障。
2.4 成本問題
傳統Web服務器需要購買硬件和網絡帶寬,必要時可能需要CDN加速。現行的云服務器價格也不算便宜,在用戶需求簡單,只需要分享信息和發布公告功能的情況下可能會造成殺雞用牛刀的尷尬局面。近年來,節能減排的需求日益迫切,有關服務器的功耗問題被提出,眾多科技公司紛紛提出自己的解決方案。谷歌自建機房,提出了多種降低能耗的解決方案,并應用于實戰,但是巨大的資金投入不是一般公司能承受的。本文提出的服務器內置于用戶的瀏覽器,能有效利用PC的各種資源,并能合理使用當前的帶寬,極大地降低了服務器的運行成本。
3 WebRTC介紹及其技術特點
WebRTC(Web real-time communication,Web實時通信)從名稱上看即知它是一項使用Web實現實時通信的技術。WebRTC能夠在瀏覽器內進行實時視頻和音頻通信,還支持遠程協作與網絡游戲等實時性交互式應用,已被W3C納入HTML5標準。Web 2.0在過去的幾年里擴展了瀏覽器的可編程性和交互性,增加了更多的動態內容和格式。然而,Web技術還不足以應付實時雙向的視頻和語音通信需求。如果使用Adobe的Flash或Microsoft的Silverlight等瀏覽器插件則明顯存在靈活性和性能等方面的不足。利用WebRTC技術能夠開發具有實時音視頻通信功能的Web應用,移動應用也可以使用其核心功能實現實時音視頻通信。有了這些應用作為基礎,再結合其他的優秀技術,則可以開發出更多具有創意的Web APP和移動應用。
如圖2所示,WebRTC系統架構[6]根據面向的用戶不同分為3個部分和1個核心庫。面向Web應用開發者的Web API部分、瀏覽器廠商API部分和瀏覽器廠商自定義部分,這3個部分共享WebRTC核心庫。Web應用開發者調用W3C制定的JavaScript API開發WebRTC的應用。瀏覽器之間雙向媒體流的發送和接收通過PeerConnection API進行管理,使用JSEP[7](JavaScript session establishment protocol,JavaScript會話建立協議)進行媒體參數的協商。使用Data Channels API進行瀏覽器之間收發多媒體的數據流是WebRTC最常見的應用場景。 WebRTC技術的主要優點如下:
(1)開放的標準
互聯網的成功離不開開放和免費,其中HTTP、HTML和TCP/IP都是功臣。WebRTC已加入到由W3C和IETF標準組織共同定義的一個開放的HTML5標準。為支持高質量、完整的音視頻傳輸解決方案,W3C的WebRTC工作組為開發者定義了基于瀏覽器的Web API。
(2)簡單和易擴展性
為方便開發者通過互聯網提供音視頻和多媒體數據等多種應用和服務,WebRTC提供簡單的、可擴展性強的技術框架。WebRTC本身并不定義媒體流的路由方式、同用戶之間的交互方式、呼叫協議、身份認證及同其他網絡的互聯方式等。這些規則由服務提供商和開發者根據不同的業務場景和技術需求進行靈活選擇和協商[8]。
(3)廠商的廣泛支持
WebRTC技術獲得來自全球各大廠商和初創公司的廣泛支持。除了瀏覽器廠商Google、Mozilla和Opera外,其他大公司也對WebRTC表現出了強烈的興趣。如運營商Telefonica、AT&T,設備商Cisco、Acme Packet、Ericsson、Alcatel Lucent、Avaya,初創公司Addlive、Apizee、ClassOnlive、OnSIP、PubNub、Zingaya。近期確認的Snapchat收購Addlive也說明了WebRTC技術的巨大潛力。WebRTC技術在美國、歐洲和亞洲都得到了廣泛的關注,中國和韓國的不少廠商正在加緊研發基于該技術的產品。
(4)與其他技術的融合
WebRTC技術可以輕松實現與其他先進技術的結合,如人臉識別、虛擬現實手勢控制等,也可以通過瀏覽器端強大的通信能力和HTML5技術開發出在線多人游戲和SNS應用。
(5)與運營商的互補
目前,華為發布的一款基于WebRTC技術的富媒體通信能力開放網關[9]已經引起了全球多家領先電信運營商對華為WebRTC解決方案的濃厚興趣,并希望展開進一步的交流與合作。WebRTC技術也可作為運營商既有業務的有效補充,如通過WebRTC提供會議、IMS服務等。
4 基于WebRTC的瀏覽器端服務器設計
與實現
4.1 服務器設計選型
由于使用瀏覽器作為Web服務器提供對外訪問,主要提供靜態HTML頁面的訪問、圖片和文件分享功能。Nodejs是一個事件驅動I/O服務端JavaScript環境,基于Google的V8引擎。目的是為了實現可擴展的網絡程序,如Web服務。Nodejs采用“事件循環(event loop)”的架構,使得編寫可擴展性高的服務器端程序變得既容易又安全。Nodejs在靜態頁面請求處理上有著極大的優勢,處理用戶請求對比如圖3、圖4所示。Nodejs不適用于以下2種場景:計算密集型應用和邏輯十分復雜的事務。雖然Nodejs在以上2種場景下有短板,由于本系統并不涉及過多的計算和復雜的邏輯,所以采用Nodejs搭建Web服務器,并采用Nodejs的快速開發框架express實現Web服務器的快速成型。
4.2 瀏覽器端服務器整體設計
前端采用Backbone.js作為MVC框架,使用jQuery操作DOM,應用handlebars作為HTML模板,coffee script編寫并編譯成JavaScript代碼。通過socket.io與后臺交互。Nodejs作為JavaScript異步服務器,express.js作為Node Web服務器,并加載http模塊和fs文件模塊進行網絡通信和文件操作。系統功能模塊圖如圖5所示。
圖5 系統功能模塊圖
4.3 瀏覽器端服務器的工作流程及演示圖
客戶A的瀏覽器A訪問Nodejs服務器(http://theServerURL/),輸入服務器名稱創建服務器xxx。此時應用服務器向STUN服務器注冊服務器A的域名信息并提供A的NAT穿越所需信息,最后生成瀏覽器端服務器A(http://theServerURL/server/xxx/))。此服務器A對客戶A提供內容修改、動態路徑、模板管理和會話管理功能。此時客戶B欲訪問A創建的首頁http://theServerURL/connect/xxx/,首先向遠程STUN服務器請求A的P2P穿越信息,根據穿越信息訪問到服務器xxx,xxx根據B請求的URL地址返回相應的數據和資源。服務端界面圖如圖6所示,客戶端顯示用戶創建的內容如圖7所示。
圖6 服務端界面圖
圖7 客戶端顯示用戶創建的內容
5 結束語
WebRTC最具價值的技術就是實現瀏覽器之間的數據傳輸和分享。一個可能的應用場景是未來用戶的電腦上只有1個瀏覽器,但是可以直接通過瀏覽器和Internet連接。用戶能直接搭建屬于自己的臨時服務器,把需要的信息分享出去,用戶關閉瀏覽器即關閉服務器,這種閱后即焚[10]的場景提供了更大的創新空間。這種基于B/B的模式可能會對目前的B/S模式的各類應用產生巨大的影響。基于WebRTC的P2P傳輸技術同樣給移動互聯網行業帶來了巨大的可能性。目前眾多WebRTC初創公司爆發出來的潛力已經給出了很好的佐證。在移動互聯網飛速發展的3~5年內,伴隨著HTML5標準的日益成熟,WebRTC技術將會得到廣泛的應用。在不久的將來可能會出現基于移動終端的Web服務器或者嵌入式設備的Web服務器,這給人們的信息分享和傳播帶來了無限可能。
參考文獻:
[1] Wikipedia. World Wide Web[EB/OL]. [2014-08-22]. http://en.wikipedia.org/wiki/World_Wide_Web.
[2] IETF RTCWeb Workgroup. Rtcweb Status Pages[EB/OL]. [2014-04-16]. http://tools.ietf.org/wg/rtcweb/charters.
[3] 屈振華,李慧云,張海濤,等. WebRTC技術初探[J]. 電信科學, 2012(10): 106-110.
[4] Adam Bergkvist, Daniel C Burnett, Cullen Jenningsetal. WebRTC 1.0: Real-Time[Z]. 2013.
[5] 楊勇,鄒雷. OpenSSL Heartbleed漏洞研究及啟示[J]. 信息安全與通信保密, 2014(5): 99-102.
[6] 張志明,柯衛. 基于HTML5的視頻通信云服務應用技術研究[J]. 電信科學, 2012(10): 31-37.
[7] IETF RTCWeb JSEP. JavaScript session establishment protocol[EB/OL]. [2014-06-04]. http://datatracker.ietf.org/docc/draft-ietf-rteweb-jsep/.
[8] 林鴻,王松,楊鑫,等. 基于WebRTC技術的應用及平臺技術開發與設計[J]. 電信科學, 2013(9): 20-25.
[9] 華為發布業界第一款基于WebRTC技術的富媒體通信能力開放網關[J]. 電信網技術, 2013(5): 70-70.
文章標題:網絡安全技術與應用雜志投稿基于WebRTC的瀏覽器端Web服務器的設計
轉載請注明來自:http://www.anghan.cn/fblw/dianxin/tongxin/26813.html
攝影藝術領域AHCI期刊推薦《Phot...關注:105
Nature旗下多學科子刊Nature Com...關注:152
中小學教師值得了解,這些教育學...關注:47
2025年寫管理學論文可以用的19個...關注:192
測繪領域科技核心期刊選擇 輕松拿...關注:64
及時開論文檢索證明很重要關注:52
中國水產科學期刊是核心期刊嗎關注:54
國際出書需要了解的問題解答關注:58
合著出書能否評職稱?關注:48
電信學有哪些可投稿的SCI期刊,值...關注:66
通信工程行業論文選題關注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關注:120
評職稱發論文好還是出書好關注:68
復印報刊資料重要轉載來源期刊(...關注:51
英文期刊審稿常見的論文狀態及其...關注:69
copyright © www.anghan.cn, All Rights Reserved
搜論文知識網 冀ICP備15021333號-3