專利名稱:用于收集數(shù)據(jù)處理系統(tǒng)中的清單信息的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域。更具體地,本發(fā)明涉及收集數(shù)據(jù)處理系統(tǒng)中的清單(inventory)信息。
背景技術(shù):
諸如軟件程序和硬件設(shè)備的不同類型的(物理或邏輯)資源的管理在數(shù)據(jù)處理系統(tǒng)(特別是具有分布式體系結(jié)構(gòu)的數(shù)據(jù)處理系統(tǒng))中是關(guān)鍵問題。當(dāng)資源十分復(fù)雜并且分散在大量的裝置上時(shí),這種問題特別嚴(yán)重;并且,該問題在資源連續(xù)改變的動(dòng)態(tài)環(huán)境中進(jìn)一步惡化。
已提出了資源管理應(yīng)用以在上述任務(wù)中幫助系統(tǒng)管理員。特別地,基于自治范例(autonomic paradigm)的資源管理應(yīng)用提供允許系統(tǒng)自適應(yīng)希望的配置(由管理員發(fā)布的規(guī)則限定)的機(jī)制;例如,在WO-A-2004/017201中說明了這種類型的資源管理應(yīng)用。
但是,任何資源管理應(yīng)用都需要被控制的系統(tǒng)的詳細(xì)知識(shí)。為此,采用清單工具以收集有關(guān)系統(tǒng)中的被選擇的資源的信息;市售的商業(yè)清單工具的例子是包含于諸如“IBM Tivoli Configuration Manager或ITCM”或“IBM Tivoli License Manager或ITLM”的由IBM公司提供的幾種解決方案中的“IBM Tivoli Common Inventory Technology或CIT”部件。
現(xiàn)有技術(shù)中已知的清單工具一般基于以服務(wù)器為中心的方法,其中,整個(gè)執(zhí)行流程由系統(tǒng)的中心服務(wù)器控制。首先,必須限定包含要在多個(gè)端點(diǎn)上執(zhí)行的一系列操作的工作流以發(fā)現(xiàn)需要的信息。這些發(fā)現(xiàn)操作然后被調(diào)度,用于在端點(diǎn)上被執(zhí)行(例如,周期性地)。一旦發(fā)現(xiàn)操作被提交,服務(wù)器就在所希望的端點(diǎn)上強(qiáng)制執(zhí)行它。與此響應(yīng),端點(diǎn)發(fā)現(xiàn)需要的信息并將其返回服務(wù)器。服務(wù)器然后可根據(jù)可能出現(xiàn)的需要處理所接收的信息。
但是,上述解決方案不完全令人滿意。特別是,當(dāng)必須發(fā)現(xiàn)復(fù)雜的資源時(shí)就出現(xiàn)問題。事實(shí)上,在這種情況下,服務(wù)器必須對(duì)相關(guān)端點(diǎn)上的一系列的發(fā)現(xiàn)操作進(jìn)行排序;例如,僅在兩個(gè)不同的資源的發(fā)現(xiàn)被完成時(shí)才可執(zhí)行這些資源之間的關(guān)系的發(fā)現(xiàn)。這涉及服務(wù)器上的相應(yīng)的復(fù)雜的工作流的限定;并且,對(duì)端點(diǎn)的請(qǐng)求和來自端點(diǎn)的信息的重復(fù)傳送對(duì)系統(tǒng)的效率具有有害的影響。
當(dāng)要被發(fā)現(xiàn)的資源的類型隨時(shí)間改變時(shí),出現(xiàn)另一缺點(diǎn);例如,服務(wù)器可最初對(duì)發(fā)現(xiàn)安裝的軟件產(chǎn)品感興趣,后來對(duì)支持服務(wù)感興趣。這要求實(shí)質(zhì)上重新限定由服務(wù)器實(shí)現(xiàn)的工作流,從而對(duì)其它的發(fā)現(xiàn)操作存在潛在的副作用。
另外,服務(wù)器上的發(fā)現(xiàn)操作的調(diào)度常常不令人滿意。特別是,一些發(fā)現(xiàn)操作即使在不是必需時(shí)也可能被執(zhí)行;例如,這發(fā)生在由相關(guān)端點(diǎn)上的發(fā)現(xiàn)操作涉及的資源自其最后的執(zhí)行沒有改變時(shí)。相反,在特定情況下,不同發(fā)現(xiàn)操作的執(zhí)行速率會(huì)太低。典型的情景是當(dāng)軟件產(chǎn)品在沒有關(guān)鍵性的安全補(bǔ)丁的情況下被安裝到端點(diǎn)上時(shí);這導(dǎo)致在與軟件產(chǎn)品相關(guān)的發(fā)現(xiàn)操作的下一個(gè)執(zhí)行之前系統(tǒng)的嚴(yán)重暴露。
發(fā)明內(nèi)容
本發(fā)明提供在獨(dú)立權(quán)利要求中闡述的解決方案。在從屬權(quán)利要求中說明本發(fā)明的有利的實(shí)施例。
特別地,本發(fā)明的一個(gè)方面提出在數(shù)據(jù)處理系統(tǒng)中收集清單信息的方法。為此,提供控制結(jié)構(gòu)(諸如模型和/或發(fā)現(xiàn)指令)??刂平Y(jié)構(gòu)限定系統(tǒng)資源的類別(例如,類)和類別之間的相關(guān)性;各個(gè)類別與用于發(fā)現(xiàn)與該類別的資源有關(guān)(例如,其實(shí)例)的清單信息的供應(yīng)器有關(guān)。該方法涉及從使用器實(shí)體(諸如遠(yuǎn)程資源管理器)接收對(duì)選擇的類別的發(fā)現(xiàn)請(qǐng)求(或更多)的步驟。與控制結(jié)構(gòu)中的選擇的類別相關(guān)的類別然后被確定。該方法繼續(xù)通過與控制結(jié)構(gòu)中的相關(guān)類別相關(guān)的相關(guān)供應(yīng)器發(fā)現(xiàn)相關(guān)清單信息(與在系統(tǒng)中可用的相關(guān)類別的資源有關(guān))。最后,相關(guān)清單信息被傳送給使用器實(shí)體。
在本發(fā)明的實(shí)施例中,將數(shù)據(jù)移動(dòng)器在公共收集器引擎登記為收聽者(對(duì)選擇的類別)實(shí)現(xiàn)該結(jié)果。
優(yōu)選地,一個(gè)或更多個(gè)供應(yīng)器具有用于存儲(chǔ)被發(fā)現(xiàn)的相應(yīng)的清單信息的內(nèi)部高速緩存。
在不降低其一般適用性的情況下,供應(yīng)器的調(diào)用根據(jù)在發(fā)現(xiàn)指令中限定的相應(yīng)時(shí)間策略被調(diào)度。
作為另一改進(jìn),一些供應(yīng)器可響應(yīng)異步事件的出現(xiàn)被調(diào)用。
在本發(fā)明的優(yōu)選實(shí)施例中,各個(gè)供應(yīng)器僅返回自過程的以前的重復(fù)出現(xiàn)的變化。
進(jìn)一步改進(jìn)解決方案的方式是限定用于控制發(fā)現(xiàn)的信息的傳送的策略(在發(fā)現(xiàn)指令中)。
例如,能夠在發(fā)現(xiàn)的信息達(dá)到最小大小之前防止傳送。
本發(fā)明的另一方面提出執(zhí)行該方法的計(jì)算機(jī)程序。
本發(fā)明的另一方面提出相應(yīng)的系統(tǒng)。
參照要結(jié)合附圖閱讀的、純粹作為非限制性的指示給出的以下詳細(xì)說明,將最好地理解本發(fā)明本身及其其它特征和優(yōu)點(diǎn),在這些附圖中,圖1a是可應(yīng)用根據(jù)本發(fā)明的實(shí)施例的解決方案的數(shù)據(jù)處理系統(tǒng)的示意性框圖;圖1b表示系統(tǒng)的示例性計(jì)算機(jī)的功能塊;圖2是表示實(shí)現(xiàn)根據(jù)本發(fā)明的實(shí)施例的解決方案的不同部件的作用的協(xié)作圖;圖3a~3b表示說明根據(jù)本發(fā)明的實(shí)施例的解決方案的示例性應(yīng)用中的不同部件之間的相互作用的順序圖。
具體實(shí)施例方式
特別參照?qǐng)D1a,說明具有分布式體系結(jié)構(gòu)的數(shù)據(jù)處理系統(tǒng)100。系統(tǒng)100實(shí)現(xiàn)用于管理大量的物理或邏輯資源的基礎(chǔ)結(jié)構(gòu)。這些資源的例子是計(jì)算機(jī)、移動(dòng)電話、硬件設(shè)備、軟件程序、網(wǎng)絡(luò)部件、因特網(wǎng)地址、存儲(chǔ)子系統(tǒng)、用戶、功用(role)、組織、數(shù)據(jù)庫、消息隊(duì)列、應(yīng)用服務(wù)器、服務(wù)、商業(yè)活動(dòng)等。
特別地,中心服務(wù)器105負(fù)責(zé)限定系統(tǒng)100的結(jié)構(gòu)。多個(gè)端點(diǎn)110直接控制要被管理的一個(gè)或更多個(gè)資源。服務(wù)器105和端點(diǎn)110通過網(wǎng)絡(luò)115(一般基于因特網(wǎng))被耦合。
例如,系統(tǒng)100實(shí)現(xiàn)軟件分布基礎(chǔ)結(jié)構(gòu)。在這種情況下,服務(wù)器105收集關(guān)于各個(gè)端點(diǎn)110的當(dāng)前配置的信息;該信息用于規(guī)劃選擇的軟件包的執(zhí)行,這些軟件包被用于實(shí)現(xiàn)端點(diǎn)110的希望的軟件配置(如參考模型中所限定的)。出于此目的的市售商業(yè)軟件應(yīng)用的例子是上述“ITCM”。
現(xiàn)在考慮圖1b,用150表示上述系統(tǒng)(服務(wù)器或端點(diǎn))的一般的計(jì)算機(jī)。計(jì)算機(jī)150由與系統(tǒng)總線153并聯(lián)連接的幾個(gè)單元形成(具有根據(jù)系統(tǒng)中的計(jì)算機(jī)150的實(shí)際功能被適當(dāng)縮放的結(jié)構(gòu))。詳細(xì)地說,一個(gè)或更多個(gè)微處理器(μP)156控制計(jì)算機(jī)150的操作;RAM159被微處理器156直接用作工作存儲(chǔ)器,ROM 162存儲(chǔ)用于計(jì)算機(jī)150的引導(dǎo)程序的基本代碼。幾個(gè)外圍單元群集在局部總線165周圍(通過各個(gè)接口)。特別地,大容量存儲(chǔ)器包含一個(gè)或更多個(gè)硬盤168和用于讀取CD-ROM 174的驅(qū)動(dòng)器171。并且,計(jì)算機(jī)150包含輸入單元177(例如,鍵盤和鼠標(biāo))、和輸出單元180(例如,監(jiān)視器和打印機(jī))。適配器183用于將計(jì)算機(jī)150與網(wǎng)絡(luò)連接。橋接單元186連接系統(tǒng)總線153與局部總線165。各個(gè)微處理器156和橋接單元186可作為請(qǐng)求訪問系統(tǒng)總線153以傳輸信息的主代理(master agent)工作。仲裁器189用對(duì)系統(tǒng)總線153的互斥管理訪問的準(zhǔn)許。
轉(zhuǎn)到圖2,在上述系統(tǒng)上運(yùn)行的主軟件部件整體以標(biāo)號(hào)200表示。信息(程序和數(shù)據(jù))一般被存儲(chǔ)在硬盤上,并在程序運(yùn)行時(shí)被加載(至少部分地)到各個(gè)計(jì)算機(jī)的工作存儲(chǔ)器中。程序最初例如從CD-ROM被安裝到硬盤上。特別地,該圖說明了系統(tǒng)的靜態(tài)結(jié)構(gòu)(通過相應(yīng)的部件)及其動(dòng)態(tài)行為(通過一系列交換的消息)。
考慮一般的端點(diǎn)110,清單框架205實(shí)現(xiàn)用于收集關(guān)于由端點(diǎn)110控制的資源的清單信息的服務(wù)(例如,基于上述CIT)。清單框架205的主模塊是提供用于發(fā)現(xiàn)需要的清單信息的單個(gè)訪問點(diǎn)的公共收集器引擎(CCE)210。為此,收集器引擎210暴露發(fā)現(xiàn)接口215(具有允許以統(tǒng)一的方式發(fā)現(xiàn)任何清單信息的一組預(yù)定的API)。
收集器引擎210存儲(chǔ)模型220,該模型220通過面向?qū)ο蟮姆独?例如,以“統(tǒng)一信息模型或UIM”語言書寫)中的相應(yīng)的類(class)限定可能在系統(tǒng)中可用的、管理下的資源的各個(gè)類別。不同的資源類與相應(yīng)的供應(yīng)器225(在收集器引擎210外部)相關(guān)。供應(yīng)器225是封裝相關(guān)資源類別的知識(shí)的插件。以這種方式,對(duì)收集器引擎210完全掩蓋要被發(fā)現(xiàn)的多種資源的不同行為;并且,可以通過為相應(yīng)的資源類別添加新的供應(yīng)器225,容易地?cái)U(kuò)展清單框架205。
更具體地,各個(gè)供應(yīng)器225發(fā)現(xiàn)關(guān)于可用的資源的清單信息,并將其轉(zhuǎn)換成資源類的相應(yīng)的實(shí)例(每一個(gè)代表實(shí)際資源)。為此,供應(yīng)器225一般執(zhí)行硬件或軟件掃描操作、檢查目錄、登記等;供應(yīng)器225也可通過將操作交給安裝在其上的第二模塊發(fā)現(xiàn)遠(yuǎn)程計(jì)算機(jī)上的資源實(shí)例。在更復(fù)雜的情況下,供應(yīng)器225適于從可用的觀察(諸如計(jì)算的統(tǒng)計(jì)、登記的事務(wù)、測(cè)量的網(wǎng)絡(luò)流量等)推斷清單信息。例如,供應(yīng)器225可以基于硬件掃描器(能夠通過讀取相應(yīng)的硬件寄存器確定端點(diǎn)110的物理配置)或軟件掃描器(能夠通過掃描其文件系統(tǒng)并將任何可執(zhí)行模塊與軟件目錄中的可用的預(yù)定簽名相比較,確定安裝在端點(diǎn)110上的軟件產(chǎn)品)。
每一個(gè)供應(yīng)器225實(shí)現(xiàn)列舉相應(yīng)的資源類發(fā)現(xiàn)的所有資源實(shí)例(可能根據(jù)選擇的準(zhǔn)則被過濾)的方法。供應(yīng)器225可以為交互類型,其中,它在有請(qǐng)求時(shí)動(dòng)態(tài)產(chǎn)生資源實(shí)例。這保證清單信息總是最新的;交互式供應(yīng)器225非常適于迅速發(fā)現(xiàn)(例如,硬件特征)或易失性(例如,登記的用戶)的資源。相反,高速緩存型的供應(yīng)器225具有用于存儲(chǔ)事先被發(fā)現(xiàn)的資源實(shí)例的內(nèi)部高速緩存。因此,當(dāng)供應(yīng)器225被詢問時(shí),它立即返回清單信息。結(jié)果,供應(yīng)器225的響應(yīng)時(shí)間十分短;高速緩存型的供應(yīng)器225一般用于難以發(fā)現(xiàn)(例如,安裝的軟件產(chǎn)品)或具有較慢的動(dòng)態(tài)(例如,硬件配置)的資源。高速緩存型的供應(yīng)器225實(shí)現(xiàn)附加的方法;特別地,使用一種方法以準(zhǔn)備或刷新內(nèi)部高速緩存內(nèi)的信息(例如,周期性地);使用另一種方法以使相同的信息無效(例如,當(dāng)其使用期限達(dá)到最大的可容許值時(shí))。供應(yīng)器225也可為指示類型;在這種情況下,供應(yīng)器225將為在相應(yīng)的資源中發(fā)現(xiàn)的任何變化發(fā)出通知(向注冊(cè)的收聽者)。這種特征允許收集包含自最后的發(fā)現(xiàn)操作而出現(xiàn)的變化的變化(清單)信息;特別地,能夠使供應(yīng)器225只列舉變化的資源實(shí)例(即,產(chǎn)生、更新或刪除的那些)。任選地,批類型的供應(yīng)器225也存儲(chǔ)所有的上述事件;這允許收集與任何周期有關(guān)的變化信息。
清單信息的自動(dòng)發(fā)現(xiàn)由模塊230根據(jù)相應(yīng)的指令235(通過發(fā)現(xiàn)接口215由系統(tǒng)管理員限定)控制。
各個(gè)發(fā)現(xiàn)指令235涉及特定的資源類(“什么”參數(shù))。發(fā)現(xiàn)指令235指定用于發(fā)現(xiàn)相應(yīng)的資源實(shí)例的時(shí)間策略(“什么時(shí)間”參數(shù));例如,能夠指示發(fā)現(xiàn)操作必須周期性地被執(zhí)行,諸如每2~6個(gè)小時(shí)(由此,當(dāng)為高速緩存類型時(shí),限定相應(yīng)供應(yīng)器225的內(nèi)部高速緩存的刷新速率)。任選地,發(fā)現(xiàn)指令235確定感興趣的特定區(qū)域(“什么地方”參數(shù));例如,發(fā)現(xiàn)操作可被限制到網(wǎng)絡(luò)地址的子集。發(fā)現(xiàn)指令235也可指定關(guān)于發(fā)現(xiàn)操作的執(zhí)行的附加信息(“如何”參數(shù));例如,能夠指示發(fā)現(xiàn)的清單信息必須在達(dá)到預(yù)定的最小大小(限定基本的傳輸塊(transmission chunk))時(shí)才被處理。
其它發(fā)現(xiàn)指令235涉及將多個(gè)資源類別之間的相關(guān)性建模的類。例如,一個(gè)資源類被包含于另一個(gè)資源類之中(分別諸如用于存儲(chǔ)裝置的資源類和用于計(jì)算機(jī)的資源類);在這種情況下,計(jì)算機(jī)類的發(fā)現(xiàn)必須在存儲(chǔ)裝置類之前(由于沒有前者則后者不能存在)。并且,一個(gè)資源類可為另一個(gè)資源類的特指(分別諸如用于操作系統(tǒng)和應(yīng)用程序的資源類和用于一般軟件產(chǎn)品的資源類);在這種情況下,軟件產(chǎn)品類的發(fā)現(xiàn)涉及操作系統(tǒng)類和應(yīng)用程序類的發(fā)現(xiàn)。作為另一例子,相關(guān)性將一個(gè)資源類與依賴于其變化的另一個(gè)資源類鏈接(分別諸如用于硬件的資源類和用于軟件的資源類);在這種情況下,只要對(duì)硬件類發(fā)現(xiàn)任何變化,就應(yīng)同樣檢查軟件類(因?yàn)榉浅?赡苘浖愐惨殉霈F(xiàn)變化)。并且,一個(gè)資源類可使用其它的資源類(分別諸如用于軟件識(shí)別的資源類和用于簽名、文件系統(tǒng)和登記的資源類);在這種情況下,軟件識(shí)別類的發(fā)現(xiàn)包含簽名類、文件系統(tǒng)類和登記類的發(fā)現(xiàn)。
發(fā)現(xiàn)控制器230確定要被執(zhí)行的發(fā)現(xiàn)操作并產(chǎn)生以正確的次序執(zhí)行它們的計(jì)劃(根據(jù)發(fā)現(xiàn)指令235)。這樣獲得的計(jì)劃被傳送給調(diào)度器240(在收集器引擎210外部)。調(diào)度器240控制計(jì)劃的提交,這涉及用于各個(gè)發(fā)現(xiàn)操作的作業(yè)的運(yùn)行;該作業(yè)又通過發(fā)現(xiàn)控制器230調(diào)用相應(yīng)的發(fā)現(xiàn)操作的執(zhí)行。以這種方式,能夠在對(duì)收集器引擎210沒有任何影響的情況下改變調(diào)度器240。任選地,端點(diǎn)110也可包含一個(gè)或更多個(gè)可啟動(dòng)(fire)選擇的事件(諸如與端點(diǎn)110上的異步硬件和/或軟件變化有關(guān))的外部監(jiān)視器242;例如,監(jiān)視器242可檢測(cè)什么時(shí)候添加新的硬件部件、什么時(shí)候安裝新的軟件產(chǎn)品等等。在這種情況下,監(jiān)視器242相應(yīng)地通知發(fā)現(xiàn)控制器230,以致使對(duì)受事件影響的資源類執(zhí)行發(fā)現(xiàn)操作。
在任意情況下,發(fā)現(xiàn)控制器230將相應(yīng)的請(qǐng)求轉(zhuǎn)發(fā)到控制要求的發(fā)現(xiàn)操作的實(shí)際執(zhí)行的供應(yīng)器服務(wù)器245。為此,供應(yīng)器服務(wù)器245訪問模型220(以確定與由發(fā)現(xiàn)操作涉及的資源類有關(guān)的供應(yīng)器225)。對(duì)于要被執(zhí)行的各個(gè)發(fā)現(xiàn)操作,供應(yīng)器服務(wù)器245調(diào)用有關(guān)的供應(yīng)器225。
任選地,收集器引擎210還包含全局高速緩存250。模塊255管理存儲(chǔ)在全局高速緩存250中的信息;特別地,高速緩存管理器255從全局高速緩存250提取希望的信息、在必要時(shí)使其無效等等。這即使對(duì)于交互式供應(yīng)器225也允許提供高速緩存型供應(yīng)器225典型特征的功能(諸如發(fā)現(xiàn)變化信息或處理傳輸塊中的清單信息的可能性)。
收集器引擎210的服務(wù)被多個(gè)使用器(exploiter)260、265(例如,諸如有關(guān)例子中的“ITCM”的“變化管理器或CM”服務(wù)的資源管理器)訪問。特別地,本地使用器260在相同的端點(diǎn)110上運(yùn)行。另一方面,在服務(wù)器105上運(yùn)行的遠(yuǎn)程使用器265通過公共代理270訪問收集器引擎210的服務(wù);公共代理270提供單運(yùn)行時(shí)環(huán)境,該單運(yùn)行時(shí)環(huán)境包裹一組多個(gè)服務(wù)(例如,根據(jù)實(shí)現(xiàn)IBM公司的“開放服務(wù)網(wǎng)關(guān)規(guī)范(Open Service gateway initiative)或OSGi”的適應(yīng)版本的“服務(wù)管理框架或SMF”被限定)。為此,傳送機(jī)構(gòu)275用于在端點(diǎn)110和服務(wù)器105之間通信;優(yōu)選地,傳送機(jī)構(gòu)275露出與實(shí)際使用的底層協(xié)議(諸如TCP/IP、FTP、HTTP等)無關(guān)的標(biāo)準(zhǔn)接口。傳送機(jī)構(gòu)275將服務(wù)器105上的需要的清單信息存儲(chǔ)到被遠(yuǎn)程使用器265訪問的服務(wù)庫280中。
如下面詳細(xì)說明的那樣,在根據(jù)本發(fā)明的實(shí)施例的解決方案中,(本地或遠(yuǎn)程)使用器260、265通過數(shù)據(jù)移動(dòng)器(data mover)與收集器引擎210交互作用。特別地,數(shù)據(jù)移動(dòng)器285從使用器260、265接收對(duì)關(guān)于選擇的資源類清單信息的發(fā)現(xiàn)請(qǐng)求。對(duì)于各個(gè)發(fā)現(xiàn)請(qǐng)求,數(shù)據(jù)移動(dòng)器285將其自身在收集器引擎210注冊(cè)為與相應(yīng)的選擇的資源類有關(guān)的清單信息的用戶。如發(fā)現(xiàn)指令235指示的那樣,收集器引擎210(通過適當(dāng)?shù)墓?yīng)器225)發(fā)現(xiàn)用于與選擇的一個(gè)相關(guān)的資源類的資源實(shí)例。一旦對(duì)于所有的上述相關(guān)資源類完成該過程,數(shù)據(jù)移動(dòng)器285就將希望的清單信息返回到使用器260、265。
以這種方式,使用器260、265與在要被發(fā)現(xiàn)的資源之間存在的相關(guān)性被完全去耦。結(jié)果,服務(wù)器105上的相應(yīng)工作流被大大簡(jiǎn)化;并且,這減少網(wǎng)絡(luò)上傳送的信息的量,使得對(duì)整個(gè)系統(tǒng)的效率具有有益影響。
提出的解決方案十分靈活,這是因?yàn)樗试S以非常簡(jiǎn)單的方式改變被發(fā)現(xiàn)的資源類(基本上不對(duì)服務(wù)器上的工作流進(jìn)行重新限定)。例如,讓我們假定使用器260、265首先關(guān)心收集關(guān)于安裝在端點(diǎn)110上的軟件產(chǎn)品的清單信息,然后關(guān)心收集關(guān)于由其提供的服務(wù)的清單信息;在這種情況下,管理員將簡(jiǎn)單地將上述相關(guān)性添加到發(fā)現(xiàn)指令235上,以便以對(duì)使用器260、265完全不透明的方式自動(dòng)收集希望的清單信息。
更具體地,發(fā)現(xiàn)指令235首先由管理員產(chǎn)生(動(dòng)作A1)。一般使用器260、265向數(shù)據(jù)移動(dòng)器285提交對(duì)關(guān)于由其資源類限定的選擇的資源類別的清單信息的請(qǐng)求(動(dòng)作A2)。對(duì)其響應(yīng),數(shù)據(jù)移動(dòng)器285將其自身在發(fā)現(xiàn)控制器230(通過發(fā)現(xiàn)接口215)登記為與選擇的資源類的事件有關(guān)的收聽者(動(dòng)作A3)。結(jié)果,發(fā)現(xiàn)控制器230解決涉及選擇的資源類的相關(guān)性(如發(fā)現(xiàn)指令235指示的那樣);以這種方式,發(fā)現(xiàn)控制器230確定與選擇的資源類相關(guān)的資源類(包含或不包含選擇的資源類本身),這應(yīng)被考慮,以完成整個(gè)發(fā)現(xiàn)操作(動(dòng)作A4)。發(fā)現(xiàn)控制器230定義相應(yīng)的計(jì)劃,這包括對(duì)各個(gè)相關(guān)的資源類執(zhí)行發(fā)現(xiàn)操作(根據(jù)發(fā)現(xiàn)指令235);這樣獲得的計(jì)劃然后被傳送到調(diào)度器240(動(dòng)作A5)。
調(diào)度器240提交該計(jì)劃;該計(jì)劃的各個(gè)作業(yè)(在運(yùn)行時(shí))通過發(fā)現(xiàn)控制器230調(diào)用相應(yīng)的發(fā)現(xiàn)操作的執(zhí)行(動(dòng)作A6)。每當(dāng)一般監(jiān)視器242啟動(dòng)需要執(zhí)行一個(gè)或更多個(gè)發(fā)現(xiàn)操作的事件時(shí),也到達(dá)同一點(diǎn)(動(dòng)作A6′)。發(fā)現(xiàn)控制器230將各個(gè)請(qǐng)求轉(zhuǎn)發(fā)給供應(yīng)器服務(wù)器245(動(dòng)作A7)。供應(yīng)器服務(wù)器245(根據(jù)模型220)確定與在請(qǐng)求中指定的資源類相關(guān)的供應(yīng)器225(動(dòng)作A8)。該供應(yīng)器225然后被服務(wù)器供應(yīng)器245調(diào)用(動(dòng)作A9)。假定供應(yīng)器225為高速緩存類型,那么它將發(fā)現(xiàn)的資源實(shí)例(如果存在的話)存儲(chǔ)到相應(yīng)的局部高速緩存中(動(dòng)作A10)。供應(yīng)器225然后通過供應(yīng)器服務(wù)器245向發(fā)現(xiàn)控制器230通知指示完成發(fā)現(xiàn)操作的事件(動(dòng)作A11)。
以這種方式,清單信息的發(fā)現(xiàn)(通過供應(yīng)器225)與其使用(通過使用器260、265)完全獨(dú)立。特別地,各個(gè)使用器260、265將簡(jiǎn)單地提交對(duì)希望的清單信息的發(fā)現(xiàn)請(qǐng)求,而無需指定它是如何被發(fā)現(xiàn)的;這一方面被完全交給發(fā)現(xiàn)指令235。因此,用于調(diào)度發(fā)現(xiàn)操作的時(shí)間策略的任何變化都對(duì)使用器260、265完全不透明。作為進(jìn)一步的改進(jìn),監(jiān)視器242還允許立即響應(yīng)異步的事件。例如,一旦新的部件被插入端點(diǎn)110中,與用于硬件的資源類相關(guān)的供應(yīng)器225就可被觸發(fā)(以發(fā)現(xiàn)代表該部件的新的資源實(shí)例);類似地,一旦檢測(cè)到在端點(diǎn)110上安裝新的軟件產(chǎn)品,與用于軟件的資源類相關(guān)的供應(yīng)器就可被觸發(fā)(以發(fā)現(xiàn)代表該軟件產(chǎn)品的新的資源實(shí)例)。在任何情況下,清單信息的發(fā)現(xiàn)都可根據(jù)任何可能發(fā)生的需要被調(diào)整。例如,能夠在沒有資源改變時(shí)避免執(zhí)行不必要的操作,或者避免發(fā)現(xiàn)關(guān)鍵的清單信息太遲。要強(qiáng)調(diào)的是,對(duì)于發(fā)現(xiàn)清單信息的方式的任何更新都不需要對(duì)由服務(wù)器105實(shí)現(xiàn)的工作流產(chǎn)生任何干擾。
發(fā)現(xiàn)控制器230聚集接收的完成事件;一旦用于與所有相關(guān)資源類相關(guān)的供應(yīng)器225的發(fā)現(xiàn)操作都已完成,發(fā)現(xiàn)控制器230就相應(yīng)地通過發(fā)現(xiàn)接口215通知數(shù)據(jù)移動(dòng)器285(動(dòng)作A12)。對(duì)此響應(yīng),如數(shù)據(jù)移動(dòng)器285特定的發(fā)現(xiàn)指令235指示的那樣,數(shù)據(jù)移動(dòng)器285優(yōu)選驗(yàn)證是否整個(gè)發(fā)現(xiàn)信息(由所有涉及的供應(yīng)器225發(fā)現(xiàn))的大小達(dá)到傳輸塊(動(dòng)作A13)。如果是,數(shù)據(jù)移動(dòng)器285將發(fā)現(xiàn)的清單信息傳送到相應(yīng)的使用器260、265。特別考慮遠(yuǎn)程使用器265,為此,數(shù)據(jù)移動(dòng)器285(流傳送接收的變化通知)從各個(gè)有關(guān)供應(yīng)器225的內(nèi)部高速緩存提取Δ信息(動(dòng)作A14);以這種方式,要被傳送的信息的量大大減少。Δ信息然后通過傳送機(jī)構(gòu)275被發(fā)送到服務(wù)器105,其中,它被存儲(chǔ)在服務(wù)庫280中。遠(yuǎn)程使用器265然后可從服務(wù)庫280讀取需要的清單信息(動(dòng)作A15)。結(jié)果,在供應(yīng)器225和使用器265之間實(shí)現(xiàn)通道;特別地,對(duì)于使用器265,發(fā)現(xiàn)清單信息所需要的操作現(xiàn)在被完全掩蓋。
現(xiàn)在參照?qǐng)D3a~3b,通過在相關(guān)部件之間交換的一系列的有次序的消息示出根據(jù)本發(fā)明的實(shí)施例的解決方案的示例性應(yīng)用的動(dòng)態(tài)行為。例如,讓我們假定一般的使用器MyExploiter關(guān)心收集關(guān)于由類MyClass1建模的資源的清單信息。為此,使用器MyExploiter在時(shí)間T1向數(shù)據(jù)移動(dòng)器(對(duì)象MyDataMover)提交發(fā)現(xiàn)請(qǐng)求,由此作為參數(shù)傳送資源類MyClass1(消息“discover(MyClass1)”)。數(shù)據(jù)移動(dòng)器MyDataMover在時(shí)間T2通過發(fā)現(xiàn)接口將其自身在收集器引擎(對(duì)象MyCollector)登記為相同資源類MyClass1的收聽者(消息“addListener(MyDataMover,MyClass1)”)。
現(xiàn)有考慮時(shí)間T3,收集器引擎MyCollector解決涉及資源類MyClass1的相關(guān)性(動(dòng)作“\solve correlations\”)。例如,讓我們假定管理員已產(chǎn)生指定資源類MyClass1使用資源類MyClass2、MyClass3的一系列發(fā)現(xiàn)指令,并且資源類MyClass2又使用資源類MyClass3。在這種情況下,這組相關(guān)的資源類將由資源類MyClass1、MyClass2和MyClass3構(gòu)成。過程前進(jìn)到時(shí)間T4,其中,收集器引擎MyCollector向調(diào)度器(對(duì)象MyScheduler)提交計(jì)劃(對(duì)象MyPlan),用于執(zhí)行涉及那些相關(guān)的資源類MyClass1~MyClass3有關(guān)的發(fā)現(xiàn)操作(消息“Schedule(MyPlan)”)。例如,讓我們假定發(fā)現(xiàn)指令指定資源類MyClass1必須每周被發(fā)現(xiàn),而資源類MyClass2和MyClass3必須每天被發(fā)現(xiàn)。在這種情況下,計(jì)劃MyPlan將包含對(duì)資源類MyClass1的發(fā)現(xiàn)操作(要被重復(fù)執(zhí)行,例如,每個(gè)星期天晚上)、對(duì)資源類MyClass2的發(fā)現(xiàn)操作和對(duì)資源類MyClass3的發(fā)現(xiàn)操作(兩者均要被重復(fù)執(zhí)行,例如,每晚)。
調(diào)度器MyScheduler然后提交計(jì)劃MyPlan。因此,上述發(fā)現(xiàn)操作的作業(yè)根據(jù)它們的時(shí)間約束運(yùn)行(考慮對(duì)執(zhí)行可用的數(shù)據(jù)處理資源)。例如,星期六晚上與對(duì)資源類MyClass2的發(fā)現(xiàn)操作對(duì)應(yīng)的作業(yè)在時(shí)間T5運(yùn)行,以使得收集器引擎MyCollector在模型中確定與資源類MyClass2相關(guān)的供應(yīng)器(對(duì)象MyProvider2)并調(diào)用它(消息‘run()”)。以這種方式,一旦發(fā)現(xiàn)操作已被完成(時(shí)間T6),供應(yīng)器MyProvider2就將由用于資源類MyClass2的改變的資源實(shí)例構(gòu)成的Δ信息(對(duì)象MyDelta2)保存到對(duì)于所有的相關(guān)資源類MyClass1~MyClass3一般由公共對(duì)象MyCache表示的其內(nèi)部高速緩存中(消息“save(MyDelta2)”)。作為結(jié)果,相應(yīng)的完成事件在時(shí)間T7返回收集器引擎MyCollector(消息“completed(MyProvider2)”)。與對(duì)資源類MyClass3的發(fā)現(xiàn)操作對(duì)應(yīng)的作業(yè)類似地隨后在時(shí)間T5′被提交,以使得收集器引擎MyCollector確定相關(guān)的供應(yīng)器(對(duì)象MyProvider3)并調(diào)用它(消息“run()”)。以完全獨(dú)立的方式,一旦發(fā)現(xiàn)操作已被完成(時(shí)間T6′),供應(yīng)器MyProvider3就將得到的Δ信息(對(duì)象MyDelta3)保存到其局部高速緩存中(消息“save(MyDelta3)”)。相應(yīng)的完成事件然后在時(shí)間T7′返回收集器引擎MyCollector(消息“completed(MyProvider3)”)。星期天晚上與對(duì)資源類MyClass1的發(fā)現(xiàn)操作對(duì)應(yīng)的作業(yè)也在時(shí)間T8被提交,以使得收集器引擎MyCollector確定相關(guān)的供應(yīng)器(對(duì)象MyProvider1)并調(diào)用它(消息“run()”)。一旦發(fā)現(xiàn)操作已被完成(時(shí)間T9),供應(yīng)器MyProvider1就將其Δ信息(對(duì)象MyDelta1)保存到內(nèi)部高速緩存中(消息“save(MyDelta1)”)。相應(yīng)的完成事件在時(shí)間T10返回收集器引擎MyCollector(消息“completed(MyProvider1)”)。
一旦對(duì)所有的相關(guān)的資源類MyClass1~MyClass3的發(fā)現(xiàn)操作都已被完成,收集器引擎MyCollector就在時(shí)間T11聚集這些事件(動(dòng)作“\aggregate events\”)。收集器引擎MyCollector然后在時(shí)間T12通知數(shù)據(jù)移動(dòng)器MyDataMover用于選擇的資源類MyClass1的需要的清單信息是可用的(消息“notify(MyClass1)”)。作為結(jié)果,數(shù)據(jù)移動(dòng)器MyDataMover在時(shí)間T13將開始從相應(yīng)的內(nèi)部高速緩存MyCache提取Δ信息MyDelta1、MyDelta2和MyDelta3(消息“extract()”)。該信息然后在時(shí)間T14被傳送到使用器MyExploiter(動(dòng)作“/transfer/”)。
自然,為了滿足局部和指定的需求,本領(lǐng)域技術(shù)人員可將上述解決方案進(jìn)行許多修改和變化。特別地,雖然參照其優(yōu)選實(shí)施例以一定程度的特定性說明了本發(fā)明,但應(yīng)理解,在形式和細(xì)節(jié)上的各種省略、替代和變化以及其它實(shí)施例均是可能的;并且其目的明確在于,與本發(fā)明的任何公開的實(shí)施例相關(guān)說明的特定要素和/或方法步驟可作為設(shè)計(jì)選擇的一般事項(xiàng)被加入任何其它實(shí)施例中。
特別地,如果系統(tǒng)具有不同的體系結(jié)構(gòu)或包括等同的單元,那么類似的考慮適用。例如,系統(tǒng)可包括不同數(shù)量的客戶機(jī)和/或服務(wù)器;但是,什么也不能阻止將提出的解決方案應(yīng)用于單個(gè)計(jì)算機(jī)。并且,各計(jì)算機(jī)可具有另一結(jié)構(gòu)或者可包括類似的要素(諸如暫時(shí)存儲(chǔ)程序或其部分以減少在執(zhí)行的過程中對(duì)大容量存儲(chǔ)器的訪問的高速緩沖存儲(chǔ)器);在任何情況下,能夠用任何代碼執(zhí)行實(shí)體(諸如PDA、移動(dòng)電話等)代替計(jì)算機(jī)。
雖然在上面的說明中提到軟件分布應(yīng)用,但可為了任何資源管理目的收集清單信息(例如,用于許可管理基礎(chǔ)結(jié)構(gòu)中)。類似地,能夠收集不同類型的清單信息;并且,考慮的資源僅是示例性的,并且不必以限定的方式解釋它們。如果對(duì)資源的任何種類提供等同的模型、如果以另一種方式限定發(fā)現(xiàn)指令、或者如果支持其它的供應(yīng)器(例如,每一個(gè)服務(wù)多個(gè)資源類中的兩個(gè)),那么類似的考慮適用;并且,提出的技術(shù)思想可得到應(yīng)用,以在資源之間發(fā)現(xiàn)任何類型的相關(guān)性。在任何情況下,能夠?yàn)槟P秃?或發(fā)現(xiàn)指令采用等同的控制結(jié)構(gòu);例如,相關(guān)性可以在模型中(而不是在發(fā)現(xiàn)指令中)被限定。
在不背離本發(fā)明的原則的情況下,數(shù)據(jù)移動(dòng)器和/或收集器引擎可由等同的模塊代替。
很顯然,提出的解決方案也可被應(yīng)用于不是高速緩存類型的供應(yīng)器(例如,通過采用收集器引擎的高速緩存管理器)。
并且,不排除調(diào)度器由簡(jiǎn)單的定時(shí)器服務(wù)(具有收集器引擎)代替的基本實(shí)現(xiàn)。
另一方面,異步事件的處理不是嚴(yán)格必需的,在本發(fā)明的一些實(shí)施例中它可被省略。
盡管僅僅為了傳送Δ信息特別設(shè)計(jì)了數(shù)據(jù)移動(dòng)器,但不應(yīng)以限定的方式對(duì)其進(jìn)行解釋;換句話說,可以考慮將提出的解決方案應(yīng)用于總是返回被發(fā)現(xiàn)的整個(gè)清單信息的數(shù)據(jù)移動(dòng)器。
如果發(fā)現(xiàn)指令(對(duì)數(shù)據(jù)移動(dòng)器特定的)諸如根據(jù)最大可容許網(wǎng)絡(luò)帶寬限定用于控制清單信息的傳送的其它策略,那么類似的考慮適用。作為替代方案,能夠?qū)崿F(xiàn)與清單信息的收集有關(guān)的任何其它策略(例如,限制要被供應(yīng)器使用的處理能力)。在任何情況下,不支持任何傳送策略的實(shí)現(xiàn)處于本發(fā)明的范圍內(nèi)。
如果以不同的方式構(gòu)建程序(可用于實(shí)現(xiàn)本發(fā)明的各個(gè)實(shí)施例),或者如果提供附加的模塊或功能,那么類似的考慮適用;類似地,存儲(chǔ)器結(jié)構(gòu)可為其它類型,或者可以由等同的實(shí)體(不必由物理存儲(chǔ)介質(zhì)構(gòu)成)代替。并且,提出的解決方案適用由等同的方法(具有類似或附加的步驟,即使是以不同的次序)實(shí)現(xiàn)。在任何情況下,程序可采取適于被任何數(shù)據(jù)處理系統(tǒng)使用或與任何數(shù)據(jù)處理系統(tǒng)相關(guān)使用的任何形式,諸如外部或常駐軟件、固件或微代碼(目標(biāo)代碼或源代碼的形式)。并且,可以在任何計(jì)算機(jī)可使用介質(zhì)上提供該程序;介質(zhì)可以為適于包含、存儲(chǔ)、傳達(dá)、傳播或傳送程序的任何元件。這種介質(zhì)的例子為固定磁盤(可以預(yù)加載程序)、可移動(dòng)盤、帶、卡、導(dǎo)線、光纖、無線連接、網(wǎng)絡(luò)和廣播波等;例如,介質(zhì)可以為電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體類型。
在任何情況下,根據(jù)本發(fā)明的解決方案適于由硬件結(jié)構(gòu)(例如,被集成到半導(dǎo)體材料的芯片中)或由軟件和硬件的組合實(shí)現(xiàn)。
權(quán)利要求
1.一種用于收集數(shù)據(jù)處理系統(tǒng)(100)中的清單信息的方法(200),該方法包括步驟提供(a1)限定系統(tǒng)資源的類別和各類別之間的相關(guān)性的控制結(jié)構(gòu)(220;235),每個(gè)類別與用于發(fā)現(xiàn)與該類別的資源有關(guān)的清單信息的供應(yīng)器(225)相關(guān);從使用器實(shí)體(260;265)接收(A2)對(duì)至少一個(gè)選擇的類別的發(fā)現(xiàn)請(qǐng)求;確定(A4)與控制結(jié)構(gòu)中的選擇的類別相關(guān)的類別;通過與控制結(jié)構(gòu)中的相關(guān)類別相關(guān)的相關(guān)供應(yīng)器,發(fā)現(xiàn)(A5~A11)與在系統(tǒng)中可用的相關(guān)類別的資源有關(guān)的相關(guān)清單信息;和將相關(guān)清單信息傳送(A14~A15)到使用器實(shí)體。
2.根據(jù)權(quán)利要求1的方法(200),其中,發(fā)現(xiàn)請(qǐng)求被公共數(shù)據(jù)移動(dòng)器(285)接收(A2),該方法還包括步驟將數(shù)據(jù)移動(dòng)器在公共收集器引擎(210)登記(A3)為選擇的類別的收聽者,收集器引擎控制相關(guān)類別的確定(A4)和相關(guān)清單信息的發(fā)現(xiàn)(A5~A11);和響應(yīng)對(duì)所有的相關(guān)類別發(fā)現(xiàn)相關(guān)清單信息,通過收集器引擎通知(A12)數(shù)據(jù)移動(dòng)器,數(shù)據(jù)移動(dòng)器響應(yīng)所述通知控制相關(guān)清單信息的傳送(A14~A15)。
3.根據(jù)權(quán)利要求1或2的方法(200),其中,各個(gè)供應(yīng)器(225)與用于相應(yīng)的清單信息的高速緩存存儲(chǔ)器耦合,對(duì)于各個(gè)相關(guān)供應(yīng)器,發(fā)現(xiàn)(A5~A11)相關(guān)清單信息的步驟包括通過收集器引擎(210)調(diào)用(A5~A6;A6′、A7~A9)相關(guān)供應(yīng)器;將相關(guān)清單信息存儲(chǔ)(A10)到高速緩沖存儲(chǔ)器中;和將相關(guān)清單信息的發(fā)現(xiàn)的完成傳達(dá)(A11)給收集器引擎。
4.根據(jù)權(quán)利要求3的方法(200),其中,對(duì)于與第一相關(guān)供應(yīng)器相關(guān)的至少一個(gè)第一相關(guān)類別,控制結(jié)構(gòu)(220;235)還限定用于發(fā)現(xiàn)(A5~A11)與第一相關(guān)類別的資源有關(guān)的清單信息的時(shí)間策略,發(fā)現(xiàn)(A5~A11)相關(guān)清單信息的步驟包括根據(jù)相應(yīng)的時(shí)間策略調(diào)度(A5)用于調(diào)用各個(gè)第一相關(guān)供應(yīng)器的計(jì)劃,第一相關(guān)供應(yīng)器根據(jù)該計(jì)劃被調(diào)用(A6~A9)。
5.根據(jù)權(quán)利要求3或4的方法(200),其中,對(duì)于與第二相關(guān)供應(yīng)器相關(guān)的至少一個(gè)第二相關(guān)類別,發(fā)現(xiàn)(A5~A11)相關(guān)清單信息的步驟包括對(duì)于各個(gè)第二相關(guān)類別監(jiān)視(A6′)異步事件的出現(xiàn),相應(yīng)的第二相關(guān)供應(yīng)器響應(yīng)各異步事件被調(diào)用(A7~A9)。
6.根據(jù)權(quán)利要求1~5之任一的方法(200),其中,通過各個(gè)相關(guān)供應(yīng)器被發(fā)現(xiàn)(A5~A11)的相關(guān)清單信息表示有關(guān)的相關(guān)類別的資源自該相關(guān)清單信息的先前發(fā)現(xiàn)的變化。
7.根據(jù)權(quán)利要求1~6之任一的方法(200),其中,對(duì)于至少一個(gè)第三相關(guān)類別,控制結(jié)構(gòu)(220;235)還限定用于相應(yīng)的相關(guān)清單信息的傳送策略,該相關(guān)清單信息根據(jù)所述傳送策略被傳送(A14~A15)到使用器實(shí)體(260;265)。
8.根據(jù)權(quán)利要求7的方法(200),其中,使用器實(shí)體(265)在遠(yuǎn)程服務(wù)器上運(yùn)行,并且,傳送策略指定相關(guān)清單信息的最小大小,該方法還包括以下步驟在達(dá)到最小大小之前,防止將相關(guān)清單信息傳送(A13)給使用器實(shí)體。
9.一種計(jì)算機(jī)程序(200),用于當(dāng)計(jì)算機(jī)程序在數(shù)據(jù)處理系統(tǒng)(100)上被執(zhí)行時(shí)執(zhí)行權(quán)利要求1~8之任一的方法。
10.一種系統(tǒng)(100),包括用于執(zhí)行根據(jù)權(quán)利要求1~8之任一的方法的步驟的裝置(200)。
全文摘要
提出用于收集與復(fù)雜資源有關(guān)的清單信息的解決方案(200)。為此,數(shù)據(jù)移動(dòng)器(285)與公共收集器引擎(210)連接。數(shù)據(jù)移動(dòng)器代表每一個(gè)使用器(265)將其自身登記(A3)為選擇的資源類的收聽者。如預(yù)定的發(fā)現(xiàn)指令(235)中指示的那樣,收集器引擎解決(A4)涉及的選擇的資源類的相關(guān)性。根據(jù)在相同的發(fā)現(xiàn)指令中限定的調(diào)度計(jì)劃,適于發(fā)現(xiàn)關(guān)于相關(guān)資源類的清單信息的供應(yīng)器(225)被周期性地調(diào)用(A5~A9)。一旦用于所有的相關(guān)資源類的供應(yīng)器已完成相應(yīng)的信息的發(fā)現(xiàn)(A10),數(shù)據(jù)移動(dòng)器就相應(yīng)地被通知(A11)。對(duì)此響應(yīng),數(shù)據(jù)移動(dòng)器將發(fā)現(xiàn)的(變化)清單信息傳送(A13~A15)到使用器。
文檔編號(hào)G06F17/00GK101025747SQ20071000445
公開日2007年8月29日 申請(qǐng)日期2007年1月23日 優(yōu)先權(quán)日2006年2月22日
發(fā)明者魯伊吉·皮切蒂, 弗朗賽斯科·M.·卡特里, 亞利桑得羅·多納特利, 阿爾博托·加馬瑞亞, 喬納森·馬克·瓦格納 申請(qǐng)人:國際商業(yè)機(jī)器公司