專利名稱:構(gòu)建和更新運(yùn)行時(shí)刻環(huán)境的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)處理領(lǐng)域,且更具體地,涉及用于構(gòu)建包含至少一個(gè)軟件組件的多個(gè)不同版本的系統(tǒng)的運(yùn)行時(shí)刻環(huán)境的計(jì)算機(jī)實(shí)現(xiàn)的方法、裝置和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
當(dāng)產(chǎn)品系統(tǒng)中的企業(yè)應(yīng)用服務(wù)器(EAS)被更新時(shí),大多數(shù)修復(fù)包安裝軟件將把企業(yè)應(yīng)用服務(wù)器作為整體整個(gè)升級(jí)。具體地,所有簡(jiǎn)檔或服務(wù)器運(yùn)行時(shí)刻被升級(jí)到最新修復(fù)包版本,且它們都將在相同企業(yè)應(yīng)用服務(wù)器修復(fù)包級(jí)別處運(yùn)行。不提供在相同機(jī)器中安裝和維護(hù)不同修復(fù)包版本。假設(shè),例如,正在系統(tǒng)上安裝企業(yè)應(yīng)用服務(wù)器基本版本,例如IBM WebSphere 應(yīng)用服務(wù)器(WAQ版本6. 1。還假設(shè)在企業(yè)應(yīng)用服務(wù)器上存在三個(gè)不同的運(yùn)行時(shí)刻環(huán)境(RE), 例如WAS簡(jiǎn)檔X,Y和Z,且還存在三個(gè)不同應(yīng)用部署在X,Y和Z簡(jiǎn)檔上,例如在簡(jiǎn)檔X上的TEST1、在簡(jiǎn)檔Y上的TEST2和在簡(jiǎn)檔Z上的TEST3。還假設(shè),需要將EAS從一個(gè)版本升級(jí)到另一個(gè)版本,例如僅對(duì)于在運(yùn)行時(shí)刻環(huán)境Y上部署的應(yīng)用TEST2從WAS版本6. 1升級(jí)到WAS版本6. 1.0. 25,且不需要對(duì)于其他應(yīng)用升級(jí)EAS。實(shí)際上,該升級(jí)可能甚至對(duì)應(yīng)用 TESTl和TEST3中的一個(gè)或兩者有負(fù)面影響。例如,應(yīng)用TESTl已經(jīng)被特別開(kāi)發(fā)來(lái)使用由 IBM WebSphere 應(yīng)用服務(wù)器版本6.1提供的接口。對(duì)于企業(yè)應(yīng)用的當(dāng)前補(bǔ)丁升級(jí)通常升級(jí)整個(gè)企業(yè)應(yīng)用服務(wù)器。不提供僅升級(jí)企業(yè)應(yīng)用服務(wù)器的一個(gè)或多個(gè)特定運(yùn)行時(shí)刻環(huán)境、以便不同運(yùn)行時(shí)刻環(huán)境可以運(yùn)行在與部署在運(yùn)行時(shí)刻環(huán)境上的應(yīng)用相關(guān)的不同修復(fù)包級(jí)別。當(dāng)前運(yùn)行時(shí)刻環(huán)境還需要運(yùn)行基本企業(yè)應(yīng)用服務(wù)器且完全依賴于基本企業(yè)應(yīng)用服務(wù)器文件。它們不具有選擇感興趣的版本的選擇, 例如存在于系統(tǒng)si上的簡(jiǎn)檔X可能想要在IBM WebSphere 應(yīng)用服務(wù)器6.1上運(yùn)行,而在相同系統(tǒng)Sl上的簡(jiǎn)檔Y可能想要在IBM WebSphere 應(yīng)用服務(wù)器6.1. 5上運(yùn)行。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供用于構(gòu)建系統(tǒng)的運(yùn)行時(shí)刻環(huán)境的計(jì)算機(jī)實(shí)現(xiàn)的方法、有形存儲(chǔ)介質(zhì)和數(shù)據(jù)處理系統(tǒng)。簡(jiǎn)檔管理器接收包含簡(jiǎn)檔標(biāo)識(shí)符的服務(wù)請(qǐng)求。簡(jiǎn)檔標(biāo)識(shí)符指定至少一個(gè)軟件組件的所需版本。簡(jiǎn)檔管理器標(biāo)識(shí)軟件組件的完整安裝和至少一個(gè)增量文件。簡(jiǎn)檔管理器通過(guò)優(yōu)選地利用來(lái)自至少一個(gè)增量文件的文件、然后利用來(lái)自完整安裝的文件,來(lái)構(gòu)造所需版本的類路徑。然后,利用類路徑來(lái)構(gòu)建運(yùn)行時(shí)刻環(huán)境。
現(xiàn)在僅通過(guò)例子參考附圖來(lái)描述本發(fā)明的實(shí)施例,在附圖中圖1描述了可以實(shí)施例示實(shí)施例的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的圖示;圖2是可以實(shí)現(xiàn)例示實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方框圖;圖3是圖示在可以實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng)內(nèi)操作的軟件組件的關(guān)系的方框圖4是根據(jù)例示實(shí)施例的Java 虛擬機(jī)的方框圖;圖5是用于向數(shù)據(jù)處理系統(tǒng)的Java 虛擬機(jī)提供簡(jiǎn)檔的當(dāng)前已知數(shù)據(jù)流圖;圖6是用于向根據(jù)例示實(shí)施例的數(shù)據(jù)處理系統(tǒng)的java 虛擬機(jī)提供簡(jiǎn)檔的數(shù)據(jù)流圖;圖7是示意地圖示根據(jù)現(xiàn)有技術(shù)的企業(yè)應(yīng)用服務(wù)器文件系統(tǒng)的方框圖;圖8是示意地圖示根據(jù)例示實(shí)施例的企業(yè)應(yīng)用服務(wù)器文件系統(tǒng)的方框圖;圖9是示意地圖示根據(jù)例示實(shí)施例的企業(yè)應(yīng)用服務(wù)器升級(jí)、補(bǔ)丁或修復(fù)包的安裝的方框圖;以及圖10是示意地圖示根據(jù)例示實(shí)施例的由運(yùn)行時(shí)刻環(huán)境選擇系統(tǒng)版本的方法的流程圖。
具體實(shí)施例方式如本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到的,本發(fā)明可以被實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可以采取以下形式全硬件實(shí)施例、全軟件實(shí)施例(包括固件、駐留軟件、 微代碼等)或者組合了軟件和硬件方面的通常都可以被稱為“電路”、“模塊”或“系統(tǒng)”的實(shí)施例。此外,本發(fā)明可以采取嵌入在計(jì)算機(jī)可用程序代碼嵌入在介質(zhì)中的表示的任何有形介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式。可以使用一個(gè)或多個(gè)計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)的任何組合。計(jì)算機(jī)可用或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是但不限于電子、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置、設(shè)備或者傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列舉)包括以下各項(xiàng)具有一條或多條線的電連接;便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、 可擦除可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式致密盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)設(shè)備、諸如支持因特網(wǎng)或內(nèi)聯(lián)網(wǎng)的那些的傳輸介質(zhì)、或磁存儲(chǔ)設(shè)備。注意,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)甚至可以是在其上打印了程序的紙或另一適當(dāng)?shù)慕橘|(zhì),因?yàn)樵摮绦蚩梢越?jīng)由例如紙或其他介質(zhì)的光掃描、然后被編譯、解釋或如果需要的話另外以適當(dāng)?shù)姆绞教幚怼?然后存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中來(lái)電子的捕獲。在本文檔的上下文中,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是可以包含、存儲(chǔ)、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或關(guān)于它們而使用的程序的任何介質(zhì)。計(jì)算機(jī)可用介質(zhì)可以包括在基帶中的或者作為載波的一部分的傳播數(shù)據(jù)信號(hào),在該傳播數(shù)據(jù)信號(hào)中嵌入計(jì)算機(jī)可用程序代碼??梢允褂萌魏芜m當(dāng)?shù)慕橘|(zhì)來(lái)傳送在計(jì)算機(jī)可用程序代碼,所述介質(zhì)包括但不限于無(wú)線、有線、光纖光纜、RF等。可以用一種或多種編程語(yǔ)言的任何組合來(lái)編寫用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序代碼,所述編程語(yǔ)言包括但不限于面向?qū)ο蟮木幊陶Z(yǔ)言,例如Java 、Smalltalk.C++ 等;以及傳統(tǒng)的過(guò)程編程語(yǔ)言。程序代碼可以完全在用戶的計(jì)算機(jī)上執(zhí)行、部分地在用戶的計(jì)算機(jī)上執(zhí)行、作為單獨(dú)的軟件包執(zhí)行、部分地在用戶的計(jì)算機(jī)上并且部分地遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一場(chǎng)景中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任何類型的網(wǎng)絡(luò)連接到用戶的計(jì)算機(jī),所述網(wǎng)絡(luò)包括但不限于局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)、或者可以進(jìn)行到外部計(jì)算機(jī)(例如,使用因特網(wǎng)服務(wù)供應(yīng)商通過(guò)因特網(wǎng))的連接。下面參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和 /或框圖來(lái)描述本發(fā)明。將理解,所述流程圖和/或框圖的每個(gè)塊、以及所述流程圖和/或框圖中的塊的組合可以通過(guò)計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器以便產(chǎn)生機(jī)器,使得經(jīng)由所述計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在一個(gè)或多個(gè)流程圖和/或框圖的塊中指定的功能/動(dòng)作的部件。這些計(jì)算機(jī)程序指令也可以被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,所述計(jì)算機(jī)可讀介質(zhì)可以指示計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置按照特定的方式運(yùn)行,使得存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生包括實(shí)現(xiàn)在一個(gè)或多個(gè)流程圖和/或框圖的塊中指定的功能/動(dòng)作的指令部件的制造產(chǎn)品。所述計(jì)算機(jī)程序指令也可以被加載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置上,以便使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行一系列操作步驟,從而產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖的一個(gè)或多個(gè)塊中指定的功能/動(dòng)作的過(guò)程。現(xiàn)在參考附圖,且具體地參考圖1-2,提供數(shù)據(jù)處理環(huán)境的示例圖,其中可以實(shí)現(xiàn)例示實(shí)施例。應(yīng)該理解,圖1-2僅是示例,且不意圖針對(duì)可以實(shí)現(xiàn)不同實(shí)施例的環(huán)境斷言或暗示任何限制??梢詫?duì)描述的環(huán)境進(jìn)行許多修改。圖1描述了可以實(shí)施例示實(shí)施例的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的圖示。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是可以實(shí)現(xiàn)例示實(shí)施例的計(jì)算機(jī)的網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)102,其是用于提供在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的在各種設(shè)備和計(jì)算機(jī)之間的通信的介質(zhì)。網(wǎng)絡(luò)102可以包括連接,諸如有線、無(wú)線通信鏈接或光纖電纜。在所描述的例子中,服務(wù)器104和服務(wù)器106與存儲(chǔ)單元108 —起連接到網(wǎng)絡(luò) 102。另外,客戶端110,112和114連接到網(wǎng)絡(luò)102??蛻舳?10,112和114可以是例如個(gè)人計(jì)算機(jī)或網(wǎng)絡(luò)計(jì)算機(jī)。在所描述的例子中,服務(wù)器104向客戶端110,112和114提供信息,諸如引導(dǎo)文件、操作系統(tǒng)映像和應(yīng)用??蛻舳?10,112和114在該例子中是服務(wù)器104 的客戶端。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100可以包括另外的服務(wù)器、客戶端和未示出的其他設(shè)備。位于網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100中的程序代碼可以被存儲(chǔ)在計(jì)算機(jī)可記錄存儲(chǔ)介質(zhì)上,且被下載到數(shù)據(jù)處理系統(tǒng)或其他設(shè)備用于使用。例如,程序代碼可以被存儲(chǔ)在計(jì)算機(jī)可記錄存儲(chǔ)介質(zhì)或服務(wù)器104上,且通過(guò)網(wǎng)絡(luò)102被下載到客戶端110用于在客戶端110上使用。在所示示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是因特網(wǎng),網(wǎng)絡(luò)102表示使用協(xié)議的傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)組來(lái)彼此通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的全球集合。在因特網(wǎng)的中心處是在由路由數(shù)據(jù)和消息的數(shù)千商業(yè)、政府、教育和其他計(jì)算機(jī)系統(tǒng)組成的主節(jié)點(diǎn)或主機(jī)計(jì)算機(jī)之間的高速數(shù)據(jù)通信線的主干。當(dāng)然,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100還可以被實(shí)現(xiàn)作為多個(gè)不同類型的網(wǎng)絡(luò),諸如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。圖1意圖作為例子,而不是作為對(duì)不同例示實(shí)施例的結(jié)構(gòu)限制?,F(xiàn)在參考圖2,示出可以實(shí)現(xiàn)例示實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng) 200是諸如圖1中的服務(wù)器104或客戶端110的計(jì)算機(jī)的例子,其中,可以放置實(shí)現(xiàn)處理的計(jì)算機(jī)可用程序代碼或指令用于例示實(shí)施例。在該例示例子中,數(shù)據(jù)處理系統(tǒng)200包括通信結(jié)構(gòu)(fabric) 202,其提供在處理單元204、存儲(chǔ)器206、永久存儲(chǔ)器208、通信單元210、輸入/輸出(I/O)單元212和顯示器214之間的通信。
處理單元204用于執(zhí)行可以被加載到存儲(chǔ)器206中的軟件的指令。處理單元204 取決于具體實(shí)施方式
可以是一個(gè)或多個(gè)處理器的組,或可以是微處理器核。另外,可以使用一個(gè)或多個(gè)不同種的處理器系統(tǒng)來(lái)實(shí)現(xiàn)處理單元204,其中,主處理器與次級(jí)處理器存在于單個(gè)芯片上。作為另一例示例子,處理器單元204可以是包含相同類型的多個(gè)處理器的對(duì)稱的多處理器系統(tǒng)。存儲(chǔ)器206和永久存儲(chǔ)器208是存儲(chǔ)設(shè)備216的例子。存儲(chǔ)設(shè)備是能夠臨時(shí)和/ 或永久地存儲(chǔ)信息的任何硬件,所述信息諸如(示例而不是限制)數(shù)據(jù)、功能形式的程序代碼、和/或其他適當(dāng)?shù)男畔?。在這些例子中,存儲(chǔ)器206可以是例如隨機(jī)存取存儲(chǔ)器或任何其他適當(dāng)?shù)囊资曰蚍且资源鎯?chǔ)設(shè)備。永久存儲(chǔ)器208可以取決于具體實(shí)施方式
而采取各種形式。例如,永久存儲(chǔ)器208可以包含一個(gè)或多個(gè)組件或設(shè)備。例如,永久存儲(chǔ)器208 可以是硬盤、閃存、可重寫光盤、可重寫磁帶或上述的一些組合。由永久存儲(chǔ)器208使用的介質(zhì)還可以是可移除的。例如,可以對(duì)永久存儲(chǔ)器208使用可移除硬盤。在這些例子中,通信單元210提供與其他數(shù)據(jù)處理系統(tǒng)或設(shè)備的通信。在這些例子中,通信單元210是網(wǎng)絡(luò)接口卡。通信單元210可以通過(guò)使用物理和無(wú)線通信鏈接之一或兩者來(lái)提供通信。輸入/輸出單元212允許與可以連接到數(shù)據(jù)處理系統(tǒng)200的其他設(shè)備輸入和輸出數(shù)據(jù)。例如,輸入/輸出單元212可以通過(guò)鍵盤、鼠標(biāo)、和/或一些其他適當(dāng)?shù)妮斎朐O(shè)備為用戶輸入提供連接。另外,輸入/輸出單元212可以向打印機(jī)發(fā)送輸出。顯示器214提供向用戶顯示信息的機(jī)構(gòu)。操作系統(tǒng)、應(yīng)用和/或程序的指令可以位于存儲(chǔ)設(shè)備216中,該存儲(chǔ)設(shè)備216通過(guò)通信結(jié)構(gòu)202與處理器單元204通信。在這些示例例子中,這些指令以功能形式位于永久存儲(chǔ)器208上。這些指令可以被加載到存儲(chǔ)器206中,用于由處理器單元204執(zhí)行??梢酝ㄟ^(guò)處理器單元204,使用可以位于諸如存儲(chǔ)器206的存儲(chǔ)器中的計(jì)算機(jī)實(shí)現(xiàn)的指令,來(lái)進(jìn)行不同實(shí)施例的處理。這些指令被稱為可以由處理器單元204中的處理器讀取和執(zhí)行的程序代碼、計(jì)算機(jī)可用程序代碼或計(jì)算機(jī)可讀程序代碼。在不同實(shí)施例中的程序代碼可以被實(shí)現(xiàn)在不同物理或有形計(jì)算機(jī)可讀介質(zhì)上,諸如存儲(chǔ)器206或永久存儲(chǔ)器208。程序代碼218以功能形式位于可選擇性地移除的計(jì)算機(jī)可讀介質(zhì)220上,且可以被加載或傳輸?shù)綌?shù)據(jù)處理系統(tǒng)200,用于由處理器單元204執(zhí)行。程序代碼218和計(jì)算機(jī)可讀介質(zhì)220在這些例子中形成計(jì)算機(jī)程序產(chǎn)品222。在一個(gè)例子中,計(jì)算機(jī)可讀介質(zhì)220 可以處于有形形式,諸如光盤或磁盤,其被插入或放入驅(qū)動(dòng)器或作為永久存儲(chǔ)器208的一部分的其他設(shè)備中,用于傳輸?shù)街T如作為永久存儲(chǔ)器208的一部分的硬盤驅(qū)動(dòng)器的存儲(chǔ)設(shè)備上。以有形形式,計(jì)算機(jī)可讀介質(zhì)218還可以采取永久存儲(chǔ)器的形式,諸如連接到數(shù)據(jù)處理系統(tǒng)200的硬盤驅(qū)動(dòng)器、拇指盤驅(qū)動(dòng)器、或閃存。計(jì)算機(jī)可讀介質(zhì)220的有形形式也稱為計(jì)算機(jī)可記錄存儲(chǔ)介質(zhì)。在一些例子中,計(jì)算機(jī)可讀介質(zhì)220可以不是可移除的。或者,程序代碼218可以從計(jì)算機(jī)可讀介質(zhì)220通過(guò)到通信單元210的通信鏈接和/或通過(guò)到輸入/輸出單元212的連接而被傳輸?shù)綌?shù)據(jù)處理系統(tǒng)200。通信鏈接和/或連接在例示例子中可以是物理或無(wú)線的。計(jì)算機(jī)可讀介質(zhì)還可以采取非有形介質(zhì)的形式, 諸如包含程序代碼的通信鏈接或無(wú)線傳輸。
在一些示例實(shí)施例中,程序代碼218可以通過(guò)網(wǎng)絡(luò)從另一設(shè)備或數(shù)據(jù)處理系統(tǒng)下載到永久存儲(chǔ)器208,用于在數(shù)據(jù)處理系統(tǒng)200內(nèi)使用。例如,在服務(wù)器數(shù)據(jù)處理系統(tǒng)中的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)的程序代碼可以通過(guò)網(wǎng)絡(luò)從服務(wù)器下載到數(shù)據(jù)處理系統(tǒng)200。 提供程序代碼218的數(shù)據(jù)處理系統(tǒng)可以是服務(wù)器計(jì)算機(jī)、客戶端計(jì)算機(jī)、或能夠存儲(chǔ)和傳輸程序代碼218的一些其他設(shè)備。為數(shù)據(jù)處理系統(tǒng)200圖示的不同組件不是想要向可以實(shí)現(xiàn)不同實(shí)施例的方式提供結(jié)構(gòu)限制。不同例示實(shí)施例可以在包括除了對(duì)于數(shù)據(jù)處理系統(tǒng)200所示的那些以外的組件或包括代替對(duì)數(shù)據(jù)處理系統(tǒng)200所示的組件的組件的數(shù)據(jù)處理系統(tǒng)中實(shí)現(xiàn)。圖2所示的其他組件可以與所示的例示例子不同??梢允褂媚軌驁?zhí)行程序代碼的任何硬件設(shè)備或系統(tǒng)來(lái)實(shí)現(xiàn)不同實(shí)施例。作為一個(gè)例子,數(shù)據(jù)處理系統(tǒng)可以包括與無(wú)機(jī)組件集成的有機(jī)組件,和 /或可以完全由除了人類以外的有機(jī)組件來(lái)構(gòu)成。例如,存儲(chǔ)設(shè)備可以由有機(jī)半導(dǎo)體構(gòu)成。作為另一例子,在數(shù)據(jù)處理系統(tǒng)200中的存儲(chǔ)設(shè)備是可以存儲(chǔ)數(shù)據(jù)的任何硬件裝置。存儲(chǔ)器206、永久存儲(chǔ)器208和計(jì)算機(jī)可讀介質(zhì)220是有形形式的存儲(chǔ)設(shè)備的例子。在另一例子中,可以使用總線系統(tǒng)來(lái)實(shí)現(xiàn)通信結(jié)構(gòu)202,且可以由一個(gè)或多個(gè)總線 (諸如系統(tǒng)總線或輸入/輸出總線)構(gòu)成。當(dāng)然,可以使用提供在附接到總線系統(tǒng)的不同組件或設(shè)備之間的數(shù)據(jù)傳輸?shù)娜魏芜m當(dāng)類型的架構(gòu)來(lái)實(shí)現(xiàn)總線系統(tǒng)。另外,通信單元可以包括用于發(fā)送和接收數(shù)據(jù)的一個(gè)或多個(gè)設(shè)備,諸如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。另外,存儲(chǔ)器可以是例如存儲(chǔ)器206或諸如可以在通信結(jié)構(gòu)202中存在的在接口和存儲(chǔ)器控制器集線器中找到的高速緩存?,F(xiàn)在參考圖3,方框示在可以實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng)內(nèi)操作的軟件組件的關(guān)系?;贘ava 的系統(tǒng)300包含向在特定硬件平臺(tái)上執(zhí)行的軟件提供硬件和系統(tǒng)支持的特定平臺(tái)操作系統(tǒng)302。java 虛擬機(jī)(JVM)304是可以與操作系統(tǒng)結(jié)合執(zhí)行的一個(gè)軟件應(yīng)用。Java 虛擬機(jī)304給java 運(yùn)行時(shí)刻環(huán)境提供執(zhí)行作為以java 編程語(yǔ)言寫的程序、 servlet或軟件組件的Java 應(yīng)用/小程序306的能力。Java 虛擬機(jī)304在其中操作的計(jì)算機(jī)系統(tǒng)可以類似于上述數(shù)據(jù)處理系統(tǒng)200或計(jì)算機(jī)100。但是,可以在所謂Java 芯片、硅上Java 或具有嵌入的Picojava核的Java 處理器上的專用硬件中實(shí)現(xiàn)Java 虛擬機(jī) 304。在java 運(yùn)行時(shí)刻環(huán)境的中心是Java 虛擬機(jī),其支持Java 的環(huán)境的所有方面,包括其架構(gòu)、安全特征和網(wǎng)絡(luò)上的移動(dòng)性和平臺(tái)獨(dú)立性。Java 虛擬機(jī)是例如抽象地指定的計(jì)算機(jī)的虛擬計(jì)算機(jī)。說(shuō)明書(shū)定義每個(gè)Java 虛擬機(jī)必須實(shí)現(xiàn)的某些特征,和可以取決于Java 虛擬機(jī)被設(shè)計(jì)為在其上執(zhí)行的平臺(tái)的設(shè)計(jì)選擇的一些范圍。例如,所有Java 虛擬機(jī)必須執(zhí)行Java 字節(jié)碼,且可以使用一定范圍的技術(shù)來(lái)執(zhí)行由字節(jié)碼表示的指令。 可以完全以軟件或稍微以硬件實(shí)現(xiàn)Java 虛擬機(jī)。該靈活性允許不同的Java 虛擬機(jī)被設(shè)計(jì)用于主機(jī)計(jì)算機(jī)和PDA。java 虛擬機(jī)是實(shí)際執(zhí)行java 程序的虛擬計(jì)算機(jī)組件的名稱。Java 程序不直接由中央處理器運(yùn)行,而是由Java 虛擬機(jī)運(yùn)行,Java 虛擬機(jī)本身是在處理器上運(yùn)行的軟件。與僅對(duì)于其編譯代碼的一個(gè)平臺(tái)相對(duì),Java 虛擬機(jī)允許在不同平臺(tái)上執(zhí)行Java程序。Java 程序?qū)τ贘ava 虛擬機(jī)進(jìn)行編譯。以此方式,Java 能夠支持許多類型的數(shù)據(jù)處理系統(tǒng)的應(yīng)用,其可以包含各種中央處理單元和操作系統(tǒng)架構(gòu)。為了使得Java 應(yīng)用能夠在不同類型的數(shù)據(jù)處理系統(tǒng)上執(zhí)行,編譯器通常生成架構(gòu)中性文件格式。在存在Java 運(yùn)行時(shí)刻系統(tǒng)的情況下,該編譯的代碼可在許多處理器上執(zhí)行。Java 編譯器生成非專用于特定計(jì)算機(jī)架構(gòu)的字節(jié)碼指令。字節(jié)碼是由Java 編譯器生成且由Java 解釋器執(zhí)行的機(jī)器獨(dú)立碼。Java 解釋器是交替地解碼和解釋一個(gè)字節(jié)碼或多個(gè)字節(jié)碼的Java 虛擬機(jī)的一部分。這些字節(jié)碼指令被設(shè)計(jì)為容易在任意計(jì)算機(jī)上解釋,且容易地即時(shí)翻譯為本地機(jī)器碼。字節(jié)碼可以通過(guò)即時(shí)(just-in-time (JIT))編譯器被翻譯為本地碼。java 虛擬機(jī)加載類文件,且執(zhí)行它們中的字節(jié)碼。由Java 虛擬機(jī)中的類加載器來(lái)加載類文件。類加載器加載來(lái)自應(yīng)用的類文件和來(lái)自應(yīng)用需要的Java 應(yīng)用編程接口 (API)的類文件。執(zhí)行字節(jié)碼的執(zhí)行引擎可以在平臺(tái)和實(shí)施方式上變化。一種類型的基于軟件的執(zhí)行引擎是即時(shí)編譯器。利用這種類型的執(zhí)行,一種方法的字節(jié)碼在成功滿足用于即時(shí)編譯一種方法的某種類型的標(biāo)準(zhǔn)時(shí)被編譯為本地機(jī)器碼。然后,在下一次調(diào)用方法時(shí),該方法的本地機(jī)器碼被高速緩存和重用。執(zhí)行引擎還可以以硬件實(shí)現(xiàn),且嵌入在芯片上,以便本地地執(zhí)行Java 字節(jié)碼。Java 虛擬機(jī)通常解釋字節(jié)碼,但 Java 虛擬機(jī)還可以使用其他技術(shù),諸如即時(shí)編譯,來(lái)執(zhí)行字節(jié)碼。當(dāng)由在特定平臺(tái)操作系統(tǒng)上以軟件實(shí)現(xiàn)的java 虛擬機(jī)上執(zhí)行應(yīng)用時(shí),java 應(yīng)用可以通過(guò)調(diào)用本地方法來(lái)與主機(jī)操作系統(tǒng)交互。以Java 語(yǔ)言來(lái)寫Java 方法,將其編譯為字節(jié)碼,且將其存儲(chǔ)在類文件中。以某些其他語(yǔ)言來(lái)寫本地方法,將其編譯為特定處理器的本地機(jī)器碼。在其精確形式是特定平臺(tái)的動(dòng)態(tài)鏈接庫(kù)中存儲(chǔ)本地方法。現(xiàn)在參考圖4,根據(jù)例示實(shí)施例描述Java .虛擬機(jī)的方框圖。Java .虛擬機(jī) (JVM) 400包括類加載器子系統(tǒng)402,其是用于加載諸如類和接口的給出了合格的名稱的類型的機(jī)構(gòu)。Java 虛擬機(jī)400還包含運(yùn)行時(shí)刻數(shù)據(jù)域404、執(zhí)行引擎406、本地方法接口 408 和存儲(chǔ)器管理410。執(zhí)行引擎406是用于執(zhí)行在由類加載器子系統(tǒng)402加載的類的方法中包含的指令的機(jī)構(gòu)。執(zhí)行引擎406可以是例如Java 解釋器412或即時(shí)編譯器414。本地方法接口 408允許對(duì)底層操作系統(tǒng)中的資源的訪問(wèn)。本地方法接口 408可以是例如java 本地接口(JNI)。運(yùn)行時(shí)刻數(shù)據(jù)域404包含本地方法棧416、Java 棧418、PC寄存器420、方法域 422和堆(heap)4M。這些不同的數(shù)據(jù)域表示由Java 虛擬機(jī)400執(zhí)行程序所需的存儲(chǔ)器的組織。Java .棧418被用于存儲(chǔ)Java 方法調(diào)用的狀態(tài)。當(dāng)啟動(dòng)新線程時(shí),Java 虛擬機(jī)為該線程構(gòu)建新Java 棧。Java 虛擬機(jī)僅對(duì)Java 棧直接進(jìn)行兩個(gè)操作。其推入和彈出幀。線程的Java 棧存儲(chǔ)該線程的Java 方法調(diào)用的狀態(tài)。Java 方法調(diào)用的狀態(tài)包括其本地變量、其被調(diào)用的參數(shù)、其返回的值、以及(如果有的話)中間計(jì)算。Java 棧由棧幀組成。棧幀包含單個(gè)Java 方法調(diào)用的狀態(tài)。當(dāng)線程調(diào)用方法時(shí),Java 虛擬機(jī)將新幀推入線程的Java 棧。當(dāng)該方法完成時(shí),Java 虛擬機(jī)彈出用于該方法的幀,并丟棄它。Java 虛擬機(jī)不具有用于保持中間值的任何寄存器;需要或產(chǎn)生中間值的任何Java 指令使用棧來(lái)保持中間值。以此方式,為各種平臺(tái)架構(gòu)很好地定義了Java 指令集。程序計(jì)數(shù)器(PC)寄存器420被用于指示要執(zhí)行的下一指令。每個(gè)實(shí)例化的線程得到其自己的PC寄存器和Java 棧。如果該線程正執(zhí)行Java 虛擬機(jī)方法,則PC寄存器的值指示要執(zhí)行的下一指令。如果該線程正執(zhí)行本地方法,則不定義PC寄存器的內(nèi)容。
本地方法棧416存儲(chǔ)本地方法的調(diào)用的狀態(tài)。以依賴于實(shí)現(xiàn)的方式,在本地方法棧、寄存器或其他依賴于實(shí)現(xiàn)的存儲(chǔ)器域中存儲(chǔ)本地方法調(diào)用的狀態(tài)。在一些Java 虛擬機(jī)實(shí)施方式中,本地方法棧416和Java 棧418被組合。方法域422包含類數(shù)據(jù),而堆4M包含所有實(shí)例化的對(duì)象。在這些例子中,常數(shù)池位于方法域422中。java 虛擬機(jī)規(guī)定嚴(yán)格地定義數(shù)據(jù)類型和操作。大多數(shù)Java 虛擬機(jī)選擇具有一個(gè)方法域和一個(gè)堆,其每個(gè)由在Java 虛擬機(jī)(諸如Java 虛擬機(jī)400)內(nèi)部運(yùn)行的所有線程共享。當(dāng)Java 虛擬機(jī)400加載類文件時(shí),其從類文件中包含的二進(jìn)制數(shù)據(jù)解析關(guān)于類型的信息。Java 虛擬機(jī)400將這一類型信息放入方法域中。每次構(gòu)建類實(shí)例或陣列時(shí),從堆4 分配用于新對(duì)象的存儲(chǔ)器。Java 虛擬機(jī)400包括分配堆424的存儲(chǔ)器內(nèi)的存儲(chǔ)器空間的指令,但不包括用于釋放該存儲(chǔ)器內(nèi)的空間的指令。在所描述的例子中的存儲(chǔ)器管理410管理被分配給堆似4的存儲(chǔ)器內(nèi)的存儲(chǔ)器空間。存儲(chǔ)器管理410可以包括垃圾收集器,其自動(dòng)回收由不再被引用的對(duì)象使用的存儲(chǔ)器。另外,垃圾收集器也可以移動(dòng)對(duì)象來(lái)減少堆碎片。在此的例示實(shí)施例描述用于構(gòu)建系統(tǒng)的運(yùn)行時(shí)刻環(huán)境的計(jì)算機(jī)實(shí)現(xiàn)的方法、有形存儲(chǔ)介質(zhì)和數(shù)據(jù)處理系統(tǒng)。簡(jiǎn)檔管理器接收包含簡(jiǎn)檔標(biāo)識(shí)符的服務(wù)請(qǐng)求。簡(jiǎn)檔標(biāo)識(shí)符指定至少一個(gè)軟件組件的所需版本。簡(jiǎn)檔管理器標(biāo)識(shí)軟件組件的完整安裝和至少一個(gè)增量文件。簡(jiǎn)檔管理器通過(guò)優(yōu)選地利用來(lái)自至少一個(gè)增量文件的文件、然后來(lái)自完整安裝的文件, 來(lái)構(gòu)造所需版本的類路徑。然后,利用類路徑來(lái)構(gòu)建運(yùn)行時(shí)刻環(huán)境。例示實(shí)施例提供應(yīng)用/簡(jiǎn)檔在運(yùn)行時(shí)刻期間選擇運(yùn)行時(shí)刻環(huán)境版本的計(jì)算機(jī)實(shí)現(xiàn)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。根據(jù)例示實(shí)施例,企業(yè)應(yīng)用服務(wù)器修復(fù)包升級(jí)類似于虛擬安裝的功能,且不整體升級(jí)企業(yè)應(yīng)用服務(wù)器版本。相反,在升級(jí)之后在系統(tǒng)中應(yīng)該存在當(dāng)前版本和新的版本兩者,以便在應(yīng)用啟動(dòng)或簡(jiǎn)檔啟動(dòng)階段期間可以選擇任一版本。根據(jù)另一例示實(shí)施例,包括基本版本和升級(jí)的版本的不同運(yùn)行時(shí)刻版本被保持在系統(tǒng)中,且基于運(yùn)行時(shí)刻選擇而動(dòng)態(tài)地加載?,F(xiàn)在參考圖5,描述用于向數(shù)據(jù)處理系統(tǒng)的java 虛擬機(jī)提供簡(jiǎn)檔的已知數(shù)據(jù)流圖。Java 虛擬機(jī)510是諸如圖4的Java 虛擬機(jī)400的Java 虛擬機(jī)。Java 虛擬機(jī)510 通過(guò)維持每個(gè)分離的簡(jiǎn)檔的完整安裝,在相同機(jī)器的分離的簡(jiǎn)檔中安裝并維持企業(yè)應(yīng)用服務(wù)器的不同版本。Java 虛擬機(jī)510包含應(yīng)用服務(wù)器512-516。應(yīng)用服務(wù)器512-516是其中Java 虛擬機(jī)510的應(yīng)用實(shí)際執(zhí)行的主要運(yùn)行時(shí)刻組件。應(yīng)用服務(wù)器512-516的每個(gè)執(zhí)行Java .虛擬機(jī)機(jī)器實(shí)例518-522之一。Java 虛擬機(jī)實(shí)例518-522是Java 虛擬機(jī)510內(nèi)的類實(shí)例。Java 虛擬機(jī)實(shí)例518-522的若干可以在Java 虛擬機(jī)510內(nèi)分離地執(zhí)行,只要那些實(shí)例每個(gè)被包含在分離的應(yīng)用服務(wù)器(諸如應(yīng)用服務(wù)器512-516)內(nèi)。使用在簡(jiǎn)檔數(shù)據(jù)庫(kù)530中存儲(chǔ)的簡(jiǎn)檔5對(duì)-5觀之一來(lái)構(gòu)建Java .虛擬機(jī)實(shí)例 518-522。簡(jiǎn)檔數(shù)據(jù)庫(kù)5 是在諸如圖1的存儲(chǔ)單元108的存儲(chǔ)單元上實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),其包含或引用簡(jiǎn)檔524-528的位置。簡(jiǎn)檔524-5 是分離的數(shù)據(jù)分區(qū),其包括定義應(yīng)用服務(wù)器處理(諸如部署管理器或應(yīng)用服務(wù)器)的運(yùn)行時(shí)刻環(huán)境的文件。每個(gè)運(yùn)行時(shí)刻環(huán)境具有其自己的配置文件、日志、特性和其他屬性。簡(jiǎn)檔524-5 可以使得應(yīng)用服務(wù)器512-516的每個(gè)運(yùn)行時(shí)刻唯一且與服務(wù)器二進(jìn)制(binary)和與其他簡(jiǎn)檔分離。簡(jiǎn)檔5對(duì)_5觀的每個(gè)是完整的企業(yè)應(yīng)用服務(wù)器安裝,包括在創(chuàng)建簡(jiǎn)檔時(shí)可用的任何軟件補(bǔ)丁和更新。每次簡(jiǎn)檔524-5 之一被打補(bǔ)丁或更新時(shí),構(gòu)建新的、單獨(dú)的簡(jiǎn)檔。因此,在一個(gè)例示實(shí)施例中,簡(jiǎn)檔5M是企業(yè)應(yīng)用服務(wù)器的里程碑式發(fā)布的完整安裝。簡(jiǎn)檔 5 是企業(yè)應(yīng)用服務(wù)器的完整安裝。簡(jiǎn)檔5 也是簡(jiǎn)檔524的修補(bǔ)版本。簡(jiǎn)檔5 是企業(yè)應(yīng)用服務(wù)器的完整安裝。簡(jiǎn)檔528也是簡(jiǎn)檔526的修補(bǔ)的版本。當(dāng)Java 虛擬機(jī)510接收服務(wù)請(qǐng)求530時(shí),簡(jiǎn)檔管理器532識(shí)別簡(jiǎn)檔標(biāo)識(shí)符534。 簡(jiǎn)檔標(biāo)識(shí)符534是應(yīng)該使用企業(yè)應(yīng)用服務(wù)器的哪個(gè)版本來(lái)滿足請(qǐng)求以及因此應(yīng)該使用簡(jiǎn)檔524-528中的哪個(gè)來(lái)創(chuàng)建諸如Java 虛擬機(jī)實(shí)例518-522的具體實(shí)例的指示。然后,簡(jiǎn)檔管理器532提取簡(jiǎn)檔5對(duì)-5觀中所指示的一個(gè),且向正執(zhí)行實(shí)例的應(yīng)用服務(wù)器512-516 中的特定的一個(gè)分配所提取的簡(jiǎn)檔。現(xiàn)在參考圖6,示出了根據(jù)例示實(shí)施例向數(shù)據(jù)處理系統(tǒng)的Java虛擬機(jī)提供簡(jiǎn)檔的數(shù)據(jù)流圖。Java 虛擬機(jī)610是諸如圖4的Java 虛擬機(jī)400的Java 虛擬機(jī)。Java 虛擬機(jī)610通過(guò)維持每個(gè)分離的簡(jiǎn)檔的增量文件,在相同機(jī)器的分離的簡(jiǎn)檔中安裝并維持企業(yè)應(yīng)用服務(wù)器的不同版本。Java 虛擬機(jī)610包含應(yīng)用服務(wù)器612-616。應(yīng)用服務(wù)器612-616是其中Java 虛擬機(jī)610的應(yīng)用實(shí)際執(zhí)行的主要運(yùn)行時(shí)刻組件。應(yīng)用服務(wù)器612-616中的每個(gè)執(zhí)行Java 虛擬機(jī)實(shí)例618-622之一。Java 虛擬機(jī)實(shí)例618-622是Java 虛擬機(jī)610內(nèi)的類實(shí)例。Java 虛擬機(jī)實(shí)例618-622中的若干可以分離地在Java 虛擬機(jī)610內(nèi)執(zhí)行,只要那些實(shí)例的每個(gè)被包含在單獨(dú)的應(yīng)用服務(wù)器 (諸如應(yīng)用服務(wù)器612-616)內(nèi)。使用在簡(jiǎn)檔數(shù)據(jù)庫(kù)631中存儲(chǔ)的簡(jiǎn)檔擬4和一個(gè)或多個(gè)增量(delta)文件 626-630中的一個(gè)來(lái)創(chuàng)建Java 虛擬機(jī)實(shí)例618-622。簡(jiǎn)檔數(shù)據(jù)庫(kù)631是在諸如圖1的存儲(chǔ)單元108的存儲(chǔ)單元上實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),其包含或引用簡(jiǎn)檔624的位置。簡(jiǎn)檔6M是分離的數(shù)據(jù)分區(qū),其包括定義應(yīng)用服務(wù)器處理(諸如部署管理器或應(yīng)用服務(wù)器)的運(yùn)行時(shí)刻環(huán)境的文件。每個(gè)運(yùn)行時(shí)刻環(huán)境具有其自己的配置文件、日志、特性和其他屬性。簡(jiǎn)檔擬4 可以使得應(yīng)用服務(wù)器612-616的每個(gè)運(yùn)行時(shí)刻唯一且與服務(wù)器二進(jìn)制和與其他簡(jiǎn)檔分離。簡(jiǎn)檔6M是完整的企業(yè)應(yīng)用服務(wù)器安裝。不像圖5的簡(jiǎn)檔524-528,簡(jiǎn)檔6M不包括在構(gòu)建簡(jiǎn)檔時(shí)可用的任何軟件補(bǔ)丁和更新。在一個(gè)例示實(shí)施例中,簡(jiǎn)檔6 是企業(yè)應(yīng)用服務(wù)器的里程碑式發(fā)布的完整安裝。增量文件626-630是包含對(duì)諸如簡(jiǎn)檔6M的基本簡(jiǎn)檔的改變或?qū)χT如其他增量文件626-630的先前增量文件的改變的文件。對(duì)于要應(yīng)用到簡(jiǎn)檔624的任何軟件補(bǔ)丁或更新,要對(duì)簡(jiǎn)檔6 頒布的改變不初始地應(yīng)用于簡(jiǎn)檔624,而是被保存作為增量文件626-630之一。在一個(gè)例示實(shí)施例中,增量文件626-630中的每個(gè)是包含要對(duì)簡(jiǎn)檔6M頒布的改變的軟件補(bǔ)丁或更新。當(dāng)動(dòng)態(tài)地將簡(jiǎn)檔6M加載到應(yīng)用服務(wù)器612-616之一中時(shí),首先用來(lái)自所標(biāo)識(shí)的增量文件626-630的文件、然后用來(lái)自基本簡(jiǎn)檔624的文件來(lái)構(gòu)造類路徑。在一個(gè)例示實(shí)施例中,增量文件626-630中的每個(gè)是順序的軟件補(bǔ)丁或更新,其包含要對(duì)如由前一個(gè)增量文件6沈-630修改的簡(jiǎn)檔6M頒布的改變。例如,但不限于,增量文件6 可以是對(duì)簡(jiǎn)檔624的第一更新,使得將直接對(duì)簡(jiǎn)檔6M應(yīng)用增量文件626的軟件補(bǔ)丁或更新。增量文件6 可以是對(duì)簡(jiǎn)檔624的隨后更新,使得將對(duì)如由增量文件6 修改的簡(jiǎn)檔6M應(yīng)用增量文件628的軟件補(bǔ)丁或更新。增量文件630可以是對(duì)簡(jiǎn)檔624的另一隨后更新,使得將對(duì)如由增量文件6 和增量文件6 兩者修改的簡(jiǎn)檔6M應(yīng)用增量文件628的軟件補(bǔ)丁或更新。因此,如果服務(wù)請(qǐng)求632標(biāo)識(shí)包括增量文件626-630中的每個(gè)的簡(jiǎn)檔版本,首先用來(lái)自增量文件630的文件、然后用來(lái)自增量文件628的文件、然后用來(lái)自增量文件626的文件、然后用來(lái)自基本簡(jiǎn)檔624的文件來(lái)構(gòu)造類路徑。當(dāng)Java 虛擬機(jī)610接收服務(wù)請(qǐng)求632時(shí),簡(jiǎn)檔管理器634識(shí)別簡(jiǎn)檔標(biāo)識(shí)符636。 簡(jiǎn)檔標(biāo)識(shí)符636是應(yīng)該使用企業(yè)應(yīng)用服務(wù)器的哪個(gè)版本來(lái)滿足請(qǐng)求以及因此應(yīng)該使用簡(jiǎn)檔626-630中的哪個(gè)和簡(jiǎn)檔6M —起來(lái)創(chuàng)建諸如Java 虛擬機(jī)實(shí)例618-622之一的具體實(shí)例的指示。然后,簡(jiǎn)檔管理器634提取增量文件626-630中所指示的一個(gè)以及簡(jiǎn)檔624,且向應(yīng)用服務(wù)器612-616中正執(zhí)行實(shí)例的特定的一個(gè)分配所提取的簡(jiǎn)檔。例示實(shí)施例提供應(yīng)用/簡(jiǎn)檔在運(yùn)行時(shí)刻期間選擇運(yùn)行時(shí)刻環(huán)境版本的計(jì)算機(jī)實(shí)現(xiàn)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。根據(jù)例示實(shí)施例,企業(yè)應(yīng)用服務(wù)器修復(fù)包升級(jí)類似于虛擬安裝的功能,且不整體升級(jí)企業(yè)應(yīng)用服務(wù)器版本。相反,在升級(jí)之后在系統(tǒng)中應(yīng)該存在當(dāng)前版本和新的版本,以便在應(yīng)用啟動(dòng)或簡(jiǎn)檔啟動(dòng)階段期間可以選擇任一版本。根據(jù)另一例示實(shí)施例,包括基本版本和升級(jí)的版本的不同運(yùn)行時(shí)刻版本被保持在系統(tǒng)中,且基于運(yùn)行時(shí)刻選擇而動(dòng)態(tài)地被加載?,F(xiàn)在參考圖7,根據(jù)現(xiàn)有技術(shù)示出示意性地示出企業(yè)應(yīng)用服務(wù)器文件系統(tǒng)的方框圖。文件結(jié)構(gòu)700是EAS的文件系統(tǒng)結(jié)構(gòu)的組織,以便可以在企業(yè)應(yīng)用服務(wù)器主目錄(home directory)中保持運(yùn)行時(shí)刻文件的基本版本和多個(gè)其他完整安裝。文件結(jié)構(gòu)700是包含諸如圖5的簡(jiǎn)檔524-528的簡(jiǎn)檔的文件系統(tǒng)的示意表示。文件結(jié)構(gòu)700包括主目錄702。當(dāng)企業(yè)應(yīng)用服務(wù)器是WebSphere 應(yīng)用服務(wù)器時(shí), 主目錄 702 可以是例如(但不限于)\WebSphere\AppServer WAS_H0ME 目錄。Websphere 是國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo)。\profiles目錄列出了各種簡(jiǎn)檔,但是WebSphere的其他目錄和文件,例如Java 目錄704、庫(kù)目錄706、插件目錄708和特性文件710都在WAS_H0ME 級(jí)別處。當(dāng)對(duì)企業(yè)應(yīng)用服務(wù)器進(jìn)行升級(jí),例如從版本6. 1. 0. 0升級(jí)到版本6. 1. 0. 25時(shí),例如Java 目錄704、庫(kù)目錄706、插件目錄708和特性文件710內(nèi)的文件的每個(gè)文件都將被改變以反映該升級(jí)。如果對(duì)企業(yè)應(yīng)用服務(wù)器的升級(jí)保存為不同文件名,則文件結(jié)構(gòu)700可以維持升級(jí)的企業(yè)應(yīng)用服務(wù)器和原始企業(yè)應(yīng)用服務(wù)器兩者的完整拷貝。如果對(duì)企業(yè)應(yīng)用服務(wù)器的升級(jí)不保存為不同文件名,則企業(yè)應(yīng)用服務(wù)器的原始版本的文件將被替換并丟失?,F(xiàn)在參考圖8,根據(jù)例示實(shí)施例示出示意地圖示企業(yè)應(yīng)用服務(wù)器文件系統(tǒng)結(jié)構(gòu)的方框圖。文件結(jié)構(gòu)800是企業(yè)應(yīng)用服務(wù)器的文件系統(tǒng)結(jié)構(gòu)的組織,以便可以在企業(yè)應(yīng)用服務(wù)器主目錄中保持運(yùn)行時(shí)刻文件的基本版本和多個(gè)其他完整安裝。文件結(jié)構(gòu)800是包含諸如圖6的簡(jiǎn)檔6M和增量文件626-630的簡(jiǎn)檔和增量文件的文件系統(tǒng)的示意表示。文件結(jié)構(gòu)800包括主目錄802。當(dāng)企業(yè)應(yīng)用服務(wù)器是WebSphere 應(yīng)用服務(wù)器時(shí), 主目錄 802 可以是例如(但不限于)\WebSphere\AppServer WAS_H0ME 目錄。Websphere 是國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo)。
主目錄802初始地包含版本子目錄804。對(duì)于安裝的企業(yè)應(yīng)用服務(wù)器的每個(gè)補(bǔ)丁或軟件升級(jí),向主目錄802添加新版本子目錄。主目錄802列出各種簡(jiǎn)檔。各種簡(jiǎn)檔中的每個(gè)包括企業(yè)應(yīng)用服務(wù)器的其他文件,例如Java 目錄806、庫(kù)目錄808、插件目錄810和特性文件812。其他文件安裝在WAS_H0ME\Version_base_6. 1. 0. 0級(jí)別處。當(dāng)對(duì)企業(yè)應(yīng)用服務(wù)器進(jìn)行升級(jí)時(shí),構(gòu)建新的版本子目錄814。例如,從版本 6. 1.0. 0升級(jí)到版本6. 1.0. 25,添加\Version_base_6. 1.0.0目錄以包含運(yùn)行時(shí)刻目錄文件,諸如例如但不限于Java 目錄816、庫(kù)目錄818、插件目錄820和特性文件822,使得在文件系統(tǒng)內(nèi)存儲(chǔ)版本6. 1. 0. 0和版本6. 1. 0. 25兩者。在一個(gè)示例實(shí)施例中,諸如例如但不限于Java 目錄816、庫(kù)目錄818、插件目錄 820和特性文件822的運(yùn)行時(shí)刻目錄文件是增量文件,諸如圖6的增量文件624-6 之一。 諸如例如但不限于Java 目錄816、庫(kù)目錄818、插件目錄820和特性文件822的運(yùn)行時(shí)刻目錄文件是企業(yè)應(yīng)用服務(wù)器從先前的Java 目錄806、庫(kù)目錄808、插件目錄810和特性文件812的改變。當(dāng)向企業(yè)應(yīng)用服務(wù)器應(yīng)用修復(fù)包、補(bǔ)丁或升級(jí)時(shí),修復(fù)包、補(bǔ)丁或升級(jí)可以是"里程碑式升級(jí)"或"非里程碑式"升級(jí)。如果選擇"里程碑式"升級(jí),構(gòu)建包含升級(jí)文件組的新的\version_delta_6. 1. 0. 25。例如,為了從版本6. 1. 0. 0升級(jí)到版本6. 1. 0. 25,版本 6. 1.0.0的運(yùn)行時(shí)刻目錄文件的增量文件,例如Java 目錄816、庫(kù)目錄818、插件目錄820 和特性文件822將被存儲(chǔ)在新版本子目錄814中。非里程碑式安裝是包含企業(yè)應(yīng)用服務(wù)器的所有文件和目錄的完整版本級(jí)別的完整安裝。在非里程碑式安裝中,將整個(gè)企業(yè)應(yīng)用服務(wù)器系統(tǒng)升級(jí)到較新的版本。相反,里程碑式安裝是取決于一個(gè)或多個(gè)其他安裝目錄的版本級(jí)別的部分安裝,且大概是至少一個(gè)完整的基本簡(jiǎn)檔/安裝目錄。在里程碑式安裝中,保存舊的和新的文件版本。新文件版本被存儲(chǔ)作為增量文件、諸如圖6的增量文件6沈-630之一。如果選擇"非里程碑式"升級(jí),當(dāng)發(fā)生升級(jí)時(shí),運(yùn)行時(shí)刻目錄文件被簡(jiǎn)單地重寫從而在文件結(jié)構(gòu)中僅存在升級(jí)的版本。當(dāng)啟動(dòng)諸如圖6的應(yīng)用服務(wù)器612-616之一的應(yīng)用服務(wù)器時(shí),用適當(dāng)?shù)暮?jiǎn)檔來(lái)啟動(dòng)Java 虛擬機(jī)實(shí)例。構(gòu)建虛擬機(jī)實(shí)例的類路徑,該類路徑首先包含來(lái)自version delta_6. 1. 0. 25的文件、然后是來(lái)自version_delta_6. 1. 0. 0.的文件。如果需要的話,一些狀態(tài)數(shù)據(jù)文件,例如在特性子目錄中的那些可以整體被復(fù)制,使得它們是一致的??梢越Y(jié)合特定增量文件來(lái)開(kāi)始具體簡(jiǎn)檔。用基本簡(jiǎn)檔,或可能的用另一增量文件,來(lái)回填企業(yè)應(yīng)用服務(wù)器運(yùn)行時(shí)刻。以此方式,保存了在企業(yè)應(yīng)用服務(wù)器的先前版本上以及在后的版本上運(yùn)行簡(jiǎn)檔的能力,而不必完整地復(fù)制所有文件。圖9是示意地圖示根據(jù)例示實(shí)施例的企業(yè)應(yīng)用服務(wù)器升級(jí)、補(bǔ)丁或修復(fù)包的安裝的方框圖。處理900是在諸如圖6的簡(jiǎn)檔管理器634的軟件組件上執(zhí)行的軟件處理。處理900通過(guò)啟動(dòng)用于安裝升級(jí)的版本的安裝器而開(kāi)始(步驟902)。確定升級(jí)是否是里程碑式升級(jí)(步驟904)。響應(yīng)于確定該升級(jí)是里程碑式升級(jí)(步驟904中的是), 安裝該升級(jí),同時(shí)維持由該升級(jí)更新的所有先前版本的文件(步驟906)。響應(yīng)于確定該升級(jí)不是里程碑式升級(jí)(步驟904中的”否”輸出),安裝該升級(jí),以便通過(guò)用升級(jí)版本的文件來(lái)替換先前版本的文件來(lái)升級(jí)WAS的整個(gè)系統(tǒng)(步驟908)。圖10是示意地圖示根據(jù)例示實(shí)施例的由運(yùn)行時(shí)刻環(huán)境選擇系統(tǒng)版本的方法的流程圖。處理1000是軟件方法,在諸如圖6的簡(jiǎn)檔管理器634的軟件處理上執(zhí)行。處理1000 假設(shè)在簇中的每個(gè)節(jié)點(diǎn)已安裝了相同更新安裝器包,且以一致的方式安裝了那些包。因此, 如果現(xiàn)有的簡(jiǎn)檔工具被增強(qiáng)以更新在簡(jiǎn)檔和運(yùn)行時(shí)刻之間的關(guān)聯(lián),且使用節(jié)點(diǎn)代理向所有節(jié)點(diǎn)推出,則可以容易地進(jìn)行該關(guān)聯(lián)。例如在簡(jiǎn)檔\AppSrv01\config\cells\cellName\ nodes\nodeName\runtime version, xml 巾白勺f 牛^1 弓I入處理1000通過(guò)啟動(dòng)該簡(jiǎn)檔而開(kāi)始(步驟100 。處理1000使得用戶接口能夠在特定版本級(jí)別處設(shè)置在簡(jiǎn)檔和運(yùn)行時(shí)刻服務(wù)器實(shí)例之間的關(guān)聯(lián)(步驟1004)。處理1000標(biāo)識(shí)應(yīng)該使用企業(yè)應(yīng)用服務(wù)器的哪個(gè)版本來(lái)滿足請(qǐng)求(步驟1006)。處理1000基于諸如圖6的簡(jiǎn)檔標(biāo)識(shí)符636的簡(jiǎn)檔標(biāo)識(shí)符來(lái)進(jìn)行標(biāo)識(shí)。構(gòu)造包含來(lái)自所選版本的文件的類路徑,并用來(lái)自先前版本的任何需要文件來(lái)回填它(步驟1008)。例如,由簡(jiǎn)檔標(biāo)識(shí)符指示版本6. 1. 0. 25。然后,使用版本-基本-6. 1. 0. 0用未包含在版本6. 1. 0. 25 中的任意需要文件來(lái)回填版本6. 1. 0. 25。啟動(dòng)所需的版本(步驟1010),然后該處理終止。因此例示實(shí)施例提供用于構(gòu)建系統(tǒng)的運(yùn)行時(shí)刻環(huán)境的計(jì)算機(jī)實(shí)現(xiàn)的方法、有形存儲(chǔ)介質(zhì)和數(shù)據(jù)處理系統(tǒng)。簡(jiǎn)檔管理器接收包含簡(jiǎn)檔標(biāo)識(shí)符的服務(wù)請(qǐng)求。簡(jiǎn)檔標(biāo)識(shí)符指定至少一個(gè)軟件組件的所需版本。簡(jiǎn)檔管理器標(biāo)識(shí)軟件組件的完整安裝和至少一個(gè)增量文件。簡(jiǎn)檔管理器通過(guò)優(yōu)選地利用來(lái)自至少一個(gè)增量文件的文件、然后利用來(lái)自完整安裝的文件,來(lái)動(dòng)態(tài)地構(gòu)造所需版本的類路徑。然后,利用類路徑來(lái)構(gòu)建運(yùn)行時(shí)刻環(huán)境。例示實(shí)施例提供應(yīng)用/簡(jiǎn)檔在運(yùn)行時(shí)刻期間選擇運(yùn)行時(shí)刻環(huán)境版本的計(jì)算機(jī)實(shí)現(xiàn)的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。根據(jù)例示實(shí)施例,企業(yè)應(yīng)用服務(wù)器修復(fù)包升級(jí)類似于虛擬安裝的功能,且不整體升級(jí)企業(yè)應(yīng)用服務(wù)器版本。相反,在升級(jí)之后在系統(tǒng)中應(yīng)該存在當(dāng)前版本和新的版本兩者,以便在應(yīng)用啟動(dòng)或簡(jiǎn)檔啟動(dòng)階段期間可以選擇任一版本。根據(jù)另一例示實(shí)施例,包括基本版本和升級(jí)的版本的不同運(yùn)行時(shí)刻版本被保持在系統(tǒng)中,且基于運(yùn)行時(shí)刻選擇而動(dòng)態(tài)地被加載??梢酝ㄟ^(guò)簡(jiǎn)檔管理器工具,或通過(guò)編輯在簡(jiǎn)檔的頂部處的某一部署描述符,來(lái)進(jìn)行簡(jiǎn)檔與運(yùn)行時(shí)刻環(huán)境的匹配。在節(jié)點(diǎn)簇的每個(gè)節(jié)點(diǎn)上的對(duì)應(yīng)簡(jiǎn)檔可能需要匹配在簇的每個(gè)節(jié)點(diǎn)上的對(duì)應(yīng)的運(yùn)行時(shí)刻版本。附圖中的流程圖和框示了根據(jù)本發(fā)明各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的架構(gòu)、功能和操作。在這一點(diǎn)上,所述流程圖或框圖中的每個(gè)塊可以代表包括用于實(shí)現(xiàn)指定邏輯功能的一個(gè)或多個(gè)可執(zhí)行指令的模塊、片段或部分代碼。還應(yīng)當(dāng)注意在某些替換實(shí)現(xiàn)中,在塊中標(biāo)注的功能可以不按照?qǐng)D中標(biāo)注的順序進(jìn)行。例如,連續(xù)示出的兩個(gè)塊實(shí)際上可以基本上同時(shí)執(zhí)行,或者根據(jù)所涉及的功能,所述塊有時(shí)候可以按照相反的順序執(zhí)行。還將注意,所述框圖和/或流程圖示的每個(gè)塊、以及所述框圖和/或流程圖示中的塊的組合可以通過(guò)執(zhí)行指定的功能或動(dòng)作的基于專用硬件的系統(tǒng)、或者專用硬件和計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。在這里使用的術(shù)語(yǔ)僅僅是為了描述特定實(shí)施例的目的,并且并非意圖限制本發(fā)明。如在這里使用的,單數(shù)形式“一”意圖是也包括復(fù)數(shù)形式,除非上下文明確指出其它情形。還將理解,當(dāng)在本說(shuō)明書(shū)中使用時(shí),術(shù)語(yǔ)“包括”和/或“包含”指定所述特征、整數(shù)、步驟、操作、元件和/或組件的存在,但是不排除一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組的存在或附加。下面的權(quán)利要求中的對(duì)應(yīng)結(jié)構(gòu)、材料、動(dòng)作和所有部件或步驟加功能元素的等效物意圖是包括與如具體要求保護(hù)的其它要求保護(hù)的元素組合而執(zhí)行所述功能的任何結(jié)構(gòu)、 材料或動(dòng)作。對(duì)本發(fā)明的描述被提供用于說(shuō)明和描述的目的,而并非意圖窮盡性的或者以所公開(kāi)的形式限制于本發(fā)明。很多修改和變化對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,而不背離本發(fā)明的范圍和精神。選擇和描述所述實(shí)施例,以便最佳地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并且使得本領(lǐng)域其他普通技術(shù)人員能夠?qū)τ谶m合于所構(gòu)想的特定用途的具有各種修改的各種實(shí)施例而理解本發(fā)明。本發(fā)明可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或包含硬件和軟件元素兩者的實(shí)施例的形式。在優(yōu)選實(shí)施例中,本發(fā)明以軟件實(shí)現(xiàn),其包括但不限于固件、駐留軟件、微代碼等。另外,本發(fā)明可以采取可從提供程序代碼用于由或結(jié)合計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用的計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)存取的計(jì)算機(jī)程序產(chǎn)品的形式。為了描述的目的, 計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是可以包含、存儲(chǔ)、通信、傳播或傳輸由或結(jié)合指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用的程序的任意有形裝置。介質(zhì)可以是電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)(裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移除計(jì)算機(jī)碟、隨機(jī)存取存儲(chǔ)器 (RAM)、只讀存儲(chǔ)器(ROM)、固態(tài)磁盤和光盤。光盤的當(dāng)前例子包括緊致盤-只讀存儲(chǔ)器 (CD-ROM)、緊致盤-讀 / 寫(CD-R/W)和 DVD。適用于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括直接或通過(guò)系統(tǒng)總線而間接耦合于存儲(chǔ)器元件的至少一個(gè)處理器。存儲(chǔ)器元件可以包括在實(shí)際執(zhí)行程序代碼期間使用的本地存儲(chǔ)器、大容量存儲(chǔ)器和提供至少一些程序代碼的臨時(shí)存儲(chǔ)以便在執(zhí)行期間減少必須從大容量存儲(chǔ)器提取代碼的次數(shù)的高速緩存存儲(chǔ)器。輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指示設(shè)備等)可以直接耦合于該系統(tǒng),或通過(guò)中間的I/O控制器而耦合于該系統(tǒng)。網(wǎng)絡(luò)適配器還可以耦合于該系統(tǒng)以使得數(shù)據(jù)處理系統(tǒng)能夠變得通過(guò)中間的私人或公共網(wǎng)絡(luò)而耦合于其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是當(dāng)前可用的網(wǎng)絡(luò)適配器類型中的一些。已經(jīng)為了圖示和描述的目的而呈現(xiàn)了本發(fā)明的描述,但不意圖窮舉或?qū)⒈景l(fā)明限制為所公開(kāi)的形式。許多修改和改變對(duì)于本領(lǐng)域技術(shù)人員將是顯然的。選擇并描述實(shí)施例以便最佳地說(shuō)明本發(fā)明的原理和實(shí)際的應(yīng)用,以從而使得本領(lǐng)域其他技術(shù)人員能夠理解本發(fā)明的具有適合于所構(gòu)思的特定用途的各種修改的各個(gè)實(shí)施例。
權(quán)利要求
1.一種用于構(gòu)建系統(tǒng)的運(yùn)行時(shí)刻環(huán)境的計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法包括通過(guò)處理器接收包含簡(jiǎn)檔標(biāo)識(shí)符的服務(wù)請(qǐng)求,其中,所述簡(jiǎn)檔標(biāo)識(shí)符指定至少一個(gè)軟件組件的所需版本;通過(guò)處理器標(biāo)識(shí)軟件組件的完整安裝和至少一個(gè)增量文件;通過(guò)處理器,通過(guò)優(yōu)選地利用來(lái)自至少一個(gè)增量文件的文件、然后利用來(lái)自完整安裝的文件,來(lái)構(gòu)造所需版本的類路徑;以及通過(guò)處理器來(lái)構(gòu)建利用類路徑的運(yùn)行時(shí)刻環(huán)境。
2.根據(jù)權(quán)利要求1的方法,其中,至少一個(gè)增量文件進(jìn)一步包括第一增量文件和第二增量文件,其中,所述第一增量文件是對(duì)完整安裝的較早更新,且其中,所述第二增量文件是對(duì)完整安裝的隨后更新,其中,通過(guò)優(yōu)選地利用來(lái)自至少一個(gè)增量文件的文件、然后利用來(lái)自完整安裝的文件來(lái)動(dòng)態(tài)地構(gòu)造所需版本的類路徑的步驟還包括通過(guò)處理器應(yīng)用在第二增量文件中的文件和目錄;通過(guò)處理器,響應(yīng)于應(yīng)用在第二增量文件中的文件和目錄,應(yīng)用在第一增量文件中的文件和目錄;以及響應(yīng)于應(yīng)用在第一增量文件中的文件和目錄,通過(guò)處理器應(yīng)用在完整安裝中的文件和目錄。
3.根據(jù)權(quán)利要求1的方法,其中,所述運(yùn)行時(shí)刻環(huán)境包括系統(tǒng)中的多個(gè)運(yùn)行時(shí)刻環(huán)境之一,在面向?qū)ο蟪绦蛱摂M機(jī)的分離實(shí)例中實(shí)現(xiàn)每個(gè)運(yùn)行時(shí)刻環(huán)境。
4.根據(jù)權(quán)利要求3的方法,其中,多個(gè)運(yùn)行時(shí)刻環(huán)境之一使用至少一個(gè)增量文件中的不同文件,以便多個(gè)運(yùn)行時(shí)刻環(huán)境中的運(yùn)行時(shí)刻環(huán)境具有其自己的配置文件、日志和特性。
5.根據(jù)權(quán)利要求1的方法,其中,運(yùn)行時(shí)刻環(huán)境包括面向?qū)ο蟮某绦虼a運(yùn)行時(shí)刻環(huán)境,并且其中,通過(guò)邏輯地將多個(gè)面向?qū)ο蟮某绦虼a軟件組件中的任意軟件組件與在所需的版本的用戶簡(jiǎn)檔中指定的面向?qū)ο蟮某绦虼a類重疊來(lái)指定類路徑,并且其中,在服務(wù)請(qǐng)求中的簡(jiǎn)檔標(biāo)識(shí)符指定所需的面向?qū)ο蟮某绦虼a類版本。
6.根據(jù)權(quán)利要求1的方法,其中,所述簡(jiǎn)檔標(biāo)識(shí)符指定用于邏輯地重疊軟件組件的完整安裝和至少一個(gè)增量文件的安排層次。
7.根據(jù)權(quán)利要求1的方法,其中,軟件組件的完整安裝是企業(yè)應(yīng)用服務(wù)器的完整安裝。
8.一種用于升級(jí)軟件組件的計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法包括通過(guò)處理器來(lái)接收軟件組件的升級(jí);響應(yīng)于接收軟件組件的升級(jí),通過(guò)處理器來(lái)標(biāo)識(shí)該升級(jí)是里程碑式升級(jí)還是非里程碑式升級(jí);響應(yīng)于標(biāo)識(shí)該升級(jí)是非里程碑式升級(jí),通過(guò)處理器用非里程碑式升級(jí)的新文件和目錄來(lái)替換軟件組件的文件和目錄;以及響應(yīng)于標(biāo)識(shí)該升級(jí)是里程碑式升級(jí),通過(guò)處理器來(lái)安裝包括非里程碑式升級(jí)的新文件和目錄的里程碑式升級(jí),并維持軟件組件的文件和目錄的先前版本,包括由非里程碑式升級(jí)的新文件和目錄替換的文件和目錄。
9.根據(jù)權(quán)利要求8的方法,其中,所述里程碑式更新被存儲(chǔ)為增量文件,其中,所述增量文件是軟件補(bǔ)丁或更新,其包含要對(duì)軟件組件頒布的至少一個(gè)改變。
10.根據(jù)權(quán)利要求8的方法,還包括通過(guò)處理器接收包含簡(jiǎn)檔標(biāo)識(shí)符的服務(wù)請(qǐng)求,其中,所述簡(jiǎn)檔標(biāo)識(shí)符指定軟件組件的所需版本;通過(guò)處理器,通過(guò)優(yōu)選地利用來(lái)自增量文件的文件、然后利用來(lái)自軟件組件的完整安裝的文件,來(lái)構(gòu)造所需版本的類路徑;以及通過(guò)處理器利用類路徑來(lái)構(gòu)建軟件組件的運(yùn)行時(shí)刻環(huán)境。
11.根據(jù)權(quán)利要求10的方法,其中,所述軟件組件是企業(yè)應(yīng)用服務(wù)器。
12.—種計(jì)算機(jī)程序,包括程序代碼,可存儲(chǔ)在計(jì)算機(jī)可記錄存儲(chǔ)介質(zhì)上,該程序代碼在由處理器執(zhí)行時(shí)進(jìn)行權(quán)利要求1到11中的任一的步驟。
13.一種數(shù)據(jù)處理系統(tǒng),包括存儲(chǔ)單元,具有用于構(gòu)建在其上編碼的系統(tǒng)的運(yùn)行時(shí)刻環(huán)境的指令; 總線系統(tǒng),將所述存儲(chǔ)單元連接到處理器;以及處理器,其中,所述處理器執(zhí)行指令以進(jìn)行權(quán)利要求1到11的任一個(gè)的步驟。
全文摘要
一種構(gòu)建系統(tǒng)的運(yùn)行時(shí)刻環(huán)境的計(jì)算機(jī)實(shí)現(xiàn)的方法、有形存儲(chǔ)介質(zhì)和數(shù)據(jù)處理系統(tǒng)。簡(jiǎn)檔管理器接收包含簡(jiǎn)檔標(biāo)識(shí)符的服務(wù)請(qǐng)求。簡(jiǎn)檔標(biāo)識(shí)符指定至少一個(gè)軟件組件的所需版本。簡(jiǎn)檔管理器標(biāo)識(shí)軟件組件的完整安裝和至少一個(gè)增量文件。簡(jiǎn)檔管理器通過(guò)優(yōu)選地利用來(lái)自至少一個(gè)增量文件的文件、然后利用來(lái)自完整安裝的文件,來(lái)動(dòng)態(tài)地構(gòu)造所需版本的類路徑。然后,利用類路徑來(lái)構(gòu)建運(yùn)行時(shí)刻環(huán)境。
文檔編號(hào)G06F9/445GK102422266SQ201080020706
公開(kāi)日2012年4月18日 申請(qǐng)日期2010年5月11日 優(yōu)先權(quán)日2009年5月13日
發(fā)明者D.尚穆加姆, P.D.加拉加里, S.布羅薩德 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司