專利名稱:虛擬機(jī)的繼承產(chǎn)品激活的制作方法
虛擬機(jī)的繼承產(chǎn)品激活
背景技術(shù):
虛擬化使得完全配置的計(jì)算機(jī)的創(chuàng)建整個(gè)脫離軟件。例如,當(dāng)在主計(jì)算機(jī)系統(tǒng)上仿真訪客計(jì)算機(jī)系統(tǒng)時(shí),由于訪客計(jì)算機(jī)系統(tǒng)作為一個(gè)具體硬件架構(gòu)的操作的軟件表示存在于主計(jì)算機(jī)系統(tǒng)中,因而訪客計(jì)算機(jī)系統(tǒng)被稱為“虛擬機(jī)”。在虛擬機(jī)內(nèi),可以安裝操作系統(tǒng),正如它將會(huì)在物理硬件上安裝一樣。虛擬機(jī)可以使用應(yīng)用激活機(jī)制的軟件應(yīng)用。例如,一些應(yīng)用可以應(yīng)用允許用戶在服從某些條款和條件的情況下使用一個(gè)或更多個(gè)虛擬機(jī)上的應(yīng)用的許可機(jī)制。該上下文中的“產(chǎn)品激活”描述滿足許可機(jī)制需求的動(dòng)作,以允許軟件的使用。在虛擬機(jī)方面,對(duì)于應(yīng)用軟件產(chǎn)品激活機(jī)制存在獨(dú)特挑戰(zhàn)。
發(fā)明內(nèi)容
軟件反盜版解決方案常常通過(guò)借由創(chuàng)建計(jì)算機(jī)基于硬件的ID或指紋把軟件許可證綁定到各計(jì)算機(jī)硬件進(jìn)行操作。虛擬化由于把硬件虛擬化所以使得這些解決方案不可靠。指紋可以編輯或復(fù)制,因而可以被利用來(lái)繞過(guò)產(chǎn)品激活以及拷貝或竊取軟件。此外,通常的服務(wù)器虛擬化場(chǎng)景根據(jù)需要把虛擬機(jī)從一個(gè)主機(jī)移動(dòng)到另一個(gè)。此合法使用可以打破綁定到硬件指紋的軟件許可解決方案。在本文中公開(kāi)了繼承激活機(jī)制開(kāi)啟從主機(jī)操作系統(tǒng)(OS)至訪客OS的安全通信路徑的方法和系統(tǒng)。通過(guò)此通道傳遞主機(jī)上軟件的許可證狀態(tài),并且訪客中安裝的軟件使用此信息通知它自身的產(chǎn)品激活過(guò)程。虛擬化軟件可以隨后在符合主機(jī)的許可證需求時(shí)在沒(méi)有任何外部通信的情況下激活。以上是發(fā)明內(nèi)容,因而必定包含細(xì)節(jié)的簡(jiǎn)化、概括和省略。本領(lǐng)域技術(shù)人員將會(huì)明白該發(fā)明內(nèi)容只是示例性的以及并非意在以任何方式限制。
圖1和2描繪了可以實(shí)施本公開(kāi)方面的實(shí)例計(jì)算機(jī)系統(tǒng)。圖3描繪了用于實(shí)踐本公開(kāi)方面的操作環(huán)境。圖4描繪了用于實(shí)踐本公開(kāi)方面的操作環(huán)境。圖5示例了包括用于使遠(yuǎn)程桌面業(yè)務(wù)實(shí)現(xiàn)的電路的計(jì)算機(jī)系統(tǒng)。圖6描繪了用于實(shí)踐本公開(kāi)方面的操作環(huán)境。圖7描繪了用于實(shí)踐本公開(kāi)方面的操作環(huán)境。圖8描繪了用于實(shí)踐本公開(kāi)方面的操作環(huán)境。圖9描繪了用于實(shí)踐本公開(kāi)方面的實(shí)例操作流程。圖10描繪了用于實(shí)踐本公開(kāi)方面的實(shí)例操作流程。圖11描繪了用于實(shí)踐本公開(kāi)方面的實(shí)例系統(tǒng)和操作流程。
具體實(shí)施方式
總體方面的運(yùn)算環(huán)境
在以下描述和圖中敘述某些具體細(xì)節(jié)以提供本發(fā)明各種實(shí)施例的全面理解。在以下公開(kāi)中未敘述常常與運(yùn)算和軟件技術(shù)相關(guān)聯(lián)的某些公知細(xì)節(jié)以避免不必要地妨礙本發(fā)明的各種實(shí)施例。進(jìn)一步地,相關(guān)領(lǐng)域技術(shù)人員將會(huì)理解它們可以在沒(méi)有下述細(xì)節(jié)中的一個(gè)或更多個(gè)細(xì)節(jié)的情況下實(shí)踐本發(fā)明的其它實(shí)施例。最終,雖然參照以下公開(kāi)中的序列和步驟描述各種方法,但如此的描述用于提供本發(fā)明實(shí)施例的清楚實(shí)施,不應(yīng)當(dāng)把步驟的序列和步驟作為實(shí)踐本發(fā)明所需要的。應(yīng)當(dāng)理解可以結(jié)合硬件或軟件或者酌情結(jié)合二者的組合實(shí)施本文中描述的各種技術(shù)。因而,本發(fā)明的方法和設(shè)備、或者其某些方面或部分可以采取有形介質(zhì)(如,軟盤(pán)、 CD-ROM、硬盤(pán)驅(qū)動(dòng)器、或者任何其它機(jī)器可讀存儲(chǔ)介質(zhì))中實(shí)施的程序代碼(即,指令)的形式,其中,當(dāng)向機(jī)器(如,計(jì)算機(jī))中加載和通過(guò)機(jī)器執(zhí)行程序代碼時(shí),該機(jī)器成為用于實(shí)踐本發(fā)明的設(shè)備。在可編程計(jì)算機(jī)上程序代碼執(zhí)行的情形中,運(yùn)算裝置通常包括處理器、處理器可讀取的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入裝置、 以及至少一個(gè)輸出裝置。一個(gè)或更多個(gè)程序可以實(shí)施或運(yùn)用結(jié)合本發(fā)明描述的過(guò)程,例如, 通過(guò)應(yīng)用編程接口(API)、可重復(fù)使用的控件等的使用。優(yōu)選地以高級(jí)面向過(guò)程或面向?qū)ο蟮木幊陶Z(yǔ)言實(shí)施這種程序以與計(jì)算機(jī)系統(tǒng)通信。然而,可以在期望的情況下,以匯編或機(jī)器語(yǔ)言實(shí)施程序。在任何情形中,語(yǔ)言可以是編譯或解釋語(yǔ)言,以及可以與硬件實(shí)施組合。遠(yuǎn)程桌面系統(tǒng)是維持可以由客戶端計(jì)算機(jī)系統(tǒng)遠(yuǎn)程執(zhí)行的應(yīng)用的計(jì)算機(jī)系統(tǒng)。在客戶端計(jì)算機(jī)系統(tǒng)處進(jìn)行錄入輸入以及在網(wǎng)絡(luò)上(例如,使用諸如遠(yuǎn)程桌面協(xié)議(RDP)的基于國(guó)際電信聯(lián)盟(ITU)T. 120協(xié)議族的協(xié)議)向終端服務(wù)器上的應(yīng)用傳送該輸入。所述應(yīng)用仿佛在終端服務(wù)器處錄入輸入一樣處理輸入。所述應(yīng)用響應(yīng)于接收的輸入生成輸出,并在網(wǎng)絡(luò)上把輸出傳送給客戶端??梢栽谝粋€(gè)或更多個(gè)計(jì)算機(jī)上執(zhí)行實(shí)施例。圖1和2以及以下討論意在提供可以實(shí)施本公開(kāi)的合適運(yùn)算環(huán)境的簡(jiǎn)要總體描述。本領(lǐng)域技術(shù)人員可以明白計(jì)算機(jī)系統(tǒng)200、 300可以具有針對(duì)圖1和2的計(jì)算機(jī)100描述的組件中的所有或一些組件。本公開(kāi)通篇使用的術(shù)語(yǔ)電路可以包括如下硬件組件諸如硬件中斷控制器、硬盤(pán)驅(qū)動(dòng)器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器、以及用來(lái)操作這種硬件的固件/軟件。術(shù)語(yǔ)電路還可以包括被配置成通過(guò)固件或者通過(guò)以某種方式設(shè)置的開(kāi)關(guān)執(zhí)行功能的微處理器,或者一個(gè)或更多個(gè)邏輯處理器,例如多核通用處理單元的一個(gè)或更多個(gè)核??梢酝ㄟ^(guò)從存儲(chǔ)器(例如,RAM、R0M、固件、和/或虛擬存儲(chǔ)器)加載的實(shí)施用于執(zhí)行功能的邏輯的軟件指令來(lái)配置此實(shí)例中的邏輯處理器。在電路包括軟件和硬件的組合的實(shí)例實(shí)施例中,實(shí)施者可以編寫(xiě)實(shí)施邏輯的源代碼,該源代碼后續(xù)被編譯成邏輯處理器可以執(zhí)行的機(jī)器可讀代碼。由于本領(lǐng)域技術(shù)人員可以明白技術(shù)現(xiàn)狀已演進(jìn)到在硬件、軟件、或者硬件/軟件的組合之間存在很少差異的程度,所以用以使功能實(shí)現(xiàn)的硬件亦或軟件的選取僅是設(shè)計(jì)選擇。因而,由于本領(lǐng)域技術(shù)人員可以明白可以把軟件過(guò)程變換成等同硬件結(jié)構(gòu), 以及可以把硬件結(jié)構(gòu)本身變換成等同軟件過(guò)程,所以硬件實(shí)施亦或軟件實(shí)施的選取是微不足道的以及留待實(shí)施者決定。圖1描繪了被配置成具有本公開(kāi)方面的運(yùn)算系統(tǒng)的實(shí)例。運(yùn)算系統(tǒng)可以包括計(jì)算機(jī)20等,包括處理單元21、系統(tǒng)存儲(chǔ)器22、以及把包括系統(tǒng)存儲(chǔ)器的各種系統(tǒng)組件耦合到處理單元21的系統(tǒng)總線23。系統(tǒng)總線23可以是包括使用各種總線架構(gòu)中任何總線架構(gòu)的本地總線、外圍總線、以及存儲(chǔ)器控制器或存儲(chǔ)器總線的數(shù)個(gè)類型總線結(jié)構(gòu)中的任何總線結(jié)構(gòu)。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM)M和隨機(jī)存取存儲(chǔ)器(RAM)25??梢园寻瑤椭谟?jì)算機(jī)20內(nèi)的元件之間傳送信息(如,在啟動(dòng)期間)的基本例程的基本輸入/輸出系統(tǒng) 26 (BIOS)存儲(chǔ)在ROM M中。計(jì)算機(jī)20可以進(jìn)一步包括用于從硬盤(pán)(未示出)讀取和向硬盤(pán)寫(xiě)入的硬盤(pán)驅(qū)動(dòng)器27、用于從可移除磁盤(pán)四讀取或向可移除磁盤(pán)四寫(xiě)入的磁盤(pán)驅(qū)動(dòng)器 28、以及用于從諸如CD ROM或其它光學(xué)介質(zhì)的可移除光盤(pán)31讀取或向可移除光盤(pán)31寫(xiě)入的光盤(pán)驅(qū)動(dòng)器30。在一些實(shí)例實(shí)施例中,可以把實(shí)施本公開(kāi)方面的計(jì)算機(jī)可執(zhí)行指令存儲(chǔ)在ROM 24、硬盤(pán)(未示出)、RAM 25、可移除磁盤(pán)四、光盤(pán)31、和/或處理單元21的高速緩存中。硬盤(pán)驅(qū)動(dòng)器27、磁盤(pán)驅(qū)動(dòng)器觀、以及光盤(pán)驅(qū)動(dòng)器30分別通過(guò)硬盤(pán)驅(qū)動(dòng)器接口 32、磁盤(pán)驅(qū)動(dòng)器接口 33、以及光盤(pán)驅(qū)動(dòng)器接口 34連接到系統(tǒng)總線23。驅(qū)動(dòng)器和它們的相關(guān)聯(lián)計(jì)算機(jī)可讀介質(zhì)提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及計(jì)算機(jī)20的其它數(shù)據(jù)的非易失性存儲(chǔ)。雖然本文中描述的環(huán)境采用硬盤(pán)、可移除磁盤(pán)四和可移除光盤(pán)31,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白也可以在操作環(huán)境中使用可以存儲(chǔ)計(jì)算機(jī)可訪問(wèn)的數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀介質(zhì),如,磁盒、閃存卡、數(shù)字視頻盤(pán)、伯努利盒式磁盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等。可以把大量程序模塊存儲(chǔ)在硬盤(pán)、磁盤(pán)四、光盤(pán)31、ROM 24或RAM 25上,包括操作系統(tǒng)35、一個(gè)或更多個(gè)應(yīng)用程序36、其它程序模塊37和程序數(shù)據(jù)38。用戶可以通過(guò)諸如鍵盤(pán)40和指點(diǎn)裝置42的輸入裝置向計(jì)算機(jī)20中錄入命令和信息。其它輸入裝置(未示出)可以包括麥克風(fēng)、操縱桿、游戲手柄、衛(wèi)星盤(pán)、掃描儀等。這些和其它輸入裝置常常通過(guò)耦合到系統(tǒng)總線的串口接口 46連接到處理單元21,但是可以通過(guò)其它接口(如,并口、游戲端口或通用串行總線(USB))連接。顯示器47或其它類型的顯示裝置也可以經(jīng)由接口(如, 視頻適配器48)連接到系統(tǒng)總線23。除了顯示器47之外,計(jì)算機(jī)通常包括其它外圍輸出裝置(未示出),如,揚(yáng)聲器和打印機(jī)。圖1的系統(tǒng)還包括主機(jī)適配器55、小型計(jì)算機(jī)系統(tǒng)接口 (SCSI)總線56、以及連接到SCSI總線56的外部存儲(chǔ)裝置62。計(jì)算機(jī)20可以使用連接到一個(gè)或更多個(gè)遠(yuǎn)程計(jì)算機(jī)(如,遠(yuǎn)程計(jì)算機(jī)49)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn)、虛擬機(jī),以及通??梢园ㄒ陨舷鄬?duì)于計(jì)算機(jī)20描述的元件中的所有或許多元件,雖然在圖1中只示例了存儲(chǔ)器存儲(chǔ)裝置50。圖1中描繪的邏輯連接可以包括局域網(wǎng)(LAN)51和廣域網(wǎng)(WAN)52。這種組網(wǎng)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、 內(nèi)聯(lián)網(wǎng)和互聯(lián)網(wǎng)中是普遍的。當(dāng)在LAN組網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)20可以通過(guò)網(wǎng)絡(luò)接口或適配器53連接到LAN 51。當(dāng)在WAN組網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)20通??梢园ㄕ{(diào)制解調(diào)器M或者用于在廣域網(wǎng)52 (如,互聯(lián)網(wǎng))上建立通信的其它部件??梢栽趦?nèi)部或外界的調(diào)制解調(diào)器M可以經(jīng)由串口接口 46連接到系統(tǒng)總線23。在聯(lián)網(wǎng)環(huán)境中,可以把相對(duì)于計(jì)算機(jī)20描繪的程序模塊、 或者其部分存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)裝置中。將會(huì)明白示出的網(wǎng)絡(luò)連接是實(shí)例,可以使用在計(jì)算機(jī)之間建立通信鏈路的其它部件。再者,雖然構(gòu)想到本公開(kāi)的大量實(shí)施例特別良好地適合計(jì)算機(jī)系統(tǒng),但本文件中沒(méi)有內(nèi)容意在把公開(kāi)限制為這種實(shí)施例?,F(xiàn)在參照?qǐng)D2,描繪了示范性運(yùn)算系統(tǒng)100的另一實(shí)施例。計(jì)算機(jī)系統(tǒng)100可以包
5括邏輯處理器102,例如,執(zhí)行核。雖然示例了一個(gè)邏輯處理器102,但在其它實(shí)施例中計(jì)算機(jī)系統(tǒng)100可以具有多個(gè)邏輯處理器,例如,每個(gè)處理器基板多個(gè)執(zhí)行核和/或可以各自具有多個(gè)執(zhí)行核的多個(gè)處理器基板。如圖所示,各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以通過(guò)把各種系統(tǒng)組件耦合到邏輯處理器102的一個(gè)或更多個(gè)系統(tǒng)總線互連。系統(tǒng)總線可以是包括使用各種總線架構(gòu)中任何總線架構(gòu)的本地總線、外圍總線、以及存儲(chǔ)器控制器或存儲(chǔ)器總線的數(shù)個(gè)類型總線結(jié)構(gòu)中的任何總線結(jié)構(gòu)。在實(shí)例實(shí)施例中計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以包括例如隨機(jī)存取存儲(chǔ)器(RAM) 104、存儲(chǔ)裝置106 (例如,機(jī)電硬盤(pán)驅(qū)動(dòng)器、固態(tài)硬盤(pán)驅(qū)動(dòng)器等)、固件108 (例如,閃存RAM或ROM)、以及諸如例如CD-ROM、軟盤(pán)、DVD、閃存驅(qū)動(dòng)器、外部存儲(chǔ)裝置等的可移除存儲(chǔ)裝置118。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白可以使用其它類型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),如,磁盒、閃存卡、數(shù)字視頻盤(pán)、伯努利盒式磁盤(pán)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)提供處理器可執(zhí)行指令122、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及計(jì)算機(jī) 100的其它數(shù)據(jù)的非易失性存儲(chǔ)??梢园寻瑤椭谟?jì)算機(jī)系統(tǒng)100內(nèi)的元件之間傳送信息(如,在啟動(dòng)期間)的基本例程的基本輸入/輸出系統(tǒng)(BIOS) 120存儲(chǔ)在固件108中。可以在固件108、存儲(chǔ)裝置106、RAM 104、和/或可移除存儲(chǔ)裝置118上存儲(chǔ)大量程序,以及通過(guò)包括操作系統(tǒng)和/或應(yīng)用程序的邏輯處理器102執(zhí)行大量程序。計(jì)算機(jī)100可以通過(guò)可以包括但不限于鍵盤(pán)和指點(diǎn)裝置的輸入裝置116接收命令和信息。其它輸入裝置可以包括麥克風(fēng)、操縱桿、游戲手柄、掃描儀等。這些和其它輸入裝置常常通過(guò)耦合到系統(tǒng)總線的串口接口連接到邏輯處理器102,但是可以通過(guò)其它接口(如, 并口、游戲端口或通用串行總線(USB))連接。顯示器或其它類型的顯示裝置也可以經(jīng)由接口(如,可以是圖形處理器112的一部分或者連接到圖形處理器112的視頻適配器)連接到系統(tǒng)總線。除了顯示器之外,計(jì)算機(jī)通常包括其它外圍輸出裝置(未示出),如,揚(yáng)聲器和打印機(jī)。圖1的示范性系統(tǒng)還可以包括主機(jī)適配器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線、以及連接到SCSI總線的外部存儲(chǔ)裝置。計(jì)算機(jī)系統(tǒng)100可以使用連接到一個(gè)或更多個(gè)遠(yuǎn)程計(jì)算機(jī)(如,遠(yuǎn)程計(jì)算機(jī))的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),以及通常可以包括以上相對(duì)于計(jì)算機(jī)系統(tǒng)100描述的元件中的所有或許多元件。當(dāng)在LAN或WAN組網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)系統(tǒng)100可以通過(guò)網(wǎng)絡(luò)接口卡114連接到LAN或WAN??梢栽趦?nèi)部或外界的NIC 114可以連接到系統(tǒng)總線。在聯(lián)網(wǎng)環(huán)境中,可以把相對(duì)于計(jì)算機(jī)系統(tǒng)100描繪的程序模塊、或者其部分存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)裝置中。 將會(huì)明白此處描述的網(wǎng)絡(luò)連接是示范性的,可以使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。再者,雖然構(gòu)想到本公開(kāi)的大量實(shí)施例特別良好地適合計(jì)算機(jī)化系統(tǒng),但本文件中沒(méi)有內(nèi)容意在把本公開(kāi)限制為這種實(shí)施例。遠(yuǎn)程桌面系統(tǒng)是維持可由客戶端計(jì)算機(jī)系統(tǒng)遠(yuǎn)程執(zhí)行的應(yīng)用的計(jì)算機(jī)系統(tǒng)。在客戶端計(jì)算機(jī)系統(tǒng)處錄入輸入以及在網(wǎng)絡(luò)上(例如,使用諸如遠(yuǎn)程桌面協(xié)議(RDP)的基于國(guó)際電信聯(lián)盟(ITU)T. 120協(xié)議族的協(xié)議)向終端服務(wù)器上的應(yīng)用傳送輸入。所述應(yīng)用仿佛在終端服務(wù)器處錄入輸入一樣處理輸入。所述應(yīng)用響應(yīng)于接收的輸入生成輸出,在網(wǎng)絡(luò)上把輸出傳送給客戶端計(jì)算機(jī)系統(tǒng)??蛻舳擞?jì)算機(jī)系統(tǒng)呈現(xiàn)輸出數(shù)據(jù)。因而,接收輸入,在客戶端計(jì)算機(jī)系統(tǒng)處呈現(xiàn)輸出,而實(shí)際上處理發(fā)生在終端服務(wù)器處。會(huì)話可以包括諸如桌面的用戶界面和shell、跟蹤桌面內(nèi)鼠標(biāo)移動(dòng)的子系統(tǒng)、把圖標(biāo)上的鼠標(biāo)點(diǎn)擊轉(zhuǎn)譯成使程序?qū)嵗龑?shí)現(xiàn)的命令的子系統(tǒng)等。在另一實(shí)例實(shí)施例中會(huì)話可以包括應(yīng)用。在此實(shí)例中在實(shí)施應(yīng)用時(shí),仍可以生成桌面環(huán)境以及向用戶隱藏桌面環(huán)境。應(yīng)當(dāng)理解以上討論是示范性的,目前公開(kāi)的主題可以在各種客戶端/服務(wù)器環(huán)境中實(shí)施以及不限于特定終端業(yè)務(wù)產(chǎn)品。在如果并非所有也是大多數(shù)遠(yuǎn)程桌面環(huán)境中,輸入數(shù)據(jù)(在客戶端計(jì)算機(jī)系統(tǒng)處錄入)通常包括表示去往應(yīng)用的命令的鼠標(biāo)和鍵盤(pán)數(shù)據(jù),輸出數(shù)據(jù)(在終端服務(wù)器處由應(yīng)用生成)通常包括用于視頻輸出裝置上顯示的視頻數(shù)據(jù)。許多遠(yuǎn)程桌面環(huán)境還包括擴(kuò)展為傳送其它類型數(shù)據(jù)的功能。可以通過(guò)允許插件在RDP連接上傳送數(shù)據(jù)使用通信通道擴(kuò)展RDP協(xié)議。存在許多這種擴(kuò)展。諸如打印機(jī)重定向、剪貼板重定向、端口重定向等的特征使用通信通道技術(shù)。因而,除了輸入和輸出數(shù)據(jù)之外,還會(huì)存在需要傳送數(shù)據(jù)的許多通信通道。相應(yīng)地,會(huì)存在用以傳送輸出數(shù)據(jù)的偶然請(qǐng)求以及用以傳送爭(zhēng)奪可用網(wǎng)絡(luò)帶寬的其它數(shù)據(jù)的一個(gè)或更多個(gè)通道請(qǐng)求。轉(zhuǎn)到圖3,示例的是可以用來(lái)生成虛擬機(jī)的示范性虛擬機(jī)服務(wù)器。在此實(shí)施例中, 可以把管理程序微內(nèi)核302配置成控制和調(diào)節(jié)對(duì)計(jì)算機(jī)系統(tǒng)300硬件的訪問(wèn)。管理程序微內(nèi)核302可以把一個(gè)分區(qū)中的進(jìn)程隔離以免訪問(wèn)另一分區(qū)的資源。例如,管理程序微內(nèi)核 302可以生成稱作諸如子分區(qū)1至子分區(qū)N (其中,N是大于1的整數(shù))的分區(qū)的執(zhí)行環(huán)境。 在該實(shí)施例中,子分區(qū)是管理程序微內(nèi)核302支持的基本的分隔單位。可以把每個(gè)子分區(qū)映射到管理程序微內(nèi)核302控制下的一套硬件資源,例如,存儲(chǔ)器、裝置、邏輯處理器周期等。在實(shí)施例中管理程序微內(nèi)核302可以是單機(jī)軟件產(chǎn)品、操作系統(tǒng)的一部分、主板的固件內(nèi)的內(nèi)置、專用集成電路、或者其組合。管理程序微內(nèi)核302可以通過(guò)約束物理計(jì)算機(jī)系統(tǒng)中存儲(chǔ)器的訪客操作系統(tǒng)視圖強(qiáng)制分區(qū)。當(dāng)管理程序微內(nèi)核302把虛擬機(jī)實(shí)例化時(shí),它可以把系統(tǒng)物理存儲(chǔ)器(SPM)的頁(yè)面(例如,具有開(kāi)始和結(jié)束地址的存儲(chǔ)器的固定長(zhǎng)度塊)分配給虛擬機(jī)作為訪客物理存儲(chǔ)器(GPM)。在此實(shí)施例中,管理程序微內(nèi)核302控制系統(tǒng)存儲(chǔ)器的訪客的約束視圖。術(shù)語(yǔ)訪客物理存儲(chǔ)器是從虛擬機(jī)的角度描述存儲(chǔ)器頁(yè)面的簡(jiǎn)潔方式,術(shù)語(yǔ)系統(tǒng)物理存儲(chǔ)器是從物理系統(tǒng)的角度描述存儲(chǔ)器頁(yè)面的簡(jiǎn)潔方式。因而,分配給虛擬機(jī)的存儲(chǔ)器頁(yè)面將會(huì)具有訪客物理地址(虛擬機(jī)使用的地址)和系統(tǒng)物理地址(頁(yè)面的實(shí)際地址)。訪客操作系統(tǒng)可以把訪客物理存儲(chǔ)器虛擬化。虛擬存儲(chǔ)器是允許操作系統(tǒng)過(guò)量使用存儲(chǔ)器以及向臨近工作存儲(chǔ)器給出應(yīng)用唯一訪問(wèn)的管理技術(shù)。在虛擬化的環(huán)境中,訪客操作系統(tǒng)可以使用一個(gè)或更多個(gè)頁(yè)面表格把已知為虛擬訪客地址的虛擬地址轉(zhuǎn)譯成訪客物理地址。在此實(shí)例中,存儲(chǔ)器地址可以具有訪客虛擬地址、訪客物理地址、以及系統(tǒng)物理地址。在描繪的實(shí)例中,也可以認(rèn)為與Xen開(kāi)源管理程序的域0類似的父分區(qū)組件可以包括主機(jī)304。主機(jī)304可以是操作系統(tǒng)(或一套配置工具),可以把主機(jī)304配置成通過(guò)使用虛擬化業(yè)務(wù)提供器328 (VSP)向在子分區(qū)1 一 N中執(zhí)行的訪客操作系統(tǒng)提供資源??梢允褂迷陂_(kāi)源團(tuán)體中通常稱作后端驅(qū)動(dòng)器的VPS 3 通過(guò)虛擬化業(yè)務(wù)客戶端(VSC)(在開(kāi)源團(tuán)體或半虛擬化裝置中通常稱作前端驅(qū)動(dòng)器)把接口復(fù)用到硬件資源。如圖所示,虛擬化業(yè)務(wù)客戶端在訪客操作系統(tǒng)的環(huán)境內(nèi)執(zhí)行。然而,這些驅(qū)動(dòng)器與訪客中剩余驅(qū)動(dòng)器的不同之處在于可以通過(guò)管理程序而非訪客提供它們。在示范性實(shí)施例中可以認(rèn)為虛擬化業(yè)務(wù)提供器3 用來(lái)與虛擬化業(yè)務(wù)客戶端316和318通信的路徑是虛擬化路徑。如圖所示,可以把仿真器334 (例如,虛擬化IDE裝置、虛擬化視頻適配器、虛擬化 NIC等)配置成在主機(jī)304內(nèi)運(yùn)行以及附接到訪客操作系統(tǒng)330和322可用的資源。例如, 當(dāng)訪客OS觸及映射到裝置的寄存器所處之處的存儲(chǔ)器位置或者映射到裝置的存儲(chǔ)器時(shí), 管理程序微內(nèi)核302可以攔截請(qǐng)求以及傳遞訪客試圖向相關(guān)聯(lián)的仿真器寫(xiě)入的值??梢哉J(rèn)為此實(shí)例中的資源是虛擬裝置所位之處??梢园岩源朔绞綄?duì)仿真器的使用看作仿真路徑。 仿真路徑相比于虛擬化的路徑而言效率低下,因?yàn)檩^之在VSP與VSC之間傳遞消息而言,仿真路徑需要較多CPU資源來(lái)仿真裝置。例如,可以把向?yàn)榱私?jīng)由仿真路徑向盤(pán)寫(xiě)入值需要的寄存器映射的存儲(chǔ)器上的上百個(gè)動(dòng)作減少為虛擬化路徑中從VSC向VSP傳遞的單個(gè)消肩、ο每個(gè)子分區(qū)可以包括一個(gè)或更多個(gè)虛擬處理器(320和322),該訪客操作系統(tǒng) (320和322)可以管理和調(diào)度線程以在其上執(zhí)行。通常,虛擬處理器是為物理處理器的表示提供具體架構(gòu)的相關(guān)聯(lián)狀態(tài)信息和可執(zhí)行指令。例如,一個(gè)虛擬機(jī)的虛擬處理器可以具有htel x86處理器的特性,然而另一虛擬處理器可以具有PowerPC處理器的特性??梢园汛藢?shí)例中的虛擬處理器映射到計(jì)算機(jī)系統(tǒng)的邏輯處理器以使得邏輯處理器將會(huì)支持使虛擬處理器實(shí)現(xiàn)的指令。因而,在包括多個(gè)邏輯處理器的實(shí)施例中,邏輯處理器可以同時(shí)執(zhí)行虛擬處理器而例如其它邏輯處理器執(zhí)行管理程序指令??梢园逊謪^(qū)中存儲(chǔ)器和虛擬處理器的組合看作虛擬機(jī)。訪客操作系統(tǒng)(320和322)可以是諸如例如來(lái)自Microsoft 、Apple 、開(kāi)源團(tuán)體等的操作系統(tǒng)的任何操作系統(tǒng)。訪客操作系統(tǒng)可以包括操作的用戶/內(nèi)核模式以及可以具有可以包括調(diào)度器、存儲(chǔ)器管理器等的內(nèi)核。通常來(lái)說(shuō),內(nèi)核模式可以包括至少對(duì)特權(quán)處理器指令準(zhǔn)予訪問(wèn)的邏輯處理器中的執(zhí)行模式。每個(gè)訪客操作系統(tǒng)可以具有相關(guān)聯(lián)的文件系統(tǒng)(其上可以存儲(chǔ)有諸如終端服務(wù)器、電子商務(wù)服務(wù)器、電子郵件服務(wù)器等的應(yīng)用)以及訪客操作系統(tǒng)本身。訪客操作系統(tǒng)可以調(diào)度線程以在虛擬處理器上執(zhí)行,以及可以使這種應(yīng)用的實(shí)例實(shí)現(xiàn)?,F(xiàn)在轉(zhuǎn)到圖4,示例的是基于替選架構(gòu)的虛擬機(jī)服務(wù)器。圖4描繪了圖3組件的類似組件;然而,在此實(shí)例實(shí)施例中管理程序402可以包括與圖3的主機(jī)304中的組件(諸如虛擬化業(yè)務(wù)提供器3 和裝置驅(qū)動(dòng)器324)類似的組件以及微內(nèi)核組件,而管理操作系統(tǒng) 404可以包含例如用來(lái)配置管理程序402的配置工具。在此架構(gòu)中,管理程序402可以執(zhí)行與圖3管理程序微內(nèi)核302同樣或類似功能;然而,在此架構(gòu)中可以把管理程序404配置成向子分區(qū)中執(zhí)行的訪客操作系統(tǒng)提供資源。圖4的管理程序402可以是單機(jī)軟件產(chǎn)品、操作系統(tǒng)的一部分、主板的固件內(nèi)的內(nèi)置或者可以通過(guò)專用集成電路使管理程序402的一部分實(shí)現(xiàn)?,F(xiàn)在轉(zhuǎn)到圖5,示例的是虛擬桌面服務(wù)器500的高級(jí)別方框圖。在實(shí)施例中,可以把虛擬桌面服務(wù)器500配置成向客戶端(例如,諸如智能電話的移動(dòng)裝置、組件與圖1中示例的組件類似的計(jì)算機(jī)系統(tǒng)等)部署虛擬桌面會(huì)話(VDS)。簡(jiǎn)言之,虛擬桌面技術(shù)允許用戶與虛擬機(jī)上運(yùn)行的訪客操作系統(tǒng)遠(yuǎn)程交互。不同于遠(yuǎn)程桌面會(huì)話,在虛擬桌面會(huì)話中只有一個(gè)用戶登錄到訪客操作系統(tǒng)中以及可以具有它的全部控制,例如,用戶可以作為管理員運(yùn)行以及可以具有對(duì)訪客的完全權(quán)限。在示例的實(shí)例中,虛擬桌面服務(wù)器500的組件可以與圖3或圖4的計(jì)算機(jī)系統(tǒng)300或400類似。在示例的實(shí)例中,虛擬化平臺(tái)502是以上在圖3和圖4中描述的虛擬化基礎(chǔ)設(shè)施組件的邏輯抽象??梢栽趫D3或圖4描繪的元件中的一個(gè)或更多個(gè)元件中實(shí)施以下章節(jié)中作為在虛擬化平臺(tái)502 “內(nèi)”描述的功能。例如,可以在圖3的主機(jī)304中實(shí)施虛擬桌面管理器530。更具體地,可以在父分區(qū)中運(yùn)行的主機(jī)操作系統(tǒng)中實(shí)施虛擬桌面管理器530。開(kāi)始虛擬桌面會(huì)話需要虛擬機(jī)內(nèi)訪客操作系統(tǒng)的實(shí)例化。在示范性實(shí)施例中,虛擬桌面管理器530 (例如,處理器可執(zhí)行指令的模塊)可以響應(yīng)于請(qǐng)求啟動(dòng)虛擬機(jī)514 (連同訪客操作系統(tǒng)5 —起)。虛擬桌面管理器530可以在邏輯處理器上執(zhí)行以及指示虛擬化平臺(tái)502 (例如,微內(nèi)核管理程序202)分配分區(qū)的存儲(chǔ)器。虛擬化平臺(tái)502可以在虛擬機(jī) 514內(nèi)執(zhí)行和設(shè)立虛擬裝置以及把引導(dǎo)加載器程序加載到虛擬機(jī)存儲(chǔ)器中。引導(dǎo)加載器程序可以在虛擬處理器上執(zhí)行以及加載訪客操作系統(tǒng)528。例如,可以加載會(huì)話管理器508, 其可以把諸如可以包括諸如操作系統(tǒng)核510的內(nèi)核模式部分的運(yùn)行時(shí)子系統(tǒng)5 的環(huán)境子系統(tǒng)實(shí)例化。例如,可以把實(shí)施例中的環(huán)境子系統(tǒng)配置成向應(yīng)用程序顯現(xiàn)業(yè)務(wù)的子集以及提供對(duì)內(nèi)核520的訪問(wèn)點(diǎn)。當(dāng)加載訪客操作系統(tǒng)528時(shí),引導(dǎo)加載器程序可以退出以及把虛擬機(jī)的控制轉(zhuǎn)交訪客操作系統(tǒng)528。訪客操作系統(tǒng)5 可以執(zhí)行圖5中示例的各種模塊以及把它自身配置成容納(host)虛擬桌面會(huì)話。例如,訪客操作系統(tǒng)5 可以包括使得遠(yuǎn)程呈現(xiàn)引擎506和/或配置業(yè)務(wù)534在引導(dǎo)后開(kāi)始的注冊(cè)值。虛擬桌面會(huì)話可以在訪客操作系統(tǒng)5 從客戶端在網(wǎng)絡(luò)上接收連接請(qǐng)求時(shí)開(kāi)始。 遠(yuǎn)程呈現(xiàn)引擎506可以首先處理連接請(qǐng)求??梢园堰h(yuǎn)程呈現(xiàn)引擎506配置成偵聽(tīng)連接消息以及把它們轉(zhuǎn)發(fā)給會(huì)話管理器508。如圖3所示例的,當(dāng)生成會(huì)話時(shí)遠(yuǎn)程呈現(xiàn)引擎506可以運(yùn)行會(huì)話的協(xié)議棧實(shí)例。通常,可以把協(xié)議棧實(shí)例配置成把用戶接口輸出發(fā)給相關(guān)聯(lián)的客戶端以及把從相關(guān)聯(lián)的客戶端接收的用戶輸入發(fā)給操作系統(tǒng)核510。簡(jiǎn)言之,可以把操作系統(tǒng)核510配置成管理屏幕輸出;采集來(lái)自鍵盤(pán)、鼠標(biāo)、以及其它裝置的輸入。可以通過(guò)遠(yuǎn)程呈現(xiàn)引擎506接收用戶證書(shū),例如,用戶名/密碼組合以及將其向會(huì)話管理器508傳遞。會(huì)話管理器508可以把證書(shū)傳遞給登錄過(guò)程,該過(guò)程可以把證書(shū)發(fā)給認(rèn)證引擎524以便驗(yàn)證。認(rèn)證引擎5 可以生成系統(tǒng)令牌,該令牌可以在無(wú)論何時(shí)用戶試圖執(zhí)行進(jìn)程時(shí)使用以確定用戶是否具有用以運(yùn)行進(jìn)程或線程的安全證書(shū)。例如,當(dāng)進(jìn)程或線程試圖獲得訪問(wèn)(例如,開(kāi)啟、關(guān)閉、刪除、和/或修改對(duì)象(例如,文件、設(shè)置、或者應(yīng)用)) 時(shí),安全子系統(tǒng)522可以認(rèn)證線程或進(jìn)程。安全子系統(tǒng)522可以針對(duì)與對(duì)象相關(guān)聯(lián)的訪問(wèn)控制列表檢查系統(tǒng)令牌以及基于訪問(wèn)控制列表和系統(tǒng)令牌中信息的比較確定線程是否獲得準(zhǔn)許。如果安全子系統(tǒng)522確定線程被授權(quán)則可以允許線程訪問(wèn)對(duì)象。繼續(xù)圖5的描述,在實(shí)施例中操作系統(tǒng)核510可以包括圖形顯示接口 516 (⑶I) 和輸入子系統(tǒng)512。可以把實(shí)例實(shí)施例中的輸入子系統(tǒng)512配置成經(jīng)由虛擬桌面會(huì)話的協(xié)議棧實(shí)例接收來(lái)自客戶端的用戶輸入以及把輸入發(fā)送給操作系統(tǒng)核510。用戶輸入可以在一些實(shí)施例中包括表明絕對(duì)和/或相對(duì)鼠標(biāo)移動(dòng)命令、鼠標(biāo)坐標(biāo)、鼠標(biāo)點(diǎn)擊、鍵盤(pán)信號(hào)、操縱桿移動(dòng)信號(hào)等的信號(hào)。操作系統(tǒng)核510可以接收用戶輸入,例如,圖標(biāo)上的鼠標(biāo)雙擊,可以把輸入子系統(tǒng)512配置成確定圖標(biāo)位于與雙擊相關(guān)聯(lián)的坐標(biāo)處??梢噪S后把輸入子系統(tǒng) 512配置成向可以執(zhí)行與圖標(biāo)相關(guān)聯(lián)的應(yīng)用進(jìn)程的運(yùn)行時(shí)子系統(tǒng)5 發(fā)送通知。
可以通過(guò)⑶I 516處理以及從應(yīng)用和/或桌面接收繪制命令。⑶I 516通常可包括可以生成圖形對(duì)象繪制命令的進(jìn)程。可以把此實(shí)例實(shí)施例中的GDI 516配置成把命令傳遞給可以把會(huì)話的顯示驅(qū)動(dòng)器實(shí)例化的遠(yuǎn)程顯示子系統(tǒng)518。在實(shí)例實(shí)施例中可以把遠(yuǎn)程顯示子系統(tǒng)518配置成包括可以被配置成接收繪制命令以及把它們發(fā)送給客戶端的虛擬顯示驅(qū)動(dòng)器。圖5中還示出的是配置業(yè)務(wù)534。在示范性實(shí)施例中,可以使用配置業(yè)務(wù)534設(shè)立訪客操作系統(tǒng)528以在客戶端連接以前進(jìn)行虛擬桌面會(huì)話。例如,配置業(yè)務(wù)534可以在訪客操作系統(tǒng)5 引導(dǎo)時(shí)執(zhí)行以及在訪客操作系統(tǒng)528內(nèi)運(yùn)行。由于某些配置設(shè)置需要管理特權(quán),所以可以把配置業(yè)務(wù)534配置成作為具有系統(tǒng)廣泛特權(quán)的進(jìn)程運(yùn)行。配置業(yè)務(wù)534 可以采取的示范性動(dòng)作中的一些示范性動(dòng)作包括但不限于如下動(dòng)作把用戶的賬戶標(biāo)識(shí)添加到訪客操作系統(tǒng)528的管理用戶列表、把賬戶標(biāo)識(shí)添加到授權(quán)虛擬桌面用戶列表、設(shè)置注冊(cè)值、開(kāi)啟訪客操作系統(tǒng)防火墻、以及開(kāi)啟遠(yuǎn)程呈現(xiàn)引擎506偵聽(tīng)連接的端口。在以下段落中更詳細(xì)地描述配置業(yè)務(wù)534。在示范性實(shí)施例中,可以在虛擬化平臺(tái)502與訪客操作系統(tǒng)5 之間建立通信通道以配置和控制訪客操作系統(tǒng)528。由于遠(yuǎn)程用戶可以具有虛擬機(jī)514的完整控制,所以安全需要到位以確保用來(lái)配置和控制訪客操作系統(tǒng)528的任何通道不會(huì)也被用來(lái)攻擊虛擬化平臺(tái)502或者連接到內(nèi)部網(wǎng)絡(luò)的其它計(jì)算機(jī)系統(tǒng)。傳統(tǒng)上,使用聯(lián)網(wǎng)通信通道設(shè)立和控制訪客操作系統(tǒng)528。然而,當(dāng)訪客操作系統(tǒng)5 并非與虛擬化平臺(tái)502在同樣網(wǎng)絡(luò)域中以及把虛擬化平臺(tái)502配置成拒絕來(lái)自域外部到來(lái)的連接請(qǐng)求時(shí)難以部署網(wǎng)絡(luò)通道。在示范性實(shí)施例中,可以使用分區(qū)間通信通道504與配置服務(wù)器534通信以配置和/或管理虛擬桌面會(huì)話??梢园逊謪^(qū)間通信通道504配置成被虛擬機(jī)514隱含信任但不被虛擬化平臺(tái)502信任。在此實(shí)例中,可以在不需要校驗(yàn)信息的情況下把信息(例如,數(shù)據(jù)和/或命令)輕松發(fā)給訪客操作系統(tǒng)528。另一方面,可以在虛擬化平臺(tái)502采取動(dòng)作之前校驗(yàn)和認(rèn)證從虛擬機(jī)514接收的數(shù)據(jù)。再者,因?yàn)榉謪^(qū)間通信通道504不使用組網(wǎng),所以可以使訪客操作系統(tǒng)5 不接近內(nèi)部網(wǎng)絡(luò)。因?yàn)橹挥刑摂M化平臺(tái)502可以創(chuàng)建分區(qū)間通信通道504,所以虛擬機(jī)514可以隱含信任分區(qū)間通信通道504,S卩,固有地認(rèn)證/檢驗(yàn)經(jīng)由該通道接收的信息。例如,在實(shí)施例中可以至少部分地作為虛擬機(jī)514與虛擬化平臺(tái)502之間共享的存儲(chǔ)器的區(qū)域?qū)嵤┓謪^(qū)間通信通道504。虛擬化平臺(tái)502可以使得在可以用作虛擬化平臺(tái)502與虛擬機(jī)514之間全雙工通信通道的共享存儲(chǔ)器的區(qū)域中創(chuàng)建表明環(huán)形緩沖區(qū)等的數(shù)據(jù)結(jié)構(gòu)。在示范性實(shí)施例中,分區(qū)間通信通道可以包括題為“Partition bus”的美國(guó)專利No. 7,689,800中描述的特征,其內(nèi)容整體經(jīng)引用并入本文。虛擬化平臺(tái)502可以向分區(qū)間通信通道504寫(xiě)入虛擬機(jī)514可以讀取的信息。在示范性實(shí)施例中,分區(qū)間通信通道504可以是基于消息的。即,可以把虛擬化平臺(tái)502和虛擬機(jī)514配置成向分區(qū)間通信通道504寫(xiě)入數(shù)據(jù)的分組。在同樣的、或者另一示范性實(shí)施例中,分區(qū)間通信通道504可以是事件驅(qū)動(dòng)的。在此配置中,當(dāng)向通道寫(xiě)入信息時(shí),例如圖 3的管理程序302可以指示接收器從分區(qū)間通信通道504讀取信息?,F(xiàn)在轉(zhuǎn)到圖6,示例的是包括虛擬桌面服務(wù)器500、虛擬桌面服務(wù)器602、許可服務(wù)器604、代理(broker)服務(wù)器608、網(wǎng)關(guān)612、以及客戶端614的數(shù)據(jù)中心的高層框圖??梢园褦?shù)據(jù)中心配置成向客戶端部署虛擬桌面會(huì)話。在示例的實(shí)例中,虛擬化平臺(tái)502、虛擬桌面服務(wù)器602、許可服務(wù)器604、代理服務(wù)器608、以及網(wǎng)關(guān)612可以是內(nèi)聯(lián)網(wǎng)的一部分,用來(lái)登錄到這些計(jì)算機(jī)中的用戶證書(shū)可以是同樣域(即,基礎(chǔ)設(shè)施域520)的構(gòu)件。以把虛擬桌面服務(wù)器500切成兩半的虛線示出基礎(chǔ)設(shè)施域520以示例在示范性實(shí)施例中,虛擬機(jī)514 可以是不同域的一部分或者沒(méi)有域的一部分。數(shù)據(jù)中心可以包括將多個(gè)虛擬桌面服務(wù)器(602和500)(其可以包括與圖3或4 示例的組件類似的組件)耦合到代理服務(wù)器608和許可服務(wù)器604的內(nèi)部網(wǎng)絡(luò)。如本領(lǐng)域技術(shù)人員可以明白的,雖然示出兩個(gè)虛擬桌面服務(wù)器但數(shù)據(jù)中心可以具有更多個(gè)。另外,雖然示例的虛擬桌面服務(wù)器500運(yùn)行一個(gè)虛擬機(jī)(514),但每個(gè)虛擬桌面服務(wù)器可以同時(shí)容納許多虛擬機(jī)?;蛘邠Q句話說(shuō),數(shù)據(jù)中心可以具有M (其中,M是大于1的整數(shù))個(gè)虛擬桌面服務(wù)器,M個(gè)虛擬化主機(jī)中的每個(gè)虛擬化主機(jī)可以容納N (其中,N是大于1的整數(shù))個(gè)虛擬機(jī)。代理服務(wù)器608可以作為去往客戶端614的內(nèi)聯(lián)網(wǎng)的接口。簡(jiǎn)言之,代理服務(wù)器 608可以包括與針對(duì)圖2描述的組件類似的組件。代理服務(wù)器608可以具有把它對(duì)接到公共網(wǎng)絡(luò)(如,互聯(lián)網(wǎng))的網(wǎng)絡(luò)適配器以及把它對(duì)接到內(nèi)部網(wǎng)絡(luò)(即,內(nèi)聯(lián)網(wǎng))的另一網(wǎng)絡(luò)適配器。在此實(shí)例中,代理服務(wù)器608可以作為內(nèi)部網(wǎng)絡(luò)的網(wǎng)關(guān),從而允許使虛擬桌面服務(wù)器和許可服務(wù)器604不接近公共網(wǎng)絡(luò)。當(dāng)客戶端614的用戶想要虛擬桌面會(huì)話時(shí),他或她可以點(diǎn)擊圖標(biāo),客戶端614可以向代理服務(wù)器608發(fā)送信息的一個(gè)或更多個(gè)分組。代理服務(wù)器608可以包括在執(zhí)行后使得邏輯處理器選擇合適虛擬化主機(jī)以把虛擬機(jī)實(shí)例化從而容納虛擬桌面會(huì)話的軟件指令模塊??梢圆杉脩糇C書(shū),例如,用戶名和密碼組合,代理服務(wù)器608可以檢查會(huì)話數(shù)據(jù)庫(kù) 610以確定數(shù)據(jù)中心是否包括與諸如用戶名/密碼組合的用戶證書(shū)相關(guān)聯(lián)的任何斷開(kāi)的虛擬桌面會(huì)話。如果會(huì)話數(shù)據(jù)庫(kù)610包括與用戶證書(shū)相關(guān)聯(lián)的斷開(kāi)的虛擬桌面會(huì)話,則代理服務(wù)器608可以向具有斷開(kāi)會(huì)話的虛擬化主機(jī)發(fā)送信號(hào)以及指示它執(zhí)行虛擬機(jī)。如果會(huì)話數(shù)據(jù)庫(kù)610沒(méi)有表明用戶的斷開(kāi)會(huì)話的信息,則代理服務(wù)器608可以選擇合適虛擬桌面服務(wù)器,例如,具有對(duì)把虛擬機(jī)實(shí)例化以容納虛擬桌面會(huì)話可用的資源的虛擬桌面服務(wù)器。虛擬化平臺(tái)502可以把虛擬機(jī)514實(shí)例化以及在虛擬處理器上執(zhí)行訪客操作系統(tǒng) 528?;厝⒄?qǐng)D5,訪客操作系統(tǒng)5 可以運(yùn)行遠(yuǎn)程呈現(xiàn)引擎506 ;向代理服務(wù)器608返回虛擬NIC 616的互聯(lián)網(wǎng)協(xié)議(IP)地址;以及等待來(lái)自客戶端614的連接。代理服務(wù)器608 可以在使得客戶端614的邏輯處理器把客戶端重定向到IP地址虛擬機(jī)514的信息的分組中、把虛擬NIC 616的IP地址返回給客戶端614。網(wǎng)關(guān)612可以接收連接請(qǐng)求以及把它轉(zhuǎn)發(fā)給虛擬NIC 616。在至少一個(gè)示范性實(shí)施例中,可以把會(huì)話管理器508配置成檢查以查看客戶端 614是否在開(kāi)始虛擬桌面會(huì)話之前與有效許可證相關(guān)聯(lián)。遠(yuǎn)程呈現(xiàn)引擎506可以從客戶端 614接收許可證(或者與許可證相關(guān)聯(lián)的信息)以及把信息發(fā)送給虛擬化平臺(tái)502,該平臺(tái)可以把許可證(或者與許可證相關(guān)聯(lián)的信息)發(fā)送給許可服務(wù)器604。許可服務(wù)器604可以包括許可證檢驗(yàn)引擎606,其可以被配置成確定與客戶端614相關(guān)聯(lián)的許可證是否有效的。 如果許可證有效,許可證檢驗(yàn)引擎606可以向虛擬桌面服務(wù)器500發(fā)送回信號(hào),可以開(kāi)始虛擬桌面會(huì)話。在這一點(diǎn)上,遠(yuǎn)程呈現(xiàn)引擎506可以使表明訪客操作系統(tǒng)528的圖形用戶界面的一個(gè)或更多個(gè)信息分組流向客戶端614以及從客戶端614接收表明用戶輸入的一個(gè)或更多個(gè)信息分組。在示范性實(shí)施例中,當(dāng)虛擬化平臺(tái)502接收用以把虛擬機(jī)實(shí)例化的來(lái)自代理服務(wù)器608的請(qǐng)求時(shí),虛擬桌面管理器530可以執(zhí)行以及經(jīng)由分區(qū)間通信通道504向虛擬機(jī)514 發(fā)送命令和/或信息以使得把訪客操作系統(tǒng)5 配置成進(jìn)行虛擬桌面會(huì)話。配置業(yè)務(wù)534 可以接收命令和/或信息以及相應(yīng)地配置訪客操作系統(tǒng)528。例如,虛擬桌面管理器530可以發(fā)送試圖連接的用戶的身份、保護(hù)訪客操作系統(tǒng)528的防火墻的期望設(shè)置、注冊(cè)值、允許用戶操作的應(yīng)用列表、用以使得能夠進(jìn)行虛擬桌面會(huì)話以及把用戶的身份添加到授權(quán)虛擬桌面用戶列表的命令等。配置業(yè)務(wù)534可以在虛擬處理器上執(zhí)行以及改變適當(dāng)設(shè)置。一旦虛擬桌面會(huì)話運(yùn)行,虛擬桌面管理器530就可以經(jīng)由分區(qū)間通信通道504管理運(yùn)行的虛擬桌面會(huì)話。例如,虛擬桌面管理器530可以向虛擬機(jī)514發(fā)出命令,如,使得訪客操作系統(tǒng)5 關(guān)斷、斷開(kāi)用戶、重置訪客操作系統(tǒng)5 等的命令。在同樣的、或者另一實(shí)施例中,虛擬桌面管理器530可以管理虛擬機(jī)514的虛擬桌面會(huì)話接收狀態(tài)信息、來(lái)自遠(yuǎn)程呈現(xiàn)引擎506的狀態(tài)信息,和/或把用以控制虛擬桌面會(huì)話的命令發(fā)送給配置業(yè)務(wù)534。 例如,虛擬桌面管理器530可以接收表明虛擬機(jī)514是否在運(yùn)行、暫停、準(zhǔn)備好、在引導(dǎo)的虛擬機(jī)514的狀態(tài)信息,以及可以發(fā)送給客戶端的IP地址列表。另外,虛擬桌面管理器530 可以接收諸如針對(duì)虛擬桌面會(huì)話進(jìn)行登錄的用戶身份的訪客操作系統(tǒng)528的狀態(tài)信息,以及把此信息中的所有或一些信息發(fā)信給代理服務(wù)器608。圖7描繪了客戶端的工作區(qū)包括與多個(gè)服務(wù)器的遠(yuǎn)程會(huì)話的實(shí)例系統(tǒng)。圖7中描繪的計(jì)算機(jī)可以與圖1中描繪的計(jì)算機(jī)類似。在圖7中,客戶端702與部署700通信,該部署700包括認(rèn)證服務(wù)器704、連接代理708、網(wǎng)關(guān)708、遠(yuǎn)程應(yīng)用服務(wù)器群 714 (繼而包括兩個(gè)同質(zhì)配置的服務(wù)器、遠(yuǎn)程應(yīng)用服務(wù)器716a — b)、以及VM服務(wù)器群710 (繼而包括兩個(gè)同質(zhì)配置的VM,VM 712a 一 b)。客戶端702的工作區(qū)包括遠(yuǎn)程應(yīng)用服務(wù)器716和VM 712中的一個(gè)或更多個(gè)服務(wù)的多個(gè)遠(yuǎn)程資源。客戶端702可以通過(guò)認(rèn)證服務(wù)器704登錄到它的工作區(qū)中。一旦認(rèn)證, 就把客戶端連接到它的工作區(qū)的請(qǐng)求從認(rèn)證服務(wù)器704傳輸給連接代理706。把連接代理 706配置成代理將會(huì)通過(guò)客戶端702服務(wù)遠(yuǎn)程資源的VM 712和應(yīng)用服務(wù)器716和客戶端 702之間的連接、以及為了使此實(shí)現(xiàn),把連接代理706配置成與應(yīng)用服務(wù)器716和VM 712通信以確定它們當(dāng)前服務(wù)什么資源(包括客戶端702用戶的斷開(kāi)的遠(yuǎn)程資源)??蛻舳?02可以具有包括多個(gè)遠(yuǎn)程資源的工作區(qū)——包括來(lái)自遠(yuǎn)程應(yīng)用服務(wù)器 716a的遠(yuǎn)程應(yīng)用的遠(yuǎn)程資源、以及包括來(lái)自VM 71 的VM的遠(yuǎn)程資源。如所描繪的,客戶端702沒(méi)有具有應(yīng)用服務(wù)器716b或VM 712b的遠(yuǎn)程資源。這些可以各自服務(wù)不同應(yīng)用或桌面、應(yīng)用的版本、或者其它置換。例如,遠(yuǎn)程應(yīng)用服務(wù)器716a可以是具有遠(yuǎn)程字處理器應(yīng)用的服務(wù)客戶端702,VM 712可以是具有遠(yuǎn)程桌面的服務(wù)客戶端702。如通過(guò)此描繪可以看出的,當(dāng)用戶希望重新連接回他或她的工作區(qū)時(shí),他會(huì)期望通過(guò)一個(gè)命令、而非通過(guò)執(zhí)行三次的一個(gè)命令重新連接到遠(yuǎn)程應(yīng)用服務(wù)器716a以及VM 712a的遠(yuǎn)程資源。用戶可以從客戶端702、或者從另一客戶端計(jì)算機(jī)(如,客戶端702是工作時(shí)的用戶計(jì)算機(jī),用戶希望在周末期間從家里的計(jì)算機(jī)重新連接)執(zhí)行此重新連接操作。圖8描繪了向工作區(qū)的遠(yuǎn)程資源重新連接的客戶端的實(shí)例通信流程的實(shí)例。
12
圖8描繪了系統(tǒng)中的實(shí)例通信流程,該系統(tǒng)中,客戶端重新連接包括與多個(gè)服務(wù)器的遠(yuǎn)程會(huì)話的工作區(qū)??梢栽谙到y(tǒng)⑶Π,圖7中描繪的計(jì)算機(jī)系統(tǒng))中使此通信流程實(shí)現(xiàn)。 即,圖8的遠(yuǎn)程部署800、客戶端802、認(rèn)證服務(wù)器804、連接代理806、網(wǎng)關(guān)808、VM群810和 VM 81 可以分別與圖7的遠(yuǎn)程部署200、客戶端202、認(rèn)證服務(wù)器204、連接代理206、網(wǎng)關(guān) 208、VM 群 210 和 VM 212a 類似??蛻舳?02的用戶先前已具有去往涉及從VM 81 訪問(wèn)遠(yuǎn)程資源的遠(yuǎn)程服務(wù)器群800的工作區(qū),現(xiàn)在斷開(kāi)此工作區(qū)。在客戶端802甚至試圖重新連接到部署800之前,認(rèn)證服務(wù)器804向客戶端802公布文檔(經(jīng)由通信(1))以識(shí)別客戶端802可以用來(lái)訪問(wèn)部署 800的遠(yuǎn)程資源的有關(guān)部署800的信息??蛻舳?02稍后通過(guò)向認(rèn)證服務(wù)器804發(fā)送通信 (2)重新連接。認(rèn)證服務(wù)器804檢驗(yàn)客戶端和/或用戶的證書(shū)(如,登錄和密碼)。在證書(shū)被檢驗(yàn)的情況下,認(rèn)證服務(wù)器804與連接代理806通信以確定客戶端802在重新連接它的工作區(qū)時(shí)要重新連接到哪些遠(yuǎn)程資源(此處,VM 812a)0認(rèn)證服務(wù)器804通過(guò)向連接代理806 發(fā)送通信(3)做出此確定,以及響應(yīng)地,在通信(4)中接收回用于使客戶端802重新連接到的服務(wù)器群(此處,VM群810)列表。認(rèn)證服務(wù)器804在通信(5)中把通信(4)中表明的此信息傳遞給客戶端802。當(dāng)客戶端802具有從認(rèn)證服務(wù)器804重新連接到的服務(wù)器的列表時(shí),客戶端802 與這些服務(wù)器群中的每個(gè)重新建立通信。如圖8中所描繪的,該服務(wù)器群是VM群810。客戶端802與網(wǎng)關(guān)808通信(6)以訪問(wèn)這些服務(wù)器群的遠(yuǎn)程資源。網(wǎng)關(guān)808處理通信(6), 以及繼而與連接代理806通信(7)以遞送類似信息。連接代理806從通信(7)取得服務(wù)器群的標(biāo)識(shí)以及根據(jù)標(biāo)識(shí)來(lái)識(shí)別具有該斷開(kāi)的遠(yuǎn)程資源的群810內(nèi)的機(jī)器(VM 812a)。連接代理806向VM 81 發(fā)送通信(8),以指示VM 81 把遠(yuǎn)程資源重新連接到客戶端802。VM 81 通過(guò)把表明與此同樣的通信(9)發(fā)送給網(wǎng)關(guān)808、其繼而把表明與此同樣的通信(10) 發(fā)送給客戶端802而與客戶端802重新連接。可以明白這是用以強(qiáng)調(diào)本發(fā)明的簡(jiǎn)化圖,可以存在和/或重新連接到更多或更少服務(wù)器群,可以更多地涉及傳遞的通信(例如,示出了通信(9)和(10)在VM 81 與客戶端 802之間建立重新連接,其中,這也可以涉及從客戶端802通過(guò)網(wǎng)關(guān)808和向VM 812a發(fā)送的通信)。用于實(shí)施上述虛擬機(jī)的這些變化中的所有變化僅僅是示范性實(shí)施,本文中沒(méi)有內(nèi)容應(yīng)當(dāng)解釋成把本公開(kāi)限制為任何特定虛擬化方面。繼承產(chǎn)品激活
軟件反盜版解決方案常常通過(guò)借由創(chuàng)建計(jì)算機(jī)的硬件ID或指紋把軟件許可證綁定到各計(jì)算機(jī)硬件進(jìn)行操作。由于把硬件虛擬化,所以虛擬化使得這些解決方案不可靠。指紋可以被編輯或復(fù)制,因而可以利用指紋拷貝或竊取軟件。例如,用來(lái)激活軟件應(yīng)用的硬件輪廓快照可以拷貝以及用來(lái)非法授權(quán)額外拷貝。此外,通常服務(wù)器虛擬化場(chǎng)景根據(jù)需要把虛擬機(jī)從一個(gè)主機(jī)移動(dòng)到另一個(gè)。這可以破解綁定到硬件指紋的軟件許可解決方案。在本文中公開(kāi)可以使用繼承激活機(jī)制開(kāi)啟從主機(jī)操作系統(tǒng)(OS)至訪客OS的安全通信路徑的方法和系統(tǒng)。通過(guò)此通道可以傳遞主機(jī)上軟件的許可證狀態(tài),訪客中安裝的軟件可以使用此信息通知它自身的產(chǎn)品激活過(guò)程。虛擬化(訪客)軟件可以隨后在符合主機(jī)的許可證需求時(shí)在沒(méi)有任何外部通信的情況下激活??梢允褂眠@種機(jī)制在虛擬化環(huán)境中的端點(diǎn)之間以信任方式交換激活信息。激活通??梢允侵富谫?gòu)買(mǎi)證明或者一些其它事件或動(dòng)作來(lái)改變軟件功能的技術(shù)。在實(shí)施例中,繼承激活機(jī)制可以開(kāi)啟從主機(jī)OS至一個(gè)或更多個(gè)虛擬機(jī)的安全通信路徑。可以通過(guò)此通道傳遞包括SKU、許可證狀態(tài)以及主機(jī)上安裝的軟件的其它數(shù)據(jù)的許可信息,訪客可以使用此數(shù)據(jù)通知它自身的產(chǎn)品激活過(guò)程。例如,當(dāng)安裝的許可證允許時(shí),訪客中安裝的OS可以在它接收到已激活主機(jī)OS的證明時(shí)在沒(méi)有任何外部通信或用戶交互的情況下激活。此外,通過(guò)繼承主機(jī)OS的激活狀態(tài),訪客OS在假設(shè)恰當(dāng)激活主機(jī)系統(tǒng)的情況下,即使在從主機(jī)向主機(jī)移動(dòng)時(shí)也可以仍然激活。這種繼承激活機(jī)制可以例如向主機(jī)提供者和云計(jì)算供應(yīng)商提供益處。通過(guò)繼承激活機(jī)制,物理主計(jì)算機(jī)可以使用產(chǎn)品激活的任何本地基礎(chǔ)設(shè)施或其它方法。這些主機(jī)上運(yùn)行的虛擬訪客可以繼承激活數(shù)據(jù),但是將不會(huì)需要對(duì)主機(jī)使用的激活基礎(chǔ)設(shè)施的訪問(wèn)或任何可見(jiàn)性。不需要共享諸如產(chǎn)品密鑰的敏感數(shù)據(jù),可以保護(hù)顧客資產(chǎn)。在一個(gè)實(shí)施例中,可以把主機(jī)OS配置成支持繼承激活機(jī)制。主機(jī)OS可以收集或維持任何知曉解決方案的軟件以及OS自身的許可證數(shù)據(jù)??梢酝ㄟ^(guò)主機(jī)OS確保此數(shù)據(jù)以及使得此數(shù)據(jù)經(jīng)由虛擬化引擎可用于運(yùn)行訪客環(huán)境??梢宰鳛閬?lái)自訪客的查詢以及來(lái)自主機(jī)的響應(yīng)實(shí)施此通信。然而,繼承激活機(jī)制不限于此通信模型。繼承激活機(jī)制也可以支持從主機(jī)向訪客推送(未請(qǐng)求)的許可證數(shù)據(jù),數(shù)據(jù)作為用于特設(shè)訪問(wèn)和其它通信模型的可讀表格或其它數(shù)據(jù)倉(cāng)庫(kù)而呈現(xiàn)。主機(jī)也可以使用繼承激活通信通道向虛擬機(jī)傳遞策略信息。繼承激活機(jī)制不限于在虛擬機(jī)中激活軟件應(yīng)用。通??梢允褂脵C(jī)制激活軟件應(yīng)用的虛擬實(shí)例而不論應(yīng)用是否在訪客虛擬機(jī)分區(qū)的環(huán)境中執(zhí)行。例如,網(wǎng)絡(luò)服務(wù)器可以容納應(yīng)用X的虛擬化會(huì)話。也可以在本地安裝以及恰當(dāng)激活應(yīng)用X。應(yīng)用X的虛擬化實(shí)例將會(huì)通過(guò)繼承主機(jī)上應(yīng)用X的許可證狀態(tài)而延續(xù)它們時(shí)仍然激活。雖然可以確保通信的數(shù)據(jù)值得信任,但繼承激活機(jī)制不需要特定檢驗(yàn)或加密方法。用于交換激活信息的通信路徑可以使用諸如PKI或單向哈希的安全方法,但是可以采用任何機(jī)制,只要激活信息對(duì)于軟件發(fā)布者的需要充分值得信任即可。在一些實(shí)施例中,通信路徑在應(yīng)用發(fā)布者不需要它的情況下不會(huì)采用安全機(jī)制。通信路徑的安全可以是基于應(yīng)用發(fā)布者和應(yīng)用的需要做出的設(shè)計(jì)決定。如上所述,虛擬化引擎是虛擬環(huán)境所運(yùn)行的主機(jī)OS上的軟件。在一個(gè)實(shí)施例中, 虛擬引擎可以提供主機(jī)OS與任何運(yùn)行的訪客環(huán)境之間通信的安全通道。在訪客環(huán)境中,可以把訪客OS配置成支持虛擬化引擎的繼承激活功能??梢园汛嗽L客OS配置成允許經(jīng)由虛擬化引擎,對(duì)去往支持繼承激活的任何軟件的激活信息的訪問(wèn)。這可以包括OS自身以及其它應(yīng)用。對(duì)于支持繼承激活的主機(jī)上的軟件,包括OS和其它應(yīng)用,可以采集特定于許可證的數(shù)據(jù)。軟件的發(fā)布者可以確定采集哪個(gè)數(shù)據(jù),如何存儲(chǔ)數(shù)據(jù)和使其安全,以及如何在訪客上評(píng)估和接收數(shù)據(jù)。可以采集的數(shù)據(jù)的實(shí)例可以包括 軟件標(biāo)識(shí)(模型或SKU ID、應(yīng)用ID等) 眷序列號(hào)
眷編輯標(biāo)簽 許可證狀態(tài)
諸如策略、約束、許可證等的來(lái)自主機(jī)許可證的值 可以采集來(lái)自啟用訪客的數(shù)據(jù),如, 〇安裝的軟件數(shù)據(jù)(SKU數(shù)據(jù)、許可證狀態(tài)等) 〇訪客的數(shù)量
庫(kù)存單位(SKU)是可以跟蹤的任何不同產(chǎn)品或業(yè)務(wù)的獨(dú)特標(biāo)識(shí)。在通常的軟件激活場(chǎng)景中,可以采集以及把信息與XrML許可證或其它信任文件中內(nèi)置的規(guī)則集合相比較。這些規(guī)則集合建立了證明軟件是否被恰當(dāng)許可的條件。傳統(tǒng)上, 這些條件可以包括但不限于產(chǎn)品密鑰、去往信任主機(jī)的連接、秘密信息的擁有、去往加密裝置的物理連接等。繼承激活機(jī)制可以通過(guò)引入如下需求而添加到這些規(guī)則的范圍系統(tǒng)在虛擬機(jī)(訪客)內(nèi)部運(yùn)行以及存在滿足許可需求的具體條件。當(dāng)符合這些條件時(shí),軟件可以激活。諸如軟件開(kāi)始、系統(tǒng)引導(dǎo)、登錄事件、或者定時(shí)器的事件都可以開(kāi)始所述過(guò)程。為了防止竊取,可以頻繁更新激活。軟件發(fā)布者可以確定用于任何激活或失效的頻率、持續(xù)時(shí)間、以及觸發(fā)。在一個(gè)實(shí)施例中,激活信息可以包括繼承激活的壽命。例如,信息可以包括建立激活過(guò)期的時(shí)間和日期戳。通過(guò)使用這種過(guò)期,激活信息的未授權(quán)拷貝將會(huì)因?yàn)闀r(shí)間受限的激活而具有受限的實(shí)用性。使用信任繼承激活的虛擬機(jī)可以通過(guò)安全通道繼續(xù)接收更新壽命信息以及因而繼續(xù)使用激活的軟件,只要授權(quán)這樣做即可。在實(shí)施例中,主機(jī)可以使用資產(chǎn)管理的交換信息。例如,主機(jī)可以從虛擬機(jī)采集 SKU數(shù)據(jù)以及使用該信息跟蹤應(yīng)用或業(yè)務(wù)的用戶數(shù)量。可以使用此信息管理和限制激活的總數(shù)量。在圖9中描繪的繼承激活機(jī)制的一個(gè)示例性實(shí)例中,虛擬機(jī)主機(jī)900可以實(shí)施每個(gè)虛擬機(jī)訪客實(shí)例的工作者過(guò)程935和虛擬業(yè)務(wù)提供器(VSP)925。VSP 925可以通過(guò)利用 VM總線基礎(chǔ)設(shè)施920在啟動(dòng)時(shí)提供去往虛擬機(jī)訪客的連接。VM總線基礎(chǔ)設(shè)施920可以顯現(xiàn)API集合以允許根分區(qū)與虛擬機(jī)訪客之間的通信。主機(jī)VSP 925可以等候虛擬機(jī)訪客客戶端910連接以及在連接后使用VM總線管道/句柄920向和從虛擬機(jī)訪客910寫(xiě)入和讀取數(shù)據(jù)。VSP 925不解釋從虛擬機(jī)訪客910讀取的安全數(shù)據(jù)而是把此數(shù)據(jù)接續(xù)到主機(jī)上運(yùn)行的許可應(yīng)用940?;趶奶摂M機(jī)訪客910讀取的信息以及主機(jī)機(jī)器上的許可狀態(tài),主機(jī)許可業(yè)務(wù)創(chuàng)建返回給VSP 925的安全許可狀態(tài)封裝。VSP 925通過(guò)VM總線管道920把此數(shù)據(jù)寫(xiě)回虛擬機(jī)訪客910??梢栽谔摂M機(jī)訪客上許可應(yīng)用的實(shí)例內(nèi)容納繼承激活機(jī)制的訪客虛擬組件??蛻舳藗?cè)組件使用VM總線基礎(chǔ)設(shè)施列舉來(lái)自主機(jī)的、與允許它找到和開(kāi)啟去往主機(jī)VSP的連接的某個(gè)準(zhǔn)則匹配的連接。把此連接顯現(xiàn)給作為合成裝置的訪客虛擬機(jī)中的應(yīng)用。通過(guò)使用 API,可以經(jīng)由合成裝置從和向主機(jī)讀取和寫(xiě)入數(shù)據(jù)以交換許可有關(guān)信息。訪客虛擬機(jī)上運(yùn)行的許可證應(yīng)用使用它經(jīng)由主機(jī)VSP間接獲得的許可狀態(tài)封裝以確定訪客虛擬機(jī)是否被恰當(dāng)許可。在一個(gè)實(shí)施例中,可以把繼承激活機(jī)制嵌套在虛擬機(jī)架構(gòu)內(nèi)。例如,主機(jī)虛擬機(jī)可以向訪客虛擬機(jī)發(fā)送繼承激活信息。訪客虛擬機(jī)可以繼而派生一個(gè)或更多個(gè)額外虛擬機(jī),其各自繼而可以繼承激活信息等。在其它實(shí)施例中,可以把繼承激活機(jī)制配置成只通過(guò)一個(gè)主機(jī)操作,使得不準(zhǔn)許激活信息的嵌套。本文中公開(kāi)的原理不限于上述實(shí)施例。繼承的激活不需要限于訪客虛擬機(jī)??梢允褂美^承激活來(lái)激活被激活產(chǎn)品的第二虛擬化實(shí)例。圖10描繪了用于激活包括操作1000、1002、1004、以及1006的虛擬化運(yùn)算環(huán)境中
的軟件產(chǎn)品的示范性操作流程。參照?qǐng)D10,操作1000開(kāi)始操作流程,操作1002示例了激活虛擬化運(yùn)算環(huán)境中第一父分區(qū)上軟件產(chǎn)品的第一實(shí)例,其中,所述激活基于至少部分地在所述第一父分區(qū)的配置上得出的信息。操作1004示例了捕獲所述信息。操作1006示例了使用所述信息激活所述軟件產(chǎn)品的第二實(shí)例。圖11描繪了用于激活虛擬化運(yùn)算環(huán)境中軟件產(chǎn)品的示范性系統(tǒng)和操作流程。參照?qǐng)D11,系統(tǒng)1100包括過(guò)程1111和存儲(chǔ)器1120。存儲(chǔ)器1120進(jìn)一步包括被配置成激活虛擬化運(yùn)算環(huán)境中軟件產(chǎn)品的計(jì)算機(jī)指令。塊1122示例了激活主機(jī)虛擬機(jī)上軟件產(chǎn)品的第一實(shí)例。塊IlM示例了生成表明軟件產(chǎn)品在主機(jī)虛擬機(jī)上激活的信息。塊11 示例了使用所述信息激活所述軟件產(chǎn)品的第二實(shí)例??梢栽诜椒ā⑾到y(tǒng)、計(jì)算機(jī)可讀介質(zhì)、或者任何類型的成品中實(shí)施上述方面中的任何方面。例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以在其上存儲(chǔ)用于激活虛擬化運(yùn)算環(huán)境中軟件產(chǎn)品的計(jì)算機(jī)可執(zhí)行指令。這種介質(zhì)可以包括用于激活虛擬化運(yùn)算環(huán)境中第一父分區(qū)上第一軟件產(chǎn)品的指令的第一子集,其中,所述激活基于至少部分地在所述第一父分區(qū)的配置上得出的信息;用于捕獲所述信息的指令的第二子集;以及用于使用所述信息激活第一父分區(qū)的子分區(qū)中第二軟件產(chǎn)品的指令的第三子集。本領(lǐng)域技術(shù)人員將會(huì)明白可以使用指令的額外集合捕獲本文中公開(kāi)的各種其它方面,目前公開(kāi)的指令子集可以按照本公開(kāi)詳細(xì)變化。以上詳細(xì)描述經(jīng)由實(shí)例和/或操作圖敘述了過(guò)程和/或系統(tǒng)的各種實(shí)施例。只要這種方框圖、和/或?qū)嵗粋€(gè)或更多個(gè)功能和/或操作,本領(lǐng)域技術(shù)人員就將會(huì)理解可以通過(guò)大范圍的硬件、軟件、固件、或者實(shí)質(zhì)上其任何組合,各自和/或統(tǒng)一實(shí)施這種方框圖、或者實(shí)例內(nèi)的每個(gè)功能和/或操作。應(yīng)當(dāng)理解可以結(jié)合硬件或軟件或者酌情結(jié)合二者的組合實(shí)施本文中描述的各種技術(shù)。因而,本公開(kāi)的設(shè)備和方法、或者其某些方面或部分可以采取有形介質(zhì)(如,軟盤(pán)、CD-ROM、 硬盤(pán)驅(qū)動(dòng)器、或者任何其它機(jī)器可讀存儲(chǔ)介質(zhì))中實(shí)施的程序代碼(即,指令)的形式,其中,當(dāng)向機(jī)器(如,計(jì)算機(jī))中加載程序代碼和通過(guò)機(jī)器執(zhí)行程序代碼時(shí),機(jī)器成為用于實(shí)踐本發(fā)明的設(shè)備。在可編程計(jì)算機(jī)上程序代碼執(zhí)行的情形中,運(yùn)算裝置通常包括處理器、處理器可讀取的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入裝置、以及至少一個(gè)輸出裝置。一個(gè)或更多個(gè)程序可以實(shí)施或運(yùn)用結(jié)合本公開(kāi)描述的過(guò)程,例如,通過(guò)應(yīng)用編程接口(API)、可重復(fù)使用的控件等的使用。優(yōu)選地以高級(jí)面向過(guò)程或面向?qū)ο缶幊陶Z(yǔ)言實(shí)施這種程序以與計(jì)算機(jī)系統(tǒng)通信。然而,可以在期望的情況下,以匯編或機(jī)器語(yǔ)言實(shí)施程序。 在任何情形中,語(yǔ)言可以是編譯或解釋語(yǔ)言,以及可以與硬件實(shí)施組合。雖然已參照本發(fā)明的優(yōu)選實(shí)施例特別示出和描述了本發(fā)明,但本領(lǐng)域技術(shù)人員將會(huì)理解可以在不脫離如所附權(quán)利要求中所敘述的本發(fā)明范圍的情況下做出形式和細(xì)節(jié)上的各種改變。此外,雖然可以按單數(shù)描述或要求保護(hù)本發(fā)明的元素,但如非明確陳述限制為單數(shù),否則也預(yù)期了復(fù)數(shù)。
權(quán)利要求
1.一種用于激活虛擬化運(yùn)算環(huán)境中軟件產(chǎn)品的方法,該方法包括激活(1002)虛擬化運(yùn)算環(huán)境中第一父分區(qū)上軟件產(chǎn)品的第一實(shí)例,其中,所述激活基于至少部分地在所述第一父分區(qū)的配置上得出的信息; 捕獲(1004)所述信息;以及使用(1006)所述信息激活所述軟件產(chǎn)品的第二實(shí)例。
2.權(quán)利要求1的方法,其中在子分區(qū)上激活所述第二實(shí)例,進(jìn)一步包括把所述信息發(fā)送給所述子分區(qū),其中所述子分區(qū)信任所述信息。
3.權(quán)利要求2的方法,進(jìn)一步包括在第一父分區(qū)與子分區(qū)之間建立安全通信通道,其中所述發(fā)送包括經(jīng)由安全通信通道發(fā)送信息。
4.權(quán)利要求2的方法,進(jìn)一步包括把所述子分區(qū)轉(zhuǎn)移到激活所述軟件產(chǎn)品的第二父分區(qū),其中所述第二實(shí)例在所述轉(zhuǎn)移之后在所述子分區(qū)中仍然激活。
5.權(quán)利要求2的方法,進(jìn)一步包括當(dāng)把所述子分區(qū)轉(zhuǎn)移到未激活所述軟件產(chǎn)品的第二父分區(qū)時(shí)禁用所述第二實(shí)例。
6.權(quán)利要求1的方法,其中把所述第二實(shí)例激活直至預(yù)定過(guò)期時(shí)間,在這之后禁用第二實(shí)例,所述信息中包括所述預(yù)定過(guò)期時(shí)間,該方法進(jìn)一步包括使用額外信息以允許第二實(shí)例超過(guò)預(yù)定過(guò)期時(shí)間仍然激活。
7.權(quán)利要求1的方法,進(jìn)一步包括使用所述信息激活所述軟件產(chǎn)品的多個(gè)實(shí)例。
8.權(quán)利要求7的方法,進(jìn)一步包括跟蹤所述軟件產(chǎn)品的激活實(shí)例的數(shù)量以及限制激活實(shí)例的數(shù)量。
9.一種用于激活虛擬化運(yùn)算環(huán)境中軟件產(chǎn)品的系統(tǒng)(1100),包括 處理器(1110);以及以通信方式耦合到處理器的存儲(chǔ)器(1120),存儲(chǔ)器承載當(dāng)在處理器上執(zhí)行時(shí)使得處理器執(zhí)行包括如下內(nèi)容的操作的處理器可執(zhí)行指令 激活主機(jī)虛擬機(jī)上軟件產(chǎn)品的第一實(shí)例; 生成表明軟件產(chǎn)品在主機(jī)虛擬機(jī)上被激活的信息;以及使用所述信息激活所述軟件產(chǎn)品的第二實(shí)例。
10.一種其上存儲(chǔ)用于激活虛擬化運(yùn)算環(huán)境中軟件產(chǎn)品的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該介質(zhì)包括用于如下內(nèi)容的指令激活虛擬化運(yùn)算環(huán)境中第一父分區(qū)上的第一軟件產(chǎn)品,其中,所述激活基于至少部分地在所述第一父分區(qū)的配置上得出的信息; 捕獲所述信息;以及使用所述信息激活第一父分區(qū)的子分區(qū)中的第二軟件產(chǎn)品。
全文摘要
公開(kāi)了繼承的激活開(kāi)啟從主機(jī)操作系統(tǒng)(OS)至訪客(虛擬機(jī))OS的安全通信路徑的方法和系統(tǒng)。通過(guò)此通道傳遞主機(jī)上軟件的許可證狀態(tài),訪客中安裝的軟件使用此信息通知它自身的產(chǎn)品激活過(guò)程。虛擬化(訪客)軟件可以隨后在符合主機(jī)的許可證需求時(shí)在沒(méi)有任何外部通信的情況下激活。
文檔編號(hào)H04L29/08GK102411693SQ20111033404
公開(kāi)日2012年4月11日 申請(qǐng)日期2011年10月28日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者J. 史密斯 A., 巴夫 A., 考 C., 巴赫胡伯爾 E., P. 霍拉爾 M., M. 巴拉斯焦 T. 申請(qǐng)人:微軟公司