基于WebRTC的瀏覽器端Web服務器的研究論文
WebRTC (Web Real-Time Communications)是一項Web用戶間的實時通信技術,它為瀏覽器提供了音視頻通信、數(shù)據(jù)傳輸、桌面分享等能力,目前Chrome、 Firefox等瀏覽器都支持此項技術。以下是學習啦小編為大家精心準備的:基于WebRTC的瀏覽器端Web服務器的研究相關論文。內(nèi)容僅供參考,歡迎閱讀!
基于WebRTC的瀏覽器端Web服務器的研究全文如下:
【摘要】:WebRTC具有簡單易擴展、開放標準、開源免費的特點。通過介紹利用WebRTC提供的標準API快速開發(fā)Web應用,研究了傳統(tǒng)Web服務器存在的問題,分析了其存在問題的瓶頸,并實現(xiàn)了基于瀏覽器的Web服務器。系統(tǒng)地實現(xiàn)WebRTC技術可以為Web服務器提供支持,并能為信息的傳播和分享帶來更多的解決方案。
【關鍵詞】: WebRTC Web服務器 瀏覽器 Nodejs
1 引言
WWW從首次亮相以來20多年過去了,如今萬維網(wǎng)給全世界人民的信息獲取、檢索和發(fā)布帶來了極大的便利。不同地域、民族和年齡段的人們可以通過網(wǎng)絡交流并分享信息。網(wǎng)絡改變了人們的日常生活方式,且不斷向傳統(tǒng)行業(yè)滲透,越來越多的行業(yè)都在使用萬維網(wǎng)來提升自己的競爭力。
隨著通信網(wǎng)絡和互聯(lián)網(wǎng)的飛速發(fā)展,基于瀏覽器的實時通信技術RTC Web或者是WebRTC受到了各大IT巨頭和初創(chuàng)公司的青睞。這種技術使得瀏覽器之間有了對等通信的能力,使用該技術瀏覽器可以運用P2P的特性實時傳送內(nèi)容。和目前基于瀏覽器的準實時通信技術相比,該技術在時延、成本和安全性方面都有較大的優(yōu)勢。
本文圍繞WWW信息分享需求和WebRTC提供的Peer-To-Peer特性,提出了一種新的,有別于傳統(tǒng)服務器和免費個人建站的解決方案,給用戶提供了一種分布式、基于瀏覽器的低成本、高可用性的Web服務器。同時,文章中也分析了傳統(tǒng)Web服務器的弊端和新的服務器帶來的可能性,并對未來Web發(fā)展做出了展望。
2 傳統(tǒng)Web服務器存在的問題
Web服務器即WWW(WORLD WIDE WEB)服務器,其主要提供網(wǎng)上信息瀏覽和檢索服務。WWW是Internet上最受歡迎、最為流行的多媒體信息查詢工具,是Internet上20多年前誕生的服務,也是發(fā)展最迅速和當前應用最廣泛的服務。正是因為有了WWW工具,近年來Internet和移動互聯(lián)網(wǎng)才能得到迅速發(fā)展,PC端和移動端的用戶數(shù)量不斷激增。
Web服務器的主要功能是存儲、處理用戶請求的資源及數(shù)據(jù),同時向客戶端分發(fā)網(wǎng)頁??蛻舳撕头掌髦g的交互通過HTTP協(xié)議進行。通常分發(fā)的頁面是HTML文檔,主要是文本內(nèi)容,包括圖片、樣式和交互腳本。
2.1 傳統(tǒng)Web服務器處理客戶請求的過程
客戶端的請求交給服務器處理,服務器端的監(jiān)聽程序被動等待客戶瀏覽器發(fā)起請求。用戶的每次請求都交由服務器處理,解析URL、尋找請求的文件、生成靜態(tài)頁面文檔并發(fā)回客戶端瀏覽器,具體過程如圖1所示。當服務客戶數(shù)量過多或者同一時間網(wǎng)絡流量過大,則會造成服務器資源負荷過大、處理速度過慢、帶寬不足,從而導致響應速度變慢等問題,更有甚者會造成服務器崩潰無法訪問。
2.2 集中式和分布式
傳統(tǒng)Web服務器采用集中式管理,所有資源和數(shù)據(jù)放置在機房或者公司內(nèi)部,服務器故障或者斷電將導致站點或者服務無法訪問。即使有做服務器分布式配置,也不能保證服務的不間斷運行,在管理和配置不當時則可能導致大量數(shù)據(jù)和文件丟失。該技術提出的解決方案,所有資源放在用戶自己的電腦中,即使面臨數(shù)據(jù)丟失的風險,造成的損失和傳統(tǒng)服務器的災難性故障相比也是可以接受的。分布的世界各地作為服務器的瀏覽器,可以有效利用PC和網(wǎng)絡資源,帶來更多的價值。
2.3 安全性和穩(wěn)定性
Web服務器使用的操作系統(tǒng)份額最大的是Windows、Linux與Unix。這些Web服務器的配置和管理比較繁瑣,且安全問題日益突出。最近爆出的OpenSSL漏洞導致眾多科技公司賬號泄露,引起了大家對互聯(lián)網(wǎng)安全的一陣恐慌。相反地,由于瀏覽器屬于用戶特別廣的產(chǎn)品,安全性極高,各大公司應對問題的速度相應較快,即使存在漏洞,影響的數(shù)據(jù)也很有限,不會導致整個系統(tǒng)發(fā)生故障。
2.4 成本問題
傳統(tǒng)Web服務器需要購買硬件和網(wǎng)絡帶寬,必要時可能需要CDN加速?,F(xiàn)行的云服務器價格也不算便宜,在用戶需求簡單,只需要分享信息和發(fā)布公告功能的情況下可能會造成殺雞用牛刀的尷尬局面。近年來,節(jié)能減排的需求日益迫切,有關服務器的功耗問題被提出,眾多科技公司紛紛提出自己的解決方案。谷歌自建機房,提出了多種降低能耗的解決方案,并應用于實戰(zhàn),但是巨大的資金投入不是一般公司能承受的。本文提出的服務器內(nèi)置于用戶的瀏覽器,能有效利用PC的各種資源,并能合理使用當前的帶寬,極大地降低了服務器的運行成本。
3 WebRTC介紹及其技術特點
WebRTC(Web real-time communication,Web實時通信)從名稱上看即知它是一項使用Web實現(xiàn)實時通信的技術。WebRTC能夠在瀏覽器內(nèi)進行實時視頻和音頻通信,還支持遠程協(xié)作與網(wǎng)絡游戲等實時性交互式應用,已被W3C納入HTML5標準。Web 2.0在過去的幾年里擴展了瀏覽器的可編程性和交互性,增加了更多的動態(tài)內(nèi)容和格式。然而,Web技術還不足以應付實時雙向的視頻和語音通信需求。如果使用Adobe的Flash或Microsoft的Silverlight等瀏覽器插件則明顯存在靈活性和性能等方面的不足。利用WebRTC技術能夠開發(fā)具有實時音視頻通信功能的Web應用,移動應用也可以使用其核心功能實現(xiàn)實時音視頻通信。有了這些應用作為基礎,再結(jié)合其他的優(yōu)秀技術,則可以開發(fā)出更多具有創(chuàng)意的Web APP和移動應用。
WebRTC系統(tǒng)架構根據(jù)面向的用戶不同分為3個部分和1個核心庫。面向Web應用開發(fā)者的Web API部分、瀏覽器廠商API部分和瀏覽器廠商自定義部分,這3 個部分共享WebRTC核心庫。Web應用開發(fā)者調(diào)用W3C制定的JavaScript API開發(fā)WebRTC的應用。瀏覽器之間雙向媒體流的發(fā)送和接收通過PeerConnection API進行管理,使用JSEP(JavaScript session establishment protocol,JavaScript會話建立協(xié)議)進行媒體參數(shù)的協(xié)商。使用Data Channels API進行瀏覽器之間收發(fā)多媒體的數(shù)據(jù)流是WebRTC最常見的應用場景。WebRTC技術的主要優(yōu)點如下:
(1)開放的標準
互聯(lián)網(wǎng)的成功離不開開放和免費,其中HTTP、HTML和TCP/IP都是功臣。WebRTC已加入到由W3C和IETF標準組織共同定義的一個開放的HTML5標準。為支持高質(zhì)量、完整的音視頻傳輸解決方案,W3C的WebRTC工作組為開發(fā)者定義了基于瀏覽器的WebAPI。
(2)簡單和易擴展性
為方便開發(fā)者通過互聯(lián)網(wǎng)提供音視頻和多媒體數(shù)據(jù)等多種應用和服務,WebRTC提供簡單的、可擴展性強的技術框架。WebRTC本身并不定義媒體流的路由方式、同用戶之間的交互方式、呼叫協(xié)議、身份認證及同其他網(wǎng)絡的互聯(lián)方式等。這些規(guī)則由服務提供商和開發(fā)者根據(jù)不同的業(yè)務場景和技術需求進行靈活選擇和協(xié)商。
(3)廠商的廣泛支持
WebRTC技術獲得來自全球各大廠商和初創(chuàng)公司的廣泛支持。除了瀏覽器廠商Google、Mozilla和Opera外,其他大公司也對WebRTC表現(xiàn)出了強烈的興趣。如運營商Telefonica、AT&T,設備商Cisco、Acme Packet、Ericsson、Alcatel Lucent、Avaya,初創(chuàng)公司Addlive、Apizee、ClassOnlive、OnSIP、PubNub、Zingaya。近期確認的Snapchat收購Addlive也說明了WebRTC技術的巨大潛力。WebRTC技術在美國、歐洲和亞洲都得到了廣泛的關注,中國和韓國的不少廠商正在加緊研發(fā)基于該技術的產(chǎn)品。
(4)與其他技術的融合
WebRTC技術可以輕松實現(xiàn)與其他先進技術的結(jié)合,如人臉識別、虛擬現(xiàn)實手勢控制等,也可以通過瀏覽器端強大的通信能力和HTML5技術開發(fā)出在線多人游戲和SNS應用。
(5)與運營商的互補
目前,華為發(fā)布的一款基于WebRTC技術的富媒體通信能力開放網(wǎng)關[9]已經(jīng)引起了全球多家領先電信運營商對華為WebRTC解決方案的濃厚興趣,并希望展開進一步的交流與合作。WebRTC技術也可作為運營商既有業(yè)務的有效補充,如通過WebRTC提供會議、IMS服務等。
4 基于WebRTC的瀏覽器端服務器設計與實現(xiàn)
4.1 服務器設計選型
由于使用瀏覽器作為Web服務器提供對外訪問,主要提供靜態(tài)HTML頁面的訪問、圖片和文件分享功能。Nodejs是一個事件驅(qū)動I/O服務端JavaScript環(huán)境,基于Google的V8引擎。目的是為了實現(xiàn)可擴展的網(wǎng)絡程序,如Web服務。Nodejs采用“事件循環(huán)(event loop)”的架構,使得編寫可擴展性高的服務器端程序變得既容易又安全。Nodejs在靜態(tài)頁面請求處理上有著極大的優(yōu)勢,處理用戶請求對比如圖3、圖4所示。Nodejs不適用于以下2種場景:計算密集型應用和邏輯十分復雜的事務。雖然Nodejs在以上2種場景下有短板,由于本系統(tǒng)并不涉及過多的計算和復雜的邏輯,所以采用Nodejs搭建Web服務器,并采用Nodejs的快速開發(fā)框架express實現(xiàn)Web服務器的快速成型。
4.2 瀏覽器端服務器整體設計
前端采用B a c k b o n e . j s 作為MVC框架,使用jQuery操作DOM,應用handlebars作為HTML模板,c o ff e e s c r i p t編寫并編譯成J a v a S c r i p t代碼。通過socket.io與后臺交互。Nodejs作為JavaScript異步服務器,express.js作為Node Web服務器,并加載http模塊和fs文件模塊進行網(wǎng)絡通信和文件操作。
4.3 瀏覽器端服務器的工作流程客戶A的瀏覽器A訪問Nodejs服務器( h t t p : / /theServerURL/),輸入服務器名稱創(chuàng)建服務器xxx。此時應用服務器向STUN服務器注冊服務器A的域名信息并提供A的NAT穿越所需信息,最后生成瀏覽器端服務器A(http://theServerURL/server/xxx/))。此服務器A對客戶A提供內(nèi)容修改、動態(tài)路徑、模板管理和會話管理功能。此時客戶B欲訪問A創(chuàng)建的首頁http:// theServerURL/connect/xxx/,首先向遠程STUN服務器請求A的P2P穿越信息,根據(jù)穿越信息訪問到服務器xxx,xxx根據(jù)B請求的URL地址返回相應的數(shù)據(jù)和資源。
5 結(jié)束語
WebRTC最具價值的技術就是實現(xiàn)瀏覽器之間的數(shù)據(jù)傳輸和分享。一個可能的應用場景是未來用戶的電腦上只有1個瀏覽器,但是可以直接通過瀏覽器和Internet連接。用戶能直接搭建屬于自己的臨時服務器,把需要的信息分享出去,用戶關閉瀏覽器即關閉服務器,這種閱后即焚的場景提供了更大的創(chuàng)新空間。這種基于B/B的模式可能會對目前的B/S模式的各類應用產(chǎn)生巨大的影響?;赪ebRTC的P2P傳輸技術同樣給移動互聯(lián)網(wǎng)行業(yè)帶來了巨大的可能性。目前眾多WebRTC初創(chuàng)公司爆發(fā)出來的潛力已經(jīng)給出了很好的佐證。在移動互聯(lián)網(wǎng)飛速發(fā)展的3~5年內(nèi),伴隨著HTML5標準的日益成熟,WebRTC技術將會得到廣泛的應用。在不久的將來可能會出現(xiàn)基于移動終端的Web服務器或者嵌入式設備的Web服務器,這給人們的信息分享和傳播帶來了無限可能。
相關文章:
3.完整的Windows 2000服務配置 成教計算機本科畢業(yè)論文
4.淺談在線投稿及管理系統(tǒng)的開發(fā)與應用論文