專利名稱:一種在https上實(shí)現(xiàn)XenServer虛擬機(jī)遠(yuǎn)程控制的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊領(lǐng)域,特別是涉及一種在https上實(shí)現(xiàn)XenServer虛擬機(jī)遠(yuǎn)程控制的通訊方法。
背景技術(shù):
云計(jì)算是如今個公司發(fā)展的需要,服務(wù)器虛擬化作為云計(jì)算的一重要組成部分是近期IT系統(tǒng)建設(shè)的熱點(diǎn),XenServer是思杰公司提供服務(wù)器虛擬化的一種方案,它是直接運(yùn)行在硬件設(shè)備上面的虛擬機(jī)監(jiān)控器,它能夠讓我們創(chuàng)建多個虛擬機(jī),每個虛擬機(jī)可以運(yùn)行不同操作系統(tǒng)的實(shí)例。XenServer已經(jīng)提供了 VNC服務(wù)器組件,只需要通過配置啟用即可提供服務(wù),要連接到XenServer的VNC服務(wù),需要通過XML-RPC接口完成與XenServer的登錄過程,并在已登錄的連接里去連接VNC服務(wù),這使得常見的VNC客戶端無法直接連接到XenServer的所提供的VNC服務(wù);思杰的XenCenter可以通過VNC連接到虛擬機(jī)控制臺,但它是基于C/S架構(gòu)的僅供平臺管理員來使用。如今服務(wù)器虛擬化技術(shù)在諸如IDC機(jī)房建設(shè)中被廣泛應(yīng)用,主機(jī)租用者均是通過互聯(lián)網(wǎng)遠(yuǎn)程管理虛擬機(jī),思杰的XenCenter還有目前的一些VNC客戶端均無法解決此問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是設(shè)計(jì)一種在https上實(shí)現(xiàn)XenSever虛擬機(jī)遠(yuǎn)程控制的方法,以解決現(xiàn)有技術(shù)下無法通過瀏覽器的方式通過互聯(lián)網(wǎng)訪問到XenServer虛擬機(jī)圖形化控制臺的問題,本設(shè)計(jì)的方法具有不依賴網(wǎng)絡(luò)環(huán)境、適應(yīng)多種操作系統(tǒng),擁有較高的安全性和易用性。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供一種在https上實(shí)現(xiàn)XenSever虛擬機(jī)遠(yuǎn)程控制的方法,包括客戶端和代理服務(wù)器,所述客戶端內(nèi)置有一基于VNC的Applet可在各種瀏覽器上運(yùn)行,所述代理服務(wù)器是VNC代理服務(wù)器,同時兼具有身份校驗(yàn)的功能;所述客戶端,用于:基于Java Applet實(shí)現(xiàn)VNC客戶端,在瀏覽器上顯示虛擬機(jī)遠(yuǎn)程圖形控制臺,所述客戶端首先使用ht tps連接到代理服務(wù)器,創(chuàng)建https隧道用于傳輸VNC中的RFB數(shù)據(jù),把客戶端鼠標(biāo)及鍵盤的操作的信息通過RFB協(xié)議通過所創(chuàng)建的https隧道傳輸給代理服務(wù)器;所述代理服務(wù)器,用于:接收符合預(yù)設(shè)協(xié)議的客戶端請求,從客戶端https請求報(bào)文的headers中取出客戶端的身份ID、密碼以及請求打開的虛擬機(jī)標(biāo)識,將身份ID和密碼與應(yīng)用系統(tǒng)數(shù)據(jù)庫中存儲的數(shù)據(jù)進(jìn)行比對,身份合法則調(diào)用XenServer的XML-RPC接口連接到與客戶端傳送過來虛擬機(jī)標(biāo)識一致的控制臺上;否則,返回身份校驗(yàn)失敗信息并拒絕客戶端的連接。本發(fā)明還提供一種在https通過vnc代理服務(wù)器解決vnc客戶端在瀏覽器上打開虛擬機(jī)控制臺的方法,包括:
代理服務(wù)器接收來自客戶端瀏覽器applet的https連接請求后,代理服務(wù)器首先判斷請求符合預(yù)設(shè)協(xié)議,身份是否合法,然后直接調(diào)用XenServer API完成登錄獲得控制臺的會話;代理服務(wù)器取得控制臺的會話之后,根據(jù)https協(xié)議構(gòu)造請求的報(bào)文,控制臺會話id寫入報(bào)文的Headers中一起向XenServer的VNC服務(wù)器請求連接,成功連接后代理服務(wù)器直接把從虛擬機(jī)控制臺讀取到的RFB協(xié)議數(shù)據(jù)轉(zhuǎn)發(fā)給已建立連接的客戶端,同時也把從客戶端讀取到的RFB協(xié)議數(shù)據(jù)轉(zhuǎn)交給XenServer,從而在https實(shí)現(xiàn)VNC的代理功能,解決客戶端瀏覽器上無法直接訪問XenServer虛擬機(jī)控制臺的問題。由上述方案可以看出,本發(fā)明中客戶端基于Java Applet,可以跨平臺、在多總瀏覽器上運(yùn)行,解決VNC在瀏覽器上運(yùn)行困難的問題;代理服務(wù)器與客戶端之前通過所創(chuàng)建的https隧道進(jìn)行數(shù)據(jù)傳輸,可解決公網(wǎng)環(huán)境下數(shù)據(jù)傳輸安全以及防火墻限制的問題;代理服務(wù)器作為客戶端二次身份校驗(yàn)增加系統(tǒng)的安全性,代理服務(wù)器跟web服務(wù)器部署在同一主機(jī)規(guī)避了直連XenServer而引起Java Applet的安全限制;同時代理服務(wù)器對客戶端可以一對多的服務(wù),避免因客戶端直接連接內(nèi)網(wǎng)的XenServer而增加網(wǎng)絡(luò)部署的難度。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例一中系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例一中系統(tǒng)處理信息流程示意圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一,參見圖1。本發(fā)明提供一種在https上實(shí)現(xiàn)XenServer虛擬機(jī)遠(yuǎn)程控制的方法,所述系統(tǒng)包括基與VNC的客戶端和VNC代理服務(wù)器,其中:所述客戶端,用于:從虛擬機(jī)列表中請求打開虛擬機(jī)的遠(yuǎn)程控制臺,并基于VNC在瀏覽器上顯示虛擬機(jī)控制臺或者桌面的圖形信息;所述代理服務(wù)器,用于:接收來自客戶端的請求,分析請求參數(shù)并對請求者身份進(jìn)行校驗(yàn),完成與XenServer的連接,把客戶端數(shù)據(jù)RFB數(shù)據(jù)轉(zhuǎn)交給XenServer的VNC服務(wù)器,同時把收到XenServer發(fā)送過來的RFB數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端。上述系統(tǒng)的信息過程參見圖2,具體包括以下步驟:I)客戶端請求打開虛擬機(jī)的控制臺,服務(wù)器返回顯示控制臺的頁面,并在頁面中力口載 vncview 的 applet ;
2) vncview請求通過VNCProxy請求連接到XenServer的VNC服務(wù)器;3) VNCProxy接收到vncview的連接請求,分析輸入?yún)?shù),通過應(yīng)用系統(tǒng)數(shù)據(jù)庫對客戶端身份進(jìn)行校驗(yàn);4) VNCProxy調(diào)用XenServer的XML-RPC接口登錄到XenServer并獲得虛擬機(jī)的控制臺會話ID ;5) VNCProxy把身份校驗(yàn)及登錄XenServer的結(jié)果返回給客戶端;6)客戶端通過RFB協(xié)議請求返回遠(yuǎn)程虛擬機(jī)控制臺圖形信息;7) VNCProxy把客戶端基與RFB協(xié)議的請求數(shù)據(jù)轉(zhuǎn)發(fā)給XenServer ;8) VNCProxy把從XenServer接收到的基與RFB協(xié)議的控制臺圖形數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端;9)客戶端在Applet上實(shí)時解析RFB協(xié)議數(shù)據(jù),并顯示控制臺圖形信息。由上可見,本發(fā)明提供的一種https上實(shí)現(xiàn)XenServer虛擬機(jī)遠(yuǎn)程控制的方法,有以下優(yōu)點(diǎn)。(I)圖形界面的VNC客戶端基與RFB協(xié)議的VNC客戶端可以顯示虛擬機(jī)遠(yuǎn)程控制臺的圖形界面,,支持鼠標(biāo)及鍵盤操作方便使用者維護(hù)管理虛擬機(jī)。(2)跨操作系統(tǒng)跨瀏覽器由于采用了 Java技術(shù),可以很好的實(shí)現(xiàn)跨操作系統(tǒng)及跨瀏覽器。(2)可穿透防火墻采用https建立通信隧道用于交互RFB實(shí)時數(shù)據(jù),可在公網(wǎng)環(huán)境穿透企業(yè)防火墻的限制。(3)具有較高的安全性采用https建立加密隧道保證網(wǎng)絡(luò)傳輸?shù)男畔踩?,連接到VNCProxy后進(jìn)行二次身份驗(yàn)證確??蛻舳松矸莸暮戏ㄐ?。以上所述僅是本發(fā)明的具體實(shí)施方式
,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種在https上實(shí)現(xiàn)XenServer虛擬機(jī)遠(yuǎn)程控制的方法,其特征在于,包括:一基于Java Applet使用https傳輸RFB數(shù)據(jù)的VNC客戶端,一支持https的VNC代理服務(wù)器,所述系統(tǒng)均部署在同一 web服務(wù)器及應(yīng)用服務(wù)器; 所述Java Applet VNC客戶端,用于:基于RFB協(xié)議通過代理服務(wù)器請求打開Xen服務(wù)器的虛擬機(jī)控制臺,接收經(jīng)代理服務(wù)器轉(zhuǎn)發(fā)、來自XenServer所管主機(jī)虛擬機(jī)的控制臺圖形信息,基于Java Applet在瀏覽器中實(shí)時顯示控制臺的圖形; 所述的代理服務(wù)器,用于:接收來自客戶端的連接請求,分析客戶端的請求參數(shù),調(diào)用XenServer XML-RPC接口與XenServer服務(wù)器建立連接,把來自客戶端的RFB數(shù)據(jù)轉(zhuǎn)發(fā)給Xen服務(wù)器,同時也把所收到Xen服務(wù)器的RFB數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端,實(shí)現(xiàn)RFB協(xié)議代理的作用。
2.一種在https上實(shí)現(xiàn)XenServer虛擬機(jī)遠(yuǎn)程控制的方法,其特征在于,包括: 代理服務(wù)器接收到客戶端的連接請求后,分析請求參數(shù)得到請求連接虛擬機(jī)ID以及客戶端身份及密碼,代理服務(wù)器通過查詢應(yīng)用系統(tǒng)數(shù)據(jù)庫,對請求客戶端身份的合法性進(jìn)行校驗(yàn),身份合法則調(diào)用XenServer的接口完成與XenServer服務(wù)器的連接,身份非法則拒絕與XenServer服務(wù)器連接。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:客戶端向代理服務(wù)器請求連接時,采用ht tps協(xié)議建立連接通道穿透防火墻限制。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:客戶端通過http頭傳入客戶端用戶身份以及所操作的虛擬機(jī)標(biāo)識。
5.根據(jù)權(quán)利要求1,其特征在于所述具體的構(gòu)建步驟如下: ①構(gòu)建一小型管理系統(tǒng),列出客戶端登錄用戶可查看到的虛擬機(jī); ②構(gòu)建一Java Applet VNC客戶端用于顯示和控制遠(yuǎn)端虛擬機(jī)的圖形用戶界面; ③修改Xen提供的VNC客戶源代碼vncviewer使得它支持通過https隧道來傳輸RFB數(shù)據(jù); ④構(gòu)建一VNCProxy,用于實(shí)現(xiàn)客戶端與XenServer的代理,同時解決客戶端Applet因socket安全限制無法直連XenServer VNC服務(wù)以及客戶端身份驗(yàn)證的問題。
全文摘要
本發(fā)明公開了一種在https上實(shí)現(xiàn)XenServer虛擬機(jī)遠(yuǎn)程控制的方法,包括了可在瀏覽器上運(yùn)行的VNC客戶端,用于身份校驗(yàn)及RFB數(shù)據(jù)轉(zhuǎn)發(fā)的VNC代理服務(wù)器;VNC客戶端,基于Java Applet技術(shù)并通過https來傳輸VNC遠(yuǎn)程控制數(shù)據(jù),在web及Java應(yīng)用服務(wù)器上部署,可在安裝有JVM的瀏覽器上運(yùn)行,因?yàn)槔昧薶ttps傳輸數(shù)據(jù),它可以很好的解決防火墻對外網(wǎng)訪問的限制問題;VNC代理服務(wù)器,用于解決VNC客戶端訪問XenServer VNC服務(wù)端Applet安全限制的問題,同時通過XenServer的XML-RPC接口實(shí)現(xiàn)對客戶端身份的安全校驗(yàn);通過以上方法可以使得在客戶端的任意瀏覽器上實(shí)現(xiàn)xenServer虛擬機(jī)的遠(yuǎn)程控制及訪問。
文檔編號H04L29/06GK103200215SQ20121001142
公開日2013年7月10日 申請日期2012年1月8日 優(yōu)先權(quán)日2012年1月8日
發(fā)明者鄧任遠(yuǎn), 曾曉燁, 丁保劍 申請人:佳都新太科技股份有限公司