專利名稱::開發(fā)門戶應(yīng)用和自動(dòng)部署門戶應(yīng)用的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明應(yīng)用涉及開發(fā)門戶應(yīng)用和在門戶服務(wù)器應(yīng)用中自動(dòng)部署門戶應(yīng)用的系統(tǒng)和方法。
背景技術(shù):
:門戶服務(wù)器應(yīng)用提供了一種靈活的框架來毫不費(fèi)力地生成高度綜合的web網(wǎng)站。門戶服務(wù)器應(yīng)用基本的功能單元是門戶組件。門戶組件可以被認(rèn)為是創(chuàng)建具有精密特征的復(fù)雜web網(wǎng)站的基石。門戶服務(wù)器應(yīng)用集成了單個(gè)門戶組件的輸出來輸出能在瀏覽器中展示的內(nèi)容。這種對內(nèi)容的集成是門戶服務(wù)器應(yīng)用的關(guān)鍵特征,因?yàn)樗芎玫卣狭霜?dú)立的門戶組件的UI而不用寫任何整合代碼。每個(gè)門戶組件都是獨(dú)立的代碼單元,它們獨(dú)立地編譯、打包和安裝。當(dāng)把從截然不同的提供者所提供的門戶組件/內(nèi)容整合為一體的web網(wǎng)站時(shí),這是非常有利的。很顯然無需做任何整合的工作。Web服務(wù)器安裝的管理員將分別安裝每個(gè)所需的門戶組件并在設(shè)計(jì)web網(wǎng)站時(shí)安排門戶組件布局。當(dāng)綜合門戶應(yīng)用由一個(gè)以上的門戶組件組成時(shí),這種概念的缺點(diǎn)就產(chǎn)生了。例如,一個(gè)在線銀行的應(yīng)用將有許多復(fù)合門戶組件,例如賬戶門戶組件、股票價(jià)格門戶組件、股票交易門戶組件、電子郵件門戶組件、貸款門戶組件、抵押門戶組件(見圖1A)。典型地,這些門戶組件是由應(yīng)用開發(fā)者作為統(tǒng)一門戶應(yīng)用的一部分來開發(fā)和提供的。不幸的是,門戶應(yīng)用開發(fā)者不能把門戶應(yīng)用作為一個(gè)統(tǒng)一的單元提供給客戶。相反,他需要將門戶組件應(yīng)用作為獨(dú)立的部分或所謂的門戶組件來提供。在客戶端(門戶服務(wù)器應(yīng)用),每一個(gè)所需門戶應(yīng)用的門戶組件都需要一個(gè)一個(gè)地單獨(dú)安裝和配置。管理員必須對每個(gè)門戶組件執(zhí)行所有的安裝步驟并且最后還需要規(guī)定如何在WEB網(wǎng)站設(shè)計(jì)中安排門戶組件。綜合門戶應(yīng)用的安裝成為非常具有挑戰(zhàn)性和困難的任務(wù)。當(dāng)門戶屬性增加時(shí),這個(gè)問題變得更重要了為那個(gè)平臺開發(fā)的門戶應(yīng)用得益于新的功能,但復(fù)雜性也隨之增加?,F(xiàn)代門戶應(yīng)用不只是由幾個(gè)門戶組件組成。還要增加組件來生成甚至更為復(fù)雜的J2EE應(yīng)用。復(fù)雜的垂直式J2EE應(yīng)用包括多種基本J2EE組件類型和許多特定的門戶組件類型,這些組件都被融合到由大型應(yīng)用開發(fā)團(tuán)隊(duì)創(chuàng)建的統(tǒng)一門戶應(yīng)用中。在這個(gè)專利應(yīng)用中,組成門戶應(yīng)用的所有組件都包括在術(shù)語“應(yīng)用組件”中。這些應(yīng)用組件可以是例如單一門戶組件應(yīng)用(例如封裝成WAR文件,+XML代碼)、布局設(shè)計(jì)(例如主題和皮膚)、門戶組件過濾器(+XML代碼)、訪問控制定義和角色(XML)、作為特殊用例的動(dòng)態(tài)裝配模塊/條件(例如+XML代碼)、頁面/導(dǎo)航定義(例如XML)、URL映射(例如XML)、文檔(例如XML元數(shù)據(jù)+二進(jìn)制)、企業(yè)JavaBeans、JCA連接器(例如封裝成JAR文件)、Servlets(例如封裝成WAR文件)、門戶組件工具服務(wù)、內(nèi)含的Web服務(wù)、內(nèi)部應(yīng)用通信定義(例如“點(diǎn)擊即動(dòng)(Click-2-Action)”)、JSF組件。
發(fā)明內(nèi)容本發(fā)明的目標(biāo)是為開發(fā)門戶應(yīng)用和在門戶服務(wù)器應(yīng)用環(huán)境下部署門戶應(yīng)用而提供一種新的系統(tǒng)和方法,從而避免現(xiàn)有技術(shù)的缺點(diǎn)。本發(fā)明通過創(chuàng)建門戶應(yīng)用檔案文件為開發(fā)門戶應(yīng)用提供了一種系統(tǒng)和方法,并通過使用門戶應(yīng)用檔案文件特定的部署機(jī)構(gòu),在門戶服務(wù)器應(yīng)用中自動(dòng)部署門戶應(yīng)用檔案文件。門戶應(yīng)用檔案文件代表了一種實(shí)體,該實(shí)體包括形成統(tǒng)一門戶應(yīng)用所需的全部應(yīng)用組件的裝配,此外還包括應(yīng)用組件裝配描述符,用來指定在門戶服務(wù)器應(yīng)用環(huán)境中單一的應(yīng)用組件需要怎樣裝配到完整的門戶應(yīng)用中。門戶應(yīng)用檔案文件被提供給門戶服務(wù)器環(huán)境,并通過使用門戶應(yīng)用檔案文件特定的部署機(jī)構(gòu),將門戶應(yīng)用檔案文件自動(dòng)部署到門戶服務(wù)器應(yīng)用環(huán)境中。部署機(jī)構(gòu)評估應(yīng)用組件裝配描述符信息并且把信息應(yīng)用到部署過程中。本發(fā)明允許開發(fā)包括頁面、門戶組件、門戶組件間信道等的完整門戶應(yīng)用,這些門戶應(yīng)用可以以即購即用(out-of-thebox)的方式部署,或者作為模板在部署時(shí)由用戶進(jìn)一步定制。上述本發(fā)明的特點(diǎn)和優(yōu)點(diǎn)還有附加的目標(biāo),將在下面詳細(xì)的描述中展現(xiàn)。本發(fā)明新穎的特點(diǎn)在隨附的權(quán)利要求書中闡明。而發(fā)明本身和優(yōu)選的使用模式、額外的目標(biāo)及它的優(yōu)點(diǎn)一樣,將通過參考下面參看附圖閱讀的示例性實(shí)施方式的詳細(xì)描述來很好地理解,其中圖1A顯示了門戶應(yīng)用結(jié)構(gòu)的示例,圖1B顯示了現(xiàn)有技術(shù)中門戶應(yīng)用的開發(fā)過程,圖1C顯示了現(xiàn)有技術(shù)中門戶應(yīng)用的部署過程,圖2A顯示了根據(jù)本發(fā)明的門戶應(yīng)用的基本開發(fā)過程,圖2B顯示了根據(jù)本發(fā)明的將門戶應(yīng)用向門戶服務(wù)器中部署的基本過程,圖3A顯示了根據(jù)本發(fā)明進(jìn)行開發(fā)和部署的門戶應(yīng)用的一個(gè)示例,圖3B顯示了根據(jù)本發(fā)明,圖3A中顯示的門戶應(yīng)用的開發(fā)和部署過程的優(yōu)選實(shí)施方式,圖3C顯示了根據(jù)圖3B的發(fā)明的開發(fā)過程的結(jié)果,圖3D顯示了根據(jù)本發(fā)明在門戶服務(wù)器應(yīng)用中部署過程的優(yōu)選實(shí)施方案,圖4顯示了作為發(fā)明的門戶檔案文件的一部分,應(yīng)用組件裝配描述符的內(nèi)容的示例。具體實(shí)施例方式圖1A顯示了復(fù)雜門戶應(yīng)用的一個(gè)示例。門戶應(yīng)用(如在線銀行應(yīng)用)包括多個(gè)門戶組件,象賬戶門戶組件、股票價(jià)格門戶組件、股票交易門戶組件、電子郵件門戶組件、貸款門戶組件、抵押門戶組件等。典型地,這些門戶組件能由應(yīng)用開發(fā)者作為統(tǒng)一應(yīng)用的一部分來開發(fā)和提供。然而應(yīng)用開發(fā)者不能把應(yīng)用作為一個(gè)統(tǒng)一的單元提供給用戶。相反,他需要將他的應(yīng)用作為門戶組件單獨(dú)的部分來提供。在客戶端,每個(gè)所需的門戶組件都需要一個(gè)一個(gè)地單獨(dú)安裝和裝配。管理員必須定義所有安裝步驟并最后定義門戶組件如何安排在web網(wǎng)站布局中。綜合門戶應(yīng)用的安裝成為非常具有挑戰(zhàn)性和困難的任務(wù)。圖1B顯示了現(xiàn)有技術(shù)中圖1A所示門戶應(yīng)用的開發(fā)過程。每個(gè)應(yīng)用組件1-5都單獨(dú)地被開發(fā)和打包。典型地,每個(gè)包都表示為一個(gè)單獨(dú)的文件,如war文件。在用戶端,定義了單獨(dú)的應(yīng)用組件需要怎樣由管理員裝配到整個(gè)門戶應(yīng)用中這樣的信息通常由用戶手冊提供。圖1C顯示了現(xiàn)有技術(shù)中門戶應(yīng)用部署到門戶服務(wù)器應(yīng)用環(huán)境中的部署過程。在如今的門戶服務(wù)器應(yīng)用環(huán)境中,管理員將不得不單獨(dú)安裝每個(gè)應(yīng)用組件1-5。安裝完之后,他還須按照應(yīng)用開發(fā)者6所推薦的那樣,通過手工安排應(yīng)用組件1-5來定制門戶應(yīng)用。額外的部署步驟可能是安裝某種服務(wù)8或者手工定義應(yīng)用組件7之間的交互作用。圖2A顯示了根據(jù)本發(fā)明,圖1A示出的門戶應(yīng)用的基本開發(fā)過程。本發(fā)明教導(dǎo)如下所有的單獨(dú)應(yīng)用組件1-5一起存儲和/或打包成一個(gè)實(shí)體(如單一的JavaEAR文件、一組相關(guān)的文件、一條數(shù)據(jù)庫記錄),它包括形成統(tǒng)一門戶應(yīng)用的全部單獨(dú)的應(yīng)用組件1-5。工具軟件定義了元信息,包括應(yīng)用組件1-5間的交互作用,還包括整個(gè)門戶應(yīng)用所需的布局?;谠撛畔?,工具軟件能生成機(jī)器可讀的整個(gè)門戶應(yīng)用的應(yīng)用組件裝配描述符40,并和應(yīng)用組件1-5一起打包成一個(gè)實(shí)體35,稱為門戶應(yīng)用檔案文件。應(yīng)用組件裝配描述符的內(nèi)容在圖4D中更為詳細(xì)地示出。圖2B顯示了根據(jù)本發(fā)明圖1A顯示的門戶應(yīng)用的基本部署過程。本發(fā)明使所有現(xiàn)有技術(shù)的部署步驟變得過時(shí)了。由門戶應(yīng)用檔案文件35表示的全部門戶應(yīng)用“在一個(gè)步驟里自動(dòng)安裝”。在應(yīng)用組件裝配描述符40里包含的元信息是門戶應(yīng)用檔案文件35的一部分,其能由門戶服務(wù)器應(yīng)用部署機(jī)構(gòu)來評估。基于該信息,必需的部署步驟能被自動(dòng)地觸發(fā)??梢钥刂崎T戶服務(wù)器應(yīng)用配置來反映所需的布局和所提供的應(yīng)用組件的交互作用。本發(fā)明的部署過程在圖3D中描述得更為詳細(xì)。圖3A顯示了綜合門戶應(yīng)用的示例,該綜合門戶應(yīng)用由根據(jù)本發(fā)明的工具軟件來開發(fā)并由門戶服務(wù)器應(yīng)用的部署機(jī)構(gòu)來部署。圖3A顯示了有3個(gè)不同門戶應(yīng)用30的示例協(xié)作12、郵件/日歷13、和金融14。金融門戶應(yīng)用14包括一組商業(yè)流程定義21、到后臺系統(tǒng)的JCA連接器20、為用戶描述應(yīng)用的文檔22、頁面定義、URL映射18和模板17。通過URL映射18定義的URL在門戶服務(wù)器應(yīng)用中可獲得門戶應(yīng)用頁面。為商業(yè)流程頁面所包含的動(dòng)態(tài)裝配模塊19填充在頁面和導(dǎo)航拓?fù)渲械恼嘉环?jié)點(diǎn)的動(dòng)態(tài)頁面里,這取決于商業(yè)流程定義中所定義的商業(yè)流程的當(dāng)前狀態(tài)。所包含的應(yīng)用門戶組件15允許創(chuàng)建和處理新的過程實(shí)例。它們可以顯示所包含的文檔以獲得幫助,使用所包含的連接器來訪問后臺系統(tǒng)。一些包含的門戶組件用于門戶應(yīng)用管理。在門戶應(yīng)用中,基于它們的類型,許多應(yīng)用組件參照其他的應(yīng)用組件。例如,拓?fù)錁渲械墓?jié)點(diǎn)可以參照頁面的定義,資源樹中的節(jié)點(diǎn)可以參照主題定義,頁面的定義可以參照一個(gè)或多個(gè)門戶組件,等等。為了根據(jù)目前的應(yīng)用來開發(fā)和部署這樣的門戶應(yīng)用,必須向現(xiàn)有的現(xiàn)有技術(shù)工具軟件中和門戶服務(wù)器90/應(yīng)用服務(wù)60中增加如下新的功能組件-工具軟件(如IBMWebsphereStudio)需要能支持門戶應(yīng)用的思想,該工具軟件能進(jìn)行統(tǒng)一的開發(fā)并能包含多個(gè)單獨(dú)的、卻有內(nèi)在聯(lián)系的應(yīng)用組件。-工具軟件必須能打包和導(dǎo)出可理解的門戶應(yīng)用檔案文件35,這些文件可以由應(yīng)用提供者傳送給門戶服務(wù)器應(yīng)用。一個(gè)關(guān)鍵元素是應(yīng)用組件裝配描述符,優(yōu)選為XML文件,其列出門戶應(yīng)用的內(nèi)容并定義這些內(nèi)容怎樣裝配到門戶應(yīng)用當(dāng)中。例如在J2EE環(huán)境中,所選擇的包的格式是J2EEEAR文件,里面包含了所有相關(guān)的應(yīng)用組件,還有部署描述符XML文件。-門戶服務(wù)器90或運(yùn)行門戶服務(wù)器90的應(yīng)用服務(wù)器60(如IBMWebsphere門戶)必須能導(dǎo)入門戶應(yīng)用檔案文件35并且必須自動(dòng)部署應(yīng)用組件裝配描述符文件中描述的所包含的應(yīng)用組件15-22。例如向運(yùn)行的門戶服務(wù)器應(yīng)用環(huán)境90的部署能通過使用應(yīng)用服務(wù)器部署來完成。IBMWebSphere門戶服務(wù)器90使用應(yīng)用服務(wù)器60的部署流程中的API來適宜地處理所有門戶特定應(yīng)用組件,而基本的J2EE應(yīng)用組件由應(yīng)用服務(wù)器來處理。門戶應(yīng)用檔案文件35中的不同應(yīng)用組件15-22影響著門戶服務(wù)器90中的不同部分。部署的應(yīng)用組件15-22插入到不同的門戶服務(wù)器應(yīng)用組件,象集成、門戶配置或者門戶組件容器(未顯示)。圖3B中顯示了整個(gè)門戶應(yīng)用開發(fā)和部署過程。門戶應(yīng)用開發(fā)過程針對門戶應(yīng)用50的工具軟件30可以擴(kuò)大根據(jù)本發(fā)明的門戶應(yīng)用的范圍。取代了開發(fā)單獨(dú)的門戶組件,每個(gè)項(xiàng)目能包括多個(gè)應(yīng)用組件15-22,它們能作為門戶應(yīng)用50獨(dú)立的部分而被單獨(dú)開發(fā)。除了現(xiàn)有的工具功能,綜合門戶應(yīng)用50的不同應(yīng)用組件15-22間的關(guān)系/交互作用也需要可編程。工具軟件30必須也提供布局編輯器(未顯示),它允許定義門戶應(yīng)用50的布局并且安排需要的應(yīng)用組件15-22。開發(fā)的應(yīng)用組件15-22必須作為一個(gè)單元存儲在工具軟件內(nèi)部的知識庫中(未顯示)。只存儲“單獨(dú)應(yīng)用組件15-22的開發(fā)代碼”是不夠的,強(qiáng)調(diào)這一點(diǎn)是很重要的。另外,應(yīng)用組件15-22間的程序關(guān)系/交互作用和定義的布局一樣,也必須和實(shí)際的代碼存儲在一起。為了這個(gè)目的,建議工具軟件30使用應(yīng)用組件裝配描述符文件35來定義不同應(yīng)用組件15-22怎樣裝配到統(tǒng)一的門戶應(yīng)用50。應(yīng)用組件裝配描述符文件35提供元信息(如在XML中)來描述門戶應(yīng)用50和它的拓?fù)?。該文件可以認(rèn)為是門戶應(yīng)用50的內(nèi)容的表,它還描述了怎樣裝配和安排應(yīng)用組件15-22。應(yīng)用組件裝配描述符文件35的結(jié)構(gòu)和內(nèi)容結(jié)合圖4更詳細(xì)地描述。圖3C顯示了發(fā)明的開發(fā)過程的結(jié)果的示例。開發(fā)過程的結(jié)果是發(fā)明的“門戶應(yīng)用檔案文件35”。在所給的示例中,門戶應(yīng)用檔案文件是一個(gè)單獨(dú)的文件包,它包括兩個(gè)機(jī)器可讀代碼形式的應(yīng)用組件70、80和應(yīng)用組件裝配描述符40(如XML文件),該裝配描述符限定應(yīng)用組件70、80間的相互關(guān)系。本例中,門戶服務(wù)器應(yīng)用部署機(jī)構(gòu)使用了應(yīng)用組件裝配描述符40并創(chuàng)建了一個(gè)有兩列的新頁面。列1包含一行,而列2包含兩行。每行都包含一個(gè)應(yīng)用組件70、80。圖3D顯示了在門戶服務(wù)器應(yīng)用環(huán)境90中本發(fā)明的部署過程的優(yōu)選實(shí)現(xiàn)。使用門戶應(yīng)用檔案文件35的應(yīng)用服務(wù)器管理工具65,可以將門戶應(yīng)用檔案文件35直接部署到門戶的下層應(yīng)用服務(wù)器60(AS)上。門戶服務(wù)器應(yīng)用90使用應(yīng)用服務(wù)器部署過程68的API來適宜地處理所有的應(yīng)用組件70、80。圖3D顯示了門戶應(yīng)用檔案文件35中不同應(yīng)用組件70、80怎樣影響門戶服務(wù)器應(yīng)用90的不同部分91、92、93。應(yīng)用組件70、80插入到不同的門戶服務(wù)器應(yīng)用組件中,象集成91、門戶配置92或門戶組件容器93。在J2EE環(huán)境中,門戶應(yīng)用檔案文件35將被打包成JavaEAR文件。如上所述,由門戶工具軟件(或手工)生成的門戶應(yīng)用檔案文件EAR35將遵從J2EE規(guī)范并且提供該標(biāo)準(zhǔn)需要的所有必要的信息。因此EAR能被部署在任何符合J2EE的應(yīng)用服務(wù)器60上,然而標(biāo)準(zhǔn)的應(yīng)用服務(wù)器60(AS)將忽略附加的信息,象XML應(yīng)用組件裝配描述符文件35,并且將不能確定怎樣將各種應(yīng)用組件70、80合適地裝配到所需門戶應(yīng)用中。為了這個(gè)目的,需要向應(yīng)用服務(wù)器60提供額外的部署邏輯(AS部署;68),描述如下現(xiàn)有應(yīng)用服務(wù)器部署API的控制器(稱為AppDeploymentController)接受任意的J2EEEAR文件35作為輸入,依照J(rèn)2EE規(guī)范執(zhí)行基本的校驗(yàn)并隨即創(chuàng)建一系列為部署給定EAR所需要執(zhí)行的任務(wù)。這一系列任務(wù)能通過編程擴(kuò)展來執(zhí)行額外的特定部署邏輯。這些額外的任務(wù)將用來評估應(yīng)用組件裝配描述符35并執(zhí)行部署門戶應(yīng)用所必須的步驟。AppDeploymentController實(shí)例由管理的客戶端使用,來提供到門戶服務(wù)器應(yīng)用90上的應(yīng)用安裝功能。它讀取EAR文件并創(chuàng)建一系列AppDeploymentTasks,AppDeploymentTasks指定需要從終端用戶收集的數(shù)據(jù),用來安裝EAR文件??刂破黝惓似渌腁PI,有如下的API-classAppDeploymentController{…publicString[]getAppDeploymentTaskNames();publicAppDeploymentTaskgetFirstTask();publicAppDeploymentTaskgetNextTask();publicAppDeploymentTaskgetTaskByName(StringtaskName);}AppDeploymentController類的API由AS提供注釋。按照AS規(guī)范,客戶端應(yīng)用需要1)使用AppManagementFactory創(chuàng)建AppDeploymentController的實(shí)例并以EAR文件的形式傳送。2)通過調(diào)用getFirst和getNext方法迭代由AppDeploymentController創(chuàng)建的任務(wù)。3)把任務(wù)數(shù)據(jù)呈現(xiàn)給終端用戶并收集用戶輸入的必要數(shù)據(jù)。4)把數(shù)據(jù)返回給任務(wù)并存儲AppDeploymentController的實(shí)例。5)調(diào)用控制器的getAppDeploymentSavedResultsAPI來獲取選擇,并且調(diào)用以EAR文件和選擇來傳送的AppManagementMBean上的installApplicationAPI。為了部署由門戶應(yīng)用檔案文件EAR35提供的門戶特定的增強(qiáng)功能,門戶服務(wù)器90需要實(shí)現(xiàn)它本身的任務(wù)提供者。門戶服務(wù)器使用應(yīng)用服務(wù)器的部署過程60中的API來適宜地處理所有的門戶特定應(yīng)用組件,而基本J2EE應(yīng)用組件由應(yīng)用服務(wù)器60處理。門戶特定任務(wù)提供者能通過實(shí)現(xiàn)AppDeploymentTaskProvider的接口,結(jié)合額外的部署步驟。packagecom.ibm.websphere.management.applicationPublicclassAppManagementExtensiohs{/***Thisinterfaceisimplementedbythetaskprovidersthatwanttoadd*extrataskstotheappdeployment(preparationofearfile)process*ontheclientside*/publicinterfaceAppDeplymentTaskProvider{/***Manipulatesthelistoftaskinfoobjectsthatareusedduring*creationofAppDeploymentControllerinstance.Thevectorcontainsa*setofdefaulttaskstobeginwith.*@paramtaskInfoVectorthatcontainsthetaskinfoobjects*@paramdeploymentInfoTheAppDeploymentInfoinstancethatcontains*informationaboutthearchivebeingdeployed*@paramprefsThepreferenceswhereyoucanspecifylocale,*defaultbindinginfo,etc.*/publicvoidprovideClientDeploymentTasks(VectortaskInfo,AppDeploymentInfodeploymentInfo.Hashtableprefs)ThrowsAppDeploymentException;基于應(yīng)用組件裝配描述符XML文件35中的信息,調(diào)用門戶特定任務(wù)來注冊應(yīng)用服務(wù)器90中的應(yīng)用組件70、80,并自動(dòng)執(zhí)行必要的門戶安裝和管理步驟。門戶應(yīng)用檔案文件35中的不同應(yīng)用組件70、80影響著門戶服務(wù)器應(yīng)用90中不同的部分。應(yīng)用組件70、80插入到不同的門戶服務(wù)器應(yīng)用組件,象集成,門戶配置或者門戶組件容器。增加的門戶特定任務(wù)包括實(shí)例化門戶組件解決外部引用應(yīng)用主題/皮膚向頁面層次中增加頁面定義頁面布局安裝訪問控制環(huán)境/把用戶映射為角色使用點(diǎn)擊即動(dòng)控制門戶應(yīng)用中門戶組件的用法,來連接門戶組件。門戶組件和頁面是門戶應(yīng)用中基本的組成模塊-它們提供用戶體驗(yàn)的子單元,然后這些子單元由門戶應(yīng)用集成,以提供最終用戶體驗(yàn)。門戶組件被打包成門戶應(yīng)用。門戶應(yīng)用和J2EEweb應(yīng)用類似,不同的是它們使用額外的接口,使之很容易地把門戶組件集成到單一的頁面中,并在門戶應(yīng)用或門戶網(wǎng)站的許多頁面中重復(fù)使用門戶組件應(yīng)用和單個(gè)門戶組件。門戶組件應(yīng)用的打包格式是Web檔案文件(WAR)格式,它包括由門戶組件.xml部署描述符組成的web.xml部署描述符,用來定義web應(yīng)用的門戶相關(guān)部分。單一的門戶組件生成一個(gè)門戶組件窗體的內(nèi)容。為了調(diào)節(jié)門戶組件用作組成模塊的靈活性,門戶組件應(yīng)用開發(fā)者應(yīng)該爭取包含特定功能的小門戶組件而不是一個(gè)包含所有功能的大門戶組件。這有幾個(gè)優(yōu)點(diǎn)-門戶終端用戶能決定在頁面上只放需要的部分并且能節(jié)省空間,否則空間將被不需要的部分占用。-不同的功能可以分開跨越多個(gè)門戶頁面以適應(yīng)用戶的工作行為或者適應(yīng)有限的設(shè)備顯示能力。-附加的功能可以以后簡單地作為新的門戶組件加入。屬于同一邏輯應(yīng)用的門戶組件應(yīng)該一起綁定在一個(gè)門戶組件應(yīng)用上,因?yàn)檫@有幾個(gè)優(yōu)點(diǎn),象共享配置數(shù)據(jù)、會話數(shù)據(jù)的能力,容易在每個(gè)門戶組件應(yīng)用上的一個(gè)門戶組件的方法中進(jìn)行部署和管理。然而,目前的門戶組件應(yīng)用十分有限,因?yàn)樗鼈冎惶幚黹T戶組件部分,而不是象本發(fā)明里描述的那樣允許預(yù)先裝配所有的門戶應(yīng)用。它們?nèi)鄙賹?dǎo)航和布局部分,這些是提供有用的門戶應(yīng)用所必需的。圖4顯示了由發(fā)明的門戶應(yīng)用開發(fā)過程產(chǎn)生的應(yīng)用組件裝配描述符文件的示例。應(yīng)用組件裝配描述符文件40優(yōu)選地基于幾個(gè)XSD模式定義基本模式定義54描述了基本元素,這些元素用于下面的其他模式定義。拓?fù)淠J蕉x描述了全部資源(J2EE標(biāo)準(zhǔn))和應(yīng)用拓?fù)?,包括布局即頁面布?7、導(dǎo)航樹56、門戶組件55。安全模式定義53描述了安全相關(guān)的方面,如應(yīng)用角色和它們的訪問控制權(quán)限?;灸J蕉x54基本模式定義指定了基本元素,用于其他兩個(gè)模式的定義。這些元素包括標(biāo)題展示給程序員或用戶的實(shí)體的一個(gè)友好的名稱。描述描述元素提供了支持NLS的文本。參數(shù)一組名稱/值對,允許給實(shí)體添加定制的屬性。nlsRef對文件的引用,能映射本地的字符串。版本字符串指定實(shí)體版本的標(biāo)識符。拓?fù)涿枋瞿J桨?個(gè)相互連接的平行樹55、56、57應(yīng)用樹列出并描述該門戶應(yīng)用所使用的所有應(yīng)用組件。在樹55中以有層次的順序指定應(yīng)用組件。布局樹定義了該門戶應(yīng)用57使用的布局。布局可以包含在其他布局中。布局指定應(yīng)用組件所能插入的窗體。導(dǎo)航樹定義了應(yīng)用所展示出56的導(dǎo)航層次。這通過定義導(dǎo)航元素來實(shí)現(xiàn),導(dǎo)航元素把給定的應(yīng)用組件映射到可用布局的特定窗體。下面的列表詳述了拓?fù)淠J蕉x中所定義的元素拓?fù)涿枋?5、56、57這是拓?fù)涿枋龅母?。它包括?yīng)用的標(biāo)題、描述、版本、唯一的名稱和它的先決條件。該元素還涉及組合應(yīng)用組件和布局的應(yīng)用樹、布局樹和導(dǎo)航元素。要求指定任何先決條件的唯一名稱和版本。應(yīng)用樹55這是應(yīng)用樹的根元素,描述了所有應(yīng)用組件。該元素提供標(biāo)題、描述和所提供的唯一名稱。應(yīng)用樹能引用其他子應(yīng)用樹或者直接引用一個(gè)或多個(gè)應(yīng)用元素。應(yīng)用元素應(yīng)用元素描述了應(yīng)用組件及它的屬性。除包括標(biāo)題、描述和唯一的名稱以外,資源鏈接元素涉及二進(jìn)制代碼(例如WAR文件)。參數(shù)名稱/值對能用來提供應(yīng)用特定信息。應(yīng)用組件類型該類型列出了全部可能的應(yīng)用元素類型○Portletdefinition○Portletentity○Wire○Portletervice○Service○Skin○Theme○Label○urlLink○tile○any資源鏈接該元素引用了應(yīng)用組件實(shí)際的二進(jìn)制代碼(例如WAR文件)。UID和URL用于進(jìn)行引用。有2種可應(yīng)用的鏈路類型靜態(tài)動(dòng)態(tài)布局樹57這是布局樹的根元素,描述了所有可用的布局模板。布局樹元素提供了標(biāo)題、描述并能引用其他布局樹或者直接引用特定的布局元素。布局元素布局元素描述了布局模板。包括名稱、描述、參數(shù)、唯一的名稱和關(guān)鍵字,布局元素包括可存放內(nèi)容的容器。容器容器元素可以包括幾個(gè)容器本身,或者可用于向布局中放置實(shí)際內(nèi)容。唯一的名稱、標(biāo)題、描述和參數(shù)是附加信息,在容器元素中提供文件證明。下面是可能的容器類型○行○列○網(wǎng)格窗體名稱、描述和參數(shù)在窗體元素中使用。窗體是占位符,通過它實(shí)際的內(nèi)容能被放到布局里面,這樣的內(nèi)容可以是以下之一○對嵌入到給定布局元素窗體的另一個(gè)布局元素的引用○對應(yīng)用實(shí)體的靜態(tài)引用,應(yīng)用實(shí)體被放置到窗體中作為布局定義的一部分○空位置,表明該窗體是空閑的,可以由導(dǎo)航元素利用給定布局元素來使用。每個(gè)使用該布局元素的導(dǎo)航元素能單獨(dú)指定哪個(gè)應(yīng)用實(shí)體應(yīng)該被放入該位置。導(dǎo)航元素56導(dǎo)航元素是被嵌套的并且類似于導(dǎo)航樹,將應(yīng)用展示給用戶。每個(gè)導(dǎo)航樹可能有一個(gè)或多個(gè)子導(dǎo)航元素。導(dǎo)航元素里所引用的導(dǎo)航內(nèi)容指定了內(nèi)容是怎樣放置到所使用的布局中的。布局元素和標(biāo)題、描述及參數(shù)是在導(dǎo)航元素中定義的。導(dǎo)航內(nèi)容導(dǎo)航元素使用導(dǎo)航內(nèi)容來將內(nèi)容(應(yīng)用實(shí)體)映射到特定的布局里。為了這個(gè)目的,引用了給定布局里的特定應(yīng)用實(shí)體和相應(yīng)窗體。當(dāng)展示門戶應(yīng)用的時(shí)候,應(yīng)用實(shí)體將在布局窗體中顯示。權(quán)利要求1.一種用于向門戶服務(wù)器應(yīng)用環(huán)境(90)自動(dòng)部署門戶應(yīng)用(50)的方法,其中所述門戶應(yīng)用(50)作為實(shí)體(門戶應(yīng)用檔案文件;35)提供給所述門戶服務(wù)器應(yīng)用環(huán)境(90),該實(shí)體包括機(jī)器可讀代碼形式的形成統(tǒng)一門戶應(yīng)用(50)的所有應(yīng)用組件(15-22),以及機(jī)器可讀代碼形式的應(yīng)用組件裝配描述符(40),所述裝配描述符指定了單一的應(yīng)用組件(15-22)需要如何裝配到所述門戶服務(wù)器環(huán)境(90)中的所述全部門戶應(yīng)用(50),其中所述的方法包括步驟將所述門戶應(yīng)用檔案文件(35)提供給所述門戶服務(wù)器應(yīng)用環(huán)境(90)中的部署機(jī)構(gòu),所述部署機(jī)構(gòu)能將所述門戶應(yīng)用檔案文件(35)部署到所述門戶服務(wù)器環(huán)境(90),通過所述部署機(jī)構(gòu)來評估所述門戶應(yīng)用檔案文件(35)中包含的所述應(yīng)用組件裝配描述符(40),以及根據(jù)所述應(yīng)用組件裝配描述符(40)中包含的所述信息,向所述門戶服務(wù)器應(yīng)用環(huán)境(90)的各個(gè)部分自動(dòng)部署所述應(yīng)用組件(15-22)。2.根據(jù)權(quán)利要求1的方法,其中所述應(yīng)用組件裝配描述符(40)是XML描述符文件。3.根據(jù)權(quán)利要求1的方法,其中所述應(yīng)用組件裝配描述符(40)包括基本的模式定義(54)、拓?fù)淠J蕉x(55、56、57)和安全模式定義(54)。4.根據(jù)權(quán)利要求1的方法,其中所述門戶應(yīng)用檔案文件35是作為JavaEAR文件、或者是一組相關(guān)的文件、或者是數(shù)據(jù)庫記錄來提供的。5.根據(jù)權(quán)利要求1的方法,其中所述部署機(jī)構(gòu)是通過應(yīng)用服務(wù)器(60)來控制的,所述門戶服務(wù)器應(yīng)用(90)運(yùn)行在該應(yīng)用服務(wù)器上。6.根據(jù)權(quán)利要求1的方法,其中所述部署機(jī)構(gòu)提供所述任務(wù)來實(shí)例化應(yīng)用組件、解決外部引用、應(yīng)用主題/皮膚、給所述頁面層次增加頁面、定義頁面布局、設(shè)置訪問控制環(huán)境、映射用戶角色、使用“點(diǎn)擊即動(dòng)”控制來連接應(yīng)用組件。7.一種門戶服務(wù)器應(yīng)用環(huán)境,其中所述門戶應(yīng)用(50)作為實(shí)體(門戶應(yīng)用檔案文件;35)提供給所述門戶服務(wù)器應(yīng)用環(huán)境,其中所述實(shí)體包括機(jī)器可讀代碼形式的形成統(tǒng)一門戶應(yīng)用(50)的所有應(yīng)用組件(15-22),以及機(jī)器可讀代碼形式的應(yīng)用組件裝配描述符(40),所述裝配描述符指定了單一的應(yīng)用組件(15-22)需要如何裝配到所述門戶服務(wù)器環(huán)境(90)中的所述全部門戶應(yīng)用(50),包括根據(jù)所述應(yīng)用組件裝配描述符(40)中包含的所述信息,向所述門戶服務(wù)器(90)的各個(gè)部分自動(dòng)部署所述應(yīng)用組件(15-22)的裝置。8.根據(jù)權(quán)利要求7的門戶服務(wù)器環(huán)境,還包括應(yīng)用服務(wù)器(60),所述門戶服務(wù)器應(yīng)用(90)運(yùn)行在所述應(yīng)用服務(wù)器之上,其中用于部署所述門戶應(yīng)用(50)的所述裝置是所述應(yīng)用服務(wù)器(60)的一部分。9.一種用于開發(fā)門戶應(yīng)用的工具軟件,包括開發(fā)單一應(yīng)用組件的工具,用于開發(fā)應(yīng)用組件裝配描述符(40)的工具,所述裝配描述符指定了單一的應(yīng)用組件(15-22)需要如何裝配到所述門戶服務(wù)器環(huán)境(90)中的所述全部門戶應(yīng)用(50),用于將所述單一應(yīng)用組件(15-22)和所述應(yīng)用組件裝配描述符(40)一起作為實(shí)體(門戶應(yīng)用檔案文件;35)存儲到存儲庫的工具,用于將所述門戶應(yīng)用檔案文件提供給門戶服務(wù)器應(yīng)用環(huán)境中的部署機(jī)構(gòu),根據(jù)所述應(yīng)用組件裝配描述符(40)中包含的所述信息,向所述門戶服務(wù)器環(huán)境(90)的各個(gè)部分自動(dòng)部署所述應(yīng)用組件(15-22)的工具。10.根據(jù)權(quán)利要求9的工具軟件,其中所述門戶應(yīng)用檔案文件(35)作為打包的單一文件、或相關(guān)文件的打包子集,或以數(shù)據(jù)庫記錄的形式提供給門戶服務(wù)器應(yīng)用環(huán)境。11.根據(jù)權(quán)利要求10的工具軟件,其中所述單一文件是JavaEAR文件。12.一種存儲在計(jì)算機(jī)可以使用的介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可讀程序工具,用于使計(jì)算機(jī)執(zhí)行根據(jù)權(quán)利要求1到6中的任何一個(gè)的方法。全文摘要本發(fā)明提供了一種系統(tǒng)和方法,用于通過創(chuàng)建門戶應(yīng)用檔案文件開發(fā)門戶應(yīng)用,并通過使用門戶應(yīng)用檔案文件特定的部署機(jī)構(gòu),自動(dòng)向門戶服務(wù)器應(yīng)用中部署門戶應(yīng)用檔案文件。門戶應(yīng)用檔案文件表示一個(gè)實(shí)體,該實(shí)體包括形成統(tǒng)一門戶應(yīng)用的所有需要的應(yīng)用組件的裝配,還包括應(yīng)用組件裝配描述符,該描述符指定了單一的應(yīng)用組件需要如何裝配到門戶服務(wù)器應(yīng)用的全部門戶應(yīng)用。門戶應(yīng)用檔案文件被提供給門戶服務(wù)器環(huán)境,并通過使用門戶應(yīng)用檔案文件特定的部署機(jī)構(gòu)自動(dòng)部署到門戶服務(wù)器環(huán)境。部署機(jī)構(gòu)評估應(yīng)用組件裝配描述符信息并把信息應(yīng)用于部署過程。本發(fā)明允許開發(fā)完整的門戶應(yīng)用,它能以“即購即用”的方式部署或者作為模板在部署時(shí)做進(jìn)一步的用戶定制。文檔編號G06F17/30GK1811702SQ20051007965公開日2006年8月2日申請日期2005年6月23日優(yōu)先權(quán)日2004年8月16日發(fā)明者迪特爾·比勒,斯特凡·黑普爾,托馬斯·舍克,托馬斯·施托貝爾申請人:國際商業(yè)機(jī)器公司