VNC(Virtual Network Computing,虛擬網(wǎng)絡(luò)計算),是一種遠(yuǎn)程操作執(zhí)行軟件,在各類應(yīng)用場景中被廣泛使用。在云計算技術(shù)迅猛發(fā)展的今天,用戶所請求的服務(wù)將更多的在云端服務(wù)器上執(zhí)行,數(shù)據(jù)也存儲在云端服務(wù)器上。VNC可以成為終端用戶使用云端資源的有效工具,擁有良好的應(yīng)用前景。近年來,HTMLS成為Web技術(shù)發(fā)展的新熱點(diǎn)。特別是HTMLS在圖像呈現(xiàn)和通信方式上的新技術(shù)備受Web應(yīng)用程序開發(fā)人員的矚目。這些技術(shù)為基于Web的VNC連接提供了發(fā)展基礎(chǔ)。
1.VNC
1.1發(fā)展現(xiàn)狀
VNC遠(yuǎn)程操作執(zhí)行軟件允許用戶通過網(wǎng)絡(luò)從任何終端機(jī)器控制并使用遠(yuǎn)程服務(wù)器的桌面環(huán)境。用戶的桌面狀態(tài)將會在服務(wù)器端得到保持。當(dāng)用戶從不同終端訪問服務(wù)器時,能夠保持上一次的連接狀態(tài),保證數(shù)據(jù)和應(yīng)用的一致性。2002年,美國電話電報公司AT&T把VNC以GPL形式發(fā)布,此后派生出了許多VNC軟件。表一中列舉了幾種主流的VNC軟件。
表1 主流的VNC軟件
1.2 工作原理
VNC由三部分構(gòu)成:服務(wù)器、客戶端和RFB通信協(xié)議。RFB(Remote Frame Buffer,遠(yuǎn)程幀緩沖協(xié)議)是一種遠(yuǎn)程圖形界面訪問協(xié)議。它能發(fā)送服務(wù)器桌面圖像到客戶端,同時接收客戶端操作并把事件發(fā)送到服務(wù)器。RFB協(xié)議對終端設(shè)備的資源需求很小,是一種真正面向瘦客戶端的協(xié)議。
VNC的基本工作原理在于傳輸桌面圖像。服務(wù)器以一定的頻率掃描桌面像素,并把桌面圖像以位圖的形式傳送到客戶端。這種實現(xiàn)方式相對簡單,但是數(shù)據(jù)量大。為了減少數(shù)據(jù)傳輸量,VNC采用增量傳輸?shù)姆椒,即只傳送發(fā)生變化的區(qū)域內(nèi)的像素數(shù)據(jù)。這種方式在屏幕只有小部分區(qū)域發(fā)生變化時工作良好。但是當(dāng)用戶開關(guān)窗口或觀看視頻時,對帶寬的需求會顯著增加。
2.HTML5
2.1發(fā)展現(xiàn)狀
HTMLS是HTML下一個主要的修訂版本,目前仍處于發(fā)展制定階段。HTMLS添加了許多新的語法特征,其中包括<video>,<audio>和<canvas>等元素。這些元素是為了更容易地在網(wǎng)頁中添加和處理多媒體和圖片而設(shè)計的。目前,F(xiàn)irefox,Chrome,Opera,Safari,Internet Explorer9等主流瀏覽器已陸續(xù)開始支持HTMLS技術(shù)。
2.2 WebSocket
WebSocket是HTMLS提供的一種允許瀏覽器與服務(wù)器之間進(jìn)行全雙工通信的網(wǎng)絡(luò)技術(shù)。為了實現(xiàn)即時通信,目前常用的技術(shù)是輪詢。輪詢是指瀏覽器以特定的頻率向服務(wù)器發(fā)出HTTP請求,之后由服務(wù)器返回數(shù)據(jù)給客戶端瀏覽器。輪詢模式的缺點(diǎn)是,瀏覽器需要不斷向服務(wù)器發(fā)出請求。由于HTTP請求的報頭很長,而報文數(shù)據(jù)可能是一個很小的值,這樣將會浪費(fèi)網(wǎng)絡(luò)帶寬和服務(wù)器資源。面對這種情況,HTMLS定義了新的WebSocket協(xié)議,以便節(jié)省資源,并達(dá)到實時通信的效果。使用WebSocket,服務(wù)器可以隨時向瀏覽器推送信息,這在傳統(tǒng)的無狀態(tài)HTTP連接中是不可能實現(xiàn)的。
WebSocket的協(xié)議名稱是ws。在新的通信方式下,網(wǎng)絡(luò)連接的地址將會寫為ws://localhost:8080/webSocketServer。由于ws是不同于HTTP的新協(xié)議,它需要服務(wù)器和客戶端同時支持才能正常運(yùn)行。目前,服務(wù)器對WebSocket的支持尚不普遍。下表是瀏覽器對WebSocket的支持信息。可以看出,現(xiàn)代瀏覽器對于WebSocket的支持是比較廣泛的。
表2 主流瀏覽器對WebSocket的支持情況
3.基于WebSocket的VNC連接
3.1 noVNC簡介
如果將VNC客戶端用純粹的HTMLS來實現(xiàn),這樣的應(yīng)用將可以繼承VNC和HTMLS跨平臺、高效率通信等特性,在遠(yuǎn)程連接中將有良好的應(yīng)用前景。noVNC是一種基于HTMLS和Javascript的VNC客戶端,采用了WebSocket通信技術(shù),因此需要同樣支持WebSocket的VNC服務(wù)器才可以實現(xiàn)連接。但是目前,服務(wù)器對WebSocket的支持尚不普及,提供支持的只有x1lvnc和PocketVNC兩種服務(wù)器。noVNC通過加設(shè)轉(zhuǎn)換WebSocket為TCP socket的代理服務(wù)器,使得客戶端可以連接到任意標(biāo)準(zhǔn)的VNC服務(wù)器。
4.三種VNC連接對比
建立VNC連接有兩種傳統(tǒng)方法:使用VNC專屬的客戶端或使用基于Java的瀏覽器插件。這兩種方法的共同特點(diǎn)是,都需要客戶在本地進(jìn)行相應(yīng)軟件的安裝。noVNC連接則不需要在客戶端安裝特定軟件,只要通過瀏覽器從網(wǎng)頁上發(fā)起連接即可。
在局域網(wǎng)環(huán)境內(nèi),通過100Mbps以太網(wǎng)實現(xiàn)從Windows客戶機(jī)到TightVNC服務(wù)器的連接。實驗表明,采用這三種方式的連接,在進(jìn)行文件操作時普遍會感覺到操作延時。但對于常用的應(yīng)用程序,如Word等,性能都普遍可以接受。
當(dāng)三種連接進(jìn)行第一幀初始化時,網(wǎng)絡(luò)帶寬的占用情況略有不同,測試結(jié)果如上圖所示。從標(biāo)準(zhǔn)客戶端連接,在圖像進(jìn)行第一幀初始化時,帶寬占用率明顯高于另外兩種類型連接。重復(fù)進(jìn)行初始幀渲染,可以觀察到noVNC連接在三種連接類型中的帶寬占用率是最低的。雖然對于單臺客戶機(jī)來說,帶寬占用率的降低并沒有顯著影響。但是當(dāng)網(wǎng)絡(luò)上活躍用戶越來越多時,每個用戶帶寬占用的些許降低對全網(wǎng)來說卻是意義重大的。
圖1 標(biāo)準(zhǔn)客戶端連接帶寬占用情況
圖2 基于Java插件連接帶寬占用情況
圖3 noVNC連搖帶寬占用情況
5.結(jié)論
隨著云計算技術(shù)的發(fā)展,基于RFB協(xié)議的VNC因其開源、跨平臺、易于實現(xiàn)等特性,在各類應(yīng)用場景中得到了廣泛使用。本文介紹了VNC和HTMLS技術(shù)的發(fā)展歷程以及應(yīng)用現(xiàn)狀。將VNC客戶端用純粹的HTMLS技術(shù)實現(xiàn),這樣的應(yīng)用將會有良好的應(yīng)用前景。文中對三種不同類型的VNC連接進(jìn)行了實驗對比。實驗的結(jié)果表明,基于WebSocket的noVNC連接,其初始化時的帶寬占用率在三者中是最低的,而在性能方面和其他兩種連接表現(xiàn)相當(dāng)。該結(jié)果充分說明了HTMLS新技術(shù)的發(fā)展?jié)摿。在未來,WebSocket在Web應(yīng)用中會有良好的實用價值。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:新型Web技術(shù)在遠(yuǎn)程桌面連接中的應(yīng)用
本文網(wǎng)址:http://www.oesoe.com/html/support/11121512393.html