專利名稱:元數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序部署的制作方法
元數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序部署相關(guān)申請(qǐng)本專利申請(qǐng)要求在35 U.S.C. gll9(e)下對(duì)2005年12月9日提交的美國臨 時(shí)專利申請(qǐng)第60/748,921號(hào)的優(yōu)先權(quán)。些旦 冃爾許多組織都需要在大量的計(jì)算設(shè)備上安裝應(yīng)用程序。為了便于安裝,已經(jīng) 研發(fā)出用于將新軟件部署到組織內(nèi)的自動(dòng)化工具。這些自動(dòng)化工具的某一些允 許組織獲取可能對(duì)計(jì)劃有用的清單信息,還允許管理員調(diào)度并控制應(yīng)用程序的 安裝。這些工具還可用于安排在一天的具體時(shí)刻進(jìn)行部署以減輕對(duì)用戶的影 響。取決于應(yīng)用程序需求,也可能需要其他工具來定制安裝。概述提供本概述以便以簡化形式介紹概念精選,這些概念將在以下的詳細(xì)描述 中被進(jìn)一步描述。本概述并不旨在標(biāo)識(shí)要求保護(hù)的主題的關(guān)鍵特征或本質(zhì)特 征,也不旨在用于幫助確定要求保護(hù)的主題的范圍。一種計(jì)算設(shè)備包括與部署儲(chǔ)存庫通信的部署引擎,而該部署儲(chǔ)存庫則包括 則可指定對(duì)要包括在應(yīng)用程序部署內(nèi)的資源(例如,動(dòng)態(tài)鏈接庫、文件、部件 等)的引用和/或鏈接的元數(shù)據(jù)。這些資源通常位于計(jì)算設(shè)備可訪問的服務(wù)器上。 部署引擎確定部署儲(chǔ)存庫是否包含計(jì)算設(shè)備上的部署引擎能夠下載的新的或 已更新的元數(shù)據(jù)和/或已更新的資源。元數(shù)據(jù)包括允許部署引擎在計(jì)算設(shè)備上正 確安裝或更新應(yīng)用程序的信息。例如,元數(shù)據(jù)可以包括允許部署引擎正確安裝 和/或配置應(yīng)用程序及其所需資源的信息。附圖簡述
圖1是表示支持元數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序部署的示例性系統(tǒng)的框圖;圖2是表示部署應(yīng)用程序的示例性操作流程的流程圖;以及 圖3是示出了可根據(jù)示例性實(shí)施例使用的計(jì)算環(huán)境的框圖。詳細(xì)描述現(xiàn)在參考其中相似的數(shù)字代表相似的元素的附圖,描述各實(shí)施例。具體地, 圖1和相應(yīng)的討論旨在提供對(duì)在其中可以實(shí)現(xiàn)各實(shí)施例的合適計(jì)算環(huán)境的簡要 描述。一般而言,程序模塊包括例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其它類型的結(jié)構(gòu), 它們執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型。也可使用其它計(jì)算機(jī)系統(tǒng) 配置,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)電子產(chǎn)品、 小型機(jī)、大型機(jī)等等。也可使用分布式計(jì)算環(huán)境,其中任務(wù)由通過通信網(wǎng)絡(luò)鏈 接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可被置于本地或遠(yuǎn)程 的存儲(chǔ)器設(shè)備中。圖1根據(jù)一個(gè)實(shí)施例示出了支持元數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序部署的示例性系 統(tǒng)100。如圖所示,系統(tǒng)100包括計(jì)算設(shè)備102(即,任何可以存儲(chǔ)并執(zhí)行軟件 應(yīng)用程序的設(shè)備)、包括元數(shù)據(jù)和資源106的部署儲(chǔ)存庫104。在此實(shí)施例中, 計(jì)算設(shè)備102可經(jīng)由一個(gè)或多個(gè)服務(wù)器108訪問部署儲(chǔ)存庫104和資源106。 計(jì)算設(shè)備102包括部署引擎110、應(yīng)用程序116、元數(shù)據(jù)(副本)112和資源(副 本)114.雖然未在圖1中示出,系統(tǒng)IOO可以包括類似于計(jì)算設(shè)備102的附加計(jì) 算設(shè)備。部署儲(chǔ)存庫104包括元數(shù)據(jù)信息,該信息允許部署引擎110正確部署或更 新應(yīng)用程序(例如,計(jì)算設(shè)備102上的應(yīng)用程序116)。例如,元數(shù)據(jù)可以包 括允許引擎110正確安裝和/或配置計(jì)算設(shè)備102上的應(yīng)用程序116的信息。部 署儲(chǔ)存庫104可以包括有關(guān)系統(tǒng)100內(nèi)所有計(jì)算設(shè)備的多個(gè)應(yīng)用程序的信息, 另外還可以包括用于確定要在每個(gè)計(jì)算設(shè)備上安裝/更新什么應(yīng)用程序的信息。 此外,在一個(gè)實(shí)施例中,向?qū)?yīng)于每個(gè)應(yīng)用程序或應(yīng)用程序更新的元數(shù)據(jù)加時(shí) 間戳,以指示最近一次的元數(shù)據(jù)修改(或創(chuàng)建)的時(shí)間。該時(shí)間戳信息可以存 儲(chǔ)在時(shí)間戳105內(nèi)。計(jì)算設(shè)備102的部署引擎110周期性地訪問或查詢部署儲(chǔ)存庫104以確定是否有新的應(yīng)用程序或應(yīng)用程序更新要安裝到計(jì)算設(shè)備102上。在一個(gè)實(shí)施例中,部署引擎110周期性地輪詢部署儲(chǔ)存庫104以獲取針對(duì)計(jì)算設(shè)備102的與 新的或已更新的應(yīng)用程序相對(duì)應(yīng)的元數(shù)據(jù)。例如,在一個(gè)實(shí)施例中,引擎iio 可以査詢部署儲(chǔ)存庫104以獲取對(duì)應(yīng)于當(dāng)前駐留在計(jì)算設(shè)備102上的各應(yīng)用程 序(例如,應(yīng)用程序116)的元數(shù)據(jù)的時(shí)間戳。部署引擎110隨后可以將該時(shí)間 戳與對(duì)應(yīng)于上述應(yīng)用程序的最近下載元數(shù)據(jù)的時(shí)間戳相比較,如果它們不相同 (即,部署儲(chǔ)存庫104內(nèi)的元數(shù)據(jù)時(shí)間戳是最近的),則部署引擎110就能夠 下載"新近的"元數(shù)據(jù)。在元數(shù)據(jù)對(duì)應(yīng)于所部署的新應(yīng)用程序而非對(duì)應(yīng)于已經(jīng) 安裝在計(jì)算設(shè)備102上的應(yīng)用程序的更新的情況下,部署引擎IIO可以下載對(duì) 應(yīng)于該新應(yīng)用程序的元數(shù)據(jù)而不用執(zhí)行時(shí)間戳比較。下載至計(jì)算設(shè)備102的元 數(shù)據(jù)在圖1中被指示為元數(shù)據(jù)112.此外,在某些實(shí)施例中,可以使用應(yīng)用程序、 資源和/或元數(shù)據(jù)的版本標(biāo)注(versioning)來代替"最近修改的"時(shí)間戳。操作中,在要更新應(yīng)用程序(或者資源已更新)時(shí),諸如系統(tǒng)管理員的授 權(quán)用戶就更新部署儲(chǔ)存庫104上元數(shù)據(jù),而非直接更新計(jì)算設(shè)備102上應(yīng)用程 序(或資源)。類似地,當(dāng)要在計(jì)算設(shè)備102上安裝新的應(yīng)用程序和/或資源時(shí), 管理員可以裝載元數(shù)據(jù)用于在部署儲(chǔ)存庫104上而非直接在計(jì)算設(shè)備102上安 裝上述新的應(yīng)用程序。在系統(tǒng)100包括有相同的應(yīng)用程序和/或資源需要更新或 初始安裝的多個(gè)計(jì)算設(shè)備的情況下,這一特征是有利的。這一特征提供了一種. 簡單的過程(即,只更新部署儲(chǔ)存庫104)用以在多個(gè)計(jì)算設(shè)備上部署應(yīng)用程 序或更新。在一個(gè)實(shí)施例中,部署引擎110以事務(wù)性(transacted)的基礎(chǔ)下載元數(shù)據(jù)。 例如,部署引擎110能夠下載遵守ISO/IEC 10026-1:1992 Section 4 (第4節(jié)) 的元數(shù)據(jù),該節(jié)描述了要在事務(wù)性信息傳輸中保持的ACID (原子性、 一致性、 獨(dú)立性和持久性)屬性。因此,下載可以中斷,而不會(huì)丟失和/或破壞當(dāng)前駐留 在計(jì)算設(shè)備上的元數(shù)據(jù)和/或資源。在此實(shí)施例中,部署引擎110隨后處理元數(shù)據(jù)以確定是否還有正確安裝應(yīng) 用程序所需的額外資源。資源可以包括動(dòng)態(tài)鏈接庫、文件、部件等。在某些實(shí) 施例中,元數(shù)據(jù)包括資源的位置信息(例如,URL)。部署引擎110隨后可以 使用該位置信息下載資源。例如,在系統(tǒng)100中,部署引擎110可以從元數(shù)據(jù)7112中獲取資源位置信息,并且使用該位置信息從服務(wù)器108上資源106中下 載資源。下載至計(jì)算設(shè)備102的資源被指示為資源114。在某些實(shí)施例中,資 源還可以具有能在下載之前被檢查的時(shí)間戳或版本信息(107),以便僅下載新的或己更新的資源。部署引擎110隨后可以使用已經(jīng)下載至計(jì)算設(shè)備102的元數(shù)據(jù)112和資源 114來正確安裝應(yīng)用程序。在某些實(shí)施例中,元數(shù)據(jù)112包括安裝程序或向?qū)?或其他合適程序(未示出)安裝應(yīng)用程序所需的信息,這些應(yīng)用程序示出為計(jì) 算設(shè)備102的應(yīng)用程序116。在某些實(shí)施例中, 一旦下載了元數(shù)據(jù)112和資源 114, 一個(gè)或多個(gè)預(yù)選擇事件(例如,重新啟動(dòng)、應(yīng)用程序的啟動(dòng)或重新啟動(dòng) 等)就引發(fā)部署引擎110安裝應(yīng)用程序。在一個(gè)實(shí)施例中,部署引擎110在臨時(shí)持久目錄(tempory persistent directory)中存儲(chǔ)新下載的元數(shù)據(jù)112和/或資源114 (即被高速緩存),直到 用于安裝應(yīng)用程序116的事件(上述)出現(xiàn)。響應(yīng)于該事件,部署引擎110將 應(yīng)用程序和/或資源的設(shè)置"重新映射"至新的/已更新的應(yīng)用程序和/或資源。 某些實(shí)施例允許用戶在已更新版本正下載的同時(shí)使用當(dāng)前駐留在計(jì)算設(shè)備上 的應(yīng)用程序。上述實(shí)施例提供了在計(jì)算設(shè)備102上部署或更新應(yīng)用程序116的 機(jī)制,這些機(jī)制對(duì)用戶是透明的并且自動(dòng)且便于管理。在某些實(shí)施例中,在下載資源114時(shí),部署引擎110保持除根以外的資源 路徑名。例如在一個(gè)實(shí)施例中,部署引擎110將原始根目錄從服務(wù)器108改為 計(jì)算設(shè)備102上的用戶域。這一特征簡化了應(yīng)用程序116的安裝以及對(duì)資源114 的引用。此外在某些實(shí)施例中,在存儲(chǔ)資源114期間,部署引擎110提供從網(wǎng)絡(luò)共 享下載資源114的指示。例如,在一個(gè)實(shí)現(xiàn)中,部署引擎110讓每個(gè)資源114 的一性質(zhì)指示其來自網(wǎng)絡(luò)區(qū)域(與通常受應(yīng)用程序信任的本地不同)。以此方 式,資源如同對(duì)應(yīng)用程序而言是"非本地的",于是應(yīng)用程序116就可以采取 合適的安全措施。在某些實(shí)施例中,系統(tǒng)110在將元數(shù)據(jù)112和資源114存儲(chǔ)在計(jì)算設(shè)備 102上時(shí)實(shí)現(xiàn)各安全特征。例如,部署儲(chǔ)存庫104在允許計(jì)算設(shè)備102訪問部 署儲(chǔ)存庫104的元數(shù)據(jù)之前要求角色(或用戶名)和密碼。此外,部署引擎110可以將訪問控制列表(ACL)與下載資源114相關(guān)聯(lián)以確保只有得到了許可的 應(yīng)用程序才能夠訪問資源114。在某些實(shí)施例中,部署引擎IIO提供一種允許任何應(yīng)用程序獲取資源而無 需具有該期望資源的位置信息的機(jī)制。例如,在一個(gè)實(shí)施例中,部署引擎IIO 暴露API (應(yīng)用編程接口) 111,使得應(yīng)用程序可以使用該API來嘗試獲取資 源。應(yīng)用程序可以使用該API在部署引擎110上用該資源的名稱或標(biāo)識(shí)符來進(jìn) 行調(diào)用。部署引擎110隨后檢查被請(qǐng)求資源的下載資源(例如,資源114), 并且如果該資源不存在,就從部署儲(chǔ)存庫104獲取該資源的位置(例如,URL)。 部署引擎110隨后將位置信息(本地或是遠(yuǎn)程)返回給進(jìn)行調(diào)用的應(yīng)用程序。在某些實(shí)施例中,元數(shù)據(jù)112可以包括元數(shù)據(jù)和/或資源部署出現(xiàn)的時(shí)刻。 這一特征可由系統(tǒng)100的管理員用于同步系統(tǒng)100內(nèi)多個(gè)計(jì)算設(shè)備的應(yīng)用程序 和/或資源的部署。例如,在一個(gè)實(shí)現(xiàn)中,系統(tǒng)100的計(jì)算設(shè)備在指定時(shí)刻(為 同步部署指定的時(shí)刻)之前下載并高速緩存用于部署具體應(yīng)用程序的元數(shù)據(jù)和 /或資源。隨后當(dāng)該指定時(shí)刻到達(dá)時(shí),所有下載了元數(shù)據(jù)和/或資源的計(jì)算設(shè)備 就能夠基本同時(shí)執(zhí)行部署。現(xiàn)將參考圖2描述使用元數(shù)據(jù)部署一個(gè)或多個(gè)應(yīng)用程序的示例性過程。 當(dāng)閱讀對(duì)在此提供的例程的討論時(shí),應(yīng)當(dāng)了解,各種實(shí)施例的邏輯操作是作為 (l)運(yùn)行于計(jì)算機(jī)系統(tǒng)上的一系列計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作或程序模塊,以及/或者(2) 計(jì)算機(jī)系統(tǒng)內(nèi)互連的機(jī)器邏輯電路或電路模塊來實(shí)現(xiàn)的。該實(shí)現(xiàn)是取決于計(jì)算 機(jī)系統(tǒng)的性能要求來選擇的。因此,所例示的并且構(gòu)成在此所述的實(shí)施例的邏 輯操作被不同地表示為操作、結(jié)構(gòu)性設(shè)備、動(dòng)作或模塊。這些操作、結(jié)構(gòu)性 設(shè)備、動(dòng)作和模塊可用軟件、固件、專用數(shù)字邏輯以及它們的任何組合來實(shí)現(xiàn)。在開始操作之后,操作流程200行進(jìn)至操作202,其中確定是否有一個(gè)或 多個(gè)新的或已更新的應(yīng)用程序和/或資源要安裝在計(jì)算設(shè)備上。在一個(gè)實(shí)施例 中,計(jì)算設(shè)備包括部署引擎,諸如引擎110 (圖1),該引擎被配置為確定是 否有一個(gè)或多個(gè)新的應(yīng)用程序或更新要安裝在計(jì)算設(shè)備上。例如在一個(gè)實(shí)施例 中,部署引擎周期性地輪詢部署儲(chǔ)存庫(例如,諸如圖1的部署儲(chǔ)存庫104的 儲(chǔ)存庫)以查找比已經(jīng)駐留在計(jì)算設(shè)備上的相應(yīng)元數(shù)據(jù)更加新或更新近的元數(shù) 據(jù)。正如前述的部署儲(chǔ)存庫104—樣,部署儲(chǔ)存庫存儲(chǔ)可由部署引擎用來安裝或更新應(yīng)用程序(或由應(yīng)用程序使用的資源)的元數(shù)據(jù)。在應(yīng)用程序要被更新 (或者資源已更新)時(shí),管理員更新部署儲(chǔ)存庫上元數(shù)據(jù),而非直接更新計(jì)算 設(shè)備上應(yīng)用程序(或資源)。類似地,當(dāng)要在計(jì)算設(shè)備上安裝新的應(yīng)用程序和 /或資源時(shí),管理員可以裝載元數(shù)據(jù)用于在部署儲(chǔ)存庫上而非直接在計(jì)算設(shè)備上 安裝上述新的應(yīng)用程序。在此實(shí)施例中,由部署儲(chǔ)存庫存儲(chǔ)的元數(shù)據(jù)包括允許 部署引擎確定部署儲(chǔ)存庫上的元數(shù)據(jù)是否比已經(jīng)駐留在計(jì)算設(shè)備上的相應(yīng)元數(shù)據(jù)更加新或更新近的元數(shù)據(jù)的信息(例如,時(shí)間戳或版本指示)。進(jìn)行到判定操作204,確定部署儲(chǔ)存庫上的元數(shù)據(jù)是否是新的或者最近已被更新。根據(jù)一個(gè)實(shí)施例,做出駐留在部署儲(chǔ)存庫內(nèi)的元數(shù)據(jù)是否比駐留在計(jì) 算設(shè)備上的相應(yīng)元數(shù)據(jù)更新近的判定。如果部署儲(chǔ)存庫上的元數(shù)據(jù)不是新的或被更新,則操作流程200就返回操 作202。但如果元數(shù)據(jù)是新的或被更新,則操作流程200就進(jìn)行到操作206。在操作206,計(jì)算設(shè)備從部署儲(chǔ)存庫中獲取更加新的元數(shù)據(jù)并將該元數(shù)據(jù) 存儲(chǔ)在計(jì)算設(shè)備上。在一個(gè)實(shí)施例中,前述部署引擎將元數(shù)據(jù)從部署儲(chǔ)存庫下 載至計(jì)算設(shè)備。在某些實(shí)施例中,元數(shù)據(jù)以事務(wù)性基礎(chǔ)來下載。如前關(guān)于系統(tǒng) 100 (圖1)所述,元數(shù)據(jù)可以存儲(chǔ)在臨時(shí)持久目錄內(nèi)(即,被高速緩存)。某 些實(shí)施例允許用戶在更新版本正下載的同時(shí)使用當(dāng)前駐留在計(jì)算設(shè)備上的應(yīng) 用程序。移動(dòng)至操作208,計(jì)算設(shè)備獲取在操作206所取得元數(shù)據(jù)內(nèi)引用的一個(gè)或 多個(gè)資源(如果有的話)。在一個(gè)實(shí)施例中,前述部署引擎從包括在元數(shù)據(jù)內(nèi) 的位置信息(例如,URL)下載所引用的資源。在某些實(shí)施例中,資源還可以 具有能在下載該資源之前被檢查的關(guān)聯(lián)時(shí)間戳或版本信息,以便僅下載新的或 已更新的資源。在某些實(shí)施例中,在資源下載期間,保留除根目錄以外的資源 路徑名。例如在一個(gè)實(shí)施例中,資源路徑名的原始根目錄改變?yōu)橛?jì)算設(shè)備上的 用戶域。此外在某些實(shí)施例中,在資源存儲(chǔ)期間,提供從網(wǎng)絡(luò)共享下載資源的指示。 例如,在一個(gè)實(shí)施例中,設(shè)置該資源的一性質(zhì)以指示其來自網(wǎng)絡(luò)區(qū)域(與通常 受應(yīng)用程序信任的本地不同)。以此方式,資源如同對(duì)應(yīng)用程序而言是"非本 地的",于是應(yīng)用程序就可以釆取合適的安全措施。移至操作210,使用獲取的元數(shù)據(jù)來安裝或更新該應(yīng)用程序。在一個(gè)實(shí)施例中,前述部署引擎使用元數(shù)據(jù)來安裝該新的或已更新的應(yīng)用程序。例如在一 個(gè)實(shí)施例中,當(dāng)出現(xiàn)一事件(例如,重新啟動(dòng)、應(yīng)用程序的啟動(dòng)或重新啟動(dòng)、 到達(dá)指定時(shí)刻等)時(shí),部署引擎就使用元數(shù)據(jù)安裝應(yīng)用程序。該事件在某些實(shí) 施例中可以在元數(shù)據(jù)中指定。響應(yīng)于該事件,部署引擎將應(yīng)用程序和/或資源的 設(shè)置"重新映射"至新的/已更新的應(yīng)用程序和/或資源。盡管這里以特定的順序示出并描述了操作流200,然而在其它實(shí)施例中, 各操作中所述操作能以不同的順序、多次和/或并行執(zhí)行。進(jìn)一步來說,在某些 實(shí)施例中, 一個(gè)操作中描述的一個(gè)或多個(gè)操作可被分到另一操作中,被省略或 被組合。此外,即時(shí)在計(jì)算設(shè)備當(dāng)前正同時(shí)運(yùn)行一具體應(yīng)用程序的較老版本的 情況下,也可以執(zhí)行操作流程200的操作202、 204、 206和208來更新該應(yīng)用 程序。圖3示出了可用于實(shí)現(xiàn)這里所述技術(shù)的通用計(jì)算機(jī)環(huán)境300。計(jì)算機(jī)環(huán)境 300只是合適的計(jì)算環(huán)境的一個(gè)示例,而非意在暗示對(duì)計(jì)算機(jī)和網(wǎng)絡(luò)構(gòu)件使用 范圍或功能性有任何限制。計(jì)算機(jī)環(huán)境300也不應(yīng)解釋成對(duì)于在示例性計(jì)算機(jī) 環(huán)境300中所示出的任一組件或其組合有任何依賴或要求。計(jì)算機(jī)環(huán)境300包括具有計(jì)算機(jī)302形式的通用計(jì)算設(shè)備。計(jì)算機(jī)302 的各組件可以包括但不限于一個(gè)或多個(gè)處理器或處理單元304、系統(tǒng)存儲(chǔ)器 306、以及將包括處理器304的各系統(tǒng)組件耦合至系統(tǒng)存儲(chǔ)器306的系統(tǒng)總線 308。系統(tǒng)總線308代表示任何若干類型的總線結(jié)構(gòu)之一個(gè)或多個(gè),包括存儲(chǔ)器 總線或存儲(chǔ)器控制器、外設(shè)總線、加速圖形端口以及使用任何各種總線體系結(jié) 構(gòu)的處理器或局部總線。作為示例,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu) (ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、擴(kuò)展的ISA (EISA)總線、視 頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線和外圍部件互連(PCI)總線(也被稱 為Mezzanine總線)、PCI快速(Express)總線、通用串行總線(USB)、安 全數(shù)字(SD)總線、或在IEEE 1394 (即,F(xiàn)ire Wire)總線。計(jì)算機(jī)302可以包括各種計(jì)算機(jī)可讀介質(zhì)。這些介質(zhì)可以是能由計(jì)算機(jī) 302訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)以及可移動(dòng)和不可移動(dòng)介質(zhì)。系統(tǒng)存儲(chǔ)器306包括具有諸如隨機(jī)存取存儲(chǔ)器(RAM) 310的易失性存儲(chǔ) 器形式;和/或諸如只讀存儲(chǔ)器(ROM) 312或閃速RAM的非易失性存儲(chǔ)器形 式的計(jì)算機(jī)可讀介質(zhì)。基本輸入/輸出系統(tǒng)(BIOS) 314包含有助于諸如啟動(dòng) 時(shí)在計(jì)算機(jī)302中各元件之間傳遞信息的基本例程,它通常存儲(chǔ)在ROM 312 或閃速RAM中。RAM 310通常包含處理單元304可以立即訪問和/或目前正 在操作的數(shù)據(jù)和/或程序模塊。計(jì)算機(jī)302還可以包括其他可移動(dòng)/不可移動(dòng),易失性/非易失性計(jì)算機(jī)存 儲(chǔ)介質(zhì)。舉例說明,圖3列舉了硬盤驅(qū)動(dòng)器316,其用于對(duì)不可移除、非易失 性磁性介質(zhì)(未示出)進(jìn)行讀寫操作;還列舉了磁盤驅(qū)動(dòng)器318,其用于對(duì)可 移除、非易失性磁盤320 (如"軟盤")進(jìn)行讀寫操作;以及光盤驅(qū)動(dòng)器322, 其用于對(duì)可移除、非易失性光盤324 (如CD-ROM、 DVD-ROM或其它光介質(zhì)) 進(jìn)行讀寫操作。硬盤驅(qū)動(dòng)器316、磁盤驅(qū)動(dòng)器318和光盤驅(qū)動(dòng)器322每個(gè)都通 過一個(gè)或多個(gè)數(shù)據(jù)介質(zhì)接口 325與系統(tǒng)總線308相連。另外,硬盤驅(qū)動(dòng)器316、 磁盤驅(qū)動(dòng)器318和光盤驅(qū)動(dòng)器322也可通過一個(gè)或多個(gè)接口 (未示出)與系統(tǒng) 總線308相連。盤驅(qū)動(dòng)器及其相關(guān)的計(jì)算機(jī)可讀介質(zhì)提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程 序模塊以及其它計(jì)算機(jī)302數(shù)據(jù)的非易失性存儲(chǔ)。盡管該示例示出了硬盤316、 可移動(dòng)磁盤320和可移動(dòng)光盤324,但應(yīng)當(dāng)認(rèn)識(shí)到其它類型可存儲(chǔ)由計(jì)算機(jī)訪 問的數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)也可用來實(shí)現(xiàn)該示例性計(jì)算系統(tǒng)和環(huán)境,這些介質(zhì) 如盒式磁帶或其它磁性存儲(chǔ)設(shè)備、閃速存儲(chǔ)卡、CD-ROM、數(shù)字多功能盤(DVD) 或其它光盤存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可 擦除可編程只讀存儲(chǔ)器(EEPROM)等等。任何數(shù)量的程序模塊可存儲(chǔ)在硬盤316、磁盤320、光盤324、 ROM 312 和/或RAM 310中,例如,操作系統(tǒng)326 (在某些實(shí)施例中包括上述低優(yōu)先級(jí) I/O文件系統(tǒng)和高優(yōu)先級(jí)I/O文件系統(tǒng)以及索引系統(tǒng))、 一個(gè)或多個(gè)應(yīng)用程序 328、其它程序模塊330以及程序數(shù)據(jù)332。每個(gè)這樣的操作系統(tǒng)326、 一個(gè)或 多個(gè)應(yīng)用程序328、其它程序模塊330以及程序數(shù)據(jù)332 (或其某種組合)可 實(shí)現(xiàn)所有或部分支持分布式文件系統(tǒng)的現(xiàn)有組件。用戶可通過諸如鍵盤334和點(diǎn)擊設(shè)備336 (如"鼠標(biāo)")這樣的輸入設(shè)備 將命令和信息輸入到計(jì)算機(jī)302中。其它輸入設(shè)備338 (未特別示出)可以 包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、串行接口和/或掃描儀等。這 些和其它輸入設(shè)備通過耦合到系統(tǒng)總線308的輸入/輸出接口 340連接到處理單 元304,但也可通過其它接口和總線結(jié)構(gòu)如并行端口、游戲端口或通用串行總 線(USB)來連接。監(jiān)視器342或其它類型的顯示設(shè)備也可通過諸如視頻適配器344這樣的接 口與系統(tǒng)總線308相連。除監(jiān)視器342之外,其它的輸出外圍設(shè)備可包括諸如 揚(yáng)聲器(未示出)和打印機(jī)346這樣的組件,這些組件可通過I/0接口 340與 計(jì)算機(jī)302相連。計(jì)算機(jī)302可在有一臺(tái)或多臺(tái)遠(yuǎn)程計(jì)算機(jī)(如遠(yuǎn)程計(jì)算設(shè)備348)邏輯連 接的網(wǎng)絡(luò)化環(huán)境中工作。舉例來說,遠(yuǎn)程計(jì)算設(shè)備348可以是PC、便攜式 計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)計(jì)算機(jī)、對(duì)等設(shè)備或者其他常見網(wǎng)絡(luò)節(jié)點(diǎn)等。 遠(yuǎn)程計(jì)算設(shè)備348示出作為可以包括在本文中關(guān)于計(jì)算機(jī)302描述的許多或全 部元件和特征的便攜式計(jì)算機(jī)。計(jì)算機(jī)302和遠(yuǎn)程計(jì)算機(jī)348之間的邏輯連接被描述為本地網(wǎng)(LAN)350 和通用廣域網(wǎng)(WAN) 352。這樣的網(wǎng)絡(luò)化環(huán)境常見于辦公室、企業(yè)計(jì)算機(jī)網(wǎng) 絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中。當(dāng)在LAN網(wǎng)絡(luò)化環(huán)境中應(yīng)用時(shí),計(jì)算機(jī)302通過網(wǎng)絡(luò)接口或適配器354 連接到本地網(wǎng)絡(luò)350。當(dāng)在WAN網(wǎng)絡(luò)化環(huán)境中應(yīng)用時(shí),計(jì)算機(jī)302通常包括 調(diào)制解調(diào)器356或其它用于在廣域網(wǎng)352上建立通信的裝置。調(diào)制解調(diào)器356 可為計(jì)算機(jī)302內(nèi)置或外置,其可通過I/O接口 340或其它恰當(dāng)?shù)臋C(jī)制連接到 系統(tǒng)總線308上。應(yīng)當(dāng)認(rèn)識(shí)到所述網(wǎng)絡(luò)連接是示例性的,也可使用在計(jì)算機(jī) 302和348之間確立至少一個(gè)通信鏈接的其它裝置。在聯(lián)網(wǎng)環(huán)境中,比如結(jié)合計(jì)算環(huán)境300所示出的,相對(duì)計(jì)算機(jī)302或其部 分描繪的程序模塊可存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。例如,遠(yuǎn)程應(yīng)用程序358 駐留在遠(yuǎn)程計(jì)算機(jī)348的存儲(chǔ)設(shè)備中。為說明起見,應(yīng)用程序或程序以及如操 作系統(tǒng)這樣的其它可執(zhí)行程序組件在這里以單獨(dú)的塊來闡明,但應(yīng)到認(rèn)識(shí)到這 樣的程序和組件多次以計(jì)算設(shè)備302的不同存儲(chǔ)器組件形式存在,并由至少一臺(tái)計(jì)算機(jī)數(shù)據(jù)處理器來執(zhí)行。各種模塊和技術(shù)在本申請(qǐng)中可在諸如程序模塊的由一個(gè)或多個(gè)計(jì)算機(jī)或 其他設(shè)備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。 一般而言,程序模塊 包括用于執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、 數(shù)據(jù)結(jié)構(gòu)等。通常,程序模塊的功能可以在各個(gè)實(shí)施例中按需進(jìn)行組合或分布。這些模塊和技術(shù)的實(shí)現(xiàn)可以存儲(chǔ)在某種形式的計(jì)算機(jī)可讀介質(zhì)上或通過 某種形式的計(jì)算機(jī)可讀介質(zhì)傳輸。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)訪問的任 何可用介質(zhì)。舉例說明,但并非限定,計(jì)算機(jī)可讀介質(zhì)可包含"計(jì)算機(jī)存儲(chǔ)器 介質(zhì)"和"通信介質(zhì)"。"計(jì)算機(jī)存儲(chǔ)器介質(zhì)"包括易失性和非易失性、可移除和不可移除介質(zhì), 這樣的介質(zhì)能以任何信息存儲(chǔ)的方法或技術(shù)來實(shí)現(xiàn),如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。計(jì)算機(jī)存儲(chǔ)器介質(zhì)包括但不局限于,RAM、 ROM、 EEPROM、閃速存儲(chǔ)器或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD) 或其它光盤存儲(chǔ)器、盒式磁帶、磁帶、磁盤存儲(chǔ)器或其它磁存儲(chǔ)設(shè)備,或者任 何其它可用于存儲(chǔ)所需信息并可由計(jì)算機(jī)存取的介質(zhì)。"通信介質(zhì)"通常包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其它包 含在己調(diào)制數(shù)據(jù)信號(hào)中的數(shù)據(jù)(如載波或其它傳送機(jī)制)。通信介質(zhì)也包括任 意的信息傳遞介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號(hào)"是指以在該信號(hào)中編碼信息的方 式來設(shè)置或改變其一個(gè)或多個(gè)特性的信號(hào)。作為示例而非限制,通信介質(zhì)包括 諸如有線網(wǎng)絡(luò)或直線連接這樣的有線介質(zhì),以及諸如超聲波、RF、遠(yuǎn)紅外和其 它無線介質(zhì)這樣的無線介質(zhì)。任何以上組合也包括在計(jì)算機(jī)可讀介質(zhì)的范疇 內(nèi)。本說明書通篇引述了"一個(gè)實(shí)施例"、"一實(shí)施例"或"一范例實(shí)施例", 這意指特定的說明特征、結(jié)構(gòu)或特性是涵蓋在至少一個(gè)實(shí)施例中的。于是,這 樣短語的使用可引用到不止一個(gè)實(shí)施例中。進(jìn)一步,在一個(gè)或多個(gè)實(shí)施例中, 所述特征、結(jié)構(gòu)或特性能以任何合適的方式組合。以上說明、示例和數(shù)據(jù)提供了對(duì)本發(fā)明成分的制造和使用的全面描述。因 為可以在不背離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實(shí)施例,所以 本發(fā)明落在所附權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種用于在第一計(jì)算設(shè)備上部署應(yīng)用程序的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括從位于第二計(jì)算設(shè)備上的部署儲(chǔ)存庫獲取元數(shù)據(jù);其中所述元數(shù)據(jù)包括用于部署所述應(yīng)用程序的信息;以及使用所獲取的元數(shù)據(jù)在所述第一計(jì)算設(shè)備上部署所述應(yīng)用程序。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括響應(yīng)于檢查所獲取的 元數(shù)據(jù)來獲取資源。
3. 如權(quán)利要求2所述的方法,其特征在于,還包括在所述第一計(jì)算設(shè)備 上部署所述應(yīng)用程序期間將所述資源視為非本地資源。
4. 如權(quán)利要求2所述的方法,其特征在于,還包括周期性地輪詢所述第 二計(jì)算設(shè)備上的部署儲(chǔ)存庫。
5. 如權(quán)利要求1所述的方法,其特征在于,還包括確定所述第二計(jì)算設(shè) 備上涉及所述應(yīng)用程序的元數(shù)據(jù)何時(shí)已被改變。
6. 如權(quán)利要求5所述的方法,其特征在于,還包括在臨時(shí)持久目錄中存 儲(chǔ)所述元數(shù)據(jù)直到指示在所述第一計(jì)算設(shè)備上部署所述應(yīng)用程序的事件發(fā)生。
7. 如權(quán)利要求5所述的方法,其特征在于,確定所述第二計(jì)算設(shè)備上涉 及所述應(yīng)用程序的元數(shù)據(jù)何時(shí)已被改變包括,從所述第一計(jì)算設(shè)備獲取第一指 示符并從所述第二計(jì)算設(shè)備獲取第二指示符,并將所述第一指示符與所述第二 指示符相比較以確定所述元數(shù)據(jù)何時(shí)已被改變;其中所述第一指示符和所述第 二指示符可以是時(shí)間戳和版本之一。
8. 如權(quán)利要求1所述的方法,其特征在于,從所述第二計(jì)算設(shè)備上的部署儲(chǔ)存庫中獲取所述元數(shù)據(jù)包括以事務(wù)性的基礎(chǔ)將所述元數(shù)據(jù)下載至所述第 一計(jì)算設(shè)備。
9. 如權(quán)利要求3所述的方法,其特征在于,還包括獲取指向所述資源的 路徑名并且僅把所述路徑名的根目錄從原始根目錄改變?yōu)樗龅谝挥?jì)算設(shè)備 的域。
10. —種使用元數(shù)據(jù)部署應(yīng)用程序的裝置,包括 被配置為連接至網(wǎng)絡(luò)的網(wǎng)絡(luò)接口;處理器和計(jì)算機(jī)可讀介質(zhì);存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上并在所述處理器上執(zhí)行的操作環(huán)境;以及在所述操作環(huán)境的控制下進(jìn)行操作的部署引擎,并且所述部署引擎用于執(zhí)行以下動(dòng)作從位于網(wǎng)絡(luò)上的部署儲(chǔ)存庫獲取元數(shù)據(jù);其中所述元數(shù)據(jù)包括用于部署 應(yīng)用程序的信息;以及在所述計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)所獲取的元數(shù)據(jù); 獲取涉及所獲取的元數(shù)據(jù)的資源;以及 使用所獲取的元數(shù)據(jù)部署所述應(yīng)用程序。
11. 如權(quán)利要求IO所述的裝置,其特征在于,從位于網(wǎng)絡(luò)上的部署儲(chǔ)存 庫獲取元數(shù)據(jù)包括確定所述元數(shù)據(jù)何時(shí)已被更新。
12. 如權(quán)利要求11所述的裝置,其特征在于,在所述計(jì)算機(jī)可讀介質(zhì)上 存儲(chǔ)所獲取的元數(shù)據(jù)包括在臨時(shí)持久目錄內(nèi)存儲(chǔ)所述元數(shù)據(jù)直到指示部署所 述應(yīng)用程序的事件發(fā)生。
13. 如權(quán)利要求11所述的裝置,其特征在于,確定所述元數(shù)據(jù)何時(shí)已被 更新包括比較時(shí)間戳信息或版本信息。
14. 如權(quán)利要求13所述的裝置,其特征在于,從位于網(wǎng)絡(luò)上的部署儲(chǔ)存 庫獲取元數(shù)據(jù)包括以事務(wù)性的基礎(chǔ)下載所述元數(shù)據(jù)。
15. 如權(quán)利要求13所述的裝置,其特征在于,所獲取的元數(shù)據(jù)包括至少 一個(gè)訪問控制。
16. 如權(quán)利要求13所述的裝置,其特征在于,所述應(yīng)用程序被配置為査 詢所述部署引擎以取得所述資源的位置。
17. —種具有計(jì)算機(jī)可執(zhí)行指令來提供部署應(yīng)用程序的元數(shù)據(jù)的計(jì)算機(jī) 可讀介質(zhì),包括訪問來自部署儲(chǔ)存庫的且與部署應(yīng)用程序相關(guān)聯(lián)的元數(shù)據(jù); 訪問與所述元數(shù)據(jù)相關(guān)聯(lián)的資源;以及將所述元數(shù)據(jù)和所述資源提供給計(jì)算設(shè)備;其中所述元數(shù)據(jù)包括用于在所 述計(jì)算設(shè)備上部署所述應(yīng)用程序的信息。
18. 如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括將指示所述元數(shù)據(jù)已被改變的指示符與所述元數(shù)據(jù)相關(guān)聯(lián)。
19. 如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括當(dāng)要在 所述計(jì)算設(shè)備上更新所述應(yīng)用程序時(shí),更新所述部署儲(chǔ)存庫內(nèi)的所述元數(shù)據(jù)。
20. 如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括當(dāng)要在 所述計(jì)算設(shè)備上安裝所述應(yīng)用程序時(shí),在所述部署儲(chǔ)存庫內(nèi)安裝所述元數(shù)據(jù)。
全文摘要
一種計(jì)算設(shè)備包括與部署儲(chǔ)存庫通信的部署引擎,而該部署儲(chǔ)存庫則包括用于部署應(yīng)用程序的元數(shù)據(jù)。元數(shù)據(jù)可以包括對(duì)在應(yīng)用程序部署期間包括的資源的引用或鏈接。部署引擎確定部署儲(chǔ)存庫是否包含計(jì)算設(shè)備能夠下載的新的或已更新的元數(shù)據(jù)和/或資源。元數(shù)據(jù)包括允許部署引擎在計(jì)算設(shè)備上正確部署或更新應(yīng)用程序的信息。
文檔編號(hào)G06F17/00GK101326515SQ200680046354
公開日2008年12月17日 申請(qǐng)日期2006年12月5日 優(yōu)先權(quán)日2005年12月9日
發(fā)明者M·S·加奇保利, R·N·加奇保利, R·R·艾多弗, S·K·加奇保利 申請(qǐng)人:微軟公司