專(zhuān)利名稱(chēng):用于遠(yuǎn)程web服務(wù)克隆和例示的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web服務(wù)的領(lǐng)域,更具體地說(shuō)涉及Web服務(wù)實(shí)例(instance)的克隆和例示(instantiation)。
背景技術(shù):
Web服務(wù)已成為風(fēng)行一時(shí)的分布式計(jì)算,并且被看作開(kāi)發(fā)支持萬(wàn)維網(wǎng)內(nèi)基于組件的應(yīng)用的快速發(fā)展的真正通用模型的基礎(chǔ)。本領(lǐng)域中已知Web服務(wù)包括正在形成的描述面向服務(wù)的,基于組件的應(yīng)用體系結(jié)構(gòu)的標(biāo)準(zhǔn)組。具體地說(shuō),Web服務(wù)是在語(yǔ)義上封閉離散功能的松散耦接、可重復(fù)使用的軟件組件,并且Web服務(wù)是分布式的,可通過(guò)標(biāo)準(zhǔn)因特網(wǎng)協(xié)議以編程方式訪問(wèn)。
概念上,Web服務(wù)代表其中計(jì)算過(guò)程內(nèi)的離散任務(wù)在數(shù)值網(wǎng)(value net)內(nèi)廣泛分布的模型。特別地,許多行業(yè)專(zhuān)家認(rèn)為面向服務(wù)的Web服務(wù)是因特網(wǎng)的下一發(fā)展階段。一般來(lái)說(shuō),可由諸如Web服務(wù)定義語(yǔ)言(WSDL)之類(lèi)的接口(interface)定義,并且可按照該接口實(shí)現(xiàn),不過(guò)實(shí)現(xiàn)細(xì)節(jié)無(wú)關(guān)緊要,只要實(shí)現(xiàn)符合Web服務(wù)接口即可。一旦按照相應(yīng)的接口實(shí)現(xiàn)了Web服務(wù),即可向Web服務(wù)注冊(cè)處(registry),例如本領(lǐng)域眾所周知的通用描述、發(fā)現(xiàn)和集成(UDDI)注冊(cè)該實(shí)現(xiàn)。一旦注冊(cè),通過(guò)利用任何支持消息接發(fā)協(xié)議(例如包括簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)),服務(wù)請(qǐng)求者可訪問(wèn)該Web服務(wù)。
在支持Web服務(wù)的面向服務(wù)應(yīng)用環(huán)境中,已證明查找可靠服務(wù)的位置,并實(shí)時(shí)地動(dòng)態(tài)集成這些可靠服務(wù),以滿足應(yīng)用目的尚有疑問(wèn)。雖然注冊(cè)處、目錄和發(fā)現(xiàn)協(xié)議提供用于實(shí)現(xiàn)服務(wù)檢測(cè)和服務(wù)-服務(wù)互連邏輯的基本結(jié)構(gòu),但是注冊(cè)處、目錄和發(fā)現(xiàn)協(xié)議有時(shí)單獨(dú)并不適合于分布式互用性。相反,為了以統(tǒng)一應(yīng)用的形式,促進(jìn)Web服務(wù)的分布,需要一種更結(jié)構(gòu)化、形式化的機(jī)制。
特別地,貫穿開(kāi)放式網(wǎng)格服務(wù)結(jié)構(gòu)(OGSA)的網(wǎng)格機(jī)制的生理機(jī)能(physiology)可按照如果專(zhuān)一使用注冊(cè)處、目錄和發(fā)現(xiàn)協(xié)議不能實(shí)現(xiàn)的方式,跨越分布式系統(tǒng)既提供發(fā)現(xiàn)方面的協(xié)議,又提供Web服務(wù)綁定方面的協(xié)議,下面稱(chēng)為“網(wǎng)格服務(wù)”。如同在IanFoster,Carl Kesselman,和Steven Tuecke,The Anatomy of theGrid,Intl J.Supercomputer Applications(2001),和在IanFoster,Carl Kesselman,Jeffrey M.Nick和Steven Tuecke,ThePhysiology of the Grid,Globus.org(2002年6月22日)中所述,網(wǎng)格機(jī)制可提供分布式計(jì)算基礎(chǔ)結(jié)構(gòu),通過(guò)所述基礎(chǔ)結(jié)構(gòu),發(fā)出請(qǐng)求的客戶能夠產(chǎn)生、命名和發(fā)現(xiàn)網(wǎng)格服務(wù)實(shí)例。
網(wǎng)格服務(wù)通過(guò)提供增強(qiáng)資源共享和調(diào)度支持,僅僅擴(kuò)展Web服務(wù),支持復(fù)雜的分布式應(yīng)用一般所需的長(zhǎng)期有效狀態(tài),以及支持企業(yè)協(xié)作。此外,雖然Web服務(wù)單獨(dú)致力于持久服務(wù)的發(fā)現(xiàn)和調(diào)用,不過(guò)網(wǎng)格服務(wù)支持可動(dòng)態(tài)產(chǎn)生和破壞的瞬時(shí)服務(wù)實(shí)例。使用網(wǎng)格服務(wù)的顯著優(yōu)點(diǎn)可包括由于計(jì)算資源的更有效利用以及更易于集成各種計(jì)算組件的緣故,信息技術(shù)的所有權(quán)的成本降低。從而,網(wǎng)格機(jī)制,特別是符合OGSA的網(wǎng)格機(jī)制,可實(shí)現(xiàn)面向服務(wù)的體系結(jié)構(gòu),通過(guò)所述體系結(jié)構(gòu),即使跨越組織域,也可提供分布式系統(tǒng)集成的基礎(chǔ)。
在網(wǎng)格結(jié)構(gòu)中,可提供廠家服務(wù),廠家服務(wù)可被派給負(fù)責(zé)產(chǎn)生和部署Web應(yīng)用的新實(shí)例的任務(wù)。一般來(lái)說(shuō),Web服務(wù)技術(shù)環(huán)境中的Web應(yīng)用程序可包括小服務(wù)程序、服務(wù)器頁(yè)、置標(biāo)語(yǔ)言文件和諸如圖像之類(lèi)的支持元件的集合。該集合可包裝在檔案文件中,從而,Web應(yīng)用程序可被可移植地部署在任何許可小服務(wù)程序的Web服務(wù)器上。在傳統(tǒng)的Web應(yīng)用程序檔案文件中,可如下對(duì)Web應(yīng)用程序打包<pre listing-type="program-listing">index.htmlexample.jsp<!-- SIPO <DP n="2"> --><dp n="d2"/>images/on.gifimages/off.gifWEB-INF/web.xmlWEB-INF/lib/example.jarWEB-INF/classes/MyServlet.classWEB-INF/classes/com/servlet/MyWebServlet.class</pre>等一旦被打包,檔案文件可被部署到應(yīng)用程序服務(wù)器上。
特別地,在常規(guī)的實(shí)現(xiàn)中,“WEB-INF”目錄可被認(rèn)為是“特殊”的目錄,因?yàn)樵赪EB-INF目錄下保存的一切都不可直接供應(yīng)給客戶。相反,WEB-INF目錄一般包含例如小服務(wù)程序使用的類(lèi)別文件,及Web應(yīng)用程序本身使用的配置信息。在這方面,駐留于WEB-INF目錄中的web.xml文件通常被稱(chēng)為“部署描述符”。部署描述符可包括關(guān)于Web應(yīng)用程序的詳細(xì)信息,例如URL映象、小服務(wù)程序注冊(cè)細(xì)節(jié)、歡迎文件、MIME類(lèi)型、頁(yè)面級(jí)安全約束等。
雖然按照靜態(tài)、本地的方式克隆Web應(yīng)用程序是眾所周知的進(jìn)程,但是按照動(dòng)態(tài)、遠(yuǎn)程的方式克隆Web應(yīng)用程序并不是很清楚。另外,在能夠在高峰應(yīng)用時(shí)段內(nèi),例如就高峰、假日購(gòu)物季節(jié)內(nèi)工作的零售購(gòu)物應(yīng)用程序來(lái)說(shuō),動(dòng)態(tài)增大Web服務(wù)調(diào)用容量的網(wǎng)格環(huán)境中,遠(yuǎn)程克隆和例示W(wǎng)eb服務(wù)會(huì)是一個(gè)關(guān)鍵的進(jìn)程。此外,對(duì)于自動(dòng)利用(leverage)大規(guī)模網(wǎng)格計(jì)算環(huán)境來(lái)說(shuō),遠(yuǎn)程克隆和例示W(wǎng)eb服務(wù)至關(guān)重要。
普通技術(shù)人員會(huì)認(rèn)為遠(yuǎn)程部署和例示W(wǎng)eb服務(wù)和壓縮包含Web應(yīng)用程序的檔案文件,并把壓縮文件傳送給目標(biāo)遠(yuǎn)程企業(yè)服務(wù)幾乎沒(méi)有差別。實(shí)際上,Web服務(wù)的遠(yuǎn)程克隆和例示要復(fù)雜得多。具體地說(shuō),首先必須解決幾個(gè)部署問(wèn)題。更具體地說(shuō),本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到,因克隆Web服務(wù)而存在的WSDL文件不具備關(guān)于宿主服務(wù)器的正確位置綁定。從而,必須為每個(gè)新的Web服務(wù)實(shí)例產(chǎn)生新的WSDL。
另外,雖然通常需要新的WSDL實(shí)現(xiàn)文件,不過(guò)在一些情況下,也可重復(fù)使用現(xiàn)有的WSDL接口文件。另外,當(dāng)在遠(yuǎn)程服務(wù)器上產(chǎn)生新的Web服務(wù)時(shí),另一廠家產(chǎn)生操作有可能同時(shí)對(duì)相同的遠(yuǎn)程主機(jī),克隆和例示相同Web應(yīng)用程序的實(shí)例。由于兩個(gè)克隆操作都會(huì)涉及部署描述符的相同副本,因此重要的是盡管存在相同的部署描述符,仍然要確保部署兩個(gè)獨(dú)立的Web服務(wù)實(shí)例。
特別地,在一些情況下,不同的Web服務(wù)實(shí)例可涉及相同的Web應(yīng)用程序,從而,不同的Web服務(wù)實(shí)例可共用共同的庫(kù)資源。本領(lǐng)域的普通技術(shù)人員會(huì)明白,共用共同的庫(kù)資源在減少通常與Web服務(wù)實(shí)例的例示和操作相關(guān)的計(jì)算資源,即存儲(chǔ)器的數(shù)量方面,具有極大的益處。但是,在其它情況下,由于特殊需要,例如要求特定版本的支持庫(kù),例如XML分析程序的緣故,每個(gè)Web服務(wù)實(shí)例可能需要獨(dú)立的Web應(yīng)用。最后,為了使遠(yuǎn)程Web服務(wù)克隆和例示變成可行的技術(shù),必須采用安全機(jī)制。
發(fā)明內(nèi)容
本發(fā)明是一種克隆和例示W(wǎng)eb服務(wù)的方法。該方法可包括把應(yīng)用程序檔案文件,例如Web應(yīng)用程序檔案文件或Java應(yīng)用程序檔案文件擴(kuò)展到本地主機(jī)或遠(yuǎn)程主機(jī)中的Web應(yīng)用程序容器(container)中。檔案文件可包括至少一個(gè)用于實(shí)現(xiàn)Web服務(wù)的操作文件,該Web服務(wù)的實(shí)現(xiàn)文件,和該Web服務(wù)的部署描述符??僧a(chǎn)生該Web服務(wù)的唯一標(biāo)識(shí)符。隨后,可修改實(shí)現(xiàn)文件,以便引用(reference)該主機(jī)、主機(jī)中的Web應(yīng)用程序,和用于指定該Web服務(wù)的產(chǎn)生的唯一標(biāo)識(shí)符。另外,可修改部署描述符,以便引用用于指定Web服務(wù)的產(chǎn)生的唯一標(biāo)識(shí)符。最后,利用部署描述符,Web服務(wù)可部署在主機(jī)中;并且引用實(shí)現(xiàn)文件的網(wǎng)絡(luò)地址可被轉(zhuǎn)發(fā)給調(diào)用進(jìn)程。
重要的是,通過(guò)產(chǎn)生唯一標(biāo)識(shí)符,以及進(jìn)一步修改實(shí)現(xiàn)文件和部署描述符,以便引用唯一標(biāo)識(shí)符,由于每個(gè)實(shí)例具有唯一的名稱(chēng),因此可避免Web服務(wù)的多個(gè)實(shí)例之間的部署沖突。此外,通過(guò)修改實(shí)現(xiàn)文件和部署描述符,以便引用目標(biāo)主機(jī),而不是檔案文件發(fā)源的主機(jī),可保持正確的Web服務(wù)綁定。最后,通過(guò)允許遠(yuǎn)程主機(jī)把檔案文件擴(kuò)展到選擇的Web應(yīng)用程序容器中,多個(gè)例示W(wǎng)eb服務(wù)可共用相同的Web應(yīng)用程序容器,從而,例示的Web服務(wù)可共用庫(kù)資源。
從調(diào)用進(jìn)程到目標(biāo)主機(jī)克隆和例示W(wǎng)eb服務(wù)的系統(tǒng)可包括布置在第一Web服務(wù)主機(jī)中的Web服務(wù)產(chǎn)生進(jìn)程;和布置在第二Web服務(wù)主機(jī)中的服務(wù)部署處理器。服務(wù)部署處理器可包括把第一Web服務(wù)主機(jī)轉(zhuǎn)發(fā)給第二Web服務(wù)主機(jī)的應(yīng)用程序檔案文件擴(kuò)展到布置在第二Web服務(wù)主機(jī)中的至少一個(gè)Web應(yīng)用程序容器中所選一個(gè)Web應(yīng)用程序容器和相關(guān)Web應(yīng)用程序存儲(chǔ)器上的邏輯單元。服務(wù)部署處理器還可具有為在Web應(yīng)用程序檔案文件內(nèi)定義的Web服務(wù)產(chǎn)生唯一標(biāo)識(shí)符的邏輯單元。
最后,服務(wù)部署處理器還可具有修改包含在應(yīng)用程序檔案文件中的Web服務(wù)的實(shí)現(xiàn)文件和部署描述符,以便引用第二Web服務(wù)主機(jī)和產(chǎn)生的唯一標(biāo)識(shí)符的邏輯單元。重要的是,第一和第二Web主機(jī)都可以是網(wǎng)格主機(jī),例如由OGSA定義的那些網(wǎng)格主機(jī)。可選地,就安全考慮來(lái)說(shuō),系統(tǒng)還可包括虛擬機(jī),遠(yuǎn)程服務(wù)部署處理器可在所述虛擬機(jī)上執(zhí)行。最后,目標(biāo)主機(jī)可以是遠(yuǎn)離第一Web服務(wù)主機(jī)安置的遠(yuǎn)程主機(jī)。
根據(jù)本發(fā)明的方案配置的遠(yuǎn)程主機(jī)可包括Web服務(wù)器和結(jié)合Web服務(wù)器執(zhí)行的應(yīng)用程序服務(wù)器??商峁┮粋€(gè)Web服務(wù)引擎,同時(shí)可提供相關(guān)Web服務(wù)產(chǎn)生進(jìn)程,被配置成與應(yīng)用程序服務(wù)器一起工作。最后,遠(yuǎn)程服務(wù)部署處理器可與應(yīng)用程序服務(wù)器耦合,并由Web服務(wù)引擎配置。遠(yuǎn)程服務(wù)部署處理器可包括把應(yīng)用程序檔案文件擴(kuò)展到選擇的Web應(yīng)用程序容器和相關(guān)的Web應(yīng)用程序存儲(chǔ)體系中的邏輯單元。
遠(yuǎn)程服務(wù)部署處理器還可包括產(chǎn)生應(yīng)用程序檔案文件定義的Web服務(wù)的唯一標(biāo)識(shí)符,并修改Web服務(wù)的實(shí)現(xiàn)文件和部署描述符,以便引用唯一標(biāo)識(shí)符和遠(yuǎn)程主機(jī)的邏輯單元。最后,遠(yuǎn)程服務(wù)部署處理器可包括借助修改的部署描述符,調(diào)用Web服務(wù)產(chǎn)生進(jìn)程,以便例示W(wǎng)eb服務(wù)的邏輯單元。特別地,遠(yuǎn)程主機(jī)可以是網(wǎng)格主機(jī),Web服務(wù)產(chǎn)生進(jìn)程可以是網(wǎng)格服務(wù)廠家產(chǎn)生進(jìn)程。
附圖中表示了目前優(yōu)選的方案和手段,不過(guò)應(yīng)明白,本發(fā)明并不局限于圖中所示的明確方案和手段,其中圖1是其中可根據(jù)本發(fā)明的方案,在遠(yuǎn)程主機(jī)內(nèi)克隆和例示W(wǎng)eb服務(wù)的Web服務(wù)系統(tǒng)的方框圖;圖2是圖解說(shuō)明把Web服務(wù)實(shí)例克隆到圖1的系統(tǒng)中的遠(yuǎn)程主機(jī)中的過(guò)程的流程圖。
具體實(shí)施例方式
本發(fā)明是克隆和例示遠(yuǎn)程主機(jī)內(nèi)的Web服務(wù)的實(shí)例的方法、系統(tǒng)和設(shè)備。根據(jù)本發(fā)明的方案,Web服務(wù)以及相關(guān)部署描述符和實(shí)現(xiàn)文件可在本地主機(jī)內(nèi)被存檔。檔案文件可從本地主機(jī)轉(zhuǎn)發(fā)給遠(yuǎn)程主機(jī),所述遠(yuǎn)程主機(jī)可把檔案文件不定地?cái)U(kuò)展到現(xiàn)有的應(yīng)用程序容器或者新產(chǎn)生的應(yīng)用程序容器之一。
在遠(yuǎn)程主機(jī)中,Web服務(wù)可被賦予唯一的身份,從而,可以修改Web服務(wù)實(shí)現(xiàn)文件,以便引用特殊性,不僅引用遠(yuǎn)程主機(jī)的身份,而且引用遠(yuǎn)程主機(jī)中Web服務(wù)的唯一身份。另外,在需要供Web服務(wù)之用的新的Web服務(wù)接口文件方面,可修改Web服務(wù)實(shí)現(xiàn)文件,以引用遠(yuǎn)程主機(jī)中Web服務(wù)接口文件的位置。
重要的是,可修改與Web服務(wù)應(yīng)用程序相關(guān)的部署描述符,反映Web服務(wù)的唯一身份。一旦部署描述符被修改,那么可把修改后的部署描述符傳送給遠(yuǎn)程主機(jī)中的Web服務(wù)引擎,從而,Web服務(wù)引擎可在遠(yuǎn)程主機(jī)中部署該Web服務(wù)。隨后,可向本地主機(jī)返回關(guān)于修改后的Web服務(wù)實(shí)現(xiàn)文件的網(wǎng)絡(luò)參考,從而本地主機(jī)可根據(jù)需要公布并利用遠(yuǎn)程部署的Web服務(wù)。
特別地,本發(fā)明的方法、系統(tǒng)和設(shè)備適合于在諸如符合OGSA的網(wǎng)格之類(lèi)的Web服務(wù)網(wǎng)格中應(yīng)用。具體地說(shuō),本地主機(jī)可以是其中可駐留廠家產(chǎn)生服務(wù)的網(wǎng)格主機(jī)。廠家產(chǎn)生服務(wù)可把存檔的Web服務(wù)轉(zhuǎn)發(fā)給遠(yuǎn)程安置的網(wǎng)格主機(jī)。根據(jù)本發(fā)明的方案,遠(yuǎn)程安置的網(wǎng)格主機(jī)又可承擔(dān)向Web服務(wù)分配唯一的身份,以及修改實(shí)現(xiàn)文件和部署描述符。
圖1是其中可根據(jù)本發(fā)明的方案,在遠(yuǎn)程主機(jī)內(nèi)克隆和例示W(wǎng)eb服務(wù)應(yīng)用程序的Web服務(wù)系統(tǒng)的方框圖。具體地說(shuō),通過(guò)諸如因特網(wǎng)之類(lèi)的計(jì)算機(jī)通信網(wǎng)絡(luò)110,每個(gè)本地主機(jī)130和遠(yuǎn)程主機(jī)180可通信連接。本地主機(jī)130可包括一個(gè)Web服務(wù)器140,Web服務(wù)器140被配置成處理按照超文本傳送協(xié)議(HTTP)、文件傳送文件(FTP)或者其它這種的操作協(xié)議格式化的那些Web請(qǐng)求。
應(yīng)用程序服務(wù)器150可布置在本地主機(jī)130中,并且可與Web服務(wù)器140一起工作。特別地,應(yīng)用程序服務(wù)器150可借助可被應(yīng)用程序服務(wù)器130訪問(wèn)的所選應(yīng)用程序邏輯單元,提供隨選處理。應(yīng)用程序服務(wù)器在本領(lǐng)域中眾所周知,并且可包括,例如美國(guó)NewYork,Armonk的國(guó)際商用機(jī)器公司生產(chǎn)的WebsphereTM應(yīng)用程序服務(wù)器。
Web服務(wù)引擎160可被配置成和應(yīng)用程序服務(wù)器150一起工作,從而如同本領(lǐng)域眾所周知的那樣,可通過(guò)Web服務(wù)器140和應(yīng)用程序服務(wù)器150公布、產(chǎn)生和調(diào)用Web服務(wù)。特別地,Web服務(wù)產(chǎn)生進(jìn)程170可提供本地克隆和例示W(wǎng)eb服務(wù)所需的邏輯,如同本領(lǐng)域已知那樣,并可根據(jù)本發(fā)明向諸如遠(yuǎn)程主機(jī)180之類(lèi)的另一主機(jī)提供遠(yuǎn)程克隆和例示W(wǎng)eb服務(wù)所需的邏輯。遠(yuǎn)程主機(jī)180可包括至少一個(gè)web應(yīng)用程序容器120,在所述web應(yīng)用程序容器中,可例示W(wǎng)eb服務(wù)。另外,可根據(jù)需要產(chǎn)生其它Web應(yīng)用程序容器,以便適應(yīng)不適于在Web應(yīng)用程序容器120內(nèi)例示的其它Web服務(wù)的例示。
和常規(guī)的Web應(yīng)用程序容器的情況一樣,Web應(yīng)用程序容器120、135可具有相關(guān)的存儲(chǔ)器190,例如WEB-INF目錄或者功能類(lèi)似的這種結(jié)構(gòu),不過(guò)相關(guān)的存儲(chǔ)器190不必必須是WEB-INF目錄。如同本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到的那樣,存儲(chǔ)器190可與Web應(yīng)用程序容器120、135相關(guān)地保存Web服務(wù)部署和操作文件,例如相關(guān)Web服務(wù)執(zhí)行所需的類(lèi)別文件,Web服務(wù)的部署描述符,Web服務(wù)的實(shí)現(xiàn)文件,和Web服務(wù)的接口文件,這里統(tǒng)稱(chēng)為描述符,WSDL文件125。
特別地,遠(yuǎn)程服務(wù)部署處理器100可布置在遠(yuǎn)程主機(jī)180內(nèi)或者與遠(yuǎn)程主機(jī)180相關(guān)地被布置。遠(yuǎn)程服務(wù)部署處理器100可從遠(yuǎn)程服務(wù)產(chǎn)生進(jìn)程接收存檔的Web服務(wù),并且可根據(jù)本發(fā)明的方案,把這種接收的Web服務(wù)本地部署在遠(yuǎn)程主機(jī)180中。最后,就遠(yuǎn)程主機(jī)180可按照和本地主機(jī)130類(lèi)似的方式工作方面來(lái)說(shuō),遠(yuǎn)程主機(jī)180也可包括Web服務(wù)器165、應(yīng)用程序服務(wù)器195、Web服務(wù)引擎185和服務(wù)產(chǎn)生進(jìn)程175。
操作上,可在Web服務(wù)器140中接收請(qǐng)求,并且如果請(qǐng)求和Web服務(wù)的產(chǎn)生相關(guān),那么可把該請(qǐng)求轉(zhuǎn)發(fā)給布置在應(yīng)用程序服務(wù)器150內(nèi)或者與應(yīng)用程序服務(wù)器150相關(guān)地布置的Web服務(wù)引擎160。出于諸如多個(gè)主機(jī)間負(fù)載的均衡之類(lèi)的戰(zhàn)略目的,Web服務(wù)引擎160可確定所請(qǐng)求的Web服務(wù)不應(yīng)被本地克隆和例示,而應(yīng)在遠(yuǎn)程主機(jī)180中克隆和例示。從而,Web服務(wù)產(chǎn)生進(jìn)程170可把請(qǐng)求的Web服務(wù)和相關(guān)描述符、實(shí)現(xiàn)和接口文件一起存檔,并可通過(guò)計(jì)算機(jī)通信網(wǎng)絡(luò)110,把檔案文件145轉(zhuǎn)發(fā)給遠(yuǎn)程主機(jī)180。
遠(yuǎn)程主機(jī)180可在遠(yuǎn)程服務(wù)部署處理器100中接收檔案文件,遠(yuǎn)程服務(wù)部署處理器100可不定地把檔案文件145擴(kuò)展到現(xiàn)有的相關(guān)Web應(yīng)用程序容器120,或新產(chǎn)生的Web應(yīng)用程序容器135這二者之一。在任一情況下,都可利用諸如類(lèi)別文件之類(lèi)的相關(guān)操作文件,和保存在相關(guān)存儲(chǔ)器190中的相關(guān)描述符/WSDL文件125,恰當(dāng)?shù)財(cái)U(kuò)展檔案文件145。重要的是,包含在檔案文件145中的Web服務(wù)可被賦予唯一的實(shí)例標(biāo)識(shí)符,以便本地和遠(yuǎn)程地把該Web服務(wù)實(shí)例和其它Web應(yīng)用程序容器中的其它Web服務(wù)實(shí)例區(qū)分開(kāi)。具體地說(shuō),當(dāng)表示成訪問(wèn)Web服務(wù)實(shí)例所需的網(wǎng)絡(luò)地址的一部分時(shí),初始Web服務(wù)實(shí)例名稱(chēng)和UniqueID的連接可幫助識(shí)別遠(yuǎn)程部署的Web服務(wù)的由來(lái)。
當(dāng)已向Web服務(wù)分配唯一的標(biāo)識(shí)符時(shí),Web服務(wù)實(shí)現(xiàn)文件可被修改,從而不僅反映遠(yuǎn)程網(wǎng)格主機(jī)和選擇的Web應(yīng)用程序容器,而且還反映新的標(biāo)識(shí)符,如同部署描述符所能那樣。此外,就Web服務(wù)接口文件已保存在相關(guān)存儲(chǔ)器190中來(lái)說(shuō),Web服務(wù)實(shí)現(xiàn)文件可被修改,以反映Web服務(wù)接口的位置。最后,可進(jìn)一步修改Web服務(wù)實(shí)現(xiàn)文件,以反映遠(yuǎn)程主機(jī)180,而不是本地主機(jī)130中Web服務(wù)的網(wǎng)絡(luò)地址。一旦Web服務(wù)實(shí)現(xiàn)文件,部署描述符,以及Web服務(wù)接口文件(可選)中每一個(gè)被修改,可把部署描述符提供給Web服務(wù)引擎195,Web服務(wù)引擎195在遠(yuǎn)程主機(jī)180中例示該Web服務(wù)。最后,可把Web服務(wù)實(shí)現(xiàn)文件的網(wǎng)絡(luò)地址155返回給服務(wù)產(chǎn)生進(jìn)程170,從而本地主機(jī)120可根據(jù)需要使用該Web服務(wù)。
重要的是,圖1中圖解說(shuō)明的系統(tǒng)適合于供諸如由OGSA定義,并且例如根據(jù)Globus Project,Globus Toolkit FuturesAnOpen Grid Services Architecture,Globus Tutorial,ArgonneNational Laboratory(2002年1月29日)中規(guī)定的網(wǎng)格結(jié)構(gòu)之用。在這方面,服務(wù)產(chǎn)生進(jìn)程170、175可以是能夠響應(yīng)Web服務(wù)網(wǎng)格中不斷變化的需要,向遠(yuǎn)程安置的網(wǎng)格主機(jī)部署網(wǎng)格服務(wù)的廠家服務(wù)產(chǎn)生網(wǎng)格服務(wù)。從而,一經(jīng)要求,起廠家服務(wù)產(chǎn)生進(jìn)程作用的服務(wù)產(chǎn)生進(jìn)程170可按照和前面說(shuō)明書(shū)中描述的相同方式,把存檔的Web服務(wù)轉(zhuǎn)發(fā)給起遠(yuǎn)程網(wǎng)格主機(jī)作用的遠(yuǎn)程主機(jī)180。
圖2是更具體說(shuō)明把Web服務(wù)實(shí)例克隆到圖1的系統(tǒng)中的遠(yuǎn)程主機(jī)的過(guò)程的流程圖。始于方框205,遠(yuǎn)程服務(wù)部署處理器(下面稱(chēng)為“ShipService”可接收包含預(yù)定用于遠(yuǎn)程部署的Web服務(wù)的檔案文件。在判定方框210中,ShipService可確定遠(yuǎn)程主機(jī)是否具有處理新的Web服務(wù)的可用資源。如果否,那么該過(guò)程可終止。否則,在判定方框215中,可確定包含在檔案文件內(nèi)的Web服務(wù)是否需要新的Web應(yīng)用程序容器,或者Web服務(wù)是否能夠利用現(xiàn)有的Web應(yīng)用程序容器。
如果在判定方框215中,確定需要新的Web應(yīng)用程序,那么在方框220中,可為該Web服務(wù)產(chǎn)生新的Web應(yīng)用程序。一旦在方框220中產(chǎn)生了新的Web應(yīng)用程序容器,那么在方框225中,檔案文件可被展開(kāi)為新Web應(yīng)用程序容器的一部分。另一方面,如果在判定方框215中確定可使用現(xiàn)有的Web應(yīng)用程序,那么在方框230中,檔案文件可被展開(kāi)為現(xiàn)有Web應(yīng)用程序容器的一部分。即,檔案文件內(nèi)的操作文件,例如類(lèi)別文件或Java檔案文件可被復(fù)制到與Web應(yīng)用程序相關(guān)的存儲(chǔ)器中,例如WEB-INF/類(lèi)別和WEB-INF/lib目錄中。
在判定方框235中,一旦Web服務(wù)已被展開(kāi)為Web應(yīng)用程序容器的一部分,那么可確定是否必須為該Web服務(wù)產(chǎn)生新的接口文件,或者該Web服務(wù)的現(xiàn)有接口文件是否滿足需要。如果需要新的接口文件,那么在方框240中,可把包含在檔案文件內(nèi)的接口文件寫(xiě)入WEB-INF目錄??傊?,在方框245中,可根據(jù)包含在檔案文件內(nèi)的實(shí)現(xiàn)文件,產(chǎn)生新的實(shí)現(xiàn)文件。例如,在已按照WSDL格式化實(shí)現(xiàn)文件的情況下,可關(guān)于該Web服務(wù)更新soap地址要素的位置屬性。
通過(guò)組合從部署描述符獲得的Web服務(wù)的初始名稱(chēng),唯一的實(shí)例標(biāo)識(shí)符,和適合于接待新Web服務(wù)的Web應(yīng)用程序容器的URL前綴,可更新位置屬性。例如,在Web服務(wù),MyWebService已部署到遠(yuǎn)程主機(jī)MyRemoteHost上,作為Web應(yīng)用程序容器MyWebApp的一部分的情況下,可修改soap地址要素的位置屬性以反映http//MyRemoteHost80/MyWebApp/services/MyWebService<UniqueID>
雖然由于任何這樣唯一的名稱(chēng)足以滿意需要,不需要連接Web服務(wù)的初始名稱(chēng)和UniqueID,不過(guò)本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到初始Web服務(wù)名稱(chēng)和UniqueID的連接可幫助識(shí)別遠(yuǎn)程部署的Web服務(wù)的由來(lái)。
總之,可在實(shí)現(xiàn)文件內(nèi)修改導(dǎo)入要素的位置屬性,以便反映新產(chǎn)生的或者現(xiàn)有的接口文件。例如,在WSDL環(huán)境中,如果來(lái)自實(shí)現(xiàn)文件的初始導(dǎo)入要素包括下述內(nèi)容<wsdlimportlocation=″http//original.server.com80/MyWebService/MyWebService_Interface.wsdl″namespace=″http//MyWebService-Interface″/>
可如下修改位置屬性<wsdlimport location=″http//remote.server.com80/MyWebApp/MyWebService Interface.wsdl″namespace=″http//MyWebService-Interface″/>
同樣,雖然未示出,唯一的實(shí)例標(biāo)識(shí)符可包含在修改后的位置屬性中,以避免與布置在網(wǎng)絡(luò)周?chē)亩鄠€(gè)Web服務(wù)接口文件的引用沖突。
在方框250,一旦實(shí)現(xiàn)文件已被修改,實(shí)現(xiàn)文件可被寫(xiě)入容器目錄-在本發(fā)明優(yōu)選方面,即是WEB-INF目錄。隨后,在方框255中,可修改Web服務(wù)的部署描述符,以反映唯一的標(biāo)識(shí)符。例如,在初始的部署描述符包括下述內(nèi)容的情況下<pre listing-type="program-listing"><deploymentxmlns=″http//xml.apache.org/axis/wsdd/″xmlnsjava=″http//xml.apache.org/axis/wsdd/providers/java″><service name=″MyWebService″provider=″javaRPC″><parameter name=″className″value=″MyWebService″/><parameter name=″methodName″value=″*″/></service><!-- SIPO <DP n="11"> --><dp n="d11"/></deployment></pre>如下所示,服務(wù)要素的名稱(chēng)屬性可被更新,以包括唯一標(biāo)識(shí)符的適當(dāng)引用<pre listing-type="program-listing"><deploymentxmlns=″http//xml.apache.org/axis/wsdd/″xmlnsjava=″http//xml.apache.org/axis/wsdd/providers/java″><service name=″MyWebService+<uniqueID>″provider=″javaRPC″><parameter name=″className″value=″MyWebService″/><parameter name=″methodName″value=″*″/></service></deployment></pre>隨后,在方框260中,可把Web服務(wù)部署在遠(yuǎn)程主機(jī)中。例如,在Web服務(wù)引擎是ApacheTMAxisTMWeb服務(wù)引擎的情況下,可產(chǎn)生Axis Admin類(lèi)別的新實(shí)例,并且可調(diào)用Process()方法。更特別地,新修改的部署描述符可作為參數(shù)被提供給函數(shù)調(diào)用。在利用修改后的部署描述符部署了Web服務(wù)之后,在方框265中,可把實(shí)現(xiàn)文件的URL返回給遠(yuǎn)程調(diào)用進(jìn)程。一旦遠(yuǎn)程調(diào)用進(jìn)程收到遠(yuǎn)程例示的Web服務(wù)實(shí)例的新實(shí)現(xiàn)文件,調(diào)用進(jìn)程就可根據(jù)需要公布和利用該實(shí)現(xiàn)文件。
重要的是,本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到,這里所述的克隆和例示遠(yuǎn)程Web服務(wù)實(shí)例的過(guò)程會(huì)涉及一定的安全考慮。為了減輕與本發(fā)明的方法相關(guān)的安全風(fēng)險(xiǎn),遠(yuǎn)程服務(wù)部署處理器的調(diào)用可局限于特定用戶、網(wǎng)絡(luò)設(shè)備、進(jìn)程或用戶組。另一方面,布置在遠(yuǎn)程主機(jī)中的應(yīng)用程序服務(wù)器可在虛擬機(jī)之上工作,所述虛擬機(jī)被配置成截取訪問(wèn)主機(jī)計(jì)算資源的系統(tǒng)調(diào)用,和只允許訪問(wèn)按照安全規(guī)則指定的地方。
可用硬件、軟件、或者硬件和軟件的組合來(lái)實(shí)現(xiàn)。可在一個(gè)計(jì)算機(jī)系統(tǒng)中按照集中方式實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng),或者按照在數(shù)個(gè)互連的計(jì)算機(jī)系統(tǒng)間散布不同元件的分布方式,實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。任意類(lèi)型的計(jì)算機(jī)系統(tǒng),或者適合于完成這里描述的方法的其它設(shè)備都適合于實(shí)現(xiàn)這里描述的功能。
硬件和軟件的典型組合可以是具有計(jì)算機(jī)程序的通用計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)程序當(dāng)被裝入和執(zhí)行時(shí),控制計(jì)算機(jī)系統(tǒng)使之完成這里描述的方法。本發(fā)明還可被嵌入計(jì)算機(jī)程序產(chǎn)品中,所述計(jì)算機(jī)程序產(chǎn)品包括能夠?qū)崿F(xiàn)這里描述的方法的所有特征,并且當(dāng)被裝入計(jì)算機(jī)系統(tǒng)時(shí),能夠?qū)崿F(xiàn)這些方法。
本上下文環(huán)境中的計(jì)算機(jī)程序或應(yīng)用程序意味著一組指令的用任意語(yǔ)言、代碼或符號(hào)表示的表達(dá)式,所述一組指令意圖使具有信息處理能力的系統(tǒng)直接或者在下述兩者之一或下述兩者之后實(shí)現(xiàn)特定功能a)轉(zhuǎn)換成另一語(yǔ)言、代碼或符號(hào);b)以不同的材料形式再現(xiàn)。重要的是,在不脫離本發(fā)明的精神或基本性質(zhì)的情況下,可用其它具體形式體現(xiàn)本發(fā)明,因此本發(fā)明的范圍應(yīng)參考下述權(quán)利要求,而不是參考前面的說(shuō)明書(shū)。
權(quán)利要求
1.一種從調(diào)用進(jìn)程到目標(biāo)主機(jī)克隆和例示W(wǎng)eb服務(wù)的方法,所述方法包括下述步驟把應(yīng)用程序檔案文件擴(kuò)展到目標(biāo)主機(jī)中的Web應(yīng)用程序容器中,所述檔案文件包括至少一個(gè)用于實(shí)現(xiàn)Web服務(wù)的操作文件,該Web服務(wù)的實(shí)現(xiàn)文件,和該Web服務(wù)的部署描述符;產(chǎn)生該Web服務(wù)的唯一標(biāo)識(shí)符;首先修改所述實(shí)現(xiàn)文件,以便引用目標(biāo)主機(jī)、目標(biāo)主機(jī)中的Web應(yīng)用程序,和用于指定該Web服務(wù)的所述產(chǎn)生的唯一標(biāo)識(shí)符;接下來(lái)修改所述部署描述符,以便引用用于指定Web服務(wù)的所述產(chǎn)生的唯一標(biāo)識(shí)符;利用所述部署描述符,把Web服務(wù)部署在目標(biāo)主機(jī)中;并且把引用實(shí)現(xiàn)文件的網(wǎng)絡(luò)地址轉(zhuǎn)發(fā)給調(diào)用進(jìn)程。
2.按照權(quán)利要求1所述的方法,其中所述首先修改步驟還包括如果在目標(biāo)主機(jī)中產(chǎn)生了新的接口文件,那么修改所述實(shí)現(xiàn)文件,以便引用目標(biāo)主機(jī)中的所述新的接口文件的步驟。
3.一種從調(diào)用進(jìn)程到遠(yuǎn)程主機(jī)克隆和例示W(wǎng)eb服務(wù)的系統(tǒng),包括布置在第一Web服務(wù)主機(jī)中的Web服務(wù)產(chǎn)生進(jìn)程;和布置在第二Web服務(wù)主機(jī)中的遠(yuǎn)程服務(wù)部署處理器,所述第二Web服務(wù)主機(jī)具有相對(duì)于所述第一Web服務(wù)主機(jī)的遠(yuǎn)程定位;所述遠(yuǎn)程服務(wù)部署處理器具有把由所述第一Web服務(wù)主機(jī)轉(zhuǎn)發(fā)給所述第二Web服務(wù)主機(jī)的應(yīng)用程序檔案文件擴(kuò)展到布置在所述第二Web服務(wù)主機(jī)中的至少一個(gè)Web應(yīng)用程序容器中所選一個(gè)Web應(yīng)用程序容器和相關(guān)Web應(yīng)用程序存儲(chǔ)器上的邏輯單元,所述遠(yuǎn)程服務(wù)部署處理器還具有為在所述應(yīng)用程序檔案文件內(nèi)定義的Web服務(wù)產(chǎn)生唯一標(biāo)識(shí)符的邏輯單元;所述遠(yuǎn)程服務(wù)部署處理器還具有修改包含在所述應(yīng)用程序檔案文件中的所述Web服務(wù)的實(shí)現(xiàn)文件和部署描述符,以便引用所述第二Web服務(wù)主機(jī)和所述產(chǎn)生的唯一標(biāo)識(shí)符的邏輯單元。
4.按照權(quán)利要求3所述的系統(tǒng),其中所述第一和第二Web主機(jī)都是網(wǎng)格主機(jī)。
5.按照權(quán)利要求3所述的系統(tǒng),還包括虛擬機(jī),所述遠(yuǎn)程服務(wù)部署處理器可在所述虛擬機(jī)上執(zhí)行。
6.一種遠(yuǎn)程主機(jī),包括Web服務(wù)器和結(jié)合所述Web服務(wù)器執(zhí)行的應(yīng)用程序服務(wù)器;配置成與所述應(yīng)用程序服務(wù)器一起工作的Web服務(wù)引擎和相關(guān)的Web服務(wù)產(chǎn)生進(jìn)程;和與所述應(yīng)用程序服務(wù)器耦合,并由所述Web服務(wù)引擎配置的遠(yuǎn)程服務(wù)部署處理器,所述遠(yuǎn)程服務(wù)部署處理器包括把應(yīng)用程序檔案文件擴(kuò)展到選擇的Web應(yīng)用程序容器和相關(guān)的Web應(yīng)用程序存儲(chǔ)體系中的邏輯單元,所述遠(yuǎn)程服務(wù)部署處理器還包括產(chǎn)生由所述應(yīng)用程序檔案文件定義的Web服務(wù)的唯一標(biāo)識(shí)符,并修改所述Web服務(wù)的實(shí)現(xiàn)文件和部署描述符,以便引用所述唯一標(biāo)識(shí)符和遠(yuǎn)程主機(jī)的邏輯單元,所述遠(yuǎn)程服務(wù)部署處理器還包括借助一個(gè)修改的所述部署描述符,調(diào)用所述Web服務(wù)產(chǎn)生進(jìn)程,以便例示所述Web服務(wù)的邏輯單元。
7.按照權(quán)利要求6所述的遠(yuǎn)程主機(jī),其中遠(yuǎn)程主機(jī)是網(wǎng)格主機(jī),所述Web服務(wù)產(chǎn)生進(jìn)程是網(wǎng)格服務(wù)廠家產(chǎn)生進(jìn)程。
8.其上保存有從調(diào)用進(jìn)程到目標(biāo)主機(jī)克隆和例示W(wǎng)eb服務(wù)的計(jì)算機(jī)程序的機(jī)器可讀存儲(chǔ)器,計(jì)算機(jī)程序包括當(dāng)被執(zhí)行時(shí),使機(jī)器實(shí)現(xiàn)下述步驟的一組指令把應(yīng)用程序檔案文件擴(kuò)展到目標(biāo)主機(jī)中的Web應(yīng)用程序容器中,所述檔案文件包括至少一個(gè)用于實(shí)現(xiàn)Web服務(wù)的操作文件,該Web服務(wù)的實(shí)現(xiàn)文件,和該Web服務(wù)的部署描述符;產(chǎn)生該Web服務(wù)的唯一標(biāo)識(shí)符;首先修改所述實(shí)現(xiàn)文件,以便引用目標(biāo)主機(jī)、 目標(biāo)主機(jī)中的Web應(yīng)用程序,和用于指定該Web服務(wù)的所述產(chǎn)生的唯一標(biāo)識(shí)符;接下來(lái)修改所述部署描述符,以便引用用于指定Web服務(wù)的所述產(chǎn)生的唯一標(biāo)識(shí)符;利用所述部署描述符,把Web服務(wù)部署在目標(biāo)主機(jī)中;和把引用實(shí)現(xiàn)文件的網(wǎng)絡(luò)地址轉(zhuǎn)發(fā)給調(diào)用進(jìn)程。
9.按照權(quán)利要求8所述的機(jī)器可讀存儲(chǔ)器,其中所述首先修改步驟還包括如果在目標(biāo)主機(jī)中產(chǎn)生了新的接口文件,那么修改所述實(shí)現(xiàn)文件,以便引用目標(biāo)主機(jī)中的所述新的接口文件的步驟。
全文摘要
本發(fā)明是一種從調(diào)用進(jìn)程到目標(biāo)主機(jī)克隆和例示W(wǎng)eb服務(wù)的方法。所述方法可包括把應(yīng)用程序檔案文件擴(kuò)展到目標(biāo)主機(jī)中的Web應(yīng)用程序容器中。檔案文件可包括至少一個(gè)用于實(shí)現(xiàn)Web服務(wù)的操作文件,該Web服務(wù)的實(shí)現(xiàn)文件,和該Web服務(wù)的部署描述符。產(chǎn)生該Web服務(wù)的唯一標(biāo)識(shí)符。隨后,可修改所述實(shí)現(xiàn)文件,以便引用目標(biāo)主機(jī)、目標(biāo)主機(jī)中的Web應(yīng)用程序,和用于指定該Web服務(wù)的產(chǎn)生的唯一標(biāo)識(shí)符。另外,可修改所述部署描述符,以便引用用于指定Web服務(wù)的產(chǎn)生的唯一標(biāo)識(shí)符。最后,可利用部署描述符,把Web服務(wù)部署在目標(biāo)主機(jī)中;并且可把引用實(shí)現(xiàn)文件的網(wǎng)絡(luò)地址轉(zhuǎn)發(fā)給調(diào)用進(jìn)程。
文檔編號(hào)G06F15/16GK1492352SQ0315986
公開(kāi)日2004年4月28日 申請(qǐng)日期2003年9月26日 優(yōu)先權(quán)日2002年10月7日
發(fā)明者道格拉斯·B·戴維斯, 布雷德·B·陶波, 凱斯·A·維爾斯, B 陶波, A 維爾斯, 道格拉斯 B 戴維斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司