本發(fā)明涉及桌面虛擬化的usb重定向處理技術(shù)領(lǐng)域,具體而言,涉及一種usb重定向處理方法和系統(tǒng)。
背景技術(shù):
隨著科學(xué)技術(shù)的不斷進(jìn)步,網(wǎng)絡(luò)技術(shù)日益發(fā)達(dá),虛擬化的應(yīng)用逐漸普及。桌面虛擬化是指在數(shù)據(jù)中心的服務(wù)器上進(jìn)行服務(wù)器虛擬化后,生成獨(dú)立的虛擬桌面,再使用專有的虛擬桌面協(xié)議將虛擬桌面發(fā)送給終端設(shè)備的技術(shù),用戶可通過(guò)以太網(wǎng)輸入用戶名、密碼和網(wǎng)管信息連接到虛擬機(jī)上,再通過(guò)網(wǎng)絡(luò)直接訪問(wèn)自己的桌面系統(tǒng)。桌面虛擬化技術(shù)雖然為用戶的移動(dòng)辦公帶來(lái)了極大的便捷,但同時(shí)也帶來(lái)了新的問(wèn)題,如:如何將終端的usb外設(shè)重定向至云端的虛擬機(jī)中。
usb重定向是一種當(dāng)usb裝置插入客戶端后,將其重新導(dǎo)向至虛擬機(jī)內(nèi)部的技術(shù),一方面,在完成usb重定向之前需要對(duì)usb設(shè)備進(jìn)行驅(qū)動(dòng)替換,然而現(xiàn)有技術(shù)中,在進(jìn)行驅(qū)動(dòng)替換時(shí)往往只根據(jù)usb設(shè)備的廠商序號(hào)(vid)和產(chǎn)品序號(hào)(pid)來(lái)區(qū)分不同的設(shè)備,此方法無(wú)法區(qū)分具有相同的vid和pid的多個(gè)usb設(shè)備(比如同一批次的u-key),進(jìn)而可能導(dǎo)致映射錯(cuò)誤的問(wèn)題。
另一方面,當(dāng)終端上插入不同類型的usb設(shè)備時(shí)(如鼠標(biāo)、鍵盤、usb攝像頭和u盤等),現(xiàn)有技術(shù)中往往會(huì)將所有的usb設(shè)備都展示在usb設(shè)備列表中,從而可能導(dǎo)致用戶誤將鼠標(biāo)和鍵盤等輸入設(shè)備映射到虛擬機(jī)中,進(jìn)而導(dǎo)致鼠標(biāo)和鍵盤在本地不能正常使用,或者將usb攝像頭通過(guò)usb接口重定向方式映射到虛擬機(jī)中,導(dǎo)致虛擬機(jī)內(nèi)圖像積壓和虛擬機(jī)卡頓等問(wèn)題,使得用戶體驗(yàn)很大程度的降低。因此,如何解決上述問(wèn)題是目前亟需解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種usb重定向處理方法和系統(tǒng),旨在解決上述問(wèn)題。
第一方面,本發(fā)明提供的一種usb重定向處理方法,所述方法包括基于用戶選擇的獲取usb設(shè)備列表方式,在獲取usb設(shè)備列表的同時(shí)分別記錄每個(gè)usb設(shè)備的產(chǎn)品序號(hào)(pid)和廠商序號(hào)(vid)以及該設(shè)備插入端口的hub和port屬性;當(dāng)獲取到用戶選擇映射到虛擬機(jī)中的usb設(shè)備后,將該usb設(shè)備映射到虛擬機(jī)中;比較設(shè)備列表中usb設(shè)備狀態(tài)和虛擬機(jī)內(nèi)該usb設(shè)備映射狀態(tài)是否一致,并更新usb設(shè)備列表。第二方面,本發(fā)明提供的一種usb重定向處理系統(tǒng),所述裝置包括構(gòu)建列表單元,用于基于用戶選擇的獲取usb設(shè)備列表方式,在構(gòu)建usb設(shè)備列表的同時(shí)分別為每個(gè)usb設(shè)備添加產(chǎn)品序號(hào)(pid)和廠商序號(hào)(vid)以及該設(shè)備插入端口的hub和port屬性;映射單元,用于當(dāng)獲取到用戶選擇映射的usb設(shè)備時(shí),則將該usb設(shè)備映射到虛擬機(jī)中;同步狀態(tài)單元,用于比較設(shè)備列表中usb設(shè)備狀態(tài)和usb通道管理器中該usb設(shè)備映射狀態(tài)是否一致,并更新usb設(shè)備列表。
上述本發(fā)明提供的一種usb重定向處理方法和系統(tǒng),本申請(qǐng)首先通過(guò)自動(dòng)識(shí)別終端上插入的usb的設(shè)備類型,在構(gòu)建終端usb設(shè)備列表時(shí)自動(dòng)過(guò)濾掉鍵盤和鼠標(biāo)等輸入設(shè)備,其次分別為usb列表上每個(gè)usb設(shè)備添加該設(shè)備插入端口的hub和port屬性,以便于在進(jìn)行驅(qū)動(dòng)替換時(shí)準(zhǔn)確區(qū)分具有相同vid和pid的usb設(shè)備,最后將設(shè)備映射到虛擬機(jī)中,從而解決用戶誤將鼠標(biāo)、鍵盤和usb攝像頭等設(shè)備通過(guò)usb重定向技術(shù)映射到虛擬機(jī)時(shí)導(dǎo)致設(shè)備不能正常使用,影響用戶體驗(yàn)以及當(dāng)終端上插入具有相同vid和pid的設(shè)備時(shí)可能導(dǎo)致設(shè)備映射錯(cuò)誤的問(wèn)題。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明中usb重定向處理方法的具體實(shí)現(xiàn)流程圖;
圖2為本發(fā)明中usb重定向處理系統(tǒng)的具體實(shí)現(xiàn)流程圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,為本發(fā)明提供的一種usb重定向處理方法的具流程圖。下面將對(duì)圖2所示的具體流程進(jìn)行詳細(xì)闡述。
步驟101,選擇獲取usb設(shè)備列表方式。
所述選擇獲取usb設(shè)備列表方式為用戶可通過(guò)智能識(shí)別方式或者人工配置方式獲取usb設(shè)備列表。
智能識(shí)別方式具體為當(dāng)用戶選擇以智能識(shí)別方式獲取終端上插入的usb設(shè)備列表時(shí),系統(tǒng)自動(dòng)識(shí)別usb的設(shè)備類型,在構(gòu)建終端usb設(shè)備列表時(shí)自動(dòng)過(guò)濾掉鍵盤和鼠標(biāo)等輸入設(shè)備,進(jìn)而解決用戶誤將鼠標(biāo)鍵盤等設(shè)備映射到虛擬機(jī)中導(dǎo)致鼠標(biāo)鍵盤不能正常使用。該方式為默認(rèn)獲取usb設(shè)備列表方式。
人工配置方式具體為當(dāng)用戶選擇以人工配置方式獲取終端上插入的usb設(shè)備列表時(shí),在usb設(shè)備列表中展示終端上所有usb設(shè)備,用戶自主選擇需要映射到虛擬機(jī)中的設(shè)備。
步驟102,獲取usb設(shè)備列表。
所述獲取usb設(shè)備列表為基于用戶選擇的獲取usb設(shè)備列表方式,在構(gòu)建usb設(shè)備列表的同時(shí)分別記錄每個(gè)usb設(shè)備的產(chǎn)品序號(hào)(pid)和廠商序號(hào)(vid)以及該設(shè)備插入端口的hub和port屬性,usb設(shè)備列表構(gòu)建完成后將其發(fā)送至usb通道管理器。
步驟103,指定設(shè)備進(jìn)行映射。
所述指定設(shè)備進(jìn)行映射為當(dāng)獲取到用戶需要映射到虛擬機(jī)中的usb設(shè)備后,首先usb設(shè)備管理器將該usb設(shè)備的操作狀態(tài)設(shè)置為“映射中”,并根據(jù)該usb設(shè)備的pid、vid、hub和port屬性查找設(shè)備,其中,添加hub和port屬性,可以避免傳統(tǒng)使用pid、vid值來(lái)查找與定位外設(shè)所導(dǎo)致的非唯一性缺陷(即同時(shí)接入一臺(tái)終端的同pid、vid值外設(shè)可能有多個(gè)),然后對(duì)該設(shè)備進(jìn)行驅(qū)動(dòng)替換操作,完成驅(qū)動(dòng)替換后觸發(fā)usb設(shè)備列表更新,usb設(shè)備管理器立刻推送更新后的usb列表至usb通道管理器,usb通道管理器通過(guò)對(duì)比兩個(gè)usb設(shè)備列表查找到需要映射的設(shè)備,將該usb設(shè)備映射到虛擬機(jī)中。usb通道管理器完成設(shè)備映射后發(fā)送映射結(jié)果至usb設(shè)備管理器,最后當(dāng)usb設(shè)備管理器收到映射成功的消息,將該設(shè)備的操作狀態(tài)更新為“正?!?,設(shè)備映射完成。
步驟104,同步狀態(tài)。
所述同步狀態(tài)為usb管理器定時(shí)檢測(cè)usb設(shè)備列表中全部設(shè)備狀態(tài),當(dāng)有設(shè)備處于映射或者解映射操作時(shí),會(huì)主動(dòng)發(fā)送查詢命令,檢測(cè)該設(shè)備在usb通道管理器中是否完成映射操作,若在usb通道管理器中該設(shè)備未完成映射操作,則在usb設(shè)備列表中將該設(shè)備重新置為“未映射”狀態(tài)。
本實(shí)施例中,usb管理器每隔5秒會(huì)檢測(cè)usb設(shè)備列表中usb設(shè)備狀態(tài),當(dāng)有設(shè)備處于映射或者解映射操作時(shí),會(huì)主動(dòng)發(fā)送查詢命令,檢查該設(shè)備在usb通道管理器中是否完成相應(yīng)操作。
如圖2所示,為本發(fā)明提供的一種usb重定向處理系統(tǒng)的功能模塊示意圖。所述usb重定向處理系統(tǒng)200包括構(gòu)建列表單元210、映射單元220和同步狀態(tài)單元230。
構(gòu)建列表單元210,基于用戶選擇的獲取usb設(shè)備列表方式,在獲取usb設(shè)備列表的同時(shí)分別記錄每個(gè)usb設(shè)備的產(chǎn)品序號(hào)(pid)和廠商序號(hào)(vid)以及該設(shè)備插入端口的hub和port屬性;
其中所述構(gòu)建列表單元210具體包括智能識(shí)別單元211、人工配置單元212和屬性添加單元213。
智能識(shí)別單元221,用于系統(tǒng)自動(dòng)識(shí)別終端上usb的設(shè)備類型,在構(gòu)建終端usb設(shè)備列表時(shí)自動(dòng)過(guò)濾掉鍵盤和鼠標(biāo)等輸入設(shè)備。
人工配置單元222,用于在usb設(shè)備列表中展示終端上所有usb設(shè)備,用戶自主選擇需要映射到虛擬機(jī)中的設(shè)備。
屬性添加單元223,用于在獲取usb設(shè)備列表的同時(shí),分別為每個(gè)usb設(shè)備增加該設(shè)備所插入端口的hub和port屬性,以便于進(jìn)行驅(qū)動(dòng)替換時(shí)準(zhǔn)確區(qū)分具有相同廠商序號(hào)(vid)和產(chǎn)品序號(hào)(pid)的usb設(shè)備。
其中只有當(dāng)屬性添加單元與智能識(shí)別單元或者與人工配置單元進(jìn)行組合后,才能獲得本發(fā)明中的usb設(shè)備列表。
映射單元220,用于當(dāng)獲取到用戶選擇映射的usb設(shè)備時(shí),則將該usb設(shè)備映射到虛擬機(jī)中。
其中映射單元220具體包括用戶選擇單元221和驅(qū)動(dòng)替換單元222。
用戶選擇單元221,用于用戶在usb設(shè)備列表中選擇需要映射到虛擬機(jī)中的usb設(shè)備。
驅(qū)動(dòng)替換單元222,用于當(dāng)獲取到用戶需要映射到虛擬機(jī)中的usb設(shè)備時(shí),首先usb設(shè)備管理器將該usb設(shè)備的操作狀態(tài)設(shè)置為“映射中”,并根據(jù)該usb設(shè)備的pid、vid、hub和port屬性查找設(shè)備,然后對(duì)該設(shè)備進(jìn)行驅(qū)動(dòng)替換操作,完成驅(qū)動(dòng)替換后觸發(fā)usb設(shè)備列表更新,usb設(shè)備管理器立刻推送更新后的usb列表至usb通道管理器,usb通道管理器通過(guò)對(duì)比兩個(gè)usb設(shè)備列表查找到需要映射的設(shè)備,將該usb設(shè)備映射到虛擬機(jī)中。usb通道管理器完成設(shè)備映射后發(fā)送映射結(jié)果至usb設(shè)備管理器,最后當(dāng)usb設(shè)備管理器收到映射成功的消息后,將該設(shè)備的操作狀態(tài)更新為“正?!?,設(shè)備映射完成。
同步狀態(tài)單元230,用于比較設(shè)備列表中usb設(shè)備狀態(tài)和usb通道管理器中該usb設(shè)備映射狀態(tài)是否一致,并更新usb設(shè)備列表。
具體為usb設(shè)備管理器定時(shí)查詢usb設(shè)備列表中全部設(shè)備狀態(tài),當(dāng)檢測(cè)到設(shè)備a處于映射狀態(tài)后,發(fā)送查詢命令,查詢usb通道管理器中設(shè)備a是否完成映射操作,若設(shè)備a未完成映射操作,則在usb設(shè)備列表中將設(shè)備a重新置為“未映射”狀態(tài)。
綜上所述,本發(fā)明提供的一種usb重定向處理方法和系統(tǒng),首先通過(guò)自動(dòng)識(shí)別終端上usb的設(shè)備類型,在構(gòu)建終端usb設(shè)備列表時(shí)自動(dòng)過(guò)濾掉鍵盤和鼠標(biāo)等輸入設(shè)備,其次分別為usb列表上每個(gè)usb設(shè)備添加該設(shè)備插入端口的hub和port屬性,以便于在進(jìn)行驅(qū)動(dòng)替換時(shí)準(zhǔn)確區(qū)分具有相同廠商序號(hào)(vid)和產(chǎn)品序號(hào)(pid)的usb設(shè)備,最后將設(shè)備映射到虛擬機(jī)中,從而解決用戶誤將鼠標(biāo)、鍵盤和usb攝像頭等設(shè)備通過(guò)usb接口重定向技術(shù)映射到虛擬機(jī)時(shí)導(dǎo)致設(shè)備不能正常使用,影響用戶體驗(yàn)以及當(dāng)終端上插入具有相同vid和pid的設(shè)備時(shí)可能導(dǎo)致設(shè)備映射錯(cuò)誤的問(wèn)題。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。