專利名稱:分布式構(gòu)建環(huán)境中的軟件映像創(chuàng)建的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例涉及軟件映像創(chuàng)建的領(lǐng)域,尤其涉及第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)軟件映像創(chuàng)建的分布式構(gòu)建環(huán)境。
背景技術(shù):
在典型的操作系統(tǒng)構(gòu)建環(huán)境中,代碼被計(jì)算機(jī)編譯成二進(jìn)制形式。這類環(huán)境無法使用外部資源來生成操作系統(tǒng)運(yùn)行時刻映像。構(gòu)建環(huán)境能夠支持計(jì)算機(jī)內(nèi)部的映像創(chuàng)建,但僅能使用有限的寶貴資源供應(yīng)來滿足最終操作系統(tǒng)映像的創(chuàng)建的需要。例如,一些現(xiàn)有環(huán)境專用并配置一個計(jì)算機(jī)來構(gòu)建特定映像(即,操作系統(tǒng)或應(yīng)用程序)。然而,這類系統(tǒng)效率較低,因?yàn)閷S糜?jì)算機(jī)僅用于構(gòu)建特定映像(如可能一天一次或一天兩次)。由此,每一專用計(jì)算機(jī)在大部分時間都處于空閑狀態(tài)。而且,當(dāng)要創(chuàng)建的不同映像數(shù)增加時,所需要的處理硬件量也隨之增加。例如,如果需要對7個不同產(chǎn)品的6個版本或配置構(gòu)建映像,則需要42個專用計(jì)算機(jī)來構(gòu)建所有的映像。初始硬件、維護(hù)以及對專用機(jī)器的支持的成本是基本的。需要一種能夠使用外部資源來創(chuàng)建軟件映像的系統(tǒng)。此外,還需要一種使用少量構(gòu)建計(jì)算機(jī)來有效地構(gòu)建映像的系統(tǒng)。另外,由于操作系統(tǒng)的安裝和配置通常在終端用戶的計(jì)算機(jī)上執(zhí)行,用戶會遇到延遲和不便。需要一種安裝和配置在映像創(chuàng)建過程中出現(xiàn)的系統(tǒng)。
一些現(xiàn)有系統(tǒng)向客戶計(jì)算機(jī)分配任務(wù)來完成。例如,一些現(xiàn)有系統(tǒng)實(shí)現(xiàn)分布式編譯,其中,客戶計(jì)算機(jī)編譯應(yīng)用程序的一部分,中央服務(wù)器將編譯的部分連接為應(yīng)用程序。在另一示例中,SETI@home項(xiàng)目將任務(wù)分布到客戶計(jì)算機(jī)以分析對外星生物的搜索中的數(shù)據(jù)。然而,在這類系統(tǒng)中,客戶計(jì)算機(jī)并不創(chuàng)建最終產(chǎn)品。而且,這類系統(tǒng)與已安裝的軟件映像的創(chuàng)建無關(guān)。
因此,需要一種用于軟件映像的分布式構(gòu)建環(huán)境的系統(tǒng)來著眼于這些和其它缺點(diǎn)中的一個或多個。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例涉及分布式構(gòu)建環(huán)境。在一個實(shí)施例中,本發(fā)明包括從第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)軟件映像的安裝和配置。在一個形式中,多個服務(wù)器計(jì)算機(jī)定義與軟件映像安裝和配置相關(guān)的作業(yè)。多個客戶與服務(wù)器進(jìn)行通信來標(biāo)識、接受并完成作業(yè)。例如,本發(fā)明的分布式構(gòu)建環(huán)境中的每一客戶計(jì)算機(jī)可以連續(xù)地用來構(gòu)建不同軟件映像。在這一方式下,減少了創(chuàng)建映像所需的客戶計(jì)算機(jī)的數(shù)量。
本發(fā)明提供了一種通過成像來安裝和配置的公用方法。而且,由于安裝和成像可由執(zhí)行構(gòu)建的客戶定制,從而減少了操作系統(tǒng)安裝次數(shù)。原始設(shè)備制造商(OEM)和系統(tǒng)構(gòu)建者可以使用本發(fā)明的分布式成像進(jìn)程在工廠中簡便地修改、創(chuàng)建客戶并對其成像,從而顯著地減少資源消耗和時間。
依照本發(fā)明的一個方面,用于分布式構(gòu)建的系統(tǒng)包括第一計(jì)算機(jī)和第二計(jì)算機(jī)。第一計(jì)算機(jī)維護(hù)作業(yè)的列表。每一作業(yè)具有與已安裝的軟件映像的創(chuàng)建相關(guān)聯(lián)的操作。第二計(jì)算機(jī)從第一計(jì)算機(jī)接受一個作業(yè)并通過執(zhí)行與其關(guān)聯(lián)的操作來執(zhí)行所接受的作業(yè)。
依照本發(fā)明的另一方面,一種方法在分布式構(gòu)建環(huán)境中操作,在分布式構(gòu)建環(huán)境中一個或多個第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)已安裝的軟件映像的創(chuàng)建。由第二計(jì)算機(jī)執(zhí)行的該方法包括從第一計(jì)算機(jī)之一接受作業(yè)。該作業(yè)具有與已安裝的軟件映像的創(chuàng)建相關(guān)聯(lián)的操作。該方法還包括通過執(zhí)行該操作來完成所接受的作業(yè)。完成的作業(yè)代表已安裝的軟件映像。
依照本發(fā)明的再一方面,一種方法在分布式構(gòu)建環(huán)境中操作,在分布式構(gòu)建環(huán)境中第一計(jì)算機(jī)向一個或多個第二計(jì)算機(jī)授權(quán)已安裝的軟件映像的創(chuàng)建。由第一計(jì)算機(jī)執(zhí)行的方法包括維護(hù)作業(yè)列表。每一作業(yè)與已安裝的軟件映像的創(chuàng)建相關(guān)。每一第二計(jì)算機(jī)選擇一項(xiàng)或多項(xiàng)作業(yè)并執(zhí)行所選擇的作業(yè)。
依照本發(fā)明的再一方面,在第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)已安裝的軟件映像的創(chuàng)建的分布式構(gòu)建環(huán)境中存在一種數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)代表與軟件映像的安裝相關(guān)聯(lián)的狀態(tài)。該數(shù)據(jù)結(jié)構(gòu)包括與第二計(jì)算機(jī)相關(guān)聯(lián)的標(biāo)識符。該數(shù)據(jù)結(jié)構(gòu)也包括指示由標(biāo)識符所標(biāo)識的第二計(jì)算機(jī)所執(zhí)行的安裝狀態(tài)的描述符。
依照本發(fā)明的另一方面,在第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)已安裝的軟件映像的創(chuàng)建的分布式構(gòu)建環(huán)境中存在一種數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)儲存在第一計(jì)算機(jī)上。該數(shù)據(jù)結(jié)構(gòu)代表一項(xiàng)或多項(xiàng)作業(yè)。該數(shù)據(jù)結(jié)構(gòu)包括與每一作業(yè)相關(guān)聯(lián)的作業(yè)標(biāo)識符。該數(shù)據(jù)結(jié)構(gòu)還包括定義與作業(yè)標(biāo)識符相關(guān)聯(lián)的由第二計(jì)算機(jī)執(zhí)行來安裝軟件映像的多個操作的腳本。
依照本發(fā)明的再一方面,一種系統(tǒng)提供了一種第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)已安裝的軟件映像的創(chuàng)建的分布式構(gòu)建。該系統(tǒng)包括用于第一計(jì)算機(jī)的列表裝置、用于第二計(jì)算機(jī)的接口裝置以及用于第二計(jì)算機(jī)的安裝裝置。列表裝置維護(hù)作業(yè)列表。每一作業(yè)與所安裝的軟件映像的創(chuàng)建相關(guān)。接口裝置通過列表裝置接受一項(xiàng)由第一計(jì)算機(jī)維護(hù)的作業(yè)。該作業(yè)具有與軟件映像的安裝相關(guān)聯(lián)的操作。安裝裝置通過執(zhí)行該操作來完成通過接口裝置接受的作業(yè)。完成的作業(yè)代表所安裝的軟件映像。
作為選擇,本發(fā)明可以包括各種其它方法和裝置。
其它特性將在后文中部分明確并部分指出。
圖1是客戶/服務(wù)器網(wǎng)絡(luò)系統(tǒng)的示例性實(shí)施例。
圖2是說明依照本發(fā)明的客戶和服務(wù)器之間的通信的示例性結(jié)構(gòu)圖。
圖3是說明使用主服務(wù)器來對所有客戶維護(hù)來自所有服務(wù)器的作業(yè)的示例性結(jié)構(gòu)圖。
圖4是說明依照本發(fā)明的客戶軟件操作的示例性流程圖。
圖5是說明依照本發(fā)明的服務(wù)器軟件操作的示例性流程圖。
圖6是說明客戶計(jì)算機(jī)可訪問的示例性計(jì)算機(jī)可讀媒質(zhì)的結(jié)構(gòu)圖。
圖7是說明服務(wù)器計(jì)算機(jī)可訪問的示例性計(jì)算機(jī)可讀媒質(zhì)的結(jié)構(gòu)圖。
圖8是說明可實(shí)現(xiàn)本發(fā)明的合適計(jì)算系統(tǒng)環(huán)境的一個示例的結(jié)構(gòu)圖。
所有附圖中,相應(yīng)標(biāo)號標(biāo)識相應(yīng)部件。
具體實(shí)施例方式
在一個實(shí)施例中,本發(fā)明包括分布式構(gòu)建環(huán)境,其中一個或多個第一計(jì)算機(jī)向一個或多個第二計(jì)算機(jī)授權(quán)軟件映像的創(chuàng)建(如安裝和配置)。具體地,至少一個服務(wù)器生成要由至少一個分布式客戶完成的成映像工作項(xiàng)目列表(如作業(yè))。該列表在服務(wù)器配置和生成構(gòu)建的環(huán)境的基礎(chǔ)上生成。在創(chuàng)建工作項(xiàng)目列表之后,任一可用的成像客戶機(jī)能夠從任一服務(wù)器選擇并完成工作項(xiàng)目。每一工作項(xiàng)目僅由一個客戶機(jī)選擇并完成??蛻魴C(jī)安裝、配置操作系統(tǒng)并對其成像,然后將最終映像上傳回服務(wù)器。服務(wù)器向客戶機(jī)提供指令(如,通過腳本機(jī)制)來完成作業(yè)。當(dāng)客戶機(jī)完成作業(yè)之后,客戶機(jī)用完成狀態(tài)來更新服務(wù)器。然后客戶機(jī)搜索另一作業(yè)來接受并完成。
本發(fā)明的分布式構(gòu)建環(huán)境包括客戶機(jī)上的最小配置,簡化了客戶機(jī)的重新分配和重新分布。該分布式環(huán)境向任一服務(wù)器分配額外的客戶機(jī)資源。另外,該進(jìn)程是可伸縮的(scalable)。因?yàn)橐粋€成像客戶機(jī)可以創(chuàng)建多個不同的產(chǎn)品映像,因此可以通過添加額外的成像客戶機(jī)來減少構(gòu)建次數(shù)。安裝多個成像客戶機(jī)并配置多個軟件映像顯著地提高了客戶機(jī)資源使用率和效率。例如,現(xiàn)有系統(tǒng)中,如果需要為7個不同的產(chǎn)品的6個版本或配置構(gòu)建映像,則需要42個專用計(jì)算機(jī)來構(gòu)建所有的映像。然而,采用本發(fā)明,單個計(jì)算機(jī)可以接連地構(gòu)建每一映像,由此減少了處理硬件的數(shù)量和成本。
首先參考圖1,結(jié)構(gòu)圖說明了在本發(fā)明的分布式構(gòu)建環(huán)境中使用的客戶機(jī)/服務(wù)器網(wǎng)絡(luò)系統(tǒng)的示例性實(shí)施例。圖1示出了網(wǎng)絡(luò)系統(tǒng)50包括多個服務(wù)器51和客戶機(jī)52。這些計(jì)算機(jī)51、52通過網(wǎng)絡(luò)53采用著名的網(wǎng)絡(luò)化技術(shù)連接,用于高速數(shù)據(jù)通信。因特網(wǎng)是網(wǎng)絡(luò)53的一個示例。服務(wù)器51從大量遠(yuǎn)程網(wǎng)絡(luò)客戶機(jī)53接受請求。服務(wù)器51通過網(wǎng)絡(luò)53向客戶機(jī)52提供包括數(shù)據(jù)在內(nèi)的響應(yīng),然而也可以使用其它的通信方式。本發(fā)明參考服務(wù)器51和客戶機(jī)52來描述,然而發(fā)明人認(rèn)為本發(fā)明在其它網(wǎng)絡(luò)系統(tǒng)中也可操作。也即,本發(fā)明并非局限于圖1所示的客戶機(jī)/服務(wù)器網(wǎng)絡(luò)系統(tǒng)50。例如,本發(fā)明可以在對等網(wǎng)絡(luò)系統(tǒng)中應(yīng)用。
下面參考圖2,示例結(jié)構(gòu)圖說明了依照本發(fā)明的客戶機(jī)52和服務(wù)器51之間的通信。在圖2中,服務(wù)器計(jì)算機(jī)51,如服務(wù)器A和服務(wù)器B,各自與多個客戶計(jì)算機(jī)52,如客戶機(jī)X、客戶機(jī)Y和客戶機(jī)Z進(jìn)行通信,以在分布式構(gòu)建環(huán)境中授權(quán)所安裝的軟件映像的創(chuàng)建。每一服務(wù)器計(jì)算機(jī)51擔(dān)當(dāng)?shù)谝挥?jì)算機(jī),操作以維護(hù)作業(yè)列表。每一作業(yè)與至少一個與已安裝的軟件映像的創(chuàng)建相關(guān)聯(lián)的操作有關(guān)。例如,每一軟件產(chǎn)品可能有一項(xiàng)作業(yè),每一服務(wù)器51可能有多項(xiàng)作業(yè)。每一客戶計(jì)算機(jī)52擔(dān)當(dāng)?shù)诙?jì)算機(jī),操作以從第一計(jì)算機(jī)接受一項(xiàng)作業(yè)并通過執(zhí)行與其關(guān)聯(lián)的操作來完成所接受的作業(yè)。具體地,該操作包括安裝、配置軟件并對其成像。第二計(jì)算機(jī)(如客戶計(jì)算機(jī)52)將已安裝并已配置的軟件映像傳送到第一計(jì)算機(jī)(如服務(wù)器計(jì)算機(jī))。
在一個形式中,服務(wù)器計(jì)算機(jī)51和服務(wù)器軟件組成用于維護(hù)作業(yè)列表的列表裝置202。客戶計(jì)算機(jī)52和客戶機(jī)軟件組成用于從服務(wù)器計(jì)算機(jī)51接受一項(xiàng)作業(yè)的接口裝置204??蛻粲?jì)算機(jī)52和客戶機(jī)軟件也組成用于通過執(zhí)行一個或多個與該作業(yè)相關(guān)聯(lián)的操作來完成所接受的作業(yè)的安裝裝置206。完成的作業(yè)代表已安裝的軟件映像。與列表裝置、接口裝置和安裝裝置相應(yīng)的結(jié)構(gòu)還包括圖示并在這里描述的元件。此外,與配置已安裝的軟件映像的裝置(未示出)相應(yīng)的結(jié)構(gòu)包括客戶機(jī)計(jì)算機(jī)52、客戶機(jī)軟件以及圖示并在這里描述的元件。
下面參考圖3,示例性結(jié)構(gòu)圖說明了使用主服務(wù)器302來維護(hù)來自所有服務(wù)器51的對所有客戶機(jī)52的作業(yè)。在圖3的示例實(shí)施例中,每一客戶計(jì)算機(jī)52輪詢或定位主服務(wù)器302。主服務(wù)器302維護(hù)可用服務(wù)器計(jì)算機(jī)51的列表,并有規(guī)律地(如基于請求或廣播)向每一客戶計(jì)算機(jī)52傳遞該列表??蛻粲?jì)算機(jī)52訪問該列表來找出具有將要授權(quán)并完成的作業(yè)的服務(wù)器51(如服務(wù)器A)。該作業(yè)而后可以通過主服務(wù)器302或者通過服務(wù)器51和客戶機(jī)52之間的對等連接授權(quán)給客戶機(jī)52。在另一實(shí)施例中,客戶計(jì)算機(jī)52與多個主服務(wù)器302的至少一個進(jìn)行通信。
下面參考圖4,示例性流程圖說明了依照本發(fā)明的客戶機(jī)軟件的操作??蛻魴C(jī)軟件包括計(jì)算機(jī)可執(zhí)行指令,用于在402從服務(wù)器51請求作業(yè)、在404接受該作業(yè)并在406通過執(zhí)行該操作來完成所接受的作業(yè)。接受作業(yè)包括接連地與每一服務(wù)器51進(jìn)行通信來標(biāo)識與服務(wù)器51相關(guān)聯(lián)的一項(xiàng)或多項(xiàng)作業(yè)。每一服務(wù)器51在與服務(wù)器51相關(guān)聯(lián)的特定文件(如圖7中的relbuild.xml)中儲存可用作業(yè)的列表??蛻粲?jì)算機(jī)52訪問服務(wù)器51上的特定文件來標(biāo)識可用作業(yè)。在一個形式中,每一服務(wù)器51也儲存與每一作業(yè)相關(guān)聯(lián)并儲存在服務(wù)器51可訪問的媒質(zhì)上的作業(yè)狀態(tài)文件(如圖7中的job_id.xml)??蛻粲?jì)算機(jī)52通過與作業(yè)相關(guān)聯(lián)的作業(yè)狀態(tài)文件對每一作業(yè)確定其可用性狀態(tài)。例如,缺少作業(yè)狀態(tài)文件指示該作業(yè)的可用性。
每一作業(yè)具有其相應(yīng)的優(yōu)先級。作業(yè)列表依照每一作業(yè)的優(yōu)先級來組織。由此,客戶計(jì)算機(jī)52選擇最高優(yōu)先級的作業(yè)(如通過選擇標(biāo)識的作業(yè)的第一項(xiàng))。另外或作為選擇,客戶計(jì)算機(jī)52可能接受由服務(wù)器51之一分配的作業(yè)。接受作業(yè)之后,客戶計(jì)算機(jī)52創(chuàng)建一個與該作業(yè)相關(guān)聯(lián)的文件(如圖7中的job_id.xml)來指示客戶計(jì)算機(jī)52當(dāng)前在執(zhí)行與該作業(yè)相關(guān)聯(lián)的操作。該文件儲存在與客戶計(jì)算機(jī)52和/或服務(wù)器計(jì)算機(jī)相關(guān)聯(lián)的計(jì)算機(jī)可讀媒質(zhì)上。為如圖7所示的在與服務(wù)器計(jì)算機(jī)相關(guān)聯(lián)的媒質(zhì)上儲存該文件,客戶計(jì)算機(jī)52向服務(wù)器51提供證書來鑒別。
本領(lǐng)域的技術(shù)人員可以注意到,也存在其它方法用于指示一項(xiàng)作業(yè)被客戶計(jì)算機(jī)52之一接受。例如,每一服務(wù)器51上的作業(yè)列表可能包括指示客戶52已接受該作業(yè)的字段。發(fā)明人認(rèn)為,所有這類方法都包含在本發(fā)明的范圍之內(nèi)。
客戶計(jì)算機(jī)52也可以下載指令,如任務(wù)列表或腳本來完成作業(yè)。在另一實(shí)施例中,指令包括軟件組件,如完成作業(yè)中使用的庫或其它對象文件??蛻魴C(jī)軟件包括指令,用于在408配置已安裝的軟件映像,并在410向從其接受作業(yè)的服務(wù)器51發(fā)送回已安裝的軟件映像。已安裝的軟件映像代表準(zhǔn)備好展開的操作系統(tǒng)和/或應(yīng)用程序。
計(jì)算機(jī)52可訪問的一個或多個計(jì)算機(jī)可讀媒質(zhì)具有用于執(zhí)行圖4所示的方法的計(jì)算機(jī)可執(zhí)行指令。在一個實(shí)施例中,客戶計(jì)算機(jī)52在運(yùn)行、最小操作系統(tǒng)環(huán)境的語境下執(zhí)行指令。
在特定的示例中,客戶機(jī)軟件執(zhí)行以連續(xù)地向(多個)服務(wù)器輪詢已標(biāo)帖的作業(yè)。對特定服務(wù)器51標(biāo)帖的每一作業(yè),客戶機(jī)軟件確定該作業(yè)的當(dāng)前狀態(tài)。在一個實(shí)施例中,客戶機(jī)軟件搜索與作業(yè)相關(guān)聯(lián)的作業(yè)狀態(tài)文件(見圖7)的缺乏或存在。如果每一作業(yè)的作業(yè)狀態(tài)文件指示沒有來自特定服務(wù)器51的可用作業(yè),則客戶機(jī)軟件接連地向另外的服務(wù)器51輪詢已標(biāo)帖的作業(yè)。
如果來自特定服務(wù)器51有一個或多個可用的作業(yè),則客戶機(jī)軟件執(zhí)行以接受其中一項(xiàng)作業(yè)。例如,客戶機(jī)軟件可以接受第一可用作業(yè)(如果按優(yōu)先級排列)或接受由標(biāo)帖作業(yè)的服務(wù)器51分配的作業(yè)。接受與服務(wù)器計(jì)算機(jī)51之一相關(guān)聯(lián)的作業(yè)之一之后,客戶機(jī)軟件使用證明在服務(wù)器計(jì)算機(jī)上創(chuàng)建文件(如圖7中的job_id.xml)來指示該作業(yè)已接受??蛻魴C(jī)軟件還可以在本地創(chuàng)建相應(yīng)的狀態(tài)文件??蛻魴C(jī)軟件執(zhí)行與所接受的作業(yè)相關(guān)聯(lián)的操作來完成該作業(yè)。例如,操作可以包含在腳本中,來創(chuàng)建、安裝、定制、配置和/或修改軟件映像(如操作系統(tǒng)或應(yīng)用程序的映像)。完成作業(yè)之后,客戶機(jī)52儲存以后能夠發(fā)送到其它地方(如,到標(biāo)帖該作業(yè)的服務(wù)器計(jì)算機(jī))的已安裝并已配置的軟件映像。
客戶機(jī)52的一個示例性腳本包括操作,如以下的一個或多個配置或格式化硬盤驅(qū)動器、下載特定的文件用于設(shè)立、開始或裝入設(shè)立、完成設(shè)立、激活客戶機(jī)52、啟動進(jìn)入最小操作系統(tǒng)環(huán)境、創(chuàng)建操作系統(tǒng)的映像以及將完成的映像上傳到服務(wù)器51。
下面參考圖5,示例性流程圖說明了依照本發(fā)明的服務(wù)器軟件的操作。服務(wù)器軟件包括計(jì)算機(jī)可執(zhí)行指令,用于在502動態(tài)地創(chuàng)建并維護(hù)作業(yè)列表。每一作業(yè)與已安裝的軟件映像的創(chuàng)建(如安裝并配置軟件映像)相關(guān)。服務(wù)器計(jì)算機(jī)將已維護(hù)的列表標(biāo)帖為客戶機(jī)計(jì)算機(jī)52可訪問的網(wǎng)絡(luò)資源(如在存儲媒質(zhì)上)。每一客戶機(jī)計(jì)算機(jī)52選擇一項(xiàng)或多項(xiàng)作業(yè),并執(zhí)行所選擇的作業(yè)。該列表包括可用于客戶機(jī)計(jì)算機(jī)52選擇的作業(yè)、已選擇的作業(yè)和已執(zhí)行(如已完成)的作業(yè)。
維護(hù)包括根據(jù)用戶輸入將作業(yè)添加到列表以及在列表中組織作業(yè)。作業(yè)列表儲存在服務(wù)器51和客戶機(jī)計(jì)算機(jī)52可訪問的文件(如圖7中的relbuild.xml)中。維護(hù)包括在504從客戶機(jī)計(jì)算機(jī)52之一接收與客戶機(jī)計(jì)算機(jī)52選擇并執(zhí)行的作業(yè)之一相應(yīng)的已創(chuàng)建并已配置的軟件安裝。作為對接收已完成作業(yè)的響應(yīng),在506,服務(wù)器計(jì)算機(jī)將該作業(yè)從列表中移除。軟件安裝可以包括操作系統(tǒng)和/或應(yīng)用程序。一個或多個計(jì)算機(jī)可讀媒質(zhì)具有用于執(zhí)行圖5所示的方法的計(jì)算機(jī)可讀指令。
如果在某一時間段內(nèi)作業(yè)未能被客戶機(jī)計(jì)算機(jī)52接受,服務(wù)器51通知作業(yè)的創(chuàng)作者。例如,該時間段可預(yù)設(shè)或可由創(chuàng)作者配置。創(chuàng)作者可以根據(jù)特定的作業(yè)選擇時間段。在一個實(shí)施例中,服務(wù)器51在時間段過去之后從列表中移除未接受的作業(yè)。創(chuàng)作者或服務(wù)器51也可以指定一個時間段來完成所接受的作業(yè)。在一個實(shí)施例中,如果客戶機(jī)52未能在該時間段內(nèi)完成所接受的作業(yè)(如,客戶機(jī)52遇到故障和中止),服務(wù)器51收回所接受的作業(yè)使其能夠被其它客戶機(jī)52所用。在從服務(wù)器51的故障中恢復(fù)之后,服務(wù)器51向客戶機(jī)52重新標(biāo)帖未完成的作業(yè)列表,客戶機(jī)52回收其相應(yīng)的作業(yè),并且成像工作如服務(wù)器51故障之前繼續(xù)。
在一個具體示例中,服務(wù)器軟件執(zhí)行以對每一作業(yè)區(qū)分優(yōu)先級并儲存在一個文件中,如relbuild.xml。優(yōu)先級可以基于最后期限或其它任一因素,并通過用戶輸入接收或儲存在配置文件中。服務(wù)器51還執(zhí)行服務(wù)器軟件來引發(fā)安裝共享并使relbuil.xml對用戶計(jì)算機(jī)52可用。服務(wù)器軟件等待作業(yè)完成。在一個形式中,從客戶機(jī)52接收已完成的映像之后,服務(wù)器軟件使用完成的軟件映像來創(chuàng)建網(wǎng)絡(luò)共享。
下面參考圖6,結(jié)構(gòu)圖說明了與客戶機(jī)計(jì)算機(jī)52相關(guān)聯(lián)的計(jì)算機(jī)可讀媒質(zhì)602。媒質(zhì)602儲存分布式構(gòu)建環(huán)境中的數(shù)據(jù)結(jié)構(gòu)604。數(shù)據(jù)結(jié)構(gòu)604包括服務(wù)器路徑606和證書608。服務(wù)器路徑606定義了到服務(wù)器51的路徑(例如,網(wǎng)絡(luò)地址如//server/install)。證書608與客戶機(jī)52相關(guān)的標(biāo)識符相關(guān)聯(lián),以在服務(wù)器51和客戶機(jī)52之間的通信過程中進(jìn)行鑒別??蛻魴C(jī)52通過標(biāo)識符、證書608和服務(wù)器路徑606與服務(wù)器51進(jìn)行通信,來向服務(wù)器51指示客戶機(jī)52正在執(zhí)行與軟件映像的安裝相關(guān)聯(lián)的操作。
下面參考圖7,結(jié)構(gòu)圖說明了與服務(wù)器計(jì)算機(jī)51相關(guān)聯(lián)的示例計(jì)算機(jī)可讀媒質(zhì)702。媒質(zhì)702儲存分布式構(gòu)建環(huán)境中的數(shù)據(jù)結(jié)構(gòu)704。數(shù)據(jù)結(jié)構(gòu)704代表一項(xiàng)或多項(xiàng)作業(yè)。數(shù)據(jù)結(jié)構(gòu)704包括作業(yè)標(biāo)識符706以及腳本708。作業(yè)標(biāo)識符706與特定的作業(yè)相關(guān)聯(lián)。腳本708定義了與作業(yè)標(biāo)識符706相關(guān)聯(lián)、將要由客戶機(jī)52執(zhí)行來安裝軟件映像的多個操作。如上所述,每一作業(yè)具有相應(yīng)的優(yōu)先級,并且在數(shù)據(jù)結(jié)構(gòu)705中按照相應(yīng)的優(yōu)先級組織每一作業(yè)。腳本708還定義了配置已安裝的軟件映像的操作。
圖7中的計(jì)算機(jī)可讀媒質(zhì)702儲存另一數(shù)據(jù)結(jié)構(gòu)710。數(shù)據(jù)結(jié)構(gòu)710代表與軟件映像的安裝相關(guān)聯(lián)的狀態(tài)??蛻魴C(jī)52和服務(wù)器計(jì)算機(jī)51訪問數(shù)據(jù)結(jié)構(gòu)710來確定安裝的狀態(tài)。數(shù)據(jù)結(jié)構(gòu)710包括客戶機(jī)標(biāo)識符712和安裝狀態(tài)714或其它描述符。客戶機(jī)標(biāo)識符712標(biāo)識客戶計(jì)算機(jī)52。安裝狀態(tài)714指示由客戶標(biāo)識符712標(biāo)識的客戶計(jì)算機(jī)52執(zhí)行的安裝的狀態(tài)。例如,安裝狀態(tài)714可能指示安裝已完成或正在進(jìn)行。如果安裝仍在進(jìn)行,則安裝狀態(tài)714還可指示完成的百分比和/或估計(jì)完成剩余時間??蛻粲?jì)算機(jī)52使用客戶計(jì)算機(jī)52完成作業(yè)的狀態(tài)來更新數(shù)據(jù)結(jié)構(gòu)710。盡管在圖7中示出作業(yè)狀態(tài)數(shù)據(jù)結(jié)構(gòu)710儲存在服務(wù)器計(jì)算機(jī)可讀媒質(zhì)702中,發(fā)明者認(rèn)為它也可以替換或另外儲存在圖6的客戶計(jì)算機(jī)可讀媒質(zhì)602中。
圖8以計(jì)算機(jī)130的形式示出了一個通用計(jì)算裝置的示例。在本發(fā)明的一個實(shí)施例中,計(jì)算機(jī),如計(jì)算機(jī)130,適合于在這里說明并描述的其它示圖中使用。計(jì)算機(jī)130具有一個或多個處理器或處理單元132以及系統(tǒng)存儲器134。在說明的實(shí)施例中,系統(tǒng)總線136將包括系統(tǒng)存儲器134的各類系統(tǒng)組件耦合至處理器132??偩€135代表一個或多個任一各類總線結(jié)構(gòu),包括存儲器總線或存儲器控制器、外圍總線、加速圖形端口以及使用任一各類總線結(jié)構(gòu)的處理器或本地總線。作為示例而非限制,這類結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道結(jié)構(gòu)(MCA)總線、增強(qiáng)ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)本地總線以及外設(shè)部件互連(PCI)總線,也稱為Mezzanine總線。
計(jì)算機(jī)130通常至少具有某些形式的計(jì)算機(jī)可讀媒質(zhì)。計(jì)算機(jī)可讀媒質(zhì)包括易失和非易失媒質(zhì)、可移動和不可移動媒質(zhì),可以是任一可由計(jì)算機(jī)130訪問的可用媒質(zhì)。作為示例而非局限,計(jì)算機(jī)可讀媒質(zhì)包括計(jì)算機(jī)存儲媒質(zhì)和通信媒質(zhì)。計(jì)算機(jī)存儲媒質(zhì)包括易失和非易失、可移動和不可移動媒質(zhì),以任一用于儲存如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的方法或技術(shù)實(shí)現(xiàn)。例如,計(jì)算機(jī)存儲媒質(zhì)包括RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或任一可用來儲存期望的信息并可由計(jì)算機(jī)130訪問的媒質(zhì)。通信媒質(zhì)通常配備計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或在如載波或其它傳輸機(jī)制的已調(diào)制數(shù)據(jù)信號中的其它數(shù)據(jù),并包括任意信息傳送媒質(zhì)。本領(lǐng)域的技術(shù)人員熟悉已調(diào)制數(shù)據(jù)信號,該信號以某一方式設(shè)定或改變其一個或多個特征來對信號中的信息進(jìn)行編碼。有線媒質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,是通信媒質(zhì)的示例。上述任一組合也包含在計(jì)算機(jī)可讀媒質(zhì)的范圍內(nèi)。
系統(tǒng)存儲器134包括以可移動和/或不可移動、易失和/或非易失存儲器形式的計(jì)算機(jī)存儲媒質(zhì)。在說明的實(shí)施例中,系統(tǒng)存儲器134包括只讀存儲器(ROM)138和隨機(jī)存取存儲器(RAM)140?;据斎?輸出系統(tǒng)142(BIOS),包含如在啟動時協(xié)助在計(jì)算機(jī)130內(nèi)的元件之間傳輸信息的基本例程,通常儲存在ROM 138中。RAM 140通常包含處理單元132立即可訪問和/或當(dāng)前正在執(zhí)行的數(shù)據(jù)和/程序模塊。作為示例而非局限,圖8說明了操作系統(tǒng)144、應(yīng)用程序146、其它程序模塊148和程序數(shù)據(jù)150。
計(jì)算機(jī)130也可包括其它可移動/不可移動、易失/非易失計(jì)算機(jī)存儲媒質(zhì)。例如,圖8說明了對可移動、非易失磁媒質(zhì)進(jìn)行讀寫的硬盤驅(qū)動器154。圖8還示出了對可移動、非易失磁盤158進(jìn)行讀寫的磁盤驅(qū)動器156以及對可移動、非易失光盤162,如CD-ROM或其它光媒質(zhì)進(jìn)行讀寫的光盤驅(qū)動器160。其它可用在本示例操作環(huán)境中的可移動/不可移動、易失/非易失計(jì)算機(jī)存儲媒質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器154、磁盤驅(qū)動器156和光盤驅(qū)動器160通常通過非易失存儲器接口,如接口166連接至系統(tǒng)總線146。
以上描述并在圖8中說明的驅(qū)動器或其它大容量存儲設(shè)備及其關(guān)聯(lián)的計(jì)算機(jī)存儲媒質(zhì)為計(jì)算機(jī)130提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。在圖8中,例如,說明硬盤驅(qū)動器154儲存操作系統(tǒng)170、應(yīng)用程序172、其它程序模塊174以及程序數(shù)據(jù)176。注意,這些組件可以與操作系統(tǒng)144、應(yīng)用程序146、其它程序模塊148和程序數(shù)據(jù)150相同,也可以與它們不同。這里對操作系統(tǒng)170、應(yīng)用程序172、其它程序模塊174和程序數(shù)據(jù)176給予不同的標(biāo)號說明至少它們是不同的副本。
用戶可以通過輸入設(shè)備或用戶接口選擇設(shè)備,如鍵盤180和指向設(shè)備182(例如,鼠標(biāo)、軌跡球、筆或觸摸板)來向計(jì)算機(jī)130輸入命令和信息。其它輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲板、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通過耦合到系統(tǒng)總線136的用戶輸入接口184連接到處理單元132,也可以通過其它接口和總線結(jié)構(gòu),如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器188或其它類型的顯示設(shè)備也通過接口,如視頻接口190連接到系統(tǒng)總線136。除監(jiān)視器188之外,計(jì)算機(jī)經(jīng)常包括其它外圍輸出設(shè)備(未示出),如打印機(jī)和揚(yáng)聲器,可通過輸出外圍接口(未示出)連接。
計(jì)算機(jī)130可以在使用到一個或多個遠(yuǎn)程計(jì)算機(jī),如計(jì)算機(jī)194的邏輯連接的網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)194可以是個人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括許多或所有上述與計(jì)算機(jī)130相關(guān)的元件。圖8描述的邏輯連接包括局域網(wǎng)(LAN)196和廣域網(wǎng)(WAN)198,也可以包括其它網(wǎng)絡(luò)。LAN 136和/或WAN 138可以是有線網(wǎng)絡(luò)、無線網(wǎng)絡(luò)、其組合等等。這類網(wǎng)絡(luò)化環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)以及全球計(jì)算機(jī)網(wǎng)絡(luò)(如因特網(wǎng))。
當(dāng)在局域網(wǎng)環(huán)境中使用時,計(jì)算機(jī)130通過網(wǎng)絡(luò)接口或適配器186連接到LAN196。當(dāng)在廣域網(wǎng)環(huán)境中使用時,計(jì)算機(jī)130通常包括調(diào)制解調(diào)器178或其它裝置用于通過WAN 198,如因特網(wǎng)建立通信。調(diào)制解調(diào)器178可以是內(nèi)置的也可以是外置的,通過用戶輸入接口184或其它合適的機(jī)制連接到系統(tǒng)總線136。在網(wǎng)絡(luò)化環(huán)境中,所描述的與計(jì)算機(jī)130相關(guān)的程序程序模塊或其部分可以儲存在遠(yuǎn)程存儲器存儲設(shè)備(未示出)中。作為示例而非局限,圖8說明了遠(yuǎn)程應(yīng)用程序192駐留在存儲器設(shè)備中。可以理解,這里示出的網(wǎng)絡(luò)連接是示例性的,并且可以使用其它在計(jì)算機(jī)之間建立通信鏈路的裝置。
通常,計(jì)算機(jī)130的數(shù)據(jù)處理器用不同時間儲存在計(jì)算機(jī)的各類計(jì)算機(jī)可讀存儲媒質(zhì)上的指令來編程。程序和操作系統(tǒng)通常分布在,例如,軟盤或CD-ROM中。由此,它們被安裝或裝載到計(jì)算機(jī)的二級存儲器。當(dāng)執(zhí)行時,它們至少部分地被裝載到計(jì)算機(jī)的初級電子存儲器中。這里描述的本發(fā)明包括這些和其它各類計(jì)算機(jī)可讀存儲媒質(zhì),這類媒質(zhì)包含用于結(jié)合微處理器或其它數(shù)據(jù)處理器實(shí)現(xiàn)下文描述的步驟的指令或程序。本發(fā)明也包括計(jì)算機(jī)其本身,它被依照這里所述的方法和技術(shù)來編程。
為說明目的,程序和其它可執(zhí)行程序組件,如操作系統(tǒng),在這里示為不連續(xù)的塊。然而,可以認(rèn)可,這類程序和組件在各種時間駐留在計(jì)算機(jī)的不同存儲組件中,并由計(jì)算機(jī)的(多個)數(shù)據(jù)處理器執(zhí)行。
盡管結(jié)合示例性計(jì)算系統(tǒng)環(huán)境,包括計(jì)算機(jī)130來描述,本發(fā)明可與其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或結(jié)構(gòu)來操作。計(jì)算系統(tǒng)環(huán)境不意味著任何對本發(fā)明的使用或功能范圍的局限。而且,不應(yīng)將計(jì)算系統(tǒng)環(huán)境解釋為具有關(guān)于示例性操作環(huán)境中示出的任一組件或其組合的依賴或需求。著名的適合與本發(fā)明使用的計(jì)算系統(tǒng)、環(huán)境和/或結(jié)構(gòu)的示例包括但不限于,個人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、包含上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
本發(fā)明可以在由一個或多個計(jì)算機(jī)或其它設(shè)備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令,如程序模塊的一般語境下描述。通常,程序模塊包括但不限于,例程、程序、對象、組件以及數(shù)據(jù)結(jié)構(gòu),執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。本發(fā)明也可以在由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式計(jì)算環(huán)境中實(shí)踐。在分布式計(jì)算環(huán)境中,程序模塊可以駐留在本地和遠(yuǎn)程包括存儲器存儲設(shè)備的計(jì)算機(jī)存儲媒質(zhì)上。
在操作中,客戶計(jì)算機(jī)52,如計(jì)算機(jī)130執(zhí)行如圖4所示的計(jì)算機(jī)可執(zhí)行指令,來安裝并配置為軟件映像。另外,服務(wù)器51,如計(jì)算機(jī)130執(zhí)行如圖5所示的計(jì)算機(jī)可執(zhí)行指令來創(chuàng)建并維護(hù)軟件成像作業(yè)的列表。
例如,服務(wù)器計(jì)算機(jī)51,如計(jì)算機(jī)130可以在構(gòu)建后(postbuild)進(jìn)程中執(zhí)行兩個腳本來準(zhǔn)備、例示并完成成像進(jìn)程。構(gòu)建后進(jìn)程在編譯和連接之后,但在釋放構(gòu)建之前出現(xiàn)。一個腳本(例如,stagerel.cmd)引發(fā)網(wǎng)絡(luò)上的成像共享并監(jiān)控作業(yè)完成的階段目錄。在成像開始之后,服務(wù)器計(jì)算機(jī)51無限地等待客戶機(jī)52上傳完成的映像。階段目錄中的作業(yè)狀態(tài)文件儲存成像進(jìn)程的當(dāng)前進(jìn)度。作業(yè)狀態(tài)文件中的字段MAJORSTATE(見下文)儲存至少兩個狀態(tài)中的其中一個INPROGRESS和FINISHED。所有作業(yè)完成之后,腳本通過降低共享并繼續(xù)移動到下一構(gòu)建后命令來繼續(xù)。如果共享無法引發(fā)或者如果檢測到之前的構(gòu)建后錯誤,則腳本不會等待映像。
另一腳本(例如,img_createskus.cmd)在構(gòu)建后進(jìn)程中執(zhí)行兩次。當(dāng)?shù)谝淮窝b入腳本時(即,在其它腳本stagerel.cmd之前),它創(chuàng)建名為relbuild.xml的文件,包含成像機(jī)器(例如,客戶計(jì)算機(jī)52)所需要的服務(wù)器特定的信息和客戶機(jī)作業(yè)。這一腳本第二次在stagerel.cmd之后運(yùn)行,并將SKU/產(chǎn)品拼裝在一起,將所得映像放置在特定目錄中。stagerel.cmd腳本等待客戶計(jì)算機(jī)52完成映像,并監(jiān)控儲存作業(yè)狀態(tài)文件的成像目錄。在所有作業(yè)都被取走并完成之后,stagerel.cmd腳本繼續(xù)。映像創(chuàng)建可通過觀察記錄文件來檢驗(yàn)。
當(dāng)客戶機(jī)52執(zhí)行作業(yè)時,它可以通過刪除本地客戶機(jī)作業(yè)狀態(tài)文件并重新啟動客戶機(jī)52來被回收??蛻魴C(jī)52接受的成像作業(yè)也可以通過回收客戶機(jī)52并刪除服務(wù)器作業(yè)狀態(tài)文件來重新開始。
以下儲存在與服務(wù)器之一關(guān)聯(lián)的計(jì)算機(jī)可讀媒質(zhì)上的數(shù)據(jù)結(jié)構(gòu)的示例進(jìn)一步說明了本發(fā)明。以下示出了與relbuild.xml(見圖6)相應(yīng)的示例性服務(wù)器配置模式。盡管為方便,僅在模式中示出了一項(xiàng)作業(yè),可以認(rèn)為該模式可以定義多項(xiàng)作業(yè)。
<SERVER>
<BUILDTIME></BUILDTIME>
<BUILDNUMBER></BUILDNUMBER>
<LOGFILE></LOGFILE>
<TITLE></TITLE>
<JOBS>
<JOB ID=″″>
<TITLE></TITLE>
<CONFIGTYPE></CONFIGTYPE>
<INSTALLSCRIPT></INSTALLSCRIPT>
<IMAGESCRIPT></IMAGESCRIPT>
<TIMEOUT></TIMEOUT>
</JOB>
</JOBS>
</SERVER>
下列填充的數(shù)據(jù)結(jié)構(gòu)代表服務(wù)器配置模式的一個具體示例。
<SERVER>
<BUILDTIME>20021016:18:00:00</BUILDTIME>
<BUILDNUMBER>3700</BUILDNUMBER>
<LOGFILE>relbuild.log</LOGFILE>
<TITLE>Main Build 3700</TITLE>
<JOBS>
<JOB ID=″1″>
<TITLE>Professional Installation</TITLE>
<CONFIGTYPE>PRO</CONFIGTYPE>
<INSTALLSCRIPT>pro/install.cmd</INSTALLSCRIPT>
<IMAGESCRIPT>pro/image.cmd</IMAGESCRIPT>
<TIMEOUT>3600</TIMEOUT>
</JOB>
</JOBS>
</SERVER>
以下示出了與job_id.xml(見圖7)相應(yīng)的示例作業(yè)狀態(tài)模式。
<JOBSTATUS>
<CLIENTID></CLIENTID>
<TIMESTART></TIMESTART>
<TIMECOMPLETE></TIMECOMPLETE>
<CLIENTSTATUS>
<MAJORSTATE></MAJORSTATE>
<MINORSTATE></MINNORSTATE>
</CLINTSTATUS>
</JOBSATUS>
以下填充的數(shù)據(jù)結(jié)構(gòu)代表作業(yè)狀態(tài)模式的一個具體示例。
<JOBSTATUS>
<CLIENTID>RACK05 MACHINE10</CLIENTID>
<TIMESTART>20021016:18:01:00</TIMESTART>
<TIMECOMPLETE></TIMECOMPLETE>
<CLIENTSTATUS>
<MAJORSTATE>install</MAJORSTATE>
<MINORSTATE>format</MINNORSTATE>
</CLINTSTATUS>
</JOBSATUS以下儲存在與客戶計(jì)算機(jī)52之一關(guān)聯(lián)的計(jì)算機(jī)可讀媒質(zhì)上的數(shù)據(jù)結(jié)構(gòu)的示例說明了本發(fā)明。以下示出與buildclient.xml(見圖6)相應(yīng)的示例性客戶機(jī)配置模式。
<BUILDCLIENT ID″″>
<WAITTIME></WAITTIME>
<CONFIGINCLUDE></CONFIGINCLUDE>
<REDIRECTS>
<REDIRECT>
<USERNAME></USERNAME>
<PASSWORD></PASSWORD>
<CONFIGLOC></CONFIGLOC>
</REDIRECT>
</REDIRECTS>
</BUILDCLIENT>
以下填充的數(shù)據(jù)結(jié)構(gòu)代表客戶機(jī)配置模式的一個具體示例。
<BUILDCLIENT ID=″RACK05 MACHINE10″>
<WAITTIME>60</WAITTIME>
<CONFIGINCLUDE>PRO</CONFIGINCLUDE>
<REDIRECTS>
<REDIRECT>
<USERNAME>redmound\bvt</USERNAME>
<PASSWORD>bvtpassword</PASSWORD>
<CONFIGLOC>\\ntre101/bvt$</CONFIGLOC>
</REDIRECT>
</REDIRECTS>
</BUILDCLIENT>
當(dāng)介紹本發(fā)明或其(多個)實(shí)施例的元件時,冠詞“一個”、“該”以及“所述”意指有一個或多個元件。術(shù)語“包括”、“包含”以及“具有”為包含性的,并意指除列出的元件外還有其它另外的元件。
綜上所述,可以看到,達(dá)到了本發(fā)明的若干個目的,并獲得了其它優(yōu)點(diǎn)。
在不脫離本發(fā)明的范圍的情況下可以在上述構(gòu)造、產(chǎn)品和方法中作出各種改變,所有包含在以上描述以及在附圖中示出的事物都應(yīng)該解釋為說明性的,而非局限。
權(quán)利要求
1.一種分布式構(gòu)建的系統(tǒng),其特征在于,它包括維護(hù)一作業(yè)列表的第一計(jì)算機(jī),每一所述作業(yè)有一與已安裝的軟件映像的創(chuàng)建相關(guān)聯(lián)的操作;第二計(jì)算機(jī),從所述第一計(jì)算機(jī)接受所述作業(yè)之一并通過執(zhí)行與其相關(guān)聯(lián)的操作來執(zhí)行所接受的作業(yè)。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述操作包括安裝、配置軟件映像以及對其進(jìn)行成像。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,它還包括主計(jì)算機(jī),所述第二計(jì)算機(jī)可通過它來從所述第一計(jì)算機(jī)接受所述作業(yè)之一。
4.一種方法,用在一個或多個第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)軟件映像的創(chuàng)建的分布式構(gòu)建環(huán)境中,由所述第二計(jì)算機(jī)執(zhí)行的所述方法包括從所述第一計(jì)算機(jī)之一接受作業(yè),所述作業(yè)有與已安裝的軟件映像的創(chuàng)建相關(guān)聯(lián)的操作;以及通過執(zhí)行所述操作來完成所接受的作業(yè),其中,所完成的作業(yè)代表已安裝的軟件映像。
5.如權(quán)利要求4所述的方法,其特征在于,它還包括,從所述第一計(jì)算機(jī)之一請求所述作業(yè)。
6.如權(quán)利要求4所述的方法,其特征在于,它還包括配置所述已安裝的軟件映像。
7.如權(quán)利要求4所述的方法,其特征在于,所述第二計(jì)算機(jī)執(zhí)行最小操作系統(tǒng)。
8.如權(quán)利要求4所述的方法,其特征在于,所述接受包括接連地與所述第一計(jì)算機(jī)的每一個進(jìn)行通信來標(biāo)識與所述第一計(jì)算機(jī)相關(guān)聯(lián)的多項(xiàng)作業(yè);以及邊通信邊選擇所標(biāo)識的多項(xiàng)作業(yè)中的第一項(xiàng)。
9.如權(quán)利要求8所述的方法,其特征在于,每一所述第一計(jì)算機(jī)在與所述第一計(jì)算機(jī)相關(guān)聯(lián)的特定文件中儲存所述作業(yè)的列表,并且其中,所述通信包括訪問每一所述第一計(jì)算機(jī)上的特定文件來標(biāo)識所述作業(yè)。
10.如權(quán)利要求8所述的方法,其特征在于,它還包括通過搜索與每一所述作業(yè)相關(guān)聯(lián)并儲存在所述第一計(jì)算機(jī)上的作業(yè)狀態(tài)文件來確定每一所述第一計(jì)算機(jī)上的每一所述作業(yè)的狀態(tài)。
11.如權(quán)利要求8所述的方法,其特征在于,所述多項(xiàng)作業(yè)的每一個具有與其相應(yīng)的優(yōu)先級。
12.如權(quán)利要求11所述的方法,其特征在于,所述多項(xiàng)作業(yè)的每一個根據(jù)其相應(yīng)的優(yōu)先級在列表中進(jìn)行組織。
13.如權(quán)利要求4所述的方法,其特征在于,所述完成包括執(zhí)行與所述作業(yè)相關(guān)聯(lián)的腳本。
14.如權(quán)利要求4所述的方法,其特征在于,它還包括將所述已安裝的軟件映像發(fā)送到從中接受所述作業(yè)的第一計(jì)算機(jī)之一。
15.如權(quán)利要求4所述的方法,其特征在于,所述已安裝的軟件映像代表一個或多個操作系統(tǒng)和應(yīng)用程序。
16.一種分布式構(gòu)建環(huán)境中的數(shù)據(jù)結(jié)構(gòu),在分布式構(gòu)建環(huán)境中第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)已安裝軟件映像的創(chuàng)建,所述數(shù)據(jù)結(jié)構(gòu)儲存在所述第一計(jì)算機(jī)上,所述數(shù)據(jù)結(jié)構(gòu)代表一項(xiàng)或多項(xiàng)作業(yè),所述數(shù)據(jù)結(jié)構(gòu)包括與每一所述作業(yè)相關(guān)聯(lián)的作業(yè)標(biāo)識符;以及定義與所述作業(yè)標(biāo)識符相關(guān)聯(lián)、要由所述第二計(jì)算機(jī)執(zhí)行來創(chuàng)建已安裝軟件映像的多個操作的腳本。
17.如權(quán)利要求16所述的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述每一作業(yè)具有與其相應(yīng)的優(yōu)先級,并且其中,所述每一作業(yè)根據(jù)其相應(yīng)的優(yōu)先級在所述數(shù)據(jù)結(jié)構(gòu)中進(jìn)行組織。
18.如權(quán)利要求16所述的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述腳本還定義了用于配置所述已安裝軟件映像的操作。
19.一種用于分布式構(gòu)建的系統(tǒng),在分布式構(gòu)建中第一計(jì)算機(jī)向第二計(jì)算機(jī)授權(quán)已安裝軟件映像的創(chuàng)建,所述系統(tǒng)包括用于第一計(jì)算機(jī)維護(hù)作業(yè)列表的列表裝置,每一所述作業(yè)與已安裝的軟件映像的創(chuàng)建相關(guān);用于第二計(jì)算機(jī)通過所述列表裝置接受由所述第一計(jì)算機(jī)維護(hù)的所述作業(yè)之一的接口裝置,所述作業(yè)具有與已安裝的軟件映像的創(chuàng)建相關(guān)聯(lián)的操作;以及用于第二計(jì)算機(jī)通過執(zhí)行所述操作完成經(jīng)所述接口裝置接受的所述作業(yè)的安裝裝置,其中,所述完成的作業(yè)代表所述已安裝的軟件映像。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于,它還包括用于第二計(jì)算機(jī)配置所述已安裝的軟件映像的裝置。
全文摘要
在多個客戶計(jì)算機(jī)之中分布軟件映像創(chuàng)建和配置。服務(wù)器計(jì)算機(jī)定義與軟件映像的創(chuàng)建相關(guān)的作業(yè)。每一客戶計(jì)算機(jī)與服務(wù)器進(jìn)行通信來標(biāo)識、接受并完成作業(yè)。服務(wù)器和客戶計(jì)算機(jī)維護(hù)指示作業(yè)可用性和狀態(tài)的數(shù)據(jù)結(jié)構(gòu)。在該分布式構(gòu)建環(huán)境中,原始設(shè)備制造商(OEM)和系統(tǒng)構(gòu)建者能夠在工廠中簡單地修改、創(chuàng)建軟件并對其成像來顯著地減少資源消耗和時間。
文檔編號G06F9/445GK1573701SQ20041006191
公開日2005年2月2日 申請日期2004年6月24日 優(yōu)先權(quán)日2003年6月24日
發(fā)明者S·洛德韋克, J·科恩, R·布克哈特 申請人:微軟公司