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