專利名稱:管理軟件產(chǎn)品虛擬鏡像的先決條件的方法、計(jì)算機(jī)程序和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及以虛擬設(shè)備的形式分發(fā)的軟件產(chǎn)品的安裝;更具體地,本發(fā)明涉及管理先決軟件,包括管理當(dāng)部署軟件產(chǎn)品虛擬設(shè)備時(shí)需要的先決軟件的許可認(rèn)可的方法、計(jì)算機(jī)程序和系統(tǒng)。
背景技術(shù):
虛擬設(shè)備是包含至少一個(gè)軟件應(yīng)用和至少一個(gè)虛擬機(jī)(VM)的虛擬機(jī)鏡像。虛擬設(shè)備可直接安裝于在物理機(jī)上工作的虛擬機(jī)監(jiān)視器上。虛擬設(shè)備是一種部署軟件應(yīng)用的新方式。從軟件包裝和分發(fā)觀點(diǎn)看,軟件開發(fā)人員能夠創(chuàng)建單一平臺(tái),降低軟件開發(fā)和管理的成本和復(fù)雜性。通過電子下載或者物理分發(fā),以文件的形式,把虛擬設(shè)備提供給用戶或消費(fèi)者。通過分發(fā)虛擬設(shè)備,軟件應(yīng)用廠商向最終用戶提供統(tǒng)包軟件服務(wù)。注意,新的虛擬設(shè)備更復(fù)雜。然而,目前的虛擬設(shè)備只包含單個(gè)VM,對(duì)現(xiàn)代企業(yè)來說,應(yīng)用模擬(model)具有多層的面向服務(wù)體系結(jié)構(gòu)(SOA),每一層包含一個(gè)或多個(gè)機(jī)器。從而,單一的VM模擬不足以分發(fā)多層服務(wù),從而虛擬設(shè)備將由更多的VM構(gòu)成。例如,典型的web應(yīng)用可由三層組成:實(shí)現(xiàn)表現(xiàn)邏輯的web層,實(shí)現(xiàn)業(yè)務(wù)邏輯的應(yīng)用服務(wù)器層,和后端數(shù)據(jù)庫層。簡單的實(shí)現(xiàn)會(huì)將其分成3個(gè)虛擬機(jī),每一層一個(gè)虛擬機(jī)。這樣,應(yīng)用可從單一物理主機(jī)的小部分?jǐn)U展到3個(gè)物理主機(jī)。復(fù)雜虛擬設(shè)備安裝的一個(gè)問題起源于軟件產(chǎn)品廠家可能提供其中待安裝在虛擬環(huán)境中的產(chǎn)品的鏡像需要另外的先決軟件的虛擬設(shè)備的事實(shí)。準(zhǔn)確地說,這些“先決軟件”包含一個(gè)軟件程序或者聚集軟件程序和數(shù)據(jù)的軟件包。這些先決軟件/軟件包不是和產(chǎn)品本身一起提供的,而是在利用傳統(tǒng)的安裝方法安裝產(chǎn)品之前,消費(fèi)者必須下載并安裝這些先決軟件/軟件包(還接受相關(guān)的許可條款和條件)。另一方面,如果廠家決定提供其中連同另外需要的先決軟件包/軟件一起,安裝了產(chǎn)品的虛擬設(shè)備,當(dāng)消費(fèi)者把鏡像部署在其虛擬環(huán)境中時(shí),這會(huì)導(dǎo)致不遵守對(duì)應(yīng)的先決軟件包/軟件許可的情形。美國專利申請(qǐng)US20090300604公開一種通過使用戶能夠關(guān)于虛擬設(shè)備,選擇包含在原始儲(chǔ)存庫中的軟件,并顯示在對(duì)應(yīng)軟件包的安裝過程中,可能出現(xiàn)的一組許可沖突,在虛擬機(jī)安裝過程中解決軟件依存性的方法。典型情形是實(shí)例化虛擬機(jī),并取決于“待安裝的SW”,也安裝恰當(dāng)?shù)陌惭b時(shí)“SW從屬物”。這完全是一種不考慮虛擬環(huán)境的一般處理
發(fā)明內(nèi)容
本發(fā)明 的目的是提供一種創(chuàng)建軟件產(chǎn)品虛擬設(shè)備的方法、計(jì)算機(jī)程序和系統(tǒng),所述軟件產(chǎn)品虛擬設(shè)備允許用戶在其虛擬環(huán)境中部署該虛擬設(shè)備期間,確保激活該軟件產(chǎn)品所必需的所有軟件的遵從安裝。
按照權(quán)利要求1,上述目的是利用一種從軟件產(chǎn)品虛擬鏡像分發(fā)包,在通過安裝至少一個(gè)虛擬盤實(shí)例化的虛擬機(jī)上安裝軟件產(chǎn)品的先決軟件的方法實(shí)現(xiàn)的,所述方法包括在引導(dǎo)時(shí),自動(dòng)執(zhí)行以下步驟:
-讀取在軟件產(chǎn)品虛擬鏡像的分發(fā)包中提供的軟件產(chǎn)品的先決軟件的列表;
-測(cè)試在虛擬機(jī)中是否未安裝先決軟件,如果未安裝,則在讀取在軟件產(chǎn)品虛擬鏡像的分發(fā)包中提供的儲(chǔ)存庫中的先決軟件位置之后,取回(420)先決軟件;
-讀取取回的先決軟件的許可文本,并向用戶顯示(430)所述許可文本;
-依據(jù)用戶對(duì)許可文本的認(rèn)可,安裝取回的先決軟件;
-重復(fù)前三個(gè)步驟,直到安裝了所有先決軟件為止。
按照權(quán)利要求2,上述目的也可用權(quán)利要求1的方法實(shí)現(xiàn),所述方法還包括:如果先決軟件被指示成已安裝在虛擬機(jī)中,則跳過關(guān)于該先決軟件的后續(xù)取回、讀取、顯示和安裝步驟。
按照權(quán)利要求3,上述目的也可用權(quán)利要求1或2的方法實(shí)現(xiàn),所述方法還包括:如果先決軟件未被指示成已安裝在虛擬機(jī)中,則通過讀取所有已取回的先決軟件的列表中能夠從其取回先決軟件的位置,來測(cè)試所述先決軟件是否還未被取回,其中在安裝取回的先決軟件的每個(gè)步驟之后,用新取回的先決軟件更新所述列表。
按照權(quán)利要求4,上述目的也可用權(quán)利要求1-3任意之一的方法實(shí)現(xiàn),其中讀取許可文本的步驟和顯示許可文本的步驟包括:與遠(yuǎn)程服務(wù)器(340)通信以要求由所述遠(yuǎn)程服務(wù)器進(jìn)行所述讀取步驟和顯示步驟的初始步驟。
按照權(quán)利要求5,上述目的也可用權(quán)利要求1-4任意之一的方法實(shí)現(xiàn),其中讀取取回的先決軟件的許可文本的步驟包括:從取回的先決軟件中提取許可文本的初始步驟。
按照權(quán)利要求6,上述·目的也可用權(quán)利要求1-4任意之一的方法實(shí)現(xiàn),其中讀取取回的先決軟件的許可文本的步驟包含:從在軟件產(chǎn)品虛擬鏡像的分發(fā)包中提供的許可文件中,讀取許可文本。
按照權(quán)利要求7,上述目的也可用權(quán)利要求1-6任意之一的方法實(shí)現(xiàn),所述方法還包括以下在先步驟:
-在開發(fā)人員虛擬機(jī)上安裝軟件產(chǎn)品及其先決軟件;
-在開發(fā)人員虛擬機(jī)中測(cè)試所述軟件產(chǎn)品;
-從開發(fā)人員虛擬機(jī)中除去(240)所述軟件產(chǎn)品的所有先決軟件;
-創(chuàng)建開發(fā)人員虛擬機(jī)的至少一個(gè)虛擬盤;
-創(chuàng)建當(dāng)安裝所述至少一個(gè)虛擬盤時(shí)將被激活的引導(dǎo)程序;
-創(chuàng)建(220)軟件產(chǎn)品的先決軟件的列表;
-創(chuàng)建包含能夠從其取回先決軟件的位置的儲(chǔ)存庫;
-創(chuàng)建軟件產(chǎn)品虛擬鏡像分發(fā)包,所述分發(fā)包包括所述至少一個(gè)虛擬盤、軟件產(chǎn)品的先決軟件的列表、和包含能夠從其取回先決軟件的位置的儲(chǔ)存庫。
按照權(quán)利要求8,上述目的也可用權(quán)利要求7的方法實(shí)現(xiàn),所述方法還包括:創(chuàng)建包含軟件產(chǎn)品先決軟件的許可文本的許可文件,并將其加入軟件產(chǎn)品虛擬鏡像分發(fā)包中。
按照權(quán)利要求9,上述目的也可用權(quán)利要求1-8任意之一的方法實(shí)現(xiàn),其中如果先決軟件未被安裝,并且不能從先決軟件位置讀取先決軟件,則需要先決軟件的手動(dòng)安裝,從而處理被停止。
按照權(quán)利要求10,上述目的也可用權(quán)利要求1-9任意之一的方法實(shí)現(xiàn),其中先決軟件取回步驟包括:讀取在分發(fā)包位置中提供的儲(chǔ)存庫中的因特網(wǎng)地址,以及安裝步驟包括從所述因特網(wǎng)地址下載先決軟件。
按照權(quán)利要求11,上述目的也可用一種系統(tǒng)實(shí)現(xiàn),所述系統(tǒng)包含適合于實(shí)現(xiàn)按照前述權(quán)利要求任意之一的方法的各個(gè)步驟的裝置。
按照權(quán)利要求12,上述目的也可用一種計(jì)算機(jī)程序?qū)崿F(xiàn),所述計(jì)算機(jī)程序包含當(dāng)在計(jì)算機(jī)上執(zhí)行所述計(jì)算機(jī)程序時(shí),實(shí)現(xiàn)按照權(quán)利要求1-9任意之一的方法的各個(gè)步驟的指令。
為了確保在部署用于在其虛擬環(huán)境中安裝軟件產(chǎn)品的虛擬設(shè)備時(shí),消費(fèi)者不會(huì)安裝“不可安裝的”先決軟件,可從軟件產(chǎn)品開發(fā)人員準(zhǔn)備的VM鏡像本身中除去先決軟件,并按照遵守許可的方式重新安裝所述先決軟件。在引導(dǎo)時(shí),自動(dòng)啟動(dòng)的特定激活階段內(nèi),只有當(dāng)用戶接受先決軟件的許可時(shí),才進(jìn)行先決軟件的安裝;隨后只有當(dāng)所有的先決軟件都被安裝時(shí),軟件產(chǎn)品才會(huì)被激活。
圖1圖解說明按照本發(fā)明的優(yōu)選實(shí)施例,設(shè)置其中創(chuàng)建虛擬設(shè)備的準(zhǔn)備站點(diǎn)的系統(tǒng)環(huán)境;
圖2是準(zhǔn)備虛擬設(shè)備的鏡像以分發(fā)軟件產(chǎn)品的方法的流程圖3圖解說明在消費(fèi)者虛擬環(huán)境中,部署軟件產(chǎn)品的虛擬設(shè)備的系統(tǒng)環(huán)境;
圖4是按照本發(fā)明的優(yōu)選實(shí)施例的,在消費(fèi)者虛擬環(huán)境中部署軟件產(chǎn)品的虛擬設(shè)備的方法的流程圖。
具體實(shí)施方式
圖1圖解說明按照本發(fā)明的優(yōu)選實(shí)施例,設(shè)置其中創(chuàng)建虛擬設(shè)備的準(zhǔn)備站點(diǎn)的系統(tǒng)環(huán)境。為了創(chuàng)建軟件產(chǎn)品的虛擬設(shè)備的鏡像,軟件廠家可具有管理虛擬機(jī)環(huán)境的虛擬管理服務(wù)器(110),和其上能夠安裝虛擬機(jī)的準(zhǔn)備站點(diǎn)服務(wù)器(100)。例如,作為虛擬機(jī)監(jiān)視器的主機(jī)環(huán)境(125)可以是管理虛擬機(jī)(VM)、客戶0S(130)、及其虛擬盤(115,120)的VMware (VMware是Vmware公司的商標(biāo))虛擬機(jī)監(jiān)視器。
鏡像準(zhǔn)備管理器利用文件儲(chǔ)存庫(145)保存建立軟件產(chǎn)品的虛擬設(shè)備所必需的所有文件。
虛擬機(jī)管理服務(wù)器(110)利用其API與虛擬機(jī)監(jiān)視器通信,所述API例如是VMware虛擬機(jī)監(jiān)視器的VIX。API例如用于把文件從儲(chǔ)存庫復(fù)制到客戶OS準(zhǔn)備站點(diǎn)??梢越换サ鼗蛘咄ㄟ^為了自動(dòng)進(jìn)行相同的操作而提交的腳本,使用API命令。
圖2是準(zhǔn)備虛擬設(shè)備的鏡像以分發(fā)軟件產(chǎn)品的方法的流程圖。通過把實(shí)現(xiàn)API命令的腳本用于與虛擬機(jī)監(jiān)視器的通信,可以自動(dòng)進(jìn)行所述鏡像準(zhǔn)備。
第一步驟(200)包含在準(zhǔn)備站點(diǎn)安裝將作為虛擬設(shè)備分發(fā)的軟件產(chǎn)品。軟件產(chǎn)品被安裝在客戶OS準(zhǔn)備站點(diǎn)虛擬機(jī)上,它是在虛擬機(jī)監(jiān)視器的主機(jī)環(huán)境之上激活的虛擬機(jī)。
先決軟件/軟件包被下載并安裝(210)在相同的客戶OS虛擬機(jī)上,從而能夠?qū)崿F(xiàn)軟件產(chǎn)品的運(yùn)行。這些先決軟件/軟件包可以是從例如因特網(wǎng)下載的開源軟件包。它們可以是例如修改AIX (AIX是IBM公司的商標(biāo))或Linux (Linux是Linus Torvals在美國和其他國家的商標(biāo))標(biāo)準(zhǔn)操作系統(tǒng)服務(wù)的.rpm文件。開發(fā)人員創(chuàng)建所謂的外部組件先決條件(ECP)的先決軟件/軟件包的列表;ECP列表包含為了運(yùn)行軟件產(chǎn)品而需要安裝的先決軟件/軟件包的列表。在消費(fèi)者站點(diǎn)安裝軟件產(chǎn)品時(shí),使用該列表。同樣由開發(fā)人員創(chuàng)建并且在消費(fèi)者站點(diǎn)安裝軟件產(chǎn)品時(shí)使用的附加信息是取回先決軟件/軟件包的先決軟件/軟件包信息(例如,下載先決軟件/軟件包的URL地址),引用虛擬鏡像中的所有軟件的儲(chǔ)存庫,和可選的在安裝之前,消費(fèi)者必須接受的預(yù)先存在的軟件/軟件包的許可文本(220)。在客戶OS準(zhǔn)備虛擬機(jī)上測(cè)試(230)軟件產(chǎn)品。這種測(cè)試可以是運(yùn)行自動(dòng)測(cè)試套件。假定無任何錯(cuò)誤地進(jìn)行了測(cè)試套件,那么停止(240)產(chǎn)品運(yùn)行。從虛擬機(jī)中除去(250)在ECP列表中列舉的先決軟件/軟件包工件(artifact)。從客戶OS準(zhǔn)備站點(diǎn)虛擬機(jī)創(chuàng)建虛擬鏡像(它可包含一個(gè)或多個(gè)虛擬盤,例如一個(gè)虛擬盤用于操作系統(tǒng),一個(gè)虛擬盤用于程序產(chǎn)品);虛擬鏡像不包含任何先決軟件。通常,當(dāng)從虛擬設(shè)備實(shí)例化虛擬機(jī)時(shí),在引導(dǎo)時(shí)自動(dòng)開始軟件程序的激活。為了防止消費(fèi)者自動(dòng)開始軟件產(chǎn)品的運(yùn)行,首次引導(dǎo)時(shí)的產(chǎn)品自動(dòng)啟動(dòng)(通常在OS虛擬盤中)被禁止。改為在虛擬鏡像中創(chuàng)建和增加特定的激活程序(下面說明)。當(dāng)用戶將部署虛擬設(shè)備(250)以便安裝預(yù)先存在的軟件/軟件包時(shí),將在程序產(chǎn)品本身的激活之前,啟動(dòng)所述激活程序。結(jié)合圖4的說明,將更好地描述激活程序,圖4`描述在消費(fèi)者虛擬環(huán)境中,部署虛擬設(shè)備的方法的步驟。
`
在步驟260,建立虛擬設(shè)備軟件包,以便分發(fā)給消費(fèi)者。開發(fā)人員把安裝所必需的附加信息包含在虛擬設(shè)備分發(fā)包中,比如:-描述什么被安裝在虛擬系統(tǒng)上的儲(chǔ)存庫:在位于消費(fèi)者站點(diǎn)的激活階段中,當(dāng)取回先決軟件/軟件包時(shí),讀取所述儲(chǔ)存庫。由于先決軟件/軟件包已被開發(fā)人員從虛擬機(jī)中除去,因此當(dāng)創(chuàng)建虛擬設(shè)備時(shí),不存在在該儲(chǔ)存庫引用的軟件產(chǎn)品先決軟件/軟件包。在激活階段內(nèi),激活程序利用所述儲(chǔ)存庫,檢查軟件產(chǎn)品所必需的先決軟件/軟件包是否被安裝,如稍后參考圖4的說明在步驟(410)中所述。如果儲(chǔ)存庫是OS儲(chǔ)存庫,比如Windows (Windows是微軟公司的商標(biāo))OS儲(chǔ)存庫或者Linux RPM,它被包含在虛擬盤中。-ECP ( 一種給定產(chǎn)品的先決軟件/軟件包的列表)-可以取回先決軟件/軟件包的位置;所述位置例如可以是下載軟件/軟件包的URL地址。-可選的,產(chǎn)品先決軟件/軟件包的許可文本的列表,如果在虛擬盤的創(chuàng)建期間,已收集了這些文本的話;在優(yōu)選實(shí)施例中,將在利用激活程序,安裝先決軟件/軟件包期間,即時(shí)取回許可文本。-用戶安全訪問虛擬設(shè)備信息的安全特征。激活階段必需的所述附加信息可以包含在虛擬盤中,或者可在虛擬設(shè)備分發(fā)包中單獨(dú)提供。不能被改變的ECP包含在虛擬鏡像中。諸如先決軟件/軟件包的位置之類的其它附加信息優(yōu)選地不包含在虛擬盤中,因?yàn)樗鼈兛稍诩せ铍A段期間被用戶修改:例如,在用戶安裝過程中可從一個(gè)其它位置取回先決軟件/軟件包的情形中,用戶可改變所述位置。例如,可在消費(fèi)者站點(diǎn)的儲(chǔ)存庫中,找到所有的先決軟件/軟件包的情形中,用戶可用儲(chǔ)存庫文件替換在創(chuàng)建虛擬鏡像時(shí)由開發(fā)人員輸入的URL地址。
開發(fā)人員可以利用用戶接口填寫ECP和如上所述的涉及先決軟件/軟件包的其它信息。
可以使用適用于虛擬設(shè)備軟件包準(zhǔn)備的任何格式??梢允褂瞄_放虛擬化格式(OVF)規(guī)范,它是一種正在分布式管理任務(wù)組(DMTF)協(xié)會(huì)內(nèi)開發(fā)的標(biāo)準(zhǔn)。OVF分發(fā)包包含OVF描述符XML文件(也稱為OVF信包),OVF描述符XML文件可包括安裝所必需的附加信息(ECP、許可信息等);它還包含當(dāng)訪問OVF包和虛擬盤鏡像時(shí),用于安全性的OVF清單和證明文件。
圖3圖解說明在消費(fèi)者虛擬環(huán)境中,部署軟件產(chǎn)品的虛擬設(shè)備的系統(tǒng)環(huán)境。
用于安裝和激活軟件應(yīng)用的消費(fèi)者系統(tǒng)環(huán)境(300)可包括服務(wù)器,在所述服務(wù)器上,作為諸如VMware虛擬機(jī)監(jiān)視器之類的虛擬機(jī)監(jiān)視器的主機(jī)環(huán)境(325)管理虛擬機(jī)。已按照?qǐng)D2中說明的方法準(zhǔn)備的虛擬設(shè)備存在于兩個(gè)虛擬盤中,一個(gè)具有OS鏡像(310),一個(gè)具有程序產(chǎn)品數(shù)據(jù)(320)。
通常啟動(dòng)虛擬機(jī)的步驟包括首先通過載入虛擬盤來實(shí)例化虛擬機(jī),和隨后激活虛擬機(jī),這是利用通常位于操作系統(tǒng)虛擬盤上的引導(dǎo)程序(hot strap)自動(dòng)完成的。為了部署包含軟件產(chǎn)品的虛擬設(shè)備,消費(fèi)者首先通過安裝虛擬設(shè)備的虛擬盤來實(shí)例化虛擬機(jī)。部署按照?qǐng)D2中說明的步驟創(chuàng)建的虛擬設(shè)備的消費(fèi)者實(shí)例化虛擬機(jī),并且代替使引導(dǎo)程序自動(dòng)激活軟件程序,可 啟動(dòng)激活程序。
加載的激活程序(335)包括許可軟件實(shí)體激活器(LSEA)、許可軟件實(shí)體注冊(cè)表(LSER)和許可軟件實(shí)體用戶接口(LSEU)。LSEA組件是允許先決軟件/軟件包的遵從安裝和激活的主要組件:它在激活階段,檢查先決軟件/軟件包是否已被安裝,并且只有當(dāng)用戶接受許可時(shí),才允許安裝。LSER組件是包含之前已取回的或者在激活階段內(nèi)安裝的先決軟件/軟件包的列表、它們與軟件產(chǎn)品的關(guān)聯(lián)、和能夠取回先決軟件的地址的注冊(cè)表。每次安裝新的先決軟件/軟件包時(shí),該先決軟件/軟件包被登記在LSER中。LSER包含對(duì)在軟件產(chǎn)品安裝的激活階段中安裝的先決軟件/軟件包的引用。如果LSER被不止一個(gè)系統(tǒng)(物理機(jī)或虛擬機(jī))共享,LSER包含在激活階段之前安裝的軟件/軟件包,因?yàn)橄嗤能浖?軟件包可以是不止一個(gè)軟件產(chǎn)品的先決軟件/軟件包,并且可能已為這些其它軟件產(chǎn)品被取回。LSEU用戶接口能夠在激活階段內(nèi)的任何時(shí)候,取回并向用戶顯示待安裝的產(chǎn)品的先決軟件/軟件包的許可文本。激活程序還利用ECP和在虛擬設(shè)備分發(fā)包中提供的對(duì)安裝有用的附加信息,比如下載先決軟件/軟件包的位置。在圖4的說明中,將結(jié)合所有這些組件和信息在部署虛擬設(shè)備時(shí)它們?cè)诩せ畛绦蛑械氖褂?,更多地說明這些組件和信息。
在虛擬設(shè)備部署的激活階段中,加載(335)并在VM中執(zhí)行(330)激活程序。如前所述,ECP和LSEA組件與特定軟件產(chǎn)品的安裝和激活相關(guān),不過可視情況不從虛擬盤(320,335)使用,而是從虛擬機(jī)通過主機(jī)環(huán)境(325)的虛擬機(jī)監(jiān)視器訪問的一個(gè)遠(yuǎn)程服務(wù)器(340)使用可從分發(fā)的虛擬鏡像獲得的LSEU和LSER。從而,用戶可視情況把在消費(fèi)者站點(diǎn)被許多系統(tǒng)共用的服務(wù)器(340)(在虛擬機(jī)或物理機(jī)上)用于軟件產(chǎn)品的安裝/激活;該服務(wù)器可使可安裝的先決軟件/軟件包可用,因?yàn)樗鼈兪遣恢挂环N軟件產(chǎn)品的先決軟件/軟件包。在這種情況下,LSER和LSEU組件被其上安裝和激活軟件程序的不止一個(gè)系統(tǒng)(物理機(jī)或虛擬機(jī))使用。消費(fèi)者利用來自主機(jī)環(huán)境的虛擬機(jī)監(jiān)視器API (或者作為行命令或者通過腳本)啟動(dòng)虛擬機(jī),并對(duì)接所述虛擬機(jī),以修改文件等。圖4是按照本發(fā)明的優(yōu)選實(shí)施例的,在如圖3中說明的消費(fèi)者虛擬環(huán)境中,部署軟件產(chǎn)品的虛擬設(shè)備的方法的流程圖。假定已按照?qǐng)D2的流程圖中的步驟,創(chuàng)建了虛擬設(shè)備。圖4的流程圖說明和虛擬設(shè)備一起分發(fā)的激活程序的執(zhí)行步驟(410,450)。用戶首先安裝(400)虛擬設(shè)備的虛擬盤,例如,一個(gè)虛擬盤用于OS,一個(gè)虛擬盤用于軟件產(chǎn)品。部署虛擬設(shè)備的消費(fèi)者想要在形成主機(jī)環(huán)境的虛擬機(jī)監(jiān)視器之上,啟動(dòng)作為目標(biāo)OS的新虛擬機(jī),和開始在該虛擬機(jī)中的軟件產(chǎn)品的運(yùn)行。一旦安裝了虛擬盤,虛擬機(jī)就被實(shí)例化,并且引導(dǎo)程序開始從虛擬盤,通常從OS虛擬盤開始運(yùn)行。在激活程序由軟件產(chǎn)品廠家在鏡像準(zhǔn)備期間創(chuàng)建,并在引導(dǎo)時(shí)被啟動(dòng)的情況下,并不立即開始軟件產(chǎn)品本身的運(yùn)行,因?yàn)橄葲Q軟件/軟件包從VM鏡像中被除去。激活程序的LSEA主組件改為檢查(410)在已利用虛擬盤安裝實(shí)例化的鏡像中,所有的先決軟件/軟件包是否都被安裝,并且可用。為了進(jìn)行這種檢查,LSEA查看在虛擬設(shè)備軟件包中提供的ECP,所述ECP包含附屬于待激活的產(chǎn)品的所有必需的先決軟件/軟件包的列表,并且首先檢查所有這些必需的先決軟件/軟件包是否還未被消費(fèi)者安裝。這是通過讀取引用所有的安裝軟件的儲(chǔ)存庫進(jìn)行的,所述儲(chǔ)存庫是作為虛擬設(shè)備中的附加信息分發(fā)的,并且可以是OS儲(chǔ)存庫或者獨(dú)立的文件。注意,用戶可能已為另一個(gè)產(chǎn)品安裝,安裝了必需的先決軟件/軟件包,從而對(duì)應(yīng)的儲(chǔ)存庫可能已因所述安裝而被更新。如果所有的先決軟件/軟件包都被安裝并被激活(對(duì)測(cè)試步驟415的回答為是),直接激活產(chǎn)品(轉(zhuǎn)到步驟450)。
如果外部組件先決條件列表未被滿足(對(duì)步驟415的回答為否),優(yōu)選地利用在主機(jī)環(huán)境的控制臺(tái)顯示的消息,向安裝虛擬機(jī)的消費(fèi)者告知缺少先決軟件/軟件包。隨后,必須取回(420)ECP的先決軟件/軟件包。激活程序會(huì)遇到三種情況,以取回先決軟件/軟件包:-激活程序取回在LSER中讀取的地址,以查明已安裝在用戶環(huán)境中的先決軟件/軟件包。-通過讀取和虛擬設(shè)備軟件包(例如,0VF)—起提供的附加信息,激活程序通過取回例如能夠下載先決軟件/軟件包的URL,檢查可從何處取回先決軟件/軟件包。-取回被激活程序跳過,將在稍后由VM用戶執(zhí)行。例如,如果虛擬機(jī)被部署在隔離的環(huán)境中,在任何情況下都不能取回軟件包,或者用于激活虛擬鏡像的虛擬機(jī)監(jiān)視器不允許向鏡像附加任何額外的儲(chǔ)存庫,那么情況就是這樣。這種情況下,結(jié)束激活程序,而不進(jìn)行軟件產(chǎn)品激活(停止)。當(dāng)選擇該選項(xiàng)時(shí),用戶必須自己取回先決軟件/軟件包,和手動(dòng)安裝該先決軟件/軟件包。LSEU從取回的先決軟件/軟件包工件讀取許可(430),向用戶顯示所述許可,并詢問用戶是否接受該許可。如果用戶不接受該許可,則結(jié)束激活程序,而不進(jìn)行軟件產(chǎn)品激活(停止)。在接受未來的安裝之前,用戶必須解決他的許可問題。如果用戶接受許可,LSEA組件安裝先決軟件/軟件包(430)。LSEA隨后用安裝先決軟件/軟件包的位置以及與其它先決軟件/軟件包的關(guān)系和軟件產(chǎn)品關(guān)系,更新LSER(440)。如果不進(jìn)行該步驟,終止激活程序(停止)。
一旦安裝了所有的先決軟件/軟件包,那么最后一步就是激活軟件產(chǎn)品(450)。程序產(chǎn)品的激活需要配置步驟(如果需要的話),和開始已從虛擬機(jī)中的虛擬盤獲得的程序的運(yùn)行的步驟。
應(yīng)注意為了顯示許可文本,以便由安裝虛擬鏡像的用戶認(rèn)可,LSEU組件可從由創(chuàng)建虛擬鏡像的開發(fā)人員提供的許可文件中讀取許可文本,或者LSEU可在激活階段內(nèi),即時(shí)從保存先決軟件/軟件包的位置提取許可文本。
從而,在虛擬機(jī)激活階段內(nèi),由開發(fā)人員從虛擬鏡像中除去的先決軟件/軟件包被自動(dòng)重新安裝,但是是按照遵從的方式重新安裝的。
通過利用基于虛擬機(jī)監(jiān)視器的API的腳本,能夠自動(dòng)進(jìn)行鏡像創(chuàng)建和軟件產(chǎn)品安裝的 所有步驟。
權(quán)利要求
1.一種從軟件產(chǎn)品虛擬鏡像分發(fā)包,在通過安裝至少一個(gè)虛擬盤實(shí)例化的虛擬機(jī)上安裝軟件產(chǎn)品的先決軟件的方法,所述方法包括在引導(dǎo)時(shí),自動(dòng)執(zhí)行以下步驟: -讀取在軟件產(chǎn)品虛擬鏡像的分發(fā)包中提供的軟件產(chǎn)品的先決軟件的列表; -測(cè)試在虛擬機(jī)中是否未安裝先決軟件,如果未安裝,則在讀取在軟件產(chǎn)品虛擬鏡像的分發(fā)包中提供的儲(chǔ)存庫中的先決軟件位置之后,取回(420)先決軟件; -讀取取回的先決軟件的許可文本,并向用戶顯示(430)所述許可文本; -依據(jù)用戶對(duì)許可文本的認(rèn)可,安裝取回的先決軟件; -重復(fù)前三個(gè)步驟,直到安裝了所有先決軟件為止。
2.按照權(quán)利要求1所述的方法,還包括:如果先決軟件被指示成已安裝在虛擬機(jī)中,則跳過關(guān)于該先決軟件的后續(xù)取回、讀取、顯示和安裝步驟。
3.按照權(quán)利要求1或2所述的方法,還包括:如果先決軟件未被指示成已安裝在虛擬機(jī)中,則通過讀取所有已取回的先決軟件的列表中能夠從其取回先決軟件的位置,來測(cè)試所述先決軟件是否還未被取回,其中在安裝取回的先決軟件的每個(gè)步驟之后,用新取回的先決軟件更新所述列表。
4.按照權(quán)利要求1-3任意之一所述的方法,其中,讀取許可文本的步驟和顯示許可文本的步驟包括:與遠(yuǎn)程服務(wù)器(340)通信以要求由所述遠(yuǎn)程服務(wù)器進(jìn)行所述讀取步驟和顯示步驟的初始步驟。
5.按照權(quán)利要求1-4任意之一所述的方法,其中,讀取取回的先決軟件的許可文本的步驟包括:從取回的先決軟件中提取許可文本的初始步驟。
6.按照權(quán)利要 求1-4任意之一所述的方法,其中讀取取回的先決軟件的許可文本的步驟包含:從在軟件產(chǎn)品虛擬鏡像的分發(fā)包中提供的許可文件中,讀取許可文本。
7.按照權(quán)利要求1-6任意之一所述的方法,還包括以下在先步驟: -在開發(fā)人員虛擬機(jī)上安裝軟件產(chǎn)品及其先決軟件; -在開發(fā)人員虛擬機(jī)中測(cè)試所述軟件產(chǎn)品; -從開發(fā)人員虛擬機(jī)中除去(240)所述軟件產(chǎn)品的所有先決軟件; -創(chuàng)建開發(fā)人員虛擬機(jī)的至少一個(gè)虛擬盤; -創(chuàng)建當(dāng)安裝所述至少一個(gè)虛擬盤時(shí)將被激活的引導(dǎo)程序; -創(chuàng)建(220)軟件產(chǎn)品的先決軟件的列表(220); -創(chuàng)建包含能夠從其取回先決軟件的位置的儲(chǔ)存庫; -創(chuàng)建軟件產(chǎn)品虛擬鏡像分發(fā)包,所述分發(fā)包包括所述至少一個(gè)虛擬盤、軟件產(chǎn)品的先決軟件的列表、和包含能夠從其取回先決軟件的位置的儲(chǔ)存庫。
8.按照權(quán)利要求7所述的方法,還包括: 創(chuàng)建包含軟件產(chǎn)品先決軟件的許可文本的許可文件,并將其加入軟件產(chǎn)品虛擬鏡像分發(fā)包中。
9.按照權(quán)利要求1-8任意之一所述的方法,其中,如果先決軟件未被安裝,并且不能從先決軟件位置讀取先決軟件,則需要先決軟件的手動(dòng)安裝,從而處理被停止。
10.按照權(quán)利要求1-9任意之一所述的方法,其中,先決軟件取回步驟包括:讀取在分發(fā)包位置中提供的儲(chǔ)存庫中的因特網(wǎng)地址,以及安裝步驟包括從所述因特網(wǎng)地址下載先決軟件。
11.一種系統(tǒng),所述系統(tǒng)包含適合于實(shí)現(xiàn)按照前述權(quán)利要求任意之一所述的方法的各個(gè)步驟的裝置。
12.—種計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包含當(dāng)在計(jì)算機(jī)上執(zhí)行所述計(jì)算機(jī)程序時(shí),實(shí)現(xiàn)按照權(quán)利要求1-9任意之一所 述的方法的各個(gè)步驟的指令。
全文摘要
本發(fā)明涉及一種在激活虛擬機(jī)時(shí),遵從地管理作為虛擬設(shè)備分發(fā)的軟件產(chǎn)品的先決軟件/軟件包的方法、計(jì)算機(jī)程序和系統(tǒng)。提供一種準(zhǔn)備其中已從虛擬鏡像中除去先決軟件的虛擬設(shè)備分發(fā)包的方法。還提供一種在消費(fèi)者站點(diǎn),以虛擬機(jī)的形式部署虛擬設(shè)備的方法,只有當(dāng)用戶認(rèn)可許可之后,所述方法才在虛擬機(jī)中重新安裝每個(gè)軟件產(chǎn)品先決軟件/軟件包。虛擬設(shè)備分發(fā)包包含具有軟件包和作為引導(dǎo)程序的激活程序的至少一個(gè)虛擬盤,以及某些附加信息,比如軟件產(chǎn)品的先決軟件的列表(ECP)和包含能夠取回先決軟件/軟件包的軟件產(chǎn)品先決軟件/軟件包位置的儲(chǔ)存庫。激活程序還維護(hù)在激活階段之前和在激活階段中,在用戶環(huán)境中安裝的所有先決軟件/軟件包的列表(LSER)。
文檔編號(hào)G06F9/445GK103229142SQ201180056185
公開日2013年7月31日 申請(qǐng)日期2011年11月3日 優(yōu)先權(quán)日2010年11月23日
發(fā)明者A·迪考考克考, L·皮切蒂, G·西亞諾, P·卡維佐諾 申請(qǐng)人:國際商業(yè)機(jī)器公司