專利名稱:面向虛擬機(jī)的usb設(shè)備遠(yuǎn)程共享方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種面向虛擬機(jī)的通用串行總線 (Universal Serial Bus,簡(jiǎn)稱USB)設(shè)備遠(yuǎn)程共享方法和系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)與應(yīng)用的發(fā)展,以云計(jì)算、虛擬機(jī)等為代表的數(shù)據(jù)中心已經(jīng)成為未來(lái)軟件運(yùn)行和數(shù)據(jù)管理的執(zhí)行環(huán)境,例如谷歌(Google)公司已經(jīng)推出了云打印(Cloud !Winter),亞馬遜(Amazon)公司已經(jīng)推出了基于虛擬機(jī)的網(wǎng)絡(luò)用戶環(huán)境等。
虛擬機(jī)(Virtual Machine,簡(jiǎn)稱VM)是一種通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。虛擬機(jī)具有很好的隔離性、分區(qū)性、封裝性、自我管理等特點(diǎn),可以對(duì)網(wǎng)絡(luò)虛擬化提供很好的支持。
云計(jì)算是網(wǎng)格計(jì)算、分布式計(jì)算、并行計(jì)算、效用計(jì)算、網(wǎng)絡(luò)存儲(chǔ)、虛擬化、負(fù)載均衡等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。云計(jì)算通過(guò)網(wǎng)絡(luò)把多個(gè)成本相對(duì)較低的計(jì)算實(shí)體整合成一個(gè)具有強(qiáng)大計(jì)算能力的完美系統(tǒng)。云計(jì)算具有超大規(guī)模、虛擬化、高可靠性、高可擴(kuò)展性、按需服務(wù)等特點(diǎn),提供了最可靠、最安全的數(shù)據(jù)存儲(chǔ)中心。
在上述以數(shù)據(jù)中心作為軟件運(yùn)行和數(shù)據(jù)管理的執(zhí)行環(huán)境中,需要在虛擬機(jī)中使用遠(yuǎn)程用戶的USB閃存盤(簡(jiǎn)稱U盤)、USB攝像頭、USB打印機(jī)、USB密鑰等USB終端設(shè)備。
目前出現(xiàn)了一些遠(yuǎn)程共享技術(shù),但都存在不足之處。例如,可以采用視窗電腦操作系統(tǒng)(Windows)進(jìn)行文件共享,這種共享方式只是在文件系統(tǒng)層次的共享,并不能夠?qū)崿F(xiàn)設(shè)備的共享,因此無(wú)法共享和控制遠(yuǎn)程的USB設(shè)備。例如,還可以采用虛擬USB技術(shù)(USB anyware)實(shí)現(xiàn)共享,USB anyware是一個(gè)具有以太網(wǎng)接口的USB轉(zhuǎn)以太網(wǎng)的集線器,打破了傳統(tǒng)USB協(xié)議傳輸距離只有5米的限制,使得在局域網(wǎng)內(nèi)的主機(jī)都可以訪問(wèn)遠(yuǎn)程的USB 外圍設(shè)備,但是每個(gè)接入點(diǎn)都需要用戶購(gòu)買一臺(tái)USB anyware硬件設(shè)備,從而USB設(shè)備遠(yuǎn)程共享的靈活性差,并且增加了成本。例如,還可以采用基于遠(yuǎn)程桌面協(xié)議(Remote Desktop Protocol,簡(jiǎn)稱RDP)的USB共享,其實(shí)現(xiàn)的功能類似于windows遠(yuǎn)程桌面的磁盤驅(qū)動(dòng)器映射功能,系統(tǒng)包含一個(gè)服務(wù)器(Server)和一個(gè)工作站(Workstation),工作站安裝在實(shí)際插有USB設(shè)備的主機(jī)上,服務(wù)器安裝在所登錄的遠(yuǎn)程主機(jī)上,一旦登陸遠(yuǎn)程主機(jī),本地USB 設(shè)備就會(huì)顯示出來(lái),采用基于RDP的USB共享,USB設(shè)備連接數(shù)目受限,且需要遠(yuǎn)程桌面連接,對(duì)于一些不可以登錄遠(yuǎn)程主機(jī)的應(yīng)用無(wú)法適用,從而USB設(shè)備遠(yuǎn)程共享的靈活性差,并且安全性較差。
總之,現(xiàn)有的遠(yuǎn)程共享方法,面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性差。 發(fā)明內(nèi)容
本發(fā)明的第一方面是提供一種面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享方法,用以解決現(xiàn)有技術(shù)中的缺陷,提高面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性。
本發(fā)明的另一方面是提供一種面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享系統(tǒng),用以解決現(xiàn)有技術(shù)中的缺陷,提高面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性。
本發(fā)明的第一個(gè)方面是提供一種面向虛擬機(jī)的通用串行總線USB設(shè)備遠(yuǎn)程共享方法,包括
客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一互聯(lián)網(wǎng)協(xié)議IP報(bào)文,所述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息包括允許共享的 USB設(shè)備的總線標(biāo)識(shí)ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息;
所述服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將根集線器端口狀態(tài)變更為設(shè)備插入,在所述服務(wù)器宿主機(jī)生成虛擬的所述允許遠(yuǎn)程共享的USB設(shè)備;
所述服務(wù)器虛擬機(jī)通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)所述虛擬的允許遠(yuǎn)程共享的USB設(shè)備,向所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊發(fā)送USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求;
所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊將所述USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求轉(zhuǎn)化為第一 USB請(qǐng)求塊URB并傳遞到服務(wù)器宿主機(jī)的虛擬主機(jī)控制器;
所述服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將所述第一 URB封裝到第二 IP報(bào)文中傳送給客戶端的虛擬USB設(shè)備驅(qū)動(dòng)模塊;
客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊根據(jù)所述第二 IP報(bào)文的內(nèi)容建立所述第一 URB并傳遞給客戶端的主機(jī)控制器;
所述客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞所述第一 URB描述的數(shù)據(jù)。
如上所述的方法,其中,所述客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞所述第一 URB描述的數(shù)據(jù)之后還包括
所述第一 URB完成后,所述客戶端主機(jī)的主機(jī)控制器以中斷方式調(diào)用URB完成回調(diào)函數(shù);
所述客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊向所述服務(wù)器的宿主機(jī)的虛擬主機(jī)控制器返回?cái)y帶USB設(shè)備請(qǐng)求完成消息的IP報(bào)文;
所述服務(wù)器宿主機(jī)的虛擬主機(jī)控制器向所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備請(qǐng)求完成消息。
如上所述的方法,其中,所述客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文之前還包括
所述允許遠(yuǎn)程共享的USB設(shè)備接入所述客戶端主機(jī);
客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊獲取USB設(shè)備訪問(wèn)請(qǐng)求,將所述USB設(shè)備訪問(wèn)請(qǐng)求轉(zhuǎn)化為第二 URB并傳送到所述客戶端主機(jī)的主機(jī)控制器;
所述客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞所述第二 URB描述的數(shù)據(jù);
所述第二 URB完成后,所述客戶端的主機(jī)控制器以中斷方式調(diào)用URB完成回調(diào)函數(shù);
所述客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備訪問(wèn)請(qǐng)求完成消息。
如上所述的方法,其中,所述客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備訪問(wèn)請(qǐng)求完成消息之后,所述客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文之前,還包括
客戶端主機(jī)的設(shè)備控制管理器循環(huán)查看客戶端主機(jī)接入的全部USB設(shè)備的設(shè)備文件;
客戶端主機(jī)的設(shè)備控制管理器獲取所述接入的全部USB設(shè)備的總線ID、廠商ID、 設(shè)備ID和驅(qū)動(dòng)信息;
客戶端主機(jī)的設(shè)備控制管理器在所述接入的全部USB設(shè)備中設(shè)置所述允許遠(yuǎn)程共享的USB設(shè)備。
如上所述的方法,其中,所述客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備訪問(wèn)請(qǐng)求完成消息之后,所述客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文之前,還包括
所述客戶端主機(jī)的設(shè)備控制管理器查詢所述服務(wù)器宿主機(jī)中運(yùn)行的全部虛擬機(jī)的虛擬機(jī)標(biāo)識(shí)UUID ;
所述客戶端主機(jī)的設(shè)備控制管理器從所述全部虛擬機(jī)的UUID中選擇目標(biāo)虛擬機(jī)的 UUID ;
所述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息中還包括所述目標(biāo)虛擬機(jī)的UUID。
如上所述的方法,其中,所述客戶端主機(jī)的設(shè)備控制管理器在所述接入的全部USB 設(shè)備中設(shè)置所述允許遠(yuǎn)程共享的USB設(shè)備之后,還包括
所述客戶端主機(jī)的設(shè)備控制管理器將所述允許遠(yuǎn)程共享的USB設(shè)備設(shè)置為不允許遠(yuǎn)程共享的USB設(shè)備。
本發(fā)明的另一個(gè)方面是提供一種面向虛擬機(jī)的通用串行總線USB設(shè)備遠(yuǎn)程共享系統(tǒng),包括客戶端主機(jī)、服務(wù)器宿主機(jī)和設(shè)置在所述服務(wù)器宿主機(jī)上的服務(wù)器虛擬機(jī);
所述客戶端主機(jī)包括應(yīng)用模塊、虛擬USB設(shè)備驅(qū)動(dòng)模塊和主機(jī)控制器;
所述服務(wù)器宿主機(jī)包括應(yīng)用模塊、USB設(shè)備驅(qū)動(dòng)模塊和虛擬主機(jī)控制器;
所述客戶端主機(jī)的應(yīng)用模塊用于向所述服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB 設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一互聯(lián)網(wǎng)協(xié)議IP報(bào)文,所述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息包括 允許共享的USB設(shè)備的總線標(biāo)識(shí)ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息;
所述客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊用于根據(jù)第二 IP報(bào)文的內(nèi)容建立第一 URB并傳遞給客戶端的主機(jī)控制器;
所述客戶端主機(jī)的主機(jī)控制器用于驅(qū)動(dòng)傳遞第一 URB描述的數(shù)據(jù);
所述服務(wù)器宿主機(jī)的虛擬主機(jī)控制器用于將根集線器端口狀態(tài)變更為設(shè)備插入, 在所述服務(wù)器宿主機(jī)生成虛擬的所述允許遠(yuǎn)程共享的USB設(shè)備;并且將第一 URB封裝到第二 IP報(bào)文中傳送給所述客戶端的虛擬USB設(shè)備驅(qū)動(dòng)模塊;
所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊用于將所述USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求轉(zhuǎn)化為第一 USB請(qǐng)求塊URB并傳遞到服務(wù)器宿主機(jī)的虛擬主機(jī)控制器;
所述服務(wù)器虛擬機(jī)用于通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)所述虛擬的允許遠(yuǎn)程共享的USB 設(shè)備,向所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊發(fā)送USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求。
如上所述的系統(tǒng),其中,所述客戶端主機(jī)還包括
設(shè)備控制管理器,用于循環(huán)查看客戶端主機(jī)接入的全部USB設(shè)備的設(shè)備文件,獲取所述接入的全部USB設(shè)備的總線ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息,在所述接入的全部USB 設(shè)備中設(shè)置所述允許遠(yuǎn)程共享的USB設(shè)備。
如上所述的系統(tǒng),其中,所述客戶端主機(jī)的設(shè)備控制管理器還用于查詢所述服務(wù)器宿主機(jī)中運(yùn)行的全部虛擬機(jī)的虛擬機(jī)標(biāo)識(shí)UUID,從所述全部虛擬機(jī)的UUID中選擇目標(biāo)虛擬機(jī)的UUID ;所述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息中還包括所述目標(biāo)虛擬機(jī)的UUID。
如上所述的系統(tǒng),其中,所述客戶端主機(jī)的設(shè)備控制管理器還用于將所述允許遠(yuǎn)程共享的USB設(shè)備設(shè)置為不允許遠(yuǎn)程共享的USB設(shè)備。
本發(fā)明一個(gè)方面的技術(shù)效果是服務(wù)器與客戶端之間采用IP報(bào)文通信,客戶端向服務(wù)器上報(bào)允許共享的USB設(shè)備的信息,服務(wù)器根據(jù)該信息在自身建立虛擬的該USB設(shè)備, 將對(duì)該USB設(shè)備的訪問(wèn)操作對(duì)應(yīng)的URB通過(guò)IP報(bào)文發(fā)送到客戶端,客戶端將該IP報(bào)文轉(zhuǎn)換成URB并執(zhí)行,從而實(shí)現(xiàn)服務(wù)器遠(yuǎn)程訪問(wèn)USB設(shè)備,且不需要在客戶端和服務(wù)器的主機(jī)中增加新的硬件設(shè)備,不限制USB設(shè)備的連接數(shù)目,提高了面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性。
本發(fā)明另一個(gè)方面的技術(shù)效果是服務(wù)器宿主機(jī)與客戶端主機(jī)之間采用IP報(bào)文通信,客戶端主機(jī)向服務(wù)器宿主機(jī)上報(bào)允許共享的USB設(shè)備的信息,服務(wù)器宿主機(jī)根據(jù)該信息在自身建立虛擬的該USB設(shè)備,將服務(wù)器虛擬機(jī)對(duì)該USB設(shè)備的訪問(wèn)操作對(duì)應(yīng)的URB 通過(guò)IP報(bào)文發(fā)送到客戶端主機(jī),客戶端主機(jī)將該IP報(bào)文轉(zhuǎn)換成URB并執(zhí)行,從而實(shí)現(xiàn)服務(wù)器遠(yuǎn)程訪問(wèn)USB設(shè)備,且不需要在客戶端和服務(wù)器的主機(jī)中增加新的硬件設(shè)備,不限制USB 設(shè)備的連接數(shù)目,提高了面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性。
圖1為本發(fā)明實(shí)施例一的面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享方法的流程圖2為本發(fā)明實(shí)施例二的面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享方法的流程圖3為本發(fā)明實(shí)施例三的面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
在本發(fā)明的下述實(shí)施例中,對(duì)面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享系統(tǒng)中的客戶端主機(jī)和服務(wù)器宿主機(jī)的驅(qū)動(dòng)層進(jìn)行改進(jìn)?,F(xiàn)有的客戶端主機(jī)以及服務(wù)器宿主機(jī),均包括各自的以下模塊應(yīng)用模塊、USB設(shè)備驅(qū)動(dòng)模塊和主機(jī)控制器。在本發(fā)明的下述各個(gè)實(shí)施例中, 在應(yīng)用層,對(duì)客戶端主機(jī)和服務(wù)器宿主機(jī)的應(yīng)用模塊進(jìn)行改進(jìn);在驅(qū)動(dòng)層,將客戶端的現(xiàn)有的USB設(shè)備驅(qū)動(dòng)模塊改進(jìn)為虛擬USB設(shè)備驅(qū)動(dòng)模塊,該虛擬USB設(shè)備驅(qū)動(dòng)模塊在包含現(xiàn)有的USB設(shè)備驅(qū)動(dòng)模塊的全部功能的基礎(chǔ)上,還具有實(shí)現(xiàn)USB設(shè)備遠(yuǎn)程共享的功能,具體詳見(jiàn)以下各實(shí)施例中的描述;在驅(qū)動(dòng)層,還將服務(wù)器的現(xiàn)有的主機(jī)控制器改進(jìn)為虛擬主機(jī)控制器,該虛擬主機(jī)控制器在包含現(xiàn)有的主機(jī)控制器的全部功能的基礎(chǔ)上,還具有實(shí)現(xiàn)USB設(shè)備遠(yuǎn)程共享的功能,具體詳見(jiàn)以下各實(shí)施例中的描述。在本發(fā)明的各實(shí)施例中,將現(xiàn)有的 USB設(shè)備驅(qū)動(dòng)模塊的全部功能與實(shí)現(xiàn)USB設(shè)備遠(yuǎn)程共享的功能集成在虛擬USB設(shè)備驅(qū)動(dòng)模塊中,在實(shí)際應(yīng)用中,還可以將上述兩種功能分別設(shè)置,即,客戶端主機(jī)中保留現(xiàn)有的USB 設(shè)備驅(qū)動(dòng)模塊,該USB設(shè)備驅(qū)動(dòng)模塊用于實(shí)現(xiàn)客戶端主機(jī)對(duì)于接入該主機(jī)自身的USB設(shè)備的驅(qū)動(dòng)和訪問(wèn),并且,在客戶端主機(jī)中增設(shè)一個(gè)虛擬USB設(shè)備驅(qū)動(dòng)模塊,該虛擬USB設(shè)備驅(qū)動(dòng)模塊用于實(shí)現(xiàn)USB設(shè)備遠(yuǎn)程共享的功能。相應(yīng)地,在本發(fā)明的各實(shí)施例中,將現(xiàn)有的主機(jī)控制器的全部功能與實(shí)現(xiàn)USB設(shè)備遠(yuǎn)程共享的功能集成在虛擬主機(jī)控制器中,在實(shí)際應(yīng)用中,還可以將上述兩種功能分別設(shè)置,即,服務(wù)器宿主機(jī)中保留現(xiàn)有的主機(jī)控制器,該主機(jī)控制器用于實(shí)現(xiàn)服務(wù)器宿主機(jī)對(duì)于接入該主機(jī)自身的USB設(shè)備的驅(qū)動(dòng)和訪問(wèn),并且,在服務(wù)器宿主機(jī)中增設(shè)一個(gè)虛擬主機(jī)控制器,該虛擬主機(jī)控制器用于實(shí)現(xiàn)USB設(shè)備遠(yuǎn)程共享的功能。
圖1為本發(fā)明實(shí)施例一的面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享方法的流程圖。在本發(fā)明實(shí)施例一中,以客戶端將已經(jīng)接入客戶端主機(jī)的USB設(shè)備共享給遠(yuǎn)程的服務(wù)器,從而使得服務(wù)器可以遠(yuǎn)程控制該USB設(shè)備為例。如圖1所示,該方法至少包括以下過(guò)程。
步驟101 客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文。
在本步驟中,該USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息中包括允許共享的USB設(shè)備的總線標(biāo)識(shí)ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息。
步驟102 服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將根集線器端口狀態(tài)變更為設(shè)備插入。
在本步驟中,服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將根集線器端口狀態(tài)變更為設(shè)備插入,在服務(wù)器宿主機(jī)生成虛擬的允許遠(yuǎn)程共享的USB設(shè)備。
步驟103 服務(wù)器虛擬機(jī)通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)所述虛擬的允許遠(yuǎn)程共享的 USB設(shè)備。
在本步驟中,服務(wù)器虛擬機(jī)通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)所述虛擬的允許遠(yuǎn)程共享的 USB設(shè)備,具體地,在此過(guò)程中,服務(wù)器虛擬機(jī)向服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊發(fā)送USB 設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求。
步驟104 服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊將USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求轉(zhuǎn)化為第一 USB請(qǐng)求塊(USB Request Block,簡(jiǎn)稱URB)并傳遞到服務(wù)器宿主機(jī)的虛擬主機(jī)控制器。
步驟105 服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將第一 URB封裝到第二 IP報(bào)文中傳送給客戶端的虛擬USB設(shè)備驅(qū)動(dòng)模塊。
步驟106 客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊根據(jù)第二 IP報(bào)文的內(nèi)容建立第一 URB并傳遞給客戶端的主機(jī)控制器。
步驟107 客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞第一 URB描述的數(shù)據(jù)。
在本發(fā)明實(shí)施例一中,服務(wù)器與客戶端之間采用IP報(bào)文通信,客戶端向服務(wù)器上報(bào)允許共享的USB設(shè)備的信息,服務(wù)器根據(jù)該信息在自身建立虛擬的該USB設(shè)備,將對(duì)該 USB設(shè)備的訪問(wèn)操作對(duì)應(yīng)的URB通過(guò)IP報(bào)文發(fā)送到客戶端,客戶端將該IP報(bào)文轉(zhuǎn)換成URB 并執(zhí)行,從而實(shí)現(xiàn)服務(wù)器遠(yuǎn)程訪問(wèn)USB設(shè)備。該方法不是簡(jiǎn)單地對(duì)文件進(jìn)行共享,而是實(shí)現(xiàn)了設(shè)備層面的共享,并且不需要在客戶端和服務(wù)器的主機(jī)中增加新的硬件設(shè)備,USB設(shè)備的連接數(shù)目也不受限制,因此提高了面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性。
圖2為本發(fā)明實(shí)施例二的面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享方法的流程圖。如圖2 所示,該方法包括以下過(guò)程。
步驟201 允許遠(yuǎn)程共享的USB設(shè)備接入客戶端主機(jī)。
在本步驟中,后續(xù)過(guò)程中允許遠(yuǎn)程共享的USB設(shè)備首先需要接入客戶端主機(jī),該接入過(guò)程采用的具體方法可以采用現(xiàn)有的任何的USB設(shè)備接入主機(jī)的方法,在此不再贅述。
步驟202 客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊獲取USB設(shè)備訪問(wèn)請(qǐng)求,將USB設(shè)備訪問(wèn)請(qǐng)求轉(zhuǎn)化為第二 URB并傳送到客戶端主機(jī)的主機(jī)控制器。
在USB設(shè)備接入客戶端主機(jī)后,該客戶端主機(jī)可以訪問(wèn)接入的USB設(shè)備,具體包括步驟202至步驟205。具體地,在本步驟中,首先,客戶端主機(jī)的應(yīng)用模塊向USB設(shè)備驅(qū)動(dòng)模塊發(fā)送USB設(shè)備訪問(wèn)請(qǐng)求,然后,USB設(shè)備驅(qū)動(dòng)模塊將USB設(shè)備訪問(wèn)請(qǐng)求轉(zhuǎn)化為第二 URB并傳送到客戶端主機(jī)的主機(jī)控制器。
步驟203 客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞第二 URB描述的數(shù)據(jù)。
步驟204 第二 URB完成后,客戶端的主機(jī)控制器以中斷方式調(diào)用URB完成回調(diào)函數(shù)。
步驟205 客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備訪問(wèn)請(qǐng)求完成消息。
步驟206 客戶端主機(jī)的設(shè)備控制管理器循環(huán)查看客戶端主機(jī)接入的全部USB設(shè)備的設(shè)備文件。
步驟207 客戶端主機(jī)的設(shè)備控制管理器獲取接入的全部USB設(shè)備的總線ID、廠商 ID、設(shè)備ID和驅(qū)動(dòng)信息,并且,客戶端主機(jī)的設(shè)備控制管理器在接入的全部USB設(shè)備中設(shè)置允許遠(yuǎn)程共享的USB設(shè)備。
進(jìn)一步地,在執(zhí)行步驟207的同時(shí),或者在執(zhí)行步驟207之后,還可以執(zhí)行下述步驟 208。
步驟208 客戶端主機(jī)的設(shè)備控制管理器查詢服務(wù)器宿主機(jī)中運(yùn)行的全部虛擬機(jī)的虛擬機(jī)標(biāo)識(shí)(Universally Unique Identif ier,簡(jiǎn)稱UUID),并且,客戶端主機(jī)的設(shè)備控制管理器從全部虛擬機(jī)的UUID中選擇目標(biāo)虛擬機(jī)的UUID。
在本步驟中,在服務(wù)器宿主機(jī)上,有可能同時(shí)運(yùn)行一個(gè)或者多個(gè)虛擬機(jī)??蛻舳酥鳈C(jī)從其中選擇一個(gè)虛擬機(jī)作為目標(biāo)虛擬機(jī),該目標(biāo)虛擬機(jī)是客戶端許可的在后續(xù)遠(yuǎn)程共享過(guò)程中可以遠(yuǎn)程訪問(wèn)該客戶端USB設(shè)備的虛擬機(jī)。
在上述步驟207之后,在執(zhí)行后續(xù)過(guò)程中的任何時(shí)刻,還可以隨時(shí)變更允許遠(yuǎn)程共享的USB設(shè)備,具體他,可以執(zhí)行下述步驟209。
步驟209 客戶端主機(jī)的設(shè)備控制管理器將允許遠(yuǎn)程共享的USB設(shè)備設(shè)置為不允許遠(yuǎn)程共享的USB設(shè)備。
在步驟208之后,客戶端將USB設(shè)備遠(yuǎn)程共享到服務(wù)器。具體地,進(jìn)入下述步驟 210。
步驟210 客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文。
在本步驟中,該USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息中包括允許共享的USB設(shè)備的總線標(biāo)識(shí)ID、廠商ID、設(shè)備ID、驅(qū)動(dòng)信息和目標(biāo)虛擬機(jī)的UUID。
步驟211 服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將根集線器端口狀態(tài)變更為設(shè)備插入。
在本步驟中,服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將根集線器端口狀態(tài)變更為設(shè)備插入,在服務(wù)器宿主機(jī)生成虛擬的允許遠(yuǎn)程共享的USB設(shè)備。
步驟212 服務(wù)器虛擬機(jī)通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)所述虛擬的允許遠(yuǎn)程共享的 USB設(shè)備。
在本步驟中,服務(wù)器虛擬機(jī)通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)所述虛擬的允許遠(yuǎn)程共享的 USB設(shè)備,具體地,在此過(guò)程中,服務(wù)器虛擬機(jī)向服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊發(fā)送USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求。
步驟213 服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊將USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求轉(zhuǎn)化為第一 USB請(qǐng)求塊(USB Request Block,簡(jiǎn)稱URB)并傳遞到服務(wù)器宿主機(jī)的虛擬主機(jī)控制器。
步驟214 服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將第一 URB封裝到第二 IP報(bào)文中傳送給客戶端的虛擬USB設(shè)備驅(qū)動(dòng)模塊。
步驟215 客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊根據(jù)第二 IP報(bào)文的內(nèi)容建立第一 URB并傳遞給客戶端的主機(jī)控制器。
步驟216 客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞第一 URB描述的數(shù)據(jù)。
步驟217 第一 URB完成后,客戶端主機(jī)的主機(jī)控制器以中斷方式調(diào)用URB完成回調(diào)函數(shù)。
步驟218 客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊向服務(wù)器的宿主機(jī)的虛擬主機(jī)控制器返回?cái)y帶USB設(shè)備請(qǐng)求完成消息的IP報(bào)文。
步驟219 服務(wù)器宿主機(jī)的虛擬主機(jī)控制器向服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備請(qǐng)求完成消息。
在本發(fā)明實(shí)施例二中,客戶端主機(jī)對(duì)接入該主機(jī)自身的USB設(shè)備進(jìn)行設(shè)置,從中選擇允許遠(yuǎn)程共享的USB設(shè)備,并且客戶端可以指定允許共享該USB設(shè)備的服務(wù)器的虛擬機(jī),該虛擬機(jī)對(duì)該USB設(shè)備的訪問(wèn)操作對(duì)應(yīng)的URB通過(guò)IP報(bào)文發(fā)送到客戶端,客戶端將該 IP報(bào)文轉(zhuǎn)換成URB并執(zhí)行,從而實(shí)現(xiàn)了服務(wù)器的虛擬機(jī)遠(yuǎn)程訪問(wèn)USB設(shè)備,并可以對(duì)該虛擬機(jī)進(jìn)行選擇,進(jìn)一步提高了面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性。
圖3為本發(fā)明實(shí)施例三的面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享系統(tǒng)的結(jié)構(gòu)示意圖。如圖3所示,該系統(tǒng)包括客戶端主機(jī)31、服務(wù)器宿主機(jī)32和設(shè)置在服務(wù)器宿主機(jī)32上的服務(wù)器虛擬機(jī)33。
其中,客戶端主機(jī)31包括應(yīng)用模塊311、虛擬USB設(shè)備驅(qū)動(dòng)模塊312和主機(jī)控制器313。服務(wù)器宿主機(jī)32包括應(yīng)用模塊321、USB設(shè)備驅(qū)動(dòng)模塊322和虛擬主機(jī)控制器 323。
具體地,客戶端主機(jī)31的應(yīng)用模塊311用于向服務(wù)器宿主機(jī)32的應(yīng)用模塊321 發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文。該USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息包括 允許共享的USB設(shè)備的總線標(biāo)識(shí)ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息。
客戶端主機(jī)31的虛擬USB設(shè)備驅(qū)動(dòng)模塊312用于根據(jù)第二 IP報(bào)文的內(nèi)容建立第一 URB并傳遞給客戶端主機(jī)31的主機(jī)控制器313。
客戶端主機(jī)31的主機(jī)控制器313用于驅(qū)動(dòng)傳遞第一 URB描述的數(shù)據(jù)。
服務(wù)器宿主機(jī)32包括應(yīng)用模塊321、USB設(shè)備驅(qū)動(dòng)模塊322和虛擬主機(jī)控制器 323。
服務(wù)器宿主機(jī)32的虛擬主機(jī)控制器323用于將根集線器端口狀態(tài)變更為設(shè)備插入,在服務(wù)器宿主機(jī)32生成虛擬的允許遠(yuǎn)程共享的USB設(shè)備;并且將第一 URB封裝到第二 IP報(bào)文中傳送給客戶端主機(jī)31的虛擬USB設(shè)備驅(qū)動(dòng)模塊312。
服務(wù)器宿主機(jī)32的USB設(shè)備驅(qū)動(dòng)模塊322用于將USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求轉(zhuǎn)化為第一 USB請(qǐng)求塊URB并傳遞到服務(wù)器宿主機(jī)32的虛擬主機(jī)控制器323。
服務(wù)器虛擬機(jī)33用于通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)虛擬的允許遠(yuǎn)程共享的USB設(shè)備,向所述服務(wù)器宿主機(jī)32的USB設(shè)備驅(qū)動(dòng)模塊322發(fā)送USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求。
在上述技術(shù)方案的基礎(chǔ)上,進(jìn)一步地,客戶端主機(jī)31還可以包括設(shè)備控制管理器314。設(shè)備控制管理器314用于循環(huán)查看客戶端主機(jī)31接入的全部USB設(shè)備的設(shè)備文件,獲取接入的全部USB設(shè)備的總線ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息,在接入的全部USB設(shè)備中設(shè)置允許遠(yuǎn)程共享的USB設(shè)備。
進(jìn)一步地,客戶端主機(jī)31的設(shè)備控制管理器314還用于查詢服務(wù)器宿主機(jī)32中運(yùn)行的全部虛擬機(jī)的虛擬機(jī)標(biāo)識(shí)UUID,從全部虛擬機(jī)的UUID中選擇目標(biāo)虛擬機(jī)的UUID。上述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息中還包括目標(biāo)虛擬機(jī)的UUID。
進(jìn)一步地,客戶端主機(jī)31的設(shè)備控制管理器314還用于將允許遠(yuǎn)程共享的USB設(shè)備設(shè)置為不允許遠(yuǎn)程共享的USB設(shè)備。
在上述技術(shù)方案的基礎(chǔ)上,具體地,服務(wù)器宿主機(jī)32和設(shè)置在服務(wù)器宿主機(jī)32上的服務(wù)器虛擬機(jī)33之間的信息交互過(guò)程可以采用現(xiàn)有的任意的虛擬機(jī)技術(shù)實(shí)現(xiàn)。以下僅對(duì)其中一種具體實(shí)施例進(jìn)行簡(jiǎn)要介紹。具體地,在服務(wù)器虛擬機(jī)33與服務(wù)器宿主機(jī)32硬件之間存在一個(gè)層,用于決定訪問(wèn),稱為虛擬機(jī)監(jiān)控器。虛擬機(jī)的操作系統(tǒng)中包括設(shè)備驅(qū)動(dòng)模塊,虛擬機(jī)發(fā)出對(duì)允許遠(yuǎn)程共享的USB的訪問(wèn)命令后,虛擬機(jī)監(jiān)控器截獲該訪問(wèn)命令,虛擬機(jī)監(jiān)控器將該訪問(wèn)命令轉(zhuǎn)換為對(duì)宿主機(jī)32的操作系統(tǒng)的系統(tǒng)調(diào)用命令,將該系統(tǒng)調(diào)用命令轉(zhuǎn)發(fā)給宿主機(jī)32的操作系統(tǒng)的設(shè)備驅(qū)動(dòng)模塊,通過(guò)宿主機(jī)32的操作系統(tǒng)的設(shè)備驅(qū)動(dòng)模塊訪問(wèn)宿主機(jī)32的物理硬件裝置和允許遠(yuǎn)程共享的USB設(shè)備。
在本發(fā)明實(shí)施例三中,客戶端的應(yīng)用模塊向服務(wù)器的應(yīng)用模塊上報(bào)允許共享的 USB設(shè)備的信息,服務(wù)器的虛擬主機(jī)控制器根據(jù)該信息在服務(wù)器建立虛擬的該USB設(shè)備并將對(duì)該USB設(shè)備的訪問(wèn)操作對(duì)應(yīng)的URB通過(guò)IP報(bào)文發(fā)送到客戶端,客戶端的虛擬USB設(shè)備驅(qū)動(dòng)模塊將該IP報(bào)文轉(zhuǎn)換成URB并執(zhí)行,從而實(shí)現(xiàn)服務(wù)器遠(yuǎn)程訪問(wèn)USB設(shè)備。該USB設(shè)備遠(yuǎn)程共享系統(tǒng)不是簡(jiǎn)單地對(duì)文件進(jìn)行共享,而是實(shí)現(xiàn)了設(shè)備層面的共享,并且不需要在客戶端和服務(wù)器的主機(jī)中增加新的硬件設(shè)備,USB設(shè)備的連接數(shù)目也不受限制,因此提高了面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性。
需要說(shuō)明的是對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種面向虛擬機(jī)的通用串行總線USB設(shè)備遠(yuǎn)程共享方法,其特征在于,包括客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一互聯(lián)網(wǎng)協(xié)議IP報(bào)文,所述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息包括允許共享的USB設(shè)備的總線標(biāo)識(shí)ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息;所述服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將根集線器端口狀態(tài)變更為設(shè)備插入,在所述服務(wù)器宿主機(jī)生成虛擬的所述允許遠(yuǎn)程共享的USB設(shè)備;所述服務(wù)器虛擬機(jī)通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)所述虛擬的允許遠(yuǎn)程共享的USB設(shè)備,向所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊發(fā)送USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求;所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊將所述USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求轉(zhuǎn)化為第一 USB 請(qǐng)求塊URB并傳遞到服務(wù)器宿主機(jī)的虛擬主機(jī)控制器;所述服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將所述第一 URB封裝到第二 IP報(bào)文中傳送給客戶端的虛擬USB設(shè)備驅(qū)動(dòng)模塊;客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊根據(jù)所述第二 IP報(bào)文的內(nèi)容建立所述第一 URB 并傳遞給客戶端的主機(jī)控制器;所述客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞所述第一 URB描述的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞所述第一 URB描述的數(shù)據(jù)之后還包括所述第一 URB完成后,所述客戶端主機(jī)的主機(jī)控制器以中斷方式調(diào)用URB完成回調(diào)函數(shù);所述客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊向所述服務(wù)器的宿主機(jī)的虛擬主機(jī)控制器返回?cái)y帶USB設(shè)備請(qǐng)求完成消息的IP報(bào)文;所述服務(wù)器宿主機(jī)的虛擬主機(jī)控制器向所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回 USB設(shè)備請(qǐng)求完成消息。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文之前還包括所述允許遠(yuǎn)程共享的USB設(shè)備接入所述客戶端主機(jī);客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊獲取USB設(shè)備訪問(wèn)請(qǐng)求,將所述USB設(shè)備訪問(wèn)請(qǐng)求轉(zhuǎn)化為第二 URB并傳送到所述客戶端主機(jī)的主機(jī)控制器;所述客戶端主機(jī)的主機(jī)控制器驅(qū)動(dòng)傳遞所述第二 URB描述的數(shù)據(jù); 所述第二 URB完成后,所述客戶端的主機(jī)控制器以中斷方式調(diào)用URB完成回調(diào)函數(shù); 所述客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備訪問(wèn)請(qǐng)求完成消息。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備訪問(wèn)請(qǐng)求完成消息之后,所述客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文之前,還包括客戶端主機(jī)的設(shè)備控制管理器循環(huán)查看客戶端主機(jī)接入的全部USB設(shè)備的設(shè)備文件; 客戶端主機(jī)的設(shè)備控制管理器獲取所述接入的全部USB設(shè)備的總線ID、廠商ID、設(shè)備 ID和驅(qū)動(dòng)信息;客戶端主機(jī)的設(shè)備控制管理器在所述接入的全部USB設(shè)備中設(shè)置所述允許遠(yuǎn)程共享的USB設(shè)備。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述客戶端主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊返回USB設(shè)備訪問(wèn)請(qǐng)求完成消息之后,所述客戶端主機(jī)的應(yīng)用模塊向服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一 IP報(bào)文之前,還包括所述客戶端主機(jī)的設(shè)備控制管理器查詢所述服務(wù)器宿主機(jī)中運(yùn)行的全部虛擬機(jī)的虛擬機(jī)標(biāo)識(shí)UUID ;所述客戶端主機(jī)的設(shè)備控制管理器從所述全部虛擬機(jī)的UUID中選擇目標(biāo)虛擬機(jī)的 UUID ;所述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息中還包括所述目標(biāo)虛擬機(jī)的UUID。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述客戶端主機(jī)的設(shè)備控制管理器在所述接入的全部USB設(shè)備中設(shè)置所述允許遠(yuǎn)程共享的USB設(shè)備之后,還包括 所述客戶端主機(jī)的設(shè)備控制管理器將所述允許遠(yuǎn)程共享的USB設(shè)備設(shè)置為不允許遠(yuǎn)程共享的USB設(shè)備。
7.一種面向虛擬機(jī)的通用串行總線USB設(shè)備遠(yuǎn)程共享系統(tǒng),其特征在于,包括客戶端主機(jī)、服務(wù)器宿主機(jī)和設(shè)置在所述服務(wù)器宿主機(jī)上的服務(wù)器虛擬機(jī);所述客戶端主機(jī)包括應(yīng)用模塊、虛擬USB設(shè)備驅(qū)動(dòng)模塊和主機(jī)控制器; 所述服務(wù)器宿主機(jī)包括應(yīng)用模塊、USB設(shè)備驅(qū)動(dòng)模塊和虛擬主機(jī)控制器; 所述客戶端主機(jī)的應(yīng)用模塊用于向所述服務(wù)器宿主機(jī)的應(yīng)用模塊發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的第一互聯(lián)網(wǎng)協(xié)議IP報(bào)文,所述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息包括允許共享的USB設(shè)備的總線標(biāo)識(shí)ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息;所述客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊用于根據(jù)第二 IP報(bào)文的內(nèi)容建立第一 URB 并傳遞給客戶端的主機(jī)控制器;所述客戶端主機(jī)的主機(jī)控制器用于驅(qū)動(dòng)傳遞第一 URB描述的數(shù)據(jù); 所述服務(wù)器宿主機(jī)的虛擬主機(jī)控制器用于將根集線器端口狀態(tài)變更為設(shè)備插入,在所述服務(wù)器宿主機(jī)生成虛擬的所述允許遠(yuǎn)程共享的USB設(shè)備;并且將第一 URB封裝到第二 IP 報(bào)文中傳送給所述客戶端的虛擬USB設(shè)備驅(qū)動(dòng)模塊;所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊用于將所述USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求轉(zhuǎn)化為第一 USB請(qǐng)求塊URB并傳遞到服務(wù)器宿主機(jī)的虛擬主機(jī)控制器;所述服務(wù)器虛擬機(jī)用于通過(guò)設(shè)備虛擬化機(jī)制訪問(wèn)所述虛擬的允許遠(yuǎn)程共享的USB設(shè)備,向所述服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊發(fā)送USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述客戶端主機(jī)還包括設(shè)備控制管理器,用于循環(huán)查看客戶端主機(jī)接入的全部USB設(shè)備的設(shè)備文件,獲取所述接入的全部USB設(shè)備的總線ID、廠商ID、設(shè)備ID和驅(qū)動(dòng)信息,在所述接入的全部USB設(shè)備中設(shè)置所述允許遠(yuǎn)程共享的USB設(shè)備。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述客戶端主機(jī)的設(shè)備控制管理器還用于查詢所述服務(wù)器宿主機(jī)中運(yùn)行的全部虛擬機(jī)的虛擬機(jī)標(biāo)識(shí)UUID,從所述全部虛擬機(jī)的UUID中選擇目標(biāo)虛擬機(jī)的UUID ;所述USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息中還包括所述目標(biāo)虛擬機(jī)的UUID。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述客戶端主機(jī)的設(shè)備控制管理器還用于將所述允許遠(yuǎn)程共享的USB設(shè)備設(shè)置為不允許遠(yuǎn)程共享的USB設(shè)備。
全文摘要
本發(fā)明提供一種面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享方法和系統(tǒng)??蛻舳酥鳈C(jī)向服務(wù)器宿主機(jī)發(fā)送攜帶USB設(shè)備遠(yuǎn)程共享請(qǐng)求消息的IP報(bào)文,服務(wù)器宿主機(jī)生成虛擬的允許遠(yuǎn)程共享的USB設(shè)備,服務(wù)器宿主機(jī)的USB設(shè)備驅(qū)動(dòng)模塊將服務(wù)器虛擬機(jī)發(fā)送的USB設(shè)備遠(yuǎn)程訪問(wèn)請(qǐng)求轉(zhuǎn)化為URB并傳遞到服務(wù)器宿主機(jī)的虛擬主機(jī)控制器,服務(wù)器宿主機(jī)的虛擬主機(jī)控制器將URB封裝到IP報(bào)文中傳送給客戶端的虛擬USB設(shè)備驅(qū)動(dòng)模塊,客戶端主機(jī)的虛擬USB設(shè)備驅(qū)動(dòng)模塊根據(jù)該IP報(bào)文的內(nèi)容建立URB并傳遞給客戶端的主機(jī)控制器進(jìn)行驅(qū)動(dòng)。采用本發(fā)明提供的面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享方法和系統(tǒng),能夠提高面向虛擬機(jī)的USB設(shè)備遠(yuǎn)程共享的靈活性。
文檔編號(hào)H04L29/08GK102523264SQ20111040211
公開(kāi)日2012年6月27日 申請(qǐng)日期2011年12月6日 優(yōu)先權(quán)日2011年12月6日
發(fā)明者懷進(jìn)鵬, 李博, 李建欣, 沃天宇, 焦燁 申請(qǐng)人:北京航空航天大學(xué)