專利名稱:用于供應軟件的方法和裝置的制作方法
技術領域:
本專利涉及計算機,尤其涉及計算機操作系統(tǒng)。
背景世界人口中相當大的一部分無法負擔擁有計算機和/或允許對計算機的有效使用的各種軟件。存在向發(fā)展中國家的人們提供對計算的可負擔訪問的需求。考慮到軟件產(chǎn)業(yè)的傳統(tǒng)結構,其中軟件許可證一般在永久許可證的基礎上出售,這種情況也是真實的。作為不具有購買各種軟件的永久許可證的足夠資源的結果,人們被禁止使用這樣的軟件,即使是用于訓練目的等的短期基礎上。而且,即使在發(fā)達國家中,當計算機用戶需要在有限的時間內(nèi)使用特定軟件時,用戶由于必須購買該特定軟件的永久許可證而感到沮喪。
這在計算機操作系統(tǒng)的情況中尤為真實。使用技術先進的計算機和計算能力以及經(jīng)由因特網(wǎng)可用的資源,復雜操作系統(tǒng)被用于操作計算機及其與因特網(wǎng)和其它資源的通信是必需的。然而,與軟件情況相同,操作系統(tǒng)一般也以永久許可證出售,而這樣的永久許可證的成本與各個第三世界國家的人們的購買力相比相當高昂。
嘗試了各種商業(yè)模型來提供用于允許使用軟件而無需購買永久許可證的替換解決方案。例如,各個公司提供基于應用服務供應商(ASP)模型的軟件,其中駐留在諸如因特網(wǎng)等網(wǎng)絡上的服務器上的軟件可由用戶通過登錄該服務器來訪問。然而,這種方法要求用戶持續(xù)經(jīng)由網(wǎng)絡連接至服務器。這在各個發(fā)展中國家中不是可行的解決方案,在這些國家中對因特網(wǎng)的接入是不可靠且昂貴的?;蛘?,軟件供應商通常允許用戶下載軟件以便在固定時限內(nèi)使用,一般用于試用目的,在此之后用戶必須購買軟件的永久許可證。然而,用于使用這樣的試用軟件的時限通常是固定的,且用戶沒有購買他或她自己選擇的時限或?qū)υ撛囉密浖褂美m(xù)展附加的固定時間量的選擇。如可以容易理解的,存在對以使用戶可按照各種不同方式購買服務的方式向用戶提供軟件服務的需求。
概述一種動態(tài)軟件供應系統(tǒng)允許基于所需的商業(yè)過程在多個不同的計算設備上供應軟件。該動態(tài)軟件供應系統(tǒng)允許用戶向操作系統(tǒng)供應服務或第三方請求對操作系統(tǒng)的特定的時間期限、特定使用量或任何其它所需方式的使用。供應服務處理來自用戶或第三方的請求以供應操作系統(tǒng)的使用,且響應于該請求,為由該請求指定的特定設備供應對操作系統(tǒng)的使用。該動態(tài)軟件激活系統(tǒng)還包括位于使用該操作系統(tǒng)的設備上的本地供應模塊,其中本地供應模塊基于從供應服務接收的指令激活和停用該操作系統(tǒng)。
在一種替換實現(xiàn)中,該動態(tài)軟件供應系統(tǒng)允許用戶通過購買預付卡來購買對軟件的使用。使用預付卡,用戶能夠下載供應包,供應包允許用戶使用該軟件指定的時間量。在又一實現(xiàn)中,該動態(tài)軟件系統(tǒng)允許承保人連同軟件和使用該軟件的指定時間量一起出售計算機。
在又一替換實現(xiàn)中,該動態(tài)軟件供應系統(tǒng)允許用戶通過購買預付卡來購買對操作系統(tǒng)的使用。使用預付卡,用戶能夠下載供應包,供應包允許用戶使用操作系統(tǒng)指定的時間量。在又一實現(xiàn)中,該動態(tài)軟件系統(tǒng)允許承保人連同操作系統(tǒng)和使用該操作系統(tǒng)的指定時間量一起出售計算機。
在又一實現(xiàn)中,該動態(tài)軟件供應系統(tǒng)包括具有用于執(zhí)行包括以下步驟的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì)接收注冊被供應設備的注冊請求,其中注冊請求包括被供應設備的硬件標識;生成被供應設備證書;接收用于生成被供應設備包的包生成請求,其中包生成請求包括被供應設備初始化密鑰;以及生成被供應設備包,其中被供應設備包包括授權服務在被供應設備上的第一使用量的信息。
附圖簡述
圖1是互連多個計算資源的網(wǎng)絡的框圖;圖2是可連接至圖1的網(wǎng)絡的計算機的框圖;圖3是用于在圖1的網(wǎng)絡上的計算機上供應操作系統(tǒng)的軟件供應系統(tǒng)的框圖;圖4是描述計算機在圖3的軟件供應系統(tǒng)上的注冊的流程圖;圖5是圖3的軟件供應系統(tǒng)的核心供應系統(tǒng)的框圖;圖6是圖5的核心供應系統(tǒng)所使用的核心數(shù)據(jù)庫的框圖;圖7是圖3的核心軟件供應系統(tǒng)所使用的分發(fā)數(shù)據(jù)庫的框圖;圖8是圖3的軟件供應系統(tǒng)的本地供應模塊的框圖;
圖9是圖3的軟件供應系統(tǒng)所使用的密鑰注冊程序的流程圖;圖10是圖3的軟件供應系統(tǒng)所使用的包生成程序的流程圖;圖11是圖3的軟件供應系統(tǒng)所使用的引導程序的流程圖;圖12是圖3的軟件供應系統(tǒng)所使用的包分發(fā)程序的流程圖;圖13示出圖8的本地供應模塊的操作情形的流程圖;圖14示出圖8的本地供應模塊的操作情形的另一流程圖;圖15示出圖8的本地供應模塊的操作情形的另一流程圖;圖16示出圖8的本地供應模塊的操作情形的另一流程圖;圖17示出圖8的本地供應模塊的操作情形的又一流程圖;圖18示出在圖17的操作情形期間向用戶呈現(xiàn)的示例性GUI;圖19示出在圖17的操作情形期間向用戶呈現(xiàn)的另一示例性GUI;圖20示出在圖17的操作情形期間向用戶呈現(xiàn)的另一示例性GUI;圖21示出在圖17的操作情形期間向用戶呈現(xiàn)的另一示例性GUI;圖22示出在圖17的操作情形期間向用戶呈現(xiàn)的另一示例性GUI;圖23示出在圖17的操作情形期間向用戶呈現(xiàn)的另一示例性GUI;以及圖24示出在圖17的操作情形期間向用戶呈現(xiàn)的另一示例性GUI。
描述盡管以下文本描述了各個不同實施例的詳細描述,但應理解,該描述的法定范圍由本專利所附的權利要求書的文字定義。該詳細描述將被解釋為僅為示例性而沒有描述每個可能的實施例,因為描述每個可能的實施例即使不是不可能也是不切實際的??墒褂卯斍暗募夹g或本專利的申請日之后開發(fā)的技術來實現(xiàn)各種替換實施例,它們?nèi)月淙攵x本發(fā)明的權利要求書的范圍之內(nèi)。
還應理解,除非使用語句“如此處所使用的,術語‘__’此處被定義為指的是…”或類似語句在本專利中明確地定義術語,否則不旨在顯式或隱式地限制該術語的意義來超出其普通或平常的意義,這樣的術語不應被解釋為被限制于基于本專利的任何章節(jié)中作出的任何陳述(除權利要求書的語言之外)的范圍中。就本專利所附的權利要求書中所述的任何術語在本專利中以與單數(shù)含義一致的方式被引用而言,這是僅為清楚起見以便不混淆讀者,而不旨在這樣的權利要求術語以隱式等方式被限于該單數(shù)意義。最后,除非通過敘述詞語“裝置”以及功能而沒有敘述任何結構來定義權利要求要素,否則不旨在將任何權利要求元素的范圍基于35U.S.C.§112第六段的應用來解釋。
網(wǎng)絡圖1示出可用于實現(xiàn)動態(tài)軟件供應系統(tǒng)的網(wǎng)絡10。網(wǎng)絡10可以是因特網(wǎng)、虛擬專用網(wǎng)絡(VPN)、或允許一臺或多臺計算機、通信設備、數(shù)據(jù)庫等彼此通信連接的任何其它網(wǎng)絡。網(wǎng)絡10可經(jīng)由以太網(wǎng)16和路由器18以及陸上通訊線20連接至個人計算機12和計算機終端14。另一方面,網(wǎng)絡10可經(jīng)由無線通信站26和無線鏈路28無線連接至膝上型計算機22和個人數(shù)據(jù)助理24。類似地,服務器30可使用通信鏈路32連接至網(wǎng)絡10,大型機34可使用另一通信鏈路36連接至網(wǎng)絡10。如將在以下更詳細描述的,動態(tài)軟件供應系統(tǒng)的一個或多個組件可被存儲在連接至網(wǎng)絡10的各個設備中的任何一個上并在其上操作。
計算機圖2示出可連接至網(wǎng)絡10且可用于實現(xiàn)動態(tài)軟件供應系統(tǒng)的一個或多個組件的計算機110形式的計算設備。計算機110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲器130和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干類型的總線結構中的任一種,包括存儲器總線或存儲器控制器、外圍總線和使用各種總線體系結構中的任一種的局部總線。作為示例,而非限制,這樣的體系結構包括工業(yè)標準體系結構(ISA)總線、微通道體系結構(MCA)總線、擴展的ISA(EISA)總線、視頻電子技術標準協(xié)會(VESA)局部總線和外圍部件互連(PCI)總線(也被稱為Mezzanine總線)。
計算機110通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能夠被計算機110訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例,而非限制,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以任何方法或技術實現(xiàn)的用于存儲諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或能用于存儲所需信息且可以由計算機110訪問的任何其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術語“已調(diào)制數(shù)據(jù)信號”指的是這樣一種信號,其一個或多個特征以在信號中編碼信息的方式被設定或更改。作為示例,而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡或直接線連接,以及無線介質(zhì),諸如聲學、射頻、紅外線和其它無線介質(zhì)。上述中任一個的組合也應包括在計算機可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲器130包括易失性或非易失性存儲器形式的計算機存儲介質(zhì),諸如只讀存儲器(ROM)131和隨機存取存儲器(RAM)132。基本輸入/輸出系統(tǒng)133(BIOS)包含有助于諸如啟動時在計算機110中元件之間傳遞信息的基本例程,它通常存儲在ROM 131中。RAM 132通常包含處理單元120可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖1示出了操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算機110也可以包括其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作為示例,圖1示出了從不可移動、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動器140,從可移動、非易失性磁盤152中讀取或向其寫入的磁盤驅(qū)動器151,以及從諸如CD ROM或其它光學介質(zhì)等可移動、非易失性光盤156中讀取或向其寫入的光盤驅(qū)動器155??梢栽谑纠圆僮鳝h(huán)境下使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器141通常經(jīng)由諸如接口140等不可移動存儲器接口連接至系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通常由諸如接口150等可移動存儲器接口連接至系統(tǒng)總線121。
以上描述和在圖1中示出的驅(qū)動器及其相關聯(lián)的計算機存儲介質(zhì)為計算機110提供了對計算機可讀指令、數(shù)據(jù)結構、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖1中,硬盤驅(qū)動器141被示為存儲操作系統(tǒng)144、應用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應用程序145、其它程序模塊146和程序數(shù)據(jù)147在這里被標注了不同的標號是為了說明至少它們是不同的副本。用戶可以通過輸入設備,諸如鍵盤162和定點設備161(通常指鼠標、跟蹤球或觸摸墊)向計算機20輸入命令和信息。其它輸入設備(未示出)可以包括麥克風、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設備通常經(jīng)由耦合至系統(tǒng)總線的用戶輸入接口160連接至處理單元120,但也可以由其它接口或總線結構,諸如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器191或其它類型的顯示設備也經(jīng)由諸如視頻接口190的接口連接至系統(tǒng)總線121。除監(jiān)視器以外,計算機也可以包括其它外圍輸出設備,諸如揚聲器197和打印機196,它們可以通過輸出外圍接口190連接。
計算機110可使用至一個或多個遠程計算機,諸如遠程計算機180的邏輯連接在網(wǎng)絡化環(huán)境下操作。遠程計算機180可以是個人計算機、服務器、路由器、網(wǎng)絡PC、對等設備或其它常見網(wǎng)絡節(jié)點,且通常包括上文相對于計算機110描述的許多或所有元件,盡管在圖1中只示出存儲器存儲設備181。圖1中所示邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可以包括其它網(wǎng)絡。這樣的連網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當在LAN連網(wǎng)環(huán)境中使用時,計算機110通過網(wǎng)絡接口或適配器170連接至LAN 171。當在WAN連網(wǎng)環(huán)境中使用時,計算機110通常包括調(diào)制解調(diào)器172或用于通過諸如因特網(wǎng)等WAN 173建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,它可以通過用戶輸入接口160或其它合適的機制連接至系統(tǒng)總線121。在網(wǎng)絡化環(huán)境中,相對于計算機110描述的程序模塊或其部分可以存儲在遠程存儲器存儲設備中。作為示例,而非限制,圖1示出了遠程應用程序185駐留在存儲器設備181上??梢岳斫?,所示的網(wǎng)絡連接是示例性的,且可以使用在計算機之間建立通信鏈路的其它手段。
軟件供應系統(tǒng)圖3示出供應操作系統(tǒng)在計算設備202上的使用的動態(tài)軟件供應系統(tǒng)200,其中計算設備202可以是公知計算設備中的任何一種,諸如臺式計算機12、膝上型計算機22、PDA 24、手機或任何類似的設備。盡管軟件供應系統(tǒng)200被示為被實現(xiàn)來供應操作系統(tǒng)的使用,但在一個替換實現(xiàn)中,軟件供應系統(tǒng)200可用于供應諸如軟件、固件、計算設備的特征等其它資源的使用。類似地,盡管軟件供應系統(tǒng)200被示為供應資源在通信連接至網(wǎng)絡10的計算設備202上的使用,但它可用于實現(xiàn)在可能未連接至網(wǎng)絡10或可能臨時連接至網(wǎng)絡10的計算設備上的這樣的使用。
軟件供應系統(tǒng)200可包括供應服務模塊204,該模塊包括核心供應服務模塊206、分發(fā)服務模塊208、證書服務模塊210、核心數(shù)據(jù)庫212以及分發(fā)數(shù)據(jù)庫214。供應系統(tǒng)204可經(jīng)由記帳適配器218與記帳系統(tǒng)216通信,而核心供應服務模塊206可經(jīng)由數(shù)據(jù)庫寫入器220與分發(fā)數(shù)據(jù)庫214通信,分發(fā)數(shù)據(jù)庫214可經(jīng)由數(shù)據(jù)庫讀取器222與分發(fā)服務208通信。計算設備202可包括經(jīng)由分發(fā)web服務模塊226與分發(fā)服務模塊208通信并經(jīng)由記帳web服務模塊228與記帳系統(tǒng)216通信的本地供應模塊(LPM)224。
供應服務模塊204可位于諸如服務器30等服務器系統(tǒng)或通信連接至網(wǎng)絡10的其它系統(tǒng)上。類似地,記帳系統(tǒng)216也可位于諸如服務器30等服務器系統(tǒng)或通信連接至網(wǎng)絡10的其它系統(tǒng)上。而且,供應服務模塊204的各個組件中的一個或多個可位于同一服務器上或位于不同位置中的多個不同服務器上。例如,核心數(shù)據(jù)庫212可位于不同位置且各自通信連接至網(wǎng)絡10的多個不同的數(shù)據(jù)庫服務器上。供應服務模塊204及其各個組件模塊的功能將在以下更詳細說明。
盡管在圖3中將計算設備202示為分別經(jīng)由web服務模塊226和228與分發(fā)服務模塊208和記帳系統(tǒng)216通信,但在一替換實施例中,計算設備202的用戶可經(jīng)由諸如電話等替換通信模式與分發(fā)服務模塊208和記帳系統(tǒng)216通信。例如,在其中計算設備202無法連接至網(wǎng)絡10的情形中,計算設備202的用戶可經(jīng)由電話和附連至分發(fā)服務模塊208的啟用語音識別的用戶界面,或經(jīng)由能夠與分發(fā)服務模塊208通信的顧客服務代表來通信。
當計算設備202是諸如計算機110等計算機時,LPM 224可位于不可移動、非易失性存儲器140上、作為系統(tǒng)存儲器130的一部分、作為計算機110包括處理單元120在內(nèi)的各個硬件組件的一部分、或作為這些的任何組合。將在以下更詳細說明LPM 224的運作。
供應系統(tǒng)流程圖現(xiàn)在參考圖4,供應程序250示出軟件供應系統(tǒng)200的一般運作。在框251處,可向用戶提供用于在計算設備202上使用操作系統(tǒng)的注冊密鑰。作為用戶購買用于使用操作系統(tǒng)的額外時間等的結果,可連同用戶對計算設備202的新的購買來向用戶提供注冊密鑰。多個不同的實體可向用戶提供注冊密鑰,例如銷售計算設備202的計算機商店可向用戶提供密鑰,銷售包括計算設備202對操作系統(tǒng)的使用的服務包的因特網(wǎng)服務供應商可向用戶提供注冊密鑰等。
如將在以下更詳細說明的,注冊密鑰可由供應服務模塊204使用證書服務210來產(chǎn)生,并可按照安全方式被發(fā)送給注冊密鑰提供者。或者,注冊密鑰提供者可按照與供應服務模塊204協(xié)定的方式來產(chǎn)生注冊密鑰。注冊密鑰可以包含或不包含硬件或使用注冊密鑰標識計算設備202的其它組件所專用的信息。在軟件供應系統(tǒng)200的一個實現(xiàn)中,每一注冊密鑰用計算設備202的硬件標識(HWID)來唯一地標識計算設備202。在另一實現(xiàn)中,注冊密鑰可以是產(chǎn)品標識號,諸如操作系統(tǒng)產(chǎn)品密鑰等,且可由諸如操作系統(tǒng)開發(fā)員、使用該操作系統(tǒng)的計算設備的制造商等除供應服務以外的實體來產(chǎn)生。注冊密鑰也被稱為初始化密鑰(InitKey),它可采用一連串的字母數(shù)字字符的形式、射頻標識(RFID)標簽的形式、或任何其它協(xié)定的格式。
在向用戶提供注冊密鑰之后,在框252處,供應程序250可確定是否有必要向供應服務模塊204注冊該注冊密鑰。如果InitKey最初是由供應服務模塊204開發(fā)的,則不必注冊該InitKey,因為它可能已經(jīng)存儲在供應服務模塊204處的數(shù)據(jù)庫中?;蛘?,如果軟件供應系統(tǒng)200以允許第三方廠商基于協(xié)定的過程生成InitKey的方式來設置,則這樣的廠商可能需要在生成密鑰之后或至少將其提供給用戶之后注冊InitKey。
如果確定有必要注冊InitKey,則在框254處,廠商可向供應服務模塊204注冊InitKey。InitKey的注冊將在以下圖9中更詳細示出。
在注冊InitKey之后,在框256處,供應程序250為計算設備202生成供應包(也被稱為“包”)。供應包可由計算設備202使用以允許用戶在指定的時間量、指定的期限、或任何其它協(xié)定的方式來使用操作系統(tǒng)。在一替換實現(xiàn)中,供應包可用于允許用戶在指定期限內(nèi)使用諸如軟件、應用程序等任何其它資源。由供應服務模塊204生成的供應包可包含關于該包的用戶、由該包允許的使用量等信息。例如,當廠商以在計算設備202上操作系統(tǒng)一個月的預付使用來銷售計算設備202時,在框256處,供應服務模塊204可為計算設備202生成允許計算設備202使用該操作系統(tǒng)一個月期限的供應包。然而,可按照僅有計算設備202可使用該特定供應包的方式來生成供應包。供應包的生成將在以下圖10中更詳細示出。
當用戶試圖通過開啟計算設備202或以任何其它方式來激活計算設備202上的操作系統(tǒng)時,LPM 224可控制操作系統(tǒng)的激活。這由程序250的框258表示。如果LPM 224檢測到這是用戶首次試圖使用該操作系統(tǒng),則LPM 224可請求用戶輸入InitKey。在一替換實現(xiàn)中,LPM 224可掃描計算設備202來確定計算設備202是否預先填充了InitKey,且如果是則LPM 224自動從計算設備202中檢索InitKey。當從用戶接收到InitKey之后,LPM 224可與供應服務模塊204聯(lián)系以請求計算設備202的證書,其中對證書的請求包括計算設備202的InitKey和HWID等信息。LPM 224的設計和操作將在以下圖7中更詳細描述。
響應于對證書的請求,在框260處,供應服務模塊204可從證書服務模塊210接收證書,并經(jīng)由分發(fā)服務模塊208將證書發(fā)送給計算設備202。從證書服務模塊210生成證書并將證書發(fā)送給客戶機設備的過程將在以下圖10中更詳細描述。
在從供應服務模塊204接收證書之后,在框262處,LPM 224確定是否有必要獲得更多的供應包以便在計算設備202上使用操作系統(tǒng)。LPM 224可基于諸如計算設備202已被使用的時間、當前時間期限等商業(yè)規(guī)則或任何類似的商業(yè)規(guī)則來消費從供應服務模塊204接收的供應包。如以下進一步描述的,LPM 224可具有包含之前從供應服務模塊204接收的供應包的本地供應包存儲模塊。LPM 224可從這樣的本地包存儲中選擇供應包,并分析其內(nèi)容以卻確定是否需要向供應服務模塊204請求更多的包。供應包的選擇以及對所選供應包的分析將在以下圖7中更詳細說明。
如果確定有必要請求更多的供應包,則在框264處,LPM 224可向供應服務模塊204發(fā)送接收更多的供應包的請求。LPM 224可按照多種不同方式向PSM發(fā)送這樣的請求,包括通過連接至分發(fā)服務模塊208的網(wǎng)絡服務模塊226、請求計算設備202的用戶聯(lián)系供應服務模塊204處的顧客服務代表、或任何其它所需方式。對供應包的請求可包括標識客戶機設備、由客戶機使用的操作系統(tǒng)等的信息。
當從計算設備202接收對供應包的請求之后,在框266處,供應服務模塊204可生成供應包并將其分發(fā)給LPM 224。提供給LPM 224的每一供應包可包含標識計算設備202、由計算設備202使用的操作系統(tǒng)、包類型、包序列號、允許計算設備使用操作系統(tǒng)的時間或操作系統(tǒng)使用期滿的日期等的各種信息。允許LPM 224認證供應包中的信息的數(shù)字簽名也可被包括在供應包中?;蛘?,在不同的安全協(xié)議下,允許LPM 224認證供應包中的信息的數(shù)字簽名也可被單獨發(fā)送給LPM 224。供應包的生成和分發(fā)將在以下圖12中更詳細描述。
在接收供應包之后,在框268處,LPM 224可處理供應包,這將在以下圖7中更詳細描述。當分析供應包的內(nèi)容之后,如果LPM 224確定允許在計算設備202上使用操作系統(tǒng),則在框270處,計算設備202可開啟計算設備202上的操作系統(tǒng)。
核心供應系統(tǒng)圖5示出圖3的核心供應服務模塊206的詳細框圖。核心供應服務模塊206可在服務器30、大型機34、或通信連接至網(wǎng)絡10的任何其它合適的設備上實現(xiàn)。核心供應服務模塊206可與證書服務模塊210、記帳適配器218、核心DB 212和分發(fā)服務模塊208通信。核心供應服務206可包括與記帳適配器通信的記帳接口280、與證書服務模塊210通信的證書服務接口282、與分發(fā)服務模塊208通信的分發(fā)服務接口288、帳戶更新模塊284、包生成器286以及與核心數(shù)據(jù)庫21和分發(fā)數(shù)據(jù)庫214通信的數(shù)據(jù)訪問模塊290。
記帳接口280可使用web接口、至記帳適配器218的VPN、或本領域技術人員所公知的任何其它期望方式來實現(xiàn)。在一特定實現(xiàn)中,記帳接口280可使用Microsoft消息隊列(MSMQ)TM接口來實現(xiàn)?;蛘撸褂貌煌男袠I(yè)協(xié)議設計的接口,諸如使用企業(yè)應用接口(EAI)協(xié)議設計的Microsoft BiztalkTM也可用于實現(xiàn)記帳接口280。MSMQTM技術也可用于實現(xiàn)分發(fā)服務接口288和數(shù)據(jù)訪問模塊290。
記帳接口模塊280可從記帳適配器218接收對注冊計算設備的InitKey的請求、與帳戶更新通信來提供帳戶更新信息、程序引導各種計算設備、向證書服務模塊210請求計算設備的客戶機證書等。
帳戶更新模塊284可負責創(chuàng)建、維護和更新計算設備202的帳戶。帳戶更新模塊284可從記帳適配器218接收關于計算設備202的帳戶設置和更新的信息,且它可與包生成器286通信以生成并存儲計算設備202的供應包。例如,諸如電信公司等承保人可出售操作系統(tǒng)在計算設備202的一塊使用時間,并使用記帳適配器218向核心供應服務206發(fā)送帳戶更新請求以便據(jù)此更新計算設備202的帳戶。當從記帳適配器218接收帳戶更新請求之后,帳戶更新模塊284可使用數(shù)據(jù)訪問模塊290形成核心數(shù)據(jù)庫212中的所需條目,并與包生成器通信以生成必需的供應包。在一替換情況中,分發(fā)服務模塊208可從計算設備208接收為計算設備202購買供應包的請求。
另一方面,當計算設備202向供應服務206發(fā)送對證書或?qū)恼埱髸r,帳戶更新模塊284可從核心數(shù)據(jù)庫212中檢索供應包、更新計算設備202的帳戶信息、以及與分發(fā)服務模塊208通信以便將供應包發(fā)送給計算設備202。
當核心供應服務206從計算設備202接收對證書或?qū)恼埱髸r,核心供應服務206可使用證書服務接口282與證書服務模塊210通信以接收證書或驗證證書。證書服務模塊210可使用允許生成并管理加密證書的標準證書技術中的任何一種來實現(xiàn)。例如,證書服務模塊210可使用遵循公鑰基礎架構(PKI)的證書授權機構來實現(xiàn)。證書服務模塊210可包括負責生成加密非對稱雙生密鑰(twin key)、標識并認證密鑰訂戶等的密鑰管理器。證書服務模塊210還可包括用于經(jīng)由數(shù)字證書將公鑰綁定至客戶機帳戶的證書生成器,用于這樣的證書的發(fā)放、維護、管理、撤銷、延緩、恢復和續(xù)展,以及用于公共密鑰儲存庫的創(chuàng)建和管理。客戶機證書的生成和管理將在以下圖11中更詳細示出。
證書服務接口282可在將由包生成器286生成的供應包發(fā)送給計算設備202之前通過使用由證書服務模塊210生成的證書來簽署該供應包。證書服務接口282也可與證書服務模塊210通信以便驗證包請求上的客戶機簽名等。
核心供應服務206可負責將供應包和其它客戶機設備程序引導信息,諸如客戶機設備證書發(fā)布到分發(fā)數(shù)據(jù)庫214內(nèi)。注意到,可允許分發(fā)服務模塊208從分發(fā)數(shù)據(jù)庫214讀取信息,然而為了維護帳戶信息的完整性,一般不允許分發(fā)服務模塊208發(fā)布到分發(fā)數(shù)據(jù)庫214內(nèi)。
盡管核心供應服務206中的各個模塊被示為執(zhí)行上述不同任務的不同的模塊,但可以理解,這種描述是僅用于說明的目的,且實際上,所有這些不同的模塊可按照不同的方式來實現(xiàn),使得這些模塊中一個或多個可被組合、所有這些模塊可按照不同的方式彼此交互等。
核心數(shù)據(jù)庫模式圖6示出可用于核心數(shù)據(jù)庫212的一種實現(xiàn)的核心數(shù)據(jù)庫模式310。核心數(shù)據(jù)庫模式310可包括程序引導(Bootstrap)表312、計算設備(PC)表314、作業(yè)(Job)表316、包(Packet)表318、配置(Configuration)表320、計算設備日志(PCLog)表322、類型(Type)表324、作業(yè)日志(JobLog)表326和狀態(tài)(Status)表328。核心數(shù)據(jù)庫模式310可使用公知關系型數(shù)據(jù)庫軟件中的任一種來實現(xiàn),且核心數(shù)據(jù)庫模式310的各個表可被存儲在單個數(shù)據(jù)庫服務器上或被存儲在經(jīng)由諸如網(wǎng)絡10等網(wǎng)絡彼此連接的分開的數(shù)據(jù)庫服務器上。
程序引導表312可存儲諸如計算設備202等可使用軟件供應系統(tǒng)200來供應的計算設備的程序引導數(shù)據(jù),其中這一數(shù)據(jù)經(jīng)由記帳適配器218從承保人接收。引導表312中的每一記錄可包括各種信息,包括記錄標識域(ID)、計算設備的標識(PCID)、提供給計算設備的用戶的InitKey(InitKey)、標識包被傳遞給計算設備的次數(shù)的傳遞計數(shù)(DeliverCount)、和計算設備的程序引導狀態(tài)(Status)。
計算設備表314可存儲與諸如計算設備202等可使用軟件供應系統(tǒng)200來供應的計算設備有關的數(shù)據(jù)。計算設備表314可存儲與計算設備有關的、被添加到發(fā)送給計算設備的注冊包或供應包的各種數(shù)據(jù)。計算設備表314可用于標識計算設備并跟蹤計算設備的狀態(tài)。計算設備表314中的每一記錄可包括各種信息,包括記錄標識域(ID)、指定計算設備的硬件配置的硬件標識(HWID)、表示之前發(fā)送給計算設備的供應包的序列號的最近序列號(LastSequenceNumber)等。
作業(yè)表316存儲可基于對供應服務模塊204的各個供應請求而創(chuàng)建的數(shù)據(jù),其中每一供應請求在作業(yè)表316中創(chuàng)建一新記錄。作業(yè)表316中的記錄可用于跟蹤各個供應請求的供應作業(yè)狀態(tài)。作業(yè)表316中的每一記錄包括各種信息,包括記錄標識域(ID)、計算設備標識(PCID)、作業(yè)類型標識(Type)、作業(yè)跟蹤標識(TrackingID)、供應請求的令牌(TokenID)、作出供應請求的計算設備的帳戶標識(AccountID)、供應請求的日期和時間(Date)、處理供應請求的狀態(tài)(Status)等。
包表318存儲可基于作業(yè)數(shù)據(jù)而創(chuàng)建的包數(shù)據(jù),其中一個作業(yè)可創(chuàng)建一個或多個包。包表用于跟蹤響應于從分發(fā)服務模塊208或從記帳適配器218接收的供應請求而生成的各個供應包的分發(fā)狀態(tài)。包表中的每一記錄可包括關于記錄標識(ID)、表示導致包被創(chuàng)建的作業(yè)的作業(yè)標識(JobID)、包含在包內(nèi)的各種數(shù)據(jù)(Data)、描述自從特定計算設備接收最后一次包下載確認以來將包傳遞給該特定計算設備的次數(shù)的傳遞計數(shù)(DeliverCount)、以及表示包的處理階段的狀態(tài)(Status)的信息。
配置表320可存儲表示服務器配置數(shù)據(jù)的所有名稱-值對、描述用于實現(xiàn)核心數(shù)據(jù)庫212的服務器的數(shù)據(jù)。配置表320中的每一記錄可包括關于服務器名字空間(NameSpace)、服務器名稱-值對的名稱(Name)和設定(Setting)的信息。
計算設備日志表322可將除與計算設備有關的作業(yè)以外的與計算設備有關的各種活動記入日志。計算設備日志表322中的每一記錄可包括關于記錄標識(ID)、計算設備標識(PCID)、計算設備類型(Type)、描述計算設備的數(shù)據(jù)(Data)以及計算設備使用供應服務模塊204登錄的時間(LogDate)等信息。例如,計算設備的類型可以是程序引導記錄已創(chuàng)建類型、程序引導進行中類型、程序引導已完成類型、程序引導超限類型(表示在未從計算設備接收確認的情況下將超出指定個數(shù)的證書傳遞給計算設備)、證書已請求類型、包已請求類型等。
類型表324可用于預定義由作業(yè)表316、計算設備日志表322和作業(yè)日志表326使用的各種可枚舉類型。
作業(yè)日志表326可用于將與作業(yè)或包有關的各種活動記入日志,其中每一記錄可包括各種信息,包括記錄標識(ID)、作業(yè)標識(JobID)、作業(yè)類型(Type)、作業(yè)描述(Data)、作業(yè)被記入日志的時間(LogDate)等。
狀態(tài)表328可用于預定義引導表312、計算設備表314、作業(yè)表316和包表318中所使用的各種可枚舉狀態(tài)。
分發(fā)數(shù)據(jù)庫模式圖7示出可用于分發(fā)數(shù)據(jù)庫214的一種實現(xiàn)的分發(fā)數(shù)據(jù)庫模式340。分發(fā)數(shù)據(jù)庫模式340可包括分發(fā)引導表342和分發(fā)包表344。分發(fā)數(shù)據(jù)庫模式340可使用所有公知關系型數(shù)據(jù)庫軟件中的任一種來實現(xiàn),且分發(fā)數(shù)據(jù)庫模式340的各表可被存儲在單個數(shù)據(jù)庫服務器上或存儲在經(jīng)由諸如網(wǎng)絡10的網(wǎng)絡彼此連接的分開的數(shù)據(jù)庫服務器上。
分發(fā)程序引導表(Bootstrap)342可存儲由核心供應服務206在計算設備的注冊期間發(fā)布的引導數(shù)據(jù)。分發(fā)引導表342的每一記錄可包含各種信息,包括記錄標識(ID)、與特定計算設備有關的InitKey(InitKey)和該特定計算設備的硬件標識(HWID),且分發(fā)程序引導表342中的記錄可在該特定計算的程序引導完成時由核心供應服務206移除。
分發(fā)包表(Packet)344可存儲由核心供應服務206生成的包。分發(fā)包表344中的每一記錄可對應于特定的包且包括各種信息,包括記錄標識(ID)、描述將使用該特定包的計算設備的硬件標識(HWID)、該特定包的包序列號(SequenceNumber)、該特定包的內(nèi)容(Data)、指定在未接收確認的情況下將該特定包發(fā)送給客戶機設備的次數(shù)的傳遞計數(shù)(DeliveryCount)、以及指定分發(fā)服務模塊208可嘗試將該特定包傳遞給客戶機設備的次數(shù)的最大傳遞計數(shù)(MaxDeliveryCount)。當特定包由客戶機計算設備成功下載時,與該特定包有關的記錄可從分發(fā)包表344中移除。而且,如果特定包的傳遞計數(shù)大于最大傳遞計數(shù),則與該特定包有關的記錄也可從分發(fā)包表344中移除。
本地供應模塊圖8示出LPM 224的更詳細的框圖。LPM 224是駐留在諸如計算設備202等計算設備上的軟件供應系統(tǒng)200的客戶機方組件。LPM 224可執(zhí)行各種功能,包括使用由軟件供應系統(tǒng)200供應的服務來與計算設備的用戶交互、經(jīng)由網(wǎng)絡10與分發(fā)服務模塊208交互等。
LPM 224可通過與客戶機計算設備202所使用的特定登錄程序交互來執(zhí)行將特定狀態(tài)強加于客戶機計算設備202的功能。在其中客戶機設備使用Windows產(chǎn)品激活(WPA)系統(tǒng)作為登錄邏輯的一特定實現(xiàn)中,LPM 224可與WPA交互以將特定狀態(tài)強加于客戶機計算設備202。然而,在一替換實現(xiàn)中,LPM 224可與任何其它適當?shù)牟僮飨到y(tǒng)登錄程序交互。LPM 224的實現(xiàn)在圖8中被描述為以軟件實現(xiàn)且被構成為鏈接到由WPA使用的登錄程序的庫的各種邏輯組件分組。然而,在LPM 224的一個替換實現(xiàn)中,LPM 224的各種邏輯組件中的一個或多個可使用硬件實現(xiàn)。
具體地,LPM 224可包括強制計算設備202以特定狀態(tài)操作的強制插件模塊352、計量軟件供應系統(tǒng)200所供應的資源的使用的計量模塊354、使用由核心供應服務206提供的供應包來進行事務的事務引擎356、為供應包提供安全存儲的安全存儲管理器358、與核心供應服務206通信的通信模塊360、以及與用戶交互的用戶經(jīng)歷模塊362。
強制附件模塊352可被插入到計算設備202的登錄邏輯364內(nèi)。當用戶使用登錄邏輯364登錄到計算設備202上時,登錄邏輯364內(nèi)的強制插件模塊352可向計量模塊354查詢供應包的余額信息。如果強制插件模塊352確定計算設備202具有足夠的供應包,則它可允許登錄邏輯364以其正常例程操作并允許用戶登錄到計算設備202上。然而,如果強制插件模塊352確定計算設備202不具有足夠的供應包,則它強制計算設備202進入停用狀態(tài)。在這樣的停用狀態(tài)中,向計算設備202的用戶提供僅激活計算設備202所需的受限用戶界面。
計量模塊354可包括用于讀取并驗證可用于所供應資源的使用的當前余額、更新當前余額并用于處理供應包的余額管理器366。計量模塊354還可包括配置管理器368和用于維護始終增加的定時器的可靠時鐘管理器370??煽繒r鐘管理器370可使用可靠硬件時鐘372來完成維護時鐘增加的定時器的任務。余額管理器366和可靠時鐘管理器370對LPM 224的安全操作非常敏感且重要,從而它們在LPM224的操作期間可能遭受各種安全攻擊。
強制插件模塊352和計量模塊354可一起工作來實現(xiàn)被供應資源在計算設備202上的激活和停用。強制插件模塊352可用作登錄邏輯364內(nèi)基于某些事件而喚起余額管理器366的事件分派器,而余額管理器366可確定當響應于事件而被喚起時要采取什么動作??墒箯娭撇寮K352激活余額管理器366的各種事件的示例有(1)登錄事件,(2)系統(tǒng)解鎖事件,(3)從休眠中還原事件,(4)從待機中喚醒事件,(5)用戶觸發(fā)事件,(6)注銷事件,(7)包下載,(8)報時,(10)系統(tǒng)鎖定事件,(11)屏幕保護程序啟動事件,(12)屏幕保護程序停止事件等。余額管理器366可接受事件作為輸入,并向強制插件模塊352返回結果動作。
例如,當用戶登錄時,強制插件模塊352可向余額管理器366發(fā)送用戶登錄事件。響應于該用戶登錄事件,余額管理器366可查詢可用于使用所供應的資源的當前余額,如果余額足夠,則余額管理器366可向強制插件模塊352返回登錄動作。然而,如果余額不夠,則強制插件模塊352可使登錄邏輯364返回通知用戶界面(UI)398,其中通知UI允許用戶通過向供應服務模塊204購買更多的供應包來增加余額以便激活計算設備202。
事務引擎356可處理供應包以便更新余額管理器366中的余額和包消費計數(shù)。事務引擎365可確保任何供應包僅被消費一次以更新余額。事務引擎356可被設計成將余額和包消費計數(shù)一起更新,因此余額和包消費計數(shù)中的任一項均被更新或者余額和包消費計數(shù)均未被更新?;蛘撸聞找?56也可用于維護余額數(shù)據(jù)的一致性,以確保余額數(shù)據(jù)不會被某些意外事件破壞。將在以下提供事務引擎356的運作的示例。
在該示例中,假設用戶使用兩張預付卡來購買被供應資源的使用時間,第一張卡十小時,第二張卡二十小時。因為供應服務模塊204不維護總余額,因此在供應服務模塊204處創(chuàng)建兩組分開的許可證信息,一組為十小時,另一組為二十小時。當用戶聯(lián)系供應服務模塊204以在計算設備202上下載供應包時,下載到計算設備202上的供應包中的每一個具有唯一的供應包號。當事務引擎356處理第一個包時,它增加包消費計數(shù)并使余額增加十小時,隨后當事務引擎356處理第二個包時,它再次增加包消費計數(shù)并使余額增加另外的二十小時。
安全存儲管理器358可允許LPM 224以安全方式來存儲余額數(shù)據(jù),使得余額數(shù)據(jù)不可能被用戶篡改且使余額數(shù)據(jù)僅可由LPM 224訪問。在由LPM 224下載供應包之后,可將其存儲在安全存儲管理器358中。類似地,余額計數(shù)和包消費計數(shù)也可被存儲在安全存儲管理器358中。在示出的實現(xiàn)中,安全存儲管理器358被實現(xiàn)為動態(tài)鏈接庫(dll),使得用戶經(jīng)歷模塊362可訪問安全存儲管理器358。
為了確保安全存儲管理器358中所存儲的數(shù)據(jù)是安全的,可使用數(shù)據(jù)加密密鑰來將數(shù)據(jù)存儲在安全存儲管理器358中,且僅有具有數(shù)據(jù)加密密鑰的模塊才能夠從安全存儲管理器358中讀取數(shù)據(jù)。安全存儲管理器358可與本地安全授權機構(LSA)子系統(tǒng)374通信以便與LSA數(shù)據(jù)庫376通信,與存儲驅(qū)動器378通信以便與安全硬件存儲380通信,且與文件系統(tǒng)驅(qū)動程序382通信以便與計算設備202上的文件384通信。為了增加安全性,安全存儲管理器358的替換實現(xiàn)也可使用存儲在安全存儲管理器358中的數(shù)據(jù)的多個副本,使得每一副本可被交叉參考以確保不存在對數(shù)據(jù)任何單個副本的篡改。盡管此處所述的LPM 224的實現(xiàn)具有以軟件實現(xiàn)的安全存儲管理器358,但在替換實現(xiàn)中,安全存儲管理器358可使用硬件來實現(xiàn)。
通信模塊360可包括向供應服務模塊204請求供應包和/或證書的包/證書請求管理器386、向記帳系統(tǒng)216和/或向供應服務模塊204購買更多供應包的購買管理器388、以及允許LPM 224與網(wǎng)絡10通信的網(wǎng)絡服務通信管理器390。
包/證書請求管理器386可從用戶經(jīng)歷模塊362接收向供應服務模塊請求包或證書的請求。例如,當用戶通過將InitKey輸入到UI內(nèi)來首次登錄客戶機設備時,用戶經(jīng)歷模塊362可將InitKey傳給包/證書請求管理器386,并且包/證書請求管理器386可與供應服務模塊204通信以便從供應服務模塊204接收證書。包/證書請求管理器386也可負責在成功下載證書或供應包之后向供應服務模塊204確認。包/證書請求管理器386可使用供應協(xié)議來與供應服務模塊204通信。由包/證書請求管理器386下載的包可被存儲在安全存儲管理器358中。
購買管理器388可通過從計算設備202的用戶接收支付信息并將支付信息傳輸給記帳系統(tǒng)216或供應服務模塊204來允許該用戶購買更多的供應包。包/證書請求管理器386和購買管理器388都可使用web服務通信管理器390與網(wǎng)絡10通信。web服務通信管理器可使用網(wǎng)絡服務管理器392和網(wǎng)絡接口卡(NIC)394來與網(wǎng)絡10通信。注意到在本實現(xiàn)中,使用web服務通信管理器390來與網(wǎng)絡10通信,而在一替換實現(xiàn)中,可使用諸如文件傳輸協(xié)議(FTP)驅(qū)動程序等其它通信工具來與網(wǎng)絡10通信。
用戶經(jīng)歷模塊362可包括要求用戶輸入允許包/證書請求管理器386從供應服務模塊204下載證書的InitKey的激活用戶界面(UI)396,以及允許LPM 224與用戶交互的通知UI 398。例如,當用戶為使用被供應資源而購買了預付卡時,激活UI 396可要求用戶輸入由預付卡提供的號碼并調(diào)用包/證書請求管理器386來下載對應于預付卡號的最新的供應包。激活UI 396也可調(diào)用購買管理器388來允許用戶購買更多的供應包,且它可被設計成當完成購買之后可自動調(diào)用包/證書請求管理器386來下載對應于購買的供應包。
通知UI 398可包括允許用戶查詢當前余額信息、使用歷史等的各種用戶界面。通知UI 398可由用戶或登錄邏輯364調(diào)用。在其中可用于使用所供應的資源的余額較低的情況中,登錄邏輯364可調(diào)用通知UI 398來向用戶通知需要更多的購買。通知UI可以是恒定活動的,且它可經(jīng)由任務欄圖標、控制面板小程序、氣球彈出框、或使用任何其它公知的UI方法來向用戶提供通知服務。
描述了軟件供應系統(tǒng)200的各個組件之后,以下附圖9-12將更詳細描述軟件供應系統(tǒng)200的操作。
InitKey的注冊圖9示出可用于向核心供應服務206注冊InitKey的注冊程序430的流程圖。在框432處,InitKey的提供者向核心供應服務206發(fā)送InitKey注冊請求。如前所述,提供者可以是記帳系統(tǒng)216,它可由第三方管理,諸如計算設備202的廠商、計算設備202的操作系統(tǒng)的使用的廠商、軟件供應系統(tǒng)200的顧客服務代表(CSR)等。
InitKey注冊請求可在核心供應服務206的消息隊列中接收。當識別其消息隊列中的InitKey注冊請求之后,在框434處,核心供應服務206可啟動注冊過程。
在框436處,InitKey可被添加到核心數(shù)據(jù)庫212的程序引導表312中,且注冊程序430可將引導狀態(tài)置為“已創(chuàng)建”。
隨后,在框438處,核心供應服務206可將“程序引導已創(chuàng)建”消息記入計算設備日志表322中。
最后,在框440處,核心供應服務206可將分發(fā)數(shù)據(jù)庫214的消息隊列發(fā)送“程序引導發(fā)布”消息。
包的生成圖10示出可用于生成將由計算設備202的LPM 224使用的供應包的包生成程序450的流程圖。
在框452處,記帳適配器218可向核心供應服務206發(fā)送對供應包的供應請求消息。由于核心供應服務206可連接至多個承保人,因此這樣的供應請求消息在將記帳適配器218連接至核心供應服務206的MSMQ接口中排隊。
當從記帳適配器218中檢索了供應請求消息之后,在框454處,核心供應服務206可啟動包生成事務。
在框456處,核心供應服務206可使用來自供應請求消息的硬件標識來將新計算設備記錄添加到計算設備表314。然而,如果包含該硬件標識的記錄已存在于計算設備表314中,則可能不必添加新計算設備記錄。
隨后,在框458處,核心供應服務206可向作業(yè)表316添加記錄對供應包的新作業(yè)請求的新作業(yè)記錄。核心供應服務206可將新添加的作業(yè)記錄的狀態(tài)置為“已創(chuàng)建”。在框460處,核心供應服務206可將新記錄以及供應請求消息的日期和時間添加到作業(yè)日志表326中。
在框462處,核心供應服務206可基于供應請求消息來創(chuàng)建供應包。包生成可包括驗證供應請求消息中所提供的證書、將使用時間量加給供應包等。
在框464處,核心供應服務206可與密鑰管理器292通信以便使用安全密鑰簽署該供應包,并創(chuàng)建基于XML的供應包。
當創(chuàng)建了供應包之后,在框466處,核心供應服務206可使計算設備表314中的最后序列號增1。
在框468處,核心供應服務206可將新創(chuàng)建的供應包插入到包表318內(nèi),并將包表318中該供應包的狀態(tài)置為“包已創(chuàng)建”。
隨后,在框370處,核心供應服務206可將“包已創(chuàng)建”消息記入作業(yè)日志表326中。最后,在框372處,核心供應服務206可將“包發(fā)布”消息發(fā)送到分發(fā)數(shù)據(jù)庫寫入器220的消息隊列內(nèi)以便將該包添加到分發(fā)數(shù)據(jù)庫214內(nèi)。
程序引導圖11示出可用于向證書服務模塊210請求證書并將該證書發(fā)送給計算設備202的引導程序500的流程圖。
在框502處,分發(fā)服務模塊208可從諸如計算設備202等計算設備接收證書請求。證書請求可由包/證書請求管理器386生成,且可包括各種信息,包括計算設備202的硬件標識、InitKey等。
在框504處,核心供應服務206可查找程序引導表312中的InitKey。在框506處,核心供應服務206可檢查計算設備表314來查看它是否包含證書請求中所提供的硬件標識的記錄。如果計算設備表314不存在這樣的記錄,則核心供應服務206可將一記錄添加到計算設備表314中。
在框508處,核心供應服務206可將“計算設備已創(chuàng)建”消息記入到計算設備日志表322中。隨后,在框510處,核心供應服務206可開始處理證書請求事務。
在框512處,核心供應服務206可檢查引導表312來查看傳遞計數(shù)是否大于由配置表320指定的最大傳遞計數(shù),且如果情況如此,則它可將控制轉移給框524。
如果傳遞計數(shù)不大于最大傳遞計數(shù),則在框514處,核心供應服務206可檢查引導表312中的引導狀態(tài)。如果引導狀態(tài)不等于“已創(chuàng)建”或“進行中”,則控制可轉移給框524。
然而,如果引導狀態(tài)等于“已創(chuàng)建”或“進行中”的任一種,則在框516處,核心供應服務206可將引導表312中的引導狀態(tài)更新為“進行中”。
隨后,在框518處,核心供應服務206可將“引導進行中”消息記入到計算設備日志表322中。
在框520處,核心供應服務206可調(diào)用證書實用程序來生成新的客戶機證書。在從證書實用程序接收到新證書之后,在框522處,核心供應服務206可將客戶機證書發(fā)送到分發(fā)服務模塊208的消息隊列中,并將控制轉移給框530。
在框524處,核心供應服務206可將程序引導表312中的引導狀態(tài)更新為“超限”,因為程序引導表中的傳遞計數(shù)高于最大傳遞計數(shù)?!俺蕖睜顟B(tài)表示核心供應服務206未接收到響應于已為計算設備202發(fā)布證書而從LPM 224中發(fā)出的適當確認。從而,在框526處,核心供應服務206可將“程序引導超限”消息記入到計算設備日志表322中,表示未從請求證書的計算設備接收到確認。
在框528處,核心供應服務206可將“移除程序引導”消息發(fā)送到分發(fā)數(shù)據(jù)庫寫入器220的消息隊列中以從分發(fā)數(shù)據(jù)庫214中移除引導記錄。
框530可在將證書發(fā)送給客戶機之后從框522接收控制,從而表示對證書請求的處理的結束。
當處理證書請求之后,在框532處,核心供應服務206可接收分發(fā)服務模塊208的消息隊列中的證書下載完成消息。這樣的證書下載完成消息可在成功下載證書之后由LPM 224的包/證書請求管理器386發(fā)送。
當接收證書下載完成消息之后,在框534處,核心供應服務206可啟動程序引導已完成事務。在框536處,核心供應服務206可將程序引導表312中的程序引導狀態(tài)更新為“已完成”。隨后,在框538處,核心供應服務206可將“程序引導已完成”消息記入到計算設備日志表322中,表示發(fā)送證書請求的計算設備的程序引導處理已完成。
最后,在框540處,核心供應服務206可將“移除程序引導”消息發(fā)送給分發(fā)數(shù)據(jù)庫寫入器220的消息隊列中,以便從分發(fā)數(shù)據(jù)庫214的程序引導表342中移除該程序引導記錄。
包分發(fā)圖12示出可用于將來自核心供應服務206的供應包分發(fā)給諸如計算設備202等各種計算設備的包分發(fā)程序550的流程圖。包分發(fā)程序550可由包/證書請求管理器386、協(xié)助計算設備的用戶的顧客服務代表或以其它類似方式啟動。
在框522處,核心供應服務206可接收分發(fā)服務模塊208的消息隊列中的包下載消息。這樣的消息可例如由計算設備202的包/證書請求管理器386發(fā)送。在接收包下載消息之后,在框554處,核心供應服務206可啟動包請求事務。
在包請求事務開始處,在框556處,核心供應服務206可確定包表318中的狀態(tài)是否是“包超限”,指示發(fā)送包下載消息的計算設備未確認之前由核心供應服務206進行的包傳輸,控制被轉移給框564。
如果確定包表318中的狀態(tài)不是“包超限”,則在框558處,核心供應服務206可將包表318中的狀態(tài)更新為“傳遞進行中”。
隨后,在框560處,核心供應服務206可將包表318中的傳遞計數(shù)更新為包下載消息中所指定的值。例如,如果包下載消息向核心供應服務206請求兩個包,則包表318中的傳遞計數(shù)增2。在框562處,核心供應服務206可將“包傳遞進行中”消息記入到作業(yè)日志表326中。
由于未從計算設備得到確認,因此框564可接收控制,從而在框564處,核心供應服務206可將包表318中的狀態(tài)更新為“超限”。
在框566處,核心供應服務206可將包表中的傳遞計數(shù)更新為包下載消息中所指定的值,且在框568處,CPS將作業(yè)表316的狀態(tài)更新為“出錯”。最后,在框570處,核心供應服務206可將“包超限”消息記入到作業(yè)日志表326中。
在框572處,核心供應服務206可結束對包請求事務的處理,并等待來自請求包的計算設備的確認。在框574處,核心供應服務206可接收分發(fā)服務模塊208的消息隊列中的包下載完成消息。包下載完成消息可在成功下載所請求的包之后由包/證書請求管理器386發(fā)送。
當接收到包下載完成消息之后,在框576處,核心供應服務206可啟動包下載完成事務。作為包下載完成事務的一部分,在框578處,核心供應服務206可將包表318中的狀態(tài)更新為“已完成”,并在框580處,將作業(yè)表中的狀態(tài)也更新為“已完成”。
此外,在框580處,核心供應服務206可將“作業(yè)已完成”消息記入到作業(yè)日志表326中,并在框582處結束包下載完成事務。
示出了軟件供應系統(tǒng)200的各個組件的操作之后,以下圖13-16示出描述各個條件下用戶經(jīng)歷的示例情形。
情形1——登錄期間的余額驗證圖13示出描述LPM 224操作期間的第一情形的流程圖600。具體地,流程圖600示出用戶登錄至計算機的情形。如圖13中所示,在框602處,當用戶試圖登錄到計算設備202時,強制插件模塊352可向余額管理器366發(fā)送登錄事件。響應于該登錄事件,在框604處,余額管理器366可驗證可供在計算設備202上使用操作系統(tǒng)而使用的余額。如果余額足夠,則在框606處,余額管理器366可通知登錄邏輯364來以正常方式激活操作系統(tǒng)。
然而,如果余額管理器366確定余額不夠,則在框608處,余額管理器366可激活激活UI 396。激活該激活UI的目的在于允許用戶購買更多的使用時間。
在框610處,激活UI 396可激活購買管理器388,且用戶可進行購買。用戶可通過連接至記帳系統(tǒng)216、通過呼叫顧客服務代表、或以任何其它所需方式進行購買。隨后,在框612處,證書/包請求管理器368可下載供應包。
證書/包請求管理器386可將所下載的供應包提供給安全存儲管理器358用于安全存儲。在框614處,余額管理器366可分析所下載的供應包,并在框616處,可據(jù)此增加計算設備202可用的供應余額。
情形2——登錄后的使用購買圖14示出描述LPM 224操作期間的第二情形的流程圖620。具體地,流程圖620描述了其中用戶已經(jīng)登錄到計算設備202上且用戶選擇控制面板小程序或任務欄圖標來激活余額管理器366的情形。
在框622處,用戶可激活控制面板小程序,這向余額管理器366發(fā)送一事件。余額管理器366可向用戶顯示當前余額信息,并調(diào)用激活UI 396,從而激活購買管理器388。一旦用戶購買了額外的時間之后,證書/包請求管理器386可下載供應包。
證書/包請求管理器386可將所下載的供應包提供給安全存儲管理器358以便安全存儲。在框628處,余額管理器366可分析所下載的供應包,且在框630處,可據(jù)此增加計算設備202可用的供應余額。
情形3——登錄后的余額更新和通知圖15示出描述LPM 224的操作期間的第三情形的流程圖640。具體地,流程圖640描述其中用戶已經(jīng)登錄到計算設備202上且登錄邏輯364作為來自可靠時鐘管理器370的報時的結果接收到一事件的情形。
在框642處,登錄邏輯364可從可靠時鐘管理器370接收報時事件。作為結果,登錄邏輯364可向余額管理器366發(fā)送報時事件。
響應于報時事件,在框644處,余額管理器366可更新用于在計算設備202上使用操作系統(tǒng)的可用余額。隨后,在框646處,余額管理器366檢查可用余額?;诠浪憬Y果,在框648處,余額管理器366可采取適當?shù)膭幼鳎@可以是例如激活激活UI 396、注銷該用戶、繼續(xù)其它適當?shù)膭幼鞯取?br>
情形4——計算設備停用圖16示出描述LPM 224操作期間的第四情形的流程圖600。具體地,流程圖600描述了其中用戶已經(jīng)登錄到計算設備202上且登錄邏輯364作為來自可靠時鐘管理器30的報時的結果接收一事件的情形。
在框622處,登錄邏輯364可從可靠時鐘管理器370接收報時事件。作為結果,登錄邏輯364可向余額管理器366發(fā)送報時事件。
響應于該報時事件,在框644處,余額管理器366可更新用于在計算設備202上使用操作系統(tǒng)的可用余額。隨后,在框666處,余額管理器366可檢查可用余額?;诠浪憬Y果,在框648處,余額管理器366可采取適當?shù)膭幼?,這可以是例如激活激活UI 396、注銷該用戶、繼續(xù)其它適當?shù)膭幼鞯取?br>
在該情況中,例如,余額管理器366發(fā)現(xiàn)計算設備202可用的余額等于或低于閾值,諸如0。作為結果,在框668處,余額管理器366可使通知UI 398顯示注銷消息,并最終注銷用戶使之不能在計算設備202上使用該操作系統(tǒng)。在替換情況中,通知UI 398也可激活購買管理器388來允許用戶購買額外的使用時間。
情形5——登錄后的預付輸入圖17示出描述LPM 224操作期間的第五情形的流程圖680。具體地,流程圖680描述了其中用戶已經(jīng)登錄到計算設備202上且用戶選擇控制面板小程序或任務欄圖標來激活激活向?qū)б员爿斎雭碜灶A付卡的信息的情形。這可能是當用戶之前已經(jīng)購買了預付卡并決定將可由預付卡獲得的使用時間加到他或她的帳戶時的情況。
在框682處,用戶可激活控制面板小程序,這向激活UI 396發(fā)送一事件以便顯示激活向?qū)?。可向用戶顯示的GUI窗口的一示例由圖18中的增加時間窗口684示出。用戶可選擇來自增加時間窗口684的增加時間(Add Time)按鈕以便輸入來自預付卡的信息。
隨后,在框686處,激活UI 396可向用戶告知用戶能夠使用圖19中GUI 688所示的激活向?qū)璧母鞣N信息。
在框690處,激活UI 396可呈現(xiàn)如圖20中所示的網(wǎng)絡連接GUI 692,該GUI向用戶通知web服務通信管理器390正連接至因特網(wǎng)以便訪問核心供應服務206。
隨后,在框694處,激活UI 396可要求用戶輸入從預付使用卡接收到的密鑰。預付卡上的密鑰可包括一串字母數(shù)字或其它字符。在該情況中,密鑰是25個字符長的字母數(shù)字密鑰,如圖所示將被輸入到圖21的GUI 696中。
當接收到來自預付卡的密鑰之后,在框698處,激活UI 396可要求用戶登錄至如由圖22的GUI 700所示的.NET系統(tǒng)中。注意到,并不總是需要用戶登錄至.NET系統(tǒng)。
隨后,在框702處,激活UI 396可從核心供應服務206接收用戶的來自預付卡的密鑰被接受且用戶帳戶應增加相應的時間量的確認。通知時間增加成功的消息由圖23的GUI 704示出。
最后,在框706處,激活UI 396可向用戶通知用戶剛通過使用預付卡增加的時間將在幾分鐘內(nèi)記入計算設備202中,如圖24的GUI 708所示。
盡管前述文本描述本發(fā)明的各種不同實施例的詳細描述,但應理解,本發(fā)明的范圍由本專利所附的權利要求書的文字定義。詳細描述應被解釋為僅是示例性的,而未描述本發(fā)明的每個可能的實施例,因為描述每個可能實施例即使不是不可能也是不實際的。可使用當前的技術或在本專利的提交日期之后開發(fā)的技術來實現(xiàn)各種替換實施例,它們?nèi)耘f落入定義本發(fā)明的權利要求書的范圍之內(nèi)。
因此,可對此處所述和所示的技術和結構作出多種修改和變更,而不背離本發(fā)明的精神和范圍。從而,應理解,此處所述的方法和裝置僅是說明性而不是對本發(fā)明范圍的限制。
權利要求
1.一種在被供應設備上供應服務的方法,所述方法包括接收注冊所述被供應設備的注冊請求,其中所述注冊請求包括被供應設備硬件標識;生成被供應設備證書;接收生成被供應設備包的包生成請求,其中所述包生成請求包括被供應設備初始化密鑰;生成所述被供應設備包,其中所述被供應設備包包括授權所述服務在所述被供應設備上的第一使用量的信息;以及存儲所述被供應設備包和所述被供應設備證書。
2.如權利要求1所述的方法,其特征在于,所述被供應設備包還包括所述被供應設備初始化密鑰、所述被供應設備證書和所述被供應設備硬件標識。
3.如權利要求1所述的方法,其特征在于,所述被供應設備硬件標識包括以下的至少其中之一(1)個人計算機的標識;(2)所述個人計算機的硬件配置;和(3)蜂窩電話標識卡。
4.如權利要求1所述的方法,其特征在于,所述服務是以下其中之一(1)計算機軟件;(2)計算機操作系統(tǒng);和(3)數(shù)字記錄的媒體。
5.如權利要求1所述的方法,其特征在于,生成所述被供應設備證書還包括從公鑰基礎架構接收私鑰;以及使用所述私鑰編碼所述被供應設備證書。
6.如權利要求1所述的方法,其特征在于,在所述被供應設備上的所述服務第一使用量包括以下的至少其中之一(1)所述服務的使用時間量;以及(2)所述服務使用的期滿時間。
7.如權利要求1所述的方法,其特征在于,還包括從客戶機設備接收對所述被供應設備證書的客戶機證書請求,其中所述客戶機證書請求包括客戶機設備硬件標識;檢索所述被供應設備證書來確定所述客戶機設備硬件標識是否與所述被供應設備硬件標識匹配;以及將所述被供應設備證書發(fā)送給所述客戶機設備。
8.如權利要求1所述的方法,其特征在于,還包括從客戶機設備接收對所述被供應設備包的客戶機包請求,其中所述客戶機包請求包括(a)客戶機設備硬件標識;(b)客戶機設備初始化密鑰;和(3)客戶機設備簽名;驗證所述客戶機設備簽名;檢索所述被供應設備包來確定(1)所述客戶機設備硬件標識是否與所述被供應設備硬件標識匹配;和(2)所述客戶機設備初始化密鑰是否與所述被供應設備初始化密鑰匹配;以及將所述被供應設備包發(fā)送給所述客戶機設備。
9.如權利要求8所述的方法,其特征在于,發(fā)送所述被供應設備包還包括增加客戶機傳遞計數(shù);如果所述客戶機傳遞計數(shù)小于最大客戶機傳遞計數(shù)則發(fā)送所述被供應設備包;如果所述客戶機傳遞計數(shù)不小于最大客戶機傳遞計數(shù)則將所述被供應設備的狀態(tài)置為出錯狀態(tài);從所述客戶機設備接收確認;以及如果接收到所述確認則使所述客戶機傳遞計數(shù)復位。
10.如權利要求8所述的方法,其特征在于,還包括使客戶機使用帳戶更新所述服務的第一使用量。
11.如權利要求8所述的方法,其特征在于,所述客戶機簽名包括由公鑰基礎架構生成且用于編碼所述供應設備證書的私有密鑰。
12.如權利要求8所述的方法,其特征在于,所述客戶機包請求經(jīng)由因特網(wǎng)接收。
13.如權利要求1所述的方法,其特征在于,所述被供應設備包是基于XML的供應包。
14.一種用于在被供應設備上供應服務的供應包,所述包包括被供應設備硬件標識;被供應設備初始化密鑰;以及授權所述服務在所述被供應設備上的第一使用量的信息。
15.如權利要求14所述的供應包,其特征在于,所述供應包是基于XML的包。
16.如權利要求14所述的供應包,其特征在于,所述供應包使用來自公鑰基礎架構的私鑰來編碼。
17.一種用于生成如權利要求14所述的供應包的供應系統(tǒng),其特征在于,所述供應系統(tǒng)包括適用于接收注冊所述被供應設備的注冊請求的第一模塊,其中所述注冊請求包括被供應設備硬件標識;適用于生成被供應設備證書的第二模塊;適用于接收生成所述供應包的包生成請求第三模塊,其中所述包生成請求包括被供應設備初始化密鑰;以及適用于生成所述供應包的第四模塊。
18.如權利要求17所述的供應系統(tǒng),其特征在于,所述服務是以下其中之一(1)計算機軟件;(2)計算機操作系統(tǒng);以及(3)數(shù)字記錄的媒體。
19.如權利要求17所述的供應系統(tǒng),其特征在于,還包括適用于從公鑰基礎架構接收私鑰并使用所述私鑰來編碼所述供應包的附加模塊。
20.如權利要求17所述的供應系統(tǒng),其特征在于,還包括適用于從客戶機設備接收對所述供應包的客戶機包請求的附加模塊;其中所述客戶機包請求包括(a)客戶機設備硬件標識;(b)客戶機設備初始化密鑰;和(3)客戶機設備簽名;適用于驗證所述客戶機設備簽名的附加模塊;適用于檢索所述供應包來確定(1)所述客戶機設備硬件標識是否等于所述被供應設備硬件標識,利(2)所述客戶機設備初始化密鑰是否等于所述被供應設備初始化密鑰的附加模塊;以及適用于將所述供應包發(fā)送給所述客戶機設備的附加模塊。
21.一種具有用于執(zhí)行包括以下步驟的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì)(1)接收注冊被供應設備的注冊請求,所述注冊請求包括被供應設備硬件標識;(2)生成被供應設備證書;(3)接收生成被供應設備包的包生成請求,其中所述包生成請求包括被供應設備初始化密鑰;以及(4)生成所述被供應設備包,其中所述被供應設備包包括授權服務在所述被供應設備上的第一使用量的信息。
22.如權利要求21所述的計算機可讀介質(zhì),其特征在于,還包括用于執(zhí)行以下方法的計算機可執(zhí)行指令(1)從客戶機設備接收對所述被供應設備證書的客戶機證書請求,其中所述客戶機證書請求包括客戶機設備硬件標識;(2)檢索所述被供應設備證書來確定所述客戶機設備硬件標識是否等于所述被供應設備硬件標識;以及(3)將所述被供應設備證書發(fā)送給所述客戶機設備。
23.如權利要求21所述的計算機可讀介質(zhì),其特征在于,所述服務是以下的其中之一(1)計算機軟件;和(2)計算機操作系統(tǒng)。
24.一種與多個計算設備通信的網(wǎng)絡,所述多個計算設備包括適用于出售服務在被供應設備上的使用量的記帳系統(tǒng);適用于供應所述服務在所述被供應設備上的使用量的供應系統(tǒng),所述供應系統(tǒng)包括適用于從所述記帳系統(tǒng)接收注冊所述被供應設備的注冊請求的注冊模塊,其中所述注冊請求包括被供應設備硬件標識,適用于生成被供應設備證書的證書模塊,適用于接收生成所述供應包的包生成請求的分發(fā)模塊,其中所述包生成請求包括被供應設備初始化密鑰,適用于生成所述供應包的包生成模塊,并且所述分發(fā)模塊還適于將所述供應包發(fā)送給所述被供應設備;以及適用于使用所述服務的被供應設備,所述被供應設備包括適用于將所述包生成請求發(fā)送給所述供應系統(tǒng)并下載所述供應包的包請求模塊,適用于安全存儲所述供應包的存儲模塊,適用于分析所述供應包以生成余額值的余額模塊,以及適用于(1)如果所述余額值高于閾值則在所述被供應設備上激活所述服務;以及(2)如果所述余額值不高于所述閾值則在所述被供應設備上停用所述服務的強制模塊。
25.如權利要求24所述的網(wǎng)絡,其特征在于,所述供應系統(tǒng)還適用于請求所述被供應設備的私鑰并使用所述私鑰來編碼所述證書。
26.如權利要求24所述的網(wǎng)絡,其特征在于,所述記帳系統(tǒng)還適用于(1)生成印刷有所述初始化密鑰的預付卡;以及(2)經(jīng)由零售商店向用戶出售所述預付卡。
27.如權利要求26所述的網(wǎng)絡,其特征在于,所述被供應設備還包括適用于從所述用戶接收所述初始化密鑰的激活模塊;以及所述請求模塊還適用于使用所述初始化密鑰來生成所述包生成請求。
28.如權利要求24所述的網(wǎng)絡,其特征在于,所供應設備是以下的其中之一(1)個人計算機;(2)手機;(3)游戲設備;以及(4)媒體播放器。
29.如權利要求24所述的網(wǎng)絡,其特征在于,所述供應包是基于XML的供應包。
30.如權利要求24所述的網(wǎng)絡,其特征在于,所述被供應設備使用因特網(wǎng)與所述網(wǎng)絡通信。
全文摘要
一種動態(tài)軟件供應系統(tǒng)允許基于所需的商業(yè)過程在多個不同計算設備上供應軟件。該動態(tài)軟件供應系統(tǒng)允許用戶向操作系統(tǒng)供應服務或第三方請求對操作系統(tǒng)的特定時間期限、特定使用量或任何其它所需方式的使用。供應服務處理來自用戶或第三方的請求以供應操作系統(tǒng)的使用,且響應于該請求,為由該請求指定的特定設備供應對操作系統(tǒng)的使用。該動態(tài)軟件激活系統(tǒng)還包括位于使用該操作系統(tǒng)的設備上的本地供應模塊,其中該本地供應模塊基于從供應服務接收的指令激活和停用該操作系統(tǒng)。
文檔編號G06F7/04GK101057214SQ200580038812
公開日2007年10月17日 申請日期2005年11月12日 優(yōu)先權日2004年11月15日
發(fā)明者C·A·斯蒂伯, A·法蘭克, J·S·杜弗斯, M·C·萊特, T·G·菲力普斯, 徐澤勇, 徐章煒, M·L·霍拉代, P·C·薩頓 申請人:微軟公司