專利名稱:針對應(yīng)用執(zhí)行環(huán)境的應(yīng)用跟蹤的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及在計算機平臺上管理應(yīng)用執(zhí)行環(huán)境,并且更具 體地涉及針對應(yīng)用執(zhí)行環(huán)境的應(yīng)用跟蹤。
背景技術(shù):
本說明書涉及在計算機平臺上管理應(yīng)用執(zhí)行環(huán)境(例如,虛擬機 和運行時環(huán)境)。計算機平臺是這樣的計算機,其包括用于該計算機
的特定操作系統(tǒng)(OS )(例如,Windows OS, MAC OS,或者Linux OS)。軟件開發(fā)者通常創(chuàng)建可以針對各計算機平臺而適當編譯的源代 碼,繼而獨立地生成用于每個目標平臺的本機安裝包。每個本機安裝 包都與特定的計算機平臺相關(guān)聯(lián),并且繼而可以分發(fā)這些本機安裝包 以用于在適當機器上的安裝。對于特定的目標平臺,適當?shù)谋緳C安裝 包是從軟件開發(fā)者處獲取的,并且可以使用OS安裝器來處理本機安 裝包,以便安裝應(yīng)用。例如,可以使用InstallShield⑧軟件來產(chǎn)生用于 Windows⑧機器上安裝的.msi文件,并且可以使用不同的軟件工具來 產(chǎn)生用于MAC⑧機器上安裝的.pkg文件。
一些軟件開發(fā)者已經(jīng)創(chuàng)建了部署在最終用戶系統(tǒng)上的跨平臺安 裝包,例如Java Archive (JAR)文件才各式。繼而可以展開(例如, 解密和解壓縮)跨平臺包,并使用軟件開發(fā)者和/或跨平臺包格式的開 發(fā)者所提供的代碼將跨平臺包直接寫到磁盤。通常,這種跨平臺軟件 在目標平臺上的運行依賴于之前安裝的虛擬才幾,例如Java⑧虛擬機 (JVM )(可以乂人Sun Microsystems 乂>司獲得)。
JVM為包括Windows OS, MAC OS以及LINUX OS在內(nèi)的 多數(shù)操作系統(tǒng)提供了運行時環(huán)境和Java解釋器。Java源代碼文件(具 有.java擴展名的文件)被編譯為稱為字節(jié)碼的格式(具有.class擴展
名的文件),其繼而由Java解釋器來執(zhí)行。字節(jié)碼可以通過適時編譯 器(JIT)直接轉(zhuǎn)換為機器語言指令。其他示例性運行時環(huán)境包括C 運行時,.NET,以及Adobe⑧集成運行時。
Flash⑧播放器(可以從Adobe System Incorporated獲得)是另一 虛擬機,其可以用來運行或解析Flash⑧文件,該Flash⑧文件包括從 ActionScript編譯得到的Shockwave Flash ( SWF )。通過將SWF數(shù)據(jù) 嵌入到Flash⑧播放器的可執(zhí)行文件中以創(chuàng)建新的.exe文件,并操縱 該.exe文件中的字節(jié)模式以指明SWF數(shù)據(jù)的存在,F(xiàn)lash⑧播放器和 Flash⑧創(chuàng)作軟件允許開發(fā)在特定目標平臺上運行的projector (自運行 的SWF影片)。繼而可以分發(fā)這樣的projector以便在目標平臺上使 用。
傳統(tǒng)上,運行時及其安裝器是分別開發(fā)的。通常,用于運行時的 安裝引擎是從第三方獲取或許可的。用于運行時的安裝包含其自己的 用戶界面以及用于與目標計算機平臺的OS交互的其他工具。在生成 運行時的新版本時,通常要卸載較舊的版本,并將較新的版本安裝在 較舊版本的位置。在這種情況下,先前使用運行時的較舊版本的應(yīng)用 應(yīng)當能夠使用較新的版本,以便適當?shù)剡M行操作。在JVM的情況下, 可以將JVM的兩個版本安裝在一個計算機上,并且繼而分別管理這 兩個JVM版本。
發(fā)明內(nèi)容
本說明書描述了涉及在計算機平臺上管理應(yīng)用執(zhí)行環(huán)境(例如, 虛擬機和運行時環(huán)境)的技術(shù)。總體上,本說明書中所描述主題的一 個或多個方面可以實現(xiàn)在一個或多個管理應(yīng)用4丸行環(huán)境的方法中,所 述應(yīng)用執(zhí)行環(huán)境包括為該應(yīng)用執(zhí)行環(huán)境中運行的應(yīng)用提供服務(wù)的跨 平臺應(yīng)用程序接口,所述一個或多個方法包括維護應(yīng)用和安裝在計 算機上的應(yīng)用執(zhí)行環(huán)境的不同版本之間的關(guān)聯(lián),其中,所述關(guān)聯(lián)指明
了所述應(yīng)用在所述應(yīng)用執(zhí)行環(huán)境的不同版本的哪個版本中運行;以及 根據(jù)應(yīng)用和應(yīng)用在其中運行的應(yīng)用執(zhí)行環(huán)境的不同版本之間的關(guān)聯(lián)
來管理計算機上的應(yīng)用執(zhí)行環(huán)境的不同版本。其他實施方式包括相應(yīng) 的系統(tǒng)、裝置和計算機程序產(chǎn)品。
這些和其他實施方式可以可選地包括以下特征中的一個或多個。 所述維護可以包括在計算機上注冊特定于應(yīng)用執(zhí)行環(huán)境的不同版本 之一的文件擴展名,并且所述管理可以包括在針對應(yīng)用執(zhí)-f亍環(huán)境的不 同版本之一而執(zhí)行管理任務(wù)之前檢查文件擴展名的注冊。所述管理可 以包括根據(jù)管理任務(wù)來注冊應(yīng)用執(zhí)行環(huán)境的所有不同版本的共同文 件擴展名。而且,所述管理可以包括根據(jù)將安裝在計算機上的應(yīng)用執(zhí) 行環(huán)境的不同版本中的至少一個版本向計算機的操作系統(tǒng)進行注冊。
所述管理可以包括確定應(yīng)用執(zhí)行環(huán)境的不同版本中的哪些版本 具有應(yīng)用的依賴應(yīng)用;以及在將應(yīng)用執(zhí)行環(huán)境的不同版本中的一個或 多個版本從計算機上卸載之前,基于所述確定將應(yīng)用和不同版本之間 的依賴關(guān)系通知用戶。所述管理可以包括確定應(yīng)用執(zhí)行環(huán)境的不同 版本中的哪些版本具有應(yīng)用的依賴應(yīng)用;以及在至少 一個應(yīng)用^^用計 算機上的應(yīng)用執(zhí)行環(huán)境的不同版本中的一個版本時,向用戶提供將可 用更新應(yīng)用于應(yīng)用^l行環(huán)境的不同版本的所述一個版本的選項。
一種系統(tǒng),可以包括用戶接口設(shè)備以及一個或多個計算機,該一 個或多個計算機可以進行操作來與用戶接口設(shè)備進行交互以及執(zhí)行 管理應(yīng)用執(zhí)行環(huán)境的操作,所述應(yīng)用執(zhí)行環(huán)境包括為該應(yīng)用執(zhí)行環(huán)境 中運行的應(yīng)用提供服務(wù)的跨平臺應(yīng)用接口 。所述一個或多個計算機可 以包括其上安裝有應(yīng)用執(zhí)行環(huán)境的不同版本的計算機,并且所述計算 機可以包括用戶接口設(shè)備。所述計算機可以包括運行web瀏覽器的個 人計算機以及運行無線應(yīng)用協(xié)議(WAP)瀏覽器的移動電話。
可以實現(xiàn)本說明書中所描述主題的特定實施方式,以實現(xiàn) 一 個或 多個下述優(yōu)點。運行時環(huán)境可以包含其自己的用于管理運行時環(huán)境的 不同安裝版本的邏輯和用戶界面。運行時環(huán)境的版本管理代碼可以從 該運行時環(huán)境本身之內(nèi)進行操作。而且,可以在計算機上將應(yīng)用執(zhí)行
行管理。從最終用戶的角度看來,可以將應(yīng)用執(zhí)行環(huán)境視為單個程序
(例如,"添加或刪除程序"控制界面中的單個條目),并且可以認 為應(yīng)用執(zhí)行環(huán)境的不同版本僅僅是插入到應(yīng)用執(zhí)行環(huán)境的各種組件。 可以運行使用應(yīng)用執(zhí)行環(huán)境的任何應(yīng)用,而無需用戶了解計算機上安 裝了應(yīng)用執(zhí)行環(huán)境的哪些版本。
應(yīng)用執(zhí)行環(huán)境本身可以處理應(yīng)用執(zhí)行環(huán)境的不同版本的標識和 安裝??梢栽跊]有用戶輸入的情況下,對應(yīng)用與其中運行應(yīng)用的應(yīng)用 執(zhí)行環(huán)境的不同版本之間的關(guān)聯(lián)進行管理,包括在需要時自動地下載 和安裝任何新版本。此外,可以提供用于管理安裝在計算機上的應(yīng)用 執(zhí)行環(huán)境的不同版本的公共用戶界面,以供較為熟練的用戶(例如, 計算機系統(tǒng)管理員)使用。該用戶界面可以允許用戶對安裝在計算機 上的版本集合以及如何配置應(yīng)用執(zhí)行環(huán)境的特定版本二者進行管理。
在附圖和下文的描述中記載了本說明書中所描述主題的 一 個或 多個實施方式的細節(jié)。通過描述、附圖和權(quán)利要求書,本發(fā)明的其他 特征、方面和優(yōu)點將變得顯而易見。
圖1A示出了用于軟件分發(fā)、安裝和管理的示例系統(tǒng)。
圖1B示出了可以用來安裝應(yīng)用執(zhí)行環(huán)境的示例元素。
圖2A示出了應(yīng)用執(zhí)行環(huán)境的版本管理的示例過程。
圖2B示出了將應(yīng)用綁定至應(yīng)用執(zhí)行環(huán)境的版本的示例過程。
圖2C示出了與計算機目錄相對應(yīng)的命名空間的示例。
圖3A示出了應(yīng)用執(zhí)行環(huán)境的版本管理的另一示例過程。
圖3B示出了可以用來卸載應(yīng)用執(zhí)行環(huán)境的一個或多個版本的用
戶界面面4反。
圖3C示出了更新應(yīng)用執(zhí)行環(huán)境版本的示例過程。
圖3D和圖3E示出了可以用來對應(yīng)用執(zhí)行環(huán)境的不同版本進行卸
載、安裝以及對其進行更新的示例用戶界面面板。
圖4A示出了在應(yīng)用和應(yīng)用才丸行環(huán)境的不同/f反本之間維護的關(guān)
聯(lián),以及基于這些關(guān)聯(lián)對不同版本的管理。
不同版本的示例過程。
各附圖中相同的附圖標記和名稱表示相同的元素。
具體實施例方式
圖1A示出了用于軟件分發(fā)、安裝和管理的示例系統(tǒng)。分發(fā)者105 可以提供應(yīng)用執(zhí)行環(huán)境(AEE)程序110、 一個或多個AEE管理器程 序115 (例如, 一個或多個安裝器以及版本管理控制臺程序)以及將 要安裝在目標計算機130上的一個或多個軟件應(yīng)用120。分發(fā)者105 使安裝包125可以用于將一個或多個軟件程序安裝到計算機130上。 安裝包125可以是經(jīng)過數(shù)字簽名的文檔,其中,在進一步使用安裝包 125之前,驗證簽名是否有效。安裝包125可以包括AEE安裝器和 AEE程序。此外,安裝包125可以包括隨同應(yīng)用^l行環(huán)境程序110 安裝的一個或多個應(yīng)用120或者對這類應(yīng)用的引用。
分發(fā)者105可以是軟件開發(fā)者、發(fā)布者、銷售者或者分發(fā)軟件的 其他實體,或者是他們使用的計算機。例如,分發(fā)者105可以是通過 網(wǎng)絡(luò)IOO提供軟件下載工具的服務(wù)器或者服務(wù)器集群,其中網(wǎng)絡(luò)100 例如局域網(wǎng)、端對端網(wǎng)絡(luò)、無線網(wǎng)、互聯(lián)網(wǎng)或者萬維網(wǎng)。應(yīng)用執(zhí)行環(huán) 境程序110和應(yīng)用120可以由多方分別分發(fā)。安裝包125可以在諸如 壓縮盤(CD)、數(shù)字通用盤(DVD)和軟盤的物理介質(zhì)上進行分發(fā), 或者由可以用來遞送數(shù)字內(nèi)容的其他技術(shù)來分發(fā)。
目標計算機130包括軟件和硬件二者。硬件包括輸入/輸出設(shè)備 140、一個或多個處理器145以及至少一個計算才幾可讀介質(zhì)150(例如, 存儲器設(shè)備、存儲設(shè)備或者一個或多個這種設(shè)備的組合)。軟件可以 包括操作系統(tǒng)135,分發(fā)者105提供的軟件元件在操作系統(tǒng)135上操 作。應(yīng)用執(zhí)行環(huán)境110可以使用操作系統(tǒng)135來與計算機130的其他 元件交互。應(yīng)用執(zhí)行環(huán)境110可以提供各種公用服務(wù),以供應(yīng)用執(zhí)行 環(huán)境中運行的應(yīng)用使用。這些公用服務(wù)可以包括文件系統(tǒng)訪問、窗 口和菜單、與OS外殼的集成(例如,Windows OS瀏覽器或MAC
OS Finder)、文件擴展名注冊、文檔處理支持(例如,超文本標記語 言(HTML)引擎和便攜文檔格式(PDF)引擎)、字符串操作、圖 形、網(wǎng)絡(luò)、通知工具、外圍設(shè)備尋址,或者可以使用運行時庫提供的 其他類型功能。而且,應(yīng)用執(zhí)行環(huán)境IIO可以包括跨平臺應(yīng)用程序接 口 (API) 112,其向運行在應(yīng)用執(zhí)行環(huán)境中的應(yīng)用提供服務(wù),并且抽 象出應(yīng)用執(zhí)行環(huán)境IIO被設(shè)計為在其上運行的各種硬件和OS平臺的 細節(jié)。
由此,應(yīng)用執(zhí)行環(huán)境(AEE) 110可以是跨平臺的運行時環(huán)境, 例如加利福尼亞州、圣何塞市的Adobe System公司4是供的Adobe Integrated Runtime (AIR )軟件。在一些實現(xiàn)中,應(yīng)用才丸行環(huán)境IIO 可以從應(yīng)用的編碼表示中加載應(yīng)用。例如,編碼表示可以具有諸如編 程語言的預(yù)定義句法結(jié)構(gòu)(例如,源代碼),或者可以包括良定義的 虛指令(例如,與平臺無關(guān)的字節(jié)碼,諸如Macromedia Flash⑧字節(jié) 碼)。為了加載這樣的應(yīng)用,應(yīng)用執(zhí)行環(huán)境110可以將應(yīng)用的編碼表 示解碼為指令,并且可以執(zhí)行該應(yīng)用的指令。
除了充當應(yīng)用執(zhí)行環(huán)境之外,AEE 110還可以充當用于其自身以 及AEE 110上運行的應(yīng)用120二者的應(yīng)用安裝環(huán)境,以及充當用于其 自身的版本管理環(huán)境。在編寫用于AEE 110的管理控制臺程序115 時,可以使用AEE 110的用戶接口和語言工具(例如,HTML、 MXML (多媒體擴展標記語言)、以及諸如用于ActionScript和JavaScript 的腳本支持)。
將要置于AEE 110中的安裝/卸載工具擴展可以隨實現(xiàn)而變化。 在一些情況下,AEE 110可以提供這樣的API,其根據(jù)來自一個或多 個適當安裝器的請求而執(zhí)行全部安裝操作。在其他情況下, 一些安裝 操作可以在一個或多個安裝器/管理器中提供,并且可以使用運行時的 較低級API (例如,文件系統(tǒng)訪問API)來完成在計算機130上的安 裝操作。在任何情況下,版本管理控制臺程序可以使用AEE的安裝/ 卸載工具來管理在計算機上安裝和注冊AEE的哪些版本,這或者是 在AEE的安裝期間自動進行(例如,在安裝AEE的新版本時),或
者是基于用戶請求(例如,當用戶在所安裝程序的控制面板中選^r針
對AEE而給出的管理選項時)。
圖2A示出了應(yīng)用執(zhí)行環(huán)境(AEE)的版本管理的示例過程???以標識210在計算機上安裝了 AEE多個版本中的哪些版本。首先, 可以找到AEE的主要位置。例如,在一些系統(tǒng)(例如,Windows OS 計算機)上,在安裝AEE時,可以將這樣的信息記錄在注冊表中, 該信息將與AEE相關(guān)聯(lián)的唯一標識符映射到安裝位置。該唯一標識 符還可以包括在AEE管理代碼中,使得可以在注冊表中查找標識符 以便得到安裝位置。在其他系統(tǒng)(例如,MAC⑧OS計算機)上,可 以搜索預(yù)定義的有效AEE安裝位置的列表,以便找到實際的安裝位 置。
具有AEE安裝位置之后,可以找到AEE的不同版本。例如,所 安裝的AEE可以具有名為"版本"的目錄,其包括一組子目錄,子 目錄根據(jù)自身包含的AEE版本而命名。注意,用于特定版本的補丁 級別可以分開記錄,并且無需對應(yīng)于所安裝AEE內(nèi)的版本目錄結(jié)構(gòu)。
可以在計算機上管理220 AEE的不同版本。這可以包括卸載 AEE的特定版本、應(yīng)用一個或多個補丁來更新AEE的已安裝版本、 向AEE的已安裝版本添加組件或者開啟/關(guān)閉其特征(例如,添加在 一個或多個不同AEE版本之上運行的程序框架),以及安裝AEE的 一個或多個新版本。
可以使用應(yīng)用執(zhí)行環(huán)境的不同版本之一來執(zhí)行標識210和管理 220。由此,版本管理控制臺程序(其可作為用于AEE的安裝器的部 分而被包括)可以在AEE自身中運行,并且使用構(gòu)建在AEE中的安 裝/卸載工具。而且,在將要添加AEE的新版本時(或者需要應(yīng)用更 新時),可以提供安裝包,其包括AEE的新版本(或者對AEE的更 新)以及在AEE中運行的、用于該AEE(或者更新)的安裝器。
新的AEE版本包括用于目標計算機平臺(例如,用于運行 Windows OS、 MAC OS或者Linux OS的計算機)的適當?shù)谋緳C 的、平臺特定的代碼??梢詫⒃撔翧EE程序與用于該新AEE程序的
安裝器(如果同時安裝應(yīng)用,則還有用于該應(yīng)用的安裝器)組合到安
裝包中。注意,該組合可以特定于一類計算機;由此,可以針對每個 目標類型的計算機來執(zhí)行標識和組合,以制作出用于每個目標類型的 安裝包,該安裝包可以分別提供給作為該類型成員的每個目標計算 機。可替換地,在例如所發(fā)送的安裝器出于數(shù)字版權(quán)管理(DRM)的 目的而需要特定于目標計算機時,可以針對每個目標計算機來動態(tài)地 l丸4亍標識和組合。
此外,可以將每個應(yīng)用120與應(yīng)用執(zhí)行環(huán)境的不同版本之一進行 綁定230。該綁定可以確保不論何時調(diào)用應(yīng)用120,該應(yīng)用都將在這 樣的AEE版本上運行已經(jīng)針對該版本對該應(yīng)用進行了測試。由此, 可以在給定計算機上安裝多個應(yīng)用120和AEE 110的多個不同版本, 并且每個應(yīng)用120 (或者其適當子集)可以與AEE110的不同版本綁 定。然而,從用戶的角度看來,所有應(yīng)用120可以表現(xiàn)為運行在相同 的AEE 110上,并且AEE 110不同版本之間的差異可以在常規(guī)操作 期間對用戶完全保持透明。
圖2B示出了將應(yīng)用與應(yīng)用運行環(huán)境的版本進行綁定的示例過 程??梢葬槍τ嬎銠C上安裝的AEE的不同版本來檢查250與應(yīng)用之 一相關(guān)聯(lián)的命名空間。這可以包括檢查與應(yīng)用相關(guān)聯(lián)的清單。例如, 可以以這樣的格式來分發(fā)應(yīng)用120,該格式包括放置在預(yù)定義位置(例 如,在用于每個應(yīng)用的壓縮歸檔文件內(nèi)的特定位置)的文檔(例如, "application.xml"),其中,該文檔規(guī)定了用于應(yīng)用以及用于文檔內(nèi) XML元素的命名空間。該文檔還可以包括在安裝應(yīng)用時使用的信息 (或者對這種信息的引用),例如應(yīng)用名稱、應(yīng)用圖標、應(yīng)用的版本 號以及用于該應(yīng)用的代碼。
圖2C示出了與計算機上的目錄297相對應(yīng)的命名空間280的示 例。在此示例中,父目錄290包括用于AEE的文檔以及名為"版本,, 的子目錄295。在子目錄295內(nèi),存在與AEE的不同已安裝版本(例 如,版本l.O、版本1.5和版本3.0)相對應(yīng)的多個子目錄。由此,在 此示例中,命名空間280包括屬于版本1.5的所有AEE程序,而不考慮在給定計算機上應(yīng)用到版本1.5的補丁級別284。注意,可以針對 AEE的每個版本創(chuàng)建多個補丁,由此,由于已經(jīng)應(yīng)用的不同補丁級別, 不同計算機上的AEE的相同版本無需等同。在任何情況下,命名空 間都可被映射到AEE的已安裝版本,或可以用來構(gòu)造查詢以便發(fā)送 到服務(wù)器來得到涉及該版本的信息(例如,該版本的安裝器),其中 查詢例如統(tǒng)一資源定位符(URL),該URL對查詢進行編碼而不使 用查詢參數(shù)(URL中問號后面的部分)。
再次參考圖2B,當與應(yīng)用相關(guān)聯(lián)的命名空間與新版本匹配時, 可以在計算機上安裝260應(yīng)用執(zhí)行環(huán)境的新版本,該新版本在檢查 250時尚未安裝。例如,當要安裝新應(yīng)用時,AEE UO可以進行卩險查 以查看新應(yīng)用是否^f吏用了尚未安裝在本地計算才幾上的AEE 110新版 本。如果是,AEE IIO可以自動地獲取AEE 110的新版本(例如,通 過互聯(lián)網(wǎng)從服務(wù)器獲取),以便隨同應(yīng)用一起安裝。
此外,新版本的安裝可以采用將新AEE版本和用于該新AEE版 本的安裝器組合在一起的安裝包。安裝器本身可以在AEE中運行, 并且可以將安裝包提供給目標計算機,以便通過運行復(fù)制到目標計算 機的應(yīng)用執(zhí)行環(huán)境中的安裝器來安裝新的AEE版本(以及潛在地安 裝依賴于該AEE版本的應(yīng)用)。
圖IB示出了可以用來安裝應(yīng)用執(zhí)行環(huán)境的示例元素。如圖1A 和圖1B所示,安裝器115在應(yīng)用執(zhí)行環(huán)境IIO之上運行,其方式類 似于被設(shè)計為在應(yīng)用執(zhí)行環(huán)境110中運行的應(yīng)用120。安裝包125可 以包括壓縮歸檔文件(例如.zip文件),其中已經(jīng)封裝了新AEE版本 的副本。此外,可以將該壓縮歸檔文件添加到自提取的可執(zhí)行存根 (stub.exe),以形成安裝包125 (例如,供基于Windows OS的計 算機使用)。在執(zhí)行時,可執(zhí)行存根中的自提取器代碼可以將AEE 解歸檔到臨時位置。AEE是這樣設(shè)計的其可以適當?shù)剡\行,也即, 除了簡單地復(fù)制文件之外無需其他安裝步驟。
由此,提取的AEE的副本可以立即用于運行安裝器。可以將安 裝包125傳送到計算機,以便在安裝包被調(diào)用時(例如,在執(zhí)行安裝
包可執(zhí)行文件時)使計算機執(zhí)行安裝操作??梢詫EE程序的新版 本復(fù)制到計算機(這可以包括將AEE程序版本從壓縮歸檔文件中提 取到目標計算機),此后,AEE的新版本可以用于運行安裝器??梢?按照x-copy模式將AEE程序的新版本裝載到目標計算機上。在將新 AEE程序版本安裝到目標計算機之前(也即,該新AEE程序版本正 運行在x-c叩y模式中),安裝器便可在目標計算機上裝載的AEE的 新版本中運行。安裝器可以向用戶呈現(xiàn)用戶界面(UI),其包括各種 UI面板,并且可以使新AEE程序版本的第二副本(直接來自于運行 的副本)位于其最終安裝位置。
由此,可以使用AEE的第一版本來標識計算機上已經(jīng)安裝了 AEE 的多個版本中的哪些版本,并且可以使用AEE的第二版本來安裝AEE 的第二版本自身。例如,在要安裝新應(yīng)用時,可以在計算機上安裝 AEE的版本l.O。 AEE版本l.O可以標識已安裝的AEE版本,以確定 新應(yīng)用是否需要AEE的新版本(例如,版本2.0)。如果需要,可以 使AEE版本2.0的第 一副本位于計算機上的第 一位置。這可以是已經(jīng) 下載到臨時目錄的AEE程序版本2.0的可^L行副本,其在安裝完成之 前便可以運行。可以啟動應(yīng)用執(zhí)行環(huán)境的第一副本的才丸行,并且可以 使AEE程序版本2.0的第二副本位于計算機上的第二位置??梢栽谟?算機上的第二位置對AEE程序的版本2.0進行注冊。這可以包括注冊 文件擴展名和MIME (多用途互聯(lián)網(wǎng)郵件擴展)內(nèi)容類型以及注冊用 于AEE管理程序的指令。注意,只有AEE的最新版本需要對AEE 所使用的通用文件擴展進行注冊,因為對于特定的情況(例如,在對 較舊的版本應(yīng)用補丁時),AEE的最新版本可能根據(jù)需要而調(diào)用較舊 的已安裝版本??梢栽谟嬎銠C上的第一位置刪除AEE程序版本2.0 的第一副本。注意,制作第二副本和刪除第一副本可以是已經(jīng)與安裝 過程集成的移動操作的一部分。此外,復(fù)制、注冊和刪除可以包括使 用構(gòu)建到AEE程序內(nèi)的邏輯。
在結(jié)合圖1B描述的示例中,可以將安裝包125本身視為安裝器, 因為包125是開始安裝過程的可執(zhí)行文件。在其他情況下,安裝包125
可以是壓縮歸檔文件本身。例如,對于MAC OS計算機而言,安裝 包125可以是磁盤鏡像格式的".dmg,,文件。在這種情況下,用戶可 以打開.dmg文件(例如,雙擊該文件)并繼而裝載其中包括的AEE 安裝器。而且,安裝包125可以包括一個或多個附加安裝器,下文將 進一步討論。
在任意情況下,應(yīng)用執(zhí)行環(huán)境110可以包括安裝/卸載代碼160, 其用于軟件在目標計算機130上的安裝和卸載,并用于執(zhí)行更新,例 如應(yīng)用補丁 (例如,為了解決所發(fā)現(xiàn)的安全漏洞)或者將組件或特征 添加到不同的AEE版本??缙脚_應(yīng)用程序接口 112可以是操作系統(tǒng) 無關(guān)的,并且可以包括到安裝/卸載代碼160的安裝/卸載接口 170。 安裝器115可以包括用戶界面代碼175。當安裝器115在目標計算機 上的AEE 110中運行時,安裝器115可以使用AEE 110的安裝接口 70來實現(xiàn)新AEE版本的安裝,并且安裝器115可以使用用戶界面代 碼175 (例如,超文本標記語言、ActionScript或者SWF代碼)來生 成和呈現(xiàn)用于安裝過程的用戶界面180,其中用戶界面代碼口5也可 以4吏用AEE 110來運4亍。
例如,安裝器115可以包含使用Adobe Flex 軟件、Flash⑧代 碼或者ActionScript代碼(或其組合)編寫的用戶界面,其中該用戶 界面(UI)與嵌入在AEE 110中的邏輯進行通信。(為此目的)AEE 110中主類的名稱可以是"運行時安裝器,,,并且可以創(chuàng)建運行時安 裝器的實例,可以在該實例上創(chuàng)建一些屬性,繼而可以啟動運行時安
裝器。運行時安裝器繼而可以分派事件,以便隨著安裝的進行來報告 進展(例如,下載的進度、已經(jīng)安裝的比例,是否發(fā)生錯誤等等)。 這些事件可以由安裝器115中的代碼捕獲,這導(dǎo)致UI更新。注意, 兩個方向的通信都可以使用事件來實現(xiàn)。由此,當用戶接受用于AEE U0的最終用戶許可協(xié)議時,可以從UI向運行時安裝器類發(fā)送事件, 告知運行時安裝器安裝的進展。繼而,進度事件可以反向返回,并使 進度條更新。
當安裝器U5在目標計算機上的AEE 110上運行時,安裝器115
還可以導(dǎo)致將AEE管理器置于目標計算機上,其中,AEE管理器程 序也可以在AEE 110中運行。AEE管理器程序可以是AEE 110的另 一副本加上運行于其上的代碼(例如,F(xiàn)lexTM代碼)。由此,安裝器 可以使用接口 170來實現(xiàn)AEE IIO的新版本的安裝,并且AEE管理 器程序可以使用接口 170來實現(xiàn)AEE 110的新版本的卸載、實現(xiàn)AEE IIO的其他版本的安裝、或者對AEE110的已安裝版本應(yīng)用更新。此 外,可以將AEE 110中的安裝/卸載代碼160設(shè)計為直接在目標計算 機上進行操作來執(zhí)行安裝和卸載任務(wù)(例如,在基于MAC OS的計 算機中),或者可以將安裝/卸載代碼160設(shè)計為與OS 135提供的安 裝/卸載工具165對接(例如,基于Windows OS的計算機中的 Windows 安裝器API)。
在上面給出的示例中,運行時安裝器類在基于MAC OS的計算 機和基于Windows OS的計算機上可能具有非常不同的實現(xiàn)。在基 于Windows OS的計算機上,運行時安裝器可以使用AEE 110中的、 僅涉及安裝的API來進行操作,因為所述API使用Windows⑧安裝服 務(wù)來執(zhí)行安裝操作。在基于MAC OS的計算機或者基于Linux OS 的計算機上,運行時安裝器可以使用AEE 110中的文件系統(tǒng)API進行 操作。在任一情況下,運行時安裝器類都可以定義跨平臺接口,安裝 器/管理器115可以以相同的方式訪問并使用該接口 ,而不論其運行在 基于MAC OS的計算機上還是基于Windows OS的計算機上(也 即,安裝器/管理器中無需具有任何本機代碼)。還可以使用其他方法。 例如,AEE 110可以提供用于調(diào)用本機代碼的機制,并且安裝器/管理 器115也可以使用該機制。
再次參考圖2B,可以在計算機上創(chuàng)建用于應(yīng)用120之一的可執(zhí) 行文件??梢詫⒃摽蓤?zhí)行文件配置為加載與該應(yīng)用所關(guān)聯(lián)的命名空間 相匹配的AEE版本。例如,可以將^f莫板可^^行文件轉(zhuǎn)換為特定于應(yīng)
如,用于Windows OS或者MAC OS計算機),其可以被包含在 安裝包125、 AEE 110或者二者之中,并且可以在特定計算機上的安 裝期間被轉(zhuǎn)換為特定于應(yīng)用的可執(zhí)行文件??商鎿Q地,轉(zhuǎn)換可以較早
進行,并且應(yīng)用特定的可執(zhí)行文件可以包含在安裝包125中。
在任一情況下,應(yīng)用信息可以通過安裝包或者其他手段來提供, 并且與來自特定于平臺的模板可執(zhí)行文件的信息相結(jié)合,以生成特定 于應(yīng)用的可執(zhí)行文件。應(yīng)用信息包括特定于應(yīng)用的信息,例如實現(xiàn)算 法,數(shù)據(jù)或者文檔的代碼。模板可執(zhí)行文件是特定于目標計算機平臺
可以根據(jù)應(yīng)用信息中包含的信息對模板進行復(fù)制和重命名。模板 可以具有通用的填充材料(例如通用圖標),其在創(chuàng)建應(yīng)用可執(zhí)行文 件時被覆蓋。模板可執(zhí)行文件可以包括諸如公共代碼的其他資源,其
可以用于執(zhí)行公共任務(wù)或者對諸如動態(tài)鏈接庫(DLL)的系統(tǒng)庫的鏈 接。這些可以包括對AEE的新版本的DLL的一個或多個引用(例如, 目錄結(jié)構(gòu)中特定于版本的路徑),由此創(chuàng)建給定應(yīng)用和AEE該版本 之間的綁定。除了該AEE版本信息之外,才莫板可執(zhí)行文件還可以包 括版本資源,在生成應(yīng)用可執(zhí)行文件時,可以將關(guān)于應(yīng)用的版本信息 添加到所述版本資源。
應(yīng)用信息可以包括應(yīng)用名稱,其可以用作應(yīng)用可執(zhí)行文件的名 稱。應(yīng)用圖標可以包括在應(yīng)用信息中,并且可以在生成應(yīng)用可執(zhí)行文 件時與模板可執(zhí)行文件集成。例如,應(yīng)用圖標可以是便攜式網(wǎng)絡(luò)圖形
(PNG)格式的特定于應(yīng)用的圖形,其例如在轉(zhuǎn)換為Windows⑧圖標 格式(ICO)之后覆蓋通用圖標,以便生成應(yīng)用可執(zhí)行文件中的應(yīng)用 圖標。該應(yīng)用圖標繼而^皮用以啟動應(yīng)用,這例如通過在OS用戶界面 中呈現(xiàn)該圖標以便用戶雙擊。應(yīng)用信息還可以具有版本號,以用于應(yīng) 用可執(zhí)行文件的進一步標識,并且可以通過版本號來更新所復(fù)制的模 板可執(zhí)行文件中的版本資源,以形成應(yīng)用可執(zhí)行文件中的版本號。另 外,應(yīng)用信息可以包括代碼,其可以是諸如SWF和超文本標記語言
(HTML)的跨平臺代碼,或者是諸如目標平臺本機機器代碼的特定 于平臺的代碼,或者是其結(jié)合。代碼可以是源代碼形式、編譯(完全 編譯或部分編譯)形式和/或解釋形式,并且可以作為代碼插入到應(yīng)用
可執(zhí)行文件中。例如,提供用于新應(yīng)用的邏輯和用戶界面的SWF文 件可以作為資源嵌入到可執(zhí)行文件中。在此上下文中,"資源,,是預(yù) 留的可執(zhí)行文件的部分,用于對各種類型的數(shù)據(jù)進行存儲。通常,OS 提供編程接口,其可被用以可編程地操縱資源,并且可以通過使用 OS編程接口或者通過直接修改可執(zhí)行文件鏡像來將SWF代碼作為資 源嵌入(注意,任意給定平臺的可執(zhí)行格式的規(guī)范描述了如何組織可 執(zhí)行文件來包括這些資源)。而且,應(yīng)用信息可以包括附加文件(包 括數(shù)據(jù)和代碼二者),諸如便攜文檔格式(PDF)文件和JavaScript 文件。
由此,可以制作模板可執(zhí)行文件的副本,并且該副本變?yōu)閼?yīng)用可 執(zhí)行文件。模板可執(zhí)行文件中存在的 一些項在應(yīng)用可執(zhí)行文件中被所
息。 一 些系統(tǒng)資源在用于填充應(yīng)用可執(zhí)行文件之前可能需要進行轉(zhuǎn) 換。一些平臺可能需要將圖標轉(zhuǎn)換為與應(yīng)用信息所提供的格式不同的 特定圖形格式(例如,從.png到.ico格式的轉(zhuǎn)換)。在一些情況下, 可以改變應(yīng)用信息提供的應(yīng)用名稱(或者安裝目錄位置),以符合目 標平臺的習(xí)慣;在這種情況下,可以將應(yīng)用名稱(以及應(yīng)用可執(zhí)行文 件位置)轉(zhuǎn)換為適當?shù)牡韧?。在任何情況下,作為結(jié)果的應(yīng)用可執(zhí) 行文件都是從模板生成的、可以作為本機軟件在目標平臺上運行,并 且包括添加到可執(zhí)行文件的新功能,而無需對來自源代碼的可執(zhí)行文 件進行重新編譯。該結(jié)果應(yīng)用可執(zhí)行文件還包括對AEE特定版本的 引用,由此創(chuàng)建應(yīng)用和AEE的該版本之間的綁定。
從上面的描述中可以意識到,在計算機上可以將AEE的不同版 本作為其中綁定有不同版本的單個運行時環(huán)境程序進行管理。圖3A
示出了應(yīng)用執(zhí)行環(huán)境的版本管理的另一示例過程??梢允褂闷渖线\行 有管理程序的基礎(chǔ)應(yīng)用執(zhí)行環(huán)境來實現(xiàn)該過程,或者可以使用單獨的 管理程序來實現(xiàn)該過程,所述單獨的管理程序在計算機上的運行不依 賴于其不同版本有待管理的應(yīng)用執(zhí)行環(huán)境的任何版本。在任一情況 下,可以通過用戶調(diào)用管理程序來觸發(fā)該管理程序,例如通過用戶選
擇Windows OS計算機上呈現(xiàn)的"添加或刪除程序"控制界面中針 對應(yīng)用執(zhí)行環(huán)境而呈現(xiàn)的管理/改變選項,或者例如通過MAC OS 計算機上的應(yīng)用執(zhí)行環(huán)境所提供的(并且位于MAC OS Finder找到 管理程序的目錄的)管理程序。此外,可以針對AEE整體提供卸載 工具,使得用戶可以快速卸載AEE的所有已安裝版本,這例如是通 過選纟奪Windows OS計算機上呈現(xiàn)的"添加或刪除程序,,控制界面 中針對應(yīng)用執(zhí)行環(huán)境呈現(xiàn)的卸載選項。
當版本管理程序;f皮觸發(fā)時,可以例如如上所述的標識305安裝在 計算機上的應(yīng)用執(zhí)行環(huán)境的不同版本。注意,不同的AEE版本可以 以任意順序單獨、獨立地安裝、更新和卸載。每個AEE版本可以清 晰地區(qū)別于其他版本,如上文結(jié)合圖2C討論的,這可以包括在版本 特定的目錄中存儲特定于每個版本的代碼。此外,如上所述,可以將 每個應(yīng)用綁定至AEE的一個版本,使得該應(yīng)用的運行需要特定的AEE 版本;每個應(yīng)用可以準確地聲明該應(yīng)用需要AEE的哪個版本。
可以呈現(xiàn)310用戶界面,以允許用戶對應(yīng)用#1行環(huán)境的不同版本 進行管理。用戶界面可以包括多個不同的界面面板,這些界面面板包 括至少一個顯示目前安裝在計算機上的AEE所有版本的面板,并且 包括可選擇地卸載AEE不同版本中的一個或多個版本的選項。
可以基于經(jīng)由用戶接口接收的輸入,在計算機上將AEE的不同
這里應(yīng)當注意,現(xiàn)在所使用的術(shù)語"版本"不同于傳統(tǒng)的使用,因為 捆綁在AEE中的AEE的不同版本無需是一個真實的AEE軟件。當被 捆綁到單個運行時環(huán)境程序中時,AEE的每個不同版本可以是跨平臺 API的不同版本,并且每個應(yīng)用可以綁定至該單個運行時環(huán)境程序中 所包括的不同跨平臺API的特定版本。此外,AEE版本的管理可以包 括卸載AEE的一個或多個版本(例如,AEE API的一個或多個版本)、 對AEE的一個或多個版本(例如,AEE API的一個或多個版本)應(yīng) 用更新、以及安裝AEE的一個或多個版本(例如,AEE API的一個 或多個版本)。
圖3B示出了可以用來卸載應(yīng)用執(zhí)行環(huán)境的一個或多個版本的示 例用戶界面面板320。用戶界面(UI)面板320包括關(guān)于通過接口可 用的功能的信息"應(yīng)用執(zhí)行環(huán)境設(shè)置管理應(yīng)用執(zhí)行環(huán)境(AEE); 您可以卸載對特定AEE運行時版本的支持,或者檢查可用于特定版 本的任何更新"。UI面板320還可以包括目前安裝在計算機上的AEE 的所有不同版本(例如,版本l.O、 1.5和2.0)的列表322,以及在卸 載所選的AEE版本中使用的選擇控件324 (例如,用于每個已安裝版 本的超鏈接式控件,標示為"卸載")??梢砸庾R到,可以使用多種 其他界面控件來提供卸載AEE不同版本中一個或多個版本的選項。 例如,可以針對每個AEE版本提供復(fù)選框控件,并一起提供卸載按 鈕控件,使得用戶可以選中要卸載的版本,并通過選擇卸載按鈕來啟 動卸載。
UI面板320還包括"檢查更新,,按鈕控件326和"關(guān)閉"按鈕控 件328。當用戶選擇"關(guān)閉"按鈕控件328時,管理UI關(guān)閉。當用 戶選擇"檢查更新,,按鈕控件326時,可以開始針對AEE已安裝版 本的任何補丁以及針對AEE新版本的檢查。這可以包括通過網(wǎng)絡(luò)(例 如,互聯(lián)網(wǎng))與服務(wù)器通信,以發(fā)現(xiàn)對AEE的任何可用更新。
圖3C示出了更新應(yīng)用執(zhí)行環(huán)境的版本的示例過程??梢园l(fā)現(xiàn)355 用于AEE的任何可用更新,而不考慮版本。由此,可以找到這樣的 更新,該更新可應(yīng)用于AEE不同版本中一個較早的版本,但是無法 應(yīng)用于AEE不同版本中靠后的版本。例如,可能針對AEE的較舊版 本發(fā)現(xiàn)了安全性問題,其中,相同的問題在AEE的較新版本中并不 存在。在這種情況下,可以4吏安全補丁可通過網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))
此外,還可以發(fā)現(xiàn)340 AEE的任何新版本,這例如是通過使用通 過網(wǎng)絡(luò)的與服務(wù)器的相同通信。繼而,基于用戶輸入,可以應(yīng)用345 任何可用的更新,和/或可以安裝345所發(fā)現(xiàn)的任何新版本。注意,任 何可用更新的發(fā)現(xiàn)和應(yīng)用每個都可以自動完成,或者響應(yīng)于用戶輸入 而完成。例如,當用戶選擇圖3B中所示的UI面板320中的"檢查更
新"按鈕控件326時,這會導(dǎo)致AEE管理程序去發(fā)現(xiàn)任何可用的更 新,該更新包括對AEE的現(xiàn)有已安裝版本的更新和AEE的新版本二 者。UI面板320繼而可以如圖3D所示進4亍更新。
現(xiàn)在UI面板320中包括可用更新330 (包括對已安裝版本1.0和 1.5的補丁以及新版本3.0)的列表。此外,UI面板320中已經(jīng)包括 了 "應(yīng)用更新"4安4丑控件332。在此示例中,用戶可以通過對"應(yīng)用 更新"按鈕控件332的單選來啟動補丁的應(yīng)用和新版本的安裝。由此, 可以將用來獲取對AEE不同版本的更新(例如,應(yīng)用安全性補丁和 添加新的組件或特征)和AEE新版本的安裝進行授權(quán)的輸入的機制 集成在一起。通過單次點擊,用戶可以啟動對AEE的所有可用更新。 與前面一樣,可以一是供復(fù)選框控件,以允許用戶^f又消對在選擇"應(yīng)用 更新"按鈕控件332時不想應(yīng)用的更新的選擇。還可以獲取并通過用 戶界面呈現(xiàn)關(guān)于任何最終用戶許可協(xié)議的通知(例如,針對將要安裝 的新版本)或者關(guān)于將要應(yīng)用的更新(例如,針對安全性補丁的自述 文檔)的文檔。
除了呈現(xiàn)被配置為管理AEE不同版本的安裝、更新和卸載的用 戶界面之外,還可以在用戶界面內(nèi)分別顯示多個AEE管理任務(wù)的進 度。在圖3E中,用戶已經(jīng)選擇了 "應(yīng)用更新,,按鈕控件332,并且 用戶繼而選擇了針對AEE版本2.0的卸載選項。由此在更新的UI面 板320中顯示了進度信息340("應(yīng)用所選擇的更新一狀態(tài)完成40%" 以及進度條)以及相應(yīng)的取消按鈕控件342。此外,更新的UI面板 320中還示出了進度信息350 ("卸載版本2.0—狀態(tài)完成20%"和 進度條)和相應(yīng)的取消按鈕控件352。由此,多個管理任務(wù)可以從AEE 管理UI啟動并且并行地處理,并且可以在UI中內(nèi)聯(lián)地顯示這些管理 任務(wù)的進度。
當管理任務(wù)包括對AEE的已安裝版本應(yīng)用更新時,可以首先進 行檢查,以查看是否存在依賴于將要更新的AEE版本的任何應(yīng)用正 在運行;如果是,可以將這一事實提示給用戶,并且要求用戶在開始 更新之前關(guān)閉這些應(yīng)用。這可以避免需要重啟計算機??梢允褂脩?yīng)用
間通信(IAC)機制來4企查正在運行的應(yīng)用,其中IAC機制例如本地 連接(其使用共享存儲器段進行操作)或者其他IAC機制。此外,在 卸載任何AEE版本之前,都可以針對依賴的正在運行的應(yīng)用執(zhí)^亍相 同的4企查。
對AEE版本的管理可以部分地基于計算坤幾上安裝的AEE版本和 應(yīng)用之間的依賴關(guān)系。圖4A示出了在應(yīng)用415和應(yīng)用執(zhí)行環(huán)境的不 同版本405之間維護的關(guān)聯(lián)410,以及基于該關(guān)聯(lián)410對不同版本的 管理400。關(guān)聯(lián)410指明了應(yīng)用415在應(yīng)用才丸行環(huán)境的不同版本405 中的哪些版本中運行??梢园凑崭鞣N方式來創(chuàng)建和維護關(guān)聯(lián),包括通 過不同的操作系統(tǒng)使用可替換的方法。例如,在MAC OS計算機上, 可以使用文件擴展名注冊來維護關(guān)聯(lián)410,下文將結(jié)合圖4B進行描 述;而在Windows OS計算機上,可以使用通過Windows⑧安裝服 務(wù)可用的已有組件參考計數(shù)工具來維護關(guān)聯(lián)。而且,關(guān)聯(lián)410可以是 單向的(例如,從應(yīng)用指向AEE版本)或雙向的。
版本管理400在一個或多個管理任務(wù)期間考慮關(guān)聯(lián)410。例如, 在被選擇卸載的AEE版本具有仍然安裝在計算機上的依賴應(yīng)用時, 對用戶進行提示,在這種情況下,用戶可能根本不希望卸載該版本。 由此,如圖4A所示,如果用戶要選擇針對AEE版本2.0的卸載,無 需產(chǎn)生提示,因為目前安裝的所有應(yīng)用415都不依賴于AEE版本2.0。 但是如果用戶選擇了針對AEE版本1.5的卸載,則可以產(chǎn)生提示,以 便讓用戶了解APP 4仍然依賴于AEE版本1.5。提示可以枚舉依賴于 AEE版本的應(yīng)用,或者簡單地告知存在至少一個依賴應(yīng)用。提示可以 包括用戶界面控件,其允許用戶確認或取消卸載,并確定是否在AEE 版本1.5被卸載的同時卸載APP 4。其他管理任務(wù)也可以使用關(guān)聯(lián) 410。
圖4B示出了維護關(guān)聯(lián)以及基于這些關(guān)聯(lián)來管理應(yīng)用執(zhí)行環(huán)境的 不同版本的示例過程??傮w上,只要AEE管理程序被啟動,便進入 維護和管理狀態(tài)450,這可以在AEE的不同版本之一被調(diào)用時(例如, 當用戶啟動應(yīng)用之一時)自動地發(fā)生,或者在用戶打開管理控制臺時
發(fā)生。不同的管理任務(wù)繼而可以導(dǎo)致維護和管理狀態(tài)450中不同的操 作,其中,這些操作可以包括一個或多個維護操作、管理操作或者二者。
當要安裝新應(yīng)用時,可以為該應(yīng)用在計算機上注冊文件擴展名, 該文件擴展名特定于應(yīng)用執(zhí)行環(huán)境的不同版本之一 ,以此來維護關(guān) 聯(lián)。該文件擴展名可以是假文件擴展名(例如".AEE-l-5"),其目 的僅僅是支持應(yīng)用跟蹤(并且將不會干擾其他應(yīng)用)。例如,在MAC OS計算機上,應(yīng)用可以聲明支持這種假文件擴展名。由此,當MAC OS檢查應(yīng)用時,其將對所支持的假文件名進行標識,并將該信息記 錄在其裝載服務(wù)數(shù)據(jù)庫中。繼而可以使用該文件擴展名注冊來標識依 賴于應(yīng)用執(zhí)行環(huán)境的給定版本的應(yīng)用(例如,依賴于AEE版本1.5 的應(yīng)用)是否安裝在了具有這樣的操作系統(tǒng)的計算機上,該操作系統(tǒng) 不包括用于組件參考計數(shù)的內(nèi)置工具,例如MAC OS計算機。
基于應(yīng)用是針對每個機器還是針對每個用戶安裝的,用于應(yīng)用跟
詢文件擴展名以找到依賴的應(yīng)用時,可以搜索計算機中的所有可見位 置,這些位置包括對于在運行查詢時登陸的用戶可見的針對每個機器 和針對每個用戶的可見位置的組合。注意,這并不一定在每種情況下
都能找到所有的已安裝應(yīng)用,但是該技術(shù)在很多情況下可以找到多數(shù)
(如果不是全部的話)已安裝應(yīng)用。
在將要執(zhí)行管理任務(wù)時(例如,AEE卸載或者AEE更新時), AEE版本管理可以包括在執(zhí)行管理任務(wù)之前檢查460特定于給定 AEE版本的文件擴展名注冊。例如,如果用戶選擇卸載AEE的版本 2.0,可以進行檢查來查看是否有任何應(yīng)用注冊了文件擴展名
".AEE-2-0",并且該檢查的結(jié)果可以影響如何執(zhí)行所請求的管理任 務(wù)。
此外,在選擇任何特定的管理任務(wù)之前,可以針對目前安裝的所 有AEE版本來執(zhí)行該檢查。例如,當用戶打開AEE管理用戶界面時, AEE管理程序可以確定470哪些AEE版本具有已安裝的依賴應(yīng)用,
其中每個應(yīng)用的運行需要AEE的特定版本。這可以包括檢查特定于 每個已安裝AEE版本的文件擴展名。
繼而可以為用戶提供475選項,以便在一個或多個應(yīng)用使用一個 或多個AEE版本時,將任何可用更新應(yīng)用于該一個或多個AEE版本。 由此,無需對沒有依賴應(yīng)用的AEE版本進行更新;盡管在實踐中, 當網(wǎng)絡(luò)訪問不受限制時,可以更新所有已安裝AEE版本作為默認動 作,或者更新的順序可以基于應(yīng)用依賴關(guān)系(例如,使用最多的AEE 版本可以首先更新)。此外,可以在從計算機上卸載不同AEE版本 的一個或多個版本之前,將應(yīng)用和不同AEE版本之間的依賴關(guān)系通 知480用戶。這可以包括在做出了卸載選4奪之后如上所述地提示用戶, 或者這可以包括在UI面板(例如,UI面板320 )中標識哪些AEE版 本具有目前安裝在計算機上的依賴應(yīng)用。注意,提供475更新選項和 通知480用戶二者可以在一個UI面板中一起完成,或者這些操作可 以分別完成。
此外,當從所選的管理任務(wù)得到AEE新的最新版本時,可以將 AEE的最新版本向操作系統(tǒng)注冊為AEE,由此保持從操作系統(tǒng)的角 度看來,AEE的最新版本是單個運行時環(huán)境程序(具有捆綁于其中的 不同版本)。例如,如果在計算機上安裝AEE的版本3.5,其中版本 3.0是先前安裝的AEE的最新版本,則可以將AEE的版本3.5 (替代 版本3.0)注冊為AEE的所有不同版本通用的文件擴展名。由此,不 論何時要打開具有該通用文件擴展名的AEE文件,將由操作系統(tǒng)來 調(diào)用AEE的最新版本(在此示例中是版本3.5)。如果證明仍然需要
則AEE的較新版本可以調(diào)用AEE的較早版本來完成處理。
應(yīng)當注意,除了安裝新AEE版本之外的其他任務(wù)也可能導(dǎo)致最 新版本。例如,如果計算機目前具有已安裝的版本1.0、 1.5、 2,0和 3.0,則卸載版本3.0可以導(dǎo)致版本2.0變成最新版本。由此,在這種 情況下,將向操作系統(tǒng)注冊AEE的版本2.0。還要注意,最新AEE 版本對操作系統(tǒng)的注冊可以包括除了注冊通用文件擴展名之外的多
個操作。例如,AEE的最新版本可以注冊其管理控制臺程序,該程序
將是在用戶打開管理用戶界面時被調(diào)用的程序。
本說明書中描述的主題和功能性操作的實施方式可以在數(shù)字電 子電路中實現(xiàn),或者在計算機軟件、固件或硬件中實現(xiàn),該計算機軟 件、固件或硬件包括本說明書中公開的結(jié)構(gòu)及其等同結(jié)構(gòu)、或是它們 的一個或多個的組合。本說明書中描述的主題的實施方式可以實現(xiàn)為 一個或多個計算機程序產(chǎn)品,也即,在計算機可讀介質(zhì)上編碼的、以 便由數(shù)據(jù)處理裝置執(zhí)行或控制數(shù)據(jù)處理裝置操作的一個或多個計算 機程序指令模塊。有形程序載體可以是傳播的信號或者計算機可讀介 質(zhì)。傳播信號是人工產(chǎn)生的信號,例如,機器產(chǎn)生的電信號、光信號 或者電磁信號,生成該信號以對信息進行編碼,以便傳輸?shù)竭m當?shù)慕?收器裝置。計算機可讀介質(zhì)可以是機器可讀的存儲設(shè)備、機器可讀的 存儲襯底、存儲設(shè)備、實現(xiàn)計算機可讀的傳播信號的組合、或者它們 中的一個或多個的結(jié)合。
術(shù)語"數(shù)據(jù)處理裝置"包括用于處理數(shù)據(jù)的所有裝置、設(shè)備和機 器,例如包括可編程處理器、計算機,或者多個處理器或計算機。除 了硬件之外,該裝置可以包括為考慮中的計算機程序創(chuàng)建執(zhí)行環(huán)境的 代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、 跨平臺運行時環(huán)境,或者它們中一個或多個的結(jié)合的代碼。
計算機程序(也公知為程序、軟件、軟件應(yīng)用、腳本或代碼)可 以由任意形式的編程語言編寫,包括編譯語言或解釋語言,說明性語 言或過程語言,并且該計算機程序可以任意形式部署,包括部署為單 獨的程序或模塊、組件、子例程,或者適于在計算環(huán)境中使用的其他 單元。計算機程序無需對應(yīng)于文件系統(tǒng)中的文件。程序可以存儲在保 存其他程序或數(shù)據(jù)(例如,存儲在標記語言文檔中的 一個或多個腳本)
的文件的 一部分中、可以存儲在專門用于考慮中的程序的單個文件 中,或者存儲在多個協(xié)同文件中(例如,存儲一個或多個模塊、子程 序,或代碼部分的文件)??梢詫⒂嬎銠C程序部署為在一個計算機上 執(zhí)行,或者將其部署為在位于一個地點的多個計算機上執(zhí)行或跨過多
個地點分布且通過通信網(wǎng)絡(luò)互連的多個計算機上執(zhí)行。
本說明書中描述的處理和邏輯流程可以由執(zhí)行一個或多個計算 機程序的一個或多個可編程處理器執(zhí)行,用于通過對輸入數(shù)據(jù)進行操
作以及產(chǎn)生輸出來執(zhí)行功能。該處理和邏輯流程還可以由例如FPGA (現(xiàn)場可編程門陣列)或ASIC (專用集成電路)的專用邏輯電路執(zhí) 行,并且也可以將裝置實現(xiàn)為所述專用邏輯電路。
適于計算機程序執(zhí)行的處理器例如包括通用和專用處理器兩者、
以及任意類型的數(shù)字計算機的任意一個或多個處理器。通常,處理器 將從只讀存儲器或隨機訪問存儲器或兩者處接收指令和數(shù)據(jù)。計算機 的基本元件是用于執(zhí)行指令的處理器以及用于存儲指令和數(shù)據(jù)的一 個或多個存儲器設(shè)備。通常,計算機還將包括用于存儲數(shù)據(jù)的一個或 多個海量存儲設(shè)備,或被操作性地耦合為從所述用于存儲數(shù)據(jù)的一個 或多個海量存儲設(shè)備接收數(shù)據(jù)、向其傳送數(shù)據(jù)、或者進行兩者,該海 量存儲設(shè)備例如磁盤、磁光盤、或光盤。然而,計算機不必一定具有 這樣的設(shè)備。而且,計算機可以嵌入在其他設(shè)備中,例如移動電話、 個人數(shù)字助理(PDA )、移動音頻或視頻播放器、全球定位系統(tǒng)(GPS ) 接收器、或者便攜式存儲設(shè)備(例如,通用串行總線(USB)閃存驅(qū) 動),這僅是幾例。適于存儲計算機程序指令和數(shù)據(jù)的計算機可讀介 質(zhì)包括所有形式的非易失性存儲器、介質(zhì)和存儲設(shè)備,例如包括半 導(dǎo)體存儲設(shè)備,如EPROM、 EEPROM和閃存設(shè)備;磁盤,如內(nèi)部硬 盤或可移動硬盤;磁光盤;以及CD-ROM和DVD-ROM盤。處理器 和存儲器可以由專用邏輯電路補充或是包括在專用邏輯電路中。
為了提供與用戶的交互,本說明書中描述的主題的實施方式可以 在具有用于向用戶顯示信息的顯示設(shè)備以及用戶可以通過其向計算 機提供輸入的鍵盤和指點設(shè)備的計算機上實現(xiàn),其中顯示設(shè)備例如 CRT (陰極射線管)或者LCD (液晶顯示器)監(jiān)視器,指點設(shè)備例如 鼠標或者軌跡球。也可以使用其他類型的設(shè)備來提供與用戶的交互; 例如,提供給用戶的反饋可以是任何形式的感觀反饋,例如視覺反饋、 聲覺反饋、或者觸覺反饋;并且可以接收來自用戶的任意形式的輸入,
包括聲音、語音或觸覺輸入。
本說明書中描述的主題的實施方式可以實現(xiàn)在包括后端組件的
計算系統(tǒng)中,例如數(shù)據(jù)服務(wù)器;或?qū)崿F(xiàn)在包括中間件組件的計算系統(tǒng) 中,例如應(yīng)用服務(wù)器;或?qū)崿F(xiàn)在包括前端組件的計算系統(tǒng)中,例如具 有圖形用戶界面或者Web瀏覽器的客戶端計算機,用戶通過該圖形 用戶界面或Web瀏覽器可以與本說明書中描述的主題的實現(xiàn)進行交 互;或?qū)崿F(xiàn)在一個或多個這樣的后端、中間件、或前端組件的任意結(jié) 合中。系統(tǒng)組件可以與任意形式或介質(zhì)的數(shù)字數(shù)據(jù)通信(例如,通信 網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)("LAN"),廣域網(wǎng)("WAN"), 網(wǎng)際網(wǎng)(例如,互聯(lián)網(wǎng))以及端對端網(wǎng)絡(luò)(例如,adhoc端對端網(wǎng)絡(luò))。 計算系統(tǒng)可以包括客戶端和服務(wù)器??蛻舳撕头?wù)器一般相互遠 離,并且通常通過通信網(wǎng)絡(luò)進行交互。客戶端和服務(wù)器的關(guān)系是借助 于在各自計算機上運行的、彼此具有客戶端-服務(wù)器關(guān)系的計算機程 序得到的。
盡管本說明書包含多種特定細節(jié),但是不應(yīng)將其理解為是對本發(fā) 明的范圍或者所要求保護內(nèi)容的限制,而應(yīng)當理解為是本發(fā)明具體實 施方式的特定特征的描述。本說明書中描述的在各個實施方式的上下 文中的某些特征也可以在單個實施方式中結(jié)合實現(xiàn)。相反,在單個實 施方式上下文中描述的各種特征也可以分別實現(xiàn)在多個實施方式中 或者任意適當?shù)淖咏M合中。而且,盡管上文可能將特征描述為在特定 的組合中操作,甚至初始也是這樣要求保護的,但是來自所要求保護 的組合的一個或多個特征在一些情況下可以從該組合中去除,并且所 要求保護的組合可以針對子組合或組合的變形。
類似地,盡管在附圖中以特定的順序描述操作,但是不應(yīng)將其理 解為要求按照所示的特定順序或是串行順序來執(zhí)行這些操作,或是要 求執(zhí)行全部所示的操作以得到期望的結(jié)果。在特定環(huán)境中,多任務(wù)和 并行處理可能是有利的。而且,在上述實施方式中多個系統(tǒng)組件的分 離不應(yīng)被理解為在所有實施方式中需要這些操作,應(yīng)當將其理解為所 描述的程序組件和系統(tǒng)通??梢栽趩蝹€軟件產(chǎn)品中集成在一起,或是
被打包到多個軟件產(chǎn)品中。
由此,已經(jīng)描述了本發(fā)明的具體實施方式
。其他實施方式處于所 附權(quán)利要求的范圍之內(nèi)。例如,權(quán)利要求中陳述的動作可以按照不同
的順序來執(zhí)行并且仍然達到預(yù)期的結(jié)果。針對已安裝AEE版本的更 新的檢查以及針對新AEE版本的檢查可以在沒有用戶輸入的情況下 自動完成(例如,在裝載應(yīng)用并由此調(diào)用AEE時),還可以在新版 本或更新可用時呈現(xiàn)通知UI。每個應(yīng)用可以綁定至應(yīng)用^M亍環(huán)境的 多個版本,提供應(yīng)用使用AEE版本的靈活性。應(yīng)用跟蹤無需是AEE 版本特定的。還支持各種移動和其他設(shè)備(例如,具有嵌入式操作系 統(tǒng)的設(shè)備)。
權(quán)利要求
1. 一種用于管理應(yīng)用執(zhí)行環(huán)境的方法,所述應(yīng)用執(zhí)行環(huán)境包括為所述應(yīng)用執(zhí)行環(huán)境中運行的應(yīng)用提供服務(wù)的跨平臺應(yīng)用程序接口,所述方法包括:維護所述應(yīng)用和安裝在計算機上的所述應(yīng)用執(zhí)行環(huán)境的不同版本之間的關(guān)聯(lián),其中,所述關(guān)聯(lián)指明所述應(yīng)用在所述應(yīng)用執(zhí)行環(huán)境的所述不同版本的哪個版本中運行;以及基于所述應(yīng)用和所述應(yīng)用在其中運行的所述應(yīng)用執(zhí)行環(huán)境的所述不同版本之間的所述關(guān)聯(lián),來管理所述計算機上的所述應(yīng)用執(zhí)行環(huán)境的所述不同版本。
2. 根據(jù)權(quán)利要求1所述的方法,其中,所述維護包括在所述計算名,并且所述管理包括在針對所述應(yīng)用執(zhí)行環(huán)境的所述不同版本之一 來執(zhí)行管理任務(wù)之前,檢查針對所述文件擴展名的注冊。
3. 根據(jù)權(quán)利要求2所述的方法,其中,所述管理包括根據(jù)所述 管理任務(wù),注冊所述應(yīng)用執(zhí)行環(huán)境的全部所述不同版本通用的文件擴展名。
4. 根據(jù)權(quán)利要求1所述的方法,其中,所述管理包括根據(jù)安裝在 所述計算機上的所述應(yīng)用執(zhí)行環(huán)境的所述不同版本的至少 一個版本 向所述計算機的操作系統(tǒng)進行注冊。
5. 根據(jù)權(quán)利要求1所述的方法,其中,所述管理包括確定所述應(yīng)用執(zhí)行環(huán)境的所述多個版本中的哪些版本具有所述 應(yīng)用中的依賴應(yīng)用;以及基于所述確定,在從所述計算機上卸載所述應(yīng)用執(zhí)行環(huán)境的所述 不同版本中的 一 個或多個版本之前,將所述應(yīng)用和所述不同版本之間 的依賴關(guān)系通知用戶。
6. 根據(jù)權(quán)利要求1所述的方法,其中,所述管理包括確定所述應(yīng)用執(zhí)行環(huán)境的所述不同版本中的哪些版本具有所述 應(yīng)用中的依賴應(yīng)用;以及為用戶提供選項,以便在至少 一個所述應(yīng)用使用所述計算機上的 所述應(yīng)用執(zhí)行環(huán)境的所述不同版本中的一個版本時,將可用的更新應(yīng) 用于所述應(yīng)用執(zhí)行環(huán)境的所述不同版本中的所述 一 個版本。
7. —種用于管理應(yīng)用執(zhí)行環(huán)境的操作的設(shè)備,所述應(yīng)用執(zhí)行環(huán)境 包括為所述應(yīng)用執(zhí)行環(huán)境中運行的應(yīng)用提供服務(wù)的跨平臺應(yīng)用程序 接口,所述i殳備包括維護裝置,用于維護所述應(yīng)用和安裝在計算機上的所述應(yīng)用執(zhí)行 環(huán)境的不同版本之間的關(guān)聯(lián),其中,所述關(guān)聯(lián)指明所述應(yīng)用在所述應(yīng) 用執(zhí)行環(huán)境的所述不同版本的哪個版本中運行;以及管理裝置,用于基于所述應(yīng)用和所述應(yīng)用在其中運行的所述應(yīng)用述應(yīng)用執(zhí)行環(huán)境的所述不同版本。
8. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,所述維護裝置用于在所述 計算機上注冊特定于所述應(yīng)用執(zhí)行環(huán)境的所述不同版本之一的文件 擴展名,并且所述管理包括在針對所述應(yīng)用執(zhí)行環(huán)境的所述不同版本 之一來執(zhí)行管理任務(wù)之前,檢查針對所述文件擴展名的注冊。
9. 根據(jù)權(quán)利要求8所述的設(shè)備,其中,所述管理裝置用于根據(jù)所 述管理任務(wù)來注冊所述應(yīng)用執(zhí)行環(huán)境的全部所述不同版本通用的文 件擴展名。
10. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,所述管理裝置用于根據(jù) 安裝在所述計算機上的所述應(yīng)用執(zhí)行環(huán)境的所述不同版本的至少一 個版本向所述計算機的操作系統(tǒng)進行注冊。
11. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,所述管理裝置用于確定所述應(yīng)用執(zhí)行環(huán)境的所述多個版本中的哪些版本具有所述 應(yīng)用中的依賴應(yīng)用;以及基于所述確定,在從所述計算機上卸載所述應(yīng)用執(zhí)行環(huán)境的所述 不同版本中的 一個或多個版本之前,將所述應(yīng)用和所述不同版本之間的依賴關(guān)系通知用戶。
12. 根據(jù)權(quán)利要求7所述的設(shè)備,其中,所述管理裝置用于確定所述應(yīng)用執(zhí)行環(huán)境的所述不同版本中的哪些版本具有所述 應(yīng)用中的依賴應(yīng)用;以及為用戶提供選項,以便在至少 一個所述應(yīng)用使用所述計算機上的 所述應(yīng)用^U亍環(huán)境的所述不同版本中的一個版本時,將可用的更新應(yīng) 用于所述應(yīng)用執(zhí)行環(huán)境的所述不同版本中的所述 一 個版本。
13. —種系統(tǒng),包括 用戶接口設(shè)備;以及一個或多個計算機,其可進行操作來與所述用戶接口設(shè)備進行交 互,并且執(zhí)行用于管理應(yīng)用執(zhí)行環(huán)境的操作,所述應(yīng)用執(zhí)行環(huán)境包括 為所述應(yīng)用執(zhí)行環(huán)境中運行的應(yīng)用提供服務(wù)的跨平臺應(yīng)用程序接口 , 所述操作包括維護所述應(yīng)用和安裝在計算機上的所述應(yīng)用執(zhí)行環(huán)境的不同版 本之間的關(guān)聯(lián),其中,所述關(guān)聯(lián)指明所述應(yīng)用在所述應(yīng)用執(zhí)行環(huán)境的 所述不同片反本的哪個版本中運行;以及基于所述應(yīng)用和所述應(yīng)用在其中運行的所述應(yīng)用執(zhí)行環(huán)境的所 述不同版本之間的所述關(guān)聯(lián),來管理所述計算機上的所述應(yīng)用執(zhí)行環(huán) 境的所述不同版本。
14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述維護包括在所述計 算機上注冊特定于所述應(yīng)用執(zhí)行環(huán)境的所述不同版本之一 的文件擴 展名,并且所述管理包括針對所述應(yīng)用執(zhí)行環(huán)境的所述不同版本之一 來執(zhí)行管理任務(wù)之前,檢查針對所述文件擴展名的注冊。
15. 根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述管理包括根據(jù)所述 管理任務(wù),注冊所述應(yīng)用執(zhí)行環(huán)境的全部所述不同版本通用的文件擴 展名。
16. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述管理包括根據(jù)安裝 在所述計算機上的所述應(yīng)用執(zhí)行環(huán)境的所述不同版本的至少 一個版 本向所述計算機的操作系統(tǒng)進行注冊。
17. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述管理包括 確定所述應(yīng)用"^丸行環(huán)境的所述多個版本中的哪些版本具有所述應(yīng)用中的依賴應(yīng)用;以及基于所述確定,在從所述計算機上卸載所述應(yīng)用執(zhí)行環(huán)境的所述 不同版本中的一個或多個版本之前,將所述應(yīng)用和所述不同版本之間 的依賴關(guān)系通知用戶。
18. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述管理包括確定所述應(yīng)用執(zhí)行環(huán)境的所述不同版本中的哪些版本具有所述 應(yīng)用中的依賴應(yīng)用;以及為用戶提供選項,以便在至少 一 個所述應(yīng)用使用所述計算機上的 所述應(yīng)用執(zhí)行環(huán)境的所述不同版本中的一個版本時,將可用的更新應(yīng) 用于所述應(yīng)用執(zhí)行環(huán)境的所述不同版本中的所述 一 個版本。
19. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述一個或多個計算機 包括其上安裝有所述應(yīng)用執(zhí)行環(huán)境的所述不同版本的計算機,并且所 述計算機包括所述用戶接口設(shè)備。
20. 根據(jù)權(quán)利要求19所述的系統(tǒng),其中,所述計算機包括運行 web瀏覽器的個人計算機或者運行無線應(yīng)用協(xié)議(WAP )瀏覽器的移 動電i舌。
全文摘要
本申請公開的是針對應(yīng)用執(zhí)行環(huán)境的應(yīng)用跟蹤,具體來說是用于在計算機上管理應(yīng)用執(zhí)行環(huán)境的方法、系統(tǒng)和裝置以及介質(zhì)編碼的計算機程序產(chǎn)品。本說明書中所描述主題的一個或多個方面可以在用于管理應(yīng)用執(zhí)行環(huán)境的一個或多個方法中實現(xiàn),所述應(yīng)用執(zhí)行環(huán)境包括為該應(yīng)用執(zhí)行環(huán)境中運行的應(yīng)用提供服務(wù)的跨平臺應(yīng)用程序接口,所述一個或多個方法包括維護應(yīng)用和安裝在計算機上的應(yīng)用執(zhí)行環(huán)境的不同版本之間的關(guān)聯(lián),其中,所述關(guān)聯(lián)指明所述應(yīng)用在所述應(yīng)用執(zhí)行環(huán)境的所述不同版本的哪個版本中運行;以及基于應(yīng)用和該應(yīng)用在其中運行的應(yīng)用執(zhí)行環(huán)境的不同版本之間的關(guān)聯(lián)來管理計算機上的應(yīng)用執(zhí)行環(huán)境的不同版本。
文檔編號G06F9/44GK101382886SQ200810134400
公開日2009年3月11日 申請日期2008年7月30日 優(yōu)先權(quán)日2007年7月30日
發(fā)明者O·戈德曼 申請人:奧多比公司