支持在事務(wù)式中間件機(jī)器環(huán)境中自動(dòng)部署/撤銷部署應(yīng)用組件的系統(tǒng)和方法版權(quán)聲明本專利文獻(xiàn)公開的一部分包含受版權(quán)保護(hù)的內(nèi)容。版權(quán)所有者不反對(duì)任何人復(fù)制再現(xiàn)專利文獻(xiàn)或?qū)@_,如它出現(xiàn)在專商局專利文件或記錄中那樣,但是保留所有其他版權(quán)。技術(shù)領(lǐng)域本發(fā)明總體上涉及諸如中間件之類的計(jì)算機(jī)系統(tǒng)和軟件,更特別地,涉及支持事務(wù)式中間件機(jī)器環(huán)境。
背景技術(shù):事務(wù)式中間件系統(tǒng)或面向事務(wù)的中間件包括可以處理組織內(nèi)的各種事務(wù)的企業(yè)應(yīng)用服務(wù)器。隨著諸如高性能網(wǎng)絡(luò)和多處理器計(jì)算機(jī)之類的新技術(shù)的發(fā)展,需要進(jìn)一步改善事務(wù)式中間件的性能。這些是本發(fā)明的各實(shí)施例旨在解決的一般領(lǐng)域。
技術(shù)實(shí)現(xiàn)要素:此處描述了用于支持在事務(wù)式中間件機(jī)器環(huán)境中自動(dòng)部署應(yīng)用組件的系統(tǒng)和方法。部署中心可以接收一個(gè)或多個(gè)應(yīng)用包(applicationpackage),每個(gè)應(yīng)用包都包含用于一個(gè)或多個(gè)事務(wù)式服務(wù)器的二進(jìn)制文件和描述所述應(yīng)用包中的所述一個(gè)或多個(gè)事務(wù)式服務(wù)器的關(guān)系和參數(shù)的配置信息。所述部署中心還可以基于所述一個(gè)或多個(gè)應(yīng)用包,為所述事務(wù)式中間件機(jī)器環(huán)境中的每個(gè)事務(wù)式中間件機(jī)器生成一個(gè)或多個(gè)分發(fā)包。然后,所述部署中心可以將所述一個(gè)或多個(gè)分發(fā)包部署到所述事務(wù)式中間件機(jī)器環(huán)境中的多個(gè)事務(wù)式中間件機(jī)器。附圖說明圖1示出根據(jù)本發(fā)明一實(shí)施例的支持動(dòng)態(tài)資源調(diào)度器(broker)的事務(wù)式中間件機(jī)器環(huán)境的圖示。圖2示出根據(jù)本發(fā)明一實(shí)施例的用于在事務(wù)式中間件機(jī)器環(huán)境中支持自動(dòng)部署/撤銷部署應(yīng)用組件的示例性流程圖。圖3示出根據(jù)本發(fā)明一實(shí)施例的中間件機(jī)器環(huán)境中的應(yīng)用包的內(nèi)部結(jié)構(gòu)的圖示。圖4示出根據(jù)本發(fā)明一實(shí)施例的中間件機(jī)器環(huán)境中的應(yīng)用目錄的內(nèi)部結(jié)構(gòu)的圖示。圖5示出根據(jù)本發(fā)明一實(shí)施例準(zhǔn)備應(yīng)用包的圖示。圖6示出根據(jù)本發(fā)明一實(shí)施例在GUI控制臺(tái)中創(chuàng)建機(jī)器列表的圖示。圖7示出根據(jù)本發(fā)明一實(shí)施例上載應(yīng)用包的圖示。圖8示出根據(jù)本發(fā)明一實(shí)施例在事務(wù)式中間件環(huán)境中創(chuàng)建域的圖示。圖9示出根據(jù)本發(fā)明一實(shí)施例將物理機(jī)器綁定到域中的虛擬機(jī)器的圖示。圖10示出根據(jù)本發(fā)明一實(shí)施例將應(yīng)用包添加到域中的虛擬機(jī)器的圖示。圖11示出根據(jù)本發(fā)明一實(shí)施例在域中設(shè)立多個(gè)虛擬機(jī)器的圖示。圖12示出根據(jù)本發(fā)明一實(shí)施例的數(shù)據(jù)儲(chǔ)存庫(kù)的內(nèi)部結(jié)構(gòu)的圖示。圖13示出根據(jù)本發(fā)明一實(shí)施例的應(yīng)用目錄的結(jié)構(gòu)的圖示。圖14示出根據(jù)本發(fā)明一實(shí)施例的支持圖1中的動(dòng)態(tài)資源調(diào)度器的事務(wù)式中間件機(jī)器環(huán)境的更多細(xì)節(jié)。具體實(shí)施方式此處描述了用于支持可以利用具有多個(gè)處理器的快速機(jī)器和高性能網(wǎng)絡(luò)連接的事務(wù)式中間件系統(tǒng)的系統(tǒng)和方法。動(dòng)態(tài)資源調(diào)度器可以根據(jù)資源使用率變化,通過添加/去除組和機(jī)器來動(dòng)態(tài)地?cái)U(kuò)大/縮小事務(wù)式中間件機(jī)器環(huán)境中的事務(wù)式系統(tǒng)。事務(wù)式中間件機(jī)器環(huán)境可以包括事務(wù)式中間件機(jī)器環(huán)境中的部署中心以及一個(gè)或多個(gè)部署代理(agent),其中部署中心維護(hù)用于事務(wù)式中間件機(jī)器環(huán)境的一個(gè)或多個(gè)部署策略,每個(gè)部署代理都與事務(wù)式中間件機(jī)器環(huán)境中的事務(wù)域(transactionaldomain)中的多個(gè)事務(wù)式中間件機(jī)器中的事務(wù)式中間件機(jī)器相關(guān)聯(lián)。部署中心操作為從一個(gè)或多個(gè)部署代理接收機(jī)器使用率信息,并且根據(jù)由一個(gè)或多個(gè)部署代理收集到的資源使用率信息動(dòng)態(tài)地?cái)U(kuò)大或縮小事務(wù)域中使用的資源。根據(jù)本發(fā)明一實(shí)施例,所述系統(tǒng)包括高性能硬件的組合,例如64位處理器技術(shù)、高性能大容量存儲(chǔ)器、冗余InfiniBand和以太聯(lián)網(wǎng)以及應(yīng)用服務(wù)器或諸如WebLogic套件之類的中間件環(huán)境,以提供完整的JavaEE應(yīng)用服務(wù)器綜合體,該綜合體包括可以快速準(zhǔn)備并且可以按需縮放的大規(guī)模并行內(nèi)存網(wǎng)格。根據(jù)一實(shí)施例,該系統(tǒng)可以部署為全機(jī)架、半機(jī)架或四分之一機(jī)架,或者其他配置,其提供應(yīng)用服務(wù)器網(wǎng)格、存儲(chǔ)區(qū)域網(wǎng)絡(luò)以及InfiniBand(IB)網(wǎng)絡(luò)。中間件機(jī)器軟件可以提供應(yīng)用服務(wù)器、中間件和其他功能,諸如,例如WebLogic服務(wù)器、JRockit或HotspotJVM、OracleLinux或Solaris、以及OracleVM。根據(jù)一實(shí)施例,該系統(tǒng)可以包括通過IB網(wǎng)絡(luò)彼此通信的多個(gè)計(jì)算節(jié)點(diǎn)、IB交換機(jī)網(wǎng)關(guān)以及存儲(chǔ)器節(jié)點(diǎn)或單元。當(dāng)實(shí)現(xiàn)為機(jī)架配置時(shí),機(jī)架的未使用部分可以置空或用填充物占據(jù)。根據(jù)本發(fā)明一實(shí)施例,此處稱為“SunOracleExalogic”或“Exalogic”,該系統(tǒng)是用于托管諸如OracleMiddlewareSW套件或WebLogic之類的中間件或應(yīng)用服務(wù)器軟件的易于部署的解決方案。如此處所描述的那樣,根據(jù)一實(shí)施例,該系統(tǒng)是包括一臺(tái)或多臺(tái)服務(wù)器、存儲(chǔ)器單元、用于存儲(chǔ)聯(lián)網(wǎng)的IB交織、以及托管中間件應(yīng)用所需的所有其他組件的“盒中網(wǎng)格”。通過使用例如實(shí)時(shí)應(yīng)用集群(RealApplicationCluster)和ExalogicOpen存儲(chǔ)器來利用大規(guī)模并行網(wǎng)格體系架構(gòu),可以賦予所有類型的中間件應(yīng)用顯著的性能。該系統(tǒng)提供帶有I/O線性縮放性的性能改善,使用和管理起來簡(jiǎn)單,并且提供任務(wù)關(guān)鍵的可用性和可靠性。根據(jù)本發(fā)明一實(shí)施例,事務(wù)式系統(tǒng)例如Tuxedo可以是一組軟件模塊,其能夠構(gòu)建、執(zhí)行和管理高性能分布式商業(yè)應(yīng)用并且被若干多層級(jí)應(yīng)用開發(fā)工具用作事務(wù)式中間件。事務(wù)式系統(tǒng)是可用來管理分布式計(jì)算環(huán)境中的分布式事務(wù)處理的平臺(tái)。它是用于解鎖企業(yè)舊式應(yīng)用并且將它們擴(kuò)展到面向服務(wù)體系架構(gòu),同時(shí)提供無限縮放性和基于標(biāo)準(zhǔn)的互操作性的平臺(tái)。動(dòng)態(tài)資源調(diào)度器可以在事務(wù)式中間件機(jī)器環(huán)境中自動(dòng)部署事務(wù)系統(tǒng)(例如Tuxedo)的應(yīng)用組件。因此,事務(wù)式系統(tǒng)可以利用具有多個(gè)處理器的快速機(jī)器(例如Exalogic中間件機(jī)器)和高性能網(wǎng)絡(luò)連接(例如Infiniband(IB)網(wǎng)絡(luò))。動(dòng)態(tài)資源調(diào)度器根據(jù)本發(fā)明一實(shí)施例,動(dòng)態(tài)資源調(diào)度器允許用戶向不同的遠(yuǎn)程機(jī)器自動(dòng)地部署/撤銷部署事務(wù)式中間件應(yīng)用。這可以有利于事務(wù)式中間件應(yīng)用的用戶。例如,作為命令行樣式的中間件產(chǎn)品,Tuxedo應(yīng)用也可以手動(dòng)地部署到單個(gè)機(jī)器或多個(gè)網(wǎng)絡(luò)連接的機(jī)器。然而,使用手動(dòng)模式,用戶需要登錄到每個(gè)機(jī)器以部署它們的應(yīng)用,即使在有大量網(wǎng)絡(luò)連接的機(jī)器時(shí)。圖1示出根據(jù)本發(fā)明一實(shí)施例的支持自動(dòng)部署/撤銷部署應(yīng)用組件的事務(wù)式中間件機(jī)器環(huán)境的圖示。如圖1所示,事務(wù)式中間件機(jī)器環(huán)境100包括多個(gè)事務(wù)式中間件機(jī)器,諸如機(jī)器A-D101-103和110。動(dòng)態(tài)資源調(diào)度器可以包括諸如機(jī)器D110上的數(shù)據(jù)儲(chǔ)存庫(kù)105、機(jī)器D110上的部署中心106、以及一個(gè)或多個(gè)部署代理(代理111-113)之類的組件,每個(gè)代理駐留在事務(wù)式中間件機(jī)器上,例如事務(wù)式中間件機(jī)器環(huán)境100中的機(jī)器A-C101-103。數(shù)據(jù)儲(chǔ)存庫(kù)105駐留在存儲(chǔ)器中。數(shù)據(jù)儲(chǔ)存庫(kù)105可用來存儲(chǔ)相關(guān)信息,諸如:應(yīng)用包、分發(fā)包以及配置文件。部署中心106由一個(gè)或多個(gè)微處理器運(yùn)行。部署中心106可以接收所有用戶輸入107,并且負(fù)責(zé)根據(jù)一個(gè)或多個(gè)部署策略116將指令/包分發(fā)到目的地機(jī)器,例如機(jī)器A-C101-103。此外,部署中心106還負(fù)責(zé)從目的地機(jī)器(例如機(jī)器A-C101-103)接收?qǐng)?zhí)行結(jié)果。每個(gè)部署代理(例如代理111-113)負(fù)責(zé)接收分發(fā)包,執(zhí)行部署/撤銷部署/管理任務(wù),并且將執(zhí)行結(jié)果提供回部署中心106。在圖1所示的示例中,用戶可以首先將應(yīng)用包上載到數(shù)據(jù)儲(chǔ)存庫(kù)105。然后,用戶可以創(chuàng)建域,例如域A109,其包括兩個(gè)機(jī)器:機(jī)器A101和機(jī)器B102。然后,用戶可以通知部署中心106執(zhí)行部署任務(wù)。部署中心106可以將分發(fā)包部署到機(jī)器A101和機(jī)器B102,并且引導(dǎo)域A109。另外,域A109還可包括第三機(jī)器,例如機(jī)器C103,作為可以在運(yùn)行時(shí)被動(dòng)態(tài)地激活的候選機(jī)器。例如,當(dāng)機(jī)器B102的CPU使用率增大到100%時(shí),部署中心可以激活機(jī)器C103以與機(jī)器B102分擔(dān)負(fù)載。部署中心106可以將包分發(fā)到機(jī)器C,并且指示部署代理例如代理C113執(zhí)行管理任務(wù),諸如Tuxedo管理信息庫(kù)(MIB)操作。一旦管理任務(wù)被成功地執(zhí)行,機(jī)器C103就可以被動(dòng)態(tài)地添加到域A,并且機(jī)器C103上的所有服務(wù)器和服務(wù)可以被激活。圖2示出根據(jù)本發(fā)明一實(shí)施例用于在事務(wù)式中間件機(jī)器環(huán)境中支持自動(dòng)部署/撤銷部署應(yīng)用組件的示例性流程圖。如圖2所示,在步驟201,數(shù)據(jù)儲(chǔ)存庫(kù)可以接收一個(gè)或多個(gè)應(yīng)用包,其中每個(gè)應(yīng)用包都包含用于一個(gè)或多個(gè)事務(wù)式服務(wù)器的二進(jìn)制文件和描述所述應(yīng)用包中的一個(gè)或多個(gè)事務(wù)式服務(wù)器的關(guān)系和參數(shù)的配置信息。然后,在步驟202,部署中心可以基于一個(gè)或多個(gè)應(yīng)用包,在一個(gè)或多個(gè)微處理器上,為事務(wù)式中間件機(jī)器環(huán)境中的多個(gè)事務(wù)式中間件機(jī)器中的每個(gè)事務(wù)式中間件機(jī)器生成一個(gè)或多個(gè)分發(fā)包。最后,在步驟203,部署中心可以將一個(gè)或多個(gè)分發(fā)包部署到事務(wù)式中間件機(jī)器環(huán)境中的多個(gè)事務(wù)式中間件機(jī)器。根據(jù)本發(fā)明一實(shí)施例,并且如下面所公開的那樣,諸如Tuxedo應(yīng)用之類的事務(wù)式應(yīng)用的部署包括若干步驟:應(yīng)用包分發(fā)、Tuxedo系統(tǒng)環(huán)境設(shè)置、Tuxedo配置文件生成以及Tuxedo系統(tǒng)引導(dǎo)。將在下面的章節(jié)中對(duì)每個(gè)步驟進(jìn)行論述。應(yīng)用包根據(jù)本發(fā)明一實(shí)施例,應(yīng)用包是可由用戶或顧客準(zhǔn)備并且在一個(gè)或多個(gè)中間件機(jī)器上部署的檔案包(archivepackage)。應(yīng)用包包含編譯了的二進(jìn)制文件以及其他環(huán)境文件,并且可以根據(jù)將用事務(wù)式應(yīng)用部署的機(jī)器來組織。例如,諸如Tuxedo應(yīng)用之類的事務(wù)式應(yīng)用可以基于一個(gè)或多個(gè)應(yīng)用包,每個(gè)應(yīng)用包都可以是壓縮文件。Tuxedo應(yīng)用(域)可以定義在TUXCONFIG或UBBCONFIG配置文件中,其指定一組機(jī)器、服務(wù)器和其他資源。Tuxedo應(yīng)用可以存在于單個(gè)機(jī)器上或跨越多個(gè)網(wǎng)絡(luò)連接的機(jī)器。用戶可以首先上載他們的應(yīng)用包,以便部署Tuxedo應(yīng)用。圖3示出根據(jù)本發(fā)明一實(shí)施例的中間件機(jī)器環(huán)境中的應(yīng)用包的內(nèi)部結(jié)構(gòu)的圖示。如圖3所示,應(yīng)用包300可包括多個(gè)層級(jí),例如層級(jí)1301、層級(jí)2302以及層級(jí)3303。層級(jí)1301包括應(yīng)用包300的名稱,其可以在所有上載的應(yīng)用包的名稱內(nèi)是唯一的。層級(jí)2302可以是層級(jí)1301下的子目錄。層級(jí)2302包含代表有關(guān)應(yīng)用包300可以部署到的平臺(tái)的信息的名稱。如圖3所示,層級(jí)2可用來表示機(jī)器類型,例如OEL55_64_ExaX22X8664。層級(jí)3303包括層級(jí)2302的子目錄,其包含由諸如應(yīng)用服務(wù)器、TMS服務(wù)器、客戶端等之類的事務(wù)式系統(tǒng)使用的編譯了的二進(jìn)制文件。如圖3所示,在OEL55_64_ExaX22X8664(層級(jí)2302)下,子目錄“服務(wù)器”可以具有兩個(gè)編譯的服務(wù)器二進(jìn)制文件:服務(wù)器1和服務(wù)器2。此外,層級(jí)3303還可以包含不同的環(huán)境文件,諸如Tuxedo機(jī)器級(jí)別ENVFILE、Tuxedo組級(jí)別ENVFILE、Tuxedo服務(wù)器級(jí)別ENVFILE、以及Tuxedo服務(wù)器級(jí)別RCMD文件。另外,在層級(jí)3303下,可以有子目錄,在那里用戶可以組織他們的應(yīng)用。另外,層級(jí)3303還可以包含通用公告牌配置文件,諸如TuxedoUBB_part文件,該文件是組級(jí)別的UBBCONFIG文件。TuxedoUBB_part文件包含完整UBBCONFIG文件的GROUPS、RMS、SERVERS、SERVICES、ROUTINGS部分,主要用于描述此包內(nèi)的所有服務(wù)器的關(guān)系和參數(shù)。當(dāng)決定將此包部署到機(jī)器時(shí),TuxedoUBB_part文件可以被用來生成UBBCONFIG文件,并且其內(nèi)容可以在那時(shí)被修改。應(yīng)用目錄根據(jù)本發(fā)明一實(shí)施例,應(yīng)用包可以在事務(wù)式中間件機(jī)器環(huán)境中重復(fù)使用。例如,應(yīng)用包可以多次應(yīng)用于不同的域、一個(gè)域中的不同的機(jī)器、或一個(gè)域中的單個(gè)機(jī)器。另外,動(dòng)態(tài)資源調(diào)度器還可以基于應(yīng)用包生成部署到目的地機(jī)器的分發(fā)包。在將分發(fā)包部署到目的地機(jī)器之后,事務(wù)式系統(tǒng)可以在目的地機(jī)器上創(chuàng)建應(yīng)用目錄。圖4示出根據(jù)本發(fā)明一實(shí)施例的中間件機(jī)器環(huán)境中的應(yīng)用目錄的內(nèi)部結(jié)構(gòu)的圖示。如圖4所示,諸如Tuxedo應(yīng)用目錄APPDIR401之類的應(yīng)用目錄可包括多個(gè)子目錄,例如APP1402和APP2403,以用于包含不同應(yīng)用的分發(fā)包。在應(yīng)用目錄APPDIR401下的部署的Tuxedo應(yīng)用400的結(jié)構(gòu)可以類似于應(yīng)用包的結(jié)構(gòu),除了TuxedoUBB_part文件以外。上載應(yīng)用包根據(jù)本發(fā)明一實(shí)施例,用戶可以將一個(gè)或多個(gè)準(zhǔn)備號(hào)的應(yīng)用包上載到數(shù)據(jù)儲(chǔ)存庫(kù)。一旦應(yīng)用包上載成功,系統(tǒng)就允許用戶填寫應(yīng)用包信息列表,其內(nèi)容示于下面的表1中。表1創(chuàng)建機(jī)器列表根據(jù)本發(fā)明一實(shí)施例,在創(chuàng)建域之前,用戶可以創(chuàng)建應(yīng)用包要部署到的機(jī)器的列表。對(duì)于每臺(tái)機(jī)器,用戶可以填寫描述此特定機(jī)器的表單。在下面的表2中示出了此表單的內(nèi)容。表2在上面的機(jī)器列表中,所有機(jī)器可以由其邏輯名稱來命名。機(jī)器的邏輯名稱可以在機(jī)器列表中是唯一的,機(jī)器的邏輯名稱可以與機(jī)器的物理名稱相同。因此,一個(gè)物理機(jī)器可以具有一個(gè)以上的邏輯名稱,并且在機(jī)器列表中具有一個(gè)以上的實(shí)例。因此,用戶可以為一個(gè)物理機(jī)器指定多個(gè)邏輯名稱,并且向相同機(jī)器部署不同的應(yīng)用包,例如,在測(cè)試環(huán)境中的假M(fèi)P模型的情況下。UBBCONFIG自動(dòng)生成規(guī)則根據(jù)本發(fā)明一實(shí)施例,用戶可以選擇為事務(wù)式服務(wù)器自動(dòng)地生成配置文件,例如為每個(gè)Tuxedo服務(wù)器生成UBBCONFIG文件。UBBCONFIG文件可包括不同的部分,諸如RESOURCE部分、MACHINES部分、GROUPS部分、RMS部分、NETGROUPS部分、NETWORK部分、SERVERS部分、SERVICES部分,ROUTING部分。附錄A提供了關(guān)于在事務(wù)式中間件機(jī)器系統(tǒng)中支持動(dòng)態(tài)資源代理以及在本發(fā)明中所描述的平臺(tái)的各種其他方面的更進(jìn)一步的信息。附錄A中的信息只用于說明性目的,不應(yīng)解釋為限制本發(fā)明的所有實(shí)施例。Tuxedo中的自動(dòng)部署的示例在下面幾部分,示例用于示出在事務(wù)式中間件環(huán)境中自動(dòng)地部署或撤銷部署Tuxedo應(yīng)用的過程。在此示例中,可以在兩個(gè)中間件機(jī)器lclnx24和lcln16上自動(dòng)地部署兩個(gè)Tuxedo應(yīng)用APP1和APP2。在其他示例中,不同的配置可以無限制地用于事務(wù)式中間件環(huán)境中。創(chuàng)建Tuxedo域根據(jù)本發(fā)明一實(shí)施例,在用于部署事務(wù)式應(yīng)用的事務(wù)式中間件中創(chuàng)建域之前,用戶可以準(zhǔn)備應(yīng)用包。在此示例中,域中的每個(gè)機(jī)器都使用一個(gè)應(yīng)用包。在其他示例中,根據(jù)需要,機(jī)器可以具有一個(gè)或多個(gè)應(yīng)用包。圖5示出根據(jù)本發(fā)明一實(shí)施例的準(zhǔn)備應(yīng)用包500的圖示。如圖5所示,應(yīng)用包APP1.zip501可包括UBB_part部分502和服務(wù)器部分503。下面的列表1示出了APP1.zip中的UBB_part部分。*GROUPS:G1LMID=simple1GRPNO=30*SERVERSAPP1/OEL55_64_ExaX22X8664/servers/simpserv1SRVGRP=G1SRVID=20CLOPT="-A"*SERVICESTOUPPER1列表1上面的圖5和列表1示出了用于部署第一應(yīng)用APP1的應(yīng)用包APP1.zip。另外,在此示例中,可以按類似方式準(zhǔn)備另一應(yīng)用包APP2.zip以用于部署第二應(yīng)用APP2。圖6示出了根據(jù)本發(fā)明一實(shí)施例的在GUI控制臺(tái)中創(chuàng)建域的機(jī)器列表的圖示。如圖6所示,GUI控制臺(tái)使用機(jī)器表單600來定義與帶有邏輯名稱lclnx24601的特定機(jī)器相關(guān)聯(lián)的不同屬性。也如圖6所示,機(jī)器表單600中的條目可以基于如上面所公開的表2。另外,在此示例中,另一類似的機(jī)器表單(未示出)可以用于設(shè)置系統(tǒng)中的第二機(jī)器。圖7示出了根據(jù)本發(fā)明一實(shí)施例的上載應(yīng)用包的圖示。如圖7所示,可以顯示應(yīng)用包表單700,用于當(dāng)用戶成功地上載應(yīng)用包701時(shí)要求用戶提交。也如圖7所示,機(jī)器表單700中的各種條目可以基于如上面所公開的表2。類似地,可以有用于上載應(yīng)用包APP2.zip的另一應(yīng)用包表單(未示出)。圖8示出了根據(jù)本發(fā)明一實(shí)施例的在事務(wù)式中間件環(huán)境中創(chuàng)建域的圖示。如圖8所示,用戶可以創(chuàng)建帶有唯一域名(例如,DOM1801)的域。此域可以被配置成包括來自機(jī)器列表802的機(jī)器,并運(yùn)行來自包列表803的應(yīng)用包。當(dāng)在事務(wù)式中間件環(huán)境中創(chuàng)建域時(shí),可以使用不同的模板來自動(dòng)地生成配置文件供部署。例如,可以在附錄A中詳述自動(dòng)地生成的Tuxedo配置文件的內(nèi)容。另外,在Tuxedo中,可以有兩個(gè)默認(rèn)UBBCONFIG模板:一個(gè)用于名為UBB_Resource的RESOURCES部分的UBBCONFIG模板,另一個(gè)用于名為UBB_Machine的MACHINES部分的UBBCONFIG模板。此外,用戶還可以定義額外的模板,并將它們保存到數(shù)據(jù)儲(chǔ)存庫(kù)。如圖8所示,在創(chuàng)建DOM1801時(shí),用戶可以選擇默認(rèn)UBB_Resource模板,并可以指出域處于MP模式。此外,用戶可以修改和添加值到配置文件中的RESOURCES部分。在Tuxedo域中創(chuàng)建虛擬機(jī)根據(jù)本發(fā)明一實(shí)施例,用戶可以在域中創(chuàng)建一個(gè)或多個(gè)虛擬機(jī)。虛擬機(jī)是不代表真實(shí)物理機(jī)器的符號(hào)。來自機(jī)器列表的邏輯機(jī)可以被綁定到虛擬機(jī)。虛擬機(jī)的命名規(guī)則可以與邏輯機(jī)的命名規(guī)則相同,虛擬機(jī)的名稱可以在一個(gè)域內(nèi)的所有虛擬機(jī)之間是唯一的。圖9示出了根據(jù)本發(fā)明一實(shí)施例在域中將邏輯機(jī)綁定到虛擬機(jī)的圖示。如圖9所示,在DOM1901中創(chuàng)建虛擬機(jī)M1902。另外,用戶可以將來自機(jī)器列表的邏輯機(jī)lclnx24903綁定到虛擬機(jī)M1902,并可以指出此邏輯機(jī)lclnx24903是域DOM1901的主控。然后,可以將默認(rèn)的UBB_Resource部分904添加到UBBCONFIG文件,還可以根據(jù)機(jī)器列表中與lclnx24903相關(guān)的信息來修改該內(nèi)容。此外,用戶還可以修改或添加值到MACHINES部分905和NETWORK部分906的對(duì)應(yīng)項(xiàng)。圖10示出了根據(jù)本發(fā)明一實(shí)施例的在域中將應(yīng)用包添加到虛擬機(jī)的圖示。如圖10所示,用戶可以將包列表中的應(yīng)用包APP11003添加到域DOM11001中的虛擬機(jī)M11002。然后,來自應(yīng)用包APP1的UBB_part,例如默認(rèn)的UBB_Resource部分1004,可以被添加到UBBCONFIG文件,并且可以根據(jù)綁定到虛擬機(jī)M11002的邏輯機(jī)lclnx24的信息來修改該內(nèi)容。另外,用戶可以修改值或?qū)⒅堤砑拥組ACHINES、GROUPS、SERVERS和SERVICES部分1005-1009中的項(xiàng)。圖11示出了根據(jù)本發(fā)明一實(shí)施例的在域中設(shè)置多個(gè)虛擬機(jī)的圖示。如圖11所示,用戶可以在域DOM11101中創(chuàng)建多個(gè)虛擬機(jī),諸如虛擬機(jī)M11102和虛擬機(jī)M21103。此外,用戶還可以將邏輯機(jī)綁定到虛擬機(jī)。例如,可以將邏輯機(jī)lclnx16綁定到虛擬機(jī)M11002并且負(fù)責(zé)運(yùn)行應(yīng)用包AZPP1,可以將邏輯機(jī)lclnx24綁定到虛擬機(jī)M2并且負(fù)責(zé)運(yùn)行另一應(yīng)用包APP2。每當(dāng)將檔案包添加到綁定到邏輯機(jī)的虛擬機(jī)時(shí),系統(tǒng)可以將應(yīng)用包表單中的信息與機(jī)器表單進(jìn)行比較。如果有錯(cuò)誤,則系統(tǒng)可以向用戶報(bào)告錯(cuò)誤。配置Tuxedo域根據(jù)本發(fā)明一實(shí)施例,系統(tǒng)可以為域中的每個(gè)機(jī)器提供配置模板。在Tuxedo中,用戶可以從數(shù)據(jù)儲(chǔ)存庫(kù)中選擇和修改默認(rèn)DMCONFIG模板。另外,數(shù)據(jù)儲(chǔ)存庫(kù)還可以為每個(gè)機(jī)器提供setenv.ksh模板。用戶可以使用setenv.ksh模板來設(shè)置Tuxedo應(yīng)用的各種環(huán)境變量,例如TUXDIR、PATH以及APPDIR。此外,系統(tǒng)還根據(jù)上面的信息,提供每個(gè)機(jī)器的部署描述符和撤銷部署描述符。用戶可以根據(jù)它們自己的要求來修改這兩個(gè)描述符。部署描述符是描述在將分發(fā)包分發(fā)到目的地機(jī)器之后采取的步驟的腳本。下面的列表2示出了示例性部署描述符。#!/usr/bin/sh.setenv.kshtlistpwd$TUXDIRtmloadcf-yUBBCONFIG…列表2撤銷部署描述符是描述當(dāng)用戶希望撤銷部署域時(shí)可以采取的步驟的腳本。下面的列表3示出了示例性撤銷部署描述符。.setenv.kshkill-9tlistenrm-rf$APPDIR…列表3根據(jù)本發(fā)明一實(shí)施例,可以生成分發(fā)包以包含已修改的setenv.ksh(setenv.cmd)模板、UBBCONFIG、DMCONFIG、部署/撤銷部署描述符和已編譯的二進(jìn)制可執(zhí)行文件。數(shù)據(jù)儲(chǔ)存庫(kù)根據(jù)本發(fā)明一實(shí)施例,應(yīng)用包和分發(fā)包兩者都可以存儲(chǔ)在數(shù)據(jù)儲(chǔ)存庫(kù)中。圖12示出了根據(jù)本發(fā)明一實(shí)施例的數(shù)據(jù)儲(chǔ)存庫(kù)的內(nèi)部結(jié)構(gòu)的圖示。如圖12所示,數(shù)據(jù)儲(chǔ)存庫(kù)Repository1201包括應(yīng)用包目錄,AppPackage1202以及部署目錄DeployDir1203。原始上載的應(yīng)用包存儲(chǔ)在AppPackage目錄1202下,而諸如域之類的部署單元存儲(chǔ)在DeployDir目錄1203下。如圖12所示,域名是“DOM1”,機(jī)器名是“l(fā)clnx24”和“l(fā)clnx26”,每個(gè)都包含DeployDescriptor、UndeployDescriptor以及各種分發(fā)包。另外,還可以將一個(gè)應(yīng)用包添加到域中的單個(gè)機(jī)器多次,在這樣的情況下,系統(tǒng)可以自動(dòng)地為它創(chuàng)建索引,例如APP1_1、APP1_2等。部署/撤銷部署Tuxedo域根據(jù)本發(fā)明一實(shí)施例,部署中心可以根據(jù)分發(fā)文件將分發(fā)檔案文件部署到每個(gè)目的地機(jī)器。隨后,部署代理可以配置和設(shè)置Tuxedo系統(tǒng)。如果成功,系統(tǒng)可以將Tuxedo系統(tǒng)的狀態(tài)記錄到狀態(tài)文件中。如果域中任何一個(gè)機(jī)器的部署失敗,則系統(tǒng)可以回滾已經(jīng)執(zhí)行的部署操作。圖13示出了根據(jù)本發(fā)明一實(shí)施例的應(yīng)用目錄的結(jié)構(gòu)的圖示。如圖13所示,創(chuàng)建應(yīng)用目錄APPDIR1301以包括多個(gè)子目錄APP11302和APP21303,用于在成功部署之后包含不同應(yīng)用的部署文件。另外,當(dāng)域處于關(guān)閉狀態(tài)時(shí),用戶可以撤銷部署Tuxedo應(yīng)用。此外,部署的機(jī)器上的部署代理可以使用撤銷部署描述符來執(zhí)行撤銷部署任務(wù)。圖14示出了根據(jù)本發(fā)明一實(shí)施例的支持自動(dòng)部署/撤銷部署圖1中的應(yīng)用組件的事務(wù)式中間件機(jī)器環(huán)境的更多細(xì)節(jié)。圖14中的與圖1中的那些相同的組件利用相同的附圖標(biāo)記來表示,省略了其詳細(xì)描述。如圖14所示,部署中心106包括:接收一個(gè)或多個(gè)應(yīng)用包的應(yīng)用包接收單元1061,其中每個(gè)應(yīng)用包包含用于一個(gè)或多個(gè)事務(wù)式服務(wù)器的二進(jìn)制文件和描述應(yīng)用包中的一個(gè)或多個(gè)事務(wù)式服務(wù)器的關(guān)系和參數(shù)的配置信息;分發(fā)包生成單元1062,基于一個(gè)或多個(gè)應(yīng)用包,為所述事務(wù)式中間件機(jī)器環(huán)境中的多個(gè)事務(wù)式中間件機(jī)器中的每個(gè)事務(wù)式中間件機(jī)器生成一個(gè)或多個(gè)分發(fā)包;以及分發(fā)包部署單元1063,向所述事務(wù)式中間件機(jī)器環(huán)境中的所述多個(gè)事務(wù)式中間件機(jī)器部署所述一個(gè)或多個(gè)分發(fā)包。優(yōu)選地,每個(gè)應(yīng)用包都被允許包含有關(guān)所述應(yīng)用包可以被部署到平臺(tái)的信息。優(yōu)選地,將應(yīng)用包應(yīng)用于不同的事務(wù)域,其中每個(gè)事務(wù)域都包括一個(gè)或多個(gè)事務(wù)式中間件機(jī)器。優(yōu)選地,基于所述應(yīng)用包,在部署有一個(gè)或多個(gè)事務(wù)式服務(wù)器的每個(gè)事務(wù)式中間件機(jī)器上創(chuàng)建一個(gè)或多個(gè)應(yīng)用目錄。優(yōu)選地,部署中心106還包括將多個(gè)應(yīng)用包部署到同一應(yīng)用目錄中的部署單元1064。優(yōu)選地,部署中心106還包括配置元數(shù)據(jù)生成單元1065,其基于應(yīng)用包中的配置信息為部署有一個(gè)或多個(gè)事務(wù)式服務(wù)器的每個(gè)事務(wù)式中間件機(jī)器自動(dòng)地生成配置元數(shù)據(jù)。優(yōu)選地,數(shù)據(jù)儲(chǔ)存庫(kù)105存儲(chǔ)由用戶上載的一個(gè)或多個(gè)應(yīng)用包。優(yōu)選地,部署中心106還包括事務(wù)式應(yīng)用部署單元1066,其向單個(gè)事務(wù)式中間件機(jī)器或者多個(gè)交叉連接的事務(wù)式中間件機(jī)器部署包括多個(gè)應(yīng)用包的事務(wù)式應(yīng)用。優(yōu)選地,每個(gè)應(yīng)用包都是包含下列各項(xiàng)的壓縮文件:包含應(yīng)用包名稱的第一層級(jí),包含描述應(yīng)用包中的一個(gè)或多個(gè)事務(wù)式服務(wù)器的關(guān)系和參數(shù)的配置信息的第二層級(jí),以及包含用于事務(wù)式服務(wù)器的編譯了的二進(jìn)制文件的第三層級(jí)。優(yōu)選地,部署中心106還包括撤銷部署單元1067,其從事務(wù)式中間件機(jī)器環(huán)境中的多個(gè)事務(wù)式中間件機(jī)器撤銷部署至少一個(gè)分發(fā)包。這些單元和組件可以通過軟件和/或硬件來實(shí)現(xiàn)。引導(dǎo)/關(guān)閉Tuxedo應(yīng)用根據(jù)本發(fā)明一實(shí)施例,在Tuxedo應(yīng)用被部署到目的地機(jī)器之后,部署中心可以與部署代理進(jìn)行連接,以便用戶可以選擇引導(dǎo)整個(gè)系統(tǒng)。當(dāng)成功地引導(dǎo)系統(tǒng)之后,系統(tǒng)可將狀態(tài)記錄到狀態(tài)文件中,并且更新域狀態(tài)。一旦成功地引導(dǎo)域,用戶就被允許執(zhí)行動(dòng)態(tài)部署。另一方面,如果發(fā)現(xiàn)任何錯(cuò)誤,則可以關(guān)閉已引導(dǎo)的Tuxedo系統(tǒng)。本發(fā)明可以使用一個(gè)或多個(gè)常規(guī)通用或?qū)iT數(shù)字計(jì)算機(jī)、計(jì)算設(shè)備、機(jī)器或微處理器(包括一個(gè)或多個(gè)處理器、存儲(chǔ)器和/或根據(jù)本發(fā)明的原理編程的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì))來方便地實(shí)現(xiàn)。對(duì)于那些精通軟件技術(shù)的人來說顯而易見的是,可以由熟練的程序員基于本發(fā)明的原理輕松地編制適當(dāng)?shù)能浖a。在某些實(shí)施例中,本發(fā)明包括計(jì)算機(jī)程序產(chǎn)品,該產(chǎn)品是其中存儲(chǔ)了指令的存儲(chǔ)介質(zhì)或計(jì)算機(jī)可讀介質(zhì),這些指令可以用來對(duì)計(jì)算機(jī)進(jìn)行編程,以執(zhí)行本發(fā)明的任何一個(gè)進(jìn)程。存儲(chǔ)介質(zhì)可以包括,但不僅限于任何類型的盤,包括軟盤、光盤、DVD、CD-ROM、微驅(qū)動(dòng)器以及磁光盤、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、FLASH存儲(chǔ)器設(shè)備、磁卡或光學(xué)卡、納米系統(tǒng)(包括分子存儲(chǔ)器IC)、適于存儲(chǔ)指令和/或數(shù)據(jù)的任何類型的介質(zhì)或設(shè)備。前面的對(duì)本發(fā)明的描述只是為了說明和示范。它不是詳盡的說明或?qū)⒈景l(fā)明限于所公開的準(zhǔn)確的形式。那些精通本技術(shù)的專業(yè)人員將認(rèn)識(shí)到,可以進(jìn)行許多修改。所選擇和描述的實(shí)施例只是為了最好地說明本發(fā)明的原理以及其實(shí)際應(yīng)用,并使精通本技術(shù)的其他人懂得,帶有適合于特定用途的各種修改的各實(shí)施例的本發(fā)明也是可以接受的。本發(fā)明的范圍由下面的權(quán)利要求以及它們的等效內(nèi)容進(jìn)行定義。附錄A根據(jù)本發(fā)明一實(shí)施例,系統(tǒng)可以向Tuxedo用戶提供用于定義RESOURCE部分的UBB_Resource模板。當(dāng)創(chuàng)建域時(shí),用戶可以選擇此模板來生成UBBCONFIG的RESOURCES部分。在下面的表3中示出了模板中的示例項(xiàng)列表。表3用戶可以修改上面的表3中的項(xiàng),除了MASTER項(xiàng)之外。當(dāng)用戶指定哪臺(tái)機(jī)器是域中的主控以及哪臺(tái)機(jī)器為備用時(shí),可以填充MASTER項(xiàng)。除這些參數(shù)之外,用戶可以添加其他參數(shù)。用戶也可以創(chuàng)建它們自己的UBB_Resource模板,并將它們保存到系統(tǒng)中。在所有模板中,遵循上面的規(guī)則,MASTER可以由系統(tǒng)自動(dòng)填充。根據(jù)本發(fā)明一實(shí)施例,系統(tǒng)可以向Tuxedo用戶提供UBB_Machine模板。當(dāng)創(chuàng)建域并且指定機(jī)器時(shí),用戶可以選擇此模板來生成UBBCONFIG文件的MACHINES部分。在下面的表4中示出了模板中的示例項(xiàng)列表。表4用戶可以向UBBCONFIG文件添加MACHINES部分的其他參數(shù)。用戶也可以將TLOG指定到原始盤,當(dāng)撤銷部署此域時(shí),系統(tǒng)可以刪除它。用戶也可以創(chuàng)建額外的UBB_Machine模板,并將它們保存到系統(tǒng)中。參數(shù)替換規(guī)則可以遵循上面的。根據(jù)本發(fā)明一實(shí)施例,當(dāng)用戶向一個(gè)域添加應(yīng)用包時(shí),系統(tǒng)可以替換該包的UBB_part中的GROUPS部分的某些參數(shù)。在下面的表5中示出了模板中的示例項(xiàng)列表。表5系統(tǒng)可以在UBB_part文件中保留GROUPS部分的其他參數(shù)的值,并允許用戶自由地修改它們。類似地,用戶可以向UBBCONFIG文件添加其他參數(shù)。根據(jù)本發(fā)明一實(shí)施例,當(dāng)用戶向一個(gè)域添加應(yīng)用包時(shí),系統(tǒng)可以替換該包的UBB_part中的RMS部分的某些參數(shù)。在下面的表6中示出了模板中的示例項(xiàng)列表。表6系統(tǒng)可以在UBB_part文件中保留RMS部分的其他參數(shù),并允許用戶自由地修改它們。類似地,用戶可以向UBBCONFIG文件添加其他參數(shù)。根據(jù)本發(fā)明一實(shí)施例,如果需要,NETGROUPS部分的所有參數(shù)都可以由用戶自己填充。根據(jù)本發(fā)明一實(shí)施例,NETWORK部分也在UBB_Machine模板中。如果域處于MP模式,那么,系統(tǒng)可以自動(dòng)地向UBBCONFIG添加此部分。在下面的表7中示出了模板中的示例項(xiàng)列表。表7另外,用戶可以向NETWORK部分添加其他參數(shù)。根據(jù)本發(fā)明一實(shí)施例,當(dāng)向一個(gè)域添加應(yīng)用包時(shí),系統(tǒng)可以替換該包的UBB_part中的SERVERS部分的某些參數(shù)。在下面的表8中示出了模板中的示例項(xiàng)列表。表8系統(tǒng)可以在UBB_part文件中保留SERVERS部分的其他參數(shù)的值,并允許用戶自由地修改它們。類似地,用戶可以向UBBCONFIG添加其他參數(shù)。根據(jù)本發(fā)明的一實(shí)施例,當(dāng)向一個(gè)域添加應(yīng)用包時(shí),系統(tǒng)可以替換該包的UBB_part中的SERVERS部分的某些參數(shù)。在下面的表9中示出了模板中的示例性項(xiàng)列表。表9系統(tǒng)可以在UBB_part文件中保留SERVICES部分的其他參數(shù)的值,并允許用戶自由地修改它們。類似地,用戶可以向UBBCONFIG添加其他參數(shù)。根據(jù)本發(fā)明一實(shí)施例,當(dāng)用戶向一個(gè)域添加應(yīng)用包時(shí),系統(tǒng)可以替換該包的UBB_part中的ROUTING部分的某些參數(shù)。在下面的表10中示出了模板中的示例項(xiàng)列表。表10系統(tǒng)可以在UBB_part文件中保留ROUTING部分的其他參數(shù)的值,并允許用戶自由地修改它們。類似地,用戶可以向UBBCONFIG文件添加其他參數(shù)。