專利名稱:使用多個(gè)編程語(yǔ)言顯示和執(zhí)行Web服務(wù)的方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及數(shù)據(jù)處理系統(tǒng),特別是涉及在分布式數(shù)據(jù)處理系統(tǒng)中訪問(wèn)和瀏覽Web服務(wù)。
背景技術(shù):
網(wǎng)絡(luò)化數(shù)據(jù)處理系統(tǒng)的出現(xiàn),特別是稱為因特網(wǎng)的網(wǎng)絡(luò)之網(wǎng),激發(fā)了分布式數(shù)據(jù)處理服務(wù)的引入。在這種系統(tǒng)中,通常經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)遠(yuǎn)程地連接到服務(wù)提供商的客戶機(jī)訪問(wèn)數(shù)據(jù)處理服務(wù),該服務(wù)在遠(yuǎn)程數(shù)據(jù)處理系統(tǒng)上實(shí)現(xiàn),且該系統(tǒng)把數(shù)據(jù)處理行為的結(jié)果返回到客戶機(jī)。使用萬(wàn)維網(wǎng)(WWW)表示的服務(wù)并用其圖形用戶接口(GUI)定位來(lái)提供到該分布式數(shù)據(jù)處理服務(wù)的接口已變得很普遍。
通常,在這種分布式處理系統(tǒng)中,客戶機(jī)發(fā)送請(qǐng)求到服務(wù)器。該請(qǐng)求可包括可能是到請(qǐng)求的特定的服務(wù)的輸入的一個(gè)或多個(gè)參數(shù)。
在服務(wù)器端,系統(tǒng)構(gòu)建Web頁(yè)以返回響應(yīng)到請(qǐng)求客戶機(jī)。服務(wù)器訪問(wèn)包含定義Web頁(yè)的代碼的服務(wù)器頁(yè)。嵌入代碼中、并用于產(chǎn)生頁(yè)面,即HTML腳本的,是服務(wù)器可執(zhí)行來(lái)產(chǎn)生請(qǐng)求的數(shù)據(jù)處理服務(wù)以產(chǎn)生必要的HTML腳本在客戶機(jī)機(jī)器顯示結(jié)果的代碼。
運(yùn)行在客戶機(jī)機(jī)器上的Web瀏覽器是能夠解釋HTML并在連接到客戶機(jī)機(jī)器的、如CRT顯示器的常規(guī)顯示器上顯示頁(yè)面的應(yīng)用程序。市場(chǎng)上能買到的Web瀏覽器包括Netscape Navigator、Mozilla,Internet Explorer、iCab和Opera。以這種方式實(shí)現(xiàn)分布式計(jì)算服務(wù)的技術(shù)可包括動(dòng)態(tài)服務(wù)網(wǎng)頁(yè)(ASP)和JavaTM服務(wù)網(wǎng)頁(yè)(JSP)。另外,這種服務(wù)可經(jīng)由與環(huán)境無(wú)關(guān)的過(guò)程間通信應(yīng)用程序接口(API)訪問(wèn)服務(wù)器端的應(yīng)用軟件以執(zhí)行一些或全部請(qǐng)求的任務(wù),這些接口如DCOM(分布式組件對(duì)象模型)、CORBA(公用對(duì)象請(qǐng)求代理體系)或遠(yuǎn)程方法調(diào)用(RMI)。為了響應(yīng)瀏覽器對(duì)頁(yè)面的執(zhí)行,應(yīng)用軟件產(chǎn)生動(dòng)態(tài)數(shù)據(jù)并把數(shù)據(jù)返回到客戶機(jī),然后客戶機(jī)依照定義頁(yè)面的代碼顯示數(shù)據(jù)。另外,如下面進(jìn)一步描述的那樣,服務(wù)器端應(yīng)用程序不需要位于與頁(yè)面服務(wù)器相同的硬件上,而是可被配置在可能遠(yuǎn)離客戶機(jī)和頁(yè)面服務(wù)器的其他的硬件上。
越來(lái)越多的XML適應(yīng)性系統(tǒng)的部署引起并不局限于如DCOM、RMI或CORBA的特定于對(duì)象模型的協(xié)議的分布式數(shù)據(jù)處理技術(shù)的開發(fā)。稱為可擴(kuò)展標(biāo)記語(yǔ)言的XML是用于描述結(jié)構(gòu)化數(shù)據(jù)的基于標(biāo)簽的標(biāo)記語(yǔ)言。不象HTML,XML標(biāo)簽不是預(yù)定義的。XML是元標(biāo)記語(yǔ)言。XML包括一種機(jī)制——XML模式和數(shù)據(jù)類型定義(DTD)來(lái)傳達(dá)關(guān)于文件的結(jié)構(gòu)和數(shù)據(jù)類型的信息。XML的規(guī)范由萬(wàn)維網(wǎng)聯(lián)盟(W3C)頒布。XML(和它的派生物)使其能夠使用標(biāo)準(zhǔn)因特網(wǎng)協(xié)議來(lái)訪問(wèn)分布式數(shù)據(jù)處理服務(wù)。這種分布式應(yīng)用到應(yīng)用的數(shù)據(jù)處理實(shí)現(xiàn)統(tǒng)稱為Web服務(wù)??捎糜诿枋鯳eb服務(wù)的XML派生物是Web服務(wù)定義語(yǔ)言(WSDL)。WSDL文件定義特定的Web服務(wù)接受和產(chǎn)生的消息。
雖然WSDL是一種用于定義Web服務(wù)的豐富的語(yǔ)言,但是由WSDL描述抽象和評(píng)估Web服務(wù)接口對(duì)可能使用Web服務(wù)的Web頁(yè)面開發(fā)者來(lái)說(shuō)是一個(gè)挑戰(zhàn)。Web開發(fā)者有許多他們可用的途徑來(lái)開發(fā)Web頁(yè)面。即,對(duì)任何Web編程問(wèn)題,有許多用戶可選擇的編程解決方案的域(domain)。例如,一些開發(fā)者可能更喜歡書寫Java服務(wù)網(wǎng)頁(yè)(JSP)標(biāo)簽來(lái)傳遞Web內(nèi)容。其他人可能更喜歡用JavaTM書寫并使用JavaTMservelets來(lái)開發(fā)內(nèi)容。還有一些人可能使用Javascript。這些類型的每種類型的Web開發(fā)者在分析應(yīng)用程序中可能使用的Web服務(wù)時(shí)將有不同的編程視圖(view)和不同的要求。Web服務(wù)的“粗糙的”WSDL描述可能不能有效地滿足這些開發(fā)者的要求。因此,本領(lǐng)域需要評(píng)估Web服務(wù)的機(jī)制,籍此WSDL信息在與開發(fā)者的優(yōu)選的編程領(lǐng)域一致的角度或者說(shuō)視圖上傳送。另外,還需要使用Web服務(wù)的該視圖執(zhí)行對(duì)Web服務(wù)的樣本調(diào)用、并執(zhí)行對(duì)服務(wù)的樣本調(diào)用的機(jī)制。
發(fā)明內(nèi)容
上述問(wèn)題可在一些實(shí)施例中通過(guò)評(píng)估Web服務(wù)接口和執(zhí)行對(duì)服務(wù)的樣本調(diào)用而至少部分地得到解決。本發(fā)明的一種實(shí)施例中,顯示W(wǎng)eb服務(wù)的方法可包括產(chǎn)生Web服務(wù)的描述的數(shù)據(jù)模型的步驟。該方法還可包括把視圖訪問(wèn)器施加到產(chǎn)生的數(shù)據(jù)模型的步驟,其中視圖訪問(wèn)器對(duì)應(yīng)于預(yù)選的域。該方法還可包括響應(yīng)視圖訪問(wèn)器的施加顯示與預(yù)選的域相關(guān)聯(lián)的Web服務(wù)的視圖的步驟。視圖訪問(wèn)器可包括用于封裝在數(shù)據(jù)模型的部件上執(zhí)行的操作的訪問(wèn)器模式。
本發(fā)明將僅通過(guò)舉例并參照附圖加以描述,其中圖1示出了可與本發(fā)明結(jié)合使用的提供Web服務(wù)的網(wǎng)絡(luò)體系結(jié)構(gòu);圖2以流程圖形式示出了依照本發(fā)明的一種實(shí)施例的用于提供Web服務(wù)的多個(gè)視圖的一種方法;圖3以流程圖形式更具體地示出了圖2的方法的一部分;圖4示出了依照本發(fā)明原理的WSDL頁(yè)面的示例性的抽象數(shù)據(jù)模型;圖5.1和5.2以流程圖形式更具體地示出了圖2的方法的另一部分;圖6.1-6.3示出了依照本發(fā)明原理的Web服務(wù)頁(yè)面的視圖的示例性的圖形用戶接口(GUI)視圖;圖7以流程圖形式示出了依照本發(fā)明原理執(zhí)行Web服務(wù)的方法;圖8以方框圖形式示出了依照本發(fā)明的一種實(shí)施例的用于為訪問(wèn)Web服務(wù)產(chǎn)生文件組件的數(shù)據(jù)處理系統(tǒng);以及圖9以方框圖形式示出了依照本發(fā)明的一種實(shí)施例的用于經(jīng)由標(biāo)簽庫(kù)為訪問(wèn)Web服務(wù)產(chǎn)生文件組件以在Web頁(yè)面中產(chǎn)生動(dòng)態(tài)數(shù)據(jù)的數(shù)據(jù)處理系統(tǒng)。
具體實(shí)施例方式
參照?qǐng)D1,示出了依照本發(fā)明原理的可用于訪問(wèn)Web服務(wù)的分布式數(shù)據(jù)處理系統(tǒng)體系結(jié)構(gòu)100。(體系結(jié)構(gòu)100可被理解為分布式數(shù)據(jù)處理系統(tǒng)體系結(jié)構(gòu)的邏輯視圖。換句話說(shuō),Web服務(wù)的服務(wù)器114可視作邏輯上不同的組件,或者在物理上部署在與頁(yè)面服務(wù)器108相同的硬件上,或者在物理上部署在與頁(yè)面服務(wù)器108不同的硬件上。)目前,Web服務(wù)是經(jīng)由遵循例如SOAP的XML消息來(lái)訪問(wèn)的??蛻魴C(jī)瀏覽器104發(fā)起請(qǐng)求106,該請(qǐng)求要經(jīng)由如圖1所示的網(wǎng)絡(luò)如因特網(wǎng)110傳送到由圖1中的頁(yè)面服務(wù)器108示出的目標(biāo)web服務(wù)器。
頁(yè)面服務(wù)器108通過(guò)在響應(yīng)112中返回請(qǐng)求的頁(yè)面以響應(yīng)請(qǐng)求。請(qǐng)求的頁(yè)面可包括要?jiǎng)討B(tài)產(chǎn)生的數(shù)據(jù)。該動(dòng)態(tài)數(shù)據(jù)可在客戶機(jī)機(jī)器上本地產(chǎn)生以響應(yīng)執(zhí)行定義響應(yīng)112中返回的頁(yè)面的腳本的客戶機(jī)瀏覽器104。另外,動(dòng)態(tài)數(shù)據(jù)可由遠(yuǎn)程過(guò)程產(chǎn)生。這還可響應(yīng)在頁(yè)面服務(wù)器108經(jīng)由一個(gè)請(qǐng)求在響應(yīng)112中返回到如web服務(wù)的服務(wù)器114的遠(yuǎn)程服務(wù)器的頁(yè)面中的代碼。執(zhí)行在響應(yīng)112中接收的頁(yè)面后,頁(yè)面中對(duì)應(yīng)的代碼產(chǎn)生要到web服務(wù)的服務(wù)器114的服務(wù)請(qǐng)求116。Web服務(wù)的服務(wù)器114可執(zhí)行web服務(wù)應(yīng)用程序118作為響應(yīng),該應(yīng)用程序產(chǎn)生動(dòng)態(tài)數(shù)據(jù)。數(shù)據(jù)在服務(wù)響應(yīng)120中返回到頁(yè)面服務(wù)器108。數(shù)據(jù)可作為XML數(shù)據(jù)經(jīng)由SOAP消息返回。SOAP是由W3C(萬(wàn)維網(wǎng)聯(lián)盟)頒布的建議標(biāo)準(zhǔn)。(SOAP1.2的起草的規(guī)范可見(jiàn)簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議1.2,http//www.w3.org/TR/SOAP12.)(SOAP是簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議的首字母縮寫;從版本12起就不再是縮寫。)頁(yè)面服務(wù)器108把數(shù)據(jù)合并入頁(yè)面并在響應(yīng)112中把該頁(yè)面發(fā)送到客戶機(jī)瀏覽器。
要請(qǐng)求web服務(wù)產(chǎn)生動(dòng)態(tài)數(shù)據(jù),在響應(yīng)112中發(fā)送到客戶機(jī)瀏覽器104的頁(yè)面必須具有訪問(wèn)web服務(wù)的適當(dāng)?shù)拇a。例如,請(qǐng)求可嵌入SOAP消息中。但是,如前所述,web服務(wù)通常在WSDL文件中定義。產(chǎn)生web服務(wù)的包括SOAP視圖的多個(gè)視圖的方法,將與圖3-5結(jié)合討論。(在特定的域的情形下,視圖可指web服務(wù)WSDL的視圖。除SOAP外,域可包括Java、JSP和Visual Basic。
這里提供的流程圖并不一定指示在本發(fā)明的實(shí)施例中執(zhí)行的操作的順序。用這些流程圖揭示的步驟可被并行執(zhí)行。該流程圖指示了那些可被執(zhí)行以生成可用于產(chǎn)生和顯示W(wǎng)eb服務(wù)的多個(gè)視圖的操作的考慮事項(xiàng)。還應(yīng)注意,顯示的順序是示例性的,并不一定意味著步驟必須按所示的順序執(zhí)行。
現(xiàn)在參照?qǐng)D2,該圖以流程圖形式示出了依照本發(fā)明的一種實(shí)施例提供web服務(wù)的多個(gè)視圖的方法200。在步驟202,接收到定義web服務(wù)的WSDL文件的URI(統(tǒng)一資源標(biāo)識(shí)符)。例如,URI可從運(yùn)行在瀏覽web服務(wù)以在正在開發(fā)的web頁(yè)面中使用web服務(wù)的web頁(yè)面開發(fā)者的客戶機(jī)機(jī)器上的web瀏覽器接收。在步驟204創(chuàng)建如WSDL文件中定義的web服務(wù)的數(shù)據(jù)模型。步驟204將結(jié)合圖3做更具體的描述。
在步驟206,使用來(lái)自步驟204的數(shù)據(jù)模型創(chuàng)建視圖。視圖的產(chǎn)生將結(jié)合圖6進(jìn)一步描述。
在步驟208,步驟206中創(chuàng)建的視圖上的迭代被起動(dòng)。對(duì)每個(gè)視圖,視圖在步驟210中顯示,視圖上的迭代在步驟212終止。過(guò)程200在步驟214結(jié)束。
現(xiàn)在參照?qǐng)D3,該圖更具體地示出了圖2的步驟204。在步驟302,步驟202中接收的URI被檢索,在步驟304確定對(duì)應(yīng)于URI的WSDL文件是否在高速緩沖存儲(chǔ)器中。如本領(lǐng)域普通技術(shù)人員所認(rèn)識(shí)到的,WSDL數(shù)據(jù)模型可與高速緩存Web頁(yè)面類似的方式高速緩存以減小帶寬需求。這樣,先前產(chǎn)生的WSDL文件的數(shù)據(jù)模型可更快地返回并保存了處理帶寬。如果WSDL數(shù)據(jù)模型不在高速緩沖存儲(chǔ)器中,在步驟306WSDL文件被解析并創(chuàng)建其數(shù)據(jù)模型。
WSDL頁(yè)面的數(shù)據(jù)模型可以是頁(yè)面的樹狀表示。參照?qǐng)D4,顯示了簡(jiǎn)化的WSDL頁(yè)面的示例性數(shù)據(jù)模型400。樹包括多個(gè)節(jié)點(diǎn)402-414。節(jié)點(diǎn)402識(shí)別了特定的Web服務(wù)。節(jié)點(diǎn)404、406和408表示被服務(wù)執(zhí)行的操作。操作408要有兩個(gè)輸入,輸入410和輸入412,以及產(chǎn)生輸出414。
回到圖3,在步驟308,數(shù)據(jù)模型被添加到高速緩沖存儲(chǔ)器。
相反地,如果WSDL頁(yè)面在高速緩沖存儲(chǔ)器中,先前高速緩沖存儲(chǔ)的WSDL數(shù)據(jù)模型在步驟310被檢索。在步驟312,數(shù)據(jù)模型被輸入到圖2的步驟206,步驟204終止。
現(xiàn)在參照?qǐng)D5.1和5.2,圖5.1和圖5.2更具體地示出了圖3的步驟306。在步驟502,配置的視圖的列表被檢索。配置的視圖可指訪問(wèn)器模式被實(shí)現(xiàn)的視圖,訪問(wèn)器模式將結(jié)合步驟506進(jìn)一步討論。因此,例如,該配置的視圖的列表可包括Java視圖、JSP視圖、Visual Basic視圖、SOAP視圖和粗糙WSDL視圖。
在步驟504,一個(gè)在視圖列表上的迭代環(huán)被輸入。在步驟506,視圖訪問(wèn)器模式為列表中的每個(gè)視圖被施加于WSDL數(shù)據(jù)模型。如上文描述的,WSDL數(shù)據(jù)模型可表示為樹狀數(shù)據(jù)結(jié)構(gòu),其中它的節(jié)點(diǎn)對(duì)應(yīng)于的web服務(wù)操作,和到其的各輸入和輸出。訪問(wèn)器模式是封裝在數(shù)據(jù)模型的部件上執(zhí)行的操作的機(jī)制。(訪問(wèn)器模式在面向?qū)ο蟮木幊填I(lǐng)域被稱為訪問(wèn)器設(shè)計(jì)模式,或可供選擇地,這里為了簡(jiǎn)單稱為“訪問(wèn)器”)。換句話說(shuō),視圖訪問(wèn)器是封裝WSDL數(shù)據(jù)模型的節(jié)點(diǎn)上的操作的對(duì)象,該操作特別是提供WSDL節(jié)點(diǎn)的視圖的操作。因此,例如,Java視圖訪問(wèn)器可提供WSDL數(shù)據(jù)模型到Java片斷。因此,調(diào)用這個(gè)在如圖4的節(jié)點(diǎn)404的節(jié)點(diǎn)上表示W(wǎng)eb服務(wù)操作的視圖訪問(wèn)器,可提供該節(jié)點(diǎn)到HTML文本域的Java代碼片斷,該片斷表示了特定的操作如何被調(diào)用。類似地,標(biāo)簽庫(kù)視圖訪問(wèn)器可把節(jié)點(diǎn)作為表示操作如何被調(diào)用的標(biāo)簽庫(kù)提供。因此,視圖訪問(wèn)器抽象關(guān)于WSDL數(shù)據(jù)模型(它本身是Web服務(wù)的WSDL描述的表示)中的節(jié)點(diǎn)的信息并把它嵌入到對(duì)應(yīng)的視圖中。注意,依照關(guān)于訪問(wèn)器模式的面向?qū)ο蟮木幊淘?,視圖訪問(wèn)器可以是抽象的母訪問(wèn)器類的具體的子類。(例如,見(jiàn)Erich Gamma,Richard Helm,Ralph Johnson and JohnVlissides,Design Patterns,Elements of Reusable Object-OrientedSoftware(Addison Wesley,1995),第5章,331-344頁(yè))步驟506可被跨整個(gè)WSDL數(shù)據(jù)模型樹的訪問(wèn)器執(zhí)行。在每個(gè)節(jié)點(diǎn),節(jié)點(diǎn)“接受”發(fā)送消息到視圖訪問(wèn)器的視圖訪問(wèn)器。換句話說(shuō),節(jié)點(diǎn)調(diào)用視圖訪問(wèn)器,把它自己傳遞到其中,視圖訪問(wèn)器執(zhí)行它的方法以增加它產(chǎn)生的特定的視圖。這樣,因?yàn)楣?jié)點(diǎn)本身重復(fù)調(diào)用視圖訪問(wèn)器,且節(jié)點(diǎn)自動(dòng)地傳遞到視圖訪問(wèn)器,該視圖訪問(wèn)器可執(zhí)行適當(dāng)?shù)亩鄳B(tài)方法以產(chǎn)生對(duì)應(yīng)于數(shù)據(jù)結(jié)構(gòu)的調(diào)用節(jié)點(diǎn)的視圖,即WSDL文件的樹狀數(shù)據(jù)模型。這些操作在圖5.2的步驟552-562中示出。如圖5所示,WSDL數(shù)據(jù)模型從圖4的步驟412輸入到步驟506。步驟506對(duì)在步驟504輸入的迭代環(huán)的列表中的每個(gè)視圖進(jìn)行重復(fù)。迭代環(huán)在步驟508終止,在步驟510處步驟306結(jié)束。
圖6.1-6.3示出了示例性的GUI窗口602a-c,分別顯示了提供天氣數(shù)據(jù)的Web服務(wù)的JSP標(biāo)簽庫(kù)視圖、JavaTM、以及SOAP消息視圖。(JSP標(biāo)簽庫(kù)在名稱為“Systems and Methods For Accessing WebServices Using A Tag Library”、序號(hào)為10/185,796的同一申請(qǐng)人擁有的未決的美國(guó)專利申請(qǐng)(AUS9-2002-0330US1)中被討論。例如,該天氣服務(wù)可用于檢索天氣數(shù)據(jù)以在Web頁(yè)面中顯示當(dāng)前氣溫和特定的地點(diǎn)的天氣預(yù)報(bào)。該服務(wù)的WSDL文件可規(guī)定,當(dāng)瀏覽器發(fā)送請(qǐng)求以產(chǎn)生數(shù)據(jù),調(diào)用“GetTemperature”方法,需要的輸入是郵遞區(qū)號(hào)或其他的地點(diǎn)標(biāo)識(shí)符。相應(yīng)地,在窗口602a,操作604被規(guī)定為標(biāo)簽庫(kù)中對(duì)“GetTemperature”的調(diào)用。類似地,輸入類型608被規(guī)定為“zipcode”。這樣,服務(wù)將要為其提供天氣數(shù)據(jù)的地點(diǎn)通過(guò)設(shè)置郵遞區(qū)號(hào)被規(guī)定。如下結(jié)合圖7的描述,開發(fā)者可進(jìn)行樣本調(diào)用以測(cè)試服務(wù),值610已被用戶設(shè)置為郵遞區(qū)號(hào)“78758”。如下面討論的,用戶可通過(guò)“點(diǎn)擊”按鈕612來(lái)執(zhí)行服務(wù)。類似地,Java視圖,窗口602b顯示“GetTemperature”方法614,以自變量“zipcode”616作為輸入視圖。以同樣的方式,SOAP視圖,窗口602c包括“GetTemperature”操作618,和SOAP消息正文622中的“zipcode”輸入620。
現(xiàn)在參照?qǐng)D7,該圖以流程圖形式示出了執(zhí)行對(duì)web服務(wù)的樣本調(diào)用的過(guò)程700。過(guò)程700可與依照?qǐng)D3的方法產(chǎn)生的視圖結(jié)合使用。在步驟702,響應(yīng)用戶輸入接收視圖選擇。在步驟704,接收用戶樣本數(shù)據(jù)。該樣本數(shù)據(jù)可分別輸入到視圖窗口,如圖6.1-6.3中示出的視圖窗口602A-602C中的一個(gè)。在步驟706,執(zhí)行請(qǐng)求被接收。用戶可通過(guò)激活“按鈕”或相似的用戶輸入設(shè)備來(lái)發(fā)起執(zhí)行請(qǐng)求。在步驟708,在與步驟702中選定的特定的視圖相關(guān)聯(lián)的域內(nèi)對(duì)應(yīng)的代碼被插入到web服務(wù)頁(yè)面。在步驟710,用戶的客戶機(jī)執(zhí)行頁(yè)面,例如,通過(guò)如圖1的瀏覽器104的瀏覽器。Web頁(yè)面的執(zhí)行以在上文結(jié)合圖1描述的方式產(chǎn)生對(duì)web服務(wù)的請(qǐng)求。該請(qǐng)求包括客戶機(jī)提供的在步驟704接收的示例性的輸入數(shù)據(jù)。為響應(yīng)樣本數(shù)據(jù),如圖1的web服務(wù)應(yīng)用程序118的web服務(wù)應(yīng)用程序產(chǎn)生基于樣本數(shù)據(jù)的結(jié)果,并把如SOAP消息的包含結(jié)果的消息返回到客戶機(jī)顯示器1。
圖8描繪了一種實(shí)施本發(fā)明的典型的硬件環(huán)境,它示出了依照本發(fā)明的數(shù)據(jù)處理系統(tǒng)800的一種示例性的硬件配置。例如,圖1的客戶機(jī)104可依照數(shù)據(jù)處理系統(tǒng)800實(shí)現(xiàn)。系統(tǒng)800包括中央處理單元(CPU)810,如常規(guī)微處理器,和多個(gè)經(jīng)由系統(tǒng)總線812互連的其他的單元。數(shù)據(jù)處理系統(tǒng)800包括隨機(jī)存儲(chǔ)器(RAM)814、只讀存儲(chǔ)器(ROM)816和用于連接如磁盤機(jī)820到總線812的外圍設(shè)備的輸入/輸出(I/O)適配器818、用于連接鍵盤824、鼠標(biāo)826和/或如觸摸屏設(shè)備(未顯示)的到總線812的其他用戶接口設(shè)備的接口適配器822。系統(tǒng)800還包括用于連接數(shù)據(jù)處理系統(tǒng)800到能使數(shù)據(jù)處理系統(tǒng)與其它系統(tǒng)通信的數(shù)據(jù)處理網(wǎng)絡(luò)的通信適配器834,和用于連接總線812到顯示設(shè)備838的顯示適配器836。CPU810可包括其他在這里未顯示的電路,這些電路可能包括在微處理器中常見(jiàn)的電路,例如,執(zhí)行單元、總線接口單元、運(yùn)算邏輯單元等等。CPU810還可位于單個(gè)集成電路上。
顯示器838通過(guò)顯示適配器836連接到系統(tǒng)總線812。如此,用戶能夠通過(guò)鍵盤824、軌跡球832或鼠標(biāo)826輸入到系統(tǒng)以及經(jīng)由揚(yáng)聲器828和顯示器838接收來(lái)自系統(tǒng)的輸出。
本發(fā)明的優(yōu)選實(shí)現(xiàn)包括作為程序化執(zhí)行這里描述的一種方法或成套方法的計(jì)算機(jī)系統(tǒng)的實(shí)現(xiàn),和作為計(jì)算機(jī)程序產(chǎn)品。根據(jù)計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn),執(zhí)行該方法或成套方法的指令集位于如上面的描述而配置的一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)的隨機(jī)存儲(chǔ)器814中。這些指令集結(jié)合執(zhí)行它們的系統(tǒng)組件可產(chǎn)生多個(gè)Web服務(wù)視圖,并執(zhí)行對(duì)Web服務(wù)的樣本調(diào)用。直至被計(jì)算機(jī)系統(tǒng)要求,指令集可作為計(jì)算機(jī)程序產(chǎn)品存儲(chǔ)在另一個(gè)計(jì)算機(jī)存儲(chǔ)器中,例如,硬盤驅(qū)動(dòng)器820(它可包括可擦除存儲(chǔ)器,如在硬盤驅(qū)動(dòng)器820中偶然使用的光盤或軟盤)。另外,計(jì)算機(jī)程序產(chǎn)品還能存儲(chǔ)在其他計(jì)算機(jī),并在需要時(shí)被通過(guò)網(wǎng)絡(luò)或如因特網(wǎng)的外部網(wǎng)絡(luò)傳送到用戶的工作站。本領(lǐng)域技術(shù)人員將理解,指令集的物理存儲(chǔ)物理地改變了存儲(chǔ)介質(zhì),所以介質(zhì)承載了計(jì)算機(jī)可讀信息。該改變可以是電的、磁的、化學(xué)的、生物的、或其他一些物理變化。當(dāng)方便以指令、符號(hào)、字符等術(shù)語(yǔ)描述本發(fā)明時(shí),讀者應(yīng)記住這些所有的和相似的術(shù)語(yǔ)應(yīng)和適當(dāng)?shù)奈锢聿考嚓P(guān)聯(lián)。
注意,本發(fā)明可能描述如比較、確認(rèn)、選擇、識(shí)別的術(shù)語(yǔ),或其他能與人力操作員相關(guān)聯(lián)的術(shù)語(yǔ)。但是,對(duì)形成至少一種實(shí)施例的一部分的至少多個(gè)這里描述的操作,都不需要人力操作員的動(dòng)作。描述的操作大部分是處理電信號(hào)以產(chǎn)生其他電信號(hào)的機(jī)器操作。
圖9示出了依照主題發(fā)明的數(shù)據(jù)處理系統(tǒng)900的示例性的硬件配置。例如,圖1的頁(yè)面服務(wù)器108和Web應(yīng)用程序服務(wù)器114可依照數(shù)據(jù)處理系統(tǒng)900加以實(shí)現(xiàn)。系統(tǒng)900包括中央處理單元(CPU)910,如常規(guī)微處理器,和許多經(jīng)由系統(tǒng)總線912相互連接的其他的單元。數(shù)據(jù)處理系統(tǒng)900包括隨機(jī)存儲(chǔ)器(RAM)914、只讀存儲(chǔ)器(ROM)916和用于連接外圍設(shè)備的輸入/輸出(I/O)適配器918,如磁盤機(jī)920到總線912。系統(tǒng)900還包括用于連接數(shù)據(jù)處理系統(tǒng)900和數(shù)據(jù)處理網(wǎng)絡(luò),使數(shù)據(jù)處理系統(tǒng)能夠和其他系統(tǒng)通信的通信適配器934。CPU910可包括其他在這里未顯示的電路,該電路將包括在微處理器中常見(jiàn)的電路,例如,執(zhí)行單元、總線接口單元、運(yùn)算邏輯單元等等。CPU910還可位于單個(gè)集成電路上。
本發(fā)明的優(yōu)選實(shí)現(xiàn)方案包括作為被編程以執(zhí)行這里描述的一種方法或多種方法的計(jì)算機(jī)系統(tǒng)的實(shí)現(xiàn)方案,和作為計(jì)算機(jī)程序產(chǎn)品的實(shí)現(xiàn)方案。根據(jù)計(jì)算機(jī)系統(tǒng)的實(shí)現(xiàn)方案,執(zhí)行該一種方法或多種方法的指令集位于如上所述總體上配置的一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)的隨機(jī)存儲(chǔ)器914中。這些指令集結(jié)合執(zhí)行它們的系統(tǒng)組件可執(zhí)行對(duì)Web服務(wù)的樣本調(diào)用。指令集可作為計(jì)算機(jī)程序產(chǎn)品存儲(chǔ)在另一個(gè)計(jì)算機(jī)存儲(chǔ)器,例如硬盤驅(qū)動(dòng)器920(它可包括可拆卸存儲(chǔ)器,如在硬盤驅(qū)動(dòng)器920中可能會(huì)使用的光盤或軟盤),直至被計(jì)算機(jī)系統(tǒng)要求為止。另外,計(jì)算機(jī)程序產(chǎn)品還可存儲(chǔ)在其他計(jì)算機(jī),并在需要時(shí)通過(guò)網(wǎng)絡(luò)或如因特網(wǎng)的外部網(wǎng)絡(luò)傳送到用戶的工作站。本領(lǐng)域技術(shù)人員將理解,指令集的物理存儲(chǔ)物理上改變了存儲(chǔ)于其上的介質(zhì),以使介質(zhì)承載計(jì)算機(jī)可讀信息。該改變可以是電的、磁的、化學(xué)的、生物的、或其他一些物理變化。雖然用指令、符號(hào)、字符等術(shù)語(yǔ)描述本發(fā)明是很方便的,讀者應(yīng)記住所有這些術(shù)語(yǔ)和類似的術(shù)語(yǔ)應(yīng)和適當(dāng)?shù)奈锢聿考嚓P(guān)聯(lián)。
權(quán)利要求
1.一種顯示W(wǎng)eb服務(wù)的方法,包括產(chǎn)生(204)描述Web服務(wù)的數(shù)據(jù)模型;施加(208)視圖訪問(wèn)器到數(shù)據(jù)模型,其中視圖訪問(wèn)器對(duì)應(yīng)于預(yù)選的域;以及響應(yīng)施加視圖訪問(wèn)器的步驟顯示(210)與預(yù)選的域相關(guān)聯(lián)的Web服務(wù)的視圖,其中視圖訪問(wèn)器包括用于封裝要在數(shù)據(jù)模型的部件上執(zhí)行的操作的訪問(wèn)器模式。
2.根據(jù)權(quán)利要求1的方法,還包括迭代(208)施加視圖訪問(wèn)器到數(shù)據(jù)模型并對(duì)于每個(gè)對(duì)應(yīng)于預(yù)選的一組域中的一個(gè)域的視圖顯示(210)Web服務(wù)的視圖的步驟。
3.根據(jù)權(quán)利要求1的方法,其中數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括對(duì)應(yīng)于Web服務(wù)的操作的至少一個(gè)節(jié)點(diǎn)(408),和對(duì)應(yīng)于操作的節(jié)點(diǎn)的至少一個(gè)子節(jié)點(diǎn)(410,412,414),該子節(jié)點(diǎn)對(duì)應(yīng)于Web服務(wù)的輸入和輸出之一。
4.根據(jù)權(quán)利要求3的方法,其中施加視圖訪問(wèn)器的步驟還包括傳遞(558)至少一個(gè)節(jié)點(diǎn)和至少一個(gè)子節(jié)點(diǎn)到視圖訪問(wèn)器中;以及填充(560)對(duì)應(yīng)于預(yù)選的域的視圖以產(chǎn)生表示傳遞進(jìn)的節(jié)點(diǎn)的對(duì)應(yīng)的視圖。
5.根據(jù)權(quán)利要求1的方法,還包括響應(yīng)顯示視圖的步驟接收(704)用戶輸入樣本數(shù)據(jù);以及使用該樣本數(shù)據(jù)執(zhí)行(710)Web服務(wù)。
6.一種嵌入機(jī)器可讀存儲(chǔ)介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,包括用于執(zhí)行權(quán)利要求1至5的任何一個(gè)的方法的步驟的編程指令。
7.一種顯示W(wǎng)eb服務(wù)的數(shù)據(jù)處理系統(tǒng),包括用于產(chǎn)生(204)描述Web服務(wù)的數(shù)據(jù)模型的電路;用于施加(208)視圖訪問(wèn)器到數(shù)據(jù)模型的電路,其中視圖訪問(wèn)器對(duì)應(yīng)于預(yù)選的域;以及用于響應(yīng)施加視圖訪問(wèn)器的步驟顯示(210)與預(yù)選的域相關(guān)聯(lián)的Web服務(wù)的視圖的電路,其中視圖訪問(wèn)器包括用于封裝要在數(shù)據(jù)模型的部件上執(zhí)行的操作的訪問(wèn)器模式。
8.根據(jù)權(quán)利要求7的系統(tǒng),還包括用于迭代(208)施加視圖訪問(wèn)器到數(shù)據(jù)模型和對(duì)于每個(gè)對(duì)應(yīng)于預(yù)選的一組域中的一個(gè)域的視圖顯示(210)Web服務(wù)的視圖的操作的電路。
9.根據(jù)權(quán)利要求7的系統(tǒng),其中數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括對(duì)應(yīng)于Web服務(wù)的操作的至少一個(gè)節(jié)點(diǎn)(408),和對(duì)應(yīng)于操作的節(jié)點(diǎn)的至少一個(gè)子節(jié)點(diǎn)(410,412,414),該子節(jié)點(diǎn)對(duì)應(yīng)于Web服務(wù)的輸入和輸出之一。
10.根據(jù)權(quán)利要求9的系統(tǒng),其中用于施加視圖訪問(wèn)器的電路還包括用于傳遞(558)至少一個(gè)節(jié)點(diǎn)和至少一個(gè)子節(jié)點(diǎn)到視圖訪問(wèn)器中的電路;以及用于填充(560)對(duì)應(yīng)于預(yù)選的域的視圖以產(chǎn)生表示傳遞進(jìn)的節(jié)點(diǎn)的對(duì)應(yīng)的視圖的電路。
11.根據(jù)權(quán)利要求7的系統(tǒng),還包括用于響應(yīng)顯示視圖的步驟接收(704)用戶輸入樣本數(shù)據(jù)的電路;以及用于使用視圖和樣本數(shù)據(jù)執(zhí)行(710)調(diào)用Web服務(wù)的Web頁(yè)面的電路。
全文摘要
Web服務(wù)可以通過(guò)產(chǎn)生描述Web服務(wù)的數(shù)據(jù)模型來(lái)顯示。視圖訪問(wèn)器可被施加到產(chǎn)生的數(shù)據(jù)模型,其中視圖訪問(wèn)器對(duì)應(yīng)于預(yù)選的域。與預(yù)選的域相關(guān)聯(lián)的Web服務(wù)的視圖可響應(yīng)視圖訪問(wèn)器的施加被顯示。視圖訪問(wèn)器可包括用于封裝要在數(shù)據(jù)模型的部件上執(zhí)行的操作的訪問(wèn)器模式。
文檔編號(hào)G06F13/00GK1653456SQ03811171
公開日2005年8月10日 申請(qǐng)日期2003年4月15日 優(yōu)先權(quán)日2002年6月28日
發(fā)明者克雷格·亨利·貝克, 斯圖爾特·厄爾勒·尼克拉斯, 韋恩·埃勒莫·維克納爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司