專利名稱:服務(wù)器設(shè)備和服務(wù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種服務(wù)器設(shè)備,服務(wù)方法,程序和記錄介質(zhì)。更具體地說,本發(fā)明涉及關(guān)于多個元素中的每個元素,接收包括描述元素的名稱及其內(nèi)容的結(jié)構(gòu)化文檔的處理請求消息,根據(jù)處理請求消息執(zhí)行處理,并返回處理響應(yīng)消息的服務(wù)器設(shè)備,服務(wù)方法,程序和記錄介質(zhì)。
背景技術(shù):
迄今,已提供一種Web服務(wù)系統(tǒng),該Web服務(wù)系統(tǒng)借助與網(wǎng)絡(luò)連接的服務(wù)器設(shè)備提供服務(wù),并組合客戶機設(shè)備上的各種Web服務(wù),從而使得能夠構(gòu)成軟件。在該Web服務(wù)系統(tǒng)中,客戶機設(shè)備向服務(wù)器設(shè)備傳送包括描述將賦予Web服務(wù)的變元(argument)的XML(可擴展置標語言)文檔的SOAP(簡單對象訪問協(xié)議)請求消息,并請求對Web服務(wù)的處理。當(dāng)收到SOAP請求消息時,服務(wù)器設(shè)備執(zhí)行對Web服務(wù)的處理,并把包括描述Web服務(wù)的返回值的XML文檔的SOAP響應(yīng)消息返回給客戶機設(shè)備。根據(jù)該Web服務(wù)系統(tǒng),因特網(wǎng)上的服務(wù)提供商提供的各種Web服務(wù)被組合,從而使得能夠有效開發(fā)軟件。此外,能夠構(gòu)成使多個企業(yè)的信息系統(tǒng)彼此相關(guān)聯(lián)的分布式系統(tǒng)。
提供Web服務(wù)的通用服務(wù)器設(shè)備包括分析SOAP請求消息的語法的流式語法分析器,和根據(jù)語法分析的結(jié)果,實現(xiàn)對Web服務(wù)的處理的請求處理單元。從而,請求處理單元包括根據(jù)語法分析的結(jié)果,產(chǎn)生輸入對象,例如包括將賦予Web服務(wù)的參數(shù)的Java對象,并把輸出對象,例如包括Web服務(wù)的返回值的Java對象轉(zhuǎn)換成SOAP響應(yīng)消息的消息轉(zhuǎn)換單元,和根據(jù)從消息轉(zhuǎn)換單元接收的輸入對象,實現(xiàn)對服務(wù)器應(yīng)用程序的處理,并把處理結(jié)果作為輸出對象返回給消息轉(zhuǎn)換單元的應(yīng)用程序處理單元。
為了減少上述服務(wù)器設(shè)備的響應(yīng)時間,公開了在專利文獻1和非專利文獻1中表示的高速緩存技術(shù)。
專利文獻1公開一種具有設(shè)置在上述通用服務(wù)器設(shè)備中的流式語法分析器之前的高速緩存機構(gòu)。在該服務(wù)器設(shè)備中,高速緩存機構(gòu)首先分析接收的SOAP請求消息,并確定對應(yīng)的SOAP響應(yīng)消息是否被高速緩存。之后,如果對應(yīng)的SOAP響應(yīng)消息被高速緩存,那么高速緩存機構(gòu)返回高速緩存的SOAP響應(yīng)消息。同時,如果對應(yīng)的SOAP響應(yīng)消息未被高速緩存,那么高速緩存機構(gòu)把SOAP請求消息發(fā)送給流式語法分析器,并允許流式語法分析器和服務(wù)器應(yīng)用程序處理單元執(zhí)行處理。
非專利文獻1公開一種在上述通用服務(wù)器設(shè)備中的請求處理單元中的消息轉(zhuǎn)換單元和應(yīng)用程序處理單元之間設(shè)置高速緩存機構(gòu)的方法。在該方法中,流式語法分析器分析接收的SOAP請求消息,消息轉(zhuǎn)換單元根據(jù)語法分析的結(jié)果產(chǎn)生輸入對象。隨后,高速緩存機構(gòu)確定對應(yīng)于輸入對象的輸出對象是否被高速緩存。之后,如果對應(yīng)的輸出對象被高速緩存,那么高速緩存機構(gòu)允許消息轉(zhuǎn)換單元把高速緩存的輸出對象轉(zhuǎn)換成SOAP響應(yīng)消息,并返回該消息。同時,如果對應(yīng)的輸出對象未被高速緩存,那么高速緩存機構(gòu)把輸入對象發(fā)送給服務(wù)器應(yīng)用程序處理單元,以實現(xiàn)對Web服務(wù)的處理。
日本專利特許公開No.2003-271441[非專利文獻1]Brian D.Goodman,“Accelerate your Web serviceswith caching,”[在線],2002年12月1日,國際商用機器,[2004年1月27日從因特網(wǎng)檢索到][非專利文獻2]Bob Atkinson等,“Web services Security(WS-Security),”[在線],2002年5月23日,國際商用機器,[2004年1月27日從因特網(wǎng)檢索到]在專利文獻1的高速緩存方法中,在流式語法分析器的處理前后提供高速緩存機構(gòu)。因此,和非專利文獻1相比,具有高速緩存命中時的響應(yīng)時間較短的優(yōu)點。同時,高速緩存機構(gòu)在某種程度上分析SOAP請求消息,以確定高速緩存是被命中還是未被命中。當(dāng)高速緩存未被命中時,高速緩存機構(gòu)把SOAP請求消息發(fā)送給請求處理單元。因此,高速緩存機構(gòu)中的分析變得無用,增大了響應(yīng)時間。
在非專利文獻2的高速緩存方法中,高速緩存機構(gòu)高速緩存與流式語法分析器和消息轉(zhuǎn)換單元產(chǎn)生的輸入對象對應(yīng)的輸出對象。于是,不必僅僅為了確定高速緩存是被命中還是未被命中而分析SOAP請求消息,從而使得能夠控制當(dāng)高速緩存未被命中時,響應(yīng)時間的增大。同時,當(dāng)高速緩存被命中時,還必須產(chǎn)生輸入對象,因此,與專利文獻1的高速緩存方法相比,響應(yīng)時間變長。
發(fā)明內(nèi)容
就此而論,本發(fā)明的一個目的是提供一種能夠解決上述問題的服務(wù)器設(shè)備,服務(wù)方法,程序和記錄介質(zhì)。通過組合在權(quán)利要求的范圍中的獨立權(quán)利要求中描述的特征,實現(xiàn)該發(fā)明目的。此外,從屬權(quán)利要求限定本發(fā)明的其它優(yōu)選的具體例子。
根據(jù)本發(fā)明的第一方面,提供一種關(guān)于多個元素中的每個元素,接收包括描述元素的名稱及其內(nèi)容的結(jié)構(gòu)化文檔的處理請求消息,根據(jù)處理請求消息執(zhí)行處理,并返回處理響應(yīng)消息的服務(wù)器設(shè)備;關(guān)于該服務(wù)器設(shè)備的服務(wù)方法;程序;和記錄介質(zhì)。具體地說,該服務(wù)器設(shè)備包括根據(jù)包括在接收的第一處理請求消息中的多個元素的內(nèi)容執(zhí)行處理,并產(chǎn)生(create)第一處理響應(yīng)消息的請求處理單元;與根據(jù)包括在第一處理請求消息中的多個元素之中的至少一個預(yù)定密鑰元素(key element)的內(nèi)容產(chǎn)生的第一密鑰相關(guān)聯(lián)地高速緩存第一處理響應(yīng)消息的高速緩存單元;分析接收的第二處理請求消息,并順序抽取多個元素的內(nèi)容的消息分析單元;根據(jù)包括在第二處理請求消息中的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰的密鑰產(chǎn)生單元;和當(dāng)?shù)诙荑€與第一密鑰一致時,返回在高速緩存單元中高速緩存的第一處理響應(yīng)消息,作為第二處理請求消息的處理響應(yīng)消息,當(dāng)?shù)诙荑€與第一密鑰不一致時,把消息分析單元抽取的多個元素的內(nèi)容通知請求處理單元,允許請求處理單元根據(jù)多個元素的內(nèi)容執(zhí)行處理和產(chǎn)生第二處理響應(yīng)消息,并返回產(chǎn)生的第二處理響應(yīng)消息的高速緩存管理單元。
注意本發(fā)明的上述概述沒有列舉本發(fā)明的所有必要特征。因此,上面描述的多組特征的子組合也能夠變成本發(fā)明。
根據(jù)本發(fā)明,在通過通信網(wǎng)絡(luò)向客戶機設(shè)備提供服務(wù)的服務(wù)器設(shè)備中,能夠提供有效的高速緩存功能。
結(jié)合附圖,參考下面的說明,可更完整地理解本發(fā)明及其優(yōu)點。
圖1表示根據(jù)本發(fā)明一個實施例的Web服務(wù)系統(tǒng)10的結(jié)構(gòu)。
圖2表示根據(jù)本發(fā)明實施例的服務(wù)器設(shè)備110的結(jié)構(gòu)。
圖3表示根據(jù)本發(fā)明實施例的服務(wù)器設(shè)備110的處理流程。
圖4表示根據(jù)本發(fā)明實施例的處理請求消息400的例子。
圖5表示根據(jù)本發(fā)明實施例的輸入類別500的類別定義的例子。
圖6表示根據(jù)本發(fā)明實施例的輸出類別600的類別定義的例子。
圖7表示根據(jù)本發(fā)明實施例的處理響應(yīng)消息700的例子。
圖8表示根據(jù)本發(fā)明實施例的修改例子的服務(wù)器設(shè)備110的結(jié)構(gòu)。
圖9表示根據(jù)本發(fā)明實施例的修改例子的服務(wù)器設(shè)備110的處理流程。
圖10表示根據(jù)本發(fā)明實施例的計算機900的硬件結(jié)構(gòu)。
具體實施例方式
下面將根據(jù)本發(fā)明的一個實施例,說明本發(fā)明。但是,和權(quán)利要求的范圍相符的本發(fā)明并不局限于下述實施例。此外,本發(fā)明的解決手段并不總是需要在該實施例中描述的特征的所有組合。
圖1表示根據(jù)該實施例的Web服務(wù)系統(tǒng)10的結(jié)構(gòu)。Web服務(wù)系統(tǒng)10包括根據(jù)用戶的指令,在客戶機上執(zhí)行應(yīng)用程序的一個或多個客戶機設(shè)備100;在Web服務(wù)等的服務(wù)器上執(zhí)行應(yīng)用程序的一個或多個服務(wù)器設(shè)備110;和連接客戶機100和服務(wù)器設(shè)備110的通信網(wǎng)絡(luò)120,例如因特網(wǎng)和企業(yè)內(nèi)部網(wǎng)。
每個客戶機設(shè)備100通過組合由在客戶機設(shè)備100上執(zhí)行的客戶機應(yīng)用程序,以及在一個或多個服務(wù)器設(shè)備110上執(zhí)行的一個或多個服務(wù)器應(yīng)用程序提供的服務(wù),實現(xiàn)客戶機設(shè)備100的用戶規(guī)定的處理。更具體地說,客戶機設(shè)備100通過通信網(wǎng)絡(luò)120,把處理請求消息傳送給服務(wù)器設(shè)備110,并要求服務(wù)器設(shè)備110根據(jù)處理請求消息,執(zhí)行對服務(wù)的處理。之后,客戶機設(shè)備100通過通信網(wǎng)絡(luò)120,接收已執(zhí)行對服務(wù)的處理的服務(wù)器設(shè)備110傳送的處理響應(yīng)消息,并獲得服務(wù)器設(shè)備110執(zhí)行的處理的結(jié)果。
每個服務(wù)器設(shè)備110通過通信網(wǎng)絡(luò)120接收來自客戶機設(shè)備100的處理請求消息,根據(jù)處理請求消息執(zhí)行對服務(wù)的處理,并返回包括處理結(jié)果的處理響應(yīng)消息。這里,處理請求消息和處理響應(yīng)消息包括結(jié)構(gòu)化文檔,例如XML文檔,在所述結(jié)構(gòu)化文檔中,描述多個元素中的每個元素的元素名稱及其內(nèi)容。
圖2表示根據(jù)該實施例的服務(wù)器設(shè)備110的結(jié)構(gòu)。服務(wù)器設(shè)備110包括消息分析單元200,高速緩存處理單元210和請求處理單元245。高速緩存處理單元210通過利用消息分析單元200的分析結(jié)果,實現(xiàn)高速緩存。從而,服務(wù)器設(shè)備110能夠具有和專利文獻1的高速緩存方法相同的高速緩存命中時的響應(yīng)時間。同時,不進行不必要的語法分析,從而與專利文獻1的高速緩存方法相比,能夠縮短高速緩存未命中時的響應(yīng)時間。
消息分析單元200是流式語法分析器,例如SAX(用于XML的簡單API)的一個例子。消息分析單元200分析接收的處理請求消息,并順序抽取包括在處理請求消息中的多個元素的內(nèi)容。
高速緩存處理單元210通過把消息分析單元200抽取的多個元素中的至少一個元素的內(nèi)容作為密鑰,高速緩存處理響應(yīng)消息。高速緩存處理單元210包括元素內(nèi)容登記單元215,元素內(nèi)容數(shù)據(jù)庫(元素內(nèi)容DB)220,密鑰產(chǎn)生單元225,設(shè)置文件存儲單元230,高速緩存單元235和高速緩存管理單元240。
元素內(nèi)容登記單元215把消息分析單元200抽取的多個元素的相應(yīng)內(nèi)容登記到元素內(nèi)容DB 220中。元素內(nèi)容DB 220是臨時保留元素內(nèi)容登記單元215記錄的多個元素的相應(yīng)內(nèi)容的緩沖器。密鑰產(chǎn)生單元225根據(jù)保留在元素內(nèi)容DB 220中的多個元素之中,由保存在設(shè)置元件存儲單元230中的設(shè)置文件預(yù)先確定的密鑰元素的內(nèi)容,產(chǎn)生處理請求消息的密鑰。高速緩存單元235與處理請求消息的密鑰相關(guān)聯(lián)地高速緩存和處理請求消息對應(yīng)的已返回處理響應(yīng)消息。
如果與新接收的處理請求消息的密鑰一致的密鑰被保存在高速緩存單元235中,那么高速緩存管理單元240判斷該高速緩存被命中。隨后,高速緩存管理單元240把高速緩存單元235高速緩存的與該密鑰相關(guān)聯(lián)的處理響應(yīng)消息返回給作為請求者的服務(wù)器設(shè)備110。同時,如果與新接收的處理請求消息的密鑰一致的密鑰被保存在高速緩存單元235中,那么高速緩存管理單元240判斷高速緩存未被命中。因此,高速緩存管理單元240把保留在元素內(nèi)容DB 220中的多個元素的相應(yīng)內(nèi)容通知請求處理單元245。
請求處理單元245通過把包括在處理請求消息中的多個元素的內(nèi)容用作輸入,執(zhí)行對Web服務(wù)的處理。請求處理單元245包括消息轉(zhuǎn)換單元250和應(yīng)用程序處理單元270。消息轉(zhuǎn)換單元250包括輸入對象產(chǎn)生單元255和處理響應(yīng)消息產(chǎn)生單元260。根據(jù)從高速緩存處理單元210接收的多個元素的內(nèi)容,輸入對象產(chǎn)生單元255產(chǎn)生包括將賦予服務(wù)器應(yīng)用程序的參數(shù)的輸入對象,以便執(zhí)行對Web服務(wù)的處理,并把輸入對象提供給應(yīng)用程序處理單元270。處理響應(yīng)消息產(chǎn)生單元260接收作為應(yīng)用程序處理單元270對服務(wù)器應(yīng)用程序的處理的結(jié)果的輸出對象,把輸出對象轉(zhuǎn)換成處理響應(yīng)消息,并通過高速緩存處理單元210,把消息輸出給服務(wù)器設(shè)備110。
應(yīng)用程序處理單元270根據(jù)從消息轉(zhuǎn)換單元250輸入的輸入對象,執(zhí)行對服務(wù)器應(yīng)用程序的處理,并把處理結(jié)果作為輸出對象返回給消息轉(zhuǎn)換單元250。
該實施例中,通過在一個或多個服務(wù)器計算機上,執(zhí)行提供Web服務(wù)的中間件程序和在中間件上執(zhí)行的服務(wù)器應(yīng)用程序,實現(xiàn)上述服務(wù)器設(shè)備110。
圖3表示根據(jù)該實施例的服務(wù)器設(shè)備110的處理流程。
首先,當(dāng)收到客戶機設(shè)備100傳送的處理請求消息時(S300),消息分析單元200分析處理請求消息,順序抽取包括在處理請求消息中的多個元素的內(nèi)容,并向高速緩存處理單元210通知所述內(nèi)容(S305)。更具體地說,消息分析單元200通過執(zhí)行包括在處理請求消息中的結(jié)構(gòu)化文檔的語法分析,并且每次抽取多個元素的相應(yīng)內(nèi)容時,調(diào)用實現(xiàn)元素內(nèi)容登記單元215的函數(shù)(function),把相應(yīng)元素的內(nèi)容通知高速緩存處理單元210。
隨后,元素內(nèi)容登記單元215把由自消息分析單元200的函數(shù)調(diào)用通知的多個元素的相應(yīng)內(nèi)容記錄到元素內(nèi)容DB 220中(S310)。更具體地說,元素內(nèi)容登記單元215把每次抽取多個元素的相應(yīng)內(nèi)容時,由自消息分析單元200的函數(shù)調(diào)用所調(diào)用的,并由該函數(shù)調(diào)用通知的多個元素的相應(yīng)內(nèi)容登記到元素內(nèi)容DB 220中。
隨后,密鑰產(chǎn)生單元225根據(jù)包括在處理請求消息中的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生處理請求消息的密鑰(S315)。
更具體地說,對于服務(wù)器設(shè)備110可能接收的多種處理請求消息中的每一種,服務(wù)器設(shè)備110提供的服務(wù)的管理者預(yù)先準備規(guī)定處理請求消息的密鑰元素的設(shè)置文件。這里,根據(jù)處理請求消息向Web服務(wù)請求的命令等,確定處理請求消息的種類。當(dāng)能夠為相同種類的多條處理請求消息返回具有相同內(nèi)容的處理響應(yīng)消息時,服務(wù)的管理者事先規(guī)定密鑰元素,以致這些處理請求消息具有相同的密鑰。
設(shè)置文件存儲單元230保存管理者準備的設(shè)置文件。當(dāng)檢測出新收到處理請求消息時,密鑰產(chǎn)生單元225根據(jù)包括在處理請求消息中的元素的內(nèi)容等,判斷處理請求消息的種類。之后,密鑰產(chǎn)生單元225從保存在設(shè)置文件存儲單元230中的設(shè)置文件讀取處理請求消息的密鑰元素,根據(jù)密鑰元素的內(nèi)容,產(chǎn)生處理請求消息的密鑰。例如,密鑰產(chǎn)生單元225通過利用散列函數(shù)等轉(zhuǎn)換密鑰元素的內(nèi)容,產(chǎn)生密鑰。
如上所述,密鑰產(chǎn)生單元225根據(jù)服務(wù)的管理者預(yù)先保存在設(shè)置文件存儲單元230中的設(shè)置文件,確定密鑰元素。從而,能夠根據(jù)處理請求消息,恰當(dāng)?shù)剡x擇密鑰元素。這里,如果處理請求消息的種類以某一元素的名稱或內(nèi)容的形式包括在處理請求消息中,那么服務(wù)的管理者可把該元素包括在密鑰元素中。如果密鑰元素在上述條件下被確定,那么根據(jù)處理請求消息的種類,產(chǎn)生一個不同的密鑰。從而,密鑰產(chǎn)生單元225不必預(yù)先判斷處理請求消息的種類。
此外,當(dāng)只有一部分多個元素被用作密鑰元素時,密鑰產(chǎn)生單元225首先從設(shè)置文件獲得處理請求消息的密鑰元素。之后,當(dāng)從設(shè)置文件獲得的所有密鑰元素被記錄到元素內(nèi)容DB 220中時,密鑰產(chǎn)生單元225根據(jù)記錄在元素內(nèi)容DB 220中的所有密鑰元素的內(nèi)容,產(chǎn)生密鑰。從而,即使在除密鑰元素之外的元素未被記錄到元素內(nèi)容DB220中的狀態(tài)下,密鑰產(chǎn)生單元225和高速緩存管理單元240能夠事先執(zhí)行密鑰的產(chǎn)生和高速緩存命中/未命中的確定。
隨后,高速緩存管理單元240利用密鑰搜索高速緩存單元235,并確定與該密鑰相符的密鑰是否被記錄在高速緩存單元235中。如果與處理響應(yīng)消息相關(guān)聯(lián)地記錄在高速緩存單元235中的所有密鑰并不和該密鑰相符(S320是),那么高速緩存管理單元240把包括在處理請求消息中的多個元素的內(nèi)容通知請求處理單元245(S325),所述多個元素的內(nèi)容由消息分析單元200抽取,并保存在元素內(nèi)容DB220中。從而,高速緩存管理單元240允許請求處理單元245根據(jù)多個元素的內(nèi)容執(zhí)行處理,并產(chǎn)生處理請求消息的處理響應(yīng)消息。
這里,在執(zhí)行消息分析單元200進行的處理請求消息的分析,并且多個元素的所有內(nèi)容被記錄到元素內(nèi)容DB 220中的其它條件下,高速緩存管理單元可向請求處理單元245同時通知記錄在元素內(nèi)容DB 220中的多個元素的所有內(nèi)容。從而,和順序向請求處理單元245通知多個元素的相應(yīng)內(nèi)容的情況相比,能夠更有效地執(zhí)行通知。
隨后,輸入對象產(chǎn)生單元255根據(jù)高速緩存管理單元240通知的多個元素的內(nèi)容,產(chǎn)生與處理請求消息相關(guān)聯(lián)的待輸入應(yīng)用程序處理單元270的輸入對象(S330)。這里,輸入對象意味著例如Java(商標)等的對象,所述Java對象是包括處理函數(shù)的輸入?yún)?shù)的對象,以便在允許服務(wù)器計算機起應(yīng)用程序處理單元270的作用的服務(wù)器應(yīng)用程序中執(zhí)行與處理請求消息對應(yīng)的處理。
隨后,應(yīng)用程序處理單元270接收輸入對象,執(zhí)行對由處理函數(shù)確定的Web服務(wù)等的處理,并產(chǎn)生輸出對象(S335)。這里,輸出對象意味著例如Java(商標)等的對象,所述Java對象是包括處理函數(shù)的輸出參數(shù)的對象。
隨后,處理響應(yīng)消息產(chǎn)生單元260接收來自應(yīng)用程序處理單元270的輸出對象,根據(jù)輸出對象,產(chǎn)生與處理請求消息對應(yīng)的處理響應(yīng)消息(S340)。隨后,高速緩存管理單元240接收處理響應(yīng)消息產(chǎn)生單元260產(chǎn)生的處理響應(yīng)消息,并允許高速緩存單元235與密鑰產(chǎn)生單元225產(chǎn)生的密鑰相關(guān)聯(lián)地高速緩存請求處理單元245產(chǎn)生的處理響應(yīng)消息(S345)。之后,高速緩存管理單元240返回請求處理單元245產(chǎn)生的處理響應(yīng)消息(S350)。
借助上述處理,當(dāng)從客戶機設(shè)備100收到第一處理請求消息時,與第一處理請求消息的第一密鑰相關(guān)聯(lián)地,高速緩存單元235高速緩存對應(yīng)于第一處理請求消息的第一處理響應(yīng)消息。
此外,在S320中,如果上述密鑰和與處理響應(yīng)消息相關(guān)聯(lián)地登記在高速緩存單元235中的任意處理請求消息的密鑰相符(S320否),那么高速緩存管理單元240讀取由高速緩存單元235與和上述密鑰相符的密鑰相關(guān)聯(lián)地高速緩存的處理響應(yīng)消息,作為用于處理請求消息的處理響應(yīng)消息(S355),并將處理響應(yīng)消息返回客戶機設(shè)備100(S350)。因此,在由高速緩存單元235與第一密鑰相關(guān)聯(lián)地高速緩存第一處理請求消息的情況下,當(dāng)作為第二處理請求消息的密鑰的第二密鑰與第一密鑰相符時,由高速緩存單元235與第一密鑰相關(guān)聯(lián)地高速緩存的第一處理響應(yīng)消息可以被返回,作為用于第二處理請求消息的處理響應(yīng)消息。
此外,在S320中,如果上述密鑰和與處理響應(yīng)消息相關(guān)聯(lián)地登記在高速緩存單元235中的任意處理請求消息的密鑰相符(S320否),那么高速緩存管理單元240可停止消息分析單元200抽取多個元素的內(nèi)容的處理。從而,能夠防止在高速緩存命中時,無用地繼續(xù)分析處理請求消息。
根據(jù)上述服務(wù)器設(shè)備110,高速緩存處理單元210能夠通過利用消息分析單元200分析處理請求消息的結(jié)果,執(zhí)行高速緩存。這里,和專利文獻1中一樣,需要通過從處理請求消息抽取相應(yīng)元素的內(nèi)容,產(chǎn)生密鑰的處理。從而,在高速緩存命中時,根據(jù)本實施例的服務(wù)器設(shè)備110能夠保持與專利文獻1近似相同的響應(yīng)時間。同時,在高速緩存未命中時,根據(jù)本實施例的服務(wù)器設(shè)備110把消息分析單元200的分析結(jié)果通知請求處理單元245,而不是把處理請求消息傳送給請求處理單元245。從而,在高速緩存未命中時,不需要再次分析處理請求消息,于是和專利文獻1相比,能夠縮短響應(yīng)時間。
注意,如果判斷上述密鑰和登記在高速緩存單元235中的密鑰不符,那么在S325,在上述判斷之后,每次利用自消息分析單元200的函數(shù)調(diào)用通知元素的內(nèi)容時,元素內(nèi)容登記單元215可通過函數(shù)調(diào)用,直接把元素的內(nèi)容通知請求處理單元245。從而,在確定高速緩存未命中之后,由消息分析單元200通知的元素的內(nèi)容可被有效發(fā)送給請求處理單元245,而不必經(jīng)過元素內(nèi)容DB 220和高速緩存管理單元240。
圖4表示根據(jù)該實施例的處理請求消息400的例子。根據(jù)該實施例的處理請求消息400是例如SOAP消息,包括加入的協(xié)議綁定報頭410,以便借助諸如HTTP之類協(xié)議,通過通信網(wǎng)絡(luò)120,傳送處理請求消息400;和包括處理請求消息400的主體的SOAP包絡(luò)420。
SOAP包絡(luò)420包括SOAP報頭430,其中在客戶機設(shè)備100和服務(wù)器設(shè)備110的SOAP處理系統(tǒng)之間發(fā)送的信息被描述成XML文檔;和SOAP消息主體440,其中將發(fā)送給請求處理單元245的參數(shù)描述成XML文檔。這里,SOAP消息主體440包括定義將發(fā)送給請求處理單元245的參數(shù)的多個元素。每個元素450由包括元素450的名稱,并指示元素450的定義的起點的開始標記460;描述元素450的內(nèi)容的內(nèi)容數(shù)據(jù)480;和指示元素450的定義的結(jié)束的終止標記470定義。
消息分析單元200從處理請求消息400的頂部開始順序進行語法分析。當(dāng)探測到SOAP包絡(luò)420的頭部標記和末端標記時,當(dāng)探測到SOAP報頭430的頭部標記和末端標記時,當(dāng)探測到SOAP消息主體440的頭部標記和末端標記時,當(dāng)探測到開始標記460和終止標記470時和/或當(dāng)探測到內(nèi)容數(shù)據(jù)480時,消息分析單元200把上述標記和數(shù)據(jù)通知高速緩存處理單元210。更具體地說,消息分析單元200把與探測到的內(nèi)容對應(yīng)的事件通知高速緩存處理單元210。
當(dāng)通知大意是探測到終止標記470的事件時,元素內(nèi)容登記單元215把包括當(dāng)探測到開始標記460時通知的元素450的名稱,和事件通知的元素450的內(nèi)容的一組登記在元素內(nèi)容DB 220中。
圖5表示根據(jù)該實施例的輸入類別500的例子。當(dāng)高速緩存處理單元210通知多個元素的相應(yīng)內(nèi)容時,輸入對象產(chǎn)生單元255根據(jù)對應(yīng)于處理請求消息的輸入類別500,產(chǎn)生輸入對象。因此,輸入對象產(chǎn)生單元255把與輸入對象中的多個變量中的每一個對應(yīng)的一個元素的內(nèi)容賦予該變量。
例如,當(dāng)處理請求消息包括“元素1”~“元素n”時,輸入對象產(chǎn)生單元255根據(jù)處理請求消息,例示包括對應(yīng)于“元素1”~“元素n”的變量的輸入類別500,并產(chǎn)生輸入對象。隨后,輸入對象產(chǎn)生單元255把處理請求消息中的相應(yīng)元素450的內(nèi)容數(shù)據(jù)480分別賦予變量“元素1”~“元素n”。之后,輸入對象產(chǎn)生單元255把其中被賦予相應(yīng)元素450的內(nèi)容數(shù)據(jù)480的輸入對象作為參數(shù)分配給應(yīng)用程序處理單元270。從而,在處理請求消息中描述的各個元素的內(nèi)容被發(fā)送給應(yīng)用程序處理單元270。
把處理請求消息400轉(zhuǎn)換成輸入對象的處理可被分成從處理請求消息400抽取各個元素的內(nèi)容的處理;和產(chǎn)生輸入對象,并把各個元素的內(nèi)容賦予對應(yīng)變量的處理。根據(jù)本實施例的服務(wù)器設(shè)備110通過利用消息分析單元200從處理請求消息400抽取相應(yīng)元素的內(nèi)容的處理的結(jié)果,執(zhí)行高速緩存。另外,服務(wù)器設(shè)備110把相應(yīng)元素的內(nèi)容緩存在元素內(nèi)容DB 220中,并在高速緩存未命中時,把內(nèi)容發(fā)送給請求處理單元245。從而,在服務(wù)器設(shè)備110中,在高速緩存未命中時,不必再次分析處理請求消息,能夠縮短響應(yīng)時間。
圖6表示根據(jù)該實施例的輸出類別600的例子。應(yīng)用程序處理單元270根據(jù)包括在從輸入對象產(chǎn)生單元255輸入的輸入對象中的各個變量的值,對諸如Web服務(wù)之類的服務(wù)器應(yīng)用程序執(zhí)行處理。隨后,應(yīng)用程序處理單元270例示輸出類別600,并產(chǎn)生輸出對象。之后,應(yīng)用程序處理單元270把要返回給作為請求者的客戶機設(shè)備100的返回值賦予輸出對象的相應(yīng)變量,并把輸出對象發(fā)送給處理響應(yīng)消息產(chǎn)生單元260。
圖7表示根據(jù)該實施例的處理響應(yīng)消息700的例子。根據(jù)該實施例的處理響應(yīng)消息700是SOAP消息。除了下述幾點之外,協(xié)議綁定報頭710,SOAP包絡(luò)720,SOAP報頭730,SOAP消息主體740,元素750,開始標記760,終止標記770和內(nèi)容數(shù)據(jù)780具有和協(xié)議綁定報頭410,SOAP包絡(luò)420,SOAP報頭430,SOAP消息主體440,元素450,開始標記460,終止標記470和內(nèi)容數(shù)據(jù)480相同的功能。從而,除了它們之間的差異之外,下面將省略對它們的描述。
當(dāng)從應(yīng)用程序處理單元270收到輸出對象時,處理響應(yīng)消息產(chǎn)生單元260把包括在輸出對象中的相應(yīng)變量的名稱和值轉(zhuǎn)換成元素750中的開始標記760,終止標記770和內(nèi)容數(shù)據(jù)780,并按照XML文檔格式產(chǎn)生SOAP消息主體740。具體地說,例如,處理響應(yīng)消息產(chǎn)生單元260執(zhí)行某一操作,例如把輸出對象的變量“元素o1”轉(zhuǎn)換成“元素o1的值”等,并按照XML文檔格式產(chǎn)生SOAP消息主體740。因此,處理響應(yīng)消息產(chǎn)生單元260通過把協(xié)議綁定報頭710,一幀SOAP包絡(luò)720和SOAP報頭730加入產(chǎn)生的SOAP消息主體740中,產(chǎn)生處理響應(yīng)消息。
高速緩存管理單元240高速緩存處理響應(yīng)消息產(chǎn)生單元260產(chǎn)生的處理響應(yīng)消息。這里,當(dāng)和非專利文檔1的情況一樣,高速緩存輸出對象時,在高速緩存命中時,還需要根據(jù)輸出對象產(chǎn)生處理響應(yīng)消息。另一方面,根據(jù)該實施例的服務(wù)器設(shè)備110能夠直接從高速緩存單元235獲得處理響應(yīng)消息,從而能夠縮短響應(yīng)時間。
圖8表示根據(jù)該實施例的修改例子的服務(wù)器設(shè)備110的結(jié)構(gòu)。在根據(jù)該實施例的服務(wù)器設(shè)備110中,由和圖2中相同的附圖標記表示的部分具有和圖2中的對應(yīng)部分相同的功能和結(jié)構(gòu)。從而,除了它們之間的差異之外,下面將省略對它們的描述。
根據(jù)該修改例子的服務(wù)器設(shè)備110還包括消息分析單元200和高速緩存處理單元210之間的解碼單元800。當(dāng)包括在處理請求消息中的一個或多個元素的內(nèi)容被編碼時,所述內(nèi)容由解碼單元800解碼?;诜菍@墨I2中公開的WS-安全(Web服務(wù)安全)規(guī)范的SOAP消息被用作包括在如上所述的編碼內(nèi)容中的處理請求消息。
之后,高速緩存處理單元210把包括元素的解碼內(nèi)容的多個元素的內(nèi)容通知高速緩存處理單元210,并允許高速緩存處理單元210和請求處理單元245執(zhí)行它們自己的處理。
圖9表示根據(jù)該實施例的修改例子的服務(wù)器設(shè)備110的處理流程。
首先,服務(wù)器設(shè)備110中的消息分析單元200接收其中至少一個元素的內(nèi)容被編碼的處理請求消息,和圖3的S300的情況一樣。隨后,和S305的情況一樣,消息分析單元200分析處理請求消息,并順序抽取包括在處理請求消息中的多個元素的內(nèi)容。
解碼單元800接收消息分析單元200抽取的多個元素的相應(yīng)內(nèi)容,如果內(nèi)容被編碼,那么解碼單元800對內(nèi)容解碼(S910)。之后,解碼單元800順序把多個元素的解碼內(nèi)容通知高速緩存處理單元210。更具體地說,每次消息分析單元200通知相應(yīng)元素的內(nèi)容時,如果該內(nèi)容被編碼,那么解碼單元800對該內(nèi)容解碼。因此,解碼單元800通過為多個元素中的每個元素,調(diào)用實現(xiàn)元素內(nèi)容登記單元215的函數(shù),順序把相應(yīng)元素的內(nèi)容通知高速緩存處理單元210。
這里,當(dāng)對元素的內(nèi)容解碼時,解碼單元800可獲得包括定義成元素的子元素的多個元素的開始標記460,終止標記470和內(nèi)容數(shù)據(jù)480的多組。這種情況下,除了多個元素之外,解碼單元800還順序把包括在解碼內(nèi)容中的元素的名稱和內(nèi)容通知高速緩存處理單元210。具體地說,例如,如果處理請求消息包括“元素1”和“元素2”,并且“元素1”被解碼,從而獲得“元素1-1”和“元素1-2”,那么解碼單元800順序把“元素1”,“元素1-1”,“元素1-2”和“元素2”的內(nèi)容通知高速緩存處理單元210。
因此,服務(wù)器設(shè)備110對其中加入解碼單元800解碼的元素的多個元素執(zhí)行圖3中的S310~S355中所示的處理。
在根據(jù)該修改例子的服務(wù)器設(shè)備110中,即使在包括于處理請求消息中的至少一個元素被編碼的情況下,該元素的內(nèi)容也可被解碼成密鑰,并且能夠正確地進行高速緩存。此外,高速緩存處理單元210把多個元素的解碼內(nèi)容通知請求處理單元245。從而,解碼單元800解碼的元素的內(nèi)容既可用在高速緩存處理單元210中,又可用在請求處理單元245中。從而,能夠有效地執(zhí)行高速緩存。
圖10表示根據(jù)該實施例的計算機900的硬件結(jié)構(gòu)。根據(jù)該實施例的計算機900包括具有由主控制器1082相互連接的CPU 1000,RAM 1020和圖形控制器1075,以及顯示裝置1080的CPU外圍部分;具有均通過輸入/輸出控制器1084,與主控制器1082連接的通信接口1030,硬盤驅(qū)動器1040和CD-ROM驅(qū)動器1060;和具有均與輸入/輸出控制器1084連接的ROM 1010,軟盤驅(qū)動器1050和輸入/輸出芯片1070。
主控制器1082互連RAM 1020,以高的傳輸速率訪問RAM 1020的CPU 1000和圖形控制器1075。CPU 1000根據(jù)保存在ROM 1010和RAM 1020中的程序工作,并控制各個部分。圖形控制器1075獲得CPU 1000等在設(shè)置于RAM 1020中的幀緩沖區(qū)上產(chǎn)生的圖像數(shù)據(jù),并在顯示裝置1080上顯示該數(shù)據(jù)。另一方面,圖形控制器1075可包括保存CPU 1000等產(chǎn)生的圖像數(shù)據(jù)的幀緩沖器。
輸入/輸出控制器1084連接主控制器1082和作為相對高速的輸入/輸出裝置的通信接口1030,硬盤驅(qū)動器1040和CD-ROM驅(qū)動器1060。通信接口1030通過網(wǎng)絡(luò)與其它裝置通信。硬盤驅(qū)動器1040保存計算機900中的CPU 1000使用的程序和數(shù)據(jù)。CD-ROM驅(qū)動器1060從CD-ROM 1095讀取程序或數(shù)據(jù),并通過RAM 1020把程序或數(shù)據(jù)提供給硬盤驅(qū)動器1040。
此外,作為較低速的輸入/輸出裝置的ROM 1010,軟盤驅(qū)動器1050和輸入/輸出芯片1070與輸入/輸出控制器1084連接。ROM 1010保存啟動計算機時,計算機900執(zhí)行的引導(dǎo)程序,取決于計算機900的硬件的程序等。軟盤驅(qū)動器1050從軟盤1090讀取程序或數(shù)據(jù),并通過RAM 1020把程序或數(shù)據(jù)提供給硬盤驅(qū)動器1040。輸入/輸出芯片1070通過軟盤驅(qū)動器1050和例如并行端口,串行端口,鍵盤端口,鼠標端口等,相互連接各種輸入/輸出裝置。
通過RAM 1020提供給硬盤驅(qū)動器1040的程序被保存在諸如軟盤1090,CD-ROM 1095和IC卡之類記錄介質(zhì)中。從而,程序由用戶提供。程序從記錄介質(zhì)讀出,通過RAM 1020安裝到計算機900中的硬盤驅(qū)動器1040中,并在CPU 1000中執(zhí)行。
安裝到計算機900中,允許計算機900起服務(wù)器設(shè)備110作用的程序包括消息分析模塊,高速緩存處理模塊和請求處理模塊。此外,該程序還可包括解碼模塊。上述程序或模塊在CPU 1000等上運行,允許計算機900分別起消息分析單元200,高速緩存處理單元210,請求處理單元245和解碼單元800的作用。
高速緩存處理模塊具有元素內(nèi)容登記模塊,密鑰產(chǎn)生模塊和高速緩存管理模塊。上述程序或模塊在CPU 1000等上運行,并允許計算機900分別起元素內(nèi)容登記單元215,密鑰產(chǎn)生單元225和高速緩存管理單元240的作用。
請求處理模塊具有包括輸入對象產(chǎn)生模塊和處理響應(yīng)消息產(chǎn)生模塊的消息轉(zhuǎn)換模塊,和應(yīng)用程序處理模塊。上述程序或模塊在CPU1000等上運行,允許計算機900分別起包括輸入對象產(chǎn)生單元255和處理響應(yīng)消息產(chǎn)生單元260的消息轉(zhuǎn)換單元250,和應(yīng)用程序處理單元270的作用。
上述程序或模塊可保存在外部存儲介質(zhì)中。除了軟盤1090和CD-ROM 1095之外,諸如DVD或PD之類的光學(xué)記錄介質(zhì),諸如MD之類的磁光記錄介質(zhì),磁帶介質(zhì),諸如IC卡之類的半導(dǎo)體存儲器等可用作存儲介質(zhì)。此外,通過使用設(shè)置在與專用通信網(wǎng)絡(luò)或因特網(wǎng)連接的服務(wù)器系統(tǒng)中的存儲裝置,例如硬盤或RAM作為記錄介質(zhì),通過網(wǎng)絡(luò)可把程序提供給計算機900。
上面利用實施例說明了本發(fā)明。但是,本發(fā)明的技術(shù)范圍并不局限于前述實施例中描述的范圍。對本領(lǐng)域的技術(shù)人員來說,上述實施例顯然可被加入各種變化或修改。根據(jù)權(quán)利要求的描述,其中加入這樣的變化或修改的實施例顯然也可包括在本發(fā)明的技術(shù)范圍之中。
根據(jù)上述實施例,實現(xiàn)了在下面的相應(yīng)項目中描述的服務(wù)器設(shè)備,服務(wù)方法,程序和記錄介質(zhì)。
(項目1)一種服務(wù)器設(shè)備,用于關(guān)于多個元素中的每個元素,接收包括描述元素的名稱及其內(nèi)容的結(jié)構(gòu)化文檔的處理請求消息,根據(jù)處理請求消息執(zhí)行處理,并返回處理響應(yīng)消息,該服務(wù)器設(shè)備包括根據(jù)包括在接收的第一處理請求消息中的多個元素的內(nèi)容執(zhí)行處理,并產(chǎn)生第一處理響應(yīng)消息的請求處理單元;與根據(jù)包括在第一處理請求消息中的多個元素之中的至少一個預(yù)定密鑰元素的內(nèi)容產(chǎn)生的第一密鑰相關(guān)聯(lián)地高速緩存第一處理響應(yīng)消息的高速緩存單元;分析接收的第二處理請求消息,并順序抽取多個元素的內(nèi)容的消息分析單元;根據(jù)包括在第二處理請求消息中的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰的密鑰產(chǎn)生單元;和當(dāng)?shù)诙荑€與第一密鑰一致時,返回在高速緩存單元中高速緩存的第一處理響應(yīng)消息,作為第二處理請求消息的處理響應(yīng)消息,當(dāng)?shù)诙荑€與第一密鑰不一致時,把消息分析單元抽取的多個元素的內(nèi)容通知請求處理單元,允許請求處理單元根據(jù)多個元素的內(nèi)容執(zhí)行處理,產(chǎn)生第二處理響應(yīng)消息,并返回產(chǎn)生的第二處理響應(yīng)消息的高速緩存管理單元。
(項目2)按照項目1所述的服務(wù)器設(shè)備,其中當(dāng)?shù)诙荑€與第一密鑰不一致時,高速緩存管理單元允許高速緩存單元與第二密鑰相關(guān)聯(lián)地高速緩存請求處理單元產(chǎn)生的第二處理響應(yīng)消息。
(項目3)按照項目1所述的服務(wù)器設(shè)備,其中請求處理單元包括根據(jù)多個元素的內(nèi)容,產(chǎn)生包括用于執(zhí)行對應(yīng)于處理請求消息的處理的處理函數(shù)的輸入?yún)?shù)的輸入對象的輸入對象產(chǎn)生單元;接收輸入對象,執(zhí)行處理函數(shù)確定的處理,并產(chǎn)生包括處理函數(shù)的輸出參數(shù)的輸出對象的應(yīng)用程序處理單元;和根據(jù)輸出對象,產(chǎn)生處理響應(yīng)消息的處理響應(yīng)消息產(chǎn)生單元。
(項目4)按照項目1所述的服務(wù)器設(shè)備,還包括保存設(shè)置文件的設(shè)置文件存儲單元,所述設(shè)置文件規(guī)定多種處理請求消息中的每一種的處理請求消息的密鑰元素,其中密鑰產(chǎn)生單元根據(jù)第二處理請求消息的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰。
(項目5)按照項目1所述的服務(wù)器設(shè)備,還包括把多個元素的相應(yīng)內(nèi)容登記到元素內(nèi)容數(shù)據(jù)庫中的元素內(nèi)容登記單元,每次包括在第二處理請求消息中的多個元素的相應(yīng)內(nèi)容被抽取時,所述內(nèi)容由來自消息分析單元的函數(shù)調(diào)用進行調(diào)用,并且所述內(nèi)容由函數(shù)調(diào)用進行通知,其中如果所有密鑰元素被登記到元素內(nèi)容數(shù)據(jù)庫中,那么密鑰產(chǎn)生單元根據(jù)登記在元素內(nèi)容數(shù)據(jù)庫中的所有密鑰元素的內(nèi)容,產(chǎn)生第二密鑰,其中當(dāng)多個元素的所有內(nèi)容都被登記到元素內(nèi)容數(shù)據(jù)庫中,并且第二密鑰和第一密鑰不一致時,高速緩存管理單元把登記在元素內(nèi)容數(shù)據(jù)庫中的多個元素的所有內(nèi)容通知請求處理單元。
(項目6)按照項目5所述的服務(wù)器設(shè)備,還包括保存設(shè)置文件的設(shè)置文件存儲單元,所述設(shè)置文件規(guī)定多種處理請求消息中的每一種的處理請求消息的密鑰元素,其中如果從設(shè)置文件獲得的所有密鑰元素被登記到元素內(nèi)容數(shù)據(jù)庫,那么密鑰產(chǎn)生單元從設(shè)置文件獲得第二處理請求消息的密鑰元素,并產(chǎn)生第二密鑰。
(項目7)按照項目5所述的服務(wù)器設(shè)備,其中當(dāng)判斷第二密鑰和第一密鑰不一致時,每次在判斷之后,由來自消息分析單元的函數(shù)調(diào)用通知元素的內(nèi)容時,元素內(nèi)容登記單元借助函數(shù)調(diào)用把元素的內(nèi)容通知請求處理單元。
(項目8)按照項目1所述的服務(wù)器設(shè)備,其中當(dāng)?shù)诙荑€與第一密鑰一致時,高速緩存管理單元停止消息分析單元進行的多個元素的內(nèi)容的抽取。
(項目9)按照項目1所述的服務(wù)器設(shè)備,還包括接收消息分析單元抽取的多個元素的相應(yīng)內(nèi)容,如果內(nèi)容被編碼,那么對內(nèi)容解碼,并順序把包括在內(nèi)容中的元素的名稱和內(nèi)容加入多個元素中的解碼單元,其中密鑰產(chǎn)生單元根據(jù)包括在第二處理請求消息中并且加入了被解碼單元解碼的元素的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰。
(項目10)一種服務(wù)器設(shè)備的服務(wù)方法,所述服務(wù)器設(shè)備關(guān)于多個元素中的每個元素,接收包括描述元素的名稱及其內(nèi)容的結(jié)構(gòu)化文檔的處理請求消息,根據(jù)處理請求消息執(zhí)行處理,并返回處理響應(yīng)消息,所述方法包括根據(jù)包括在接收的第一處理請求消息中的多個元素的內(nèi)容執(zhí)行處理,并產(chǎn)生第一處理響應(yīng)消息的請求處理步驟;與根據(jù)包括在第一處理請求消息中的多個元素之中的至少一個預(yù)定密鑰元素的內(nèi)容產(chǎn)生的第一密鑰相關(guān)聯(lián)地高速緩存第一處理響應(yīng)消息的高速緩存步驟;分析接收的第二處理請求消息,并順序抽取多個元素的內(nèi)容的消息分析步驟;根據(jù)包括在第二處理請求消息中的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰的密鑰產(chǎn)生步驟;和當(dāng)?shù)诙荑€與第一密鑰一致時,返回在高速緩存步驟中高速緩存的第一處理響應(yīng)消息,作為第二處理請求消息的處理響應(yīng)消息,當(dāng)?shù)诙荑€與第一密鑰不一致時,把在消息分析步驟抽取的多個元素的內(nèi)容通知請求處理步驟,允許請求處理步驟根據(jù)多個元素的內(nèi)容執(zhí)行處理和產(chǎn)生第二處理響應(yīng)消息,并返回產(chǎn)生的第二處理響應(yīng)消息的高速緩存管理步驟。
(項目11)一種服務(wù)器設(shè)備用程序,所述服務(wù)器設(shè)備關(guān)于多個元素中的每個元素,接收包括描述元素的名稱及其內(nèi)容的結(jié)構(gòu)化文檔的處理請求消息,根據(jù)處理請求消息執(zhí)行處理,并返回處理響應(yīng)消息,所述程序允許起服務(wù)器設(shè)備作用的計算機起下述作用根據(jù)包括在接收的第一處理請求消息中的多個元素的內(nèi)容執(zhí)行處理,并產(chǎn)生第一處理響應(yīng)消息的請求處理單元;與根據(jù)包括在第一處理請求消息中的多個元素之中的至少一個預(yù)定密鑰元素的內(nèi)容產(chǎn)生的第一密鑰相關(guān)聯(lián)地高速緩存第一處理響應(yīng)消息的高速緩存單元;分析接收的第二處理請求消息,并順序抽取多個元素的內(nèi)容的消息分析單元;根據(jù)包括在第二處理請求消息中的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰的密鑰產(chǎn)生單元;和當(dāng)?shù)诙荑€與第一密鑰一致時,返回在高速緩存單元中高速緩存的第一處理響應(yīng)消息,作為第二處理請求消息的處理響應(yīng)消息,當(dāng)?shù)诙荑€與第一密鑰不一致時,把消息分析單元抽取的多個元素的內(nèi)容通知請求處理單元,允許請求處理單元根據(jù)多個元素的內(nèi)容執(zhí)行處理,產(chǎn)生第二處理響應(yīng)消息,并返回產(chǎn)生的第二處理響應(yīng)消息的高速緩存管理單元。
(項目12)一種用于記錄按照項目11的程序的計算機可讀記錄介質(zhì)。
雖然已詳細說明了本發(fā)明的優(yōu)選實施例,不過在不脫離附加權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,其中顯然可做出各種改變、替換和變更。
權(quán)利要求
1.一種服務(wù)器設(shè)備,用于關(guān)于多個元素中的每個元素,接收包括描述元素的名稱及其內(nèi)容的結(jié)構(gòu)化文檔的處理請求消息,根據(jù)處理請求消息執(zhí)行處理,并返回處理響應(yīng)消息,該服務(wù)器設(shè)備包括根據(jù)包括在接收的第一處理請求消息中的多個元素的內(nèi)容執(zhí)行處理,并產(chǎn)生第一處理響應(yīng)消息的請求處理單元;與根據(jù)包括在第一處理請求消息中的多個元素之中的至少一個預(yù)定密鑰元素的內(nèi)容產(chǎn)生的第一密鑰相關(guān)聯(lián)地高速緩存第一處理響應(yīng)消息的高速緩存單元;分析接收的第二處理請求消息,并順序抽取多個元素的內(nèi)容的消息分析單元;根據(jù)包括在第二處理請求消息中的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰的密鑰產(chǎn)生單元;和當(dāng)?shù)诙荑€與第一密鑰一致時,返回在高速緩存單元中高速緩存的第一處理響應(yīng)消息,作為第二處理請求消息的處理響應(yīng)消息,當(dāng)?shù)诙荑€與第一密鑰不一致時,把消息分析單元抽取的多個元素的內(nèi)容通知請求處理單元,允許請求處理單元根據(jù)多個元素的內(nèi)容執(zhí)行處理和產(chǎn)生第二處理響應(yīng)消息,并返回產(chǎn)生的第二處理響應(yīng)消息的高速緩存管理單元。
2.按照權(quán)利要求1所述的服務(wù)器設(shè)備,其中當(dāng)?shù)诙荑€與第一密鑰不一致時,高速緩存管理單元允許高速緩存單元與第二密鑰相關(guān)聯(lián)地高速緩存請求處理單元產(chǎn)生的第二處理響應(yīng)消息。
3.按照權(quán)利要求1所述的服務(wù)器設(shè)備,其中請求處理單元包括根據(jù)多個元素的內(nèi)容,產(chǎn)生包括用于執(zhí)行對應(yīng)于處理請求消息的處理的處理函數(shù)的輸入?yún)?shù)的輸入對象的輸入對象產(chǎn)生單元;接收輸入對象,執(zhí)行處理函數(shù)確定的處理,并產(chǎn)生包括處理函數(shù)的輸出參數(shù)的輸出對象的應(yīng)用程序處理單元;和根據(jù)輸出對象,產(chǎn)生處理響應(yīng)消息的處理響應(yīng)消息產(chǎn)生單元。
4.按照權(quán)利要求1所述的服務(wù)器設(shè)備,還包括保存設(shè)置文件的設(shè)置文件存儲單元,所述設(shè)置文件規(guī)定多種處理請求消息中的每一種的處理請求消息的密鑰元素,其中密鑰產(chǎn)生單元根據(jù)第二處理請求消息的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰。
5.按照權(quán)利要求1所述的服務(wù)器設(shè)備,還包括把多個元素的相應(yīng)內(nèi)容登記到元素內(nèi)容數(shù)據(jù)庫中的元素內(nèi)容登記單元,每次包括在第二處理請求消息中的多個元素的相應(yīng)內(nèi)容被抽取時,所述內(nèi)容由來自消息分析單元的函數(shù)調(diào)用進行調(diào)用,并且所述內(nèi)容由函數(shù)調(diào)用進行通知,其中如果所有密鑰元素被登記到元素內(nèi)容數(shù)據(jù)庫中,那么密鑰產(chǎn)生單元根據(jù)登記在元素內(nèi)容數(shù)據(jù)庫中的所有密鑰元素的內(nèi)容,產(chǎn)生第二密鑰,其中當(dāng)多個元素的所有內(nèi)容都被登記到元素內(nèi)容數(shù)據(jù)庫中,并且第二密鑰和第一密鑰不一致時,高速緩存管理單元把登記在元素內(nèi)容數(shù)據(jù)庫中的多個元素的所有內(nèi)容通知請求處理單元。
6.按照權(quán)利要求5所述的服務(wù)器設(shè)備,還包括保存設(shè)置文件的設(shè)置文件存儲單元,所述設(shè)置文件規(guī)定多種處理請求消息中的每一種的處理請求消息的密鑰元素,其中如果從設(shè)置文件獲得的所有密鑰元素被登記到元素內(nèi)容數(shù)據(jù)庫,那么密鑰產(chǎn)生單元從設(shè)置文件獲得第二處理請求消息的密鑰元素,并產(chǎn)生第二密鑰。
7.按照權(quán)利要求5所述的服務(wù)器設(shè)備,其中當(dāng)判斷第二密鑰和第一密鑰不一致時,每次在判斷之后,由來自消息分析單元的函數(shù)調(diào)用通知元素的內(nèi)容時,元素內(nèi)容登記單元借助函數(shù)調(diào)用把元素的內(nèi)容通知請求處理單元。
8.按照權(quán)利要求1所述的服務(wù)器設(shè)備,其中當(dāng)?shù)诙荑€與第一密鑰一致時,高速緩存管理單元停止消息分析單元進行的多個元素的內(nèi)容的抽取。
9.按照權(quán)利要求1所述的服務(wù)器設(shè)備,還包括接收消息分析單元抽取的多個元素的相應(yīng)內(nèi)容,如果內(nèi)容被編碼,那么對內(nèi)容解碼,并順序把包括在內(nèi)容中的元素的名稱和內(nèi)容加入多個元素中的解碼單元,其中密鑰產(chǎn)生單元根據(jù)包括在第二處理請求消息中并且加入了被解碼單元解碼的元素的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰。
10.一種服務(wù)器設(shè)備的服務(wù)方法,所述服務(wù)器設(shè)備關(guān)于多個元素中的每個元素,接收包括描述元素的名稱及其內(nèi)容的結(jié)構(gòu)化文檔的處理請求消息,根據(jù)處理請求消息執(zhí)行處理,并返回處理響應(yīng)消息,所述方法包括根據(jù)包括在接收的第一處理請求消息中的多個元素的內(nèi)容執(zhí)行處理,并產(chǎn)生第一處理響應(yīng)消息的請求處理步驟;與根據(jù)包括在第一處理請求消息中的多個元素之中的至少一個預(yù)定密鑰元素的內(nèi)容產(chǎn)生的第一密鑰相關(guān)聯(lián)地高速緩存第一處理響應(yīng)消息的高速緩存步驟;分析接收的第二處理請求消息,并順序抽取多個元素的內(nèi)容的消息分析步驟;根據(jù)包括在第二處理請求消息中的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰的密鑰產(chǎn)生步驟;和當(dāng)?shù)诙荑€與第一密鑰一致時,返回在高速緩存步驟中高速緩存的第一處理響應(yīng)消息,作為第二處理請求消息的處理響應(yīng)消息,當(dāng)?shù)诙荑€與第一密鑰不一致時,把在消息分析步驟抽取的多個元素的內(nèi)容通知請求處理步驟,允許請求處理步驟根據(jù)多個元素的內(nèi)容執(zhí)行處理和產(chǎn)生第二處理響應(yīng)消息,并返回產(chǎn)生的第二處理響應(yīng)消息的高速緩存管理步驟。
11.一種服務(wù)器設(shè)備用程序,所述服務(wù)器設(shè)備關(guān)于多個元素中的每個元素,接收包括描述元素的名稱及其內(nèi)容的結(jié)構(gòu)化文檔的處理請求消息,根據(jù)處理請求消息執(zhí)行處理,并返回處理響應(yīng)消息,所述程序允許起服務(wù)器設(shè)備作用的計算機起下述作用根據(jù)包括在接收的第一處理請求消息中的多個元素的內(nèi)容執(zhí)行處理,并產(chǎn)生第一處理響應(yīng)消息的請求處理單元;與根據(jù)包括在第一處理請求消息中的多個元素之中的至少一個預(yù)定密鑰元素的內(nèi)容產(chǎn)生的第一密鑰相關(guān)聯(lián)地高速緩存第一處理響應(yīng)消息的高速緩存單元;分析接收的第二處理請求消息,并順序抽取多個元素的內(nèi)容的消息分析單元;根據(jù)包括在第二處理請求消息中的多個元素之中的密鑰元素的內(nèi)容,產(chǎn)生第二密鑰的密鑰產(chǎn)生單元;和當(dāng)?shù)诙荑€與第一密鑰一致時,返回在高速緩存單元中高速緩存的第一處理響應(yīng)消息,作為第二處理請求消息的處理響應(yīng)消息,當(dāng)?shù)诙荑€與第一密鑰不一致時,把消息分析單元抽取的多個元素的內(nèi)容通知請求處理單元,允許請求處理單元根據(jù)多個元素的內(nèi)容執(zhí)行處理,產(chǎn)生第二處理響應(yīng)消息,并返回產(chǎn)生的第二處理響應(yīng)消息的高速緩存管理單元。
12.一種用于記錄按照權(quán)利要求11的程序的計算機可讀記錄介質(zhì)。
全文摘要
提供一種服務(wù)器設(shè)備,包括執(zhí)行對接收的第一處理請求消息的處理,并產(chǎn)生第一處理響應(yīng)消息的請求處理單元;與根據(jù)第一處理請求消息產(chǎn)生的第一密鑰相關(guān)聯(lián)地高速緩存第一處理響應(yīng)消息的高速緩存單元;分析接收的第二處理請求消息的消息分析單元;根據(jù)分析結(jié)果,產(chǎn)生第二密鑰的密鑰產(chǎn)生單元;和當(dāng)?shù)诙荑€與第一密鑰一致時,返回高速緩存的第一處理響應(yīng)消息,當(dāng)?shù)诙荑€與第一密鑰不一致時,把消息分析單元的分析結(jié)果通知請求處理單元,允許請求處理單元根據(jù)分析結(jié)果執(zhí)行處理,并返回產(chǎn)生的第二處理響應(yīng)消息的高速緩存管理單元。
文檔編號G06F13/00GK1658549SQ20051000798
公開日2005年8月24日 申請日期2005年2月4日 優(yōu)先權(quán)日2004年2月17日
發(fā)明者早田恭彥, 高瀨俊郎, 中村佑一, 立堀道昭 申請人:國際商業(yè)機器公司