專(zhuān)利名稱:基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng)及方法。
背景技術(shù):
Web服務(wù)是使應(yīng)用程序之間,可以運(yùn)用與平臺(tái)無(wú)關(guān)、與編程語(yǔ)言無(wú)關(guān)的方式進(jìn)行相互通信的一項(xiàng)技術(shù)。它使用XML定義描述了其對(duì)外公開(kāi)的接口和綁定,任何應(yīng)用程序軟件系統(tǒng)都能夠通過(guò)Web服務(wù)的定義所規(guī)定的方式與其進(jìn)行交互,交互中使用Internet協(xié)議傳送基于XML的消息。
Web服務(wù)是在Internet上描述、查找和調(diào)用應(yīng)用接口的一種方式。Web服務(wù)技術(shù)由簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議SOAP、服務(wù)描述協(xié)議WSDL、服務(wù)注冊(cè)和查找協(xié)議UDDI組成。Web服務(wù)為應(yīng)用程序之間的交互提供了一種標(biāo)準(zhǔn)的“接口”方式。
在Web服務(wù)描述文件中,定義了八種消息交換模式,即僅輸入的消息交換模式、強(qiáng)制輸入的消息交換模式、輸入-輸出的消息交換模式、輸入-可選輸出的消息交換模式、僅輸出的消息交換模式、強(qiáng)制輸出的消息交換模式、輸出-輸入的消息交換模式、輸出-可選輸入的消息交換模式。
現(xiàn)有的Web服務(wù)處理系統(tǒng)僅能夠處理輸入-輸出類(lèi)型的消息交換模式。例如Apache Axis,IBM Websphere。
發(fā)明內(nèi)容
鑒于上述原因,為了解決現(xiàn)有技術(shù)中Web服務(wù)處理系統(tǒng)的弊端,本發(fā)明的主要目的是提供一種基于分層結(jié)構(gòu)的、能夠很好地支持上述八種消息交換模式要求的Web服務(wù)處理系統(tǒng)及方法。
為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案一種基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),其特征在于它由傳輸層、消息層、服務(wù)層和適配層構(gòu)成,各層之間通過(guò)對(duì)象池隔離和連接;所述對(duì)象池用于在線程處理過(guò)程中緩存對(duì)象,它設(shè)有接口,對(duì)象派發(fā)線程通過(guò)對(duì)象池接口從對(duì)象池中獲取對(duì)象;對(duì)象處理線程通過(guò)對(duì)象池接口往對(duì)象池中存對(duì)象;所述傳輸層為最底層,處理各種傳輸層協(xié)議,生成傳輸上下文;它配置有多種傳輸層協(xié)議,且每種傳輸層協(xié)議都存在一個(gè)輸入對(duì)象派發(fā)線程,傳輸層的輸入對(duì)象派發(fā)線程沒(méi)有輸入對(duì)象池,直接通過(guò)網(wǎng)絡(luò)傾聽(tīng)客戶端的連接;所有傳輸層協(xié)議共享一個(gè)輸出對(duì)象派發(fā)線程,傳輸層的輸出對(duì)象派發(fā)線程沒(méi)有輸出對(duì)象池,直接通過(guò)網(wǎng)絡(luò)將響應(yīng)輸出到客戶端;所述消息層位于傳輸層和服務(wù)層之間,根據(jù)各種消息層協(xié)議,生成消息上下文;消息層存在一個(gè)輸入派發(fā)線程和一個(gè)輸出派發(fā)線程;所述服務(wù)層位于消息層和適配層之間,根據(jù)WSDL協(xié)議,生成服務(wù)對(duì)象;服務(wù)層存在一個(gè)輸入派發(fā)線程和一個(gè)輸出派發(fā)線程;所述適配層為最頂層,根據(jù)WSDD協(xié)議,調(diào)用具體的服務(wù),處理服務(wù)對(duì)象;適配層存在一個(gè)對(duì)象派發(fā)線程。
一種Web服務(wù)處理方法,該方法基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),采用分層處理的方式處理客戶端的請(qǐng)求,其特征在于它包括以下步驟A、Web服務(wù)處理系統(tǒng)通過(guò)傳輸層具體的傳輸協(xié)議的輸入對(duì)象派發(fā)線程傾聽(tīng)客戶端的請(qǐng)求,并對(duì)傳輸層接收到的客戶端請(qǐng)求報(bào)文進(jìn)行處理,生成傳輸上下文;B、消息層根據(jù)傳輸上下文類(lèi)型,選擇具體的消息協(xié)議處理此傳輸上下文,生成消息上下文;C、服務(wù)層根據(jù)WSDL協(xié)議,處理消息上下文,生成服務(wù)對(duì)象;D、適配層根據(jù)WSDD協(xié)議對(duì)服務(wù)對(duì)象進(jìn)行處理;E、服務(wù)層根據(jù)WSDL協(xié)議,從處理后的服務(wù)對(duì)象中獲取消息上下文;并將所獲取的消息上下文放入消息上下文輸出對(duì)象池;F、消息層根據(jù)傳輸上下文類(lèi)型,選擇具體的消息協(xié)議處理此消息上下文,從消息上下文中獲取響應(yīng)傳輸上下文;并將所獲取的傳輸上下文放入傳輸上下文輸出對(duì)象池;G、傳輸層根據(jù)響應(yīng)傳輸上下文類(lèi)型中對(duì)對(duì)象處理線程的引用,選擇具體的對(duì)象處理線程處理此響應(yīng)傳輸上下文,將響應(yīng)發(fā)送給客戶端。
圖1為本發(fā)明基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng)的結(jié)構(gòu)示意2為本發(fā)明針對(duì)輸入-輸出消息交換模式的Web服務(wù)處理方法的程序流程圖具體實(shí)施方式
如圖1所示,本發(fā)明公開(kāi)的基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng)分為四層傳輸層、消息層、服務(wù)層和適配層,各層間通過(guò)對(duì)象池隔離和連接。
所述對(duì)象池用于在線程處理過(guò)程中緩存對(duì)象,對(duì)象池設(shè)有接口,一般說(shuō)來(lái),對(duì)象派發(fā)線程通過(guò)對(duì)象池接口從對(duì)象池中取對(duì)象,對(duì)象處理線程通過(guò)對(duì)象池接口往對(duì)象池中存對(duì)象。對(duì)象池是成對(duì)存在的,分別為輸入對(duì)象池和輸出對(duì)象池。
按對(duì)象池中緩存的對(duì)象分類(lèi),本發(fā)明基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng)存在三類(lèi)對(duì)象需要緩存,分別為傳輸上下文、消息上下文和服務(wù)對(duì)象,因此,本發(fā)明基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng)存在三種類(lèi)型的對(duì)象池,分別為傳輸上下文對(duì)象池、消息上下文對(duì)象池和服務(wù)對(duì)象對(duì)象池。
由上可知,系統(tǒng)中存在六個(gè)對(duì)象池,分別為傳輸上下文輸入對(duì)象池,傳輸上下文輸出對(duì)象池,消息上下文輸入對(duì)象池,消息上下文輸出對(duì)象池,服務(wù)對(duì)象輸入對(duì)象池,服務(wù)對(duì)象輸出對(duì)象池;其中,傳輸上下文輸入對(duì)象池和傳輸上下文輸出對(duì)象池位于系統(tǒng)的傳輸層和消息層之間,消息上下文輸入對(duì)象池和消息上下文輸出對(duì)象池位于系統(tǒng)消息層和服務(wù)層之間,服務(wù)對(duì)象輸入對(duì)象池和服務(wù)對(duì)象輸出對(duì)象池位于系統(tǒng)服務(wù)層和適配層之間。
所述傳輸層用于連接傳輸上下文對(duì)象池,主要處理各種傳輸層協(xié)議。本發(fā)明Web服務(wù)處理系統(tǒng)能夠配置多種傳輸協(xié)議如HTTP協(xié)議、HTTPS協(xié)議、SMTP協(xié)議等,且每種協(xié)議都能夠處理請(qǐng)求和響應(yīng)。
每種傳輸層協(xié)議都存在一個(gè)輸入對(duì)象派發(fā)線程,傳輸層的輸入對(duì)象派發(fā)線程沒(méi)有輸入對(duì)象池,直接通過(guò)網(wǎng)絡(luò)傾聽(tīng)客戶端的連接;所有傳輸層協(xié)議共享一個(gè)輸出對(duì)象派發(fā)線程,傳輸層的輸出對(duì)象派發(fā)線程沒(méi)有輸出對(duì)象池,直接通過(guò)網(wǎng)絡(luò)將響應(yīng)輸出到客戶端。
傳輸層輸入對(duì)象派發(fā)線程傾聽(tīng)基于此類(lèi)傳輸層協(xié)議的請(qǐng)求,并創(chuàng)建請(qǐng)求處理線程處理此連接請(qǐng)求。如果傳輸層輸入對(duì)象派發(fā)線程傾聽(tīng)的是HTTP請(qǐng)求,則創(chuàng)建HTTP請(qǐng)求處理線程;如果傳輸層輸入對(duì)象派發(fā)線程傾聽(tīng)的是SMTP請(qǐng)求,則創(chuàng)建SMTP請(qǐng)求處理線程。
請(qǐng)求處理線程根據(jù)相應(yīng)的傳輸層協(xié)議解析請(qǐng)求報(bào)文,并生成相應(yīng)的傳輸上下文,最后,將生成的傳輸層上下文放入傳輸上下文輸入對(duì)象池。
傳輸層輸出對(duì)象派發(fā)線程從傳輸上下文輸出對(duì)象池中取出傳輸上下文,并從此傳輸上下文中獲取相對(duì)應(yīng)的處理線程,通過(guò)處理線程的處理將響應(yīng)發(fā)送到客戶端。
所述消息層用于連接傳輸上下文對(duì)象池和消息上下文對(duì)象池,主要處理各種消息層協(xié)議。本發(fā)明Web服務(wù)處理系統(tǒng)能夠配置多種消息協(xié)議,如SOAP協(xié)議等。
消息層存在一個(gè)輸入派發(fā)線程和一個(gè)輸出派發(fā)線程。
消息層輸入派發(fā)線程從傳輸上下文輸入對(duì)象池中取傳輸上下文,并創(chuàng)建相對(duì)應(yīng)的傳輸上下文對(duì)象處理線程處理此傳輸上下文。
消息層輸出派發(fā)線程從消息上下文輸出對(duì)象池中取消息上下文,并創(chuàng)建相對(duì)應(yīng)的消息上下文對(duì)象處理線程處理此傳輸上下文。
每種消息協(xié)議至少都存在傳輸上下文對(duì)象處理線程和消息上下文對(duì)象處理線程處理傳輸上下文和消息上下文。
傳輸上下文對(duì)象處理線程根據(jù)消息協(xié)議解析傳輸上下文創(chuàng)建相對(duì)應(yīng)的消息上下文,并將創(chuàng)建的消息上下文放入消息上下文輸入對(duì)象池。
消息上下文對(duì)象處理線程對(duì)消息上下文進(jìn)行處理,并以此獲取傳輸上下文,并將傳輸上下放入傳輸上下文輸出對(duì)象池。
所述服務(wù)層用于連接消息上下文對(duì)象池和服務(wù)對(duì)象對(duì)象池,主要處理服務(wù)協(xié)議。服務(wù)可以通過(guò)多種服務(wù)描述語(yǔ)言來(lái)描述,WSDL協(xié)議(Web服務(wù)描述語(yǔ)言協(xié)議)僅是服務(wù)層支持的一種協(xié)議。
服務(wù)層存在一個(gè)輸入派發(fā)線程和一個(gè)輸出派發(fā)線程。
服務(wù)層輸入派發(fā)線程從消息上下文輸入對(duì)象池中取消息上下文,并創(chuàng)建相應(yīng)的消息上下文對(duì)象處理線程處理此消息上下文。
服務(wù)層輸出派發(fā)線程從服務(wù)對(duì)象輸出對(duì)象池中取服務(wù)對(duì)象,并創(chuàng)建相應(yīng)的服務(wù)對(duì)象處理線程處理此服務(wù)對(duì)象。
如果服務(wù)描述是基于WSDL的,則系統(tǒng)將按照WSDL協(xié)議規(guī)定的處理方式創(chuàng)建處理線程來(lái)進(jìn)行處理。WSDL協(xié)議中存在消息上下文對(duì)象處理線程和服務(wù)對(duì)象對(duì)象處理線程。
消息上下文對(duì)象處理線程根據(jù)WSDL協(xié)議解析消息上下文,創(chuàng)建服務(wù)對(duì)象,并將創(chuàng)建的服務(wù)對(duì)象放入服務(wù)對(duì)象輸入對(duì)象池。
服務(wù)對(duì)象處理線程根據(jù)服務(wù)對(duì)象,獲取相對(duì)應(yīng)的消息上下文,并將此消息上下文放入消息上下文輸出對(duì)象池。
所述適配層主要用于連接服務(wù)對(duì)象池,主要用于調(diào)用具體的服務(wù)(服務(wù)適配過(guò)程)。服務(wù)適配層主要處理各種服務(wù)部署協(xié)議,如WSDD協(xié)議。WSDD協(xié)議(Web服務(wù)部署描述協(xié)議)僅是適配層支持的一種協(xié)議。
適配層存在一個(gè)對(duì)象派發(fā)線程。
適配層對(duì)象派發(fā)線程從服務(wù)對(duì)象輸入對(duì)象池中取服務(wù)對(duì)象,并創(chuàng)建相應(yīng)的對(duì)象處理線程處理此服務(wù)對(duì)象。
服務(wù)對(duì)象處理線程通過(guò)對(duì)服務(wù)對(duì)象進(jìn)行適配,調(diào)用具體的服務(wù),并將處理后的服務(wù)對(duì)象放入服務(wù)對(duì)象輸出對(duì)象池。
基于上述分層結(jié)構(gòu),Web服務(wù)處理系統(tǒng)對(duì)Web服務(wù)調(diào)用的處理由多層和多個(gè)對(duì)象池配合完成。
本發(fā)明公開(kāi)的Web服務(wù)處理方法基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),采用分層處理的方式處理客戶端的請(qǐng)求,具體方法如圖2所示1、Web服務(wù)處理系統(tǒng)通過(guò)傳輸層具體的傳輸協(xié)議的輸入對(duì)象派發(fā)線程傾聽(tīng)客戶端的請(qǐng)求,并對(duì)傳輸層接收到的客戶端請(qǐng)求報(bào)文進(jìn)行處理,生成傳輸上下文;具體步驟(1)、獲取套接字輸入流;(2)、獲取傳輸協(xié)議報(bào)文頭;(3)、根據(jù)傳輸協(xié)議解析接收到的客戶端請(qǐng)求報(bào)文,生成傳輸上下文,通過(guò)輸入流設(shè)置傳輸上下文的請(qǐng)求上下文,通過(guò)輸出流設(shè)置傳輸上下文的響應(yīng)上下文,設(shè)置響應(yīng)時(shí)候的對(duì)象處理線程,設(shè)置請(qǐng)求的路徑;(4)、將生成的傳輸上下文放入傳輸上下文輸入對(duì)象池;2、消息層根據(jù)傳輸上下文類(lèi)型,選擇具體的消息協(xié)議處理此傳輸上下文,生成消息上下文;具體步驟(1)、獲取傳輸上下文的路徑,通過(guò)路徑獲取Web服務(wù)名稱,設(shè)置消息上下文的Web服務(wù)名稱;(2)、獲取傳輸上下文的請(qǐng)求傳輸上下文的服務(wù)集,設(shè)置消息上下文的請(qǐng)求服務(wù)集;(3)、獲取傳輸上下文的請(qǐng)求傳輸上下文的附件集,設(shè)置消息上下文的請(qǐng)求附件集;(4)、獲取傳輸上下文的響應(yīng)傳輸上下文,設(shè)置消息上下文的響應(yīng)傳輸上下文;(5)、將生成的消息上下文放入消息上下文輸入對(duì)象池;3、服務(wù)層根據(jù)WSDL協(xié)議,處理消息上下文,生成服務(wù)對(duì)象;具體步驟(1)、根據(jù)消息上下文的Web服務(wù)名稱,從服務(wù)上下文池中取服務(wù)上下文,服務(wù)上下文是Web服務(wù)描述文件和Web服務(wù)部署文件的對(duì)象表示;(2)、創(chuàng)建服務(wù)對(duì)象,設(shè)置服務(wù)對(duì)象的服務(wù)上下文,消息上下文和服務(wù)方法。
(3)、將生成的服務(wù)對(duì)象放入服務(wù)對(duì)象輸入對(duì)象池;4、適配層根據(jù)WSDD協(xié)議對(duì)服務(wù)對(duì)象進(jìn)行處理;具體步驟(1)、對(duì)服務(wù)對(duì)象中的消息上下文做處理器(Handler)先處理;(2)、通過(guò)服務(wù)上下文獲取適配器,對(duì)服務(wù)對(duì)象進(jìn)行處理;(3)、對(duì)服務(wù)對(duì)象中的消息上下文做處理器的后處理;(4)、將處理完后的服務(wù)對(duì)象放入服務(wù)對(duì)象輸出對(duì)象池;
5、服務(wù)層根據(jù)WSDL協(xié)議,從處理后的服務(wù)對(duì)象中獲取消息上下文;并將所獲取的消息上下文放入消息上下文輸出對(duì)象池;6、消息層根據(jù)傳輸上下文類(lèi)型,選擇具體的消息協(xié)議處理此消息上下文,從消息上下文中獲取響應(yīng)傳輸上下文;并將所獲取的傳輸上下文放入傳輸上下文輸出對(duì)象池;7、傳輸層根據(jù)響應(yīng)傳輸上下文類(lèi)型中對(duì)對(duì)象處理線程的引用,選擇具體的對(duì)象處理線程處理此響應(yīng)傳輸上下文,將響應(yīng)發(fā)送給客戶端,具體步驟(1)、通過(guò)響應(yīng)上下文獲取輸出流;(2)、通過(guò)響應(yīng)上下文獲取響應(yīng)的服務(wù)集及附件集(3)、計(jì)算響應(yīng)的報(bào)文長(zhǎng)度(4)、將服務(wù)集及附件集寫(xiě)入輸出流(5)、將輸出流發(fā)送給客戶端(6)、關(guān)閉輸出流。
至此,一次完整的基于輸入—輸出消息交換模式的Web服務(wù)調(diào)用過(guò)程就完成了。
對(duì)于基于僅輸入消息交換模式的Web服務(wù)調(diào)用,其Web服務(wù)處理方法只包括第1~第5步,系統(tǒng)在對(duì)服務(wù)對(duì)象處理完畢后,返回空值,系統(tǒng)不再進(jìn)行后續(xù)處理。
對(duì)于基于強(qiáng)制輸入的消息交換模式,其處理方法同基于僅輸入消息交換模式類(lèi)似,唯一的不同是其強(qiáng)制輸入由可靠消息協(xié)議進(jìn)行保證。
對(duì)于基于輸入-可選輸出的消息交換模式,其步驟與基于輸入-輸出消息交換模式基本類(lèi)似,唯一不同的是在第4步,如果系統(tǒng)處理服務(wù)對(duì)象時(shí)返回為空,則不執(zhí)行第5~第7步。
對(duì)于基于僅輸出的消息交換模式,其Web服務(wù)處理方法包括第5~第7步,Web服務(wù)將創(chuàng)建的服務(wù)對(duì)象放入服務(wù)對(duì)象輸出對(duì)象池中,則Web服務(wù)系統(tǒng)將通過(guò)后續(xù)處理,將響應(yīng)內(nèi)容發(fā)送到客戶端。
對(duì)于基于強(qiáng)制輸出的消息交換模式,其步驟與基于僅輸出的消息交換模式類(lèi)似,唯一的不同是其強(qiáng)制輸出由可靠消息協(xié)議進(jìn)行保證。
對(duì)于基于輸出-輸入的消息交換模式,其Web服務(wù)處理方法由上述描述步驟的第4步第3小步開(kāi)始,至第7步,然后轉(zhuǎn)第1步~第4步第2小步。
對(duì)于基于輸出-可選輸入的消息交換模式,其步驟同基于輸出-輸入的消息交換模式類(lèi)似,僅僅是到第7步后,如果沒(méi)有輸入的話,將不執(zhí)行第1步~第4步第2小步。
在本發(fā)明基于分層的Web服務(wù)處理方法中,傳輸層保證所有抵達(dá)消息層的傳輸上下文都是正確的,消息層保證所有抵達(dá)服務(wù)層的消息上下文都是正確的,服務(wù)層保證所有抵達(dá)適配層的服務(wù)對(duì)象都是正確的。
傳輸層在處理對(duì)象時(shí)如果出現(xiàn)錯(cuò)誤,則直接將錯(cuò)誤信息放入傳輸上下文輸出對(duì)象池中,由傳輸層輸出對(duì)象派發(fā)線程進(jìn)行處理。
消息層在處理對(duì)象時(shí)如果出現(xiàn)錯(cuò)誤,則直接將錯(cuò)誤信息放入傳輸上下文輸出對(duì)象池中,由傳輸層輸出對(duì)象派發(fā)線程進(jìn)行處理。
服務(wù)層在處理對(duì)象時(shí)如果出現(xiàn)錯(cuò)誤,則直接將錯(cuò)誤信息放入消息上下文輸出對(duì)象池中,由消息層輸出對(duì)象派發(fā)線程進(jìn)行處理。
適配層在處理對(duì)象時(shí)如果出現(xiàn)錯(cuò)誤,則直接將錯(cuò)誤信息放入服務(wù)對(duì)象輸出對(duì)象池中,由服務(wù)層輸出對(duì)象派發(fā)線程進(jìn)行處理。
本基于分層結(jié)構(gòu)的Web服務(wù)處理方法與現(xiàn)有技術(shù)中的Web服務(wù)處理方法相比,優(yōu)點(diǎn)在于能夠更全面更有效的支持WSDL定義的八種交換模式,其次,此Web服務(wù)處理方法各層次間更加清晰。
權(quán)利要求
1.一種基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),其特征在于它由傳輸層、消息層、服務(wù)層和適配層構(gòu)成,各層之間通過(guò)對(duì)象池隔離和連接;所述對(duì)象池用于在線程處理過(guò)程中緩存對(duì)象,它設(shè)有接口,對(duì)象派發(fā)線程通過(guò)對(duì)象池接口從對(duì)象池中獲取對(duì)象;對(duì)象處理線程通過(guò)對(duì)象池接口往對(duì)象池中存對(duì)象;所述傳輸層為最底層,處理各種傳輸層協(xié)議,生成傳輸上下文;它配置有多種傳輸層協(xié)議,且每種傳輸層協(xié)議都存在一個(gè)輸入對(duì)象派發(fā)線程,傳輸層的輸入對(duì)象派發(fā)線程沒(méi)有輸入對(duì)象池,直接通過(guò)網(wǎng)絡(luò)傾聽(tīng)客戶端的連接;所有傳輸層協(xié)議共享一個(gè)輸出對(duì)象派發(fā)線程,傳輸層的輸出對(duì)象派發(fā)線程沒(méi)有輸出對(duì)象池,直接通過(guò)網(wǎng)絡(luò)將響應(yīng)輸出到客戶端;所述消息層位于傳輸層和服務(wù)層之間,根據(jù)各種消息層協(xié)議,生成消息上下文;消息層存在一個(gè)輸入派發(fā)線程和一個(gè)輸出派發(fā)線程;所述服務(wù)層位于消息層和適配層之間,根據(jù)WSDL協(xié)議,生成服務(wù)對(duì)象;服務(wù)層存在一個(gè)輸入派發(fā)線程和一個(gè)輸出派發(fā)線程;所述適配層為最頂層,根據(jù)WSDD協(xié)議,調(diào)用具體的服務(wù),處理服務(wù)對(duì)象;適配層存在一個(gè)對(duì)象派發(fā)線程。
2.根據(jù)權(quán)利要求1所述的基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),其特征在于所述對(duì)象池成對(duì)存在,分為輸入對(duì)象池和輸出對(duì)象池;所述對(duì)象池分為傳輸上下文輸入對(duì)象池,傳輸上下文輸出對(duì)象池,消息上下文輸入對(duì)象池,消息上下文輸出對(duì)象池,服務(wù)對(duì)象輸入對(duì)象池和服務(wù)對(duì)象輸出對(duì)象池;所述傳輸上下文輸入對(duì)象池和傳輸上下文輸出對(duì)象池位于傳輸層和消息層之間,消息上下文輸入對(duì)象池和消息上下文輸出對(duì)象池位于消息層和服務(wù)層之間,服務(wù)對(duì)象輸入對(duì)象池和服務(wù)對(duì)象輸出對(duì)象池位于服務(wù)層和適配層之間。
3.根據(jù)權(quán)利要求2所述的基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),其特征在于所述傳輸層輸入對(duì)象派發(fā)線程傾聽(tīng)基于傳輸層協(xié)議的請(qǐng)求,創(chuàng)建請(qǐng)求處理線程處理此連接請(qǐng)求;請(qǐng)求處理線程根據(jù)相應(yīng)的傳輸層協(xié)議解析請(qǐng)求的報(bào)文,生成相應(yīng)的傳輸上下文,并將生成的傳輸層上下文放入傳輸上下文輸入對(duì)象池中;傳輸層輸出對(duì)象派發(fā)線程從傳輸上下文輸出對(duì)象池中取出傳輸上下文,并從此傳輸上下文中獲取相對(duì)應(yīng)的處理線程,通過(guò)處理線程的處理將響應(yīng)發(fā)送到客戶端。
4.根據(jù)權(quán)利要求3所述的基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),其特征在于所述消息層輸入派發(fā)線程從傳輸上下文輸入對(duì)象池中取出傳輸上下文,創(chuàng)建傳輸上下文對(duì)象處理線程處理此傳輸上下文;傳輸上下文對(duì)象處理線程根據(jù)消息協(xié)議解析傳輸上下文創(chuàng)建消息上下文,并將創(chuàng)建的消息上下文放入消息上下文輸入對(duì)象池中;消息層輸出派發(fā)線程從消息上下文輸出對(duì)象池中取出消息上下文,創(chuàng)建消息上下文對(duì)象處理線程處理此傳輸上下文;消息上下文對(duì)象處理線程對(duì)消息上下文進(jìn)行處理,并以此獲取傳輸上下文,并將傳輸上下放入傳輸上下文輸出對(duì)象池中。
5.根據(jù)權(quán)利要求4所述的基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),其特征在于所述服務(wù)層輸入派發(fā)線程從消息上下文輸入對(duì)象池中取出消息上下文,并創(chuàng)建相應(yīng)的消息上下文對(duì)象處理線程處理此消息上下文;消息上下文對(duì)象處理線程根據(jù)WSDL協(xié)議解析消息上下文,創(chuàng)建服務(wù)對(duì)象,并將創(chuàng)建的服務(wù)對(duì)象放入服務(wù)對(duì)象輸入對(duì)象池中;服務(wù)層輸出派發(fā)線程從服務(wù)對(duì)象輸出對(duì)象池中取出服務(wù)對(duì)象,并創(chuàng)建相應(yīng)的服務(wù)對(duì)象處理線程處理此服務(wù)對(duì)象;服務(wù)對(duì)象處理線程根據(jù)服務(wù)對(duì)象,獲取相對(duì)應(yīng)的消息上下文,并將此消息上下文放入消息上下文輸出對(duì)象池中。
6.根據(jù)權(quán)利要求5所述的基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),其特征在于所述適配層對(duì)象派發(fā)線程從服務(wù)對(duì)象輸入對(duì)象池中取出服務(wù)對(duì)象,創(chuàng)建相應(yīng)的對(duì)象處理線程處理此服務(wù)對(duì)象;服務(wù)對(duì)象處理線程通過(guò)對(duì)服務(wù)對(duì)象進(jìn)行適配,調(diào)用具體的服務(wù),并將處理后的服務(wù)對(duì)象放入服務(wù)對(duì)象輸出對(duì)象池中。
7.一種Web服務(wù)處理方法,該方法基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),采用分層處理的方式處理客戶端的請(qǐng)求,其特征在于它包括以下步驟A、Web服務(wù)處理系統(tǒng)通過(guò)傳輸層具體的傳輸協(xié)議的輸入對(duì)象派發(fā)線程傾聽(tīng)客戶端的請(qǐng)求,并對(duì)傳輸層接收到的客戶端請(qǐng)求報(bào)文進(jìn)行處理,生成傳輸上下文;B、消息層根據(jù)傳輸上下文類(lèi)型,選擇具體的消息協(xié)議處理此傳輸上下文,生成消息上下文;C、服務(wù)層根據(jù)WSDL協(xié)議,處理消息上下文,生成服務(wù)對(duì)象;D、適配層根據(jù)WSDD協(xié)議對(duì)服務(wù)對(duì)象進(jìn)行處理;E、服務(wù)層根據(jù)WSDL協(xié)議,從處理后的服務(wù)對(duì)象中獲取消息上下文;并將所獲取的消息上下文放入消息上下文輸出對(duì)象池;F、消息層根據(jù)傳輸上下文類(lèi)型,選擇具體的消息協(xié)議處理此消息上下文,從消息上下文中獲取響應(yīng)傳輸上下文;并將所獲取的傳輸上下文放入傳輸上下文輸出對(duì)象池;G、傳輸層根據(jù)響應(yīng)傳輸上下文類(lèi)型中對(duì)對(duì)象處理線程的引用,選擇具體的對(duì)象處理線程處理此響應(yīng)傳輸上下文,將響應(yīng)發(fā)送給客戶端。
8.根據(jù)權(quán)利要求7所述的Web服務(wù)處理方法,其特征在于所述步驟A具體包括以下步驟(1)、獲取套接字輸入流;(2)、獲取傳輸協(xié)議報(bào)文頭;(3)、根據(jù)傳輸協(xié)議解析接收到的客戶端請(qǐng)求報(bào)文,生成傳輸上下文,通過(guò)輸入流設(shè)置傳輸上下文的請(qǐng)求上下文,通過(guò)輸出流設(shè)置傳輸上下文的響應(yīng)上下文,設(shè)置響應(yīng)時(shí)候的對(duì)象處理線程,設(shè)置請(qǐng)求的路徑;(4)、將生成的傳輸上下文放入傳輸上下文輸入對(duì)象池。
9.根據(jù)權(quán)利要求7所述的Web服務(wù)處理方法,其特征在于所述步驟B具體包括以下步驟(1)、獲取傳輸上下文的路徑,通過(guò)路徑獲取Web服務(wù)名稱,設(shè)置消息上下文的Web服務(wù)名稱;(2)、獲取傳輸上下文的請(qǐng)求傳輸上下文的服務(wù)集,設(shè)置消息上下文的請(qǐng)求服務(wù)集;(3)、獲取傳輸上下文的請(qǐng)求傳輸上下文的附件集,設(shè)置消息上下文的請(qǐng)求附件集;(4)、獲取傳輸上下文的響應(yīng)傳輸上下文,設(shè)置消息上下文的響應(yīng)傳輸上下文;(5)、將生成的消息上下文放入消息上下文輸入對(duì)象池。
10.根據(jù)權(quán)利要求7所述的Web服務(wù)處理方法,其特征在于所述步驟C具體包括以下步驟(1)、根據(jù)消息上下文的Web服務(wù)名稱,從服務(wù)上下文池中取服務(wù)上下文,服務(wù)上下文是Web服務(wù)描述文件和Web服務(wù)部署文件的對(duì)象表示;(2)、創(chuàng)建服務(wù)對(duì)象,設(shè)置服務(wù)對(duì)象的服務(wù)上下文,消息上下文和服務(wù)方法;(3)、將生成的服務(wù)對(duì)象放入服務(wù)對(duì)象輸入對(duì)象池。
11.根據(jù)權(quán)利要求7所述的Web服務(wù)處理方法,其特征在于所述步驟D具體包括以下步驟(1)、對(duì)服務(wù)對(duì)象中的消息上下文做處理器先處理;(2)、通過(guò)服務(wù)上下文獲取適配器,對(duì)服務(wù)對(duì)象進(jìn)行處理;(3)、對(duì)服務(wù)對(duì)象中的消息上下文做處理器的后處理;(4)、將處理完后的服務(wù)對(duì)象放入服務(wù)對(duì)象輸出對(duì)象池。
12.根據(jù)權(quán)利要求7所述的Web服務(wù)處理方法,其特征在于所述步驟G具體包括以下步驟(1)、通過(guò)響應(yīng)上下文獲取輸出流;(2)、通過(guò)響應(yīng)上下文獲取響應(yīng)的服務(wù)集及附件集(3)、計(jì)算響應(yīng)的報(bào)文長(zhǎng)度(4)、將服務(wù)集及附件集寫(xiě)入輸出流(5)、將輸出流發(fā)送給客戶端(6)、關(guān)閉輸出流。
全文摘要
本發(fā)明公開(kāi)了一種基于分層結(jié)構(gòu)的Web服務(wù)處理系統(tǒng),它由傳輸層、消息層、服務(wù)層和適配層構(gòu)成,各層之間通過(guò)對(duì)象池隔離和連接。所述對(duì)象池用于在線程處理過(guò)程中緩存對(duì)象,它設(shè)有接口,對(duì)象派發(fā)線程通過(guò)對(duì)象池接口從對(duì)象池中獲取對(duì)象。所述傳輸層為最底層,主要處理各種傳輸層協(xié)議,生成傳輸上下文。所述消息層位于傳輸層和服務(wù)層之間,主要處理各種消息層協(xié)議,生成消息上下文。所述服務(wù)層位于消息層和適配層之間,主要處理WSDL協(xié)議,生成服務(wù)對(duì)象。所述適配層為最頂層,主要是處理WSDD協(xié)議,處理具體的服務(wù)對(duì)象。此外,本發(fā)明公開(kāi)的Web服務(wù)處理方法采用分層處理的方式處理Web服務(wù),通過(guò)對(duì)象池來(lái)連接各層,通過(guò)定義各層的處理方式,實(shí)現(xiàn)了Web服務(wù)描述語(yǔ)言中的多種消息交換模式。
文檔編號(hào)H04L29/06GK1956446SQ20051011478
公開(kāi)日2007年5月2日 申請(qǐng)日期2005年10月27日 優(yōu)先權(quán)日2005年10月27日
發(fā)明者馬殿富, 劉建, 李武, 朱巖, 葛聲, 劉旭東 申請(qǐng)人:北京航空航天大學(xué)