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