專利名稱:虛擬化應(yīng)用的許可與計量的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬化應(yīng)用。
背景技術(shù):
計算機程序(在本文中可被稱為“應(yīng)用”)的分發(fā)與執(zhí)行一般經(jīng)由軟件許可來進行控制。軟件許可定義了可使用軟件的條件。例如,軟件許可可指定在任何給定時間被授權(quán)使用應(yīng)用的用戶數(shù)量。在應(yīng)用并不總是以常規(guī)方式執(zhí)行的現(xiàn)代計算機環(huán)境中,軟件許可的實施可具有挑戰(zhàn)性。例如,當(dāng)計算機系統(tǒng)將應(yīng)用的執(zhí)行虛擬化(“應(yīng)用虛擬化”)時,驗證應(yīng)用具有有效的軟件許可且監(jiān)測該應(yīng)用的使用可能是困難的。這種困難的一個原因是虛擬化應(yīng)用一般流送到客戶機計算機且并不是傳統(tǒng)意義上本地地存在于客戶機計算機上。因此,在用于虛擬化應(yīng)用時,用于實施許可和監(jiān)測使用情況的常規(guī)技術(shù)可能是不兼容或者效率低下的。另外,用于交換有關(guān)軟件許可的數(shù)據(jù)和使用情況監(jiān)測的常規(guī)協(xié)議也可能是效率低下的。此處所做出的本公開正是關(guān)于這些和其他考慮事項而提出的。
發(fā)明內(nèi)容
此處描述的技術(shù)用于實施軟件許可并監(jiān)測虛擬化應(yīng)用的使用情況。通過此處呈現(xiàn)的概念和技術(shù)的實現(xiàn),可提供能實施軟件許可和監(jiān)測應(yīng)用使用情況的應(yīng)用虛擬化環(huán)境。在各實施例中,使用超文本傳輸協(xié)議(HTTP)協(xié)議將虛擬應(yīng)用從服務(wù)器流送到客戶機,以及交換有關(guān)軟件許可的數(shù)據(jù)和應(yīng)用使用情況數(shù)據(jù)。以此方式,可使用一個或多個HTTP連接將虛擬化應(yīng)用流送到客戶機、確認(rèn)并監(jiān)測??山Y(jié)合應(yīng)用虛擬化環(huán)境而實現(xiàn)此處公開的實施例。具體地,應(yīng)用虛擬化客戶機組件被配置成提供用于執(zhí)行虛擬化應(yīng)用的環(huán)境。該應(yīng)用虛擬化客戶機組件還提供用于從底層操作系統(tǒng)、其他應(yīng)用程序和系統(tǒng)資源封裝虛擬化應(yīng)用的功能。應(yīng)用虛擬化客戶機組件還可提供通過從應(yīng)用虛擬化服務(wù)器組件經(jīng)由HTTP連接流送該虛擬化應(yīng)用的所需部分,來加載虛擬化應(yīng)用的部分的功能。根據(jù)另一方面,當(dāng)啟動虛擬化應(yīng)用時,許可/計量組件驗證存在虛擬化應(yīng)用的有效軟件許可。如果存在有效軟件許可,則許可/計量組件使應(yīng)用虛擬化服務(wù)器組件將該虛擬化應(yīng)用流送到客戶機設(shè)備。許可/計量組件還可監(jiān)測虛擬化應(yīng)用的使用情況。如果對于虛擬化應(yīng)用并不存在有效軟件許可,則許可/計量組件防止服務(wù)器將該虛擬化應(yīng)用流送到客戶機設(shè)備。可使用HTTP協(xié)議在客戶機設(shè)備和應(yīng)用虛擬化服務(wù)器組件之間建立連接??墒褂迷撨B接來交換有關(guān)虛擬化應(yīng)用的許可和使用情況的數(shù)據(jù)。本發(fā)明內(nèi)容并不旨在標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在將本概述用來限制所要求保護的主題的范圍。此外,所要求保護主題不限于解決本發(fā)明的任一部分中所提及的任何或所有缺點的實現(xiàn)。
圖I是示出用于此處公開的各個實施例的一個說明性操作環(huán)境的軟件和網(wǎng)絡(luò)體系結(jié)構(gòu)圖;圖2是示出根據(jù)此處呈現(xiàn)的一個實施例的用于許可和計量虛擬化應(yīng)用的一個說明性過程的諸個方面的流程圖;以及圖3是示出用于能夠?qū)崿F(xiàn)本文所提出的各種實施例的計算系統(tǒng)的說明性計算機硬件和軟件體系結(jié)構(gòu)的計算機體系結(jié)構(gòu)圖。
具體實施例方式接下來的詳細(xì)描述涉及用于確認(rèn)軟件許可以及計量虛擬化應(yīng)用的使用的技術(shù)。如以上簡要討論的,提供了應(yīng)用虛擬化環(huán)境,其被配置為在執(zhí)行虛擬化應(yīng)用時驗證與該虛擬化應(yīng)用相關(guān)聯(lián)的軟件許可。該應(yīng)用虛擬化環(huán)境還被配置為使用許可/計量組件監(jiān)測該虛擬化應(yīng)用的使用??墒褂肏TTP協(xié)議交換有關(guān)軟件許可和虛擬化應(yīng)用的使用情況的數(shù)據(jù)。盡管在結(jié)合計算機系統(tǒng)上的操作系統(tǒng)和應(yīng)用程序的執(zhí)行而執(zhí)行的程序模塊的一般上下文中呈現(xiàn)了此處描述的主題,但是本領(lǐng)域技術(shù)人員將認(rèn)識到,其他實現(xiàn)可以結(jié)合其他類型的程序模塊來執(zhí)行。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其它類型的結(jié)構(gòu)。此外,本領(lǐng)域技術(shù)人員將明白,可以利用其他計算機系統(tǒng)配置來實施此處描述的主題,這些計算機系統(tǒng)配置包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子產(chǎn)品、小型計算機、大型計算機等等。在下面的詳細(xì)描述中,將參考構(gòu)成本發(fā)明的一部分的附圖,并且在附圖中作為說明示出了各具體實施例或示例?,F(xiàn)在將參考附圖(全部若干附圖中相同的標(biāo)號表示相同的元素),描述用于許可和計量虛擬化應(yīng)用的計算系統(tǒng)和方法的各方面。圖I是示出用于此處揭示的各個實施例的一個說明性操作環(huán)境100的軟件和網(wǎng)絡(luò)體系結(jié)構(gòu)圖。圖I中所示的說明性操作環(huán)境100包括配置為通過網(wǎng)絡(luò)106與服務(wù)器104通信的客戶機設(shè)備102??蛻魴C設(shè)備102是被配置為執(zhí)行操作系統(tǒng)108A和應(yīng)用虛擬化客戶機組件110的計算設(shè)備??蛻魴C設(shè)備102可以是標(biāo)準(zhǔn)臺式或膝上型計算機、平板計算機、智能手機或能執(zhí)行此處呈現(xiàn)的用于許可和計量虛擬化應(yīng)用的操作的任何其他類型的計算設(shè)備。 客戶機設(shè)備102還可以是被配置為提供此處公開的功能的服務(wù)器計算機。服務(wù)器104是被配置為執(zhí)行操作系統(tǒng)108B和應(yīng)用虛擬化客戶機組件116的計算系統(tǒng)。應(yīng)該理解,服務(wù)器104可以是被配置為執(zhí)行應(yīng)用虛擬化客戶機組件110的實際服務(wù)器計算機,或者可包括被配置為執(zhí)行此處描述的由服務(wù)器104所執(zhí)行的功能的另一種類型的計算機系統(tǒng)。圖I中所示的網(wǎng)絡(luò)106可包括廣域網(wǎng)或局域網(wǎng)。例如,網(wǎng)絡(luò)106可以是公司局域網(wǎng)、諸如因特網(wǎng)之類的廣域網(wǎng)、或者多個廣域網(wǎng)和局域網(wǎng)的組合。應(yīng)該理解,盡管圖I中示出了單個網(wǎng)絡(luò)106,但可使用很多其他網(wǎng)絡(luò)。還應(yīng)該理解,盡管圖I中示出了單個客戶機設(shè)備102和服務(wù)器104,此處公開的諸實施例可使用很多這樣的設(shè)備。如以上所簡要討論的,客戶機設(shè)備102被配置為執(zhí)行應(yīng)用虛擬化客戶機組件110。 應(yīng)用虛擬化客戶機組件110是被配置為提供應(yīng)用虛擬化環(huán)境的軟件組件。就此而言,應(yīng)用虛擬化客戶機組件110被配置為執(zhí)行虛擬化應(yīng)用112。
應(yīng)用虛擬化客戶機組件110提供用于從操作系統(tǒng)108A封裝虛擬化應(yīng)用112的執(zhí)行的功能。應(yīng)用虛擬化客戶機組件Iio還可提供從客戶機設(shè)備102的其他應(yīng)用程序和系統(tǒng)資源中封裝虛擬化應(yīng)用112的執(zhí)行的功能。例如,應(yīng)用虛擬化客戶機組件110可將操作系統(tǒng) 108A或客戶機設(shè)備102的資源虛擬化。當(dāng)虛擬化應(yīng)用112嘗試訪問物理資源時,應(yīng)用虛擬化客戶機組件110將虛擬化資源呈現(xiàn)給應(yīng)用112。以此方式,可以不影響由操作系統(tǒng)108A 或客戶機設(shè)備102所展現(xiàn)的實際資源的方式執(zhí)行虛擬化應(yīng)用112。根據(jù)其他方面,應(yīng)用虛擬化客戶機組件110還提供用于按需加載虛擬化應(yīng)用112 的部分的功能。具體地,應(yīng)用虛擬化客戶機組件Iio可結(jié)合應(yīng)用虛擬化服務(wù)器組件116操作來將虛擬化應(yīng)用112的所需部分從服務(wù)器104流送到客戶機設(shè)備102。以此方式,可在客戶機設(shè)備102處按需訪問虛擬化應(yīng)用112,而無需完整地將虛擬化應(yīng)用112安裝在客戶機設(shè)備102上。有關(guān)應(yīng)用虛擬化客戶機組件110所提供的用于封裝虛擬化應(yīng)用112的執(zhí)行、 以及用于將虛擬化應(yīng)用112從服務(wù)器104流送到客戶機設(shè)備102的各功能的附加細(xì)節(jié)可在 2007 年 5 月 29 日提交的、題為 “Systems and Methods for Delivering Content over a Computer Network(用于通過計算機網(wǎng)絡(luò)傳遞內(nèi)容的系統(tǒng)與方法)”的美國專利 No. 7,225,264 ;2007 年4月 3 日提交的、題為 “Method and System for Serving Software Applications to Client Computers (用于將軟件應(yīng)用提供給客戶機計算機的方法與系統(tǒng))”的美國專利No. 7,200,632 ;2008年11月11日提交的、題為“Operating System Abstraction and Protection Layer (操作系統(tǒng)抽象與保護層)”的美國專利 No. 7,451,451 ;以及 2010年9 月 14 日提交的、題為“Serving Software Applications from Servers for Client Computers (從服務(wù)器向客戶機計算機提供軟件應(yīng)用)”的美國專利 No. 7,797,372中可找到,上述每一個專利通過引用整體結(jié)合到此處??墒褂脗鬏攨f(xié)議將虛擬化應(yīng)用112從應(yīng)用虛擬化服務(wù)器組件116流送到應(yīng)用虛擬化客戶機組件110。例如,在此處公開的一個實施例中,使用HTTP協(xié)議將虛擬化應(yīng)用從服務(wù)器104流送到客戶機102。相比使用典型的流傳送協(xié)議(例如,實時流傳送協(xié)議(RSTP)), 使用HTTP協(xié)議將虛擬化應(yīng)用112從服務(wù)器104流送到客戶機102可能是更有效率的且更快的。根據(jù)一個實現(xiàn),應(yīng)用虛擬化服務(wù)器組件116也可被配置為提供軟件許可實施和計量功能。例如,在一個實施例中提供被配置為確認(rèn)與虛擬化應(yīng)用112相關(guān)聯(lián)的軟件許可的許可/計量組件114。如果可確認(rèn)該軟件協(xié)議,該許可/計量組件114允許將虛擬化應(yīng)用 112流送到客戶機設(shè)備102。如果該軟件協(xié)議得不到確認(rèn),該許可/計量組件114將不允許虛擬化應(yīng)用112被流送到客戶機設(shè)備102。許可/計量組件114可以各種方式配置來幫助確認(rèn)虛擬化應(yīng)用112的軟件協(xié)議。 例如,許可/計量組件114可通過將與由許可/計量組件114所存儲或可訪問的虛擬化應(yīng)用112相關(guān)聯(lián)的序列號與由客戶機設(shè)備102的用戶輸入并在服務(wù)器104處接收到的序列號相比較,來確認(rèn)軟件許可。如果由用戶輸入的序列號與由許可/計量組件114所存儲或可訪問的序列號相匹配,許可/計量組件114允許應(yīng)用虛擬化服務(wù)器組件116來將所請求的虛擬化應(yīng)用112流送到應(yīng)用虛擬化客戶機組件110。如果序列號不匹配,則將不流送虛擬化應(yīng)用112。
許可/計量組件114還可通過接收并處理從在客戶機設(shè)備102上執(zhí)行的虛擬化應(yīng)用112接收的認(rèn)證請求來確認(rèn)軟件許可。在此方面,通過與本地或遠(yuǎn)程的服務(wù)器計算機通信,可將很多應(yīng)用配置為執(zhí)行認(rèn)證過程。通過合適的數(shù)據(jù)交換,應(yīng)用可認(rèn)證自己并開始執(zhí)行。在一個實施例中,許可/計量組件114被配置為接收來自在客戶機設(shè)備102上執(zhí)行的虛擬化應(yīng)用112的認(rèn)證請求并作出響應(yīng)。在這方面,許可/計量組件114可展現(xiàn)一個或多個應(yīng)用程序接口(API)用于接收這些調(diào)用。還可通過該許可/計量組件114來展現(xiàn)各 API以使由各制造商創(chuàng)建的應(yīng)用能對許可/計量組件114進行API調(diào)用以供認(rèn)證。響應(yīng)于通過所展現(xiàn)的API接收到認(rèn)證請求,許可/計量組件114可確定是否可允許應(yīng)用112的執(zhí)行。例如,許可/計量組件114可基于對應(yīng)用112的可用許可的檢查來確定是否可允許應(yīng)用112的執(zhí)行。也可利用其他機制。許可/計量組件114還可監(jiān)測一旦虛擬化應(yīng)用112已被流送到客戶機設(shè)備102,如何使用該虛擬化應(yīng)用112。許可/計量組件114可收集有關(guān)如何使用虛擬化應(yīng)用112、用戶登錄、使用該虛擬化應(yīng)用112多長時間、用戶何時打開或關(guān)閉該虛擬化應(yīng)用112等的信息。 將在下文中相關(guān)于圖2提供有關(guān)應(yīng)用虛擬化客戶機組件110、許可/計量組件114、應(yīng)用虛擬化服務(wù)器組件116、客戶機設(shè)備102、和服務(wù)器104的操作的附加細(xì)節(jié)。應(yīng)該理解的是盡管許可/計量組件114被圖示為在服務(wù)器104上執(zhí)行,但這個組件還可部分或全部地在客戶機設(shè)備中執(zhí)行。例如,在一個實施例中,許可/計量客戶機組件在客戶機設(shè)備102上執(zhí)行來執(zhí)行上述許可和計量功能的全部或部分。另外,在其他實施例中,此處描述的由許可/計量組件114執(zhí)行的功能可與應(yīng)用虛擬化服務(wù)器組件116、應(yīng)用虛擬化客戶機組件110、或者在服務(wù)器104、客戶機102或另一個計算機上執(zhí)行的其他程序全部直接集成。應(yīng)該理解,可使用HTTP協(xié)議將有關(guān)虛擬化應(yīng)用12的許可或使用情況的數(shù)據(jù)在客戶機設(shè)備102和服務(wù)器104之間傳輸。其他實施例對本領(lǐng)域技術(shù)人員而言應(yīng)該是顯而易見的。圖2是示出說明此處公開的用于虛擬化應(yīng)用的許可實施和計量的一個說明性過程的各方面的例程200的流程圖。應(yīng)該了解,這里參考圖2和其他附圖所描述的邏輯操作是
(I)作為計算機實現(xiàn)的動作或在計算系統(tǒng)上運行的程序模塊的序列和/或(2)計算系統(tǒng)內(nèi)的互連機器邏輯電路或電路模塊來實現(xiàn)的。取決于計算系統(tǒng)的性能及其他要求,可以選擇不同的實現(xiàn)。因此,此處所描述的邏輯操作被不同地稱為操作、結(jié)構(gòu)設(shè)備、動作或模塊。這些操作、結(jié)構(gòu)設(shè)備、動作和模塊可用軟件、固件、專用數(shù)字邏輯,及其任何組合來實現(xiàn)。還應(yīng)該明白,可以執(zhí)行比附圖中示出并在此處描述的操作更多或更少的操作。這些操作還可以按與此處所描述的不同的次序來執(zhí)行。例程200在操作202開始,其中應(yīng)用虛擬化服務(wù)器組件16確定是否已經(jīng)接收到啟動虛擬化應(yīng)用112的請求。例如,客戶機設(shè)備102的用戶可作出啟動應(yīng)用112的請求。如果應(yīng)用虛擬化服務(wù)器組件116確定已經(jīng)接收到執(zhí)行虛擬化應(yīng)用112的請求,例程200從操作202行進至操作204。在操作204,許可/計量組件114確定對于所請求的虛擬化應(yīng)用112是否存在有效的軟件許可。如果許可過期或不存在,那么軟件許可可能是無效的。如果請求的項目超過了許可的項目,那么許可也可能是無效的。例如,許可可指示只有應(yīng)用的特定數(shù)量的實例可被并發(fā)地執(zhí)行。還可出于其他理由認(rèn)為軟件許可是無效的。如上所述,一旦用戶請求且軟件許可有效,應(yīng)用虛擬化服務(wù)器組件116就可將虛擬化應(yīng)用112流送到應(yīng)用虛擬化客戶機組件110。如果許可/計量組件114確定對于所請求的應(yīng)用112存在有效軟件許可,例程220從操作204行進至操作208。如果許可/計量組件114確定對于所請求的應(yīng)用112不存在有效軟件許可,例程200行進至操作206,其中防止服務(wù)器104將虛擬化應(yīng)用112流送到客戶機設(shè)備102。例程200從操作206繼續(xù)至操作 214,在那里結(jié)束。在操作208,應(yīng)用虛擬化服務(wù)器組件116將應(yīng)用112的全部或部分流送到客戶機設(shè)備102。如上所述,應(yīng)用112可在HTTP連接上被流送到客戶機設(shè)備。從操作208,例程200 行進至操作210,其中應(yīng)用虛擬化客戶機組件110虛擬化應(yīng)用112。如上所述,這可包括從底層操作系統(tǒng)、其他應(yīng)用程序和系統(tǒng)資源封裝虛擬化應(yīng)用112。從操作210,例程200行進至操作212,其中許可/計量組件114監(jiān)測虛擬化應(yīng)用 112的執(zhí)行并產(chǎn)生相關(guān)于該虛擬化應(yīng)用112的執(zhí)行和使用的信息(此處這可被稱為“使用情況數(shù)據(jù)”)??僧a(chǎn)生的信息可能相關(guān)于如何使用虛擬化應(yīng)用112、虛擬化應(yīng)用112使用了多長時間等。從操作212,例程200行進至操作204,其中在客戶機設(shè)備102和服務(wù)器104之間以不同的同步時間來重新驗證應(yīng)用112的許可。相應(yīng)地,持續(xù)地監(jiān)測虛擬化應(yīng)用112來確定是否應(yīng)該撤銷虛擬化應(yīng)用112的使用(因為許可不再有效),且確保當(dāng)許可不再有效時虛擬化應(yīng)用112是未公布的。通過在應(yīng)用執(zhí)行過程中驗證許可,此處公開的技術(shù)可確保即使在應(yīng)用112執(zhí)行時,也可合適地實施軟件許可。圖3是示出用于能夠?qū)崿F(xiàn)本文所提出的各種實施例的計算系統(tǒng)的說明性計算機硬件和軟件體系結(jié)構(gòu)的計算機體系結(jié)構(gòu)圖。圖3的計算機體系結(jié)構(gòu)示出了傳統(tǒng)臺式計算機、膝上計算機,或服務(wù)器計算機,并可被用來執(zhí)行此處描述的各種軟件組件。圖3所示的計算機體系結(jié)構(gòu)包括中央處理單元302 ( “CPU”)、包括隨機存取存儲器314( “RAM”)和只讀存儲器(“ROM”)316的系統(tǒng)存儲器308、以及將存儲器耦合至CPU 302的系統(tǒng)總線304。包含諸如在啟動時有助于在計算機300內(nèi)的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)(“BIOS”)被存儲在ROM 316中。計算機300還包括用于存儲操作系統(tǒng)318、應(yīng)用程序和其他程序模塊的大容量存儲設(shè)備310,這將在以下更為詳細(xì)地描述。大容量存儲設(shè)備310通過連接至總線304的大容量存儲控制器(未示出)連接到 CPU 302。大容量存儲設(shè)備310及其相關(guān)聯(lián)的計算機可讀存儲介質(zhì)為計算機300提供非易失性的存儲。雖然對此處包含的計算機可讀介質(zhì)的描述引用了諸如硬盤或CD-ROM驅(qū)動器等大容量存儲設(shè)備,但本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,計算機可讀介質(zhì)可以是可由計算機300 訪問的任何可用計算機存儲介質(zhì)。作為示例而非限制,計算機可讀存儲介質(zhì)可包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、 可移動和不可移動介質(zhì)。例如,計算機可讀存儲介質(zhì)包括,但并不限于,RAM、ROM、EPR0M、 EEPR0M、閃存或其他固態(tài)存儲器技術(shù),⑶-ROM、數(shù)字多功能盤(“DVD”)、HD_DVD、藍(lán)光或其他光學(xué)存儲,磁帶盒、磁帶、磁盤存儲器或其他磁存儲設(shè)備,或可以用來存儲所需信息并可由計算機300訪問的任何其他非易失性介質(zhì)??梢岳斫?,此處的計算機可讀介質(zhì)也包括通信介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù), 并包括任意信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”是指其一個或多個特征以在信號中對信息進行編碼的方式來設(shè)置或改變的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接之類的有線介質(zhì),以及諸如聲學(xué)、RF、紅外及其他無線介質(zhì)之類的無線介質(zhì)。 上述中任一組合也應(yīng)包括在計算機可讀介質(zhì)的范圍之內(nèi)。計算機可讀存儲介質(zhì)不包括通信介質(zhì)。根據(jù)各實施例,計算機300可以使用通過諸如網(wǎng)絡(luò)320之類的網(wǎng)絡(luò)到遠(yuǎn)程計算機的邏輯連接來在聯(lián)網(wǎng)環(huán)境中操作。計算機300可以通過連接至總線304的網(wǎng)絡(luò)接口單元 306來連接到網(wǎng)絡(luò)320。應(yīng)當(dāng)理解,網(wǎng)絡(luò)接口單元306還可以被用來連接到其他類型的網(wǎng)絡(luò)和遠(yuǎn)程計算機系統(tǒng)。計算機300還可包括用于接收和處理來自多個其他設(shè)備的輸入的輸入 /輸出控制器312,這些設(shè)備包括鍵盤、鼠標(biāo)或者電子指示筆(未在圖3中示出)。類似地, 輸入/輸出控制器可以提供至顯示屏、打印機或其他類型的輸出設(shè)備(也未在圖3中示出) 的輸出。如前簡述的那樣,多個程序模塊和數(shù)據(jù)文件可以存儲在計算機300的海量存儲設(shè)備310和RAM 314內(nèi),包括適于控制聯(lián)網(wǎng)的臺式、膝上型或服務(wù)器計算機的操作的操作系統(tǒng) 318。大容量存儲設(shè)備310和RAM 314還可存儲一個或多個程序模塊。具體而言,大容量存儲設(shè)備310和RAM 314可存儲虛擬化應(yīng)用112、應(yīng)用虛擬化服務(wù)器組件116、許可/計量組件114、和/或上述其他軟件組件。大容量存儲設(shè)備310和RAM 314還可存儲其他程序模塊和數(shù)據(jù)。一般而言,軟件應(yīng)用或模塊在加載到CPU 302中并執(zhí)行時,可將CPU 302和整個計算機300從通用計算系統(tǒng)變換成被定制成執(zhí)行此處所呈現(xiàn)功能的專用計算系統(tǒng)。CPU 302 可以用任意數(shù)量的晶體管或其他分立的電路元件(它們可以分別地或共同地呈現(xiàn)任意數(shù)量的狀態(tài))構(gòu)建。更具體地說,CPU 302可以響應(yīng)軟件或模塊內(nèi)包含的可執(zhí)行的指令,作為一個或多個有限狀態(tài)機來操作。這些計算機可執(zhí)行的指令可以通過指定CPU 302如何在多個狀態(tài)之間轉(zhuǎn)換來轉(zhuǎn)換CPU 302,從而在物理上轉(zhuǎn)換構(gòu)成CPU 302的晶體管或其他分立的硬件兀件。通過將軟件或模塊編碼到海量存儲設(shè)備上,還可變換海量存儲設(shè)備或相關(guān)聯(lián)的計算機可讀存儲介質(zhì)的物理結(jié)構(gòu)。在本說明書的不同實現(xiàn)中,物理結(jié)構(gòu)的具體變換可取決于各種因素。這些因素的示例包括但不限于用來實現(xiàn)計算機可讀存儲介質(zhì)、計算機可讀存儲介質(zhì)是否被表征為主存儲還是次級存儲等技術(shù)。例如,如果計算機可讀取的存儲介質(zhì)是作為基于半導(dǎo)體的存儲器實現(xiàn)的,則當(dāng)軟件被編碼到其中時,軟件或模塊可以轉(zhuǎn)換半導(dǎo)體存儲器的物理狀態(tài)。例如,軟件可以轉(zhuǎn)換構(gòu)成半導(dǎo)體存儲器的晶體管、電容器或其他分立的電路元件的狀態(tài)。作為另一個示例,計算機可讀取的存儲介質(zhì)可以使用磁性或光學(xué)技術(shù)來實現(xiàn)。在這樣的實現(xiàn)方式中,當(dāng)軟件被編碼到其中時,軟件或模塊可以轉(zhuǎn)換磁性或光學(xué)介質(zhì)的物理狀態(tài)。這些變換可以包括改變給定磁性介質(zhì)內(nèi)的特定位置的磁性。這些變換還可以包括改變給定光學(xué)介質(zhì)內(nèi)的特定位置的物理特征或特性,以改變這些位置的光學(xué)特性。在沒有偏離本說明書的范圍和精神的情況下,物理介質(zhì)的其他轉(zhuǎn)換也是可以的,前面提供的示例只是為了便于此討論?;谇笆鰞?nèi)容,應(yīng)當(dāng)理解,在此已經(jīng)提出了用于虛擬化應(yīng)用的實施和計量的技術(shù)。 雖然以計算機結(jié)構(gòu)特征、方法動作、以及計算機可讀介質(zhì)專用的語言描述了本文呈現(xiàn)的主題,但是應(yīng)該理解,在所附權(quán)利要求書中所限定的本發(fā)明不一定僅限于本文描述的具體特征、動作、或介質(zhì)。相反,這些具體特征、動作和介質(zhì)是作為實現(xiàn)權(quán)利要求的示例形式來公開的。上述主題僅作為說明提供,并且不應(yīng)被解釋為限制??蓪Υ颂幩龅闹黝}作出各種修改和改變,而不必遵循所示和所述的示例實施例和應(yīng)用,且不背離所附權(quán)利要求書中所述的本發(fā)明的真正精神和范圍。
權(quán)利要求
1.一種包括執(zhí)行計算機實現(xiàn)的操作的計算機實現(xiàn)的方法,所述計算機實現(xiàn)的操作用于:經(jīng)由超文本傳輸協(xié)議(HTTP)連接接收啟動虛擬化應(yīng)用(112)的請求;響應(yīng)于所述請求確定所述虛擬化應(yīng)用(112)是否具有有效的軟件許可;以及響應(yīng)于確定所述虛擬化應(yīng)用(112)具有有效的軟件許可,將所述虛擬化應(yīng)用(112)的至少一部分經(jīng)由所述HTTP連接流送到客戶機設(shè)備(102)。
2.如權(quán)利要求I所述的計算機實現(xiàn)的方法,其特征在于,還包括響應(yīng)于確定所述虛擬化應(yīng)用不具有有效的軟件許可,不經(jīng)由所述HTTP連接流送所述虛擬化應(yīng)用。
3.如權(quán)利要求2所述的計算機實現(xiàn)的方法,其特征在于,還包括監(jiān)測所述虛擬化應(yīng)用的執(zhí)行;基于對所述虛擬化應(yīng)用的執(zhí)行的監(jiān)測而產(chǎn)生描述所述虛擬化應(yīng)用的使用情況的使用情況數(shù)據(jù);以及經(jīng)由HTTP連接將所述使用情況數(shù)據(jù)傳輸?shù)椒?wù)器計算機。
4.如權(quán)利要求3所述的計算機實現(xiàn)的方法,其特征在于,由于所述軟件許可過期或不存在,所述軟件許可是無效的。
5.如權(quán)利要求I所述的計算機實現(xiàn)的方法,其特征在于,確定所述虛擬化應(yīng)用是否具有有效的軟件許可包括確定由客戶機設(shè)備所提供的序列號是否與關(guān)聯(lián)于所述軟件許可的序列號相匹配。
6.如權(quán)利要求I所述的計算機實現(xiàn)的方法,其特征在于,確定所述應(yīng)用是否具有有效的軟件許可包括聯(lián)系服務(wù)器上執(zhí)行的許可/計量組件來確定所述虛擬化應(yīng)用是否具有有效的軟件許可。
7.如權(quán)利要求6所述的計算機實現(xiàn)的方法,其特征在于,所述許可/計量組件展現(xiàn)應(yīng)用編程接口(API)來驗證所述虛擬化應(yīng)用是否存在有效的軟件許可。
8.如權(quán)利要求I所述的計算機實現(xiàn)的方法,其特征在于,確定所述虛擬化應(yīng)用是否具有有效地軟件許可在流送所述虛擬化應(yīng)用之前進行。
9.一種其上存儲有計算機可執(zhí)行指令的計算機可讀存儲介質(zhì),其特征在于,所述計算機可執(zhí)行指令在由計算機執(zhí)行時使得所述計算機經(jīng)由超文本傳輸協(xié)議(HTTP)連接接收啟動虛擬化應(yīng)用(112)的請求;響應(yīng)于接收到所述請求,確定所述虛擬化應(yīng)用(112)是否具有有效的軟件許可;以及響應(yīng)于確定所述虛擬化應(yīng)用(112)具有有效的軟件許可,將所述虛擬化應(yīng)用(112)的至少一部分經(jīng)由所述HTTP連接流送到客戶機設(shè)備。
10.如權(quán)利要求11所述的計算機可讀存儲介質(zhì),其上還存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令在被所述計算機執(zhí)行時使所述計算機在超過了所述應(yīng)用的可用軟件許可的數(shù)量時不流送所述虛擬化應(yīng)用。
全文摘要
本發(fā)明涉及虛擬化應(yīng)用的許可與計量。當(dāng)接收到執(zhí)行虛擬化應(yīng)用的請求時,許可/計量組件確定所請求的應(yīng)用是否存在有效許可。如果該許可/計量組件確定所請求的應(yīng)用存在有效許可,應(yīng)用虛擬化服務(wù)器組件將該虛擬化應(yīng)用流送到客戶機設(shè)備并允許該應(yīng)用執(zhí)行。如果該許可/計量組件確定所請求的應(yīng)用不存在有效許可,應(yīng)用虛擬化服務(wù)器組件防止該虛擬化應(yīng)用被流送到客戶機設(shè)備。一旦該虛擬化應(yīng)用被流送到客戶機設(shè)備,許可/計量組件監(jiān)測該虛擬化應(yīng)用的使用情況。
文檔編號G06F21/00GK102594865SQ20111043450
公開日2012年7月18日 申請日期2011年12月22日 優(yōu)先權(quán)日2010年12月23日
發(fā)明者C·W·小梅福德, K·阿萊希奧恩-蒂爾南, L·P·德索扎 申請人:微軟公司