專利名稱:用于生成健壯的軟件簽名的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域。更具體地,本發(fā)明涉及一種用于在分布式 數(shù)據(jù)處理系統(tǒng)上檢測(cè)軟件產(chǎn)品的存在的方法。具體而言,由本發(fā)明解決了簽名生成的行為。本發(fā)明進(jìn)一步涉及一種用于執(zhí)行所述方法的計(jì)算機(jī)程序, 以及一種包含所述程序的產(chǎn)品。而且,本發(fā)明還涉及一種對(duì)應(yīng)的裝置。
背景技術(shù):
一些系統(tǒng)管理軟件應(yīng)用需要包含關(guān)于軟件產(chǎn)品的信息的全面知識(shí)庫(kù)的 可用性,所述軟件產(chǎn)品可以當(dāng)前安裝并運(yùn)行在多個(gè)數(shù)據(jù)處理系統(tǒng)上。例如,像IBM Tivoli License Manager( ITLM )的許可管理器產(chǎn)品需要知識(shí)庫(kù)(即 目錄)來(lái)標(biāo)識(shí)在所管理系統(tǒng)上發(fā)現(xiàn)的產(chǎn)品,以及正確地計(jì)量這些產(chǎn)品的使 用并為其開賬單。通常,該知識(shí)庫(kù)采用包含軟件產(chǎn)品的定義(例如產(chǎn)品名 稱和版本)以及相關(guān)簽名的目錄的形式。軟件目錄列出了可在所管理系統(tǒng) 上找到的所有已知產(chǎn)品;每個(gè)產(chǎn)品可以由指示其正在運(yùn)行的一個(gè)或多個(gè)可 執(zhí)行模塊來(lái)標(biāo)識(shí)。作為示例,在許可管理器產(chǎn)品的情形中,在后臺(tái)工作的 許可代理檢測(cè)已啟動(dòng)的可執(zhí)行模塊;許可代理接著通過(guò)軟件目錄來(lái)標(biāo)識(shí)對(duì) 應(yīng)產(chǎn)品?,F(xiàn)今大量使用的一種用于獲得安裝在計(jì)算機(jī)系統(tǒng)上的軟件的清單 (inventory)的方法是運(yùn)行一種清點(diǎn)應(yīng)用,其嘗試用預(yù)定義的簽名與掃描 某些已知注冊(cè)表、文件系統(tǒng)或二者的結(jié)合的結(jié)果進(jìn)行匹配。創(chuàng)建將在上述 過(guò)程中使用的簽名通常需要對(duì)將發(fā)現(xiàn)的產(chǎn)品的深入知識(shí)。實(shí)際上,依賴于 注冊(cè)表簽名可能導(dǎo)致假陽(yáng)性,例如,當(dāng)軟件產(chǎn)品的卸栽在注冊(cè)表中留下孤 立信息的時(shí)候。指定關(guān)鍵可執(zhí)行產(chǎn)品的名稱和大小的文件簽名將極少產(chǎn)生假陽(yáng)性。然而,因?yàn)橄率鲆蛩兀梢匀菀椎厣杉訇幮?,所述因素為?以改變文件大小(更新)或使其不可預(yù)測(cè)(文件由靜態(tài)鏈接的首要庫(kù)所建 立,所述靜態(tài)鏈接的首要庫(kù)取決于其版本具有不同大小)。指定關(guān)鍵文件的大小(或校驗(yàn)和)和名稱的產(chǎn)品簽名不會(huì)產(chǎn)生假陽(yáng)性, 但是存在用于根據(jù)由每次新產(chǎn)品升級(jí)和補(bǔ)丁所引入的、對(duì)于該文件的大小 或校驗(yàn)和的改變而保持產(chǎn)品簽名目錄(或知識(shí)庫(kù))為最新的很高成本。在 實(shí)踐中,針對(duì)已經(jīng)在領(lǐng)域中部署的簽名文件的每個(gè)變體,在目錄中必須存 在一個(gè)簽名。本發(fā)明的目的是提供一種減輕上述缺陷的方法和系統(tǒng)。 發(fā)明內(nèi)容根據(jù)本發(fā)明,我們提供了一種用于生成產(chǎn)品簽名的方法,所述產(chǎn)品簽 名指示出相關(guān)聯(lián)軟件產(chǎn)品在多個(gè)數(shù)據(jù)處理系統(tǒng)上的存在,所述方法包括以 下步驟掃描所述多個(gè)數(shù)據(jù)處理系統(tǒng)的文件系統(tǒng),以檢測(cè)文件集合的出現(xiàn), 所述集合的每個(gè)指示出被安裝在數(shù)據(jù)處理系統(tǒng)上的產(chǎn)品;對(duì)于所述集合的 每個(gè),收集注冊(cè)表信息的至少一個(gè)單元;確定關(guān)聯(lián)于軟件產(chǎn)品的對(duì)應(yīng)產(chǎn)品 簽名,所述簽名包括指示出所述文件集合的基于文件部分和指示出注冊(cè) 表信息的至少一個(gè)單元的基于注冊(cè)表部分。本發(fā)明的另 一方面提供了 一種用于跨多個(gè)數(shù)據(jù)處理系統(tǒng)發(fā)現(xiàn)軟件產(chǎn)品 的方法。本發(fā)明的再一方面提供了 一種用于執(zhí)行上述方法的計(jì)算積應(yīng)序。 本發(fā)明的又一方面提供了 一種包含該程序的程序產(chǎn)品。 此外,本發(fā)明的另一方面提供了一種用于實(shí)現(xiàn)上述方法的對(duì)應(yīng)裝置。 根據(jù)本發(fā)明的優(yōu)選實(shí)施例,提供了一種用于針對(duì)軟件產(chǎn)品指定簽名的 方法,所述簽名不需要被更新以反映由針對(duì)該產(chǎn)品而發(fā)布的軟件更新和修 復(fù)所導(dǎo)致的改變。關(guān)鍵在于利用某些相關(guān)文件的存在(僅由其名稱和其相 對(duì)于公共安裝文件夾的相對(duì)路徑所標(biāo)識(shí))作為產(chǎn)品實(shí)例被安裝在所掃描系 統(tǒng)上的指示符。此信息當(dāng)獨(dú)立使用時(shí)不足以確定所檢測(cè)實(shí)例的版本,因?yàn)榫哂邢嗤Q的文件可能在產(chǎn)品的不同發(fā)布(release)中為公共的。因此, 實(shí)例的版本從關(guān)聯(lián)于該實(shí)例的注冊(cè)表數(shù)據(jù)的值得出。在本發(fā)明的優(yōu)選實(shí)施 例中,簽名的生成需要總是產(chǎn)品實(shí)例的一部分的核心文件集合的標(biāo)識(shí),而 不管在安裝期間指定的選項(xiàng)。此標(biāo)識(shí)基于對(duì)從其中安裝了軟件產(chǎn)品的計(jì)算 機(jī)的典型樣本收獲(harvest)的信息的自動(dòng)化分析。根據(jù)本發(fā)明,單一簽 名可以檢測(cè)對(duì)應(yīng)于不同版本或發(fā)布的相同產(chǎn)品。因此,所提出的類型的一 個(gè)簽名在軟件知識(shí)庫(kù)中通常關(guān)聯(lián)于若干產(chǎn)品-版本定義。在本發(fā)明的優(yōu)選實(shí) 施例中,對(duì)應(yīng)于所檢測(cè)的特定實(shí)例的產(chǎn)品版本從所指定的注冊(cè)表鍵獲得, 所述注冊(cè)表鍵的值需要在所掃描的計(jì)算機(jī)上獲得。公共安裝文件夾的絕對(duì) 路徑名(位置)通常也從關(guān)聯(lián)于同一產(chǎn)品實(shí)例的注冊(cè)表數(shù)據(jù)獲得,相對(duì)于 所述公共安裝文件夾,簽名文件的所有相對(duì)路徑被指定。在此情形中,搜 索匹配實(shí)例的過(guò)程將是"即時(shí)的",因?yàn)閷⒉恍枰獙?duì)文件系統(tǒng)的完全掃描, 而是僅需要對(duì)于具有指定名稱和相對(duì)路徑的文件集合實(shí)際上在該位置下確 實(shí)存在的發(fā)江。某些產(chǎn)品可能不需要將其版本和安裝路徑信息注冊(cè)到平臺(tái) 軟件注冊(cè)表上,以便成為可運(yùn)行的。當(dāng)通過(guò)已提出的簽名搜索非已注冊(cè)軟 件實(shí)例時(shí),基于來(lái)自對(duì)文件系統(tǒng)的完全掃描的數(shù)據(jù),簽名規(guī)范的基于文件 部分仍可以匹配,即,僅僅簽名的"即時(shí)性"特征丟失。在此情形中,簽 名將不會(huì)返回所檢測(cè)實(shí)例的版本的值,于是僅可以基于軟件知識(shí)庫(kù)中的相 關(guān)聯(lián)產(chǎn)品-版本定義來(lái)確定針對(duì)此屬性的可能值的范圍。在所附權(quán)利要求中闡述了被確認(rèn)是新穎特征的本發(fā)明的特性。然而, 通過(guò)參考將結(jié)合附圖閱讀的以下詳細(xì)描述,將最佳地理解本發(fā)明本身及其 這些和其它相關(guān)目的和優(yōu)點(diǎn)。
圖l是其中可應(yīng)用本發(fā)明的方法的數(shù)據(jù)處理系統(tǒng)的示意性框圖;圖2示出了系統(tǒng)的通用計(jì)算機(jī)的功能塊;圖3描述了可以用于實(shí)踐方法的主要組件;以及圖4示出了描述與方法的示意性實(shí)現(xiàn)相關(guān)的動(dòng)作流的圖。
具體實(shí)施方式
具體參考圖1,描述了實(shí)現(xiàn)軟件清單應(yīng)用的、具有分布式體系結(jié)構(gòu)的數(shù)據(jù)處理系統(tǒng)100。系統(tǒng)100包括多個(gè)端點(diǎn)105,其被分組為多個(gè)集合。端 點(diǎn)105可以是工作站、服務(wù)器、膝上型計(jì)算機(jī)、以及更廣泛地是其中安裝 了多個(gè)軟件產(chǎn)品的任意類型的教:據(jù)處理系統(tǒng)。端點(diǎn)105通過(guò)網(wǎng)絡(luò)110 (例 如LAN)彼此連接。端點(diǎn)105的不同集合通過(guò)網(wǎng)絡(luò)120 (例如基于因特網(wǎng)) 與系統(tǒng)管理服務(wù)器115通信;系統(tǒng)管理服務(wù)器115實(shí)現(xiàn)了中央儲(chǔ)存庫(kù),其 中系統(tǒng)100的清單數(shù)據(jù)被收集和管理。如上所述,本發(fā)明可以在許可管理 系統(tǒng)中實(shí)現(xiàn),但更廣泛地可以在需要清點(diǎn)動(dòng)作的任意系統(tǒng)中實(shí)現(xiàn),所述系 統(tǒng)例如,需要在已清點(diǎn)了每個(gè)工作站的當(dāng)前狀態(tài)之后將修復(fù)或增強(qiáng)分布到 多個(gè)工作站的軟件部署系統(tǒng);另一種可能的使用是在配置管理系統(tǒng)中。如圖2所示,通過(guò)150示出了系統(tǒng)的通用計(jì)算機(jī)(工作站、本地Ji良務(wù) 器、或者系統(tǒng)管理服務(wù)器)。計(jì)算機(jī)150由并行連接于系統(tǒng)總線153的若 干單元組成。詳細(xì)地, 一個(gè)或多個(gè)微處理器(uP) 156控制計(jì)算機(jī)150的 操作;RAM 159被孩吏處理器156直接用作為工作存儲(chǔ)器,以及ROM 162 存儲(chǔ)用于計(jì)算機(jī)150的自展的基本代碼。外圍單元在本地總線165附近聚 集(通過(guò)各個(gè)接口 )。具體地,海量存儲(chǔ)器包括硬盤168和用于讀取CD-ROM 174的驅(qū)動(dòng)器171。此外,計(jì)算機(jī)150包括輸入設(shè)備177 (例如鍵盤和鼠標(biāo)) 以及輸出設(shè)備180 (例如監(jiān)視器和打印機(jī))。網(wǎng)絡(luò)接口卡(NIC) 183用于 將計(jì)算機(jī)150連接到網(wǎng)絡(luò)。橋單元186將系統(tǒng)總線153與本地總線165接 合。每個(gè)微處理器156和橋單元186可以作為主代理運(yùn)行,所述主代理請(qǐng) 求對(duì)系統(tǒng)總線153的訪問(wèn)以傳送信息。判優(yōu)器189管理對(duì)于系統(tǒng)總線153 的互斥訪問(wèn)的授^又。如果系統(tǒng)具有不同拓樸或者其基于其它網(wǎng)絡(luò),類似的考慮也可以應(yīng)用。 可替換地,計(jì)算^L具有不同結(jié)構(gòu),包括等價(jià)單元,或者包括其它數(shù)據(jù)處理 實(shí)體(諸如PDA、移動(dòng)電話等)。在任意情形中,本發(fā)明的方案同樣適用 于其中對(duì)工作站的控制被分歉的系統(tǒng)中,或者甚至適用于單獨(dú)計(jì)算機(jī)中。現(xiàn)在考慮圖3,通過(guò)300總體上描述了可用于實(shí)施本發(fā)明的優(yōu)選實(shí)施 例的方法的主要組件。信息(程序和數(shù)據(jù))典型被存儲(chǔ)在不同計(jì)算機(jī)的硬 盤上,并當(dāng)程序正在運(yùn)行時(shí)被(至少部分地)加載到相應(yīng)的工作存儲(chǔ)器中。系統(tǒng)管理服務(wù)器115控制和執(zhí)行對(duì)通信網(wǎng)絡(luò)所連接的若干端點(diǎn)105的 管理操作。端點(diǎn)105的集合包括服務(wù)器、工作站、臺(tái)式計(jì)算機(jī)或膝上型計(jì) 算機(jī),它們的已安裝軟件根據(jù)擴(kuò)大產(chǎn)品定義和相關(guān)簽名的可用庫(kù)的目的而 被分析。系統(tǒng)管理服務(wù)器115控制對(duì)互連的端點(diǎn)105的可能很大的集合的管理 操作,由此避免了物理上訪問(wèn)每個(gè)計(jì)算機(jī)的需要。此服務(wù)器和底層的系統(tǒng) 管理基礎(chǔ)設(shè)施被用于根據(jù)收集由分析應(yīng)用所需的原始數(shù)據(jù)的目的而執(zhí)行對(duì) 所管理計(jì)算機(jī)的掃描操作;以及用于將掃描器在本地生成的數(shù)據(jù)移動(dòng)到中 央文件服務(wù)器301,其中這些數(shù)據(jù)可以被存儲(chǔ)在服務(wù)器的文件系統(tǒng)上。掃 描操作可以在所有已管理端點(diǎn)105上或在特定子集上執(zhí)行,后者可能由它 們的角色(服務(wù)器、工作站、臺(tái)式計(jì)算機(jī)或膝上型計(jì)算機(jī))或者由運(yùn)行的 操作系統(tǒng)所確定。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,通過(guò)使用IBM的Software Signature Analyzer Tool實(shí)現(xiàn)上述數(shù)據(jù)收集方法;但是,本領(lǐng)域技術(shù)人員可以理解, 產(chǎn)生類似結(jié)果的其它方法可以作為替代被使用。本發(fā)明目的是使用所收集 的信息來(lái)產(chǎn)生健壯簽名,其避免了現(xiàn)有技術(shù)的缺陷。如上所述,健壯簽名 不需要被更新以反映由針對(duì)相關(guān)聯(lián)產(chǎn)品而發(fā)布的軟件更新和修復(fù)所導(dǎo)致的 改變,同時(shí)它仍舊避免了 "假陽(yáng)性"和"假陰性,,。從所選擇的計(jì)算機(jī)收 獲的數(shù)據(jù)存儲(chǔ)在中央文件服務(wù)器的文件系統(tǒng)中,通過(guò)所述中央文件服務(wù)器 的文件系統(tǒng),數(shù)據(jù)可以被分析應(yīng)用303訪問(wèn)。分析應(yīng)用303實(shí)現(xiàn)了導(dǎo)致新 產(chǎn)品定義和相關(guān)簽名的創(chuàng)建的數(shù)據(jù)轉(zhuǎn)換和分析。分析應(yīng)用303支持足跡(多個(gè)文件組)的標(biāo)識(shí),所述足i^示軟件產(chǎn) 品的已安裝實(shí)例。每個(gè)足跡需要關(guān)聯(lián)于產(chǎn)品定義,所述產(chǎn)品定義通??梢?從所收獲的數(shù)據(jù)自動(dòng)得出,或者可以由應(yīng)用通過(guò)用戶輸入所生成。分析應(yīng) 用303將如上所述收集的數(shù)據(jù)與操作系統(tǒng)注冊(cè)表305中包含的注冊(cè)表信息相結(jié)合。該已結(jié)合的產(chǎn)品定義和相關(guān)簽名接著被生成以及存儲(chǔ)在軟件知識(shí)庫(kù)307中。軟件知識(shí)庫(kù)307是保存整理后的產(chǎn)品定義和簽名的集合的數(shù)據(jù) 庫(kù)。數(shù)據(jù)庫(kù)最初可以是空的,或者它可以用由軟件簽名的提供者所創(chuàng)建的 數(shù)據(jù)來(lái)填充。由分析應(yīng)用產(chǎn)生的新定義在此數(shù)據(jù)庫(kù)中進(jìn)行整理。 簽名定義基于包括文件信息和注冊(cè)表信息的可用信息被生成。 在所述過(guò)程的第一階段中,簽名的基于文件部分被構(gòu)建。 文件名稱以及它們相對(duì)于公共父文件夾的路徑從產(chǎn)品的重構(gòu)足跡的內(nèi) 容中獲得,每個(gè)足跡表示通過(guò)其可選文件已經(jīng)被過(guò)濾掉的產(chǎn)品安裝樹的 文件夾。產(chǎn)品安裝樹通常包括在公共根下的多個(gè)文件夾,因此它可以由一 組若干足跡所表示。有時(shí),在產(chǎn)品樹中的整個(gè)文件夾的存在可以是可選的。 這將由相對(duì)于其父文件夾的較少數(shù)量的實(shí)例所展現(xiàn),因此對(duì)應(yīng)于可選文件 夾的足跡被清除。此過(guò)程產(chǎn)生了針對(duì)產(chǎn)品的給定版本-發(fā)布 (version-release )級(jí)的"核心"文件集合的標(biāo)識(shí)。通過(guò)比較對(duì)應(yīng)于相同版 本的足跡的內(nèi)容以及相同產(chǎn)品的不同發(fā)布級(jí),其名稱出現(xiàn)在所有對(duì)應(yīng)足跡 中的文件可以被認(rèn)為是適合于標(biāo)識(shí)該版本的已安裝實(shí)例,而不管發(fā)布級(jí)。 理想地,將試圖建立覆蓋所有可能的發(fā)布級(jí)的單一簽名。不過(guò),可能出現(xiàn) 的是對(duì)于任意發(fā)布為公共的文件僅是所有文件的一小部分,在此情形中, 可能必須創(chuàng)建跨發(fā)布子集的兩個(gè)或多個(gè)同類文件組。進(jìn)行劃分的另 一原因 在于,萬(wàn)一在從一個(gè)發(fā)布到另一發(fā)布時(shí),給定足跡在安裝樹中具有不同位 置,從而相對(duì)路徑無(wú)法被唯一地分配到其針對(duì)所有發(fā)布的文件。 在所述過(guò)程的第二階段中,簽名的基于注冊(cè)表部分被構(gòu)建。 所收獲的信息包括與所安裝產(chǎn)品相關(guān)的以及與文件信息相關(guān)的注冊(cè)表 數(shù)據(jù)。注冊(cè)表數(shù)據(jù)可以與產(chǎn)品文件信息相關(guān)聯(lián)的方式取決于在被收獲的計(jì) 算機(jī)上運(yùn)行的操作系統(tǒng)的特性。該關(guān)聯(lián)容易地在大多數(shù)UNIX操作系統(tǒng)上 實(shí)現(xiàn),其中平臺(tái)注冊(cè)表支持關(guān)于關(guān)聯(lián)于已注冊(cè)產(chǎn)品的文件的查詢。在其它 平臺(tái)上,應(yīng)用在平臺(tái)注冊(cè)表中注冊(cè)每個(gè)實(shí)例的重要屬性(比如安裝位置和 版本)是常見的。不幸的是,這些平臺(tái)不提供查詢關(guān)于關(guān)聯(lián)于產(chǎn)品的文件 的注冊(cè)表的標(biāo)準(zhǔn)形式。不過(guò),所收獲的信息可包括來(lái)自其它源的數(shù)據(jù),即,由軟件安裝者在安裝者特定注冊(cè)表中創(chuàng)建的注冊(cè)表?xiàng)l目。如果安裝路徑是 由安裝者注冊(cè)的信息的一部分,則注冊(cè)表?xiàng)l目可以與對(duì)應(yīng)的已安裝實(shí)例相 關(guān)。可替換地,如果沒(méi)有適當(dāng)?shù)淖?cè)表源與所收獲的數(shù)據(jù)中的已安裝實(shí)例 相關(guān),則注冊(cè)表信息可由用戶輸入。在任一情形中,在此階段中創(chuàng)建的簽 名信息必須足以用于支持對(duì)指定軟件注冊(cè)表的查詢,所述軟件注冊(cè)表由簽 名評(píng)估器所實(shí)現(xiàn),其返回已安裝實(shí)例的版本。簽名的基于注冊(cè)表部分還包 括注冊(cè)表查詢的規(guī)范,其返回已安裝實(shí)例的安裝位置。此信息的存在允許 評(píng)估器執(zhí)行對(duì)簽名的基于文件部分的"即時(shí)"^i,而無(wú)需對(duì)文件系統(tǒng)的 完全掃描。現(xiàn)在考慮圖4,通過(guò)方法400表示了根據(jù)本發(fā)明實(shí)施例的生成產(chǎn)品簽 名的邏輯流。所述方法開始于黑色開始圏401。繼續(xù)到框403,在全部端點(diǎn) 105中收集數(shù)據(jù)。在步驟405,所獲得的數(shù)據(jù)接著被分析,并且在步驟407 核心文件集合被標(biāo)識(shí)。該核心集合表示相關(guān)的軟件產(chǎn)品。除非產(chǎn)品定義已 經(jīng)存在(步驟409 ),否則基于注冊(cè)表的信息被獲得(步驟411)并與基于 文件的信息(以上獲得的核心集合)相結(jié)合用于產(chǎn)品簽名的生成(步驟 413)。所述過(guò)^f呈在黑圏415結(jié)束。如果程序和數(shù)據(jù)以不同方式構(gòu)成,如果其它模塊或功能被提供,或者 如果信息被存儲(chǔ)在等價(jià)的存儲(chǔ)器結(jié)構(gòu)中,類似的考慮也可以應(yīng)用。如果所述方法包括等價(jià)或附加步驟,類似的考慮也可以應(yīng)用。可替換地,例如,同樣取決于其上安裝了系統(tǒng)的操作系統(tǒng),獲得關(guān)于 所檢查的端點(diǎn)的信息的不同方法可以被 使用。盡管以上已經(jīng)具體參考本發(fā)明優(yōu)選實(shí)施例在某種程度上描述了本發(fā) 明,應(yīng)該理解,在形式和細(xì)節(jié)上的多種改變以及其它實(shí)施例是可能的。具 體地,以下是明確地打算的基本上以相同方式執(zhí)行相同功能從而實(shí)現(xiàn)相 同結(jié)果的那些單元和/或方法步驟的組合處于本發(fā)明的范圍中。在任意情形中,本發(fā)明的方法可以用于發(fā)現(xiàn)、清點(diǎn)、或計(jì)量任意類型 的軟件產(chǎn)品(諸如視頻游戲、多媒體工作等)。此外,所述程序可以被分布在任意其它計(jì)算機(jī)可讀々某體(諸如一個(gè)或多個(gè)DVD)上;可替換地,所述程序^皮預(yù)先加載到硬盤上、被傳送到計(jì)算 機(jī)、被廣播、或者更廣泛地被用可被直接加栽到計(jì)算機(jī)的工作存儲(chǔ)器中的 任意其它形式提供。此外,對(duì)于本領(lǐng)域技術(shù)人員將很明顯,提供進(jìn)一步優(yōu)勢(shì)的附加特征并 非執(zhí)行本發(fā)明所必需的,并且可以被忽略或用不同特征來(lái)替換。在任意情形中,根據(jù)本發(fā)明的方法同樣適用于通過(guò)硬件結(jié)構(gòu)而執(zhí)行(例 如,集成到半導(dǎo)體材料的芯片中),或者通過(guò)軟件和硬件的結(jié)合而執(zhí)行。無(wú)疑,為了滿足本地和特定需求,本領(lǐng)域技術(shù)人員可以將許多修改和 變體應(yīng)用于上述方案,然而,所有這些修改和變體被包括在由以下權(quán)利要 求所限定的本發(fā)明的保護(hù)范圍中。
權(quán)利要求
1.一種用于生成產(chǎn)品簽名的方法,所述產(chǎn)品簽名指示出相關(guān)聯(lián)軟件產(chǎn)品在多個(gè)數(shù)據(jù)處理系統(tǒng)上的存在,所述方法包括以下步驟掃描所述多個(gè)數(shù)據(jù)處理系統(tǒng)的文件系統(tǒng),以檢測(cè)文件集合的出現(xiàn),所述集合的每個(gè)指示出被安裝在數(shù)據(jù)處理系統(tǒng)上的產(chǎn)品;對(duì)于所述集合的每個(gè),收集注冊(cè)表信息的至少一個(gè)單元;確定關(guān)聯(lián)于軟件產(chǎn)品的對(duì)應(yīng)產(chǎn)品簽名,所述簽名包括指示出所述文件集合的基于文件部分和指示出注冊(cè)表信息的至少一個(gè)單元的基于注冊(cè)表部分。
2. 根椐權(quán)利要求l所述的方法,其中所述注冊(cè)表信息的至少一個(gè)單元 從對(duì)應(yīng)的文件集合的至少 一個(gè)文件中得出。
3. 根據(jù)任一前述權(quán)利要求所述的方法,其中所述掃描和檢測(cè)行為包括 以下步驟在所述多個(gè)數(shù)據(jù)處理系統(tǒng)上標(biāo)識(shí)多個(gè)可執(zhí)行文件; 創(chuàng)建包含所述多個(gè)已標(biāo)識(shí)可執(zhí)行文件的列表; 在所述列表上選擇至少一個(gè)文件;對(duì)于每個(gè)所選擇文件,創(chuàng)建足跡集合,所述足跡集合包括在包含所選 擇文件的所有文件夾中出現(xiàn)的文件。
4. 根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括以下步驟 根據(jù)每個(gè)文件的出現(xiàn)數(shù)量對(duì)所述列表排序;從具有最高出現(xiàn)的文件開始,在所述列表上選擇一個(gè)文件,直到所述 列表被掃描完,并且對(duì)于每個(gè)所選擇的文件創(chuàng)建足跡集合,所述足跡集合包括在包含所選擇文件的所有文件 夾中出現(xiàn)的文件;從所迷已排序列表中刪除被包括在所述足跡中的所有文件。
5. 根據(jù)任一前述權(quán)利要求所述的方法,其中所述產(chǎn)品簽名的基于文件 部分包括所述文件集合的文件名稱和相對(duì)于公共父文件夾的路徑。
6. 根據(jù)任一權(quán)利要求所述的方法,其中收集注冊(cè)表信息的至少一個(gè)單 元的所述步驟包括根據(jù)對(duì)應(yīng)的文件集合的至少一個(gè)文件查詢操作系統(tǒng)注 冊(cè)表。
7. 根據(jù)任一權(quán)利要求所述的方法,其中所述簽名與軟件產(chǎn)品標(biāo)識(shí)符的 關(guān)聯(lián)是基于由在對(duì)應(yīng)的文件集合中包括的文件所提取的信息。
8. —種用于跨多個(gè)數(shù)據(jù)處理系統(tǒng)發(fā)現(xiàn)軟件產(chǎn)品的方法,其使用根據(jù)任 一前述權(quán)利要求所述的方法。
9. 一種計(jì)算枳4呈序,用于當(dāng)所述計(jì)算機(jī)程序在數(shù)據(jù)處理系統(tǒng)上執(zhí)行時(shí), 執(zhí)行根據(jù)任一前述權(quán)利要求所述的方法。
10. —種系統(tǒng),包括用于執(zhí)行根據(jù)權(quán)利要求1-8中的任一項(xiàng)所述的方 法步驟的裝置。
全文摘要
提出了一種用于在多個(gè)計(jì)算機(jī)上發(fā)現(xiàn)軟件產(chǎn)品的方法和對(duì)應(yīng)的裝置。所述發(fā)現(xiàn)系統(tǒng)的目的是在沒(méi)有管理員的手動(dòng)干預(yù)的情況下填充軟件目錄。本發(fā)明減少了產(chǎn)生和維護(hù)全面知識(shí)庫(kù)(目錄)的成本,所述知識(shí)庫(kù)包含軟件產(chǎn)品的定義和相關(guān)簽名。簽名定義結(jié)合了從數(shù)據(jù)收集過(guò)程獲得的信息以及在注冊(cè)表中包含的信息。此結(jié)合允許健壯簽名的創(chuàng)建,所述健壯簽名很大程度地降低了“假陽(yáng)性”和“假陰性”結(jié)果的可能性。
文檔編號(hào)G06F9/445GK101405696SQ200780010137
公開日2009年4月8日 申請(qǐng)日期2007年2月1日 優(yōu)先權(quán)日2006年4月20日
發(fā)明者A·卡波馬西, A·泰倫茲, L·皮克逖, M·維塔萊蒂, R·甘杰米 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司