專利名稱:用于虛擬設(shè)備的模型驅(qū)動(dòng)的維護(hù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的解決方案一般涉及數(shù)據(jù)處理領(lǐng)域。更具體而言,此解決方案涉及虛擬設(shè)備。
背景技術(shù):
虛擬設(shè)備是特定類型的軟件設(shè)備。一般而言,軟件設(shè)備是包括封裝在預(yù)先構(gòu)建的獨(dú)立自備單元中的軟件應(yīng)用(即,執(zhí)行特定用戶任務(wù)的一個(gè)或多個(gè)應(yīng)用程序)以及剛剛足夠操作系統(tǒng),或JeOS (即,為支持軟件應(yīng)用專門定制的有限的操作系統(tǒng))的軟件解決方案;軟件設(shè)備提供簡(jiǎn)化的管理以及改善的隔離(相對(duì)于在完全的通用操作系統(tǒng)上運(yùn)行的標(biāo)準(zhǔn)軟件應(yīng)用)。具體而言,虛擬設(shè)備是被設(shè)計(jì)成在虛擬化環(huán)境中運(yùn)行的軟件設(shè)備;為此目的,虛擬設(shè)備包括一個(gè)或多個(gè)虛擬機(jī)(即,通過物理機(jī)的軟件來仿真),每一個(gè)都帶有其操作系統(tǒng)以及應(yīng)用程序。虛擬設(shè)備允許以非常簡(jiǎn)單而快速的方式來提供相應(yīng)的服務(wù)。每一虛擬設(shè)備(如任何其他軟件工件)在其生命周期內(nèi)常遭受連續(xù)的維護(hù)操作。具體而言,常常應(yīng)用修補(bǔ)以糾正錯(cuò)誤或臨時(shí)解決地址安全問題。周期性地提供虛擬設(shè)備的新的版本或發(fā)行(合并所有可用的修補(bǔ)程序并提供新功能)。然而,虛擬設(shè)備的維護(hù)十分復(fù)雜;的確,在此情況下,維護(hù)一般需要對(duì)軟件組件的其整個(gè)堆棧(即,操作系統(tǒng)、應(yīng)用程序和/或虛擬機(jī))的若干個(gè)更新。在包括多個(gè)應(yīng)用層的大型虛擬設(shè)備中該問題特別嚴(yán)重,每一個(gè)應(yīng)用層又都包括帶有相應(yīng)的操作系統(tǒng)以及應(yīng)用程序的多個(gè)虛擬機(jī)。為此目的,如US-A-2008/000037060 (此處包括了其完整的描述作為參考)所描述的,可以利用提供對(duì)其軟件組件的所有所需的更新的新虛擬設(shè)備替換整個(gè)虛擬設(shè)備。此外,如US-A-2008/0215796 (此處包括了其完整的描述作為參考)所描述的,可以利用“寫入時(shí)復(fù)制”技術(shù)來最小化替換虛擬設(shè)備要交換的數(shù)據(jù)的量。然而,此方法要求任何本地?cái)?shù)據(jù)(例如,個(gè)人信息以及特定自定義)應(yīng)該適當(dāng)?shù)嘏c虛擬設(shè)備隔開;相反,替換虛擬設(shè)備將導(dǎo)致此本地?cái)?shù)據(jù)的完全丟失?!┕ぞ咭部捎糜诖龠M(jìn)虛擬設(shè)備的管理。具體而言,廣泛地使用建模工具來設(shè)計(jì)和部署虛擬設(shè)備。例如,在“Model-Driven Application Deployment forCloud Computing Environments, White Paper, 2010 年 I 月,,(http: //wikis. sun,com/download/attachments/73401323/CloudPackaging-Final-100131, pdf )(此 處包括了其完整的描述作為參考)陳述了相應(yīng)的最佳實(shí)踐;市場(chǎng)上可用的用于建模虛擬設(shè)備的商用的工具是 IBM 公司的 IBM Tivoli Conguration Change Manager (IBM 公司的商標(biāo))。此夕卜,在 “FLEXVAPS:A SYSTEM FOR MANAGING VIRTUAL APPLIANCES INHETER0GENE0USVIRTUALIZED ENVIRONMENTS, Kreutz, D. Charao, A. , Grupo de Pesquisa emSist.de Informacao, Univ. Fed. do Pampa, Alegrete, Brazil, Network Operations andManagement Symposium, 2009. LANOMS 2009. Latin American, 2009 年 10 月 19-21,,(此處包括了其完整的描述作為參考)中公開了用于管理異質(zhì)基礎(chǔ)結(jié)構(gòu)中的虛擬設(shè)備的系統(tǒng),而在 “AN EFFECTIVE ARCHITECTURE FOR AUTOMATED APPLIANCE MANAGEMENT SYSTEMAPPLYING ONTOLOGY-BASED CLOUD DISCOVERY, Amir Vahid Dastjerdil, Sayed GholamHassan Tabatabaei, and Rajkumar Buyya, 201010thIEEE/ACM International Conferenceon Cluster, Cloud and Grid Computing”(此處包括了其完整的描述作為參考)中公開了用于基于本體技術(shù)來部署虛擬設(shè)備的體系結(jié)構(gòu)。具體而言,rPath公司所推出的商用工具rBuilder (rPath公司的商標(biāo))利用深度系統(tǒng)建模,以便以自動(dòng)方式無縫地更新虛擬設(shè)備;此外,如果發(fā)生故障,虛擬設(shè)備被回滾到已知的良好狀態(tài)一例如,如 http://www. rpath. com/corp/images/stories/white_papers/WP_BestPractices. pdf 處的“BEST PRACTICES FOR BUILDINGVIRTUAL APPLIANCES”所描述(此處包括了其完整的描述作為參考)。此外,在US-A-2009/0300641 (此處包括了其完整的描述作為參考)中公開了用于創(chuàng)建虛擬設(shè)備的系統(tǒng)。在此情況下,當(dāng)提供任何軟件組件的更新版本時(shí),向創(chuàng)建包括它們的虛擬設(shè)備的用戶發(fā)送相應(yīng)的通知,以便這樣的用戶可以重建帶有更新的軟件組件的相應(yīng)圖像(以便允許部署這些虛擬設(shè)備的任何用戶接收所有它們的軟件組件的正確版本);還可執(zhí)行測(cè)試,以驗(yàn)證每一虛擬設(shè)備是否利用更新的軟件組件正確地表現(xiàn)(以及實(shí)現(xiàn)對(duì)虛擬設(shè)備的適應(yīng)更新的軟件組件所需的任何更改)。US-A-2010/0312865 (此處包括了其完整的描述作為參考)公開了用于更新虛擬設(shè)備的系統(tǒng),其中,客戶端周期性地聯(lián)系服務(wù)器以確定是否有新的更新可用。如果有,則客戶端下載用于替換虛擬設(shè)備的相應(yīng)部分的差異更新圖像;如果發(fā)生錯(cuò)誤(例如,因?yàn)樘摂M設(shè)備太舊難以直接應(yīng)用新的更新),則下載完整的更新圖像。在這兩種情況下,一旦用戶結(jié)束他/她與虛擬設(shè)備的會(huì)話,就將(差異或完整的)更新圖像應(yīng)用到客戶端上。最后,在US-A-2009/0249324 (此處包括了其完整的描述作為參考)中客戶端映射文件與安裝在客戶端上的每一虛擬設(shè)備相關(guān)聯(lián);客戶端映射文件包括虛擬設(shè)備的每一塊的散列值以及表示其在相應(yīng)圖像內(nèi)的位置的偏移。當(dāng)前映射文件同樣與服務(wù)器上的虛擬設(shè)備的最新版本相關(guān)聯(lián)。將當(dāng)前映射文件與客戶端映射文件進(jìn)行比較,以確定已經(jīng)應(yīng)用于虛擬設(shè)備的更改,以便允許客戶端只從服務(wù)器下載虛擬設(shè)備的已經(jīng)更改的部分。然而,本領(lǐng)域內(nèi)已知的技術(shù)不具有一般適用性;實(shí)際上,這些技術(shù)嚴(yán)格地與虛擬設(shè)備的特定建模方案關(guān)聯(lián),以便它們不能應(yīng)用于任何其他虛擬設(shè)備。此外,當(dāng)對(duì)虛擬設(shè)備進(jìn)行手動(dòng)更新(獨(dú)立于其集中維護(hù))時(shí),已知的技術(shù)可能會(huì)產(chǎn)生問題。更具體而言,當(dāng)一些軟件組件已經(jīng)根據(jù)需要被更新時(shí),這可能會(huì)導(dǎo)致無用的維護(hù)操作;相反,不希望有的手動(dòng)更新可能會(huì)使虛擬設(shè)備進(jìn)入集中維護(hù)不能檢測(cè)出的不一致的狀態(tài)。進(jìn)一步的缺點(diǎn)是由于在它們的維護(hù)過程中虛擬設(shè)備的停機(jī)時(shí)間,該停機(jī)時(shí)間應(yīng)該保持得盡可能地短(特別是在關(guān)鍵應(yīng)用中)。
發(fā)明內(nèi)容
一般而言,根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的解決方案基于根據(jù)其實(shí)際狀態(tài)來驅(qū)動(dòng)對(duì)虛擬設(shè)備的維護(hù)的思想。
具體而言,在獨(dú)立權(quán)利要求中闡述了根據(jù)本發(fā)明的特定實(shí)施例的解決方案的一個(gè)或多個(gè)方面,在從屬權(quán)利要求中闡述同一解決方案的有益特征,此處逐字地合并了其措詞作為參考(任何有益的特征都引用根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的對(duì)其每一個(gè)其他方面應(yīng)用必要的變更的特定方面)。更具體而言,根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的一個(gè)方面提供用于維護(hù)虛擬設(shè)備的方法;虛擬設(shè)備包括一組軟件組件,每一個(gè)軟件組件都安裝在相應(yīng)的虛擬機(jī)上。該方法包括下列步驟。提供維護(hù)描述符,包括要被更新到其上的軟件組件中的至少每一個(gè)的新級(jí)別的指示。對(duì)于在所述維護(hù)描述符中所指示的每一個(gè)軟件組件,確定安裝在所述相應(yīng)的虛擬機(jī)上的所述軟件組件的當(dāng)前級(jí)別。根據(jù)所述相應(yīng)的當(dāng)前級(jí)別以及新級(jí)別之間的比較,確定要被實(shí)際更新的所述軟件組件的一組舊軟件組件。然后,克隆虛擬設(shè)備。通過將每一舊軟件組件更新到所述新級(jí)別,來更新所述克隆的虛擬設(shè)備?,F(xiàn)在將虛擬設(shè)備替換為更新的克隆的虛擬設(shè)備。根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的另一方面提供相應(yīng)的計(jì)算機(jī)程序。根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的再一個(gè)方面提供相應(yīng)的計(jì)算機(jī)程序產(chǎn)品。根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的一個(gè)不同的方面提供相應(yīng)的系統(tǒng)。
根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的解決方案,以及其進(jìn)一步特征以及優(yōu)點(diǎn),通過參考純粹地作為非限制性的指示給出的要與各個(gè)附圖一起閱讀的下面的詳細(xì)描述,將被最佳地理解(其中,為簡(jiǎn)單起見,相應(yīng)的元件利用相同或類似的附圖標(biāo)記來表示,不重復(fù)對(duì)它們的說明,每一實(shí)體的名稱一般用來表示其類型以及其屬性——諸如值,內(nèi)容以及表示形式)。具體而言圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案適用于的數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)的圖形表示,圖2示出了此數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)的一般性計(jì)算機(jī)的示意框圖,圖3A-圖3F示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的應(yīng)用的示例性情形,以及圖4示出了表示可以被用來實(shí)現(xiàn)根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的主要軟件模塊的角色的協(xié)作圖示。
具體實(shí)施例方式現(xiàn)在參考圖1,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)100的圖形表示。數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)100具有基于網(wǎng)絡(luò)105—例如,因特網(wǎng)的分布式體系結(jié)構(gòu)。多個(gè)物理和/或虛擬機(jī)通過網(wǎng)絡(luò)105 —個(gè)與另一個(gè)地連接。具體而言,一個(gè)或多個(gè)提供商機(jī)器110管理虛擬設(shè)備的部署以及它們的維護(hù)。每一虛擬設(shè)備都安裝在一個(gè)或多個(gè)用戶機(jī)器115上。為此目的,每一用戶機(jī)器115都包括虛擬化層(或虛擬機(jī)監(jiān)控程序),該虛擬化層模仿一個(gè)或多個(gè)虛擬機(jī)(每一個(gè)虛擬機(jī)都包括抽象環(huán)境,給出虛擬機(jī)對(duì)其具有唯一控制的物理機(jī)的外觀);商用虛擬化層的一個(gè)示例是VMWare公司推出的VMWareESX (VMWare公司的商標(biāo))。每一虛擬設(shè)備都包括一個(gè)或多個(gè)虛擬機(jī)(在一個(gè)或多個(gè)用戶機(jī)器115上運(yùn)行);每一虛擬機(jī)又包括定義其軟件平臺(tái)(例如,JeOS)的操作系統(tǒng),以及一個(gè)或多個(gè)在操作系統(tǒng)上運(yùn)行的應(yīng)用程序。移到圖2,示出了此數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)的一般性計(jì)算機(jī)200的示意框圖。計(jì)算機(jī)200(用來實(shí)現(xiàn)上文所提及的物理機(jī)或虛擬機(jī))由并聯(lián)到系統(tǒng)總線205的多個(gè)單元所形成(帶有根據(jù)數(shù)據(jù)處理基礎(chǔ)結(jié)構(gòu)中的計(jì)算機(jī)200的實(shí)際功能適當(dāng)?shù)乜s放的結(jié)構(gòu))。詳細(xì)地,一個(gè)或多個(gè)微處理器(U P)210控制計(jì)算機(jī)200的操作;RAM 215被微處理器210用作工作存儲(chǔ)器,而ROM 220存儲(chǔ)用于計(jì)算機(jī)200的自舉的基本代碼。多個(gè)外圍單元圍繞本地總線225 (通過相應(yīng)接口)而聚集。具體而言,大容量存儲(chǔ)器包括一個(gè)或多個(gè)硬盤230以及用于讀取DVD或⑶-ROM 240的驅(qū)動(dòng)器235。此外,計(jì)算機(jī)200包括輸入單元245 (例如,鍵盤以及鼠標(biāo)),以及輸出單元250 (例如,監(jiān)視器以及打印機(jī))。網(wǎng)絡(luò)適配器255被用來將計(jì)算機(jī)連接到網(wǎng)絡(luò)(圖中未示出)。橋單元260將系統(tǒng)總線205連接到本地總線225。每一微處理器210和橋單元260都可以作為請(qǐng)求訪問系統(tǒng)總線205以便傳輸信息的主代理(master agent)來操作。判優(yōu)器265管理對(duì)系統(tǒng)總線205的訪問的允許,帶有相互排斥。在圖3A-圖3F中示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的應(yīng)用的示例性情形。從圖3A開始,通用虛擬設(shè)備305 (安裝在一個(gè)或多個(gè)用戶機(jī)上,圖中未示出)包括三個(gè)虛擬機(jī)VMa、VMb和VMc。虛擬機(jī)VMa包括兩個(gè)軟件組件SWa和SWb (每一個(gè)軟件組件都包括操作系統(tǒng)或者應(yīng)用程序);軟件組件SWa處于級(jí)別L2,軟件組件SWb處于級(jí)別L4 (例如,通過它們的版本和/或發(fā)行來定義)。而虛擬機(jī)VMb包括級(jí)別LI處的軟件組件SWc,級(jí)別L5處的軟件組件SWd,以及級(jí)別L3處的軟件組件SWe。最后,虛擬機(jī)VMc包括級(jí)別L3處的軟件組件SWf,級(jí)別L2處的軟件組件SWg。在根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案中,虛擬設(shè)備305的維護(hù)是由維護(hù)描述符310驅(qū)動(dòng)的(例如,當(dāng)提供虛擬設(shè)備的更新時(shí),從發(fā)布它的虛擬設(shè)備的提供商機(jī)器中檢索)。維護(hù)描述符310包括應(yīng)該被更新到新級(jí)別的軟件組件的列表(一般包括其修復(fù)問題,解決安全性問題和/或添加進(jìn)一步功能的升級(jí))。在所涉及的示例中,維護(hù)描述符310表示軟件組件SWa應(yīng)該被更新到級(jí)別L3,軟件組件SWd應(yīng)該被更新到級(jí)別L5,以及軟件組件SWf應(yīng)該被更新到級(jí)別L4。移到圖3B,對(duì)于在維護(hù)描述符310中所指示的每一個(gè)軟件組件,確定虛擬設(shè)備305中一即,在它被安裝在其中的虛擬機(jī)上一的其當(dāng)前級(jí)別(例如,通過在其虛擬機(jī)上運(yùn)行在維護(hù)描述符310中所指示的相應(yīng)的發(fā)現(xiàn)命令)。在此情況下,操作確定軟件組件SWa處于級(jí)別L2,軟件組件SWd處于級(jí)別L5,而軟件組件SWf處于級(jí)別L3?,F(xiàn)在參考圖3C,根據(jù)相應(yīng)的當(dāng)前級(jí)別(如上面所發(fā)現(xiàn)的)以及新級(jí)別(如在維護(hù)描述符310中所指示的)一例如,當(dāng)當(dāng)前級(jí)別不同于新級(jí)別時(shí)一之間的比較,確定虛擬設(shè)備305中的應(yīng)該實(shí)際被更新的(舊)軟件組件。在所涉及的示例中,軟件組件SWa應(yīng)該被從級(jí)別L2更新到級(jí)別L3,以及軟件組件SWf應(yīng)該被從級(jí)別L3更新到級(jí)別L4 ;相反,軟件組件SWd不需要執(zhí)行任何動(dòng)作,因?yàn)樗呀?jīng)在所希望的級(jí)別L5處。如圖3D所示,虛擬設(shè)備305被克隆為虛擬設(shè)備315—在下文中,被稱為當(dāng)前虛擬設(shè)備305和克隆的虛擬設(shè)備315,以彼此區(qū)別(例如,通過請(qǐng)求托管相應(yīng)的虛擬機(jī)的用戶機(jī)器的虛擬機(jī)監(jiān)控程序熱克隆它們)。
繼續(xù)到圖3E,在克隆的虛擬設(shè)備315中,每一要被更新的軟件組件(即,軟件組件Sffa和SWf )都被置于所希望的級(jí)別(即,對(duì)于軟件組件SWa,級(jí)別L3,以及對(duì)于軟件組件SWf,級(jí)別L4) 一例如,通過下載相應(yīng)的維護(hù)包并將它們應(yīng)用到相應(yīng)的虛擬機(jī)。此時(shí),參見圖3F,當(dāng)前虛擬設(shè)備305被替換為(更新的)克隆的虛擬設(shè)備315 (軟件組件SWa和SWf現(xiàn)在分別處于級(jí)別L3和L4)。上文所描述的根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案具有一般適用性;具體而言,此技術(shù)不與虛擬設(shè)備的任何建模方案關(guān)聯(lián),以便它可以被應(yīng)用于任何虛擬設(shè)備(甚至在它們不基于任何模型的情況下)。此外,虛擬設(shè)備的維護(hù)現(xiàn)在基于它們的安裝的實(shí)際狀態(tài)(考慮可能已經(jīng)被應(yīng)用到其上的任何可能的手動(dòng)更新)。具體而言,這避免了無用的維護(hù)操作(當(dāng)一些軟件組件已經(jīng)根據(jù)需要被更新時(shí)),它還可去除將使虛擬設(shè)備進(jìn)入不一致狀態(tài)的不希望有的手動(dòng)更新。所提出的技術(shù)縮短了虛擬設(shè)備在其維護(hù)期間的停機(jī)時(shí)間。實(shí)際上,更新現(xiàn)在被應(yīng)用于克隆的虛擬設(shè)備,而當(dāng)前虛擬設(shè)備可以同時(shí)被維護(hù)一一般需要的其關(guān)閉只用于將它替換為克隆的虛擬設(shè)備(一旦應(yīng)用了所希望的更新)。轉(zhuǎn)到圖4,示出了表示可以被用來實(shí)現(xiàn)根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案的主要軟件模塊的角色的協(xié)作圖示。這些軟件模塊被利用附圖標(biāo)記400表示為一個(gè)整體。當(dāng)程序正在運(yùn)行時(shí),信息(程序和數(shù)據(jù))通常存儲(chǔ)在硬盤中,并被(至少部分地)加載到相應(yīng)的(虛擬或物理)機(jī)的工作存儲(chǔ)器中。程序最初例如從DVD-ROM安裝到每一硬盤上。具體而言,圖形描述了軟件模塊的靜態(tài)結(jié)構(gòu)以及它們的動(dòng)態(tài)行為(通過一系列交換消息,每一個(gè)交換消息都表不相應(yīng)的動(dòng)作,以序列號(hào)前面帶有符號(hào)“A”來表不)。具體而言,虛擬設(shè)備的維護(hù)由維護(hù)機(jī)器405 (運(yùn)行維護(hù)管理器,下面將詳細(xì)描述)來管理;維護(hù)機(jī)器405包括(通過網(wǎng)絡(luò),圖中未示出)連接到部署了虛擬設(shè)備(圖中只示出了一個(gè))的提供商機(jī)器110以及其中安裝了虛擬設(shè)備(圖中只示出了一個(gè))的用戶機(jī)器115的物理或虛擬機(jī)。維護(hù)機(jī)器405存儲(chǔ)包括每一個(gè)虛擬設(shè)備的部署描述符410 (通過相應(yīng)的虛擬設(shè)備標(biāo)識(shí)符來標(biāo)識(shí)一例如,全局唯一標(biāo)識(shí)符,或GUID)的儲(chǔ)存庫(kù),該儲(chǔ)存庫(kù)在其控制下安裝在用戶機(jī)器115上一例如,符合開放虛擬化格式(OVF)規(guī)范。每當(dāng)提供每一虛擬設(shè)備的新級(jí)別時(shí),在相應(yīng)的提供商機(jī)器110上發(fā)布一個(gè)或多個(gè)維護(hù)包415以及維護(hù)描述符420。每一維護(hù)包415都包括用來更新虛擬設(shè)備的相應(yīng)軟件組件的文件。維護(hù)描述符420包括用于處理虛擬設(shè)備的更新的信息(如下面所描述)。具體而言,維護(hù)描述符420包括虛擬設(shè)備的虛擬設(shè)備標(biāo)識(shí)符,等于相應(yīng)的部署描述符410中所包含的那個(gè)。此外,維護(hù)描述符420包括虛擬設(shè)備的新級(jí)別的指示(例如,對(duì)于其版本Nv以及發(fā)行Nr,以形式Nv. Nr)。然后,維護(hù)描述符420包括虛擬設(shè)備的所有軟件組件的列表(例如,其操作系統(tǒng)以及應(yīng)用程序),每一個(gè)軟件組件都通過軟件組件被安裝在其中的虛擬機(jī)的名稱以及虛擬機(jī)標(biāo)識(shí)符來標(biāo)識(shí)。對(duì)于每一個(gè)軟件組件,維護(hù)描述符420表示其新級(jí)別一例如,對(duì)于其版本Nv以及發(fā)行Nr,也是以形式Nv. Nr。然后,維護(hù)描述符420包括要用于發(fā)現(xiàn)軟件組件的當(dāng)前級(jí)別的發(fā)現(xiàn)命令(或更多),相應(yīng)的維護(hù)包的下載地址,一組(一個(gè)或多個(gè))要用于在相應(yīng)的虛擬機(jī)上應(yīng)用維護(hù)包的更新命令,以及一組(一個(gè)或多個(gè))要用于驗(yàn)證在應(yīng)用維護(hù)包之后驗(yàn)證虛擬設(shè)備的正確性的驗(yàn)證命令(如下面所描述)。維護(hù)管理器的監(jiān)視器425周期性地(例如,每天晚上)從相應(yīng)的部署描述符410提取虛擬設(shè)備標(biāo)識(shí)符以及每一虛擬設(shè)備的維護(hù)地址(動(dòng)作“Al.提取”)。然后,監(jiān)視器425對(duì)于虛擬設(shè)備,驗(yàn)證是否有新維護(hù)描述符420可用(在相應(yīng)的維護(hù)地址處);例如,此結(jié)果可以通過向維護(hù)地址提交相應(yīng)的查詢來實(shí)現(xiàn)一該查詢包括虛擬設(shè)備標(biāo)識(shí)符以及最后一個(gè)維護(hù)描述符的級(jí)別,如果有的話,它們已經(jīng)應(yīng)用于同一個(gè)虛擬設(shè)備,如監(jiān)視器425記錄的(動(dòng)作“A2.監(jiān)視”)。當(dāng)有新維護(hù)描述符420可用于任何虛擬設(shè)備時(shí)(S卩,其級(jí)別高于其最后一個(gè)維護(hù)描述符的一個(gè),或者沒有維護(hù)描述符應(yīng)用于其)一例如,如在返回到相應(yīng)的查詢的響應(yīng)中所指示的一監(jiān)視器425將此維護(hù)描述符下載到維護(hù)機(jī)器405上,其中,它用附圖標(biāo)記430來表示(動(dòng)作“A3.下載”)。然后,維護(hù)描述符430被維護(hù)管理器的發(fā)現(xiàn)器435訪問。對(duì)于維護(hù)描述符430中所指示的每一個(gè)軟件組件,發(fā)現(xiàn)器435提取相應(yīng)的名稱、虛擬機(jī)標(biāo)識(shí)符以及發(fā)現(xiàn)命令(動(dòng)作“A4.提取”)。然后,發(fā)現(xiàn)器435在用戶機(jī)器115上安裝的虛擬設(shè)備(用附圖標(biāo)記440來表示)的相應(yīng)的虛擬機(jī)(通過其虛擬機(jī)標(biāo)識(shí)符來表示)上執(zhí)行每一發(fā)現(xiàn)命令,以便發(fā)現(xiàn)相應(yīng)的軟件組件的當(dāng)前級(jí)別。例如,發(fā)現(xiàn)命令可以包括當(dāng)被提交時(shí)直接返回軟件組件的當(dāng)前級(jí)別的查詢;可另選地,發(fā)現(xiàn)命令可以包括必須從其虛擬機(jī)中檢索的軟件組件的簽名的指示。發(fā)現(xiàn)器435將虛擬設(shè)備440的所有軟件組件(每一個(gè)軟件組件都通過其名稱以及虛擬機(jī)標(biāo)識(shí)符來標(biāo)識(shí))的當(dāng)前級(jí)別保存到發(fā)現(xiàn)列表445中(動(dòng)作“A5.發(fā)現(xiàn)”)。維護(hù)管理器的比較器450訪問維護(hù)描述符430以及發(fā)現(xiàn)列表445。比較器450比較虛擬設(shè)備440 (通過相同名稱以及虛擬機(jī)標(biāo)識(shí)符來標(biāo)識(shí))的每一軟件組件的當(dāng)前級(jí)別(來自發(fā)現(xiàn)列表445)以及新級(jí)別(來自維護(hù)描述符430),以便確定虛擬設(shè)備440中的實(shí)際需要更新的軟件組件。對(duì)于其新級(jí)別不同于其當(dāng)前級(jí)別的每一個(gè)(舊)軟件組件,比較器450將相應(yīng)的名稱以及虛擬機(jī)標(biāo)識(shí)符添加到更新列表455中(動(dòng)作“A6.比較”)。如此,由于始終驗(yàn)證虛擬設(shè)備440的所有軟件組件,因此可以確定虛擬設(shè)備440所需的任何類型的更新;具體而言,這確保虛擬設(shè)備 始終被置于一致狀態(tài)(例如,去除任何不希望有的手動(dòng)更新)。如果更新列表455是空的,則在虛擬設(shè)備440上不需要執(zhí)行任何動(dòng)作(由于所有其軟件組件都已經(jīng)在所希望的級(jí)別)。相反,必須更新虛擬設(shè)備440的一個(gè)或多個(gè)軟件組件。在此情況下,要應(yīng)用于虛擬設(shè)備440的更新的摘要(例如,表示要被更新的每一軟件組件的名稱以及虛擬機(jī)標(biāo)識(shí)符,以及其當(dāng)前級(jí)別以及新級(jí)別)被通知給系統(tǒng)管理員;如果系統(tǒng)管理員批準(zhǔn)更新,則他/她調(diào)度它們的應(yīng)用(立即或者稍后)。—旦到達(dá)更新的調(diào)度時(shí)間,維護(hù)管理器的下載器460就訪問維護(hù)描述符430以及更新列表455。對(duì)于更新列表455中所指示的每一個(gè)軟件組件,下載器460從維護(hù)描述符430中提取相應(yīng)的下載器地址(動(dòng)作“A7.提取”)。然后,下載器460將軟件組件的維護(hù)包415從其下載地址下載到維護(hù)機(jī)405上,其中,它用附圖標(biāo)記465來表示(動(dòng)作“AS.下載”)。在克隆虛擬設(shè)備440之前下載所有維護(hù)包465確保此操作盡可能最遲地執(zhí)行(以便最小化在應(yīng)用維護(hù)包465期間可能向其應(yīng)用的任何數(shù)據(jù)更改)。此時(shí),維護(hù)管理器的更新器470將(當(dāng)前)虛擬設(shè)備440克隆到(克隆的)虛擬設(shè)備475中;例如,此結(jié)果可以通過請(qǐng)求用戶機(jī)115的虛擬機(jī)監(jiān)控程序來熱克隆其虛擬機(jī)來實(shí)現(xiàn)一即,無需關(guān)閉它們,以便避免停止相應(yīng)的服務(wù)(例如,如http://smkelly. live journal.com/66017, html 處的 “Take a hot clone of a virtual machine in ESX server” 或http://vmetc. com/2008/05/26/cloning-a-running-virtual-machine-using-the-service-console/ 處的 “Cloning a running Virtual Machine using the Service Console,,所描述,此處包括了其完整的描述作為參考)。克隆的虛擬設(shè)備475連接到與當(dāng)前虛擬設(shè)備440的網(wǎng)絡(luò)分離的維護(hù)網(wǎng)絡(luò)(例如,虛擬局域網(wǎng),或VLAN),以便避免任何沖突(動(dòng)作“A9.克隆”)。對(duì)于更新列表455中所指示的每一個(gè)軟件組件,更新器470從維護(hù)描述符430中提取相應(yīng)的更新命令(動(dòng)作“A10.提取”)。然后,更新器470在相應(yīng)的虛擬機(jī)上應(yīng)用所有維護(hù)包465,以將相應(yīng)的軟件組件帶到它們的新級(jí)別。為此目的,更新器470首先打開克隆的虛擬設(shè)備475。對(duì)于更新列表455中所指示的每一個(gè)軟件組件,更新器470將其維護(hù)包465復(fù)制到克隆的虛擬設(shè)備475中的相應(yīng)的虛擬機(jī)。然后,更新器470在此虛擬機(jī)上執(zhí)行相應(yīng)的更新命令。例如,更新命令包括用于安裝維護(hù)包465的安裝命令,以及用于配置相應(yīng)的軟件組件以及其虛擬機(jī)的配置命令,以及可能的任何其他相關(guān)軟件組件和虛擬機(jī)(動(dòng)作“All.更新”)。一旦所有維護(hù)包465都已經(jīng)被應(yīng)用于克隆的虛擬設(shè)備475,維護(hù)管理器的驗(yàn)證器480就從維護(hù)描述符430中提取更新列表465中所指示的每一軟件組件的驗(yàn)證命令(動(dòng)作“A12.提取”)。然后,驗(yàn)證器480在克隆的虛擬設(shè)備475中的其虛擬機(jī)上執(zhí)行每一軟件組件的驗(yàn)證命令,以確定相應(yīng)的維護(hù)包465的應(yīng)用的正確性。此時(shí),驗(yàn)證器480關(guān)閉克隆的虛擬設(shè)備475 (動(dòng)作“A13.驗(yàn)證”)。如果驗(yàn)證的結(jié)果對(duì)于所有軟件組件都是肯定的(意思是說,克隆的虛擬設(shè)備475都已經(jīng)正確地被置于其新級(jí)別),則更新器470關(guān)閉當(dāng)前虛擬設(shè)備440。然后,更新器470確定在其克隆之后已經(jīng)被應(yīng)用于當(dāng)前虛擬設(shè)備440的任何數(shù)據(jù)更改一例如,通過掃描從克隆的時(shí)間開始的相應(yīng)記錄(動(dòng)作“A14.掃描”)。更新器470將這些數(shù)據(jù)更改應(yīng)用到克隆的虛擬設(shè)備475,以便將它與當(dāng)前虛擬設(shè)備440重新同步(動(dòng)作“A15.同步”)。這會(huì)防止在更新過程中丟失在當(dāng)前虛擬設(shè)備440中可能已經(jīng)發(fā)生的對(duì)本地?cái)?shù)據(jù)的任何改變(以及克隆的虛擬設(shè)備475無法覺察到的)。此時(shí),更新器470將當(dāng)前虛擬設(shè)備440替換為克隆的虛擬設(shè)備475 (更新到其新級(jí)別,并與當(dāng)前虛擬設(shè)備440的數(shù)據(jù)更改同步);為此目的,當(dāng)前虛擬設(shè)備440被丟棄,而克隆的虛擬設(shè)備475通過將其維護(hù)網(wǎng)絡(luò)切換到在生產(chǎn)中使用的實(shí)際網(wǎng)絡(luò)而被打開(動(dòng)作“A16a.替換”)。相反,當(dāng)在克隆的虛擬設(shè)備475中檢測(cè)到一個(gè)或多個(gè)錯(cuò)誤時(shí),驗(yàn)證器480丟棄克隆的虛擬設(shè)備475,以便繼續(xù)無縫地使用當(dāng)前虛擬設(shè)備440 (動(dòng)作“A16b.丟棄”);如此,更新過程以事務(wù)式的方式執(zhí)行,如果在更新過程中檢測(cè)到錯(cuò)誤的話,將已經(jīng)被應(yīng)用(到克隆的虛擬設(shè)備475)的更新回滾。自然,為了滿足本地和特定要求,所屬技術(shù)領(lǐng)域的專業(yè)人員可以將許多邏輯和/或物理修改和更改應(yīng)用于上文所描述的解決方案。更具體而言,雖然是以一定程度的細(xì)節(jié)并參考其一個(gè)或多個(gè)實(shí)施例來描述此解決方案的,但是應(yīng)該理解,在形式和細(xì)節(jié)方面的各種省略、替換和變化以及其他實(shí)施例都是可以的。具體而言,本發(fā)明的不同的實(shí)施例甚至可以在沒有前面的描述中所闡述的具體細(xì)節(jié)(諸如數(shù)值)的情況下實(shí)施,以提供對(duì)本發(fā)明的全面理解;相反,還省略或簡(jiǎn)化了已知的特征,以便不致以不需要的細(xì)節(jié)使描述模糊。此外,很明確,參考所公開的解決方案的任何實(shí)施例所描述的特定元素和/或方法步驟可以作為一般設(shè)計(jì)選擇被包含在任何其他實(shí)施例中。在任何情況下,術(shù)語“包括”,“具有”和“包含”(以及其任何形式)應(yīng)該是開放的,非詳盡的含義(即,不僅限于所列舉的項(xiàng)目),術(shù)語“基于”,“依賴于”,“根據(jù)”(以及其任何形式)應(yīng)該是非排他性的關(guān)系(即,涉及可能的進(jìn)一步的變化),術(shù)語“一個(gè)”應(yīng)該是一個(gè)或多個(gè)項(xiàng)目(除非明確地指出)。更一般而言,本發(fā)明的一個(gè)實(shí)施例提供了用于維護(hù)虛擬設(shè)備的方法。如果相同解決方案利用等效的方法來實(shí)現(xiàn)(通過使用帶有更多步驟或其一些部分的相同功能的類似的步驟,去除非基本的一些步驟,或添加進(jìn)一步的可選步驟),類似的考慮也適用;此外,各步驟可以以不同的順序,同時(shí)或以交錯(cuò)的方式(至少部分地)執(zhí)行。虛擬設(shè)備可以包括任何數(shù)量(一個(gè)或多個(gè))的任何軟件組件(例如,操作系統(tǒng)、應(yīng)用程序、配置文件等等),每一個(gè)軟件組件都安裝在相應(yīng)的虛擬機(jī)上。在本發(fā)明的一個(gè)實(shí)施例中,提供了維護(hù)描述符;維護(hù)描述符包括待更新到其上的軟件組件中的(至少)每一個(gè)的新級(jí)別的任何指示(例如,它們的版本和/或發(fā)行編號(hào)或日期)。對(duì)于在所述維護(hù)描述符中所指示的每一個(gè)軟件組件,確定安裝在所述相應(yīng)的虛擬機(jī)上的所述軟件組件的當(dāng)前級(jí)別。根據(jù)所述相應(yīng)的當(dāng)前級(jí)別以及新級(jí)別之間的比較,確定要被實(shí)際更新的所述軟件組件的一組舊軟件組件??寺√摂M設(shè)備(優(yōu)選地,以熱方式一即使不排除任何其他克隆模式)。然后,通過將每一舊軟件組件更新到相應(yīng)的新級(jí)別,來更新克隆的虛擬設(shè)備。此時(shí),將虛擬設(shè)備替換為更新的克隆的虛擬設(shè)備。在本發(fā)明的一個(gè)實(shí)施例中,維護(hù)描述符包括所有所述軟件組件中的每一個(gè)軟件組件的新級(jí)別的指示。在任何情況下,不排除其中維護(hù)描述符只包括已經(jīng)相對(duì)于虛擬設(shè)備的前一級(jí)別(或更多)而更新的軟件組件的基本實(shí)現(xiàn)。在本發(fā)明的一個(gè)實(shí)施例中,虛擬設(shè)備與包括虛擬設(shè)備的設(shè)備標(biāo)識(shí)符的設(shè)備描述符相關(guān)聯(lián),以及維護(hù)描述符與所述設(shè)備標(biāo)識(shí)符相關(guān)聯(lián)。在此情況下,通過從設(shè)備描述符中提取設(shè)備標(biāo)識(shí)符,并檢索與設(shè)備標(biāo)識(shí)符相關(guān)聯(lián)的維護(hù)描述符,來檢索維護(hù)描述符。然而,如果以不同的方式來定義設(shè)備標(biāo)識(shí)符,或者如果以任何其他方式來檢索維護(hù)描述符(甚至獨(dú)立于相應(yīng)的虛擬設(shè)備的任何設(shè)備描述符),類似的考慮也適用。在本發(fā)明的一個(gè)實(shí)施例中,設(shè)備描述符還包括維護(hù)描述符的維護(hù)地址;在此情況下,通過從維護(hù)地址下載維護(hù)描述符來檢索它??闪磉x地,沒有任何東西阻止從已經(jīng)從其中部署了相應(yīng)的虛擬設(shè)備的相同地址下載維護(hù)描述符。在本發(fā)明的一個(gè)實(shí)施例中,通過監(jiān)視維護(hù)地址,以了解比已經(jīng)成功地在所述虛擬設(shè)備上應(yīng)用的最后一個(gè)維護(hù)描述符更新的新維護(hù)描述符的可用性,來檢索維護(hù)描述符。可另選地,可以以任何其他方式(例如,簡(jiǎn)單地通過其時(shí)間戳)來定義維護(hù)描述符的級(jí)別;此外,還可以手動(dòng)觸發(fā)對(duì)維護(hù)描述符的可用性的驗(yàn)證。在本發(fā)明的一個(gè)實(shí)施例中,對(duì)于維護(hù)描述符中所指示的每一個(gè)軟件組件,一組(一個(gè)或多個(gè))發(fā)現(xiàn)命令被包括在維護(hù)描述符內(nèi);在此情況下,對(duì)于維護(hù)描述符中所指示的每一個(gè)軟件組件,確定安裝在相應(yīng)的虛擬機(jī)上的軟件組件的當(dāng)前級(jí)別的步驟包括從維護(hù)描述符中提取相應(yīng)的發(fā)現(xiàn)命令,以及在相應(yīng)的虛擬機(jī)上執(zhí)行相應(yīng)的發(fā)現(xiàn)命令。類似的考慮適用于任何其他發(fā)現(xiàn)命令(例如,簡(jiǎn)單地基于相應(yīng)的文件的時(shí)間戳);在任何情況下,也可以以不同的方式來發(fā)現(xiàn)軟件組件的當(dāng)前級(jí)別,甚至獨(dú)立于維護(hù)描述符(例如,通過外部掃描儀)。在本發(fā)明的一個(gè)實(shí)施例中,對(duì)于維護(hù)描述符中所指示的每一個(gè)軟件組件,下載地址被包括在維護(hù)描述符內(nèi);在此情況下,更新克隆的虛擬設(shè)備包括從維護(hù)描述符中提取相應(yīng)的下載地址,從相應(yīng)的下載地址下載舊軟件組件的維護(hù)包,以及在相應(yīng)的虛擬機(jī)上應(yīng)用維護(hù)包??闪磉x地,沒有任何東西阻止從已經(jīng)從其中檢索了相應(yīng)的維護(hù)描述符的相同地址下載維護(hù)包;此外,也可以以不同的方式來更新軟件組件(例如,通過利用軟件分發(fā)應(yīng)用)。在本發(fā)明的一個(gè)實(shí)施例中,對(duì)于維護(hù)描述符中所指示的每一個(gè)軟件組件,一組(一個(gè)或多個(gè))更新命令被包括在維護(hù)描述符內(nèi);在此情況下,更新克隆的虛擬設(shè)備包括從維護(hù)描述符中提取相應(yīng)的更新命令,以及在相應(yīng)的虛擬機(jī)上執(zhí)行相應(yīng)的更新命令。如果提供了類似的和/或替換的更新命令(例如,用于準(zhǔn)備軟件組件),則類似的考慮也適用;然而,也可以通過簡(jiǎn)單地啟動(dòng)相應(yīng)的維護(hù)包,來更新軟件組件,無需任何附加命令。在本發(fā)明的一個(gè)實(shí)施例中,該方法還包括驗(yàn)證更新的克隆的虛擬設(shè)備的正確性,以及響應(yīng)于肯定的驗(yàn)證結(jié)果,允許虛擬設(shè)備替換為更新的克隆的虛擬設(shè)備,或否則丟棄更新的克隆的虛擬設(shè)備。然而,不排除手動(dòng)驗(yàn)證更新的克隆的虛擬設(shè)備的基本實(shí)現(xiàn)。在本發(fā)明的一個(gè)實(shí)施例中,對(duì)于維護(hù)描述符中所指示的每一個(gè)軟件組件,一組(一個(gè)或多個(gè))驗(yàn)證命令被包括在維護(hù)描述符內(nèi);在此情況下,驗(yàn)證更新的克隆的虛擬設(shè)備的正確性包括從維護(hù)描述符中提取相應(yīng)的驗(yàn)證命令,以及在相應(yīng)的虛擬機(jī)上執(zhí)行相應(yīng)的驗(yàn)證命令。如上所述,也可以以不同的方式來驗(yàn)證更新的克隆的虛擬設(shè)備,甚至獨(dú)立于維護(hù)描述符(例如,通過其內(nèi)置的測(cè)試功能一甚至簡(jiǎn)單地在整體虛擬設(shè)備的級(jí)別)。在本發(fā)明的一個(gè)實(shí)施例中,該方法還包括在克隆虛擬設(shè)備的步驟和將虛擬設(shè)備替換為更新的克隆的虛擬設(shè)備的步驟之間確定已經(jīng)應(yīng)用于虛擬設(shè)備的本地?cái)?shù)據(jù)的數(shù)據(jù)更改,以及將數(shù)據(jù)更改應(yīng)用到已替換的虛擬設(shè)備。如果以不同的方式(例如,通過微分過程)執(zhí)行重新同步,則類似的考慮也適用;在任何情況下,也可以在更新過程中簡(jiǎn)單地防止對(duì)本地?cái)?shù)據(jù)的任何改變(以便避免其重新同步的需求)。本發(fā)明的另一實(shí)施例提供計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括用于當(dāng)在數(shù)據(jù)處理系統(tǒng)上執(zhí)行計(jì)算機(jī)程序時(shí)導(dǎo)致數(shù)據(jù)處理系統(tǒng)(例如,用戶機(jī)器)執(zhí)行上文所描述的方法的步驟的代碼裝置。本發(fā)明的另一實(shí)施例提供包括具體化計(jì)算機(jī)程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)(例如,DVD-ROM)的計(jì)算機(jī)程序產(chǎn)品;該計(jì)算機(jī)程序包括可直接加載到數(shù)據(jù)處理系統(tǒng)的工作存儲(chǔ)器中從而配置數(shù)據(jù)處理系統(tǒng)執(zhí)行相同方法的代碼裝置。在任何情況下,所提出的解決方案可以被實(shí)現(xiàn)為獨(dú)立的模塊,或者甚至直接實(shí)現(xiàn)在每一虛擬設(shè)備中。應(yīng)該容易地看出,還可以將相同解決方案部署為通過網(wǎng)絡(luò)訪問的服務(wù)。如果以不同的方式構(gòu)建程序(該程序可以被用來實(shí)現(xiàn)本發(fā)明的每一實(shí)施例),或者如果提供額外的模塊或功能,類似的考慮也適用;同樣,存儲(chǔ)器結(jié)構(gòu)可以是其他類型,或者可以替換為相當(dāng)?shù)膶?shí)體(不一定包括物理存儲(chǔ)介質(zhì))。程序可以呈現(xiàn)適合于被任何數(shù)據(jù)處理系統(tǒng)所使用的或與其一起使用的任何形式(例如,在虛擬機(jī)內(nèi)),從而配置系統(tǒng)以執(zhí)行所希望的操作;具體而言,程序可以是外部或常駐軟件、固件,或微代碼(目標(biāo)代碼或源代碼的形式一一例如,待編譯的或者解釋的)的形式。此外,還可以在任何計(jì)算機(jī)可使用的介質(zhì)上提供程序(具體而言,作為非瞬時(shí)介質(zhì)上的制品);介質(zhì)可以是適合于包含、存儲(chǔ)、傳遞、傳播或傳輸程序的任何元件。例如,介質(zhì)可以是電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體類型;這樣的介質(zhì)的示例有固定盤(其中可以預(yù)先加載程序),可移動(dòng)磁盤、帶、卡、線路、光纖、無線連接、網(wǎng)絡(luò)、廣播波等等。在任何情況下,根據(jù)本發(fā)明的一個(gè)實(shí)施例的解決方案有助于甚至利用硬件結(jié)構(gòu)(例如,集成在半導(dǎo)體材料的芯片中),或利用被適當(dāng)?shù)鼐幊袒蛞詣e的方式配置的軟件和硬件的組合來實(shí)現(xiàn)。本發(fā)明的另一實(shí)施例提供包括用于執(zhí)行上文所描述的方法的步驟的裝置的系統(tǒng)(例如,用戶機(jī)器)。如果系統(tǒng)具有不同的結(jié)構(gòu)或包括相當(dāng)?shù)慕M件,或者它具有其他操作的特征,則類似的考慮也適用。在任何情況下,其每個(gè)組件都可以被分成更多元件,或者兩個(gè)或更多組件可以結(jié)合為單個(gè)元件;此外,每一組件都可以被復(fù)制以支持相應(yīng)的操作并行地執(zhí)行。還指出(除非特別指明),不同的組件之間的任何交互一般不需要是連續(xù)的,它可以是直接的或者通過一個(gè)或多個(gè)中介間接的。
權(quán)利要求
1.一種用于維護(hù)包括一組軟件組件的虛擬設(shè)備的方法(Al-A16b),每一個(gè)組件都安裝在相應(yīng)的虛擬機(jī)上,所述方法包括下列步驟 收集(A1-A3)包括要被更新到其上的至少每一個(gè)所述軟件組件的新級(jí)別的指示的維護(hù)描述符, 對(duì)于在所述維護(hù)描述符中所指示的每一個(gè)軟件組件,確定(A4-A5)安裝在所述相應(yīng)的虛擬機(jī)上的所述軟件組件的當(dāng)前級(jí)別, 根據(jù)所述相應(yīng)的當(dāng)前級(jí)別和新級(jí)別之間的比較,確定(A6)要被實(shí)際更新的所述軟件組件的一組舊軟件組件, 克隆(A9)所述虛擬設(shè)備, 通過將其每一舊軟件組件更新到所述新級(jí)別,來更新(A7-A8,AlO-1 I)所述克隆的虛擬設(shè)備,以及 通過所述更新的克隆的虛擬設(shè)備,來替換(A16a)所述虛擬設(shè)備。
2.根據(jù)權(quán)利要求1所述的方法(Al-A16b),其中,所述維護(hù)描述符包括所有所述軟件組件中的每一個(gè)軟件組件的所述新級(jí)別的指示。
3.根據(jù)權(quán)利要求1或2所述的方法(Al-A16b),其中,所述虛擬設(shè)備與包括所述虛擬設(shè)備的設(shè)備標(biāo)識(shí)符的設(shè)備描述符相關(guān)聯(lián),以及所述維護(hù)描述符與所述設(shè)備標(biāo)識(shí)符相關(guān)聯(lián),檢索(A1-A3)維護(hù)描述符的步驟包括 從所述設(shè)備描述符提取(Al)所述設(shè)備標(biāo)識(shí)符,以及 檢索(A2-A3)與所述設(shè)備標(biāo)識(shí)符相關(guān)聯(lián)的所述維護(hù)描述符。
4.根據(jù)權(quán)利要求1到3中任一權(quán)利要求所述的方法(Al-A16b),其中,所述設(shè)備描述符還包括所述維護(hù)描述符的維護(hù)地址,檢索(A1-A3)維護(hù)描述符的步驟包括 從所述維護(hù)地址下載(A3)所述維護(hù)描述符。
5.根據(jù)權(quán)利要求4所述的方法(Al-A16b),其中,檢索(A1-A3)維護(hù)描述符的步驟包括 監(jiān)視(A2)所述維護(hù)地址,以了解比已經(jīng)成功地在所述虛擬設(shè)備上應(yīng)用的最后一個(gè)維護(hù)描述符更新的新維護(hù)描述符的可用性。
6.根據(jù)權(quán)利要求1到5中任一權(quán)利要求所述的方法(Al-A16b),其中,對(duì)于所述維護(hù)描述符中所指示的每一個(gè)軟件組件,一組發(fā)現(xiàn)命令被包括在所述維護(hù)描述符內(nèi),對(duì)于所述維護(hù)描述符中所指示的每一個(gè)軟件組件,所述確定(A4-A5)安裝在所述相應(yīng)的虛擬機(jī)上的所述軟件組件的當(dāng)前級(jí)別的步驟包括 從所述維護(hù)描述符提取(A4)所述相應(yīng)的發(fā)現(xiàn)命令,以及 在所述相應(yīng)的虛擬機(jī)上執(zhí)行(A5)所述相應(yīng)的發(fā)現(xiàn)命令。
7.根據(jù)權(quán)利要求1到6中任一權(quán)利要求所述的方法(Al-A16b),其中,對(duì)于所述維護(hù)描述符中所指示的每一個(gè)軟件組件,下載地址被包括在所述維護(hù)描述符內(nèi),通過將所述克隆的虛擬設(shè)備的每一舊軟件組件更新到所述新級(jí)別來更新(A7-A8,A10-11)所述克隆的虛擬設(shè)備的步驟包括 從所述維護(hù)描述符提取(A7)所述相應(yīng)的下載地址, 從所述相應(yīng)的下載地址下載(AS)所述舊軟件組件的維護(hù)包,以及 在所述相應(yīng)的虛擬機(jī)上應(yīng)用(AlO-All)所述維護(hù)包。
8.根據(jù)權(quán)利要求1到7中任一權(quán)利要求所述的方法(Al-A16b),其中,對(duì)于所述維護(hù)描述符中所指示的每一個(gè)軟件組件,一組更新命令被包括在所述維護(hù)描述符內(nèi),通過將所述克隆的虛擬設(shè)備的每一舊軟件組件更新到所述新級(jí)別來更新(A7-A8,A10-11)所述克隆的虛擬設(shè)備的步驟包括 從所述維護(hù)描述符提取(AlO)所述相應(yīng)的更新命令,以及 在所述相應(yīng)的虛擬機(jī)上執(zhí)行(Al I)所述相應(yīng)的更新命令。
9.根據(jù)權(quán)利要求1到8中任一權(quán)利要求所述的方法(Al-A16b),還包括下列步驟 驗(yàn)證(A12-A13)所述更新的克隆的虛擬設(shè)備的正確性,以及 響應(yīng)于所述驗(yàn)證的肯定結(jié)果,允許(A16a)所述虛擬設(shè)備替換為所述更新的克隆的虛擬設(shè)備,或否則丟棄(A16b)所述更新的克隆的虛擬設(shè)備。
10.根據(jù)權(quán)利要求9所述的方法(Al-A16b),其中,對(duì)于所述維護(hù)描述符中所指示的每一個(gè)軟件組件,一組驗(yàn)證命令被包括在所述維護(hù)描述符內(nèi),驗(yàn)證(A12-A13 )所述更新的克隆的虛擬設(shè)備的正確性的步驟包括 從所述維護(hù)描述符提取(A12)所述相應(yīng)的驗(yàn)證命令,以及 在所述相應(yīng)的虛擬機(jī)上執(zhí)行(A13)所述相應(yīng)的驗(yàn)證命令。
11.根據(jù)權(quán)利要求1到10中任一權(quán)利要求所述的方法(Al-A16b),還包括下列步驟 在所述克隆(A9)所述虛擬設(shè)備的步驟和所述將所述虛擬設(shè)備替換(A16a)為所述更新的克隆的虛擬設(shè)備的步驟之間確定(A14)要應(yīng)用于所述虛擬設(shè)備的本地?cái)?shù)據(jù)的數(shù)據(jù)更改,以及 將所述數(shù)據(jù)更改應(yīng)用(A15)到所述被替換的虛擬設(shè)備。
12.—種包括用于執(zhí)行根據(jù)權(quán)利要求1到11中任一權(quán)利要求所述的方法(Al-A16b)的步驟的裝置(400)的系統(tǒng)(I 15)。
全文摘要
本發(fā)明涉及用于虛擬設(shè)備的模型驅(qū)動(dòng)的維護(hù)的方法和系統(tǒng)。提出用于維護(hù)包括一組軟件組件的虛擬設(shè)備的解決方案,每一個(gè)軟件組件都安裝在相應(yīng)的虛擬機(jī)上。方法(A1-A16b)包括提供(A1-A3)包括要被更新到其上的至少每一個(gè)軟件組件的新級(jí)別的指示的維護(hù)描述符,對(duì)于在所述維護(hù)描述符中所指示的每一個(gè)軟件組件,確定(A4-A5)安裝在相應(yīng)的虛擬機(jī)上的軟件組件的當(dāng)前級(jí)別,根據(jù)相應(yīng)的當(dāng)前級(jí)別和新級(jí)別之間的比較,確定(A6)要被實(shí)際更新的軟件組件的一組舊軟件組件,克隆(A9)所述虛擬設(shè)備,通過將其每一舊軟件組件更新到新級(jí)別,來更新(A7-A8,A10-11)克隆的虛擬設(shè)備,以及通過更新的克隆的虛擬設(shè)備,來替換(A16a)所述虛擬設(shè)備。
文檔編號(hào)G06F9/455GK103034523SQ20121036666
公開日2013年4月10日 申請(qǐng)日期2012年9月28日 優(yōu)先權(quán)日2011年10月5日
發(fā)明者M·阿爾塞斯, G·西亞諾, A·D·科克, L·皮切蒂, M·米列斯基 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司