新四季網

使用仿真計算環境收集作業系統許可證收益的系統和方法

2023-06-12 17:19:01

專利名稱:使用仿真計算環境收集作業系統許可證收益的系統和方法
技術領域:
本發明通常涉及現場虛擬機(也稱作「處理器虛擬化」)和在虛擬機環境中執行的軟體。更具體來說,本發明直接涉及一種使用虛擬機環境收集作業系統許可證收益的方法。
背景技術:
計算機包括被設計成執行特定的系統指令集的通用中央處理單元(CPU)。具有類似的體系結構或設計規範的一組處理器被認為是同一處理器家族的成員。當前的處理器家族的示例包括由亞利桑那州菲尼克斯市的Motorola公司生產的Motorola 680X0處理器家族;由加利福尼亞州桑尼維爾市的Intel公司生產的Intel80X86處理器家族;以及由Motorola公司生產的,並在由加利福尼亞州庫珀蒂諾市的Apple計算機公司生產的計算機中使用的PowerPC處理器家族。儘管一組處理器由於其類似的體系結構和設計考慮可處於同一家族中,然而根據其時鐘速度和其它參數性能,家族中的處理器也會有很大的不同。
每一微處理器家族執行對該處理器家族唯一的指令。處理器或處理器家族可執行的一組集體的指令被稱為處理器的指令集。作為一個示例,由Intel 80X86處理器家族使用的指令集與由PowerPC處理器家族使用的指令集不兼容。Inter 80X86指令集基於複雜指令集計算機(CISC)格式。Motorola Power PC指令集基於精簡指令集計算機(RISC)格式。CISC處理器使用大量的指令,其中一些可執行相當複雜的功能,但是它一般需要許多時鐘周期來執行。RISC處理器使用較少數量的可用指令,來執行以更高的速率執行的一組較簡單的功能。
處理器家族在計算機系統之中的唯一性通常導致計算機系統的硬體體系結構的其它元件之間的不兼容性。用來自Intel 80X86處理器家族的處理器製造的計算機系統具有與用來自PowerPC處理器家族的處理器製造的計算機系統的硬體體系結構不同的硬體體系結構。由於處理器指令集以及計算機系統的硬體體系結構的唯一性,應用軟體程序通常被書寫成在運行特定作業系統的特定計算機系統上運行。
計算機製造商希望通過令更多而不是更少的應用程式運行在與計算機製造商的產品線相關聯的微處理器家族上來將其市場份額最大化。為擴展可運行在計算機系統上的作業系統和應用程式的數量,開發了一種技術領域,其中,稱為主機的具有一種類型CPU的給定計算機將包括一仿真器程序,它允許主機計算機仿真一種稱為訪客的CPU的不相關類型指令。由此,主機計算機將執行促使一個或多個主機指令響應於給定訪客指令而被調用的應用程式。由此,主機計算機可運行為其自己的硬體體系結構設計的軟體和為具有不相關硬體體系結構的計算機書寫的軟體兩者。作為一個更具體的示例,例如,由Apple計算機製造的計算機系統可運行為基於PC的計算機系統書寫的作業系統和程序。也可能使用一仿真器程序以在單個CPU上並發地操作多個不兼容的作業系統。在這一裝置中,儘管每一作業系統與其它作業系統不兼容,但是仿真器程序可主宿兩個作業系統之一,從而允許不兼容的作業系統在同一計算機系統上並發地運行。
當在主機計算機系統上仿真訪客計算機系統時,訪客計算機系統被稱為「虛擬機」,因為訪客計算機系統僅作為一種特定硬體體系結構的純軟體表示存在於主機計算機系統中。術語仿真器、虛擬機和處理器仿真有時可互換地使用,以表示模仿或仿真一個完整的計算機系統的硬體體系結構的能力。作為一個示例,由加利福尼亞州聖馬特奧市的Connectix公司創建的Virtual PC軟體仿真包括Intel 80X86Pentium處理器和各種主板組件和卡的整個計算機。這些組件的操作在運行於主機上的虛擬機中仿真。在諸如具有PowerPC處理器的計算機系統等主機計算機的作業系統軟體和硬體體系結構上執行的仿真器程序模仿整個訪客計算機系統的操作。
仿真器程序擔當主機機器的硬體體系結構和由運行在被仿真的環境中的軟體發送的指令之間的交換點。該仿真器程序可以是一主機作業系統(HOS),它是直接運行在物理計算機硬體上的作業系統。或者,被仿真的環境也可以是虛擬機監控程序(VMM),它是一軟體層,其直接運行在硬體之上,並通過展示與VMM正在虛擬化(允許VMM不被其上運行的作業系統層注意)的硬體相同的接口來虛擬化該機器的所有資源。主機作業系統和VMM可在同一物理硬體上並排運行。
多虛擬機可以建立在單個主機器上。在此情形中,某一處理器家族的主機器可以擁有相同處理器家族的多個虛擬機器。在該計算環境中,每個虛擬機器作為其自己的獨立計算機系統來工作,這允許用戶在一個或多個虛擬機上安裝獨立的作業系統或單個作業系統的多種情況。由於每個虛擬機獨立於所有其它虛擬機和主機器,所以在一個虛擬機內運行的軟體不會影響任何其它虛擬機或下層主機器的運行。因此,仿真計算環境可以支持大量作業系統,包括在單個計算機系統上的相關作業系統的陣列或相同作業系統的多種、並發情況。
在此仿真計算環境中,用戶可以在單個物理計算機系統上運行多個虛擬化的計算機系統,這避免了用多個硬體系統支持多種計算機系統的需要。作為購買和配置附加物理計算機系統的可選,可以在現有的計算機系統上建立附加的虛擬機。在單個物理主機器上運行多個獨立虛擬機提供了在多計算環境上測試軟體應用程式並支持傳統的軟體應用程式或作業系統的能力,以及其它優點。在單個主機器上運行多個虛擬機還節約成本,原因在於減少了物理機器的數量及其相應的維護成本。在單個主機器上運行多個虛擬機還提供了作業系統和應用程式軟體隔離的好處。
此外,顧客經常希望繼續使用傳統的軟體技術,例如,因為它們具有商業關鍵系統或一些因不能升級的任何現代作業系統而必須保持在傳統作業系統上的應用程式。傳統作業系統的例子包括MS-DOSTM,Windows3.XTM、Windows95TM、Windows98TM、WindowsMeTM、WindowsNTTM、和Windows2000TM。典型的軟體製造商將及時在某一點結束產品壽命,這意味著不再為這些作業系統提供進一步的支持。例如,軟體支持周期可以為七年,而顧客可能需要運行一個特定作業系統十五年。而且,這些作業系統典型地是通過使用永久許可證來購買的,但是在需要額外的能力時,擴展或獲取壽命結束產品的額外許可證就成為問題。可選地,這些顧客可以選擇非法運行傳統軟體,這是因為沒有一種購買傳統作業系統的機制。能夠對於傳統作業系統和傳統軟體應用程式實施許可證協議以便允許顧客確保合法使用而避免與非法運行相關的任何可能的懲罰將是很有益的。需要一種軟體許可證機制來擴展和/或獲得傳統作業系統或應用程式的軟體許可證,並且合法地來進行。
而且,軟體製造商通常不提供對傳統作業系統的跟蹤支持,這是因為,如果這樣做,他們必須例如維護各種Windows 95時代的PC以便支持Windows 95的所有配置,這由於提供這種支持的成本遠超出從提供這種支持所產生的收益而變得不切實際。然而,解決該問題的一個方案是軟體製造商使用虛擬機環境來虛擬化地複製計算設備中幾乎所有的硬體設備的配置而並不物理上需要計算機的每個配置。在此方式中,單個虛擬機環境提供了一種支持傳統作業系統的成本有效方式,從而為軟體製造商提供了一個新的商業機會。使用這種增加的支持,對傳統軟體系統感興趣的顧客也將增加,尤其是指望增加傳統系統作為在它們現代系統上的虛擬機的顧客,這樣就導致了額外的銷售機會。因此,需要一種軟體許可證機制,尤其是在虛擬機環境中,用來延伸軟體許可證並維護對於傳統作業系統或應用程式的支持。
軟體許可證技術是軟體製造商的主要收益來源。尤其是,這種商業的大部分在對於作業系統軟體發放許可證。然而,當前的作業系統軟體許可證方法是基於作為假設每個物理計算機系統只包括單個作業系統的體系模型的物理硬體(即,許可證是在每個硬體基礎上做出的)。但是,這種許可證方法(以每個硬體的方法)和現有實施這種許可證方法的軟體機制並不適合多個並發作業系統作為工作在單個物理主機器上的多個虛擬機一部分存在的環境。因此,需要一種對作為工作在單個物理主機器上的多個虛擬機的一部分存在的多個並發作業系統實施許可證的許可證方法和軟體機制。
此外,在當前對作業系統發放許可證的機制中,對於軟體開發商來說,還存在現金流的問題。在個人計算機(PC)的情況中,例如,當購買PC時,以一次性的交易來購買許可證,並且該許可證通常覆蓋了單個計算機系統的軟體產品的使用(即,該許可證是基於每個硬體)。因此,許可證收益只有在用戶升級到新的計算機和新的的作業系統時每隔幾年一次性地來收集。需要一種用於虛擬機環境中的軟體許可證模型,其允許製造商獲得持續性的許可證收益流,並允許顧客以成本有效並實際可行的方式接收增加的值,例如軟體升級和支持。

發明內容
本發明的多個實施例提供了收集駐留在仿真計算機系統中的作業系統或應用程式軟體的許可證收益的裝置。(當在此使用時,術語「仿真計算機系統」指示為所有的虛擬化計算機系統,包括但不限制於在運行中仿真和/或直接執行客戶作業系統指令的系統。)這些實施例的某一些具體涉及提供一種在虛擬機環境中以為軟體製造商提供持續收益流而不是一次性的交易的方式收集傳統作業系統或應用程式的許可證收益的裝置。
本發明的某些實施例涉及一種在虛擬機環境中通過使用許可證管理器提供軟體許可證實施的系統和方法,從而提供在支持傳統作業系統和應用程式的計算機系統中收集許可證收益的改進方法。此外,某些實施例使用仿真的外設,包括許可證卡,其用來與許可證管理器通信來請求許可證密鑰。許可證管理器的功能是在用於虛擬機的作業系統軟體上監視並實施軟體許可證限制。對於某些實施例來說,許可證管理器的功能可以駐留在計算機系統的主OS或VMM上,並可以通過硬體系統基礎在硬體系統上執行;可選地,許可證管理器功能可以駐留在擔當所有可用許可證的中央儲存庫的分離的物理機器上,從而通過在組織範圍上的物理系統上提供對VMM的許可證來提供一種管理在企業級配置範圍上的許可證的裝置。最後,本發明的多個實施例涉及為運行在虛擬機環境中的作業系統和應用程式提供增加的軟體支持和升級。


當結合附圖進行閱讀時,優選實施例的前述概括和下面的詳細描述將更好得以理解。為了說明本發明,在附圖中顯示了本發明的典型結構;然而,本發明並不局限於所公開的特定方法和手段。在附圖中圖1是表示可以包括本發明的各方面的計算機系統的框圖;圖2顯示了用於計算機系統中的仿真操作環境的硬體和軟體結構的邏輯分層;圖3A是顯示顯示了虛擬化的計算系統;圖3B顯示了包括與主作業系統一起運行的虛擬機監視器的虛擬化計算系統的可選實施例;圖4是包括許可證卡和許可證管理器的計算機系統的硬體和軟體結構的邏輯層的視圖;圖5是用來啟動和許可證虛擬機作業系統軟體的步驟流程圖;和圖6是用來收集使用虛擬機環境的作業系統許可證收益的步驟流程圖。
具體實施例方式
本發明的主題是用細節來描述的,以滿足法定要求。然而,該描述本身並不製造限制本專利的範圍。相反,發明人構想所要求保護的本發明也可結合其它現有或未來技術用其它方法來實現,以包括不同的步驟或類似於本文檔中所揭示的那些步驟的組合。此外,儘管此處使用了術語「步驟」意味著所採用方法的不同元素,然而該術語不應當被揭示為暗示此處所揭示的各個步驟之中或之間的任何特定順序,除非當明確地描述了個別步驟的順序。
計算機環境本發明的許多實施例可以在計算機上執行。圖1及以下討論旨在提供對適於在其中實現本發明的計算環境的簡要概括描述。儘管並非所需,但本發明將在諸如由客戶機工作站或伺服器等計算機執行的程序模塊等計算機可執行指令的一般上下文環境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數據結構等等,執行特定的任務或實現特定的抽象數據類型。此外,本領域的技術人員可以理解,本發明可以用其它計算機系統配置來實施,包括手持式設備、多處理器系統、基於微處理器或可編程消費者電子設備、網絡PC、小型機、大型機等等。本發明也可以在分布式計算環境中實踐,其中,任務由通過通信網絡連接的遠程處理設備來執行。在分布式計算環境中,程序模塊可以位於本地和遠程存儲器存儲設備中。
如圖1所示,示例性通用計算系統包括常規計算機20或類似裝置,包括處理單元21、系統存儲器22以及將包括系統存儲器的各類系統組件耦合至處理單元21的系統總線23。系統總線23可以是若干種總線結構類型的任一種,包括存儲器總線或存儲器控制器、外圍總線以及使用各類總線體系結構的局部總線。系統存儲器包括只讀存儲器(ROM)24和隨機存取存儲器(RAM)25。基本輸入/輸出系統(BIOS)26,包含如在啟動時協助在計算機20內的元件之間傳輸信息的基本例程,可儲存在ROM 24中。個人計算機20也可包括用於對硬碟(未示出)進行讀寫的硬碟驅動器27、用於對可移動磁碟29進行讀寫的磁碟驅動器28以及用於對可移動光碟31如CD ROM或其它光介質進行讀寫的光碟驅動器30。硬碟驅動器27、磁碟驅動器28以及光碟驅動器30分別通過硬碟驅動器接口32、磁碟驅動器接口33和光碟驅動器接口34連接至系統總線23。驅動器及其相關的計算機可讀介質為計算機20提供了計算機可執行指令、數據結構、程序模塊和其它數據的非易失性存儲。儘管這裡描述的示例環境採用了硬碟39、可移動磁碟29以及可移動光碟31,然而本領域的技術人員可以理解,在示例性操作環境中也可以使用可儲存可由計算機訪問的數據的其它類型的計算機可讀介質,如盒式磁帶、快閃記憶體卡、數字視頻盤、Bernoulli盒式磁碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等。
多個程序模塊可儲存在硬碟、磁碟29、光碟31、ROM 24或RAM 25中,包括作業系統35、一個或多個應用程式36、其它程序模塊37以及程序數據38。用戶可以諸如通過鍵盤40和定位設備42等輸入設備向計算機420輸入命令和信息。其它輸入設備(未示出)可包括麥克風、操縱杆、遊戲墊、圓盤式衛星天線、掃描儀等。這些和其它輸入設備通常通過耦合至系統總線23的串行埠接口46連接到處理單元21,但也可以通過其它接口連接,如並行埠、遊戲埠或通用串行總線(USB)。監視器47或其它類型的顯示設備也通過接口,如視頻適配器48連接到系統總線23。除監視器47之外,個人計算機通常包括其它外圍輸出設備(未示出),如揚聲器和印表機。圖1的示例性系統也包括主機適配器55、小型計算機系統接口(SCSI)總線56以及連接到SCSI總線56的外部存儲設備62。
個人計算機20可以在使用到一個或多個遠程計算機,如遠程計算機49的邏輯連接的網絡化環境中操作。遠程計算機49可以是另一個人計算機、伺服器、路由器、網絡PC、對等設備或其它公用網絡節點,並通常包括許多或所有相對於計算機20所描述的元件,儘管在圖1中僅示出了存儲器存儲設備50。圖1描述的邏輯連接包括區域網(LAN)51和廣域網(WAN)52。這類網絡環境常見於辦公室、企業範圍計算機網絡、內聯網以及網際網路。
當在LAN網絡環境中使用時,個人計算機20通過網絡接口或適配器53連接至LAN 51。當在WAN網絡環境中使用時,計算機20可包括數據機54或用於通過廣域網52,如網際網路建立通信的其它裝置。數據機54可以是內置或外置的,通過串行埠接口46連接至系統總線23。在網絡化環境中,相對於個人計算機20所描述的程序模塊或其部分可儲存在遠程存儲器存儲設備中。可以理解,示出的網絡連接是示例性的,也可以使用在計算機之間建立通信鏈路的其它裝置。此外,儘管預想本發明的多個實施例尤其適合於計算機化的系統,然而本文檔中沒有任何內容旨在將本發明限於這樣的實施例。
虛擬機從概念上的觀點來看,計算機系統一般包括運行在硬體的功能層上的一個或多個軟體層。這一分層是為了抽象的原因而完成的。通過為給定軟體層定義接口,該層可由其上的其它層來不同地實現。在設計良好的計算機系統中,每一層僅知道(並且僅依賴於)緊靠其之下的那一層。這允許層或「棧」(多個鄰接的層)被替換,而不會對所述層或棧上的層產生消極的影響。例如,軟體應用程式(較高層)通常依賴於作業系統的較低層(較低層)來將文件寫入某一形式的永久存儲中,並且這些應用程式不需要理解將數據寫入軟盤、硬碟驅動器或網絡文件夾之間的區別。如果較低層用用於寫文件的新作業系統來替換,則較高層軟體應用程式的操作保持不受影響。
分層軟體的靈活性允許虛擬機(VM)呈現一虛擬硬體層,它實際上是另一軟體層。以此方式,VM可為其上的軟體層創建所述軟體層正運行在其自己的專用計算機系統上的假象,並且由此,VM可允許多個「訪客系統」並發地運行在單個「主機系統」上。
圖2所示是用於計算機系統中仿真的操作環境的硬體和軟體體系結構的邏輯分層的圖示。仿真程序94運行在主機作業系統和/或硬體體系結構92上。仿真程序94仿真訪客硬體體系結構96和訪客作業系統98。軟體應用程式100進而運行在訪客作業系統98上。在圖2的被仿真操作環境中,由於仿真程序94的操作,即使軟體應用程式100被設計成運行在一般與主機作業系統和硬體體系結構92不兼容的作業系統上,軟體應用程式100也可運行在計算機系統90上。
圖3A示出了一個虛擬化的計算系統,它包括直接運行在物理計算機硬體102上的主機作業系統軟體層104,並且主機作業系統(主機OS)通過展示與主機OS正在虛擬化(令主機OS能夠不被其上運行的作業系統層注意到)的硬體相同的接口,來虛擬化機器的所有資源。
或者,虛擬機監控程序,或VMM軟體層104′可以代替主機OS 104″或與其並排地運行,後一選項在圖3B中示出。為了簡明起見,後文所有的討論(尤其是關於主機OS 104的討論)應當針對圖3A所示的實施例;然而,這些討論的每一方面應當同等地應用於圖3B的實施,其中圖3B的VMM 104′本質上在功能層替換了下文描述的圖3A的主機OS 104的角色。
再次參考圖3A,在主機OS 104(或VMM 104′)上的是兩個虛擬機(VM)實現-VM A 108,它可以是,例如虛擬化的Intel 386處理器;以及VM B 110,它可以是,例如Motorola 680X0處理器家族之一的虛擬化版本。在每一VM A 108和110之上的分別是訪客作業系統(訪客OS)A 112和B 114。在訪客OS A 112上運行兩個應用程式-應用程式A1 116和應用程式A2 118,在訪客OS B 114上的是應用程式B1 120。
VM軟體許可證實施本發明的各種實施例涉及一種修訂的許可證模型,其中例如作業系統的軟體產品被基於每種實施例給予許可證(而不是基於每硬體)。對於虛擬機環境來說,每個VM將包括需要許可證的「實例」。為了支持這種許可證模型,自動實施許可證和獲得所需許可證的自動裝置都是有益的。
圖4顯示了圖3B系統的部分,進一步包括仿真硬體設備,在此情況下,包括每個虛擬機的許可證卡。圖4所示是邏輯連接到許可證卡虛擬設備A 122的VM A108和邏輯連接到許可證卡虛擬設備B 124的VM B110。圖4還顯示了VMM 104′進一步包括邏輯連接到每個許可證卡虛擬設備122和124的許可證管理器(LM)126。有關VM A108和VM B110的圖4所述仿真硬體設備是示例性的,並且在該虛擬機環境種的任何其它VM將包括耦合到LM 126的自身類似的許可證卡虛擬設備。當然,這些許可證卡(例如,122和124)被仿真為在計算機硬體102中不一定具有(或需要)物理相應部件的硬體設備。
從訪客OS A112的角度考慮,許可證卡A 122顯示為類似於通過軟體驅動器控制的任何其它外設。在啟動或引導階段期間,一旦識別到許可證卡A 122的存在,訪客OS A112就確定是否安裝了許可證卡A 122的相關驅動器。如果還沒有安裝許可證卡A 122的相關驅動器,那麼訪客OS A112嘗試搜索並安裝相關的軟體的驅動器。
LM 126的功能是自動對在VMM上運行的每個虛擬機器的作業系統,例如VM A108和VM B110,監視和實施軟體許可證限制。LM 126包括可以同時工作在虛擬計算系統的虛擬機器中許可的訪客OS數量的計數。許可的OS的數量可以是一個、兩個、兩個、或更多,其依賴於計算機用戶購買的許可證權利。至於實施,由於VMM 104′通過每個訪客OS,例如訪客OS A 112和訪客OS B114監視即插即用設備的逐條記載,所以由VMM 104′識別通過它們各自的許可證卡虛擬設備122和124的每個VM 108和110的添加並自動使用LM 126進行格式化——即,在訪客OS 112和114識別所述虛擬設備122和124時,每個許可證卡122和124自動連接到LM 126,當每個VM的作業系統開始時,該過程自動進行。此後,當許可證卡122或124需要許可證時,需要自動與LM 126自動進行通信來請求必需的許可證密鑰。如果LM不能獲得必需的許可證密鑰和特定VM的OS,那麼該VM就被VMM關閉。
圖5是顯示啟動和許可證虛擬機的作業系統軟體的方法130的流程圖。在步驟132,該方法首先包括虛擬機的初始化序列。在步驟134,請求作業系統識別許可證卡。在步驟136,VMM 104,與LM 126進行通信來請求許可證密鑰。在步驟138,LM126將密鑰和其它授權代碼傳遞給VMM 104′,其允許訪客OS繼續啟動。如果為否,在步驟144,VMM 104′停止訪客作業系統並結束方法130。隨後,在步驟142,LM 126減少其可用訪客OS許可證或密鑰的計數。在此點,經許可的訪客OS假設已經消耗了來自LM 126的一個密鑰。一旦可用訪客OS許可證的計數達到零,LM 126就不再發布額外的密鑰或授權。在可選實施例中,LM還可以包括用來自動從許可證經銷商獲得額外許可證的子系統,並且,如果獲得額外許可證不成功,那麼繼續進到關閉未許可證的訪客OS。
例如,如果可用訪客OS的計數為零,並且如果VMM 104′請求許可證密鑰,那麼LM 126將通知VMM 104′沒有可用的額外訪客OS許可證。然後,VMM 104′將中斷虛擬機的啟動序列並阻止相關虛擬機的作業系統軟體運行,如在步驟144中所示的那樣。LM 126維護許可證訪客OS的記錄。如果許可證訪客作業系統被終止,那麼VMM 104,就通知LM 126,其增加可用訪客OS的計數。許可證訪客OS的終止具有的效果是將密鑰返回給LM 126。
從LM 126到每個虛擬機的傳遞許可證密鑰是在安全傳輸介質中完成的。作為密鑰傳送處理的一部分,作業系統經銷商可以尋求傳送加密的握手信號到訪客OS來確保該訪客OS是主OS 104″的可許可版本。與訪客OS之間的通信可以通過仿真硬體設備來完成,例如,許可證卡A 124。許可證卡A 124將加密的信號傳輸到VMM 104′,其將加密的信號傳遞到主OS 104″的LM 126。圖4顯示了許可證卡124、VMM 104′和LM 126的邏輯關係。可選地,主OS 104和訪客OS通過虛擬計算系統硬體抽象層傳輸加密信號。
LM 126將周期性地查詢每個虛擬機來確認每個虛擬機的作業系統的軟體許可證狀態。該周期性的許可證檢查確認每個虛擬機的作業系統是由LM126許可證的,並且沒有虛擬機停止或超時。如果確定任意一個訪客OS沒有被LM 126許可證,那麼LM 126將確定許可證是否可用於未許可證的訪客OS,即,可用訪客OS許可證的計數是否大於零。如果檢查到未許可證的訪客OS,並且如果額外的許可證密鑰可用,那麼可用許可證的計數將被遞減,並且未許可的訪客OS將由LM 126許可證。如果檢測到未許可的訪客OS,並且如果沒有額外許可證密鑰可用,那麼未許可的訪客OS將停止或終止。
由未許可的訪客OS導致的問題可能發生在虛擬機已經停止並在物理計算機系統之間遷移的例子。在該例子中,虛擬機可以被啟動並使用可用許可證密鑰許可證用於計算機系統上。該虛擬機接著可以停止或使用不可用許可證密鑰遷移到另一個計算機系統上。由許可證管理器對虛擬機的周期查詢將檢查該遷移的虛擬機,其將導致在目的計算機中獲得遷移虛擬機的額外許可證(或通過購買或從另一個LM)或在目的計算機系統中終止遷移的虛擬機。
VM軟體許可證收益收集圖6是顯示通過使用虛擬機環境收集作業系統許可證的方法150的流程圖。更具體來說,本發明的方法150提供了在虛擬機環境中為現代或傳統的作業系統或應用程式以為軟體製造商提供持續收益流而不是一次性交易的方式收集許可證收益的裝置。
在步驟152,該方法首先包括顧客從軟體製造商請求軟體許可證。在步驟154,軟體製造商(或許可人)例如根據所請求許可證的時間周期設置所請求軟體許可證的費用量並從顧客接收相應付費。該付費可以是永久許可證協議的一次性付費方式;然而,在優選實施例中,該付費是與可更新的許可證協議相關的月或年付費(或任何其它預定的時間周期),其為軟體製造商保證固定的收益流,並如果可以升級,那麼每次更新時,還向接收軟體升級的顧客提供好處。一旦顧客開始購買或更新軟體許可證,軟體製造商就創建軟體許可證,並隨後,例如電子方式(即,通過電子郵件)通過光碟(CD)或任何合適的裝置向顧客傳送軟體許可證。在步驟156,顧客確定該許可證將配置在哪一個虛擬計數系統上。繼續參考圖4,然後,將該許可證配置在給定VMM 104′的LM 126。在圖6的步驟158,根據方法130啟動虛擬機和相關訪客OS,例如圖4的VM A108和訪客OS A 112,如圖5所述。在步驟160,任意給定VMM 104′的LM 126繼續通過監視許可證屬性確定是否存在不允許其使用的條件來監視該許可證的狀態。屬性包括例如OS類型或版本、開始日期,其建立許可證的開始、許可證的持續時間,然後,確定結束日期、和容量(即,允許多少用戶),等等。在步驟162,如果由於不違反該許可證屬性而導致該許可證有效,那麼在繼續監視的同時,如在步驟160中描述的那樣,允許執行VM和訪客OS,如在步驟164指示的那樣。然而,在步驟162,如果該許可證因為違反而不再有效,例如,在許可證屬性中建立的時間到期,那麼VMM104′停止VM和訪客OS,如在步驟166中指示的那樣。在步驟168,當VM和訪客OS被停止時,那麼就通知顧客並隨後決定他/她是否希望延伸(更新)該軟體許可證。如果顧客不希望更新該許可證協議,那麼討論中的VM和訪客OS保持停止。如果顧客希望更新該許可證協議,那麼顧客從軟體製造商獲得軟體許可證請求,如在步驟152指示的那樣。進一步,在更新時,軟體製造商可以向可能存在的顧客提供任何增加的軟體升級或支持。
繼續參考圖4、5和6,在可選實施例中,許可證管理器功能性地駐留在分離的物理機器上,該機器擔當所有可用許可證的中央儲存庫,並因此而通過提供許可證給組織範圍內的物理系統上的VMM來提供管理在企業級配置上的許可證的裝置。該安排提供了進一步的好處,在於它允許顧客動態平衡它們組織內的許可證,例如企業、伺服器級的數據中心、或在較大組織內的臺式PC上。
本發明並不限制於應用到仿真特定的計算機系統結構,尤其是Intel 80X86結構。相反,在需要在虛擬或仿真計算環境中許可證多個軟體的任何時候,都可以使用在此所公開的仿真技術。還應該明白,本發明並不限制於許可證作業系統軟體。在此所描述的技術可以用來在虛擬或仿真計算環境中建立應用軟體的許可證協議。還應該明白,本發明的用途不限制於主作業系統和許可證作業系統相同的那些計算環境中。本發明的技術可以用於主作業系統和訪客作業系統在同一家族的作業系統內的變體的那些情況中。可選地,主作業系統和一個或多個訪客作業系統可以是與不同硬體平臺相關的作業系統。
雖然已經詳細描述了本發明,但是應該明白,在不脫離由所附權利要求書定義的本發明的精神和範圍的情況下,可以對本發明做出各種變化、替換和修改。
結論此處所描述的各種系統、方法和技術可以用硬體或軟體,或在適當時用兩者的組合來實現。由此,本發明的方法和裝置,或其某些方面,可以採用包含在有形介質,如軟盤、CD-ROM、硬碟或任何其它機器可讀存儲介質中的程序代碼(即,指令)的形式,其中,當程序代碼被加載到諸如計算機等機器上並由其執行時,該機器變為用於實施本發明的裝置。在可編程計算機上的程序代碼執行的情況下,計算機一般包括處理器、處理器可讀的存儲介質(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備以及至少一個輸出設備。一個或多個程序較佳地以高級過程語言或面向對象的程式語言來實現,以與計算機系統通信。然而,如有需要,程序可以用彙編語言或機器語言來實現。在任何情況下,語言可以是已編譯或已解釋的語言,並與硬體實現相組合。
本發明的方法和裝置也可以用程序代碼的形式來實施,該程序代碼通過某一傳輸介質來發送,如通過電線或電纜、通過光纖或通過任一其它形式的傳輸,其中,當程序代碼由諸如EPROM、門陣列、可編程邏輯器件(PLD)、客戶機計算機、錄像機等機器接收被裝載到其中由其執行時,該機器變為用於實施本發明的裝置。當在通用處理器上實現時,程序代碼與處理器相結合,以提供用於調用本發明的功能的唯一裝置。
儘管結合各個附圖的較佳實施例描述了本發明,然而可以理解,在不脫離本發明的情況下,可以使用其它類似的實施例,或對所描述的實施例作出修改和添加,以執行本發明的相同功能。例如,儘管本發明的示例性實施例是在仿真箇人計算機的功能的數字設備的環境中描述的,然而本領域的技術人員可以認識到,本發明不限於這類數字設備,如本申請中所描述的,本發明可應用於任何數量的現有或新興計算設備或環境,如遊戲控制臺、手持式計算機、可攜式計算機等等,無論它們是有線還是無線的,並且本發明可應用於通過通信網絡連接並在網絡上交互的任何數量的這類計算設備。此外,應當強調,此處構想了各種計算機平臺,包括手持式設備作業系統和其它應用專用硬體/軟體接口系統,尤其是當無線聯網的設備的數量持續增長時。因此,本發明不應當限於任何單個實施例,而是相反,應當依照所附權利要求書的寬度和範圍來解釋。
最後,此處所描述的揭示的實施例可適用於其它處理器體系結構、基於計算機的系統、或系統虛擬化,並且這些實施例由此處的揭示明確地考慮在內,因此,本發明不應限於此處所描述的具體實施例,而是相反,應當被更廣泛地解釋。同樣,為除處理器虛擬化之外的目的而使用合成指令也由此處的揭示考慮在內,並且在除處理器虛擬化之外的環境中對合成指令的任何這樣的使用應當被更廣泛地包含在此處的揭示的意義之內。
權利要求
1.一種用來在虛擬機環境中許可用於多個虛擬機的軟體產品的方法,所述方法包括在虛擬機環境中按虛擬機基礎許可所述軟體產品。
2.如權利要求1所述的方法,其特徵在於,還包括在所述虛擬機環境中為所述多個虛擬機中的每個虛擬機實施許可證符合。
3.如權利要求2所述的方法,其特徵在於,在所述虛擬機環境中為所述多個虛擬機中的每個虛擬機實施許可證符合的所述元素還包括自動利用每個所述虛擬機的許可證卡虛擬設備,所述許可證卡虛擬設備邏輯上耦合到許可證管理器,只有當所述虛擬機的所述軟體產品的許可證對於該虛擬機可用並可以分配給所述虛擬機時,所述許可證管理器才允許所述軟體產品在所述虛擬機上執行。
4.如權利要求3所述的方法,其特徵在於,所述軟體產品是作業系統。
5.如權利要求3所述的方法,其特徵在於,當虛擬機需要額外的許可證時,所述許可證管理器從許可證經銷商獲得至少一個新的許可證。
6.如權利要求1所述的方法,其特徵在於,還包括當這種許可證不存在並且對於所述虛擬機不可用時,自動獲得所述虛擬機環境中的虛擬機的至少一個額外許可證。
7.如權利要求1所述的方法,其特徵在於,所述軟體產品是作業系統,所述方法還包括用於實現所述方法的下述元素啟動虛擬機,所述虛擬機包括許可證卡虛擬設備;如果許可證密鑰可用,就分配許可證密鑰給所述虛擬機的所述許可證卡;以及如果許可證卡不可用,則停止執行所述虛擬機。
8.如權利要求7所述的方法,其特徵在於,還包括,在分配許可證密鑰的元素之前,如果需要,確定許可證密鑰是否可用,如果不可用,則從許可證經銷商獲取至少一個額外的許可證密鑰。
9.一種在虛擬機環境中許可由多個虛擬機使用的軟體產品的系統,所述系統包括用來按虛擬機基礎許可虛擬機上的所述軟體產品的至少一個子系統。
10.如權利要求9所述的系統,其特徵在於,還包括用來在所述虛擬機環境中為所述多個虛擬機中的每個虛擬機實施許可證符合的至少一個子系統。
11.如權利要求10所述的系統,其特徵在於,還包括用來使用每個所述虛擬機的許可證卡虛擬設備的至少一個子系統,所述許可證卡虛擬設備邏輯上耦合到許可證管理器,只有當所述虛擬機的所述軟體產品的許可證對於該虛擬機可用並可以分配給所述虛擬機時,所述許可證管理器才允許所述軟體產品在所述虛擬機上執行。
12.如權利要求11所述的系統,其特徵在於,所述軟體產品是作業系統。
13.如權利要求11所述的系統,其特徵在於,還包括當所述虛擬機需要額外的許可證時,用來使得所述許可證管理器從許可證經銷商獲得至少一個新的許可證的至少一個子系統。
14.如權利要求9所述的系統,其特徵在於,還包括當這種許可證不存在並且對於所述虛擬機不可用時,用來在所述虛擬機環境中獲得虛擬機的至少一個額外許可證的至少一個子系統。
15.如權利要求9所述的系統,其特徵在於,所述軟體產品是作業系統,所述方法還包括至少一個子系統,用來啟動虛擬機,所述虛擬機包括許可證卡虛擬設備;如果許可證密鑰可用,分配許可證密鑰給所述虛擬機的所述許可證卡;以及如果許可證密鑰不可用,停止執行所述虛擬機。
16.如權利要求15所述的系統,其特徵在於,還包括至少一個子系統,用於在分配許可證密鑰的元素之前,如果需要,確定許可證密鑰是否可用,並且如果不可用,從許可證經銷商獲取至少一個額外許可證。
17.一種計算機可讀介質,包括用來在虛擬機環境中許可由多個虛擬機使用的軟體產品的計算機可讀指令,所述計算機可讀指令包括用來按虛擬機基礎在虛擬機上許可所述軟體產品的指令。
18.如權利要求17所述的計算機可讀指令,其特徵在於,還包括用來在所述虛擬機環境中為所述多個虛擬機的每個虛擬機實施許可證符合的指令。
19.如權利要求18所述的計算機可讀指令,其特徵在於,在所述虛擬機環境中通過使用每個所述虛擬機的許可證卡虛擬設備來對所述多個虛擬機的每個虛擬機實施許可證符合,所述許可證卡虛擬設備邏輯上耦合到許可證管理器,只有當所述虛擬機的所述軟體產品的許可證對於該虛擬機可用並可以分配給所述虛擬機時,所述許可證管理器才允許所述軟體產品在所述虛擬機上執行。
20.如權利要求19所述的計算機可讀指令,其特徵在於,還包括指令,其中,所述軟體產品是作業系統。
21.如權利要求19所述的計算機可讀指令,其特徵在於,還包括指令,用於當虛擬機需要額外的許可證時,使得所述許可證管理器從許可證經銷商獲得至少一個新的許可證。
22.如權利要求17所述的計算機可讀指令,其特徵在於,還包括指令,用於當這種許可證不存在並且對於所述虛擬機不可用時,在所述虛擬機環境中自動獲得虛擬機的至少一個額外許可證。
23.如權利要求17所述的計算機可讀指令,其特徵在於,所述軟體產品是作業系統,所述計算機可讀指令還包括指令,用來啟動虛擬機,所述虛擬機包括許可證卡虛擬設備;如果許可證密鑰可用,分配許可證密鑰給所述虛擬機的所述許可證卡;以及如果許可證密鑰不可用,停止執行所述虛擬機。
24.如權利要求23所述的計算機可讀指令,其特徵在於,還包括指令,用於在分配許可證密鑰的元素之前,如果需要,確定許可證密鑰是否可用,並且如果不可用,從許可證經銷商獲取至少一個額外許可證。
25.一種用來在虛擬機環境中許可由多個虛擬機使用的軟體產品的硬體控制設備,所述硬體控制設備包括用來按虛擬機基礎在虛擬機上許可所述軟體產品的裝置。
26.如權利要求25所述的硬體控制設備,其特徵在於,還包括用來在所述虛擬機環境中為所述多個虛擬機中的每個虛擬機實施許可證符合的裝置。
27.如權利要求26所述的硬體控制設備,其特徵在於,還包括用來自動使用每個所述虛擬機的許可證卡虛擬設備的裝置,所述許可證卡虛擬設備邏輯上耦合到許可證管理器,只有當所述虛擬機的所述軟體產品的許可證對於該虛擬機可用並可以分配給所述虛擬機時,所述許可證管理器才允許所述軟體產品在所述虛擬機上執行。
28.如權利要求27所述的硬體控制設備,其特徵在於,所述軟體產品是作業系統。
29.如權利要求27所述的硬體控制設備,其特徵在於,還包括裝置,其中當虛擬機需要額外許可證時,所述許可證管理器從許可證經銷商獲得至少一個新的許可證。
30.如權利要求25所述的硬體控制設備,其特徵在於,還包括用於當這種許可證不存在並且對於所述虛擬機不可用時,在所述虛擬機環境中自動獲得虛擬機的至少一個額外許可證的裝置。
31.如權利要求25所述的硬體控制設備,其特徵在於,所述軟體產品是作業系統,所述硬體控制設備還包括裝置,用來啟動虛擬機,所述虛擬機包括許可證卡虛擬設備;如果許可證密鑰可用,分配許可證密鑰給所述虛擬機的所述許可證卡;以及如果許可證密鑰不可用,停止執行所述虛擬機。
32.如權利要求31所述的硬體控制設備,其特徵在於,還包括裝置,用於在分配許可證密鑰的元素之前,如果需要,確定許可證密鑰是否可用,並且如果不可用,從許可證經銷商獲取至少一個額外許可證。
全文摘要
本發明的多個實施例提供了用來收集駐留在虛擬計算機系統中的作業系統和應用程式軟體的許可證收益的裝置。這些實施例的某些具體涉及到提供用來在虛擬機環境中收集現代或傳統作業系統或應用程式的許可證收益,並進一步為軟體製造商提供持續收益流,而不是一次性交易的裝置。更具體來說,某些實施例涉及通過使用在虛擬機環境中的許可證管理器提供軟體許可證實施的系統和方法,從而提供在支持傳統作業系統和應用程式的計算機系統中收集許可證收益的改進方法。最後,本發明的多個實施例涉及為運行在虛擬機環境中的作業系統和應用程式提供增加的軟體支持和升級。
文檔編號G06F9/455GK1716148SQ200510076069
公開日2006年1月4日 申請日期2005年5月30日 優先權日2004年6月30日
發明者M·內爾 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀