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