秦宇
【摘 要】教育信息化極大的提高了學習者的學習效率,但在目前,信息化教育還主要停留在電子文字講解,音視頻多媒體演示等手段,還缺乏為學習者提供一個多功能的實驗平臺。本文分析和研究了遠程桌面的實現(xiàn)原理和方式,設計出了通過web頁面訪問多臺運行于vshere平臺上的虛擬機的遠程桌面系統(tǒng)。
【關(guān)鍵詞】websocket novnc 遠程桌面
中圖分類號: TP309 文獻標識碼: A 文章編號: 2095-2457(2017)23-0060-002
【Abstract】Education informationization greatly improves the learning efficiency,but at present,Education informationization are still in the state of using the electronic text,audio and video multimedia presentations and other means, but also lack of a multi-functional experimental platform for learners.This paper analyzes and studies the implementation principle and method of remote desktop, and designs a remote desktop system accessing multiple virtual machines running on vshere platform through web pages.
【Key words】Websocket novnc remote_desktop
0 前言
教育信息化不單要采用電子文字,音視頻等多媒體手段,還要給學習者提供一個實驗平臺,讓學習者動手實驗,這樣更有利于學習者的技能學習。為了給計算機專業(yè)的學生提供虛擬桌面,在計算機上進行實驗,有以下幾種方案:
(1)為每個學生提供一臺物理機,實驗直接在物理機上開展。
(2)在每臺物理機上利用虛擬軟件。例如VMware workstations或者virtualbox建立虛擬機,實驗在虛擬機上進行。
(3)在多臺服務器和共享存儲上組建云平臺,由管理員統(tǒng)一為學生分配虛擬機。
在第一種方案中,物理機一旦關(guān)機,實驗就被迫終止,實驗沒有延續(xù)性。各個物理機的資源利用不平衡,機器維護成本高。在第二種方案中,可以利用虛擬軟件的快照功能保存實驗,實驗有一定延續(xù)性,而且可以建立多臺虛擬機以及虛擬網(wǎng)絡,可以進行更加復雜的聯(lián)網(wǎng)實驗,但缺點一樣是要維護每個學生的物理機,維護成本高,而且資源無法動態(tài)分配。在第三種方案中,利用了最新的云計算技術(shù),只需要維護集中管理的幾臺服務器和存儲,實現(xiàn)了資源的動態(tài)分配,物理設備的維護和管理成本大幅降低。
基于以上分析,采用了業(yè)界領(lǐng)先的虛擬化平臺,VMware公司的vsphere云平臺建立虛擬機,提供給學生進行實驗。
虛擬機建立以后,如何登陸虛擬機也有以下方案:
(1)學習者通過管理員分配的具有一定權(quán)限的vsphere賬號,直接登陸vsphere平臺。
(2)利用vnc客戶端登陸虛擬機。
(3)利用web頁面登陸虛擬機。
第一種方案中,學生需要登陸vsphere平臺,需要學習額外的vsphere平臺知識,增加了負擔。第二種方案中,需要在每臺登陸終端中安裝vnc客戶端,而在第三種方案中,可以直接利用web頁面,省去了安裝客戶端的麻煩,而且由于移動終端也支持html5頁面,所以在移動終端上也可以登陸到遠程桌面。所以基于web頁面登陸遠程桌面是最好的解決方案,也是本文采用的方案。
1 分析和設計
設計基于web的遠程桌面時,首先需要解決的問題是支持html5的瀏覽器在訪問vnc服務器時,采用的是websocket協(xié)議,然而vsphere主機中的虛擬機只支持vnc協(xié)議,只有把websocket協(xié)議轉(zhuǎn)化為vnc協(xié)議才能從瀏覽器登陸虛擬機,所以采用了如圖1所示的平臺架構(gòu):
基于瀏覽器的vnc客戶端,選擇了novnc客戶端,代理服務器選擇了websockify,其中websockify的運行需要基于node.js環(huán)境。Node是一個Javascript運行環(huán)境(runtime)。它對Google V8引擎進行了封裝,V8引 擎執(zhí)行Javascript的速度快,性能好。Node對一些特殊用例進行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運行得很好,也可以說node.js是運行于服務器端的JavaScript運行環(huán)境。以上軟件均可以在各自的官網(wǎng)上下載。
從而登錄到不同的虛擬機,成功實現(xiàn)了一臺代理服務器訪問多臺虛擬機的功能:成功后的界面如下圖所示:
2 結(jié)論
本文分析了多種現(xiàn)有的虛擬機實驗平臺方案,采用了基于web的遠程桌面方法。對于novnc+websockify代理服務器+vsphere平臺虛擬機的架構(gòu)以及協(xié)議進行了分析,在此基礎(chǔ)上,改進了此框架的內(nèi)容,結(jié)合實際環(huán)境,實現(xiàn)了基于web的同一代理服務器訪問多臺虛擬機的功能,為學習者進行實驗,提供了較好的實驗平臺。
【參考文獻】
[1]朱永強,湯雄.基于VNC的遠程桌面?zhèn)鬏攨f(xié)議分析與研究[J].計算機系統(tǒng)應用,2016,25(11):284-287.
[2]劉堅,余綜.VNC多媒體數(shù)據(jù)實時傳輸?shù)难芯颗c實現(xiàn)[J].計算機工程與設計,2012,33(7):2706-2710.
[3]陸凌牛.Node.js權(quán)威指南[M].北京:機械工業(yè)出版社,2017.endprint