專利名稱:可部署對象分層結(jié)構(gòu)內(nèi)的應(yīng)用程序管理的制作方法
可部署對象分層結(jié)構(gòu)內(nèi)的應(yīng)用程序管理背景許多計算環(huán)境都包括由一組對象系統(tǒng)管理的大型且不同的對象集合。例如,計算 環(huán)境可包括由文件系統(tǒng)管理的文件集合、由數(shù)據(jù)庫系統(tǒng)管理的一個或多個數(shù)據(jù)庫、表示應(yīng) 用程序的并由匯編高速緩存管理的可執(zhí)行二進制代碼集合、由操作系統(tǒng)的用戶簡檔組件管 理的用戶簡檔集合、以及由數(shù)據(jù)高速緩存組件管理的各種數(shù)據(jù)高速緩存,如由操作系統(tǒng)的 復(fù)制緩沖區(qū)管理的復(fù)制項的集合、由操作系統(tǒng)的撤消組件管理的撤消動作的集合、以及由 操作系統(tǒng)的項使用跟蹤組件管理的“最近使用”項的集合。此外,可以在由一個或多個用戶 操作的多個設(shè)備之間并且根據(jù)一個或多個操作(例如,合并兩個對象集合的對象同步操作 和調(diào)整目標對象集合以與源對象集合進行匹配的對象鏡像操作)來交換這些對象。以此方 式,這些對象通過一組對象系統(tǒng)松散地進行組織并聚集以表示計算環(huán)境。常規(guī)計算環(huán)境內(nèi)的應(yīng)用程序管理通常涉及相對大的用戶參與。例如,用戶可獨立 地發(fā)現(xiàn)所需應(yīng)用程序,并可以取得安裝程序包,如安裝可執(zhí)行碼或包含安裝文件的⑶-ROM。 用戶隨后可以利用便于將應(yīng)用程序部署在計算環(huán)境中(如通過將文件復(fù)制到特定位置并 創(chuàng)建注冊信息)的應(yīng)用程序安裝程序。然而,在應(yīng)用程序部署之后,計算環(huán)境通常向該應(yīng)用 程序提供很少的進行中支持,有時只包括卸載程序。諸如執(zhí)行、共享、同步、以及更新等常見 維護任務(wù)通常移交給應(yīng)用程序。此外,應(yīng)用程序在一個計算機系統(tǒng)或設(shè)備上的部署很少允 許或便于該應(yīng)用程序在其他計算機系統(tǒng)或設(shè)備上的部署,即使由同一用戶操作并且在兩個 或多個這樣的平臺上用于共同目的。概述提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵因素或必要特征,也不旨在用于限定 所要求保護的主題的范圍。將對象在計算系統(tǒng)內(nèi)組織成不相交的松散聚集的對象系統(tǒng)集合可以造成若干問 題。例如,可能難以通過各種設(shè)備向用戶呈現(xiàn)一致的計算環(huán)境,尤其是在這些設(shè)備能力不同 的情況下(例如,高性能個人工作站、基于瀏覽器的公共終端、以及低性能蜂窩電話設(shè)備)。 作為另一示例,將諸如同步和備份等服務(wù)應(yīng)用于對象可涉及與每一對象系統(tǒng)進行接口以影 響由此管理的對象,并且這樣的接口可以隨對象系統(tǒng)而變化。作為第三示例,使不同的一組 對象相關(guān)(如,構(gòu)成一應(yīng)用程序的所有對象)可能因管理對象系統(tǒng)的不完全協(xié)作而是困難 的。用于表示構(gòu)成計算環(huán)境的對象的一種替換技術(shù)涉及將這些對象組織成可由計算 環(huán)境主機來主存的對象分層結(jié)構(gòu)。如果對象是由對象系統(tǒng)用統(tǒng)一方式來表示的并以一致的 方式來管理的,則可以設(shè)計一組服務(wù)來應(yīng)用于計算環(huán)境的所有對象。此外,對象分層結(jié)構(gòu)可 被傳遞到各個設(shè)備以表示同一計算環(huán)境(包括相同的用戶簡檔、應(yīng)用程序、數(shù)據(jù)文件等), 并且每一設(shè)備可以用一致的方式來呈現(xiàn)該計算環(huán)境,但基于該設(shè)備的能力(例如,用于從 附連到工作站的鍵盤設(shè)備接收數(shù)據(jù)輸入的硬鍵盤接口,以及用于從蜂窩電話設(shè)備接收數(shù)據(jù) 輸入的觸摸屏軟鍵盤接口)進行了定制。
4
在這一性質(zhì)的對象分層結(jié)構(gòu)內(nèi),可以執(zhí)行應(yīng)用程序管理任務(wù)。計算環(huán)境主機可以 便于獲取應(yīng)用程序、將該應(yīng)用程序與一設(shè)備相關(guān)聯(lián)、以及將該應(yīng)用程序部署在該設(shè)備上。將 應(yīng)用程序表示成可部署對象分層結(jié)構(gòu)中的一組對象可便于常見的應(yīng)用程序管理任務(wù)。作為 第一示例,并且在許多自動部署的場景中,應(yīng)用程序可以容易地部署在該對象分層結(jié)構(gòu)中 表示的多個計算機系統(tǒng)和設(shè)備上。例如,該應(yīng)用程序的第一版本可以部署到工作站;該應(yīng)用 程序的第二版本可以部署成用于公共終端的web應(yīng)用程序或啟用web的應(yīng)用程序;并且該 應(yīng)用程序的第三版本可以部署成供在低功率蜂窩電話設(shè)備上使用的減少功能的應(yīng)用程序。 作為第二示例,計算環(huán)境主機可以便于通過相應(yīng)地調(diào)整對象分層結(jié)構(gòu)并通過將所主存和部 署的該對象分層結(jié)構(gòu)的各版本進行同步來將這些調(diào)整部署到各設(shè)備以更新應(yīng)用程序(例 如,使用更新版本對應(yīng)用程序資源進行修補或部署供與該應(yīng)用程序一起使用的新內(nèi)容)。此外,將應(yīng)用程序表示成可部署對象分層結(jié)構(gòu)中的一組對象還可啟用新特征。作 為第一示例,通過將對象分層結(jié)構(gòu)的特定部分部署到第二用戶的設(shè)備、計算機系統(tǒng)、或計算 環(huán)境主機,計算環(huán)境可使用戶能夠與第二用戶共享應(yīng)用程序或應(yīng)用程序會話的一方面。例 如,第一用戶可以選擇一組歌曲對象來在第一計算機上通過媒體播放器應(yīng)用程序進行播 放,并可選擇與第二用戶共享該媒體播放器應(yīng)用程序會話(例如,通過將媒體播放器應(yīng)用 程序的音頻流傳輸?shù)降诙脩?。作為第二示例,應(yīng)用程序的配置可以跨各設(shè)備和計算機系 統(tǒng)來作為對象分層結(jié)構(gòu)的一部分進行同步。設(shè)備無關(guān)應(yīng)用程序?qū)傩?例如,添加到拼寫檢 查字典的自定義單詞)可以自動地傳播到所有這樣的設(shè)備和計算機系統(tǒng),而計算環(huán)境主機 可為相應(yīng)設(shè)備指定設(shè)備專用應(yīng)用程序?qū)傩?。以此方式,計算環(huán)境主機的應(yīng)用程序管理服務(wù) 可以支持應(yīng)用程序在由一個或多個用戶所操作的各計算機系統(tǒng)和設(shè)備上的發(fā)現(xiàn)、部署、使 用和移除。為實現(xiàn)上述和相關(guān)目的,以下描述和附圖闡述了各個說明性方面和實現(xiàn)。這些方 面和實現(xiàn)僅指示可使用一個或多個方面的各種方式中的一些。結(jié)合附圖閱讀以下詳細描 述,則本發(fā)明的其他方面、優(yōu)點、以及新穎特征將變得顯而易見。附圖描述
圖1是計算環(huán)境內(nèi)的典型應(yīng)用程序生存周期的圖示。圖2是計算環(huán)境主機與各計算環(huán)境呈現(xiàn)設(shè)備的示例性交互的圖示。圖3是示出對將應(yīng)用程序部署在表示設(shè)備上的計算環(huán)境的對象分層結(jié)構(gòu)中進行 管理的示例性方法的流程圖。圖4是示出用于對將由應(yīng)用程序存儲管理的至少一個應(yīng)用程序部署到表示至少 一個設(shè)備上的計算環(huán)境的對象分層結(jié)構(gòu)進行管理的示例性系統(tǒng)的組件框圖。圖5是示出用于對將應(yīng)用程序部署到表示至少一個設(shè)備上的計算環(huán)境的對象分 層結(jié)構(gòu)進行管理的另一示例性系統(tǒng)的組件框圖。圖6是示出用于對將應(yīng)用程序部署到表示至少一個設(shè)備上的計算環(huán)境的對象分 層結(jié)構(gòu)進行管理的又一示例性系統(tǒng)的組件框圖。圖7是示出用于對將應(yīng)用程序部署到表示至少一個設(shè)備上的計算環(huán)境的對象分 層結(jié)構(gòu)進行管理的示例性系統(tǒng)的一部分的組件框圖。圖8是示出用于對將應(yīng)用程序部署到表示至少一個設(shè)備上的計算環(huán)境的對象分 層結(jié)構(gòu)進行管理的示例性系統(tǒng)的另一部分的組件框圖。
圖9是示出用于對將應(yīng)用程序部署到表示至少一個設(shè)備上的計算環(huán)境的對象分 層結(jié)構(gòu)進行管理的示例性系統(tǒng)的又一部分的組件框圖。圖10是示出用于對將應(yīng)用程序部署到表示至少一個設(shè)備上的計算環(huán)境的對象分 層結(jié)構(gòu)進行管理的又一示例性系統(tǒng)的組件框圖。圖11示出了其中可實現(xiàn)此處所闡述的原理中的一個或多個的示例性計算環(huán)境。詳細描述現(xiàn)在參考附圖來描述所要求保護的主題,所有附圖中使用相同的附圖標記來指代 相同的元素。在以下描述中,為解釋起見,闡明了眾多具體細節(jié)以提供對所要求保護的主題 的全面理解。然而,很明顯,所要求保護的主題可以在沒有這些具體細節(jié)的情況下實施。在 其他情況下,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備以便于描述所要求保護的主題。常規(guī)計算環(huán)境通常包括大量各種各樣的一批應(yīng)用程序,范圍從具有簡單目的的小 工具(如時鐘和計算器)到復(fù)雜且相互關(guān)聯(lián)的大型應(yīng)用程序套件(如軟件集成開發(fā)環(huán)境和 生產(chǎn)力套件)。應(yīng)用程序還可包括媒體,如多媒體播放器和由此呈現(xiàn)的媒體對象(例如,要 由閱讀器應(yīng)用程序呈現(xiàn)的一本或多本電子書)、游戲、屏幕保護程序、用于管理各種類型的 硬件的設(shè)備驅(qū)動程序,等等。應(yīng)用程序可以部署在本地(例如,通過部署到用戶的設(shè)備的可 執(zhí)行二進制碼和資源)、遠程(例如,在遠程服務(wù)器上運行并通過web瀏覽器與用戶進行通 信的web應(yīng)用程序)、或其組合(例如,利用遠程資源的、安裝在本地的應(yīng)用程序,如被配置 成對網(wǎng)絡(luò)可訪問電子郵件檔案進行訪問的電子郵件客戶端)。通常提供操作系統(tǒng)以主存和 維護應(yīng)用程序并通過應(yīng)用程序啟動程序和與同它相關(guān)的數(shù)據(jù)對象的關(guān)聯(lián)來向用戶提供對 該應(yīng)用程序的訪問。圖1示出計算環(huán)境中的應(yīng)用程序所展示的典型應(yīng)用程序生存周期10。在典型計 算環(huán)境中表現(xiàn)的應(yīng)用程序生存周期10可涉及大量操作,如復(fù)制數(shù)據(jù)對象、寫入和讀出配置 信息、以及通過計算機網(wǎng)絡(luò)向服務(wù)器請求并從中接收對象。應(yīng)用程序生存周期10通常以取 得12開始,其中用戶選擇要使其可在計算環(huán)境中訪問的應(yīng)用程序。取得12通常包括發(fā)現(xiàn) 14,其中用戶變得知道該應(yīng)用程序,如通過用戶驅(qū)動的對應(yīng)用程序庫的瀏覽或廣告建議。取 得12通常還包括獲取16,其中用戶獲得該應(yīng)用程序的資源并安排用于使用該應(yīng)用程序的 許可。對于安裝在本地的應(yīng)用程序,獲取16可以涉及從應(yīng)用程序服務(wù)器下載安裝程序應(yīng)用 程序;而web可訪問應(yīng)用程序可涉及與該web應(yīng)用程序的提供者簽約,如通過創(chuàng)建用于web 郵件服務(wù)的用戶帳戶。獲取16還可涉及交易(如支付金錢)和許可(如,向用戶呈現(xiàn)最終 用戶許可協(xié)議(EULA)并請求接受其條款和條件)。取得12的部分或全部有時可以省略,如 通過使預(yù)先安裝的應(yīng)用程序可作為新計算環(huán)境的默認組件對用戶可用。在取得12之后或與其同時,應(yīng)用程序生存周期10通常涉及安裝18,其中本地計 算環(huán)境被配置成提供對該程序的訪問。安裝18有時涉及映射20,其中特定設(shè)備被配置成 使用該應(yīng)用程序。映射20可涉及用戶指定用于訪問該軟件的特定設(shè)備(例如,選擇要在其 上部署應(yīng)用程序的蜂窩電話設(shè)備)和/或向設(shè)備授權(quán)使用該軟件(例如,通過產(chǎn)品激活)。 安裝18還涉及部署22,其中將構(gòu)成該應(yīng)用程序的資源部署在一個或多個映射到的設(shè)備上 (例如,創(chuàng)建應(yīng)用程序文件夾、將應(yīng)用程序二進制碼置于這些文件夾中、注冊代碼庫、以及將 配置信息寫入系統(tǒng)注冊表和配置文件)。部署22還可涉及配置計算環(huán)境以提供對該應(yīng)用程 序的訪問,如通過將該應(yīng)用程序向應(yīng)用程序啟動程序注冊、將該應(yīng)用程序與同其相關(guān)的數(shù)
6據(jù)對象進行關(guān)聯(lián)(例如,將一媒體應(yīng)用程序標識為特定類型的媒體對象的媒體播放器)、和 /或配置計算環(huán)境以在系統(tǒng)初始化時或響應(yīng)于特定事件來自發(fā)地啟動該應(yīng)用程序。部署22 還可涉及顯示文檔編制以幫助用戶使用該應(yīng)用程序。在一些場景中,安裝18可涉及配置遠 程資源,如將設(shè)備向網(wǎng)絡(luò)服務(wù)器注冊或配置網(wǎng)絡(luò)服務(wù)器來為該設(shè)備主存該應(yīng)用程序。在其 他場景中,安裝18可被減少或省略;例如,部署在本地的應(yīng)用程序可包括可在不配置或安 裝的情況下運行的可執(zhí)行二進制碼,并且web應(yīng)用程序可能不涉及在本地設(shè)備上的任何類 型的安裝。在取得12和安裝18之后,應(yīng)用程序可做好準備來由一個或多個用戶進行使用24。 使用24通常涉及執(zhí)行26,它例如可通過啟動該應(yīng)用程序或激活與該應(yīng)用程序相關(guān)聯(lián)的數(shù) 據(jù)對象來開始。執(zhí)行26還可包括獲取附加內(nèi)容,如可由媒體播放器呈現(xiàn)的新媒體對象。使 用24還涉及更新28,它包括對該應(yīng)用程序的進行中改變,如修補以提供該應(yīng)用程序的新版 本或?qū)τ纱死玫馁Y源進行維護(例如,接收并合并用于檢測并解決新形式的惡意軟件的 信息的抗病毒包)。這樣的更新28有時可以由應(yīng)用程序服務(wù)器對遠程資源執(zhí)行;例如,web 郵件提供者可以在不涉及用戶或用戶設(shè)備并且甚至在不知道用戶的情況下頻繁更新其后 端軟件。應(yīng)用程序生存周期10還可涉及卸載30,其中從一個或多個設(shè)備移除該應(yīng)用程序。 卸載30可包括解除映射32,其中解除一個或多個設(shè)備使用該應(yīng)用程序的授權(quán)。例如,web 應(yīng)用程序只可在某些設(shè)備上訪問,并且可以通過將設(shè)備從存儲在應(yīng)用程序服務(wù)器上的授權(quán) 設(shè)備列表中移除來解除映射。卸載30還可包括退役34,其中從一個或多個設(shè)備移除應(yīng)用程 序的資源。退役34可由用戶來請求,或可以自發(fā)地調(diào)用(例如,可以只在有限時間段內(nèi)將 應(yīng)用程序許可給用戶,并且計算環(huán)境可被配置成在該許可證期限期滿之后自動地使該應(yīng)用 程序退役)。雖然對各種各樣的應(yīng)用程序廣泛地使用了應(yīng)用程序生存周期,但許多常規(guī)計算環(huán) 境被配置使得應(yīng)用程序生存周期展示出若干缺點。作為一個示例,常規(guī)計算環(huán)境可能需要 用戶大量參與進行該應(yīng)用程序生存周期。在取得12期間,計算環(huán)境可能對應(yīng)用程序的發(fā)現(xiàn) 或獲取提供很少支持或不支持,并且用戶可能承擔了通過研究(例如,web搜索)尋找有用 的應(yīng)用程序并下載應(yīng)用程序安裝包的任務(wù)。取得12還可涉及用戶接受許可證,但這有時可 能被廢除(例如,用戶可以預(yù)先授權(quán)在特定樣板最終用戶許可協(xié)議下所提供的任何應(yīng)用程 序)?,F(xiàn)代計算環(huán)境通常對映射20提供很少支持或不支持,并且用戶可能必須安排應(yīng)用程 序在一批設(shè)備上的單獨部署。許多常規(guī)計算環(huán)境提供對部署22的一些支持,如自動化安裝 程序工具。然而,這樣的安裝程序工具仍然可能向用戶委托可以其他方式避免的相當大量 的交互,如在web應(yīng)用程序中創(chuàng)建用戶帳戶時輸入用戶信息(名字、電子郵件地址等)、提 供信用卡信息以購買許可證、以及輸入諸如安裝CD等物理介質(zhì)包括的序列密鑰。常規(guī)計算 環(huán)境也對更新28提供不充分的支持,它通常被委托給應(yīng)用程序或甚至用戶啟動的發(fā)現(xiàn)、下 載、以及應(yīng)用軟件修補。最后,解除映射34和退役34可由安裝程序應(yīng)用程序來促進,但可 被限于按設(shè)備管理;例如,用戶可能必須在每一設(shè)備上啟動卸載并且所有這些設(shè)備之間的 集中式管理的部署可能是困難的。在現(xiàn)代計算環(huán)境使用(其通常擴展至一批設(shè)備)的上下文中,這些缺點可能惡化 并且可能產(chǎn)生其他缺點。計算環(huán)境的用戶可協(xié)作地管理并利用工作站、便攜式計算機系統(tǒng),如筆記本或平板計算機、游戲控制臺、蜂窩電話、以及媒體播放器。此外,用戶可能希望訪問 公共工作站上的計算環(huán)境的全部或部分,或向其他用戶授予對計算環(huán)境的部分或全部的訪 問權(quán)(例如,以允許顧客利用計算環(huán)境或訪問其中管理的數(shù)據(jù)對象)。盡管用戶可在計算環(huán) 境的上下文中操作的設(shè)備持續(xù)增長,但常規(guī)操作系統(tǒng)可能對計算環(huán)境在這些設(shè)備之間的一 致呈現(xiàn)提供很少支持,并且由此對促進數(shù)據(jù)對象的分發(fā)、訪問、以及同步提供很少支持。這 一有限支持對應(yīng)用程序尤其明顯。一般而言,用戶通常在每一設(shè)備上獨立于任何其他設(shè)備 的配置來手動地執(zhí)行應(yīng)用程序生存周期10的許多方面。例如,用戶可以根據(jù)用戶的偏好來 配置特定應(yīng)用程序,但在每一設(shè)備上以類似方式配置應(yīng)用程序通常涉及每一應(yīng)用程序部署 的手動配置。另外,以協(xié)作方式使用多個設(shè)備可以造成新問題;例如,用戶可能在第一設(shè)備 上具有關(guān)于一個人的一組聯(lián)系人信息,該聯(lián)系人信息與同一個人在第二設(shè)備上的一組聯(lián)系 人信息不一致,并且可能不能夠查明哪一組聯(lián)系人信息是更新的。最近,作出了嘗試來開發(fā)用于以一致的、可部署的且可擴展的方式來提供對一批 設(shè)備之中的計算環(huán)境的訪問的技術(shù)。這些技術(shù)還設(shè)法在進行協(xié)作的設(shè)備之間提供共同的應(yīng) 用程序集合,以及用于管理應(yīng)用程序在這些設(shè)備之間的取得、安裝、使用、和卸載的集中式 服務(wù)。該應(yīng)用程序集合在各設(shè)備之間不一定相同;例如,工作站可包含可能不能在蜂窩電話 設(shè)備上良好地運行的高性能應(yīng)用程序(例如,照片編輯軟件和圖形密集游戲),而蜂窩電話 設(shè)備可包括與非便攜工作站不相關(guān)的便攜性應(yīng)用程序(例如,基于GPS的地圖軟件)。然而, 許多應(yīng)用程序和與其相關(guān)的數(shù)據(jù)對象可以在這些設(shè)備之間共享(例如,被配置成管理用戶 日歷對象的日歷應(yīng)用程序),并且該計算環(huán)境可以適應(yīng)于能夠在這些設(shè)備之間分發(fā)和同步 該應(yīng)用程序和數(shù)據(jù)對象。該應(yīng)用程序還可以針對每一這樣的設(shè)備來進行適應(yīng);例如,該應(yīng)用 程序的第一版本或配置可以面向諸如工作站等高性能設(shè)備,而該應(yīng)用程序的第二版本或配 置可以面向具有有限屏幕大小和輸入能力的低性能設(shè)備。然而,同一應(yīng)用程序的應(yīng)用程序 配置的其他部分(例如,用戶偏好,如視覺樣式)可以在設(shè)備之間共享,并可以促進用戶對 該計算環(huán)境在各設(shè)備之間的體驗的一致性。因此,可以明白,可以用允許在一組設(shè)備之間部署計算環(huán)境(包括應(yīng)用程序集合) 的方式來有利地表示計算機系統(tǒng)。在一種這樣的技術(shù)中,計算環(huán)境-包括應(yīng)用程序集合、應(yīng) 用程序資源、以及由此使用的數(shù)據(jù)對象_是用以下方式表示的它可被傳遞到各設(shè)備以供 根據(jù)該設(shè)備的能力來呈現(xiàn)。該表示包括根據(jù)對象分層結(jié)構(gòu)來組織并根據(jù)共同語法來表示的 一組對象。這些對象包括計算機系統(tǒng)的數(shù)據(jù)對象,如用戶創(chuàng)建的用戶文件和數(shù)據(jù)。這些對 象還包括構(gòu)成操作系統(tǒng)組件的可執(zhí)行二進制碼和類庫,如外殼以及其中提供的應(yīng)用程序。 該對象還包括指定計算環(huán)境的用戶界面的信息,包括外殼偏好(例如,視覺主題、應(yīng)用程序 啟動菜單、以及雙擊閾值)、用戶帳戶及特權(quán)、安全信息(例如,口令、安全權(quán)標、以及證書)、 應(yīng)用程序二進制碼和配置信息、用戶數(shù)據(jù)和元數(shù)據(jù)(例如,文件共享信息)、以及數(shù)據(jù)高速 緩存(例如,最近使用的文件列表和瀏覽器歷史)。盡管這些對象具有各種性質(zhì)和用途,這 些對象在對象分層結(jié)構(gòu)中是以共同的方式來表示的,并且可在該分層結(jié)構(gòu)中任意組織。因 此,與包括一組隔離的數(shù)據(jù)存儲(每一隔離存儲包含一種類型的對象,例如,文件系統(tǒng)包含 文件、注冊表包含配置信息、以及數(shù)據(jù)高速緩存包含瀏覽器歷史)的常規(guī)計算機環(huán)境相反, 該方法中的對象分層結(jié)構(gòu)以共同的方式將所有這些對象組織在該對象分層結(jié)構(gòu)中。以此方式表示的計算環(huán)境可被傳遞到任何設(shè)備并以適合于該設(shè)備的能力的方式
8來呈現(xiàn)。例如,工作站可以將該信息呈現(xiàn)為穩(wěn)健且通用的計算環(huán)境,而公共工作站可以通過 web瀏覽器呈現(xiàn)不同的計算環(huán)境體驗(例如,作為可在用戶的會話結(jié)束時丟棄的虛擬機), 并且蜂窩電話可以提供具有對蜂窩電話相關(guān)信息(例如,聯(lián)系人、日歷、以及導(dǎo)航數(shù)據(jù))的 較快訪問的較瘦界面。此外,對該信息集的更新(例如,偏好改變和對其中包含的數(shù)據(jù)文件 的更新)可被應(yīng)用于該信息集的規(guī)范源,并且因此被傳播到該信息集被傳遞到的所有其他 設(shè)備。同樣,共享該計算環(huán)境的設(shè)備可以通過該共享信息集來集成,使得一個設(shè)備可以與在 該信息集中標識的其他設(shè)備進行交互;例如,存儲在第一設(shè)備上的數(shù)據(jù)可由第二設(shè)備訪問, 并且第一設(shè)備可由第二設(shè)備通過通信管道來控制。該信息集因此可以標識共享該計算環(huán)境 的設(shè)備的集合連同每一設(shè)備的角色、能力、以及資源,以跨可能大量各種設(shè)備來提供綜合計 算體驗。圖2示出一個這樣的場景,其中計算環(huán)境可由計算環(huán)境主機42主存,計算環(huán)境主 機42可以存儲并管理對象分層結(jié)構(gòu)44。計算環(huán)境主機42還可以用不同的方式代表各種設(shè) 備(如蜂窩電話設(shè)備46、個人筆記本計算機50、以及公共工作站54)并且還代表具有不同 訪問特權(quán)的不同類型的用戶來呈現(xiàn)對象分層結(jié)構(gòu)44。該計算環(huán)境的呈現(xiàn)因此反映了跨展示 相同的應(yīng)用程序、用戶簡檔、外殼配置、用戶數(shù)據(jù)對象等的所有設(shè)備的一致計算環(huán)境。因此, 用戶可以通過高性能筆記本計算機訪問該計算環(huán)境的全特征版本52、在低功率蜂窩電話設(shè) 備46上訪問該計算環(huán)境的精簡版本48、以及通過公共終端54的web瀏覽器46訪問該計 算環(huán)境的可兼容瀏覽器并且面向隱私的版本58。就每一這樣的設(shè)備的能力支持該計算環(huán) 境的呈現(xiàn)而言,由于根據(jù)每一設(shè)備的能力調(diào)整了對象分層結(jié)構(gòu)44的呈現(xiàn),所以可以呈現(xiàn)一 致的用戶界面和數(shù)據(jù)集。對計算環(huán)境的更新可以傳播回計算環(huán)境主機42,并且可以與其他 設(shè)備自動進行同步。各設(shè)備還可以通過與其他設(shè)備共享存儲在本地的數(shù)據(jù)并且通過控制其 他設(shè)備或由其他設(shè)備控制來進行協(xié)作。因此,可將該計算環(huán)境設(shè)計并呈現(xiàn)為云計算體系結(jié) 構(gòu),包括表達為跨形成同一計算環(huán)境的各協(xié)作門戶(具有設(shè)備專用屬性)的網(wǎng)格的所有設(shè) 備(“客戶機”)的一致呈現(xiàn)的設(shè)備無關(guān)表示(“云”)。具體而言,相對于該計算環(huán)境的應(yīng) 用程序,對象分層結(jié)構(gòu)44可包括應(yīng)用程序集合、應(yīng)用程序資源、以及由此創(chuàng)建的數(shù)據(jù)對象 的表示。此外,計算環(huán)境主機42可以將服務(wù)應(yīng)用于構(gòu)成對象分層結(jié)構(gòu)44的各個對象,并且 將對象存儲在該對象分層結(jié)構(gòu)中的共同格式可以便于這些服務(wù)的一致可用性和應(yīng)用,而不 論向其應(yīng)用這些服務(wù)的對象的性質(zhì)如何。除這些目的之外,對象分層結(jié)構(gòu)方案可被設(shè)計成以特定方式來組織該對象分層結(jié) 構(gòu)的各個對象。例如,可以設(shè)計并構(gòu)造各個對象以表示數(shù)據(jù)對象(如,文件)、用戶和用戶帳 戶、設(shè)備和該計算環(huán)境中發(fā)生的事件、以及來歷、所有權(quán)、以及它們之間的相互關(guān)系。相對于 對象的其他組織而言,組織對象的這一方式可以產(chǎn)生特定優(yōu)點和/或減少缺點。因此,根據(jù) 其來組織對象的該對象分層結(jié)構(gòu)方案是鑒于這些對象和計算環(huán)境的使用來設(shè)計的。例如, 可以通過將相應(yīng)對象與具有各種許可集合的一個或多個用戶帳戶(例如,第一用戶帳戶具 有對一對象的讀/寫許可,第二用戶帳戶具有對該對象的只讀許可,并且第三用戶帳戶沒 有對該對象的許可)進行關(guān)聯(lián)來對安全許可進行建模。計算環(huán)境可被配置成根據(jù)對象分層 結(jié)構(gòu)方案的結(jié)構(gòu)和語義來利用該對象分層結(jié)構(gòu)的對象,從而允許以適用于每一設(shè)備的配置 和能力但在其他方面在所有這樣的設(shè)備之間一致的方式來跨多個設(shè)備呈現(xiàn)可部署計算環(huán)境。
在這一性質(zhì)的對象分層結(jié)構(gòu)內(nèi),一組應(yīng)用程序可以用與每一應(yīng)用程序的應(yīng)用程序 生存周期相一致的方式來管理。例如,計算環(huán)境主機42可以便于獲取應(yīng)用程序、將該應(yīng)用 程序與一個或多個設(shè)備相關(guān)聯(lián)、以及將該應(yīng)用程序部署在每一設(shè)備上。將應(yīng)用程序表示成 對象分層結(jié)構(gòu)44中的一組對象可便于常見的應(yīng)用程序管理任務(wù)。作為第一示例,并且在許 多自動部署的場景中,應(yīng)用程序可以容易地部署在該對象分層結(jié)構(gòu)44中表示的多個計算 機系統(tǒng)和設(shè)備上。例如,該應(yīng)用程序的第一版本可以部署到個人筆記本計算機50 ;該應(yīng)用 程序的第二版本可以部署成用于公共工作站54的web應(yīng)用程序或啟用web的應(yīng)用程序;并 且該應(yīng)用程序的第三版本可以部署成供在低功率蜂窩電話設(shè)備46上使用的減少功能的應(yīng) 用程序。作為第二示例,計算環(huán)境主機42可以便于通過相應(yīng)地調(diào)整對象分層結(jié)構(gòu)44并通 過將所主存和部署的該對象分層結(jié)構(gòu)44的各版本進行同步來將這些調(diào)整部署到各設(shè)備以 更新應(yīng)用程序(例如,使用更新版本對應(yīng)用程序資源進行修補或部署供與該應(yīng)用程序一起 使用的新內(nèi)容)。將應(yīng)用程序集合表示成可部署對象分層結(jié)構(gòu)44中的一組對象還可啟用新特征。 作為第一示例,通過將對象分層結(jié)構(gòu)44的特定部分部署到第二用戶的設(shè)備、計算機系統(tǒng)、 或計算環(huán)境主機42,該計算環(huán)境可使用戶能夠與第二用戶共享應(yīng)用程序或應(yīng)用程序會話的 一方面。例如,第一用戶可以選擇一組歌曲對象來在第一計算機上通過媒體播放器應(yīng)用程 序進行播放,并可選擇與第二用戶共享該媒體播放器應(yīng)用程序會話(例如,通過將媒體播 放器應(yīng)用程序的音頻流傳輸?shù)降诙脩?。作為第二示例,應(yīng)用程序的配置可以跨各設(shè)備和 計算機系統(tǒng)來作為對象分層結(jié)構(gòu)的一部分進行同步。設(shè)備無關(guān)應(yīng)用程序?qū)傩?例如,添加 到拼寫檢查字典的自定義單詞)可以自動地傳播到所有這樣的設(shè)備和計算機系統(tǒng),而計算 環(huán)境主機42可為相應(yīng)設(shè)備指定設(shè)備專用應(yīng)用程序?qū)傩浴R源朔绞?,計算環(huán)境主機42的應(yīng) 用程序管理服務(wù)可以支持應(yīng)用程序在由一個或多個用戶所操作的各計算機系統(tǒng)和設(shè)備上 的發(fā)現(xiàn)、部署、使用和移除。這些任務(wù)的許多部分可以通過調(diào)整對象分層結(jié)構(gòu)44并將其部 署同步到其中表示的各個設(shè)備來執(zhí)行,作為自動化過程,這可以提供計算環(huán)境和總體用戶 體驗的一致性的顯著改進。圖3示出這些技術(shù)的一個實施例,作為對將存儲在應(yīng)用程序存儲中的應(yīng)用程序部 署到表示一設(shè)備上的計算環(huán)境的對象分層結(jié)構(gòu)進行管理的示例性方法60。參考圖2,這一 示例性方法60可被用來通過將應(yīng)用程序表示在(至少部分地)分發(fā)給一個或多個設(shè)備的 可部署對象分層結(jié)構(gòu)44中來在這些設(shè)備上安裝并管理該應(yīng)用程序,這些設(shè)備諸如蜂窩電 話設(shè)備40、筆記本計算機50、以及公共工作站54。示例性方法60在62開始,并且涉及接收 將應(yīng)用程序部署到設(shè)備的請求64。該請求可以由希望安裝該應(yīng)用程序的計算環(huán)境用戶通過 運行在該計算環(huán)境在一設(shè)備上的表示中的程序生成,通過被配置成生成具有至少一個預(yù)先 安裝的應(yīng)用程序的新計算環(huán)境的程序生成,等等。示例性方法60還涉及從應(yīng)用程序存儲獲 取該應(yīng)用程序66。如果該應(yīng)用程序是web應(yīng)用程序,則獲取66可以僅涉及(例如)驗證該 應(yīng)用程序在所提供的URL處的可用性。示例性方法60還涉及將對象分層結(jié)構(gòu)中表示的設(shè) 備映射到應(yīng)用程序68。映射68可涉及將設(shè)備在對象分層結(jié)構(gòu)內(nèi)的表示與應(yīng)用程序在對象 分層結(jié)構(gòu)內(nèi)的表示進行關(guān)聯(lián),在對象分層結(jié)構(gòu)中相對于該設(shè)備為該應(yīng)用程序創(chuàng)建一組配置
I H ; K、,寸寸。圖3的示例性方法還涉及在對象分層結(jié)構(gòu)中部署應(yīng)用程序70。部署70可涉及在對象分層結(jié)構(gòu)內(nèi)創(chuàng)建應(yīng)用程序的表示,在對象分層結(jié)構(gòu)的應(yīng)用程序表示中表示一個或多個 可執(zhí)行二進制碼,相對于該設(shè)備進一步配置該應(yīng)用程序,等等。對于web應(yīng)用程序,部署70 可包括例如將到一網(wǎng)站的鏈接插入與該設(shè)備相關(guān)聯(lián)的應(yīng)用程序啟動程序表示中,和/或在 該設(shè)備上創(chuàng)建一個或多個cookie以便于在會話之間保存該web應(yīng)用程序。示例性方法60 還涉及將對象分層結(jié)構(gòu)的至少一部分發(fā)送到設(shè)備72。例如,諸如筆記本計算機50等高性能 計算機系統(tǒng)可以接收對象分層結(jié)構(gòu)的完全版本,而相對低功率的蜂窩電話設(shè)備46可以只 接收對象分層結(jié)構(gòu)中與蜂窩電話設(shè)備46相關(guān)的一部分,包括與蜂窩電話設(shè)備16相兼容的 新應(yīng)用程序的部署。在配置了對象分層結(jié)構(gòu)以將應(yīng)用程序與設(shè)備進行關(guān)聯(lián)并將該對象分層 結(jié)構(gòu)部署到該設(shè)備之后,示例性方法60因此實現(xiàn)了對相對于該設(shè)備的所部署的應(yīng)用程序 的管理,并且因此在74結(jié)束。圖4表示這些技術(shù)的第二實施例,被實現(xiàn)成用于對將存儲在應(yīng)用程序存儲84中的 應(yīng)用程序部署到表示至少一個設(shè)備上的計算環(huán)境的對象分層結(jié)構(gòu)82進行管理的示例性系 統(tǒng)86。這一場景80涉及三個可部署應(yīng)用程序計算器應(yīng)用程序、日歷應(yīng)用程序、以及媒體 播放器應(yīng)用程序??梢允惯@些應(yīng)用程序在三個設(shè)備上表示的計算環(huán)境內(nèi)可用蜂窩電話設(shè) 備、筆記本計算機設(shè)備、以及公共工作站。在這一場景80中,應(yīng)用程序由表示至少一個應(yīng)用 程序的應(yīng)用程序存儲86來主存。這些應(yīng)用程序可以部署在計算環(huán)境內(nèi)和設(shè)備上,通過重新 配置對象分層結(jié)構(gòu)82可以將該計算環(huán)境呈現(xiàn)在該設(shè)備上。在這一場景80中,應(yīng)用程序管理系統(tǒng)86可用于實現(xiàn)一個或多個應(yīng)用程序在對象 分層結(jié)構(gòu)內(nèi)的部署。示例性系統(tǒng)86包括應(yīng)用程序獲取組件88,該組件被配置成接收安裝應(yīng) 用程序的請求并從應(yīng)用程序存儲84獲取該應(yīng)用程序。應(yīng)用程序獲取組件88還可確定該請 求是否滿足任何先決條件(例如,該應(yīng)用程序是否可以在所請求的設(shè)備上運行;鑒于用戶 的各種安全特權(quán)和許可問題,用戶是否被準許安裝并運行該應(yīng)用程序;等等)。圖4的示例 性系統(tǒng)86還包括應(yīng)用程序映射組件90,該組件被配置成將對象分層結(jié)構(gòu)82中表示的至少 一個設(shè)備映射到至少一個已安裝應(yīng)用程序。例如,如果計算器應(yīng)用程序已經(jīng)包括在對象分 層結(jié)構(gòu)82中,則應(yīng)用程序映射組件80可以在對象分層結(jié)構(gòu)82內(nèi)創(chuàng)建該計算器應(yīng)用程序與 在其上提供該應(yīng)用程序的一個或多個設(shè)備之間的關(guān)聯(lián)。如果計算器應(yīng)用程序尚未包括在對 象分層結(jié)構(gòu)82中,則示例性系統(tǒng)86還可在執(zhí)行映射之前在對象分層結(jié)構(gòu)82中創(chuàng)建該計算 器應(yīng)用程序的表示,例如通過將可執(zhí)行二進制碼的表示或到web應(yīng)用程序網(wǎng)站的鏈接復(fù)制 到對象分層結(jié)構(gòu)82。示例性系統(tǒng)86還包括應(yīng)用程序部署組件92,該組件被配置成將至少 一個已安裝應(yīng)用程序部署在對象分層結(jié)構(gòu)82中。部署可涉及例如,在對象分層結(jié)構(gòu)內(nèi)為新 映射的設(shè)備創(chuàng)建設(shè)備專用配置信息;將新映射的設(shè)備與設(shè)備無關(guān)配置信息進行關(guān)聯(lián);將該 應(yīng)用程序插入應(yīng)用程序啟動程序以在一個或多個設(shè)備上呈現(xiàn);等等。在將設(shè)備在對象分層 結(jié)構(gòu)82中的表示與該設(shè)備所呈現(xiàn)的計算環(huán)境中表示的應(yīng)用程序集的表示進行關(guān)聯(lián)之后, 示例性系統(tǒng)86從而實現(xiàn)對表示該計算環(huán)境的對象分層結(jié)構(gòu)中的部署應(yīng)用程序的管理。本文所描述的技術(shù)可用許多方面的變型來實現(xiàn),并且相對于這些和其他技術(shù)的其 他變型,一些變型可呈現(xiàn)出附加優(yōu)點和/或減少缺點。這些變型可以包括在各實施例中,如 圖3的示例性方法60和圖4的示例性系統(tǒng)86,并可以與其他這樣的變型兼容以呈現(xiàn)若干這 樣的附加優(yōu)點和/或減少缺點。因此,本領(lǐng)域普通技術(shù)人員可根據(jù)本文討論的技術(shù)設(shè)計出 許多這樣的實施例。
11
可在這些技術(shù)的各實現(xiàn)之間變化的第一方面涉及通過其提供應(yīng)用程序管理服務(wù) 的應(yīng)用程序管理服務(wù)器的體系結(jié)構(gòu)。如圖4所示,應(yīng)用程序管理系統(tǒng)84可以與具有各種應(yīng) 用程序的應(yīng)用程序存儲82交互,可以請求并接收其中存儲的應(yīng)用程序,并可以將該應(yīng)用程 序部署到對象分層結(jié)構(gòu)82。在這一場景80中,應(yīng)用程序管理系統(tǒng)84被實現(xiàn)成一個或多個 應(yīng)用程序存儲與計算環(huán)境主機86之間的獨立接口。然而,其他體系結(jié)構(gòu)和系統(tǒng)因素也可適 用于實現(xiàn)這些技術(shù)。圖5示出第二示例性體系結(jié)構(gòu)100,其中應(yīng)用程序管理服務(wù)86還用作應(yīng)用程序存 儲84,并且因此包含可部署到對象分層結(jié)構(gòu)82的各種應(yīng)用程序,如計算器應(yīng)用程序102和 日歷應(yīng)用程序104。這一實施例可呈現(xiàn)應(yīng)用程序獲取服務(wù)與可用于部署的應(yīng)用程序之間較 緊密集成的優(yōu)點。圖6示出第三示例性體系結(jié)構(gòu)110,其中計算環(huán)境主機42包括應(yīng)用程序管理服務(wù) 86。因此,計算環(huán)境主機42可以存儲對象分層結(jié)構(gòu)82和應(yīng)用程序管理服務(wù)86的各個服務(wù), 如應(yīng)用程序獲取組件88、應(yīng)用程序映射組件90、以及應(yīng)用程序部署組件92。在該第三示例 性體系結(jié)構(gòu)110中,應(yīng)用程序112可以從設(shè)備直接接收,如通過用戶在該設(shè)備上表示的計算 環(huán)境內(nèi)發(fā)起的請求。計算環(huán)境主機42可以接收這一請求并通過應(yīng)用程序管理服務(wù)86的各 組件來處理它,這將更新存儲在計算環(huán)境主機42中的對象分層結(jié)構(gòu)82。經(jīng)更新的對象分層 結(jié)構(gòu)82隨后可以與該設(shè)備進行同步以完成應(yīng)用程序到該設(shè)備的部署。在實現(xiàn)本文討論的 技術(shù)時,本領(lǐng)域普通技術(shù)人員可以設(shè)計出這些和其他系統(tǒng)因素。可在這些技術(shù)的各實現(xiàn)之間變化的第二方面涉及應(yīng)用程序管理的基本組件(包 括獲取、映射以及部署)中的變型。作為這一方面的第一變型,獲取應(yīng)用程序通常需要接收 部署該應(yīng)用程序的請求以及獲取該應(yīng)用程序來相對于特定設(shè)備部署到對象分層結(jié)構(gòu)。然 而,獲取還可包括通過該設(shè)備向用戶呈現(xiàn)應(yīng)用程序許可證,如顯示該應(yīng)用程序的最終用戶 許可協(xié)議的條款和條件。獲取還可包括請求該用戶接受應(yīng)用程序許可證來作為部署的先 決條件,以及在接收到對應(yīng)用程序許可證的接受后,獲取可包括記錄對該應(yīng)用程序許可證 的接受,如通過通知應(yīng)用程序許可證服務(wù)器。這一接受可以作為來自用戶的確認或作為自 動接受來接收,例如在用戶預(yù)先授權(quán)接受特定應(yīng)用程序許可證下的任何應(yīng)用程序的情況下 (例如,在GNU公共許可證的特定版本下提供的任何應(yīng)用程序)。獲取還可包括對與至少 一個設(shè)備的用戶的獲取事務(wù)進行中介,如對該應(yīng)用程序的許可證的電子商務(wù)購買。獲取還 可包括生成表示應(yīng)用程序的用戶的用戶帳戶,這對獲取對web應(yīng)用程序的訪問而言尤其有 利,如整個地主存在web郵件服務(wù)器上并通過計算環(huán)境中的瀏覽器來提供的web郵件應(yīng)用 程序。作為這一第二方面的第二變型,應(yīng)用程序的映射通常涉及將該應(yīng)用程序與對象分 層結(jié)構(gòu)中表示的一個或多個設(shè)備進行關(guān)聯(lián)。然而,該映射還可包括檢查設(shè)備專用條件,如該 應(yīng)用程序是否能以與該設(shè)備相兼容的版本可用以及該應(yīng)用程序或其變型(如,較早版本) 是否已經(jīng)在該設(shè)備上可用。映射還可涉及獲取附加資源以促進應(yīng)用程序到新設(shè)備的映射, 如可以與該設(shè)備兼容的應(yīng)用程序二進制碼的新版本或該應(yīng)用程序所依賴的可被部署到該 設(shè)備的附加組件(例如,可以從另一服務(wù)器檢索的支持運行時)。映射還可涉及通過應(yīng)用程 序激活服務(wù)器來激活應(yīng)用程序,這可以授權(quán)該應(yīng)用程序在特定設(shè)備上執(zhí)行,如通過通過可 由該設(shè)備上的應(yīng)用程序在啟動時驗證的認證證書。
作為這一第二方面的第三變型,應(yīng)用程序的部署涉及將該應(yīng)用程序部署在對象分 層結(jié)構(gòu)內(nèi),如通過將該應(yīng)用程序的各組件的表示插入該對象分層結(jié)構(gòu)中??梢杂枚喾N方式 來構(gòu)造更通常組織的應(yīng)用程序。小實用程序可包括可以全部或部分地編譯的單個可執(zhí)行二 進制碼,或包括可以作為在每一設(shè)備本地編譯的源代碼來包括的單個可執(zhí)行二進制碼。這 一可執(zhí)行二進制碼可以表示成例如源代碼模塊;解析樹;表示部分編譯的二進制碼、全部 編譯的二進制碼的中間語言指令,等等。較大實用程序可包括一組資源,如一個或多個可執(zhí) 行二進制碼;可在全局匯編高速緩存中注冊的共享匯編;諸如圖標、聲音對象、圖片、文檔、 以及視頻等應(yīng)用程序資源;幫助文件;存儲在諸如關(guān)系數(shù)據(jù)庫等一個或多個結(jié)構(gòu)化數(shù)據(jù)存 儲中的數(shù)據(jù)資源;輔助應(yīng)用程序資源,如用于文字處理應(yīng)用程序中的拼寫檢查工具的語言 字典文件;用作其中指定的資源的索引的應(yīng)用程序清單;等等。此外,應(yīng)用程序可包括可執(zhí) 行二進制碼的若干版本,其中的每一個版本都可針對特定平臺;例如,應(yīng)用程序可包括供在 諸如筆記本計算機50等較強大設(shè)備上使用的全特征版本和供在低功率蜂窩電話設(shè)備46上 使用的減少功能版本。應(yīng)用程序還可包括若干組配置信息,每一組信息都針對特定平臺。應(yīng) 用程序可被呈現(xiàn)為獨立安裝程序包,或可由基于設(shè)備的安裝程序部署的可安裝檔案,或可 在任何位置利用的一組一個或多個資源,等等。對象分層結(jié)構(gòu)還可包括較不常規(guī)結(jié)構(gòu)的應(yīng)用程序。例如,游戲應(yīng)用程序可包括大 量圖形資源,如用于構(gòu)造復(fù)雜三維環(huán)境和其中表示的對象的位圖紋理和網(wǎng)格。啟用web的 應(yīng)用程序可包括一組網(wǎng)頁,它們可包含內(nèi)聯(lián)代碼的各部分,或可以引用外部代碼資源,如以 源代碼或已編譯形式包括的Java對象。這樣的應(yīng)用程序還可以簡單地被表示成對其中可 獲得這樣的資源的網(wǎng)站的引用。還可以通過諸如可擴展應(yīng)用程序標記語言(XAML)等標記 語言來構(gòu)造啟用web的應(yīng)用程序,它可在設(shè)備上作為應(yīng)用程序或web瀏覽器中主存的小應(yīng) 用程序來編譯或解釋性地執(zhí)行。最后,web應(yīng)用程序可以簡單地表示成引用在其上部署該 應(yīng)用程序的部分或全部的一個或多個網(wǎng)站的一個或多個URL,它可以通過web瀏覽器在該 設(shè)備上訪問;作為替換或補充,可包括一些資源以用于設(shè)備部署,如可存儲在本地以持久保 持web應(yīng)用程序在會話之間的狀態(tài)的cookie。因為構(gòu)成應(yīng)用程序的資源可以是不同的,所以應(yīng)用程序在對象分層結(jié)構(gòu)中的部署 可以類似地穩(wěn)健。例如,文本資源可以作為純文本來包括,或可以使用通用或?qū)S脡嚎s實用 程序來壓縮。二進制資源可以被呈現(xiàn)成串行化二進制碼,可以用二進制壓縮實用程序來壓 縮,可被進行代碼轉(zhuǎn)換(例如,經(jīng)由Uuencode或MIME),等等。可以根據(jù)諸如XML等分層格 式化來構(gòu)造分層組織的對象,或可以將其串行化成單個分層對象。大型對象可以作為原子 單元來包括、可被壓縮、被進行代碼轉(zhuǎn)換(例如,電影文件可被以較低比特率重新編碼以節(jié) 省空間)、被分割成可隨時間或在自組織的基礎(chǔ)上被單獨地發(fā)送到設(shè)備的各個部分,等等。 資源可被包括在對象分層結(jié)構(gòu)中,或可以作為對主存可按需訪問的資源的服務(wù)器的引用來 插入。多個對象的大型集合可以作為檔案來包括(例如,包含數(shù)千對象的壓縮文件)?;?于web的應(yīng)用程序可被表示成其中可獲得該應(yīng)用程序的各組件的一個或多個URL ;作為替 換或補充,可以捕捉該web應(yīng)用程序的快照并將其包括在對象分層結(jié)構(gòu)中以提供該應(yīng)用程 序的高速緩存版本或啟用對該應(yīng)用程序的離線訪問。在實現(xiàn)本文討論的技術(shù)時,本領(lǐng)域普 通技術(shù)人員可能能夠設(shè)計出用于在對象分層結(jié)構(gòu)中表示應(yīng)用程序的許多技術(shù)。除在對象分層結(jié)構(gòu)中表示應(yīng)用程序之外,部署還可包括相對于設(shè)備和/或相對于
13用戶來配置該應(yīng)用程序。例如,可為設(shè)備制定新配置信息集合,或可以指定配置信息集合庫 中的適當?shù)呐渲眯畔⒓弦怨┰撛O(shè)備使用。圖7示出一個這樣的場景120,其中對象分層結(jié) 構(gòu)82包括包含兩個可執(zhí)行二進制碼(用于本地本機執(zhí)行的一個已編譯可執(zhí)行碼,以及用于 通過標準web瀏覽器進行較慢但更標準化的訪問的一個客戶機側(cè)瀏覽器腳本)和兩個配置 集合(用于高性能設(shè)備的全功能配置集合和用于低功率移動設(shè)備的便攜式配置集合)的日 歷應(yīng)用程序的表示。對象分層結(jié)構(gòu)82還包括包含供與任何設(shè)備一起使用的設(shè)備無關(guān)設(shè)置 的配置集合,如用戶所選擇的首選色彩方案。對象分層結(jié)構(gòu)82還包含可在其上呈現(xiàn)該計算 環(huán)境的兩個設(shè)備的表示低功率蜂窩電話設(shè)備46和高性能筆記本計算機50。在對象分層結(jié)構(gòu)82內(nèi)為這些設(shè)備部署應(yīng)用程序時,應(yīng)用程序部署組件92可以針 對在每一設(shè)備上的特定使用來配置該應(yīng)用程序。例如,可以通過將日歷應(yīng)用程序與可以在 蜂窩電話設(shè)備46的web瀏覽器應(yīng)用程序內(nèi)運行的客戶機側(cè)瀏覽器腳本可執(zhí)行二進制碼進 行關(guān)聯(lián)并與用于低功率設(shè)備的便攜式配置集合進行關(guān)聯(lián)來為蜂窩電話設(shè)備46部署該應(yīng)用 程序。類似地,可以通過將日歷應(yīng)用程序與已編譯可執(zhí)行二進制碼進行關(guān)聯(lián)并與可提供筆 記本計算機50能夠呈現(xiàn)的計算上密集的特征的全功能配置集合進行關(guān)聯(lián)來為筆記本計算 機50部署該應(yīng)用程序。然而,兩設(shè)備可以合并設(shè)備無關(guān)配置集合以呈現(xiàn)一致的設(shè)備無關(guān)特 征集合,從而促進計算網(wǎng)格的所有這些設(shè)備之間的一致計算環(huán)境。在實現(xiàn)本文討論的技術(shù) 時,本領(lǐng)域普通技術(shù)人員能夠設(shè)計出在對象分層結(jié)構(gòu)82中對應(yīng)用程序的獲取、映射、以及 部署的附加變型??稍谶@些技術(shù)的實現(xiàn)之間變化的第三方面涉及可被添加到這些實施例的基本組 件的附加特征。除基本管理服務(wù)(獲取、映射、以及部署)之外,可為應(yīng)用程序管理提供附 加服務(wù),這可便于用戶和計算機系統(tǒng)管理應(yīng)用程序生存周期。作為這一第三方面的第一變型,應(yīng)用程序管理服務(wù)還可擔當計算環(huán)境主機,如圖6 的第三示例性體系結(jié)構(gòu)110中示出的。在這一第一變型中,應(yīng)用程序管理服務(wù)還包括被配 置成存儲對象分層結(jié)構(gòu)的對象分層結(jié)構(gòu)存儲以及被配置成將對象分層結(jié)構(gòu)的至少一部分 發(fā)送到這些設(shè)備(例如,通過將經(jīng)更新的對象分層結(jié)構(gòu)與存儲在每一設(shè)備上的對象分層結(jié) 構(gòu)進行同步)的對象分層結(jié)構(gòu)傳輸組件。對象分層結(jié)構(gòu)的包括已部署到該設(shè)備的應(yīng)用程序 的那一部分的傳輸可以實現(xiàn)應(yīng)用程序在該設(shè)備上的安裝和部署。作為這一第三方面的第二變型,應(yīng)用程序管理服務(wù)還可便于發(fā)現(xiàn)用戶可能感興趣 的應(yīng)用程序。例如,對應(yīng)用程序到對象分層結(jié)構(gòu)的部署進行管理的方法(如圖3的示例性 方法60)可包括查詢方面,其中該方法被配置成在從接收到應(yīng)用程序查詢后選擇滿足該應(yīng) 用程序查詢的應(yīng)用程序并將所選應(yīng)用程序呈現(xiàn)給該用戶。類似地,用于對應(yīng)用程序到對象 分層結(jié)構(gòu)的部署進行管理的系統(tǒng)(如圖4的示例性系統(tǒng)86)可包括應(yīng)用程序發(fā)現(xiàn)組件,該 組件可被配置成從用戶接收應(yīng)用程序查詢,選擇滿足該應(yīng)用程序查詢的應(yīng)用程序,并將所 選應(yīng)用程序呈現(xiàn)給用戶。用戶隨后可以選擇獲取所選應(yīng)用程序中的一個或多個,應(yīng)用程序 管理系統(tǒng)可將它們部署到對象分層結(jié)構(gòu)。圖8示出一個這樣的場景130,其中用戶132希望標識可與用戶的蜂窩電話設(shè)備 46兼容的音頻播放器應(yīng)用程序。用戶132可以因此向應(yīng)用程序管理服務(wù)86的應(yīng)用程序發(fā) 現(xiàn)組件134發(fā)起應(yīng)用程序查詢136,如對蜂窩電話設(shè)備兼容的媒體播放器應(yīng)用程序的查詢。 應(yīng)用程序發(fā)現(xiàn)組件134可以與應(yīng)用程序存儲84進行通信以標識滿足應(yīng)用程序查詢136的應(yīng)用程序,如用于蜂窩電話設(shè)備的音頻播放器應(yīng)用程序和用于蜂窩電話設(shè)備的視頻播放器 應(yīng)用程序。應(yīng)用程序發(fā)現(xiàn)組件134可以因此提供將這些應(yīng)用程序呈現(xiàn)給用戶132的響應(yīng) 138。用戶132可以使用對所發(fā)現(xiàn)的要部署到蜂窩電話設(shè)備46的應(yīng)用程序中的一個或多個 的選擇140來回復(fù)應(yīng)用程序管理服務(wù)86。應(yīng)用程序管理服務(wù)86隨后可以獲取所選應(yīng)用程 序(在這一場景130中,是用于蜂窩電話設(shè)備的音頻播放器應(yīng)用程序),并可以將該應(yīng)用程 序部署到對象分層結(jié)構(gòu)142,它隨后可被發(fā)送到蜂窩電話設(shè)備46以完成所選應(yīng)用程序的部 署。在實現(xiàn)本文討論的技術(shù)時,本領(lǐng)域普通技術(shù)人員能夠設(shè)計出用于便于應(yīng)用程序的發(fā)現(xiàn) 的其他方法。作為這一第三方面的第三變型,應(yīng)用程序管理服務(wù)還可便于啟動應(yīng)用程序。例如, 實現(xiàn)了應(yīng)用程序管理服務(wù)的示例性系統(tǒng)可以包括應(yīng)用程序啟動組件,該組件可被配置成在 至少一個設(shè)備上啟動應(yīng)用程序。應(yīng)用程序啟動組件可包括例如被配置成為該設(shè)備提供平臺 并便于應(yīng)用程序在其上的執(zhí)行的運行時。例如,應(yīng)用程序可以作為客戶機側(cè)瀏覽器腳本部 署在服務(wù)中,并且應(yīng)用程序管理服務(wù)可包括對象分層結(jié)構(gòu)連同該瀏覽器腳本可在其中解釋 性地執(zhí)行的瀏覽器運行時。作為另一示例,應(yīng)用程序可被表示成源代碼,并且應(yīng)用程序啟動 組件可包括在設(shè)備上啟動應(yīng)用程序后將該源代碼編譯成可在該設(shè)備上執(zhí)行的可執(zhí)行二進 制碼的設(shè)備專用編譯器。此外,應(yīng)用程序啟動組件還可存儲已編譯的可執(zhí)行二進制碼,如存 儲在匯編高速緩存中,并可通過讀取所存儲的可執(zhí)行二進制碼而非重新編譯該應(yīng)用程序來 對啟動該應(yīng)用程序的后續(xù)請求作出響應(yīng)。作為第三示例,啟用web的應(yīng)用程序可包括被配 置成訪問遠程資源的客戶機側(cè)前端,并且在啟動該應(yīng)用程序時,應(yīng)用程序啟動組件可以嘗 試連接到該遠程資源并驗證其對設(shè)備的可用性。在實現(xiàn)本文討論的技術(shù)時,本領(lǐng)域普通技 術(shù)人員能夠設(shè)計出便于在設(shè)備上啟動應(yīng)用程序的許多方式。作為這一第三方面的第四變型,應(yīng)用程序管理服務(wù)還可便于與其他用戶共享應(yīng)用 程序的各方面。這樣的應(yīng)用程序共享可以在許多場景中發(fā)生。作為第一示例,該共享可涉及 共享全應(yīng)用程序(包括與其相關(guān)聯(lián)的所有資源和數(shù)據(jù)對象)。作為第二示例,該共享可涉及 與另一用戶共享該應(yīng)用程序的一個版本;例如,第一用戶可能購買了用于使用該應(yīng)用程序 的許可證,并可與第二用戶共享該應(yīng)用程序的減少功能版本,這可展示該應(yīng)用程序的一些 特征以鼓勵第二用戶取得該應(yīng)用程序的許可證。作為第三示例,該共享可涉及共享與該應(yīng) 用程序相關(guān)聯(lián)的一個或多個數(shù)據(jù)對象,如使用該應(yīng)用程序創(chuàng)建的媒體對象。第二用戶隨后 可以使用同一應(yīng)用程序或另一應(yīng)用程序來在該第二用戶的計算環(huán)境內(nèi)呈現(xiàn)這些媒體對象。 作為第四示例,該共享可涉及與另一用戶共享應(yīng)用程序的配置;例如,在作為團隊來開發(fā)軟 件時,軟件開發(fā)團隊的若干成員可以利用集成開發(fā)環(huán)境的特定配置。作為第五示例,該共享 可涉及與另一用戶共享應(yīng)用程序的會話;例如,兩個用戶可以在準備文本文檔時進行協(xié)作, 并且第一用戶可以與第二用戶共享文字處理應(yīng)用程序的會話以促進這些用戶之間的實況 交互。這些共享場景還可以在(由單個對象分層結(jié)構(gòu)表示的)計算環(huán)境的若干用戶之間產(chǎn) 生,或在(由多個對象分層結(jié)構(gòu)表示的)兩個或多個計算環(huán)境的用戶之間產(chǎn)生,或可以在通 過經(jīng)由諸如文件傳輸協(xié)議(FTP)等常見通信協(xié)議來提供共享計算環(huán)境的數(shù)據(jù)對象來與以 未知方式表示的計算環(huán)境的用戶共享表示一計算環(huán)境的對象分層結(jié)構(gòu)的一部分時產(chǎn)生。在 實現(xiàn)本文討論的技術(shù)時,本領(lǐng)域普通技術(shù)人員設(shè)計出這些和其他共享場景。圖9示出應(yīng)用程序共享場景150,其中第一對象分層結(jié)構(gòu)152的第一用戶獲取了
15媒體播放器應(yīng)用程序和各藝術(shù)家創(chuàng)建的各種歌曲的形式的一些媒體對象,其中這些媒體對 象是以高保真度方式來編碼的(即,以320kbps編碼速率)。第一用戶還創(chuàng)建諸如播客等 媒體播放器會話,它引用在第一對象分層結(jié)構(gòu)152的媒體部分中表示的對象中的幾個。第 一用戶可能希望與第二對象分層結(jié)構(gòu)154的第二用戶共享這一播客。應(yīng)用程序共享因此可 以涉及將媒體播放器會話從第一對象分層結(jié)構(gòu)152復(fù)制到第二對象分層結(jié)構(gòu)154。因為媒 體播放器會話引用存儲在第一對象分層結(jié)構(gòu)152中的一些媒體對象,所以應(yīng)用程序共享還 可涉及通過將其中引用的媒體對象復(fù)制到第二對象分層結(jié)構(gòu)154來共享這些媒體對象。然 而,與媒體對象相關(guān)聯(lián)的數(shù)字權(quán)限可以只準許以較低保真度來將媒體對象傳輸?shù)狡渌麑ο?分層結(jié)構(gòu);因此,計算環(huán)境可以將經(jīng)代碼轉(zhuǎn)換成較低質(zhì)量(24kbps編碼速率)的媒體對象的 版本發(fā)送到第二對象分層結(jié)構(gòu)。另外,第二對象分層結(jié)構(gòu)154可能不包括用于由媒體對象 表示的類型的音頻的媒體播放器應(yīng)用程序。因此,第一對象分層結(jié)構(gòu)152可以與第二對象 分層結(jié)構(gòu)154共享媒體播放器應(yīng)用程序的某一版本;然而,可遵循第一用戶所獲取的媒體 播放器應(yīng)用程序的最終用戶許可協(xié)議來將減少功能版本發(fā)送到第二用戶。以此方式,該應(yīng) 用程序、由此呈現(xiàn)媒體對象和第一用戶所生成的應(yīng)用程序會話可通過將第一對象分層結(jié)構(gòu) 152的各部分發(fā)送到第二對象分層結(jié)構(gòu)154來以自動化方式與第二用戶共享,同時遵循與 該應(yīng)用程序會話相關(guān)的各組件的數(shù)字權(quán)限。作為這一第三方面的第五變型,應(yīng)用程序管理服務(wù)可以便于用新內(nèi)容更新應(yīng)用程 序。通常通過修補二進制碼、插入新資源、以及更改或移除現(xiàn)有資源等來使用新內(nèi)容將應(yīng)用 程序更新成新版本并用新內(nèi)容來更新應(yīng)用程序。這樣的更新可由應(yīng)用程序管理服務(wù)通過 獲取應(yīng)用程序更新并將這些更新部署到對象分層結(jié)構(gòu)中表示的應(yīng)用程序來執(zhí)行(例如,通 過更新對象分層結(jié)構(gòu)中包含的應(yīng)用程序資源和/或?qū)⑿沦Y源作為新對象插入該對象分層 結(jié)構(gòu))。這些更新可以在獲取了要由應(yīng)用程序展示的新內(nèi)容的用戶進行請求時應(yīng)用;或可 由應(yīng)用程序管理服務(wù)通過向應(yīng)用程序存儲進行查詢來檢索;或可由應(yīng)用程序存儲或管理服 務(wù)器推送到應(yīng)用程序管理服務(wù);等等。經(jīng)更新的對象分層結(jié)構(gòu)隨后可被發(fā)送到一個或多個 設(shè)備,并且因此可以在減少了對用戶參與的依賴的情況下實現(xiàn)對計算環(huán)境的應(yīng)用程序的更 新。在實現(xiàn)本文討論的技術(shù)時,本領(lǐng)域普通技術(shù)人員能夠設(shè)計出更新對象分層結(jié)構(gòu)中表示 的應(yīng)用程序的許多方式。作為這一第三方面的第六變型,應(yīng)用程序管理服務(wù)還可準許從計算環(huán)境中撤消應(yīng) 用程序。這一撤消可涉及許多場景,如移除應(yīng)用程序到設(shè)備的映射、在應(yīng)用程序激活服務(wù)器 的授權(quán)設(shè)備列表中解除設(shè)備的授權(quán)、將應(yīng)用程序資源從設(shè)備移除(例如,通過從設(shè)備扣押 對象分層結(jié)構(gòu)中包含應(yīng)用程序資源的那一部分)、以及通過從對象分層結(jié)構(gòu)并從所有映射 的設(shè)備移除所有應(yīng)用程序資源來完全停止使用該應(yīng)用程序。該撤消可以是在希望從一個或 多個設(shè)備卸載該應(yīng)用程序的用戶進行請求時來進行的,或在有限持續(xù)時間的軟件許可證期 滿時進行的,或在從計算網(wǎng)格移除設(shè)備時進行的,等等。作為這一變型的一示例性實施例, 應(yīng)用程序管理系統(tǒng)可包括被配置成以這些方式中的任一種從至少一個設(shè)備撤消應(yīng)用程序 的應(yīng)用程序撤消組件。在實現(xiàn)本文討論的技術(shù)時,本領(lǐng)域普通技術(shù)人員能夠設(shè)計出從對象 分層結(jié)構(gòu)所表示的計算環(huán)境內(nèi)撤消應(yīng)用程序的許多方式。這些方面的這些變型可包括在本文討論的技術(shù)的許多實施例中,包括圖3的示例 性方法60和圖4的示例性系統(tǒng)86。此外,若干這樣的變型可以作為組合來實現(xiàn),以及與這
16些技術(shù)的這些和其他方面的其他變型一起實現(xiàn),以相對于圖3-4中示出的更基本實施例來 提供若干優(yōu)點和/或減少缺點。一些組合還可提供復(fù)合優(yōu)點;例如,應(yīng)用程序發(fā)現(xiàn)組件可以 協(xié)作式地鏈接到應(yīng)用程序獲取組件以呈現(xiàn)應(yīng)用程序的取得的發(fā)現(xiàn)、購買、許可證接受、以及 用戶帳戶創(chuàng)建來作為綜合用戶體驗。圖10示出用于對應(yīng)用程序在表示至少一個設(shè)備(如蜂窩電話設(shè)備46、筆記本計算 機50、公共工作站54)上的計算環(huán)境的對象分層結(jié)構(gòu)44中的部署進行管理的示例性系統(tǒng) 160。圖10的示例性系統(tǒng)160實現(xiàn)本文討論的各變型中的許多變型。示例性系統(tǒng)160包括 被配置成存儲對象分層結(jié)構(gòu)44的對象分層結(jié)構(gòu)存儲82和表示至少一個應(yīng)用程序的應(yīng)用程 序存儲84,相應(yīng)應(yīng)用程序包括至少一個應(yīng)用程序資源。示例性系統(tǒng)160還包括應(yīng)用程序發(fā) 現(xiàn)組件134,該組件被配置成從用戶接收應(yīng)用程序查詢,選擇滿足該應(yīng)用程序查詢的應(yīng)用程 序,并將所選應(yīng)用程序呈現(xiàn)給用戶。示例性系統(tǒng)160還包括應(yīng)用程序獲取組件88,該組件被 配置成接收安裝應(yīng)用程序的請求,通過該設(shè)備將應(yīng)用程序許可證呈現(xiàn)給用戶,以及在從用 戶接收到對該應(yīng)用程序許可證的接受后記錄對該應(yīng)用程序許可證的接受。應(yīng)用程序獲取組 件88還被配置成生成表示應(yīng)用程序的用戶的用戶帳戶以及對與至少一個設(shè)備的用戶的獲 取事務(wù)進行中介。應(yīng)用程序發(fā)現(xiàn)組件134與應(yīng)用程序獲取組件88 —起便于典型的應(yīng)用程 序生存周期中的應(yīng)用程序取得。圖10的示例性系統(tǒng)160還包括應(yīng)用程序映射組件90,該組件被配置成將對象分 層結(jié)構(gòu)44中表示的至少一個設(shè)備映射到至少一個已安裝應(yīng)用程序。示例性系統(tǒng)160還包 括應(yīng)用程序部署組件92,該組件被配置成通過相對于設(shè)備和該設(shè)備的用戶中的至少一個來 配置應(yīng)用程序以將至少一個已安裝應(yīng)用程序部署在對象分層結(jié)構(gòu)44中。應(yīng)用程序映射組 件90和應(yīng)用程序部署組件92 —起便于典型的應(yīng)用程序生存周期中、在對象分層結(jié)構(gòu)內(nèi)的 應(yīng)用程序安裝。圖10的示例性系統(tǒng)160還包括應(yīng)用程序啟動組件162,該組件被配置成在至少一 個設(shè)備上啟動應(yīng)用程序。示例性系統(tǒng)160還包括應(yīng)用程序共享組件164,該組件被配置成接 收與用戶共享應(yīng)用程序的請求,以及在接收到共享該應(yīng)用程序的請求后與該用戶共享對象 分層結(jié)構(gòu)中包括以下至少一個的一部分應(yīng)用程序、應(yīng)用程序會話、應(yīng)用程序配置、以及該 應(yīng)用程序生成的至少一個數(shù)據(jù)對象。示例性系統(tǒng)160還包括應(yīng)用程序更新組件166,該組件 被配置成更新對象分層結(jié)構(gòu)44中的至少一個應(yīng)用程序資源。應(yīng)用程序啟動組件162、應(yīng)用 程序共享組件164、以及應(yīng)用程序更新組件166 —起便于典型的應(yīng)用程序生存周期中、在一 個或多個設(shè)備上的應(yīng)用程序執(zhí)行。圖10的示例性系統(tǒng)160還包括應(yīng)用程序撤消組件168,該組件被配置成撤消應(yīng)用 程序(例如,通過從對象分層結(jié)構(gòu)中的一個或多個設(shè)備的表示中解除該應(yīng)用程序的映射、 將應(yīng)用程序資源從一個或多個設(shè)備移除、和/或通過將該應(yīng)用程序從對象分層結(jié)構(gòu)完全移 除來完全停止使用它)。應(yīng)用程序撤消組件168因此便于在典型的應(yīng)用程序生存周期中的 應(yīng)用程序卸載。最后,示例性系統(tǒng)160還包括對象分層結(jié)構(gòu)傳輸組件170,該組件被配置成將對象 分層結(jié)構(gòu)44的至少一部分發(fā)送到至少一個設(shè)備。對象分層結(jié)構(gòu)44可由應(yīng)用程序管理系統(tǒng) 160的各組件中的許多組件來修改,并且對對象分層結(jié)構(gòu)44的修改可以與其中表示的一個 或多個設(shè)備進行同步以實現(xiàn)對計算環(huán)境的應(yīng)用程序集合的更新。通過組合本文討論的技術(shù)的這些變型,示例性系統(tǒng)160因此提供用于在構(gòu)成計算網(wǎng)格的許多設(shè)備之間經(jīng)由典型的應(yīng) 用程序生存周期管理大型應(yīng)用程序集合的全面的應(yīng)用程序管理服務(wù)。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán) 利要求書中定義的主題不必限于上述具體特征或動作。相反,上文所描述的具體特征和動 作是作為實現(xiàn)權(quán)利要求的示例形式來公開的。如在本申請中所使用的,術(shù)語“組件”、“模塊”、“系統(tǒng)”、“接口 ”等一般旨在表示計 算機相關(guān)的實體,該實體可以是硬件、硬件和軟件的組合、軟件、或者執(zhí)行中的軟件。例如, 組件可以是,但不限于是,在處理器上運行的進程、處理器、對象、可執(zhí)行碼、執(zhí)行的線程、程 序和/或計算機。作為說明,運行在控制器上的應(yīng)用程序和控制器都可以是組件。一個或 多個組件可以駐留在進程和/或執(zhí)行的線程中,并且組件可以位于一個計算機內(nèi)和/或分 布在兩個或更多計算機之間。此外,所要求保護的主題可以使用產(chǎn)生控制計算機以實現(xiàn)所公開的主題的軟件、 固件、硬件或其任意組合的標準編程和/或工程技術(shù)而被實現(xiàn)為方法、裝置或制品。在此使 用的術(shù)語“制品”旨在涵蓋可以從任何計算機可讀設(shè)備、載體或介質(zhì)訪問的計算機程序。當 然,本領(lǐng)域的技術(shù)人員將會認識到,在不背離所要求保護的主題的范圍或精神的前提下可 以對這一配置進行許多修改。圖11和以下討論提供了對用于實現(xiàn)此處所闡述的原理中的一個或多個實施例的 合適計算環(huán)境的簡要、概括描述。圖11的操作環(huán)境只是合適的操作環(huán)境的一個示例,并不 旨在對該操作環(huán)境的使用范圍或功能提出任何限制。示例計算設(shè)備包括但不限于個人計算 機、服務(wù)器計算機、手持式或膝上型設(shè)備、移動設(shè)備(諸如移動電話、個人數(shù)字助理(PDA)、 媒體播放器等等)、多處理器系統(tǒng)、消費電子產(chǎn)品、小型計算機、大型計算機、包括任何以上 系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。盡管并非必需,但各實施例在由一個或多個計算設(shè)備執(zhí)行的“計算機可讀指令”的 一般上下文中描述。計算機可讀指令可通過計算機可讀介質(zhì)來分發(fā)(在以下討論)。計算 機可讀指令可被實現(xiàn)為執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的程序模塊,如函數(shù)、對象、 應(yīng)用程序編程接口(API)、數(shù)據(jù)結(jié)構(gòu)等等。通常,計算機可讀指令的功能可按需在各個環(huán)境 中組合或分布。圖11示出了包括被配置成實現(xiàn)此處所提供的一個或多個實施例的計算設(shè)備182 的系統(tǒng)180的示例。在一種配置中,計算設(shè)備182包括至少一個處理單元186和存儲器188。 取決于計算設(shè)備的確切配置和類型,存儲器188可以是易失性的(如RAM)、非易失性的(如 ROM、閃存等)或是兩者的某種組合。該配置在圖11中由虛線184來示出。在其他實施例中,設(shè)備182可以包括附加特征和/或功能。例如,設(shè)備182還可以 包括附加存儲(例如,可移動和/或不可移動),其中包括但不限于磁存儲、光存儲等等。這 樣的附加存儲在圖11中由存儲190示出。在一個實施例中,用于實現(xiàn)此處所提供的一個或 多個實施例的計算機可讀指令可以在存儲190中。存儲190還可以儲存實現(xiàn)操作系統(tǒng)、應(yīng) 用程序等其他計算機可讀指令。可以在存儲器188中加載計算機可讀指令以便由例如處理 單元186來執(zhí)行。此處所使用的術(shù)語“計算機可讀介質(zhì)”包括計算機存儲介質(zhì)。計算機存儲介質(zhì)包 括以用于存儲諸如計算機可讀指令或其他數(shù)據(jù)等信息的任何方法或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。存儲器188和存儲190都是計算機存儲介質(zhì)的示例。 計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術(shù)、CD-ROM、數(shù)字多 功能盤(DVD)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其他磁存儲設(shè)備、或者可用于存儲 所需信息并且可由設(shè)備182訪問的任何其他介質(zhì)。任何這樣的計算機存儲介質(zhì)都可以是設(shè) 備182的一部分。設(shè)備182還可包括允許該設(shè)備182與其他設(shè)備進行通信的通信連接196。通信連 接196可包括但不限于,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò)接口、射頻發(fā)射機/接收 機、紅外線端口、USB連接、或用于將計算設(shè)備182連接到其他計算設(shè)備的其他接口。通信 連接196可以包括有線連接或無線連接。通信連接196可以發(fā)送和/或接收通信媒體。術(shù)語“計算機可讀介質(zhì)”可以包括通信介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸 機制等“已調(diào)制數(shù)據(jù)信號”來體現(xiàn)計算機可讀指令或其他數(shù)據(jù),并包括任何信息傳送介質(zhì)。 術(shù)語“已調(diào)制數(shù)據(jù)信號”指以對信號中的信息進行編碼的方式設(shè)置或改變其一個或多個特 征的信號。設(shè)備182可包括輸入設(shè)備194,諸如鍵盤、鼠標、筆、語音輸入設(shè)備、觸摸輸入設(shè)備、 紅外照相機、視頻輸入設(shè)備和/或任何其他輸入設(shè)備。設(shè)備182中還可包括輸出設(shè)備192, 諸如一個或多個顯示器、揚聲器、打印機和/或任何其他輸出設(shè)備。輸入設(shè)備194和輸出設(shè) 備192可以通過有線連接、無線連接或其任何組合來連接到設(shè)備182。在一個實施例中,來 自另一計算設(shè)備的輸入設(shè)備或輸出設(shè)備可用作計算設(shè)備182的輸入設(shè)備194或輸出設(shè)備 192。計算設(shè)備182的組件可以通過諸如總線等各種互連來連接。這些互連可包括諸如 PCI Express等外圍部件互連(PCI)、通用串行總線(USB)、火線(IEEE 1394)、光學(xué)總線結(jié) 構(gòu)等。在另一實施例中,計算設(shè)備182的組件可以通過網(wǎng)絡(luò)互連。例如,存儲器188可由位 于通過網(wǎng)絡(luò)互連的不同物理位置的多個物理存儲器單元組成。本領(lǐng)域技術(shù)人員會認識到,用于存儲計算機可讀指令的存儲設(shè)備可分布在網(wǎng)絡(luò) 上。例如,可以通過網(wǎng)絡(luò)198訪問的計算設(shè)備200可以存儲實現(xiàn)此處所提供的一個或多個 實施例的計算機可讀指令。計算設(shè)備182可以訪問計算設(shè)備100并下載部分或全部計算機 可讀指令來執(zhí)行?;蛘?,計算設(shè)備182可以按需下載計算機可讀指令的片斷,或者某些指令 可以在計算設(shè)備182處執(zhí)行而某些則在計算設(shè)備200處執(zhí)行。此處提供了各實施例的各種操作。在一個實施例中,所描述的操作中的一個或多 個可以組成儲存在一個或多個計算機可讀介質(zhì)上的計算機可讀指令,這些指令如果被計算 設(shè)備執(zhí)行則使得計算設(shè)備執(zhí)行所描述的操作。描述一些或全部操作的順序不應(yīng)被解釋為暗 示了這些操作必須要依賴于順序。從本說明書獲益的本領(lǐng)域技術(shù)人員應(yīng)理解替換的排序。 此外,應(yīng)該理解并非所有的操作都必須存在于此處所提供的每一實施例中。此外,在此使用詞語“示例性”意指用作示例、實例或說明。在此被描述為“示例性” 的任何方面或設(shè)計并不一定被解釋為比其他方面或設(shè)計有利。相反,使用詞語“示例性”旨 在以具體的方式呈現(xiàn)各個概念。如本申請中所使用的,術(shù)語“或”意指包括性“或”而非互 斥性“或”。即,除非另有指定或從上下文可以清楚,否則“X使用A或B”意指任何自然的包 括性排列。即,如果X使用A ;X使用B ;或X使用A和B兩者,則在任何以上情況下,都滿足 “X使用A或B”。另外,本申請中和所附權(quán)利要求書中所使用的冠詞“一”和“一個” 一般可
19被解釋為是指“一個或多個”,除非另有指定或從上下文可以清楚指的是單數(shù)形式。
同樣,雖然參考一個或多個實現(xiàn)示出并描述了本發(fā)明,但本領(lǐng)域技術(shù)人員基于對 本說明書和附圖的閱讀和理解可以想到各種等效替換和修改。本發(fā)明包括所有這些修改和 替換并且只由所附權(quán)利要求書來限定。特別地,對于由上述組件(例如,元素、資源等)執(zhí) 行的各種功能,除非另外指明,否則用于描述這些組件的術(shù)語旨在對應(yīng)于執(zhí)行所描述的執(zhí) 行此處在本發(fā)明的示例性實現(xiàn)中所示的功能的組件的指定功能(例如,功能上等效)的任 何組件,即使這些組件在結(jié)構(gòu)上不等效于所公開的結(jié)構(gòu)。另外,盡管可相對于若干實現(xiàn)中的 僅一個實現(xiàn)來公開本發(fā)明的一個特定特征,但是這一特征可以如對任何給定或特定應(yīng)用所 需且有利地與其它實現(xiàn)的一個或多個其它特征相組合。此外,就在說明書或權(quán)利要求書中 使用術(shù)語“包含”、“具有”、“含有”和“帶有”及其變體而言,這些術(shù)語旨在以與術(shù)語“包括” 相似的方式為包含性的。
20
權(quán)利要求
一種用于對將由應(yīng)用程序存儲(84)管理的至少一個應(yīng)用程序(112)部署到表示至少一個設(shè)備(50)上的計算環(huán)境的對象分層結(jié)構(gòu)(44)進行管理的系統(tǒng)(86),所述系統(tǒng)(86)包括應(yīng)用程序獲取組件(88),所述組件被配置成接收安裝應(yīng)用程序(112)的請求,以及從所述應(yīng)用程序存儲(84)獲取所述應(yīng)用程序(112);應(yīng)用程序映射組件(90),所述組件被配置成將所述對象分層結(jié)構(gòu)(44)中表示的至少一個設(shè)備(50)映射到至少一個已安裝應(yīng)用程序(112);以及應(yīng)用程序部署組件(92),所述組件被配置成將所述至少一個已安裝應(yīng)用程序(112)部署在所述對象分層結(jié)構(gòu)(44)中。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)包括表示至少一個應(yīng)用程序的應(yīng) 用程序存儲,各個應(yīng)用程序包括至少一個應(yīng)用程序資源。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,包括被配置成存儲所述對象分層結(jié)構(gòu)的對象分層結(jié)構(gòu)存儲,以及被配置成將所述對象分層結(jié)構(gòu)的至少一部分發(fā)送到所述至少一個設(shè)備的對象分層結(jié) 構(gòu)傳輸組件。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,包括 應(yīng)用程序發(fā)現(xiàn)組件,所述組件被配置成 從用戶接收應(yīng)用程序查詢,選擇滿足所述應(yīng)用程序查詢的應(yīng)用程序,以及 將所選應(yīng)用程序呈現(xiàn)給所述用戶。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述應(yīng)用程序獲取組件被配置成 通過所述設(shè)備將應(yīng)用程序許可證呈現(xiàn)給用戶,以及在從所述用戶接收到對所述應(yīng)用程序許可證的接受后,記錄對所述應(yīng)用程序許可證的 接受。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述應(yīng)用程序獲取組件被配置成對與所述 至少一個設(shè)備的用戶的獲取事務(wù)進行中介。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述應(yīng)用程序獲取組件被配置成生成表示 所述應(yīng)用程序的用戶的用戶帳戶。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述部署包括相對于所述設(shè)備和所述設(shè)備的用戶中的至少一個來配置所述應(yīng)用程序。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于,包括被配置成在所述至少一個設(shè)備上啟動所述應(yīng)用程序的應(yīng)用程序啟動組件。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,包括 應(yīng)用程序共享組件,所述組件被配置成 接收與一用戶共享所述應(yīng)用程序的請求,以及在接收到共享所述應(yīng)用程序的請求后,與所述用戶共享所述應(yīng)用程序。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述應(yīng)用程序共享組件被配置成與所述 用戶共享所述對象分層結(jié)構(gòu)中包括以下至少一個的一部分所述應(yīng)用程序、應(yīng)用程序會話、應(yīng)用程序配置、以及所述應(yīng)用程序生成的至少一個數(shù)據(jù)對象。
12.如權(quán)利要求1所述的系統(tǒng),其特征在于,包括 被配置成更新所述應(yīng)用程序的應(yīng)用程序更新組件。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述應(yīng)用程序更新組件被配置成更新所 述對象分層結(jié)構(gòu)中的至少一個應(yīng)用程序資源,以及被配置成撤消所述應(yīng)用程序的應(yīng)用程序撤消組件。
14.如權(quán)利要求1所述的系統(tǒng),其特征在于,包括 被配置成請求撤消所述應(yīng)用程序的接收組件。
15.如權(quán)利要求14所述的系統(tǒng),其特征在于,所述接收組件被配置成在所述對象分層 結(jié)構(gòu)中撤消所述應(yīng)用程序。
全文摘要
對計算環(huán)境中的應(yīng)用程序的管理通常涉及大量計算操作,如獲取應(yīng)用程序、在各個位置部署數(shù)據(jù)對象、以及相對于所部署的設(shè)備來配置應(yīng)用程序。常規(guī)計算環(huán)境可能在整個典型的應(yīng)用程序生存周期中提供不足夠的支持,尤其是對跨許多設(shè)備分布的計算環(huán)境而言。相反,計算環(huán)境可以被表示在可被分發(fā)給各設(shè)備的可部署對象分層結(jié)構(gòu)中。因此可以提供應(yīng)用程序管理服務(wù)以將應(yīng)用程序的表示安裝在對象分層結(jié)構(gòu)中,以及支持應(yīng)用程序生存周期的許多其他方面,如應(yīng)用程序發(fā)現(xiàn)、共享、更新、以及移除。這些設(shè)備因此可以用一致的方式向用戶提供計算環(huán)境的應(yīng)用程序,同時減少了構(gòu)成計算網(wǎng)格的設(shè)備之間的手動管理。
文檔編號G06F3/00GK101978366SQ200980110662
公開日2011年2月16日 申請日期2009年2月20日 優(yōu)先權(quán)日2008年3月20日
發(fā)明者D·舒克拉, J·張, J·麥金太爾, O·阿米加 申請人:微軟公司