專利名稱:使用仿真計(jì)算環(huán)境收集操作系統(tǒng)許可證收益的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及現(xiàn)場(chǎng)虛擬機(jī)(也稱作“處理器虛擬化”)和在虛擬機(jī)環(huán)境中執(zhí)行的軟件。更具體來說,本發(fā)明直接涉及一種使用虛擬機(jī)環(huán)境收集操作系統(tǒng)許可證收益的方法。
背景技術(shù):
計(jì)算機(jī)包括被設(shè)計(jì)成執(zhí)行特定的系統(tǒng)指令集的通用中央處理單元(CPU)。具有類似的體系結(jié)構(gòu)或設(shè)計(jì)規(guī)范的一組處理器被認(rèn)為是同一處理器家族的成員。當(dāng)前的處理器家族的示例包括由亞利桑那州菲尼克斯市的Motorola公司生產(chǎn)的Motorola 680X0處理器家族;由加利福尼亞州桑尼維爾市的Intel公司生產(chǎn)的Intel80X86處理器家族;以及由Motorola公司生產(chǎn)的,并在由加利福尼亞州庫珀蒂諾市的Apple計(jì)算機(jī)公司生產(chǎn)的計(jì)算機(jī)中使用的PowerPC處理器家族。盡管一組處理器由于其類似的體系結(jié)構(gòu)和設(shè)計(jì)考慮可處于同一家族中,然而根據(jù)其時(shí)鐘速度和其它參數(shù)性能,家族中的處理器也會(huì)有很大的不同。
每一微處理器家族執(zhí)行對(duì)該處理器家族唯一的指令。處理器或處理器家族可執(zhí)行的一組集體的指令被稱為處理器的指令集。作為一個(gè)示例,由Intel 80X86處理器家族使用的指令集與由PowerPC處理器家族使用的指令集不兼容。Inter 80X86指令集基于復(fù)雜指令集計(jì)算機(jī)(CISC)格式。Motorola Power PC指令集基于精簡(jiǎn)指令集計(jì)算機(jī)(RISC)格式。CISC處理器使用大量的指令,其中一些可執(zhí)行相當(dāng)復(fù)雜的功能,但是它一般需要許多時(shí)鐘周期來執(zhí)行。RISC處理器使用較少數(shù)量的可用指令,來執(zhí)行以更高的速率執(zhí)行的一組較簡(jiǎn)單的功能。
處理器家族在計(jì)算機(jī)系統(tǒng)之中的唯一性通常導(dǎo)致計(jì)算機(jī)系統(tǒng)的硬件體系結(jié)構(gòu)的其它元件之間的不兼容性。用來自Intel 80X86處理器家族的處理器制造的計(jì)算機(jī)系統(tǒng)具有與用來自PowerPC處理器家族的處理器制造的計(jì)算機(jī)系統(tǒng)的硬件體系結(jié)構(gòu)不同的硬件體系結(jié)構(gòu)。由于處理器指令集以及計(jì)算機(jī)系統(tǒng)的硬件體系結(jié)構(gòu)的唯一性,應(yīng)用軟件程序通常被書寫成在運(yùn)行特定操作系統(tǒng)的特定計(jì)算機(jī)系統(tǒng)上運(yùn)行。
計(jì)算機(jī)制造商希望通過令更多而不是更少的應(yīng)用程序運(yùn)行在與計(jì)算機(jī)制造商的產(chǎn)品線相關(guān)聯(lián)的微處理器家族上來將其市場(chǎng)份額最大化。為擴(kuò)展可運(yùn)行在計(jì)算機(jī)系統(tǒng)上的操作系統(tǒng)和應(yīng)用程序的數(shù)量,開發(fā)了一種技術(shù)領(lǐng)域,其中,稱為主機(jī)的具有一種類型CPU的給定計(jì)算機(jī)將包括一仿真器程序,它允許主機(jī)計(jì)算機(jī)仿真一種稱為訪客的CPU的不相關(guān)類型指令。由此,主機(jī)計(jì)算機(jī)將執(zhí)行促使一個(gè)或多個(gè)主機(jī)指令響應(yīng)于給定訪客指令而被調(diào)用的應(yīng)用程序。由此,主機(jī)計(jì)算機(jī)可運(yùn)行為其自己的硬件體系結(jié)構(gòu)設(shè)計(jì)的軟件和為具有不相關(guān)硬件體系結(jié)構(gòu)的計(jì)算機(jī)書寫的軟件兩者。作為一個(gè)更具體的示例,例如,由Apple計(jì)算機(jī)制造的計(jì)算機(jī)系統(tǒng)可運(yùn)行為基于PC的計(jì)算機(jī)系統(tǒng)書寫的操作系統(tǒng)和程序。也可能使用一仿真器程序以在單個(gè)CPU上并發(fā)地操作多個(gè)不兼容的操作系統(tǒng)。在這一裝置中,盡管每一操作系統(tǒng)與其它操作系統(tǒng)不兼容,但是仿真器程序可主宿兩個(gè)操作系統(tǒng)之一,從而允許不兼容的操作系統(tǒng)在同一計(jì)算機(jī)系統(tǒng)上并發(fā)地運(yùn)行。
當(dāng)在主機(jī)計(jì)算機(jī)系統(tǒng)上仿真訪客計(jì)算機(jī)系統(tǒng)時(shí),訪客計(jì)算機(jī)系統(tǒng)被稱為“虛擬機(jī)”,因?yàn)樵L客計(jì)算機(jī)系統(tǒng)僅作為一種特定硬件體系結(jié)構(gòu)的純軟件表示存在于主機(jī)計(jì)算機(jī)系統(tǒng)中。術(shù)語仿真器、虛擬機(jī)和處理器仿真有時(shí)可互換地使用,以表示模仿或仿真一個(gè)完整的計(jì)算機(jī)系統(tǒng)的硬件體系結(jié)構(gòu)的能力。作為一個(gè)示例,由加利福尼亞州圣馬特奧市的Connectix公司創(chuàng)建的Virtual PC軟件仿真包括Intel 80X86Pentium處理器和各種主板組件和卡的整個(gè)計(jì)算機(jī)。這些組件的操作在運(yùn)行于主機(jī)上的虛擬機(jī)中仿真。在諸如具有PowerPC處理器的計(jì)算機(jī)系統(tǒng)等主機(jī)計(jì)算機(jī)的操作系統(tǒng)軟件和硬件體系結(jié)構(gòu)上執(zhí)行的仿真器程序模仿整個(gè)訪客計(jì)算機(jī)系統(tǒng)的操作。
仿真器程序擔(dān)當(dāng)主機(jī)機(jī)器的硬件體系結(jié)構(gòu)和由運(yùn)行在被仿真的環(huán)境中的軟件發(fā)送的指令之間的交換點(diǎn)。該仿真器程序可以是一主機(jī)操作系統(tǒng)(HOS),它是直接運(yùn)行在物理計(jì)算機(jī)硬件上的操作系統(tǒng)?;蛘?,被仿真的環(huán)境也可以是虛擬機(jī)監(jiān)控程序(VMM),它是一軟件層,其直接運(yùn)行在硬件之上,并通過展示與VMM正在虛擬化(允許VMM不被其上運(yùn)行的操作系統(tǒng)層注意)的硬件相同的接口來虛擬化該機(jī)器的所有資源。主機(jī)操作系統(tǒng)和VMM可在同一物理硬件上并排運(yùn)行。
多虛擬機(jī)可以建立在單個(gè)主機(jī)器上。在此情形中,某一處理器家族的主機(jī)器可以擁有相同處理器家族的多個(gè)虛擬機(jī)器。在該計(jì)算環(huán)境中,每個(gè)虛擬機(jī)器作為其自己的獨(dú)立計(jì)算機(jī)系統(tǒng)來工作,這允許用戶在一個(gè)或多個(gè)虛擬機(jī)上安裝獨(dú)立的操作系統(tǒng)或單個(gè)操作系統(tǒng)的多種情況。由于每個(gè)虛擬機(jī)獨(dú)立于所有其它虛擬機(jī)和主機(jī)器,所以在一個(gè)虛擬機(jī)內(nèi)運(yùn)行的軟件不會(huì)影響任何其它虛擬機(jī)或下層主機(jī)器的運(yùn)行。因此,仿真計(jì)算環(huán)境可以支持大量操作系統(tǒng),包括在單個(gè)計(jì)算機(jī)系統(tǒng)上的相關(guān)操作系統(tǒng)的陣列或相同操作系統(tǒng)的多種、并發(fā)情況。
在此仿真計(jì)算環(huán)境中,用戶可以在單個(gè)物理計(jì)算機(jī)系統(tǒng)上運(yùn)行多個(gè)虛擬化的計(jì)算機(jī)系統(tǒng),這避免了用多個(gè)硬件系統(tǒng)支持多種計(jì)算機(jī)系統(tǒng)的需要。作為購買和配置附加物理計(jì)算機(jī)系統(tǒng)的可選,可以在現(xiàn)有的計(jì)算機(jī)系統(tǒng)上建立附加的虛擬機(jī)。在單個(gè)物理主機(jī)器上運(yùn)行多個(gè)獨(dú)立虛擬機(jī)提供了在多計(jì)算環(huán)境上測(cè)試軟件應(yīng)用程序并支持傳統(tǒng)的軟件應(yīng)用程序或操作系統(tǒng)的能力,以及其它優(yōu)點(diǎn)。在單個(gè)主機(jī)器上運(yùn)行多個(gè)虛擬機(jī)還節(jié)約成本,原因在于減少了物理機(jī)器的數(shù)量及其相應(yīng)的維護(hù)成本。在單個(gè)主機(jī)器上運(yùn)行多個(gè)虛擬機(jī)還提供了操作系統(tǒng)和應(yīng)用程序軟件隔離的好處。
此外,顧客經(jīng)常希望繼續(xù)使用傳統(tǒng)的軟件技術(shù),例如,因?yàn)樗鼈兙哂猩虡I(yè)關(guān)鍵系統(tǒng)或一些因不能升級(jí)的任何現(xiàn)代操作系統(tǒng)而必須保持在傳統(tǒng)操作系統(tǒng)上的應(yīng)用程序。傳統(tǒng)操作系統(tǒng)的例子包括MS-DOSTM,Windows3.XTM、Windows95TM、Windows98TM、WindowsMeTM、WindowsNTTM、和Windows2000TM。典型的軟件制造商將及時(shí)在某一點(diǎn)結(jié)束產(chǎn)品壽命,這意味著不再為這些操作系統(tǒng)提供進(jìn)一步的支持。例如,軟件支持周期可以為七年,而顧客可能需要運(yùn)行一個(gè)特定操作系統(tǒng)十五年。而且,這些操作系統(tǒng)典型地是通過使用永久許可證來購買的,但是在需要額外的能力時(shí),擴(kuò)展或獲取壽命結(jié)束產(chǎn)品的額外許可證就成為問題??蛇x地,這些顧客可以選擇非法運(yùn)行傳統(tǒng)軟件,這是因?yàn)闆]有一種購買傳統(tǒng)操作系統(tǒng)的機(jī)制。能夠?qū)τ趥鹘y(tǒng)操作系統(tǒng)和傳統(tǒng)軟件應(yīng)用程序?qū)嵤┰S可證協(xié)議以便允許顧客確保合法使用而避免與非法運(yùn)行相關(guān)的任何可能的懲罰將是很有益的。需要一種軟件許可證機(jī)制來擴(kuò)展和/或獲得傳統(tǒng)操作系統(tǒng)或應(yīng)用程序的軟件許可證,并且合法地來進(jìn)行。
而且,軟件制造商通常不提供對(duì)傳統(tǒng)操作系統(tǒng)的跟蹤支持,這是因?yàn)?,如果這樣做,他們必須例如維護(hù)各種Windows 95時(shí)代的PC以便支持Windows 95的所有配置,這由于提供這種支持的成本遠(yuǎn)超出從提供這種支持所產(chǎn)生的收益而變得不切實(shí)際。然而,解決該問題的一個(gè)方案是軟件制造商使用虛擬機(jī)環(huán)境來虛擬化地復(fù)制計(jì)算設(shè)備中幾乎所有的硬件設(shè)備的配置而并不物理上需要計(jì)算機(jī)的每個(gè)配置。在此方式中,單個(gè)虛擬機(jī)環(huán)境提供了一種支持傳統(tǒng)操作系統(tǒng)的成本有效方式,從而為軟件制造商提供了一個(gè)新的商業(yè)機(jī)會(huì)。使用這種增加的支持,對(duì)傳統(tǒng)軟件系統(tǒng)感興趣的顧客也將增加,尤其是指望增加傳統(tǒng)系統(tǒng)作為在它們現(xiàn)代系統(tǒng)上的虛擬機(jī)的顧客,這樣就導(dǎo)致了額外的銷售機(jī)會(huì)。因此,需要一種軟件許可證機(jī)制,尤其是在虛擬機(jī)環(huán)境中,用來延伸軟件許可證并維護(hù)對(duì)于傳統(tǒng)操作系統(tǒng)或應(yīng)用程序的支持。
軟件許可證技術(shù)是軟件制造商的主要收益來源。尤其是,這種商業(yè)的大部分在對(duì)于操作系統(tǒng)軟件發(fā)放許可證。然而,當(dāng)前的操作系統(tǒng)軟件許可證方法是基于作為假設(shè)每個(gè)物理計(jì)算機(jī)系統(tǒng)只包括單個(gè)操作系統(tǒng)的體系模型的物理硬件(即,許可證是在每個(gè)硬件基礎(chǔ)上做出的)。但是,這種許可證方法(以每個(gè)硬件的方法)和現(xiàn)有實(shí)施這種許可證方法的軟件機(jī)制并不適合多個(gè)并發(fā)操作系統(tǒng)作為工作在單個(gè)物理主機(jī)器上的多個(gè)虛擬機(jī)一部分存在的環(huán)境。因此,需要一種對(duì)作為工作在單個(gè)物理主機(jī)器上的多個(gè)虛擬機(jī)的一部分存在的多個(gè)并發(fā)操作系統(tǒng)實(shí)施許可證的許可證方法和軟件機(jī)制。
此外,在當(dāng)前對(duì)操作系統(tǒng)發(fā)放許可證的機(jī)制中,對(duì)于軟件開發(fā)商來說,還存在現(xiàn)金流的問題。在個(gè)人計(jì)算機(jī)(PC)的情況中,例如,當(dāng)購買PC時(shí),以一次性的交易來購買許可證,并且該許可證通常覆蓋了單個(gè)計(jì)算機(jī)系統(tǒng)的軟件產(chǎn)品的使用(即,該許可證是基于每個(gè)硬件)。因此,許可證收益只有在用戶升級(jí)到新的計(jì)算機(jī)和新的的操作系統(tǒng)時(shí)每隔幾年一次性地來收集。需要一種用于虛擬機(jī)環(huán)境中的軟件許可證模型,其允許制造商獲得持續(xù)性的許可證收益流,并允許顧客以成本有效并實(shí)際可行的方式接收增加的值,例如軟件升級(jí)和支持。
發(fā)明內(nèi)容
本發(fā)明的多個(gè)實(shí)施例提供了收集駐留在仿真計(jì)算機(jī)系統(tǒng)中的操作系統(tǒng)或應(yīng)用程序軟件的許可證收益的裝置。(當(dāng)在此使用時(shí),術(shù)語“仿真計(jì)算機(jī)系統(tǒng)”指示為所有的虛擬化計(jì)算機(jī)系統(tǒng),包括但不限制于在運(yùn)行中仿真和/或直接執(zhí)行客戶操作系統(tǒng)指令的系統(tǒng)。)這些實(shí)施例的某一些具體涉及提供一種在虛擬機(jī)環(huán)境中以為軟件制造商提供持續(xù)收益流而不是一次性的交易的方式收集傳統(tǒng)操作系統(tǒng)或應(yīng)用程序的許可證收益的裝置。
本發(fā)明的某些實(shí)施例涉及一種在虛擬機(jī)環(huán)境中通過使用許可證管理器提供軟件許可證實(shí)施的系統(tǒng)和方法,從而提供在支持傳統(tǒng)操作系統(tǒng)和應(yīng)用程序的計(jì)算機(jī)系統(tǒng)中收集許可證收益的改進(jìn)方法。此外,某些實(shí)施例使用仿真的外設(shè),包括許可證卡,其用來與許可證管理器通信來請(qǐng)求許可證密鑰。許可證管理器的功能是在用于虛擬機(jī)的操作系統(tǒng)軟件上監(jiān)視并實(shí)施軟件許可證限制。對(duì)于某些實(shí)施例來說,許可證管理器的功能可以駐留在計(jì)算機(jī)系統(tǒng)的主OS或VMM上,并可以通過硬件系統(tǒng)基礎(chǔ)在硬件系統(tǒng)上執(zhí)行;可選地,許可證管理器功能可以駐留在擔(dān)當(dāng)所有可用許可證的中央儲(chǔ)存庫的分離的物理機(jī)器上,從而通過在組織范圍上的物理系統(tǒng)上提供對(duì)VMM的許可證來提供一種管理在企業(yè)級(jí)配置范圍上的許可證的裝置。最后,本發(fā)明的多個(gè)實(shí)施例涉及為運(yùn)行在虛擬機(jī)環(huán)境中的操作系統(tǒng)和應(yīng)用程序提供增加的軟件支持和升級(jí)。
當(dāng)結(jié)合附圖進(jìn)行閱讀時(shí),優(yōu)選實(shí)施例的前述概括和下面的詳細(xì)描述將更好得以理解。為了說明本發(fā)明,在附圖中顯示了本發(fā)明的典型結(jié)構(gòu);然而,本發(fā)明并不局限于所公開的特定方法和手段。在附圖中圖1是表示可以包括本發(fā)明的各方面的計(jì)算機(jī)系統(tǒng)的框圖;圖2顯示了用于計(jì)算機(jī)系統(tǒng)中的仿真操作環(huán)境的硬件和軟件結(jié)構(gòu)的邏輯分層;圖3A是顯示顯示了虛擬化的計(jì)算系統(tǒng);圖3B顯示了包括與主操作系統(tǒng)一起運(yùn)行的虛擬機(jī)監(jiān)視器的虛擬化計(jì)算系統(tǒng)的可選實(shí)施例;圖4是包括許可證卡和許可證管理器的計(jì)算機(jī)系統(tǒng)的硬件和軟件結(jié)構(gòu)的邏輯層的視圖;圖5是用來啟動(dòng)和許可證虛擬機(jī)操作系統(tǒng)軟件的步驟流程圖;和圖6是用來收集使用虛擬機(jī)環(huán)境的操作系統(tǒng)許可證收益的步驟流程圖。
具體實(shí)施例方式
本發(fā)明的主題是用細(xì)節(jié)來描述的,以滿足法定要求。然而,該描述本身并不制造限制本專利的范圍。相反,發(fā)明人構(gòu)想所要求保護(hù)的本發(fā)明也可結(jié)合其它現(xiàn)有或未來技術(shù)用其它方法來實(shí)現(xiàn),以包括不同的步驟或類似于本文檔中所揭示的那些步驟的組合。此外,盡管此處使用了術(shù)語“步驟”意味著所采用方法的不同元素,然而該術(shù)語不應(yīng)當(dāng)被揭示為暗示此處所揭示的各個(gè)步驟之中或之間的任何特定順序,除非當(dāng)明確地描述了個(gè)別步驟的順序。
計(jì)算機(jī)環(huán)境本發(fā)明的許多實(shí)施例可以在計(jì)算機(jī)上執(zhí)行。圖1及以下討論旨在提供對(duì)適于在其中實(shí)現(xiàn)本發(fā)明的計(jì)算環(huán)境的簡(jiǎn)要概括描述。盡管并非所需,但本發(fā)明將在諸如由客戶機(jī)工作站或服務(wù)器等計(jì)算機(jī)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文環(huán)境中描述。一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。此外,本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明可以用其它計(jì)算機(jī)系統(tǒng)配置來實(shí)施,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)等等。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)踐,其中,任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
如圖1所示,示例性通用計(jì)算系統(tǒng)包括常規(guī)計(jì)算機(jī)20或類似裝置,包括處理單元21、系統(tǒng)存儲(chǔ)器22以及將包括系統(tǒng)存儲(chǔ)器的各類系統(tǒng)組件耦合至處理單元21的系統(tǒng)總線23。系統(tǒng)總線23可以是若干種總線結(jié)構(gòu)類型的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)的局部總線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM)24和隨機(jī)存取存儲(chǔ)器(RAM)25?;据斎?輸出系統(tǒng)(BIOS)26,包含如在啟動(dòng)時(shí)協(xié)助在計(jì)算機(jī)20內(nèi)的元件之間傳輸信息的基本例程,可儲(chǔ)存在ROM 24中。個(gè)人計(jì)算機(jī)20也可包括用于對(duì)硬盤(未示出)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器27、用于對(duì)可移動(dòng)磁盤29進(jìn)行讀寫的磁盤驅(qū)動(dòng)器28以及用于對(duì)可移動(dòng)光盤31如CD ROM或其它光介質(zhì)進(jìn)行讀寫的光盤驅(qū)動(dòng)器30。硬盤驅(qū)動(dòng)器27、磁盤驅(qū)動(dòng)器28以及光盤驅(qū)動(dòng)器30分別通過硬盤驅(qū)動(dòng)器接口32、磁盤驅(qū)動(dòng)器接口33和光盤驅(qū)動(dòng)器接口34連接至系統(tǒng)總線23。驅(qū)動(dòng)器及其相關(guān)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)20提供了計(jì)算機(jī)可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)。盡管這里描述的示例環(huán)境采用了硬盤39、可移動(dòng)磁盤29以及可移動(dòng)光盤31,然而本領(lǐng)域的技術(shù)人員可以理解,在示例性操作環(huán)境中也可以使用可儲(chǔ)存可由計(jì)算機(jī)訪問的數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀介質(zhì),如盒式磁帶、閃存卡、數(shù)字視頻盤、Bernoulli盒式磁盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等等。
多個(gè)程序模塊可儲(chǔ)存在硬盤、磁盤29、光盤31、ROM 24或RAM 25中,包括操作系統(tǒng)35、一個(gè)或多個(gè)應(yīng)用程序36、其它程序模塊37以及程序數(shù)據(jù)38。用戶可以諸如通過鍵盤40和定位設(shè)備42等輸入設(shè)備向計(jì)算機(jī)420輸入命令和信息。其它輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設(shè)備通常通過耦合至系統(tǒng)總線23的串行端口接口46連接到處理單元21,但也可以通過其它接口連接,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器47或其它類型的顯示設(shè)備也通過接口,如視頻適配器48連接到系統(tǒng)總線23。除監(jiān)視器47之外,個(gè)人計(jì)算機(jī)通常包括其它外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。圖1的示例性系統(tǒng)也包括主機(jī)適配器55、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線56以及連接到SCSI總線56的外部存儲(chǔ)設(shè)備62。
個(gè)人計(jì)算機(jī)20可以在使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)49的邏輯連接的網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括許多或所有相對(duì)于計(jì)算機(jī)20所描述的元件,盡管在圖1中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備50。圖1描述的邏輯連接包括局域網(wǎng)(LAN)51和廣域網(wǎng)(WAN)52。這類網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)20通過網(wǎng)絡(luò)接口或適配器53連接至LAN 51。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)20可包括調(diào)制解調(diào)器54或用于通過廣域網(wǎng)52,如因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器54可以是內(nèi)置或外置的,通過串行端口接口46連接至系統(tǒng)總線23。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于個(gè)人計(jì)算機(jī)20所描述的程序模塊或其部分可儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中??梢岳斫猓境龅木W(wǎng)絡(luò)連接是示例性的,也可以使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。此外,盡管預(yù)想本發(fā)明的多個(gè)實(shí)施例尤其適合于計(jì)算機(jī)化的系統(tǒng),然而本文檔中沒有任何內(nèi)容旨在將本發(fā)明限于這樣的實(shí)施例。
虛擬機(jī)從概念上的觀點(diǎn)來看,計(jì)算機(jī)系統(tǒng)一般包括運(yùn)行在硬件的功能層上的一個(gè)或多個(gè)軟件層。這一分層是為了抽象的原因而完成的。通過為給定軟件層定義接口,該層可由其上的其它層來不同地實(shí)現(xiàn)。在設(shè)計(jì)良好的計(jì)算機(jī)系統(tǒng)中,每一層僅知道(并且僅依賴于)緊靠其之下的那一層。這允許層或“?!?多個(gè)鄰接的層)被替換,而不會(huì)對(duì)所述層或棧上的層產(chǎn)生消極的影響。例如,軟件應(yīng)用程序(較高層)通常依賴于操作系統(tǒng)的較低層(較低層)來將文件寫入某一形式的永久存儲(chǔ)中,并且這些應(yīng)用程序不需要理解將數(shù)據(jù)寫入軟盤、硬盤驅(qū)動(dòng)器或網(wǎng)絡(luò)文件夾之間的區(qū)別。如果較低層用用于寫文件的新操作系統(tǒng)來替換,則較高層軟件應(yīng)用程序的操作保持不受影響。
分層軟件的靈活性允許虛擬機(jī)(VM)呈現(xiàn)一虛擬硬件層,它實(shí)際上是另一軟件層。以此方式,VM可為其上的軟件層創(chuàng)建所述軟件層正運(yùn)行在其自己的專用計(jì)算機(jī)系統(tǒng)上的假象,并且由此,VM可允許多個(gè)“訪客系統(tǒng)”并發(fā)地運(yùn)行在單個(gè)“主機(jī)系統(tǒng)”上。
圖2所示是用于計(jì)算機(jī)系統(tǒng)中仿真的操作環(huán)境的硬件和軟件體系結(jié)構(gòu)的邏輯分層的圖示。仿真程序94運(yùn)行在主機(jī)操作系統(tǒng)和/或硬件體系結(jié)構(gòu)92上。仿真程序94仿真訪客硬件體系結(jié)構(gòu)96和訪客操作系統(tǒng)98。軟件應(yīng)用程序100進(jìn)而運(yùn)行在訪客操作系統(tǒng)98上。在圖2的被仿真操作環(huán)境中,由于仿真程序94的操作,即使軟件應(yīng)用程序100被設(shè)計(jì)成運(yùn)行在一般與主機(jī)操作系統(tǒng)和硬件體系結(jié)構(gòu)92不兼容的操作系統(tǒng)上,軟件應(yīng)用程序100也可運(yùn)行在計(jì)算機(jī)系統(tǒng)90上。
圖3A示出了一個(gè)虛擬化的計(jì)算系統(tǒng),它包括直接運(yùn)行在物理計(jì)算機(jī)硬件102上的主機(jī)操作系統(tǒng)軟件層104,并且主機(jī)操作系統(tǒng)(主機(jī)OS)通過展示與主機(jī)OS正在虛擬化(令主機(jī)OS能夠不被其上運(yùn)行的操作系統(tǒng)層注意到)的硬件相同的接口,來虛擬化機(jī)器的所有資源。
或者,虛擬機(jī)監(jiān)控程序,或VMM軟件層104′可以代替主機(jī)OS 104″或與其并排地運(yùn)行,后一選項(xiàng)在圖3B中示出。為了簡(jiǎn)明起見,后文所有的討論(尤其是關(guān)于主機(jī)OS 104的討論)應(yīng)當(dāng)針對(duì)圖3A所示的實(shí)施例;然而,這些討論的每一方面應(yīng)當(dāng)同等地應(yīng)用于圖3B的實(shí)施,其中圖3B的VMM 104′本質(zhì)上在功能層替換了下文描述的圖3A的主機(jī)OS 104的角色。
再次參考圖3A,在主機(jī)OS 104(或VMM 104′)上的是兩個(gè)虛擬機(jī)(VM)實(shí)現(xiàn)-VM A 108,它可以是,例如虛擬化的Intel 386處理器;以及VM B 110,它可以是,例如Motorola 680X0處理器家族之一的虛擬化版本。在每一VM A 108和110之上的分別是訪客操作系統(tǒng)(訪客OS)A 112和B 114。在訪客OS A 112上運(yùn)行兩個(gè)應(yīng)用程序-應(yīng)用程序A1 116和應(yīng)用程序A2 118,在訪客OS B 114上的是應(yīng)用程序B1 120。
VM軟件許可證實(shí)施本發(fā)明的各種實(shí)施例涉及一種修訂的許可證模型,其中例如操作系統(tǒng)的軟件產(chǎn)品被基于每種實(shí)施例給予許可證(而不是基于每硬件)。對(duì)于虛擬機(jī)環(huán)境來說,每個(gè)VM將包括需要許可證的“實(shí)例”。為了支持這種許可證模型,自動(dòng)實(shí)施許可證和獲得所需許可證的自動(dòng)裝置都是有益的。
圖4顯示了圖3B系統(tǒng)的部分,進(jìn)一步包括仿真硬件設(shè)備,在此情況下,包括每個(gè)虛擬機(jī)的許可證卡。圖4所示是邏輯連接到許可證卡虛擬設(shè)備A 122的VM A108和邏輯連接到許可證卡虛擬設(shè)備B 124的VM B110。圖4還顯示了VMM 104′進(jìn)一步包括邏輯連接到每個(gè)許可證卡虛擬設(shè)備122和124的許可證管理器(LM)126。有關(guān)VM A108和VM B110的圖4所述仿真硬件設(shè)備是示例性的,并且在該虛擬機(jī)環(huán)境種的任何其它VM將包括耦合到LM 126的自身類似的許可證卡虛擬設(shè)備。當(dāng)然,這些許可證卡(例如,122和124)被仿真為在計(jì)算機(jī)硬件102中不一定具有(或需要)物理相應(yīng)部件的硬件設(shè)備。
從訪客OS A112的角度考慮,許可證卡A 122顯示為類似于通過軟件驅(qū)動(dòng)器控制的任何其它外設(shè)。在啟動(dòng)或引導(dǎo)階段期間,一旦識(shí)別到許可證卡A 122的存在,訪客OS A112就確定是否安裝了許可證卡A 122的相關(guān)驅(qū)動(dòng)器。如果還沒有安裝許可證卡A 122的相關(guān)驅(qū)動(dòng)器,那么訪客OS A112嘗試搜索并安裝相關(guān)的軟件的驅(qū)動(dòng)器。
LM 126的功能是自動(dòng)對(duì)在VMM上運(yùn)行的每個(gè)虛擬機(jī)器的操作系統(tǒng),例如VM A108和VM B110,監(jiān)視和實(shí)施軟件許可證限制。LM 126包括可以同時(shí)工作在虛擬計(jì)算系統(tǒng)的虛擬機(jī)器中許可的訪客OS數(shù)量的計(jì)數(shù)。許可的OS的數(shù)量可以是一個(gè)、兩個(gè)、兩個(gè)、或更多,其依賴于計(jì)算機(jī)用戶購買的許可證權(quán)利。至于實(shí)施,由于VMM 104′通過每個(gè)訪客OS,例如訪客OS A 112和訪客OS B114監(jiān)視即插即用設(shè)備的逐條記載,所以由VMM 104′識(shí)別通過它們各自的許可證卡虛擬設(shè)備122和124的每個(gè)VM 108和110的添加并自動(dòng)使用LM 126進(jìn)行格式化——即,在訪客OS 112和114識(shí)別所述虛擬設(shè)備122和124時(shí),每個(gè)許可證卡122和124自動(dòng)連接到LM 126,當(dāng)每個(gè)VM的操作系統(tǒng)開始時(shí),該過程自動(dòng)進(jìn)行。此后,當(dāng)許可證卡122或124需要許可證時(shí),需要自動(dòng)與LM 126自動(dòng)進(jìn)行通信來請(qǐng)求必需的許可證密鑰。如果LM不能獲得必需的許可證密鑰和特定VM的OS,那么該VM就被VMM關(guān)閉。
圖5是顯示啟動(dòng)和許可證虛擬機(jī)的操作系統(tǒng)軟件的方法130的流程圖。在步驟132,該方法首先包括虛擬機(jī)的初始化序列。在步驟134,請(qǐng)求操作系統(tǒng)識(shí)別許可證卡。在步驟136,VMM 104,與LM 126進(jìn)行通信來請(qǐng)求許可證密鑰。在步驟138,LM126將密鑰和其它授權(quán)代碼傳遞給VMM 104′,其允許訪客OS繼續(xù)啟動(dòng)。如果為否,在步驟144,VMM 104′停止訪客操作系統(tǒng)并結(jié)束方法130。隨后,在步驟142,LM 126減少其可用訪客OS許可證或密鑰的計(jì)數(shù)。在此點(diǎn),經(jīng)許可的訪客OS假設(shè)已經(jīng)消耗了來自LM 126的一個(gè)密鑰。一旦可用訪客OS許可證的計(jì)數(shù)達(dá)到零,LM 126就不再發(fā)布額外的密鑰或授權(quán)。在可選實(shí)施例中,LM還可以包括用來自動(dòng)從許可證經(jīng)銷商獲得額外許可證的子系統(tǒng),并且,如果獲得額外許可證不成功,那么繼續(xù)進(jìn)到關(guān)閉未許可證的訪客OS。
例如,如果可用訪客OS的計(jì)數(shù)為零,并且如果VMM 104′請(qǐng)求許可證密鑰,那么LM 126將通知VMM 104′沒有可用的額外訪客OS許可證。然后,VMM 104′將中斷虛擬機(jī)的啟動(dòng)序列并阻止相關(guān)虛擬機(jī)的操作系統(tǒng)軟件運(yùn)行,如在步驟144中所示的那樣。LM 126維護(hù)許可證訪客OS的記錄。如果許可證訪客操作系統(tǒng)被終止,那么VMM 104,就通知LM 126,其增加可用訪客OS的計(jì)數(shù)。許可證訪客OS的終止具有的效果是將密鑰返回給LM 126。
從LM 126到每個(gè)虛擬機(jī)的傳遞許可證密鑰是在安全傳輸介質(zhì)中完成的。作為密鑰傳送處理的一部分,操作系統(tǒng)經(jīng)銷商可以尋求傳送加密的握手信號(hào)到訪客OS來確保該訪客OS是主OS 104″的可許可版本。與訪客OS之間的通信可以通過仿真硬件設(shè)備來完成,例如,許可證卡A 124。許可證卡A 124將加密的信號(hào)傳輸?shù)絍MM 104′,其將加密的信號(hào)傳遞到主OS 104″的LM 126。圖4顯示了許可證卡124、VMM 104′和LM 126的邏輯關(guān)系??蛇x地,主OS 104和訪客OS通過虛擬計(jì)算系統(tǒng)硬件抽象層傳輸加密信號(hào)。
LM 126將周期性地查詢每個(gè)虛擬機(jī)來確認(rèn)每個(gè)虛擬機(jī)的操作系統(tǒng)的軟件許可證狀態(tài)。該周期性的許可證檢查確認(rèn)每個(gè)虛擬機(jī)的操作系統(tǒng)是由LM126許可證的,并且沒有虛擬機(jī)停止或超時(shí)。如果確定任意一個(gè)訪客OS沒有被LM 126許可證,那么LM 126將確定許可證是否可用于未許可證的訪客OS,即,可用訪客OS許可證的計(jì)數(shù)是否大于零。如果檢查到未許可證的訪客OS,并且如果額外的許可證密鑰可用,那么可用許可證的計(jì)數(shù)將被遞減,并且未許可的訪客OS將由LM 126許可證。如果檢測(cè)到未許可的訪客OS,并且如果沒有額外許可證密鑰可用,那么未許可的訪客OS將停止或終止。
由未許可的訪客OS導(dǎo)致的問題可能發(fā)生在虛擬機(jī)已經(jīng)停止并在物理計(jì)算機(jī)系統(tǒng)之間遷移的例子。在該例子中,虛擬機(jī)可以被啟動(dòng)并使用可用許可證密鑰許可證用于計(jì)算機(jī)系統(tǒng)上。該虛擬機(jī)接著可以停止或使用不可用許可證密鑰遷移到另一個(gè)計(jì)算機(jī)系統(tǒng)上。由許可證管理器對(duì)虛擬機(jī)的周期查詢將檢查該遷移的虛擬機(jī),其將導(dǎo)致在目的計(jì)算機(jī)中獲得遷移虛擬機(jī)的額外許可證(或通過購買或從另一個(gè)LM)或在目的計(jì)算機(jī)系統(tǒng)中終止遷移的虛擬機(jī)。
VM軟件許可證收益收集圖6是顯示通過使用虛擬機(jī)環(huán)境收集操作系統(tǒng)許可證的方法150的流程圖。更具體來說,本發(fā)明的方法150提供了在虛擬機(jī)環(huán)境中為現(xiàn)代或傳統(tǒng)的操作系統(tǒng)或應(yīng)用程序以為軟件制造商提供持續(xù)收益流而不是一次性交易的方式收集許可證收益的裝置。
在步驟152,該方法首先包括顧客從軟件制造商請(qǐng)求軟件許可證。在步驟154,軟件制造商(或許可人)例如根據(jù)所請(qǐng)求許可證的時(shí)間周期設(shè)置所請(qǐng)求軟件許可證的費(fèi)用量并從顧客接收相應(yīng)付費(fèi)。該付費(fèi)可以是永久許可證協(xié)議的一次性付費(fèi)方式;然而,在優(yōu)選實(shí)施例中,該付費(fèi)是與可更新的許可證協(xié)議相關(guān)的月或年付費(fèi)(或任何其它預(yù)定的時(shí)間周期),其為軟件制造商保證固定的收益流,并如果可以升級(jí),那么每次更新時(shí),還向接收軟件升級(jí)的顧客提供好處。一旦顧客開始購買或更新軟件許可證,軟件制造商就創(chuàng)建軟件許可證,并隨后,例如電子方式(即,通過電子郵件)通過光盤(CD)或任何合適的裝置向顧客傳送軟件許可證。在步驟156,顧客確定該許可證將配置在哪一個(gè)虛擬計(jì)數(shù)系統(tǒng)上。繼續(xù)參考圖4,然后,將該許可證配置在給定VMM 104′的LM 126。在圖6的步驟158,根據(jù)方法130啟動(dòng)虛擬機(jī)和相關(guān)訪客OS,例如圖4的VM A108和訪客OS A 112,如圖5所述。在步驟160,任意給定VMM 104′的LM 126繼續(xù)通過監(jiān)視許可證屬性確定是否存在不允許其使用的條件來監(jiān)視該許可證的狀態(tài)。屬性包括例如OS類型或版本、開始日期,其建立許可證的開始、許可證的持續(xù)時(shí)間,然后,確定結(jié)束日期、和容量(即,允許多少用戶),等等。在步驟162,如果由于不違反該許可證屬性而導(dǎo)致該許可證有效,那么在繼續(xù)監(jiān)視的同時(shí),如在步驟160中描述的那樣,允許執(zhí)行VM和訪客OS,如在步驟164指示的那樣。然而,在步驟162,如果該許可證因?yàn)檫`反而不再有效,例如,在許可證屬性中建立的時(shí)間到期,那么VMM104′停止VM和訪客OS,如在步驟166中指示的那樣。在步驟168,當(dāng)VM和訪客OS被停止時(shí),那么就通知顧客并隨后決定他/她是否希望延伸(更新)該軟件許可證。如果顧客不希望更新該許可證協(xié)議,那么討論中的VM和訪客OS保持停止。如果顧客希望更新該許可證協(xié)議,那么顧客從軟件制造商獲得軟件許可證請(qǐng)求,如在步驟152指示的那樣。進(jìn)一步,在更新時(shí),軟件制造商可以向可能存在的顧客提供任何增加的軟件升級(jí)或支持。
繼續(xù)參考圖4、5和6,在可選實(shí)施例中,許可證管理器功能性地駐留在分離的物理機(jī)器上,該機(jī)器擔(dān)當(dāng)所有可用許可證的中央儲(chǔ)存庫,并因此而通過提供許可證給組織范圍內(nèi)的物理系統(tǒng)上的VMM來提供管理在企業(yè)級(jí)配置上的許可證的裝置。該安排提供了進(jìn)一步的好處,在于它允許顧客動(dòng)態(tài)平衡它們組織內(nèi)的許可證,例如企業(yè)、服務(wù)器級(jí)的數(shù)據(jù)中心、或在較大組織內(nèi)的臺(tái)式PC上。
本發(fā)明并不限制于應(yīng)用到仿真特定的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),尤其是Intel 80X86結(jié)構(gòu)。相反,在需要在虛擬或仿真計(jì)算環(huán)境中許可證多個(gè)軟件的任何時(shí)候,都可以使用在此所公開的仿真技術(shù)。還應(yīng)該明白,本發(fā)明并不限制于許可證操作系統(tǒng)軟件。在此所描述的技術(shù)可以用來在虛擬或仿真計(jì)算環(huán)境中建立應(yīng)用軟件的許可證協(xié)議。還應(yīng)該明白,本發(fā)明的用途不限制于主操作系統(tǒng)和許可證操作系統(tǒng)相同的那些計(jì)算環(huán)境中。本發(fā)明的技術(shù)可以用于主操作系統(tǒng)和訪客操作系統(tǒng)在同一家族的操作系統(tǒng)內(nèi)的變體的那些情況中??蛇x地,主操作系統(tǒng)和一個(gè)或多個(gè)訪客操作系統(tǒng)可以是與不同硬件平臺(tái)相關(guān)的操作系統(tǒng)。
雖然已經(jīng)詳細(xì)描述了本發(fā)明,但是應(yīng)該明白,在不脫離由所附權(quán)利要求書定義的本發(fā)明的精神和范圍的情況下,可以對(duì)本發(fā)明做出各種變化、替換和修改。
結(jié)論此處所描述的各種系統(tǒng)、方法和技術(shù)可以用硬件或軟件,或在適當(dāng)時(shí)用兩者的組合來實(shí)現(xiàn)。由此,本發(fā)明的方法和裝置,或其某些方面,可以采用包含在有形介質(zhì),如軟盤、CD-ROM、硬盤或任何其它機(jī)器可讀存儲(chǔ)介質(zhì)中的程序代碼(即,指令)的形式,其中,當(dāng)程序代碼被加載到諸如計(jì)算機(jī)等機(jī)器上并由其執(zhí)行時(shí),該機(jī)器變?yōu)橛糜趯?shí)施本發(fā)明的裝置。在可編程計(jì)算機(jī)上的程序代碼執(zhí)行的情況下,計(jì)算機(jī)一般包括處理器、處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備以及至少一個(gè)輸出設(shè)備。一個(gè)或多個(gè)程序較佳地以高級(jí)過程語言或面向?qū)ο蟮木幊陶Z言來實(shí)現(xiàn),以與計(jì)算機(jī)系統(tǒng)通信。然而,如有需要,程序可以用匯編語言或機(jī)器語言來實(shí)現(xiàn)。在任何情況下,語言可以是已編譯或已解釋的語言,并與硬件實(shí)現(xiàn)相組合。
本發(fā)明的方法和裝置也可以用程序代碼的形式來實(shí)施,該程序代碼通過某一傳輸介質(zhì)來發(fā)送,如通過電線或電纜、通過光纖或通過任一其它形式的傳輸,其中,當(dāng)程序代碼由諸如EPROM、門陣列、可編程邏輯器件(PLD)、客戶機(jī)計(jì)算機(jī)、錄像機(jī)等機(jī)器接收被裝載到其中由其執(zhí)行時(shí),該機(jī)器變?yōu)橛糜趯?shí)施本發(fā)明的裝置。當(dāng)在通用處理器上實(shí)現(xiàn)時(shí),程序代碼與處理器相結(jié)合,以提供用于調(diào)用本發(fā)明的功能的唯一裝置。
盡管結(jié)合各個(gè)附圖的較佳實(shí)施例描述了本發(fā)明,然而可以理解,在不脫離本發(fā)明的情況下,可以使用其它類似的實(shí)施例,或?qū)λ枋龅膶?shí)施例作出修改和添加,以執(zhí)行本發(fā)明的相同功能。例如,盡管本發(fā)明的示例性實(shí)施例是在仿真?zhèn)€人計(jì)算機(jī)的功能的數(shù)字設(shè)備的環(huán)境中描述的,然而本領(lǐng)域的技術(shù)人員可以認(rèn)識(shí)到,本發(fā)明不限于這類數(shù)字設(shè)備,如本申請(qǐng)中所描述的,本發(fā)明可應(yīng)用于任何數(shù)量的現(xiàn)有或新興計(jì)算設(shè)備或環(huán)境,如游戲控制臺(tái)、手持式計(jì)算機(jī)、便攜式計(jì)算機(jī)等等,無論它們是有線還是無線的,并且本發(fā)明可應(yīng)用于通過通信網(wǎng)絡(luò)連接并在網(wǎng)絡(luò)上交互的任何數(shù)量的這類計(jì)算設(shè)備。此外,應(yīng)當(dāng)強(qiáng)調(diào),此處構(gòu)想了各種計(jì)算機(jī)平臺(tái),包括手持式設(shè)備操作系統(tǒng)和其它應(yīng)用專用硬件/軟件接口系統(tǒng),尤其是當(dāng)無線聯(lián)網(wǎng)的設(shè)備的數(shù)量持續(xù)增長(zhǎng)時(shí)。因此,本發(fā)明不應(yīng)當(dāng)限于任何單個(gè)實(shí)施例,而是相反,應(yīng)當(dāng)依照所附權(quán)利要求書的寬度和范圍來解釋。
最后,此處所描述的揭示的實(shí)施例可適用于其它處理器體系結(jié)構(gòu)、基于計(jì)算機(jī)的系統(tǒng)、或系統(tǒng)虛擬化,并且這些實(shí)施例由此處的揭示明確地考慮在內(nèi),因此,本發(fā)明不應(yīng)限于此處所描述的具體實(shí)施例,而是相反,應(yīng)當(dāng)被更廣泛地解釋。同樣,為除處理器虛擬化之外的目的而使用合成指令也由此處的揭示考慮在內(nèi),并且在除處理器虛擬化之外的環(huán)境中對(duì)合成指令的任何這樣的使用應(yīng)當(dāng)被更廣泛地包含在此處的揭示的意義之內(nèi)。
權(quán)利要求
1.一種用來在虛擬機(jī)環(huán)境中許可用于多個(gè)虛擬機(jī)的軟件產(chǎn)品的方法,所述方法包括在虛擬機(jī)環(huán)境中按虛擬機(jī)基礎(chǔ)許可所述軟件產(chǎn)品。
2.如權(quán)利要求1所述的方法,其特征在于,還包括在所述虛擬機(jī)環(huán)境中為所述多個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)實(shí)施許可證符合。
3.如權(quán)利要求2所述的方法,其特征在于,在所述虛擬機(jī)環(huán)境中為所述多個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)實(shí)施許可證符合的所述元素還包括自動(dòng)利用每個(gè)所述虛擬機(jī)的許可證卡虛擬設(shè)備,所述許可證卡虛擬設(shè)備邏輯上耦合到許可證管理器,只有當(dāng)所述虛擬機(jī)的所述軟件產(chǎn)品的許可證對(duì)于該虛擬機(jī)可用并可以分配給所述虛擬機(jī)時(shí),所述許可證管理器才允許所述軟件產(chǎn)品在所述虛擬機(jī)上執(zhí)行。
4.如權(quán)利要求3所述的方法,其特征在于,所述軟件產(chǎn)品是操作系統(tǒng)。
5.如權(quán)利要求3所述的方法,其特征在于,當(dāng)虛擬機(jī)需要額外的許可證時(shí),所述許可證管理器從許可證經(jīng)銷商獲得至少一個(gè)新的許可證。
6.如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)這種許可證不存在并且對(duì)于所述虛擬機(jī)不可用時(shí),自動(dòng)獲得所述虛擬機(jī)環(huán)境中的虛擬機(jī)的至少一個(gè)額外許可證。
7.如權(quán)利要求1所述的方法,其特征在于,所述軟件產(chǎn)品是操作系統(tǒng),所述方法還包括用于實(shí)現(xiàn)所述方法的下述元素啟動(dòng)虛擬機(jī),所述虛擬機(jī)包括許可證卡虛擬設(shè)備;如果許可證密鑰可用,就分配許可證密鑰給所述虛擬機(jī)的所述許可證卡;以及如果許可證卡不可用,則停止執(zhí)行所述虛擬機(jī)。
8.如權(quán)利要求7所述的方法,其特征在于,還包括,在分配許可證密鑰的元素之前,如果需要,確定許可證密鑰是否可用,如果不可用,則從許可證經(jīng)銷商獲取至少一個(gè)額外的許可證密鑰。
9.一種在虛擬機(jī)環(huán)境中許可由多個(gè)虛擬機(jī)使用的軟件產(chǎn)品的系統(tǒng),所述系統(tǒng)包括用來按虛擬機(jī)基礎(chǔ)許可虛擬機(jī)上的所述軟件產(chǎn)品的至少一個(gè)子系統(tǒng)。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,還包括用來在所述虛擬機(jī)環(huán)境中為所述多個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)實(shí)施許可證符合的至少一個(gè)子系統(tǒng)。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,還包括用來使用每個(gè)所述虛擬機(jī)的許可證卡虛擬設(shè)備的至少一個(gè)子系統(tǒng),所述許可證卡虛擬設(shè)備邏輯上耦合到許可證管理器,只有當(dāng)所述虛擬機(jī)的所述軟件產(chǎn)品的許可證對(duì)于該虛擬機(jī)可用并可以分配給所述虛擬機(jī)時(shí),所述許可證管理器才允許所述軟件產(chǎn)品在所述虛擬機(jī)上執(zhí)行。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述軟件產(chǎn)品是操作系統(tǒng)。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于,還包括當(dāng)所述虛擬機(jī)需要額外的許可證時(shí),用來使得所述許可證管理器從許可證經(jīng)銷商獲得至少一個(gè)新的許可證的至少一個(gè)子系統(tǒng)。
14.如權(quán)利要求9所述的系統(tǒng),其特征在于,還包括當(dāng)這種許可證不存在并且對(duì)于所述虛擬機(jī)不可用時(shí),用來在所述虛擬機(jī)環(huán)境中獲得虛擬機(jī)的至少一個(gè)額外許可證的至少一個(gè)子系統(tǒng)。
15.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述軟件產(chǎn)品是操作系統(tǒng),所述方法還包括至少一個(gè)子系統(tǒng),用來啟動(dòng)虛擬機(jī),所述虛擬機(jī)包括許可證卡虛擬設(shè)備;如果許可證密鑰可用,分配許可證密鑰給所述虛擬機(jī)的所述許可證卡;以及如果許可證密鑰不可用,停止執(zhí)行所述虛擬機(jī)。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,還包括至少一個(gè)子系統(tǒng),用于在分配許可證密鑰的元素之前,如果需要,確定許可證密鑰是否可用,并且如果不可用,從許可證經(jīng)銷商獲取至少一個(gè)額外許可證。
17.一種計(jì)算機(jī)可讀介質(zhì),包括用來在虛擬機(jī)環(huán)境中許可由多個(gè)虛擬機(jī)使用的軟件產(chǎn)品的計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令包括用來按虛擬機(jī)基礎(chǔ)在虛擬機(jī)上許可所述軟件產(chǎn)品的指令。
18.如權(quán)利要求17所述的計(jì)算機(jī)可讀指令,其特征在于,還包括用來在所述虛擬機(jī)環(huán)境中為所述多個(gè)虛擬機(jī)的每個(gè)虛擬機(jī)實(shí)施許可證符合的指令。
19.如權(quán)利要求18所述的計(jì)算機(jī)可讀指令,其特征在于,在所述虛擬機(jī)環(huán)境中通過使用每個(gè)所述虛擬機(jī)的許可證卡虛擬設(shè)備來對(duì)所述多個(gè)虛擬機(jī)的每個(gè)虛擬機(jī)實(shí)施許可證符合,所述許可證卡虛擬設(shè)備邏輯上耦合到許可證管理器,只有當(dāng)所述虛擬機(jī)的所述軟件產(chǎn)品的許可證對(duì)于該虛擬機(jī)可用并可以分配給所述虛擬機(jī)時(shí),所述許可證管理器才允許所述軟件產(chǎn)品在所述虛擬機(jī)上執(zhí)行。
20.如權(quán)利要求19所述的計(jì)算機(jī)可讀指令,其特征在于,還包括指令,其中,所述軟件產(chǎn)品是操作系統(tǒng)。
21.如權(quán)利要求19所述的計(jì)算機(jī)可讀指令,其特征在于,還包括指令,用于當(dāng)虛擬機(jī)需要額外的許可證時(shí),使得所述許可證管理器從許可證經(jīng)銷商獲得至少一個(gè)新的許可證。
22.如權(quán)利要求17所述的計(jì)算機(jī)可讀指令,其特征在于,還包括指令,用于當(dāng)這種許可證不存在并且對(duì)于所述虛擬機(jī)不可用時(shí),在所述虛擬機(jī)環(huán)境中自動(dòng)獲得虛擬機(jī)的至少一個(gè)額外許可證。
23.如權(quán)利要求17所述的計(jì)算機(jī)可讀指令,其特征在于,所述軟件產(chǎn)品是操作系統(tǒng),所述計(jì)算機(jī)可讀指令還包括指令,用來啟動(dòng)虛擬機(jī),所述虛擬機(jī)包括許可證卡虛擬設(shè)備;如果許可證密鑰可用,分配許可證密鑰給所述虛擬機(jī)的所述許可證卡;以及如果許可證密鑰不可用,停止執(zhí)行所述虛擬機(jī)。
24.如權(quán)利要求23所述的計(jì)算機(jī)可讀指令,其特征在于,還包括指令,用于在分配許可證密鑰的元素之前,如果需要,確定許可證密鑰是否可用,并且如果不可用,從許可證經(jīng)銷商獲取至少一個(gè)額外許可證。
25.一種用來在虛擬機(jī)環(huán)境中許可由多個(gè)虛擬機(jī)使用的軟件產(chǎn)品的硬件控制設(shè)備,所述硬件控制設(shè)備包括用來按虛擬機(jī)基礎(chǔ)在虛擬機(jī)上許可所述軟件產(chǎn)品的裝置。
26.如權(quán)利要求25所述的硬件控制設(shè)備,其特征在于,還包括用來在所述虛擬機(jī)環(huán)境中為所述多個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)實(shí)施許可證符合的裝置。
27.如權(quán)利要求26所述的硬件控制設(shè)備,其特征在于,還包括用來自動(dòng)使用每個(gè)所述虛擬機(jī)的許可證卡虛擬設(shè)備的裝置,所述許可證卡虛擬設(shè)備邏輯上耦合到許可證管理器,只有當(dāng)所述虛擬機(jī)的所述軟件產(chǎn)品的許可證對(duì)于該虛擬機(jī)可用并可以分配給所述虛擬機(jī)時(shí),所述許可證管理器才允許所述軟件產(chǎn)品在所述虛擬機(jī)上執(zhí)行。
28.如權(quán)利要求27所述的硬件控制設(shè)備,其特征在于,所述軟件產(chǎn)品是操作系統(tǒng)。
29.如權(quán)利要求27所述的硬件控制設(shè)備,其特征在于,還包括裝置,其中當(dāng)虛擬機(jī)需要額外許可證時(shí),所述許可證管理器從許可證經(jīng)銷商獲得至少一個(gè)新的許可證。
30.如權(quán)利要求25所述的硬件控制設(shè)備,其特征在于,還包括用于當(dāng)這種許可證不存在并且對(duì)于所述虛擬機(jī)不可用時(shí),在所述虛擬機(jī)環(huán)境中自動(dòng)獲得虛擬機(jī)的至少一個(gè)額外許可證的裝置。
31.如權(quán)利要求25所述的硬件控制設(shè)備,其特征在于,所述軟件產(chǎn)品是操作系統(tǒng),所述硬件控制設(shè)備還包括裝置,用來啟動(dòng)虛擬機(jī),所述虛擬機(jī)包括許可證卡虛擬設(shè)備;如果許可證密鑰可用,分配許可證密鑰給所述虛擬機(jī)的所述許可證卡;以及如果許可證密鑰不可用,停止執(zhí)行所述虛擬機(jī)。
32.如權(quán)利要求31所述的硬件控制設(shè)備,其特征在于,還包括裝置,用于在分配許可證密鑰的元素之前,如果需要,確定許可證密鑰是否可用,并且如果不可用,從許可證經(jīng)銷商獲取至少一個(gè)額外許可證。
全文摘要
本發(fā)明的多個(gè)實(shí)施例提供了用來收集駐留在虛擬計(jì)算機(jī)系統(tǒng)中的操作系統(tǒng)和應(yīng)用程序軟件的許可證收益的裝置。這些實(shí)施例的某些具體涉及到提供用來在虛擬機(jī)環(huán)境中收集現(xiàn)代或傳統(tǒng)操作系統(tǒng)或應(yīng)用程序的許可證收益,并進(jìn)一步為軟件制造商提供持續(xù)收益流,而不是一次性交易的裝置。更具體來說,某些實(shí)施例涉及通過使用在虛擬機(jī)環(huán)境中的許可證管理器提供軟件許可證實(shí)施的系統(tǒng)和方法,從而提供在支持傳統(tǒng)操作系統(tǒng)和應(yīng)用程序的計(jì)算機(jī)系統(tǒng)中收集許可證收益的改進(jìn)方法。最后,本發(fā)明的多個(gè)實(shí)施例涉及為運(yùn)行在虛擬機(jī)環(huán)境中的操作系統(tǒng)和應(yīng)用程序提供增加的軟件支持和升級(jí)。
文檔編號(hào)G06F9/455GK1716148SQ200510076069
公開日2006年1月4日 申請(qǐng)日期2005年5月30日 優(yōu)先權(quán)日2004年6月30日
發(fā)明者M·內(nèi)爾 申請(qǐng)人:微軟公司