欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

將軟件包綁定到對允許硬件改變的計算機系統(tǒng)的簡明硬件標識的制作方法

文檔序號:6393886閱讀:287來源:國知局
專利名稱:將軟件包綁定到對允許硬件改變的計算機系統(tǒng)的簡明硬件標識的制作方法
技術領域
本發(fā)明涉及用于為給定計算機系統(tǒng)的產(chǎn)生簡明硬件標識(compacthardwareidentification,CHWID)的系統(tǒng)和方法。簡明硬件標識(CHWID)能根據(jù)對計算機系統(tǒng)的硬件改變程度,控制在給定的計算機系統(tǒng)上的軟件使用。簡明硬件標識(CHWID)能在如電話那樣的有限帶寬介質上以電的形式發(fā)送。
背景技術
近年來已作了相當大的努力來防止或盡量減少計算機軟件的非法使用。由于其可復制性和易散布性,在超過許可證協(xié)定的范圍外的計算機軟件的盜版和非法使用是經(jīng)常發(fā)生的,這大大的侵害了軟件制作者。
為了努力在減少超過許可證協(xié)定的范圍外的計算機軟件的盜版和非法使用,已經(jīng)發(fā)展了許多方法。然而,那些方法常常以消費者不方便的方式對合法的軟件購買者和用戶產(chǎn)生了問題。例如,升級她/他的計算機的用戶應能夠合法的在升級的機器上重新安裝軟件產(chǎn)品。然而,現(xiàn)在可用的方法或者(i)不允許軟件被安裝,或者(ii)強迫用戶(他很不滿)打電話給軟件制作者請求幫助。
因而,需要改進的針對盜版和非法使用的技術方案,但此方法還考慮到并適應合法的軟件購買者和用戶的需要和實踐。

發(fā)明內(nèi)容
通過發(fā)現(xiàn)了一種改進的計算機系統(tǒng)改善的硬件標識,本發(fā)明解決了上面討論的某些困難和問題。本發(fā)明的硬件標識提供了盡量減少或防止超過許可證協(xié)議范圍的計算機軟件的盜版和非法使用的方法,同時考慮了合法軟件用戶的機器升級。
本發(fā)明的硬件標識(這里稱為“簡明硬件標識”(CHWID))識別(1)通常用于建立對計算機系統(tǒng)的硬件配置的若干組件類別,和(2)特定的計算機系統(tǒng)給定的組件類別中的單個組件設備或實例。通過考慮在選定個數(shù)的組件類別中的單個組件設備或實例,產(chǎn)生特定計算機系統(tǒng)安全可靠的簡明硬件標識(CHWID),同時使得特定計算機系統(tǒng)的硬件配置的組件能有一定程度的改變。
如果在一開始裝載軟件產(chǎn)品到計算機時有有限量的空間能用于識別特定的硬件,就可以使用簡明硬件標識(CHWID)。能存儲簡明硬件標識(CHWID)為以后使用,比如(i)當相同軟件產(chǎn)品在相同計算機或相同計算機的變化上運行時,或(ii)當相同軟件產(chǎn)品重新裝載到相同計算機的變化或完全不同的計算機上時。例如,當相同軟件產(chǎn)品在相同計算機或相同計算機的變化上運行時產(chǎn)生第二簡明硬件標識(sCHWID),并與(1)以前存儲的簡明硬件標識(iCHWID)或(2)以前存儲的詳備硬件標識(VHWID)比較,所述詳備硬件標識還將在下面描述。若在第二簡明硬件標識(sCHWID)的組件類別與(1)以前存儲的簡明硬件標識(iCHWID)或(2)以前存儲的詳備硬件標識(VHWID)的對應組件類別之間存在所希望的匹配數(shù),則本發(fā)明的方法允許軟件產(chǎn)品運行。然而,若在第二簡明硬件標識(sCHWID)的組件類別與(1)以前存儲的簡明硬件標識(iCHWID)或(2)以前存儲的詳備硬件標識(VHWID)的對應組件類別之間不存在所希望的匹配數(shù),則本發(fā)明不允許運行該軟件產(chǎn)品,因為對原始硬件系統(tǒng)的改變超越了所希望的限度。
因而本發(fā)明針對簡明硬件標識(CHWID),和產(chǎn)生簡明硬件標識(CHWID)的方法。本發(fā)明還針對另一個方法,若試圖運行軟件產(chǎn)品產(chǎn)生的新的簡明硬件標識(CHWID)時,由于對原始計算機系統(tǒng)一次或多次硬件改變,在與(1)以前存儲的簡明硬件標識(iCHWID)或(2)以前存儲的詳備硬件標識比較時,CHWID超出了限度,則禁止軟件在該計算機系統(tǒng)上使用。
在閱讀了所揭示的實施例的詳細描述和附后的權利要求之后,本發(fā)明的這些或其它特征和優(yōu)點將變得一目了然。


圖1是為實現(xiàn)本發(fā)明的示例性操作環(huán)境的某些主要組件的流程圖;圖2描繪出包含8個組件類別和分布在這8個組件類別中的總共19個組件設備實例的示例性硬件配置;圖3描繪出對圖2中所示的示例性硬件配置的可能的詳備硬件標識(VHWID)和對應的簡明硬件標識(CHWID);圖4-8是流程圖,示出在確定硬件配置的簡明硬件標識(CHWID)時的示例性步驟;和圖9-10是流程圖,示出通過比較產(chǎn)生的簡明硬件標識(CHWID)與(1)以前存儲的簡明硬件標識(iCHWID)或(2)以前存儲的詳備硬件標識(VHWID),判斷軟件產(chǎn)品是否能在計算機硬件系統(tǒng)上使用的示例性步驟。
具體實施例方式
為促進本發(fā)明的原理的理解,進行本發(fā)明的特定實施例的描述,且用特定的語言描述該特定實施例。然而應理解,不試圖通過使用特定語言限止本發(fā)明的范圍。
對與本發(fā)明有關專業(yè)的普通人士,所討論的本發(fā)明的原理的變更、進一步修改和進一步應用都被認為是正常的。
本發(fā)明針對由簡明硬件標識(CHWID)識別給定計算機系統(tǒng)的硬件配置的方法。本發(fā)明還針對通過識別在選定數(shù)目的組件類別中的每一個中單個組件實例產(chǎn)生簡明硬件標識(CHWID)的方法。本發(fā)明還針對使用簡明硬件標識(CHWID)判斷軟件產(chǎn)品是否能在某一計算機硬件配置上使用的方法。
對包括各種硬件組件的計算機系統(tǒng)能產(chǎn)生簡明硬件標識(CHWID)。示例性計算機系統(tǒng)能包括若干硬件組件,它們被分組成不同類別,包括但不限于硬盤驅動器、光盤驅動器、網(wǎng)卡、顯示適配器、只讀存儲器(ROM)、隨機存取存儲器(RAM)和基本輸入/輸出系統(tǒng)(BIOS)。下面描述用于實現(xiàn)本發(fā)明的示例性計算機系統(tǒng)和示例性操作環(huán)境。
示例性操作環(huán)境下面將參考附圖描述本發(fā)明的示例性實施例,其中相同的序號表示類似的單元。圖1示出為實施本發(fā)明的示例性操作環(huán)境。示例性操作環(huán)境包括以傳統(tǒng)的個人計算機20形式的通用計算設備。通常,個人計算機20包括處理單元21、系統(tǒng)存儲器22和將包括系統(tǒng)存儲器22的各種系統(tǒng)組件耦接到處理單元21的系統(tǒng)總線23。系統(tǒng)總線23能是若干類型總線結構的任一種、包括存儲總線或存儲控制器、外圍總線,和使用各種總線體系結構中的任一種的本地總線。系統(tǒng)存儲器包括只讀存儲器(ROM)24和隨機存取存儲器(RAM)25。包含幫助(如在起動期間)在個人計算機20的各單元之間傳輸信息的基本例行程序的基本輸入/輸出系統(tǒng)(BIOS)26存儲在ROM24中。
個人計算機20還包括用于讀寫硬盤(未示出)的硬盤驅動器27、用于讀寫可移磁盤29的磁盤驅動器28和用于讀寫如CD-ROM或其它光介質的可移光盤31的光盤驅動器30。硬盤驅動器27、磁盤驅動器28和光盤驅動器30分別通過硬盤驅動器接口32、磁盤驅動器接口33和光盤驅動器接口34連接系統(tǒng)總線23。雖然這里描述的示例性實施例采用硬盤27、可移磁盤29和可移光盤31,本專業(yè)熟練人士知道,在示例性操作環(huán)境中也能使用其它類型能存儲由計算機訪問的數(shù)據(jù)的計算機可讀介質,如盒式磁帶、閃存卡、數(shù)字視頻盤、伯努利式盒帶、RAM、ROM等。驅動器和他們相關的計算機可讀介質為個人計算機20提供了計算機可執(zhí)行指令、數(shù)據(jù)結構、程序模塊和其它數(shù)據(jù)的非易失性存儲。例如一個或多個數(shù)據(jù)文件60(未示出)能存儲在個人計算機20的RAM25和/或硬盤驅動器27。
若干程序模塊能存在硬盤27、磁盤29、光盤31、ROM24或RAM25中,包括操作系統(tǒng)35、應用程序36、其它程序模塊37和程序數(shù)據(jù)38。程序模塊包括但不限于執(zhí)行特定任務或實現(xiàn)特定的抽象數(shù)據(jù)結構的例行程序、子程序、程序、對象、組件、數(shù)據(jù)結構等。本發(fā)明的各方面能作為應用程序模塊36的整個部分或作為其它程序模塊37的部分實現(xiàn)。
用戶能通過如鍵盤40和定位設備42那樣的輸入設備輸入命令和信息到個人計算機20。其它輸入設備(未示出)可以包括話筒、操縱桿、游戲手柄、衛(wèi)星碟式天線、掃描器等。這些和其它輸入設備常通過連結系統(tǒng)總線23的串行接口46連結處理單元22,但能通過其它接口連接,如并行口、游戲口、通用串行總線(USB)等。監(jiān)視器47或其它類型顯示設備也能經(jīng)由如視頻適配器48的接口連結系統(tǒng)總線23。除監(jiān)視器外,個人計算機通常包括如揚聲器和打印機等其他外圍輸出設備(未示出)。
使用到一個或多個遠程計算機49的邏輯連接,個人計算機20能在網(wǎng)絡環(huán)境中操作。遠程計算機49可以是另外的個人計算機、服務器、客戶機、路由器、網(wǎng)絡PC、對等設備或其它公共網(wǎng)絡節(jié)點。雖然遠程計算機49通常包括以上與個人計算機20有關的單元中的多個或所有,在圖1中只示出存儲設備50。圖1中描繪出的邏輯連接包括局域網(wǎng)(LAN)51和廣域網(wǎng)(WAN)52。那樣的網(wǎng)絡環(huán)境在辦公室、企業(yè)范圍的計算機網(wǎng)絡、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
在LAN網(wǎng)絡環(huán)境使用時,個人計算機20通過網(wǎng)絡接口或適配器53連到局域網(wǎng)51。在WAN網(wǎng)絡環(huán)境使用時,個人計算機20通常包括調(diào)制解調(diào)器54或其他裝置,用于建立經(jīng)過如因特網(wǎng)那樣的WAN52上的通訊。內(nèi)置或外接的調(diào)制解調(diào)器54經(jīng)串行接口46連結系統(tǒng)總線23。在網(wǎng)絡環(huán)境中,相對于個人計算機畫出的程序模塊或其一部分能存儲在遠程存儲設備50??梢岳斫猓境龅木W(wǎng)絡連接是示例性的,可以使用在計算機之間建立通訊鏈路的其它裝置。
此外,本領域普通技術人員知道,本發(fā)明能在其它計算機系統(tǒng)配置中實現(xiàn),包括手持式設備、多處理器系統(tǒng)、基于微處理器的或可編程的消費型電子設備、網(wǎng)絡個人計算機、小型機、大型主機等。本發(fā)明也能在分布式計算機環(huán)境中實現(xiàn),其中任務通過經(jīng)通訊網(wǎng)絡鏈接的遠程處理設備完成。在分布式計算機環(huán)境中,程序模塊能位于本地和遠程存儲設備中。
本發(fā)明的示例性實施例的實現(xiàn)如上所述,計算機系統(tǒng)通常包括多種類別的硬件組件。此外,計算機系統(tǒng)能包括再每個硬件組類別中的多個組件(如二個硬盤驅動器)。
本發(fā)明的簡明硬件標識(CHWID)考慮在用于確定CHWID的每個希望的類別的硬件組件中的單個組件設備(這里也能稱為“實例”)。本發(fā)明的簡明硬件標識(CHWID)也能考慮在計算機硬件系統(tǒng)的給定的組件類別中不存在的組件設備。例如,在檢查給定的計算機硬件配置之前能作出用于識別給定的計算機硬件配置的組件類別的判斷。計算機硬件配置可以包括或可以不包括對用于產(chǎn)生計算機硬件配置的簡明硬件標識(CHWID)的每個選定的組件類別的組件實例。
下面給出用于產(chǎn)生簡明硬件標識(CHWID)的示例性方法。此外,下面還描述了使用簡明硬件標識(CHWID)作為反盜版工具的本發(fā)明的示例性方法。
I.對計算機系統(tǒng)產(chǎn)生簡明硬件標識(CHWID)下面給出示例性簡明硬件標識(CHWID)的各部分的描述。
A.簡明硬件標識(CHWID)給定計算機系統(tǒng)的簡明硬件標識(CHWID)希望包括兩個不同的部分(1)可選的版本組件和(2)散列組件。每個可能的簡明硬件標識(CHWID)部分能從給定計算機系統(tǒng)的硬件配置導出。圖2中示出計算機硬件配置和在每個組件類別中的實例的例子。
如圖2所示,示例性計算機硬件配置20包括8個不同的組件類別21-28,在組件配備21-28中分布著總共19個組件實例200。CDRom組件類別21包括4個組件實例;IDE組件類別22包括2個組件實例;驅動器組件類別23包括1個組件實例;顯示組件類別24包括1個組件實例;SCSI組件類別25包括2個組件實例;盤組件類別26包括6個組件實例;網(wǎng)卡組件類別27包括1個組件實例;處理器(即CPU)組件類別28包括2個組件實例。圖2中的行29列出一串數(shù)字,表示在8個組件類別21-28的每一個中組件實例的個數(shù)。
需要指出的是,在給定組件類別中的組件實例的數(shù)能在0和表示給定硬件配置所需要的個數(shù)之間變化,盡管在一種實現(xiàn)中也能任意的限止每個組件類別的組件實例數(shù)。通常,給定的硬件配置對每個組件類別包括0到約6個組件實例。如下所述,即使一組件類別不包含組件實例,在組件類別中不存在組件實例也提供了一段信息加入到簡明硬件標識(CHWID)中。
圖3示出示例的簡明硬件標識(CHWID)。圖3的示例性簡明硬件標識(CHWID)35是一種識別圖2示出的計算機硬件配置的可能方式。如上討論,簡明硬件標識(CHWID)35可希望包括兩個獨立的組件版本組件31’和散列組件33’。圖3中描繪出簡明硬件標識(CHWID)35的兩個獨立部分中的每一個。
頭部部分31的版本組件310用于識別詳備硬件標識(VHWID)34及其相應的簡明硬件標識(CHWID)35的特定的版本,詳備硬件標識(VHWID)34及其相應的簡明硬件標識(CHWID)35被用來標識給定計算機系統(tǒng)。例如,通過使用一組參數(shù)創(chuàng)建版本1,同時使用獨立的不同的一組參數(shù)創(chuàng)建版本2,詳備硬件標識(VHWID)或簡明硬件標識(CHWID)的特定版本(如版本“1”)能不同于詳備硬件標識(VHWID)或簡明硬件標識(CHWID)的另外版本(如版本“2”)。能使用各種參數(shù)創(chuàng)建詳備硬件標識(VHWID)及其對應的簡明硬件標識(CHWID)的給定版本。合適的參數(shù)包括但不限于(1)在簡明硬件標識(CHWID)35中表示的組件類別的數(shù)目;(2)用于創(chuàng)建詳備硬件標識(CHWID)34的組件類別的最大和/或最小數(shù)目;(3)在給定的VHWID組件類別中所需考慮的組件實例的最大和/或最小數(shù)目;(4)用于對詳備硬件標識(VHWID)34中的每個組件實例產(chǎn)生散列值的第一散列函數(shù);(5)用于形成詳備硬件標識(VHWID)34的每個散列結果的長度;(6)詳備硬件標識(VHWID)34的最大長度;(7)用于創(chuàng)建簡明硬件標識(CHWID)35的組件類別散列結果的最大和/最小數(shù)目;(8)用于對每個組件實例產(chǎn)生第二散列值的第二散列函數(shù);(9)用于形成簡明硬件標識(CHWID)35的每個第二散列結果的長度;和(10)簡明硬件標識(CHWID)35的最大長度。
某些組件類別不能具有多個組件實例,它們被確定為單實例類別??偟南到y(tǒng)RAM就是單實例類別的一個例子。單實例類別的數(shù)據(jù)被散列并在需要時被截斷,然后存入頭部部分31的截斷數(shù)值部分312。在頭部中表示的每個單實例類別具有相關的截斷數(shù)值部分312。
希望的是簡明硬件標識(CHWID)35的版本組件31’有固定的長度,它對所有具有特定版本類型(如版本1的CHWID)的簡明硬件標識是一致的。
計數(shù)部分32包括一串n個數(shù)字,表示在用于準備詳備硬件標識(CHWID)34的n個組件類別的每一個中的組件實例數(shù)。如圖3所示,計數(shù)部分32包括數(shù)字串“42112612“,對應于圖2中示出的組件類別21-28中組件實例。應注意,若一個組件類別不包含組件實例,對該特定的組件類別計數(shù)部分32包含“0”。
用于創(chuàng)建詳備硬件標識(VHWID)34的散列部分33包括表示在圖2中示出的組件類別21-28中19個組件實例的每一個的第一散列值的級聯(lián)串,每個獨立的散列值能具有最多約160比特的散列結果。希望的是,每個獨立的散列結果具有從約10個到20個比特的長度,更希望的是大約16比特。
詳備硬件標識(VHWID)34的散列部分33的長度根據(jù)給定硬件配置的n個組件類別中的組件實例數(shù)而改變。散列部分33的總長度等于組件實例的個數(shù)乘以對每個組件實例散列結果所希望的散列結果長度。在此例中,詳備硬件標識(VHWID)34的最終散列部分33具有希望的304比特(即19×16=304)的總長度。
簡明硬件標識(VHWID)35的散列部分33’不同于用于創(chuàng)建詳備硬件標識(VHWID)34的散列部分33。在本發(fā)明的一個示例性實施例中,簡明硬件標識(CHWID)35的散列部分33’包括每個組件類別的一個組件實例第二散列值,它是從在每個組件類別的一個組件實例第一散列值上執(zhí)行第二散列函數(shù)得到的。組件實例第一散列值從用于創(chuàng)建詳備硬件標識(VHWID)34的散列部分33的n個組件類別中的一個或多個選擇。在將要進一步通過第二散列函數(shù)處理的散列部分中選擇組件實例第一散列值的方法是(i)借助隨機選擇過程或(ii)借助預定的方法。一個示例性預定方法包括,如圖3所示在每個組件類別中選擇第一實例。
簡明硬件標識(CHWID)35的最終散列部分33’包括由在散列部分33的選擇組件實例第一散列值上執(zhí)行第二散列函數(shù)而得到的組件實例第二散列值(v’x)的級聯(lián)串。每個獨立的組件實例第二散列值能具有最多約16比特的長度。希望的是,每個分別的組件實例第二散列值具有總共8比特的長度,更希望的是從約3比特到約6比特。組件實例第二散列值(v’x)示于圖3,并通過在下列第一散列值的串上執(zhí)行第二散列函數(shù)得到v1、v5、v7、v8、v9、v11、v17和v18,以產(chǎn)生組件實例第二散列值v’1、v’5、v’7、v’8、v’9、v’11、v’17和v’18。
簡明硬件標識(CHWID)35的散列部分33’通常具有小于約64比特的長度。散列部分33’的長度能根據(jù)下列而變化(i)用于創(chuàng)建散列部分33’的組件實例第一散列值的數(shù)目,和(ii)對每個單獨的組件實例第二散列值的第二散列值長度。
如圖3所示,詳備硬件標識(VHWID)34能由頭部部分31、計數(shù)部分32和散列部分33的級聯(lián)串表示。類似的,簡明硬件標識(CHWID)35能由版本組件31’和散列部分33’的級聯(lián)串表示。下面描述對計算機硬件配置確定詳備硬件標識(VHWID)34和簡明硬件標識(CHWID)35的示例性方法。
應注意,本發(fā)明的簡明硬件標識(CHWID)可以只包括上述部分之一。在本發(fā)明的一個示例性實施例中,給定計算機硬件配置的簡明硬件標識(CHWID)35只包括散列部分33’。在此實施例中,簡明硬件標識(CHWID)35不包括版本組件31’。
不管用于創(chuàng)建簡明硬件標識(CHWID)35的組件,簡明硬件標識(CHWID)35希望地具有小于約256比特的總長度。在本發(fā)明的示例性實施例中,簡明硬件標識(CHWID)35具有從約32比特到約64比特的總長度。
B.對計算機系統(tǒng)確定詳備硬件標識(VHWID)本發(fā)明的VHWID能由在圖4-6中示出的示例性方法確定。示例性方法的步驟能由在客戶計算機上(類似于上述參考圖1描述的計算機20)的軟件產(chǎn)品中的軟件代碼實現(xiàn)。如圖4-6所示,對給定的計算機硬件配置(這里稱為“HW1”)的VHWID的示例性確定從步驟401開始,其中選擇組件類別數(shù)n以識別給定的計算機硬件配置HW1。如上討論,給定的計算機系統(tǒng)能包括各種硬件組件和硬件組件的類別。示例性硬件組件類別包括但不限于硬盤驅動器、邏輯盤分區(qū)、光盤、網(wǎng)卡、顯示適配器、只讀存儲器(ROM)、隨機存取存儲器(RAM)、IDE設備、聲卡、視頻卡、處理器、SCSI設備和系統(tǒng)BIOS。希望的是,硬件組件類別的個數(shù)n是從2到約16的整數(shù)。通常,為了(i)更準確地識別給定的計算機系統(tǒng),和(ii)更精確地度量給定計算機系統(tǒng)的限度,希望n盡可能大。
在步驟401選擇組件類別的個數(shù)n之后,在步驟402識別每個組件類別。組件類別可以包括如硬盤驅動器類別那樣上述組件類別的任一個。在下面表1中給出用于識別樣本硬件配置HW1的組件類別的示例性列表。
表1.用于識別樣本硬件配置HW1的硬件組件類別的示例性列表

如表1所示,在此例中n等于8,識別的硬件組件類別包括(1)CdRom類別;(2)IDE設備類別;(3)驅動器類別;(4)顯示適配器設備類別;(5)SCSI設備類別;(6)盤類別;(7)網(wǎng)卡類別;和(8)CPU處理器類別。
在步驟402識別每個組件類別后,在步驟403識別在每個硬件組件類別中的所有設備或實例。在步驟403還確定“計數(shù)”(即在每個組件類別中的組件設備或實例的個數(shù))。希望在特定組件類別中的每個實例由與該實例相關的最唯一的識別串識別。例如,硬件配置能包含由NEC公司制造并具有識別串“NECCDRW24 S15”的CdRom。用于判斷給定實例的最唯一的識別串的可用方法能在本發(fā)明中使用。在步驟404示出對每個組件實例賦予識別串的步驟。
一旦對每個組件實例賦予識別串,在步驟405準備詳備硬件標識(VHWID)的頭部部分。在步驟406,詳備硬件標識(VHWID)的特定版本被輸入到頭部以形成頭部部分310(如圖3所示)。如上所述,版本號能表示用于確定詳備硬件標識(VHWID)及其對應的簡明硬件標識(CHWID)的一個或多個參數(shù)。
在步驟407,識別在頭部表示的組件類別。通常,能只具有單個組件實例的組件類別,即單實例類別,在VHWID的頭部部分表示。能在VHWID的頭部部分表示的合適的組件類別包括但不限于存儲器組件類別、計算機可檢修能力的組件類別(即計算機是否可檢修)、BIOS或其組合。在本發(fā)明的示例性實施例中,VHWID的頭部部分包括從硬件配置單個組件類別來的信息。
方法從步驟407進到判斷框409。在判斷框409作出判斷,即形成頭部的一部分的組件實例標識串是否來源于一個散列函數(shù)。識別串能來源于一個散列函數(shù)或被截斷成希望的比特數(shù)。雖然作為一種選擇未在圖5中示出,應注意只要識別串小于字符的希望最大值,識別串能逐字地使用,但通常不大于16比特的。
若識別串來源于一個散列函數(shù),方法進行到步驟411,其中在組件實例的識別串上執(zhí)行散列函數(shù)并截斷到希望的比特長度。希望將散列結果截斷到約16比特的長度。在步驟412,截斷的散列結果輸入到頭部31的截斷數(shù)值部分312(如圖3所示)。若識別串不來源于散列函數(shù),方法進到步驟410,在那里識別串截斷到希望的長度并輸入到頭部部分31的截斷數(shù)值部分312。希望地,識別串被截斷到小于約16比特的長度。
一旦從步驟412來的截斷散列結果或從步驟410來的截斷的識別串輸入到頭部部分31的截斷數(shù)值部分312,方法進行到判斷框413。在判斷框413作出判斷,是否增加其他組件類別的細節(jié)到VHWID的頭部部分31。若其他組件類別的附加細節(jié)被加到VHWID的頭部部分31,方法返回到步驟407,并如上述那樣進行。若沒有信息要加到VHWID的頭部部分31,方法進行步驟414,在那里準備VHWID的計數(shù)部分32。如上討論,VHWID的計數(shù)部分32包括n個數(shù)字的數(shù)字串,它表示用于形成VHWID的n個組件類別的每一個中的組件實例的個數(shù)(見圖3的計數(shù)部分32)。
在步驟415,在對VHWID的計數(shù)部分32中表示的每個組件實例的識別串上執(zhí)行第一散列函數(shù)。若給定的組件類別不包含組件實例,產(chǎn)生專門的第一散列結果用于VHWID,其中專門的第一散列結果表明,給定的組件類別不包含組件實例。另選地,不存儲第一散列值,對應于所沒有的組件類別的計數(shù)部分32的那一部分被設置成零,表明該組件類別空缺。對每個組件實例的第一散列結果被截斷成希望的長度。在本發(fā)明的示例性實施例中,每個第一散列函數(shù)結果被截斷成約10到約20個比特,更希望在約16比特。
只要散列函數(shù)能接收任意長度的識別串并產(chǎn)生具有小于約160比特的固定長度的散列輸出或結果,在本發(fā)明中能使用任何已知的散列函數(shù)。合適的散列函數(shù)的例子包括散列函數(shù)算法HAVAL、MD2、MD4、MD5和SHA-1,但不限于這些,所有這些都為本領域普通技術人員公知。合適的散列函數(shù)及其描述能在Bruce Schneier的“應用密碼學(Applied Cryptography)”中找到,它由John Wiley & Sons(ISBN#0471117099)出版,其揭示內(nèi)容整體地引入這里。
在本發(fā)明的實施例中,在對給定的組件實例執(zhí)行第一散列函數(shù)之前,一個“鹽值(salt value)”能加到組件實例標識符。在此實施例中,加入鹽值使能基于同一計算機硬件配置產(chǎn)生不同的VHWID。在運行不同應用或不同過程時,同一硬件配置的不同VHWID是有益的。下面討論對同一硬件配置的不同VHWID是有益的情況的例子。
例如,若用戶激活從同一經(jīng)銷商來的多個軟件包,有可能使用VHWID聯(lián)系獨立的激活記錄,以建立該用戶軟件購買的習慣的圖。為預防此情況,通過使用如hashx=MD5[(鹽值(salt value))x+ID String]那樣的散列函數(shù)(其中對每個軟件包鹽值是不同的)構造每個獨立的散列,使從相同機器來的不同的VHWID看來是無聯(lián)系的。
在步驟416,對每個組件實例的第一散列結果被級聯(lián),以形成詳備硬件標識(VHWID)34的散列部分33(如圖3所示)。在步驟417,通過級聯(lián)頭部部分31、計數(shù)部分32和散列部分33來組裝最終的詳備硬件標識(VHWID)34。
在步驟418,存儲最終的對硬件配置HW1的詳備硬件標識,為以后使用。對硬件配置HW1的詳備硬件標識(VHWID)能存儲在本地(如在寄存器,文件系統(tǒng),或安全存儲中),在可訪問的遠處(如數(shù)據(jù)庫),或發(fā)送到交換所服務器,用于獲取許可證。
雖然上述示例性方法產(chǎn)生包含頭部31、計數(shù)部分32和散列部分33的詳備硬件標識(VHWID),在本發(fā)明的某些實施例中,對硬件配置HW1的詳備硬件標識(VHWID)可以只包含(i)僅僅散列部分33或(ii)與散列部分33結合的計數(shù)部分32,如使VHWID包括與散列部分33級聯(lián)的計數(shù)部分32。
C.對計算機系統(tǒng)確定簡明硬件標識(CHWID)本發(fā)明的簡明硬件標識(CHWID)能如圖7-8所示那樣確定。用于形成簡明硬件標識(CHWID)的示例性方法的步驟能由在客戶計算機(類似于參考圖1描述的計算機20)上的軟件產(chǎn)品中的軟件代碼執(zhí)行。如圖7-8所示,形成對硬件配置HW1的一個可能的簡明硬件標識(CHWID)的示例性方法開始于步驟420。
在步驟420,第二散列函數(shù)在一個組件實例第一散列值上執(zhí)行,后者來自于從用于創(chuàng)建詳備硬件標識(VHWID)34的散列部分33的一個或多個組件類別(n個)中選擇的q個組件類別的每一個。如上所述,第二散列函數(shù)能在一個或多個組件實例第一散列值上執(zhí)行,其中從n個組件類別的一個或多個中選擇組件實例第一散列值的方法通過(i)隨機選擇過程或(ii)預定方法完成。希望地,一個組件實例散列值從至少(n-5)組件類別中選擇,更希望地,從至少(n-3)個組件類別選擇,進一步希望地,從至少(n-2)個組件類別選擇。在本發(fā)明的示例性實施例中,從所有n個組件類別中選擇一個組件實例第一散列值,以形成對應的組件實例第二散列值。
在用于形成詳備硬件標識(VHWID)34的散列部分33的第一散列函數(shù)的場合,在本發(fā)明中能使用任何已知的散列函數(shù),只要該散列函數(shù)能接受最多約160比特的組件實例第一散列值,并產(chǎn)生具有小于約32比特的固定長度的組件實例第二散列值。合適的第二散列函數(shù)的例子包括如上討論為本專業(yè)普通人士眾知的散列函數(shù)算法HAVAL、MD2、MD4、MD5和SHA-1,但不限于這些。
在本發(fā)明的實施例中,在對給定的組件實例第一散列值執(zhí)行第二散列函數(shù)之前,可將“鹽值(salt value)”加到組件實例第一散列值。在此實施例中,加入鹽值使得能根據(jù)相同的計算機硬件配置產(chǎn)生不同的簡明硬件標識(CHWID)。對相同硬件配置不同的簡明硬件標識(CHWID)在運行不同應用或不同過程時是有益的。下面討論對相同硬件配置的不同的CHWID是有益的情況的一個例子。
例如,若用戶激活從同一經(jīng)銷商來的多個軟件包,有可能使用CHWID聯(lián)系分別的激活記錄,以建立該用戶軟件購買的習慣的圖。為預防此情況,通過使用如hashx=MD5[(鹽值(salt value))x+ID String]那樣的散列函數(shù)(其中對每個軟件包鹽值是不同的)構造每個獨立的散列,使從不同機器來的不同的CHWID看來是無聯(lián)系的。
在步驟421,級聯(lián)組件實例第二散列值,以形成簡明硬件標識(CHWID)35的散列部分33’(如圖3所示)。
在步驟427,簡明硬件標識(CHWID)的版本組件31’與簡明硬件標識(CHWID)的散列部分33’級聯(lián)以形成對硬件配置HW1的最終簡明硬件標識(CHWID)。然后方法進到步驟428。回到上述判斷框425,若簡明硬件標識(CHWID)不包括版本組件31’,方法直接進到步驟428。
在步驟428,存儲對硬件配置HW1最終的簡明硬件標識(CHWID),為以后使用。如下所述,對硬件配置HW1的簡明硬件標識(CHWID)能存儲在本地(如在寄存器、文件系統(tǒng)、或安全存儲中)、或在可訪問的遠處(如數(shù)據(jù)庫)。
如上討論,在本發(fā)明的某些實施例中,對硬件配置HW1的簡明硬件標識(CHWID)可以只包含散列部分33’。
H.使用簡明硬件標識(CHWID)使得能在計算機系統(tǒng)上使用軟件產(chǎn)品本發(fā)明還針對使用簡明硬件標識(CHWID)使得能在具有給定的計算機硬件配置的計算機系統(tǒng)上使用軟件產(chǎn)品的方法。在本發(fā)明的實施例中,使用簡明硬件標識(CHWID)使得能在具有給定的計算機配置的計算機系統(tǒng)上使用軟件產(chǎn)品的方法在以下情況被啟用(1)除了初始安裝以外在計算機上軟件的任何安裝期間,(ii)在運行已經(jīng)存在于計算機硬件配置中的組件上的軟件產(chǎn)品或應用期間,或(iii)兩者。在圖9-10中描述使用簡明硬件標識(CHWID)的示例性方法。示例性方法的步驟能由在客戶計算機(類似于參考圖1描述的計算機20)上的軟件產(chǎn)品中的軟件代碼實行。
如圖9的步驟501所示,軟件產(chǎn)品在具有硬件配置HW2的計算機上裝載或起動。計算機硬件配置HW2(i)能與用于產(chǎn)生初始的詳備硬件標識(稱之為iVHWID)或初始的簡明硬件標識(稱之為iCHWID)的硬件配置相同,或(ii)能是完全不同的計算機。
在步驟502,對計算機硬件配置HW2產(chǎn)生新的簡明硬件標識(稱之為nCHWID)。能如上所述并如圖4-8所示地對計算機硬件配置HW2產(chǎn)生新的簡明硬件標識(nCHWID)。一旦對計算機硬件配置HW2產(chǎn)生了新的簡明硬件標識(nCHWID),在步驟503檢索存儲的詳備硬件標識(VHWID)或存儲的簡明硬件標識(CHWID)。通常,存儲的詳備硬件標識(VHWID)是初始的詳備硬件標識(iVHWID),它在軟件產(chǎn)品初始安裝到第一計算機硬件配置HW1期間在HW1上產(chǎn)生。類似地,存儲的簡明硬件標識(CHWID)通常是初始的簡明硬件標識(iCHWID),它在軟件產(chǎn)品初始安裝到第一計算機硬件配置HW1期間在HW1上產(chǎn)生。
在判斷框504作出判斷,以前存儲的硬件標識是否為存儲的簡明硬件標識(CHWID)。若以前存儲的硬件標識是存儲的簡明硬件標識(sCHWID),方法進到步驟505,其中硬件配置HW2的新簡明硬件標識(nCHWID)與硬件配置HW1的以前存儲的簡明硬件標識(sCHWID)相比較。若以前存儲的硬件標識是存儲的詳備硬件標識(sVHWID),方法進到步驟509。在步驟509,新的簡明硬件標識(CHWID)與存儲的詳備硬件標識(VHWID)比較。對在存儲的詳備硬件標識(VHWID)的每個組件類別中的每個第一散列值執(zhí)行第二散列函數(shù),且其結果與在新的簡明硬件標識(CHWID)中每個組件類別相關的第二散列值比較。方法隨后進到判斷框506。
在判斷框506作出判斷,組件類別匹配的個數(shù)是否等于或超過為了能在硬件配置HW2上使用軟件產(chǎn)品所必需的組件類別匹配數(shù)m。若組件類別匹配數(shù)等于或超過所需的組件類別匹配數(shù)m,方法進到步驟507,其中方法使得能在硬件配置HW2上使用該軟件產(chǎn)品。若組件類別匹配數(shù)小于所需的組件類別匹配數(shù)m,方法進到步驟508,其中該方法使得不能在硬件配置HW2上使用該軟件產(chǎn)品。
在步驟505,硬件配置HW2的新簡明硬件標識(nCHWID)與(1)硬件配置HW1以前存儲的簡明硬件標識(CHWID)或(2)硬件配置HW1的以前存儲的詳備硬件標識(VHWID)作比較,這里后兩者一起稱為“硬件配置HW1的硬件標識(HWID)”,此比較涉及一個或多個規(guī)則,用于判斷對給定的組件類別是否存在匹配。希望地,使用簡明硬件標識(CHWID)使得能使用軟件產(chǎn)品的方法包括一個或多個下列規(guī)則,用于確定在對硬件配置HW2新產(chǎn)生的簡明硬件標識(nCHWID)與硬件配置HW1的簡明硬件標識(CHWID)或詳備硬件標識(VHWID)之間的組件類別匹配數(shù)(i)在表示在硬件配置HW2的一個或多個組件類別中的選擇組件實例的新簡明硬件標識(nCHWID)中的每個組件實例第二散列結果與在硬件配置HW1的簡明硬件標識(CHWID)中的或從HW1的詳備硬件標識(VHWID)推導出的對應的一個或多個組件類別中的每個組件實例第二散列結果進行比較;(ii)當在對硬件配置HW2的新的簡明硬件標識(nCHWID)的組件類別中的一個第二組件實例散列結果與在硬件配置HW1的簡明硬件標識(CHWID)中的或從HW1的詳備硬件標識(VHWID)推導出的對應的組件類別中的任何一個第二組件實例散列結果匹配時,則在硬件配置HW2的組件類別與硬件配置HW1的對應組件類別之間存在匹配;(iii)當在用于形成對硬件配置HW2的新簡明硬件標識(nCHWID)的組件類別中的一個第二組件實例散列結果與在用于形成硬件配置HW1的詳備硬件標識(VHWID)的對應組件類別中二個或多個導出的第二組件實例散列結果相匹配時,在硬件配置HW2的組件類別和硬件配置HW1的對應組件類別之間存在單個匹配;(iv)當在硬件配置HW2中的組件類別不包含第二組件實例散列結果,且在硬件配置HW1中對應的組件類別的確包含第二組件實例散列結果時,在硬件配置HW2的組件類別和硬件配置HW1的對應組件類別之間不存在匹配;(v)當硬件配置HW2中的組件類別包含單個第二組件實例散列結果,且在硬件配置HW1中的對應組件類別不包含第二組件實例結果時,在硬件配置HW2的組件類別和硬件配置HW1的對應的組件類別之間不存在匹配;和(vi)當在硬件配置HW2中的組件類別不包含第二組件實例散列結果,且在硬件配置HW1中的對應組件類別中不包含第二組件實例散列結果時,在硬件配置HW2的組件類別和硬件配置HW1的對應組件類別之間存在匹配;和(vii)在硬件配置HW2和硬件配置HW1之間的所需組件類別匹配數(shù)m可以是預定的并嵌入到給定的軟件產(chǎn)品的代碼中。
需要的組件類別匹配的數(shù)m根據(jù)對硬件配置組件改變所要求的限度進行選擇。所需組件類別匹配數(shù)m可以是(i)與在確定詳備硬件標識(VHWID)期間考慮的組件類別的總數(shù)n一樣大,或(ii)與在確定簡明硬件標識(CHWID)期間考慮的選擇組件類別的總數(shù)q一樣大,或(iii)象1那樣小。當m增加時,對計算機硬件配置改變的富余程度減少。例如,若組件類別的總數(shù)n等于10而m等于7,為使得能加載或運行軟件產(chǎn)品,10個組件類別中的7個必須匹配至少一個組件實例。若組件類別匹配的數(shù)小于7,該軟件產(chǎn)品將不能在該計算機硬件配置上運行或加載。
所需的組件類別匹配數(shù)m可以由軟件制造商預定,并編碼到用于產(chǎn)生簡明硬件標識(CHWID)的軟件產(chǎn)品代碼中。在本發(fā)明的一個示例性實施例中,希望地,m等于(n-3)。更希望地,m等于(n-2)。在本發(fā)明的另外示例性實施例中,希望地,m等于(q-3)。更希望地,m等于(q-2)。然而,如上指出,m能從1到n。
上面所描述并示于圖4-10的方法步驟能在本地或遠處執(zhí)行。通常,客戶購買能在如圖1所示的計算機20那樣的給定計算機上運行的軟件產(chǎn)品。軟件產(chǎn)品能是具有存儲在可運輸?shù)挠嬎銠C可讀介質(如CD-ROM或軟盤)上的軟件程序的熱塑料包裝的產(chǎn)品。另選地,軟件產(chǎn)品能在網(wǎng)絡(如局域網(wǎng)(LAN)51,或廣域網(wǎng)(WAN)52)上電子地傳遞。客戶將軟件產(chǎn)品作為存儲在系統(tǒng)存儲器22上的程序加載到計算機20上。
在軟件產(chǎn)品安裝期間,通常提示用戶輸入軟件產(chǎn)品的軟件產(chǎn)品標識(PID)的一部分到計算機20。例如,PID能從印刷在熱塑料包裝袋的標簽上的CD密鑰得到。客戶輸入與該軟件產(chǎn)品的軟件程序有關的PID。PID存在計算機20本地和/或遠程地存在可由第三方(如激活機構)訪問的位置,該位置既可以在局域網(wǎng)(LAN)51上也可以在廣域網(wǎng)(WAN)52上。
如上所述,在安裝或激活軟件產(chǎn)品期間,還利用在軟件產(chǎn)品中的代碼生成或由軟件產(chǎn)品的安裝觸發(fā)詳備硬件標識(VHWID)和/或簡明硬件標識(CHWID)。由本發(fā)明的方法產(chǎn)生的詳備硬件標識(VHWID)和/或簡明硬件標識(CHWID)與軟件產(chǎn)品標識(PID)有關,并與軟件產(chǎn)品標識一起存在本地計算機20上和/或遠程地存在可由第三方(如激活機構)訪問的位置,該位置既可以在局域網(wǎng)(LAN)51上也可以在廣域網(wǎng)(WAN)52上。
作為安裝過程的一部分,需要客戶用激活機構來激活該軟件產(chǎn)品。例如,此機構可以是產(chǎn)品制造者或授權的第三方。激活過程意在強迫客戶激活軟件產(chǎn)品(I)在特定計算機上安裝和使用或(ii)按產(chǎn)品許可證的協(xié)定安裝和使用。這樣的激活過程詳細描述在轉讓予Microsoft Corporation(Redmond,WA)的美國NO.6,243,468專利中,其內(nèi)容整體引入這里作為參考。
由本發(fā)明的方法產(chǎn)生的詳備硬件標識(VHWID)和/或簡明硬件標識(CHWID)和軟件產(chǎn)品標識(PID)能本地存在計算機20上和/或遠程地存在可由激活機構訪問的位置,該位置既可以在局域網(wǎng)(LAN)51上也可以在廣域網(wǎng)(WAN)52上。希望地,該軟件產(chǎn)品(i)在計算機20上存儲(a)詳備硬件標識(VHWID)和/或簡明硬件標識(CHWID)和(b)有關的軟件產(chǎn)品標識(PID),以及(ii)在廣域網(wǎng)(WAN)52上電子地發(fā)送(a)詳備硬件標識(VHWID)和/或簡明硬件標識(CHWID)和(b)相關的軟件產(chǎn)品標識(PID)到激活服務器。希望地,該軟件產(chǎn)品在首次起動時自動地顯示圖形用戶界面(UI)對話窗口,它提示用戶起動與激活服務器的連接以便激活。激活服務器維持一個數(shù)據(jù)庫,存儲(a)接收到的詳備硬件標識(VHWID)和/或簡明硬件標識(CHWID)和(b)有關的軟件產(chǎn)品標識(PID)。
對給定軟件產(chǎn)品的詳備硬件標識(VHWID)和/或簡明硬件標識(CHWID)和相關的軟件產(chǎn)品標識能被存儲無限長時間,直到軟件產(chǎn)品被重新安裝到另外計算機或在第一臺計算機(即在初始安裝期間使用的計算機)上起動。當同樣的軟件產(chǎn)品在另外計算機重新安裝或在第一臺計算機上起動時,根據(jù)本發(fā)明,在軟件產(chǎn)品上的代碼起動產(chǎn)生新的簡明硬件標識(CHWID)的方法。軟件產(chǎn)品還從本地計算機20或經(jīng)局域網(wǎng)(LAN)51或廣域網(wǎng)(WAN)52從遠處檢索以前存儲的(a)詳備硬件標識(VHWID)和/或簡明硬件標識(CHWID)和(b)軟件產(chǎn)品的相關的軟件產(chǎn)品標識(PID)。如上所述,在新的簡明硬件標識(CHWID)與以前存儲的簡明硬件標識(CHWID)之間作出比較。
在作為替換的手動情形,客戶通過電話向服務代表提供簡明硬件標識(CHWID),而服務代表根據(jù)該簡明硬件標識(CHWID)向客戶提供確認標識(CID)??蛻敉ㄟ^UI窗口輸入確認標識(CID)。
當由于第一臺計算機(即在初始安裝期間使用的計算機)的硬件配置中的重大改變,使得軟件產(chǎn)品的使用被拒絕時,向客戶提供一個對話框,說明該軟件產(chǎn)品的使用被拒絕,能從給定的源獲得有關該軟件產(chǎn)品進一步使用的信息。
III.簡明硬件標識(CHWID)的其它使用本發(fā)明的簡明硬件標識(CHWID)也能用于除上述以外的其它目的。在本發(fā)明的一個實施例中,使用簡明硬件標識(CHWID)來創(chuàng)建半唯一的安裝ID以跟蹤機器。在本發(fā)明的另外實施例中,當授予在客戶機上使用軟件的許可證時,在交換所服務器上使用簡明硬件標識(CHWID 。
雖然已參考特定的實施例作了詳細說明,本領域普通技術人員在理解了以上描述之后應容易地想象出對這些實施例的更改、變化和等效物。因而,本發(fā)明的范圍應被評估為附后的權利要求及其等效物的范圍。
權利要求
1.一種對具有第一硬件配置的第一計算機系統(tǒng)產(chǎn)生簡明硬件標識(CHWID)的方法,該方法包括選擇n個組件類別;確認n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中該多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中該多個組件實例第二散列結果包括在一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)而得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第一計算機系統(tǒng)的簡明硬件標識(CHWID)。
2.如權利要求1的方法,其特征在于包括級聯(lián)(i)版本組件和(ii)簡明硬件標識(CHWID)的散列部分,以形成對第一計算機系統(tǒng)的簡明硬件標識(CHWID)。
3.如權利要求1的方法,其特征在于n是最大約16的整數(shù)。
4.如權利要求2的方法,其特征在于版本組件包括版本號。
5.如權利要求1的方法,其特征在于n個組件類別的至少一個包含兩個或更多組件實例。
6.如權利要求1的方法,其特征在于n個組件類別的每一個包含從0到14個組件實例。
7.如權利要求1的方法,其特征在于每個組件實例第一散列結果被截斷成16比特的數(shù)。
8.如權利要求1的方法,其特征在于每個組件實例第二散列結果被截斷成少于8比特的數(shù)。
9.如權利要求1的方法,其特征在于對第一計算機系統(tǒng)的簡明硬件標識(CHWID)具有最多256比特的長度。
10.如權利要求9的方法,其特征在于對第一計算機系統(tǒng)的簡明硬件標識(CHWID)具有從約32到約64比特的長度。
11.如權利要求1的方法,其特征在于該方法在加載軟件產(chǎn)品到第一計算機系統(tǒng)的步驟期間起動。
12.一種計算機系統(tǒng),所述系統(tǒng)包括至少一個能在該計算機系統(tǒng)上使用的應用模塊的,其中所述至少一個應用模塊包括用于執(zhí)行權利要求1的方法的應用程序代碼。
13.一種計算機可讀介質,具有存儲其上用于完成權利要求1的方法的計算機可執(zhí)行指令。
14.一種判斷軟件產(chǎn)品是否能在具有第二硬件配置的第二計算機系統(tǒng)上使用的方法,其中第二計算機系統(tǒng)與具有第一硬件配置的計算機系統(tǒng)相同或不同,所述軟件產(chǎn)品初始安裝在第一計算機,其中該方法包括對第二硬件配置產(chǎn)生第二簡明硬件標識(sCHWID);將對第二硬件配置的第二簡明硬件標識(sCHWID)與(i)對第一硬件配置的第一簡明硬件標識(fCHWID)或(ii)對第一硬件配置的第一詳備硬件標識(fVHWID)進行比較;若在第二硬件配置的組件類別和第一硬件配置的對應的組件類別之間存在若干匹配,且匹配數(shù)等于或超過需要的組件類別匹配數(shù)m,加載軟件產(chǎn)品到第二計算機系統(tǒng),和若匹配數(shù)小于m,阻止軟件產(chǎn)品加載到第二計算機系統(tǒng)。
15.如權利要求14的方法,其特征在于第二簡明硬件標識(sCHWID)由一個方法產(chǎn)生,該方法包括選擇第二硬件配置的n個組件類別;確認在第二硬件配置的n個組件的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第二硬件配置的n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中多個組件實例第二散列結果包括在第二硬件配置的一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)所得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第二硬件配置的第二簡明硬件標識(sCHWID)。
16.如權利要求14的方法,其特征在于第一簡明硬件標識(fCHWID)由一個方法產(chǎn)生,該方法包括選擇第一硬件配置的n個組件類別;確認在第一硬件配置的n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第一硬件配置的n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中多個組件實例第二散列結果包括在第一硬件配置的一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第一硬件配置的第一簡明硬件標識(fCHWID)。
17.如權利要求14的方法,其特征在于第一詳備硬件標識(fVHWID)由一個方法產(chǎn)生,該方法包括選擇第一硬件配置的n個組件類別;確認在第一硬件配置的n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第一硬件配置的n個組件類別的至少一個第一散列結果;和級聯(lián)多個第一散列結果以形成散列部分,其中散列部分形成對第一硬件配置的第一詳備硬件標識(fVHWID)。
18.如權利要求14的方法,其特征在于當在對第二硬件配置的第二簡明硬件標識的組件類別中的一個第二組件實例散列結果匹配(i)對第一硬件配置的第一簡明硬件標識(fCHWID)的或(ii)從對第一硬件配置的詳備硬件標識(fVHWID)的第一組件實例散列推導出的對應的組件類別中的第二組件實例散列結果的任一個時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在匹配。
19.如權利要求14的方法,其特征在于當在對第二硬件配置的第二簡明硬件標識(sCHWID)的組件類別中的一個第二組件實例散列結果匹配在對第一硬件配置的第一詳備硬件標識(fVHWID)的對應的組件類別中從第一組件實例散列中推導的二個或更多第二組件實例散列結果時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在單個匹配。
20.如權利要求14的方法,其特征在于(a)當在第一硬件配置中的組件類別不包含組件實例,且在第二硬件配置中的對應組件類別包含組件實例,和(b)當在第一硬件配置中的組件類別包含單個組件實例,且在第二硬件配置中的對應組件類別不包含組件實例時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間不存在匹配。
21.如權利要求14的方法,其特征在于當在第一硬件配置中的組件類型不包含組件實例,且在第二硬件配置中的對應組件類型不包含組件實例時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在匹配。
22.如權利要求14的方法,其特征在于m等于(n-3),其中n表示在用于形成第二簡明硬件標識(sCHWID)的第二硬件配置中的組件類別數(shù)。
23.一種計算機系統(tǒng),所述系統(tǒng)包括至少一個能在該計算機系統(tǒng)上使用的應用模塊的,其中所述至少一個應用模塊包括用于執(zhí)行權利要求14的方法的應用程序代碼。
24.一種計算機可讀介質,具有存儲其上用于完成權利要求14的方法的計算機可執(zhí)行指令。
25.一種計算機可讀介質,其上存儲有計算機可執(zhí)行指令,該計算機可執(zhí)行指令執(zhí)行對具有第一硬件配置的第一計算機系統(tǒng)產(chǎn)生簡明硬件標識(CHWID)的一種方法,其中該方法包括選擇n個組件類別;確認n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中該多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中該多個組件實例第二散列結果包括在一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)而得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第一計算機系統(tǒng)的簡明硬件標識(CHWID)。
26.如權利要求25的計算機可讀介質,其特征在于還包括級聯(lián)(i)版本組件和(ii)簡明硬件標識(CHWID)的散列部分,以形成對第一計算機系統(tǒng)的簡明硬件標識(CHWID)。
27.如權利要求25的計算機可讀介質,其特征在于n是最大約16的整數(shù)。
28.如權利要求27的計算機可讀介質,其特征在于版本組件包括版本號。
29.如權利要求25的計算機可讀介質,其特征在于n個組件類別的至少一個包含兩個或更多組件實例。
30.如權利要求25的計算機可讀介質,其特征在于n個組件類別的每一個包含從0到14個組件實例。
31.如權利要求25的計算機可讀介質,其特征在于對第一計算機系統(tǒng)的簡明硬件標識(CHWID)具有最多256比特的長度。
32.如權利要求25的計算機可讀介質,其特征在于該方法在加載軟件產(chǎn)品到第一計算機系統(tǒng)的步驟期間起動。
33.一種計算機可讀介質,其上存儲有計算機可執(zhí)行指令,該計算機可執(zhí)行指令用于執(zhí)行判斷軟件產(chǎn)品是否能在具有第二硬件配置的第二計算機系統(tǒng)上使用的一種方法,其中第二計算機系統(tǒng)與具有第一硬件配置的計算機系統(tǒng)相同或不同,所述軟件產(chǎn)品初始安裝在第一計算機,其中該方法包括對第二硬件配置產(chǎn)生第二簡明硬件標識(sCHWID);將對第二硬件配置的第二簡明硬件標識(sCHWID)與(i)對第一硬件配置的第一簡明硬件標識(fCHWID)或(ii)對第一硬件配置的第一詳備硬件標識(fVHWID)進行比較;若在第二硬件配置的組件類別和第一硬件配置的對應的組件類別之間存在若干匹配,且匹配數(shù)等于或超過需要的組件類別匹配數(shù)m,加載軟件產(chǎn)品到第二計算機系統(tǒng),和若匹配數(shù)小于m,阻止軟件產(chǎn)品加載到第二計算機系統(tǒng)。
34.如權利要求33的計算機可讀介質,其特征在于第二簡明硬件標識(sCHWID)由一個方法產(chǎn)生,方法包括選擇第二硬件配置的n個組件類別;確認在第二硬件配置的n個組件的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第二硬件配置的n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中多個組件實例第二散列結果包括在第二硬件配置的一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)所得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第二硬件配置的第二簡明硬件標識(sCHWID)。
35.如權利要求33的計算機可讀介質,其特征在于第一簡明硬件標識(fCHWID)由一個方法產(chǎn)生,該方法包括選擇第一硬件配置的n個組件類別;確認在第一硬件配置的n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第一硬件配置的n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中多個組件實例第二散列結果包括在第一硬件配置的一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第一硬件配置的第一簡明硬件標識(fCHWID)。
36.如權利要求33的計算機可讀介質,其特征在于第一詳備硬件標識(fVHWID)由一個方法產(chǎn)生,該方法包括選擇第一硬件配置的n個組件類別;識別在第一硬件配置的n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第一硬件配置的n個組件類別的至少一個第一散列結果;和級聯(lián)多個第一散列結果以形成散列部分,其中散列部分形成對第一硬件配置的第一詳備硬件標識(fVHWID)。
37.如權利要求33的計算機可讀介質,其特征在于,其特征在于當在對第二硬件配置的第二簡明硬件標識的組件類別中的一個第二組件實例散列結果匹配(i)對第一硬件配置的第一簡明硬件標識(fCHWID)的或(ii)從對第一硬件配置的詳備硬件標識(fVHWID)的第一組件實例散列推導出的對應的組件類別中的第二組件實例散列結果的任一個時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在匹配。
38.如權利要求33的計算機可讀介質,其特征在于當在對第二硬件配置的第二簡明硬件標識(sCHWID)的組件類別中的一個第二組件實例散列結果匹配在對第一硬件配置的第一詳備硬件標識(fVHWID)的對應的組件類別中從第一組件實例散列中推導的二個或更多第二組件實例散列結果時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在單個匹配。
39.如權利要求33的計算機可讀介質,其特征在于(a)當在第一硬件配置中的組件類別不包含組件實例,且在第二硬件配置中的對應組件類別包含組件實例,和(b)當在第一硬件配置中的組件類別包含單個組件實例,且在第二硬件配置中的對應組件類別不包含組件實例時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間不存在匹配。
40.如權利要求33的計算機可讀介質,其特征在于當在第一硬件配置中的組件類型不包含組件實例,且在第二硬件配置中的對應組件類型不包含組件實例時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在匹配。
41.如權利要求33的計算機可讀介質,其特征在于m等于(n-3),其中n表示在用于形成第二簡明硬件標識(sCHWID)的第二硬件配置中的組件類別數(shù)。
42.一種計算機系統(tǒng),所述系統(tǒng)包括至少一個能在該計算機系統(tǒng)上使用的應用模塊的,其中所述至少一個應用模塊包括用于執(zhí)行一種對具有第一硬件配置的第一計算機系統(tǒng)產(chǎn)生簡明硬件標識(CHWID)的方法的應用程序代碼,該方法包括選擇n個組件類別;確認n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中該多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中該多個組件實例第二散列結果包括在一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)而得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第一計算機系統(tǒng)的簡明硬件標識(CHWID)。
43.如權利要求42的計算機系統(tǒng),其特征在于還包括級聯(lián)(i)版本組件和(ii)簡明硬件標識(CHWID)的散列部分,以形成對第一計算機系統(tǒng)的簡明硬件標識(CHWID)。
44.如權利要求42的計算機系統(tǒng),其特征在于n是最大約16的整數(shù)。
45.如權利要求43的計算機系統(tǒng),其特征在于版本組件包括版本號。
46.如權利要求42的計算機系統(tǒng),其特征在于n個組件類別的至少一個包含兩個或更多組件實例。
47.如權利要求42的計算機系統(tǒng),其特征在于n個組件類別的每一個包含從0到14個組件實例。
48.如權利要求42的計算機系統(tǒng),其特征在于對第一計算機系統(tǒng)的簡明硬件標識(CHWID)具有最多256比特的長度。
49.如權利要求42的計算機系統(tǒng),其特征在于該方法在加載軟件產(chǎn)品到第一計算機系統(tǒng)的步驟期間起動。
50.一種計算機系統(tǒng),所述系統(tǒng)包括至少一個能在該計算機系統(tǒng)上使用的應用模塊的,其中所述至少一個應用模塊包括用于執(zhí)行一種判斷軟件產(chǎn)品是否能在具有第二硬件配置的第二計算機系統(tǒng)上使用的方法的應用程序代碼,其中第二計算機系統(tǒng)與具有第一硬件配置的計算機系統(tǒng)相同或不同,所述軟件產(chǎn)品初始安裝在第一計算機,其中該方法包括對第二硬件配置產(chǎn)生第二簡明硬件標識(sCHWID);將對第二硬件配置的第二簡明硬件標識(sCHWID)與(i)對第一硬件配置的第一簡明硬件標識(fCHWID)或(ii)對第一硬件配置的第一詳備硬件標識(fVHWID)進行比較;若在第二硬件配置的組件類別和第一硬件配置的對應的組件類別之間存在若干匹配,且匹配數(shù)等于或超過需要的組件類別匹配數(shù)m,加載軟件產(chǎn)品到第二計算機系統(tǒng),和若匹配數(shù)小于m,阻止軟件產(chǎn)品加載到第二計算機系統(tǒng)。
51.如權利要求50的計算機系統(tǒng),其特征在于第二簡明硬件標識(sCHWID)由一個方法產(chǎn)生,該方法包括選擇第二硬件配置的n個組件類別;確認在第二硬件配置的n個組件的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第二硬件配置的n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中多個組件實例第二散列結果包括在第二硬件配置的一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)所得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第二硬件配置的第二簡明硬件標識(sCHWID)。
52.如權利要求50的計算機系統(tǒng),其特征在于第一簡明硬件標識(fCHWID)由一個方法產(chǎn)生,該方法包括選擇第一硬件配置的n個組件類別;確認在第一硬件配置的n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第一硬件配置的n個組件類別的至少一個第一散列結果;產(chǎn)生多個組件實例第二散列結果,其中多個組件實例第二散列結果包括在第一硬件配置的一個或多個選擇組件類別中的選擇組件實例第一散列結果上執(zhí)行第二散列函數(shù)得到的第二散列結果;和級聯(lián)多個第二散列結果以形成散列部分,其中散列部分形成對第一硬件配置的第一簡明硬件標識(fCHWID)。
53.如權利要求50的計算機系統(tǒng),其特征在于第一詳備硬件標識(fVHWID)由一個方法產(chǎn)生,該方法包括選擇第一硬件配置的n個組件類別;確認在第一硬件配置的n個組件類別的每一個中的所有組件實例;產(chǎn)生多個組件實例第一散列結果,其中多個組件實例第一散列結果包括對每個組件實例的第一散列結果和對第一硬件配置的n個組件類別的至少一個第一散列結果;和級聯(lián)多個第一散列結果以形成散列部分,其中散列部分形成對第一硬件配置的第一詳備硬件標識(fVHWID)。
54.如權利要求50的計算機系統(tǒng),其特征在于當在對第二硬件配置的第二簡明硬件標識的組件類別中的一個第二組件實例散列結果匹配(i)對第一硬件配置的第一簡明硬件標識(fCHWID)的或(ii)從對第一硬件配置的詳備硬件標識(fVHWID)的第一組件實例散列推導出的對應的組件類別中的第二組件實例散列結果的任一個時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在匹配。
55.如權利要求50的計算機系統(tǒng),其特征在于當在對第二硬件配置的第二簡明硬件標識(sCHWID)的組件類別中的一個第二組件實例散列結果匹配在對第一硬件配置的第一詳備硬件標識(fVHWID)的對應的組件類別中從第一組件實例散列中推導的二個或更多第二組件實例散列結果時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在單個匹配。
56.如權利要求50的計算機系統(tǒng),其特征在于(a)當在第一硬件配置中的組件類別不包含組件實例,且在第二硬件配置中的對應組件類別包含組件實例,和(b)當在第一硬件配置中的組件類別包含單個組件實例,且在第二硬件配置中的對應組件類別不包含組件實例時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間不存在匹配。
57.如權利要求50的計算機系統(tǒng),其特征在于當在第一硬件配置中的組件類型不包含組件實例,且在第二硬件配置中的對應組件類型不包含組件實例時,在第二硬件配置的組件類別和第一硬件配置的對應組件類別之間存在匹配。
58.如權利要求50的計算機系統(tǒng),其特征在于m等于(n-3),其中n表示在用于形成第二簡明硬件標識(sCHWID)的第二硬件配置中的組件類別數(shù)。
全文摘要
揭示了對給定計算機系統(tǒng)產(chǎn)生簡明硬件標識(CHWID)的系統(tǒng)和方法。簡明硬件標識(CHWID)能用于根據(jù)對計算機系統(tǒng)硬件改變的程度,控制軟件在給定計算機系統(tǒng)的使用。簡明硬件標識(CHWID)能在如電話那樣的有限帶寬介質上以電的形式發(fā)送。
文檔編號G06F12/00GK1530790SQ200410028648
公開日2004年9月22日 申請日期2004年3月3日 優(yōu)先權日2003年3月3日
發(fā)明者C·古尼亞克迪, F·J·阿拉布拉巴, A·T·休斯, C 古尼亞克迪, 休斯, 阿拉布拉巴 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
马鞍山市| 台江县| 松江区| 泸水县| 墨江| 沧州市| 五华县| 漳平市| 大城县| 民权县| 河津市| 陕西省| 南皮县| 合江县| 泽州县| 仙游县| 汉沽区| 蒙山县| 安塞县| 扎赉特旗| 沅陵县| 株洲县| 郴州市| 五家渠市| 信丰县| 望谟县| 深州市| 洛扎县| 大荔县| 游戏| 合作市| 汝城县| 那坡县| 西安市| 青海省| 广水市| 黎川县| 阜新| 海盐县| 开平市| 威信县|