專利名稱:用于管理會(huì)話標(biāo)識(shí)符的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種改善的數(shù)據(jù)處理系統(tǒng),并且尤其涉及一種用于多計(jì)算機(jī)數(shù)據(jù)傳送的方法和設(shè)備。更具體而言,本發(fā)明提供了一種用于進(jìn)行計(jì)算機(jī)至計(jì)算機(jī)的會(huì)話建立和會(huì)話參數(shù)設(shè)定的方法和設(shè)備。
背景技術(shù):
在網(wǎng)絡(luò)應(yīng)用環(huán)境中,企業(yè)經(jīng)常使用支持服務(wù)器作為前端向網(wǎng)絡(luò)應(yīng)用服務(wù)器提供授權(quán)、驗(yàn)證和會(huì)話管理服務(wù)。當(dāng)數(shù)據(jù)處理環(huán)境要求是高性能和/或故障容限的時(shí),如果服務(wù)器出現(xiàn)故障,那么常用的開(kāi)發(fā)方案利用負(fù)載平衡器來(lái)分布負(fù)載和/或動(dòng)態(tài)地進(jìn)行補(bǔ)償。在此方案中,不僅網(wǎng)絡(luò)應(yīng)用必須是冗余的,而且所述支持服務(wù)器也必須是冗余的。
在故障轉(zhuǎn)移(failover)事件或者某些其它使用戶會(huì)話在服務(wù)器之間移動(dòng)的事件或者確定之后,當(dāng)試圖跨越冗余服務(wù)器來(lái)維護(hù)用戶的會(huì)話狀態(tài)時(shí),會(huì)出現(xiàn)問(wèn)題。用戶會(huì)話的管理需要唯一的會(huì)話狀態(tài)信息,并且需要一種機(jī)制來(lái)復(fù)制或者再生會(huì)話狀態(tài)信息,以便代表所述用戶繼續(xù)支持操作。在某些環(huán)境中,用于支持冗余的操作是重復(fù)的用戶的操作可以故障轉(zhuǎn)移或者可以移動(dòng)到冗余服務(wù)器,所述冗余服務(wù)器獲得副本,或者它早已擁有了用戶的會(huì)話狀態(tài)信息的依照某種方式的陰影(shadow)副本。此類環(huán)境中的故障轉(zhuǎn)移事件或者其它事件應(yīng)該導(dǎo)致完全連續(xù)的用戶服務(wù)。
在其它環(huán)境中,用于支持冗余的操作是可再生的用戶的操作可以故障轉(zhuǎn)移或者可以移動(dòng)到冗余服務(wù)器,所述冗余服務(wù)器自動(dòng)地對(duì)用戶進(jìn)行驗(yàn)證,并且為該用戶在冗余服務(wù)器上建立新的會(huì)話,此處也將冗余服務(wù)器稱為服務(wù)器復(fù)制品(replica)。此類環(huán)境中的故障轉(zhuǎn)移事件或者其它事件使得在每一個(gè)新的服務(wù)器復(fù)制品處創(chuàng)建新的會(huì)話,由此在用戶服務(wù)的連續(xù)性方面產(chǎn)生了問(wèn)題。尤其是,用戶會(huì)話被唯一地標(biāo)識(shí);通常利用一個(gè)唯一的會(huì)話標(biāo)識(shí)符、即會(huì)話ID把用戶鏈接到用戶會(huì)話。故障轉(zhuǎn)移事件或者其它事件使得在每一個(gè)新的服務(wù)器復(fù)制品處創(chuàng)建新的會(huì)話標(biāo)識(shí)符,并且會(huì)話標(biāo)識(shí)符既不能由其它服務(wù)器復(fù)制品共享,也無(wú)法由它們識(shí)別。
由于除故障轉(zhuǎn)移事件以外的原因,在單數(shù)據(jù)處理環(huán)境內(nèi)的多個(gè)服務(wù)器處可以為給定用戶生成用戶會(huì)話信息。例如,某些數(shù)據(jù)處理系統(tǒng)采用所謂的無(wú)粘性(nonsticky)負(fù)載平衡環(huán)境。無(wú)粘性負(fù)載平衡器不維護(hù)有關(guān)用戶會(huì)話的狀態(tài)信息,并且可以把來(lái)自客戶端的對(duì)用戶操作的請(qǐng)求按照其選擇的那樣引導(dǎo)至任何應(yīng)用服務(wù)器。因此,來(lái)自特殊用戶的一系列請(qǐng)求未必被粘到同一服務(wù)器上,即,未必由同一服務(wù)器跨越一組用戶請(qǐng)求來(lái)處理。每當(dāng)把用戶請(qǐng)求引導(dǎo)至新的服務(wù)器時(shí),即使在該服務(wù)器處為先前的用戶請(qǐng)求已經(jīng)事先建立了會(huì)話,也要在每一服務(wù)器處創(chuàng)建新的會(huì)話。雖然可能會(huì)因?yàn)闊o(wú)粘性的行為而引起某些服務(wù)器側(cè)性能的惡化,但是其它服務(wù)器側(cè)的優(yōu)點(diǎn)還是可以實(shí)現(xiàn)的。然而,此類服務(wù)器行為會(huì)給用戶帶來(lái)性能瓶頸,尤其是當(dāng)在用戶會(huì)話期間要求用戶響應(yīng)多個(gè)驗(yàn)證操作時(shí)尤其明顯。
因此,獲得一種用于在負(fù)載平衡的計(jì)算環(huán)境內(nèi)提供對(duì)服務(wù)器的魯棒會(huì)話管理的方法和系統(tǒng)將會(huì)是十分有益的。
發(fā)明內(nèi)容
提供了一種用于在一組服務(wù)器當(dāng)中管理會(huì)話標(biāo)識(shí)符的方法。所述服務(wù)器接收來(lái)自客戶端的資源請(qǐng)求,并且所述服務(wù)器維護(hù)具有會(huì)話狀態(tài)信息的會(huì)話,其中每一會(huì)話與一會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)。當(dāng)服務(wù)器向客戶端發(fā)送響應(yīng)時(shí),所述響應(yīng)伴隨有第一cookie和第二cookie,其中所述第一cookie包含會(huì)話標(biāo)識(shí)符的副本,而第二cookie包含已經(jīng)使用密鑰進(jìn)行加密保護(hù)的會(huì)話標(biāo)識(shí)符的副本,其中該組服務(wù)器中的每一個(gè)服務(wù)器均具有密鑰的副本。如果服務(wù)器沒(méi)有識(shí)別出第一cookie中的會(huì)話標(biāo)識(shí)符,那么所述服務(wù)器解密第二cookie,并且如果來(lái)自所述cookie的會(huì)話標(biāo)識(shí)符是相同的,那么服務(wù)器將重新使用會(huì)話標(biāo)識(shí)符而不是生成新的會(huì)話標(biāo)識(shí)符。
在所附權(quán)利要求書(shū)中將闡明被認(rèn)為是本發(fā)明的特性的新穎性特征。當(dāng)結(jié)合附圖閱讀時(shí),通過(guò)參考下列詳細(xì)說(shuō)明將會(huì)更好地理解本發(fā)明自身、它的其它目的和優(yōu)點(diǎn),其中圖1A描述了每個(gè)均可以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的典型網(wǎng)絡(luò);圖1B描述了在可以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)內(nèi)可以使用的典型計(jì)算機(jī)體系結(jié)構(gòu);圖1C描述了用于舉例說(shuō)明當(dāng)客戶端試圖訪問(wèn)服務(wù)器處的受保護(hù)資源時(shí)可以使用的典型驗(yàn)證處理的數(shù)據(jù)流程圖;圖2A描述了示出典型企業(yè)數(shù)據(jù)處理系統(tǒng)的框圖;圖2B描述了示出包括具有多個(gè)反向代理服務(wù)器的負(fù)載平衡服務(wù)器的典型企業(yè)數(shù)據(jù)處理系統(tǒng)的框圖;圖2C描述了示出依照本發(fā)明實(shí)施例的包括具有多個(gè)反向代理服務(wù)器的負(fù)載平衡服務(wù)器的數(shù)據(jù)處理系統(tǒng)的框圖,所述多個(gè)反向代理服務(wù)器包括用于創(chuàng)建并且管理會(huì)話支持cookie的功能;圖2D描述了示出依照本發(fā)明實(shí)施例在客戶端和反向代理服務(wù)器之間交換會(huì)話cookie和會(huì)話支持cookie的框圖;圖3A-3B描述了示出依照本發(fā)明實(shí)施例用于確定反向代理服務(wù)器復(fù)制品何時(shí)應(yīng)該為所接收的資源請(qǐng)求生成新的會(huì)話標(biāo)識(shí)符的處理的一對(duì)流程圖;并且圖4A-4H描述了依照本發(fā)明實(shí)施例在處理來(lái)自用戶/客戶端的請(qǐng)求的時(shí)間段上、相對(duì)于部分有代表性的會(huì)話環(huán)境示出了一組反向代理服務(wù)器復(fù)制品的一組框圖。
具體實(shí)施例方式
總體上講,可以包括或者涉及本發(fā)明的裝置包括各式各樣的數(shù)據(jù)處理技術(shù)。因此,在比較詳細(xì)地描述本發(fā)明之前,作為背景技術(shù),首先描述分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件和軟件組件的典型結(jié)構(gòu)。
現(xiàn)在參考附圖,圖1A描述了每個(gè)均可以實(shí)現(xiàn)本發(fā)明的一部分的數(shù)據(jù)處理系統(tǒng)的典型網(wǎng)絡(luò)。分布式數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)101,它是可用來(lái)在分布式數(shù)據(jù)處理系統(tǒng)100內(nèi)的連接在一起的各種裝置和計(jì)算機(jī)之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)101可以包括固定連接,諸如電線或者光纜,或者可以包括經(jīng)由電話或者無(wú)線通信進(jìn)行的暫時(shí)連接。在所述的例子中,服務(wù)器102和服務(wù)器103連同存儲(chǔ)單元104一起與網(wǎng)絡(luò)101相連。另外,客戶端105-107也與網(wǎng)絡(luò)101相連。客戶端105-107和服務(wù)器102-103可以由各種計(jì)算裝置、諸如大型機(jī)、個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)等表示。分布式數(shù)據(jù)處理系統(tǒng)100可以包括另外的未示出的服務(wù)器、客戶端、路由器、其它裝置以及對(duì)等體系結(jié)構(gòu)。
在所述的例子中,分布式數(shù)據(jù)處理系統(tǒng)100可以包括互聯(lián)網(wǎng)(網(wǎng)絡(luò)101表示網(wǎng)絡(luò)的世界范圍的集合)以及使用各種協(xié)議彼此通信的網(wǎng)關(guān),所述協(xié)議諸如是輕量級(jí)目錄訪問(wèn)協(xié)議(LDAP)、傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)、文件傳送協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、無(wú)線應(yīng)用協(xié)議(WAP)等。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100還可以包括多種不同類型的網(wǎng)絡(luò),諸如例如企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN)。例如,服務(wù)器102直接支持客戶端109以及網(wǎng)絡(luò)110,其中網(wǎng)絡(luò)110采用無(wú)線通信鏈路。能夠聯(lián)網(wǎng)的電話111通過(guò)無(wú)線鏈路112與網(wǎng)絡(luò)110連接,并且PDA 113通過(guò)無(wú)線鏈路114與網(wǎng)絡(luò)110連接。電話111以及PDA 113還可以使用適當(dāng)?shù)募夹g(shù)在無(wú)線鏈路115上在它們自身之間直接傳送數(shù)據(jù),以便創(chuàng)建所謂的個(gè)人區(qū)域網(wǎng)(PAN)或者個(gè)人特設(shè)(ad-hoc)網(wǎng)絡(luò),所述適當(dāng)?shù)募夹g(shù)諸如是BluetoothTM無(wú)線技術(shù)。按類似的方式,PDA 113可以經(jīng)由無(wú)線通信鏈路116向PDA 107傳送數(shù)據(jù)。
本發(fā)明可以在各種硬件平臺(tái)上實(shí)現(xiàn);圖1A用作異類計(jì)算環(huán)境的一個(gè)例子,而不是作為對(duì)本發(fā)明的體系結(jié)構(gòu)的限制。
現(xiàn)在參考圖1B,該圖描述了可以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)、諸如圖1A中示出的那些系統(tǒng)的典型計(jì)算機(jī)體系結(jié)構(gòu)。數(shù)據(jù)處理系統(tǒng)120包含一個(gè)或多個(gè)連接至內(nèi)部系統(tǒng)總線123的中央處理單元(CPU)122,所述內(nèi)部系統(tǒng)總線123用于互聯(lián)隨機(jī)存取存儲(chǔ)器(RAM)124、只讀存儲(chǔ)器126和用于支持各種輸入/輸出(I/O)裝置的輸入/輸出適配器128,所述輸入/輸出裝置諸如是打印機(jī)130、盤(pán)單元132或者其它未示出的裝置,諸如音頻輸出系統(tǒng)等。系統(tǒng)總線123還連接用于提供對(duì)通信鏈路136的訪問(wèn)的通信適配器134。用戶接口適配器148連接各種用戶裝置,諸如鍵盤(pán)140和鼠標(biāo)142或者其它未示出的裝置,諸如觸摸屏、輸入筆、麥克風(fēng)等等。顯示適配器144把系統(tǒng)總線123連接至顯示裝置146。
本領(lǐng)域中普通技術(shù)人員將理解的是,圖1B中的硬件可以根據(jù)系統(tǒng)實(shí)現(xiàn)方式來(lái)改變。例如,所述系統(tǒng)可以具有一個(gè)或多個(gè)處理器,諸如基于IntelPentium的處理器和數(shù)字信號(hào)處理器(DSP),并且具有一種或多種類型的易失性和非易失性存儲(chǔ)器。可以使用其它外圍裝置來(lái)代替圖1B中描述的硬件。所述的例子不意味著暗示對(duì)本發(fā)明的體系結(jié)構(gòu)的限制。
除了能夠在各種硬件平臺(tái)上實(shí)現(xiàn)以外,本發(fā)明還可以在各種軟件環(huán)境中實(shí)現(xiàn)。典型的操作系統(tǒng)可用來(lái)控制每一數(shù)據(jù)處理系統(tǒng)內(nèi)的程序執(zhí)行。例如,一個(gè)裝置可以運(yùn)行Unix操作系統(tǒng),而另一裝置包含簡(jiǎn)單的Java運(yùn)行時(shí)間環(huán)境。有代表性的計(jì)算機(jī)平臺(tái)可以包括瀏覽器,它是用于訪問(wèn)具有各種格式的超文本文檔的眾所周知的軟件應(yīng)用程序,所述文檔諸如是圖形文件、字處理文件、可擴(kuò)展標(biāo)記語(yǔ)言(XML)、超文本標(biāo)記語(yǔ)言(HTML)、手持設(shè)備標(biāo)記語(yǔ)言(HDML)、無(wú)線標(biāo)記語(yǔ)言(WML)以及各種其它格式和類型的文件。
本發(fā)明可以在各種硬件和軟件平臺(tái)上實(shí)現(xiàn),如上文中就圖1A和圖1B所述的那樣。更具體地說(shuō),本發(fā)明致力于一種改善的分布式數(shù)據(jù)處理環(huán)境。在更加詳細(xì)地描述本發(fā)明之前,描述典型的分布式數(shù)據(jù)處理環(huán)境的某些方面。
此處對(duì)附圖的描述可以涉及客戶端裝置或者客戶端裝置的用戶所執(zhí)行的某些動(dòng)作。本領(lǐng)域普通技術(shù)人員將理解的是,往返于客戶端的響應(yīng)和/或請(qǐng)求有時(shí)由用戶啟動(dòng),而其它時(shí)候可由通常代表客戶端用戶的客戶端自動(dòng)地啟動(dòng)。因此,當(dāng)在對(duì)附圖的描述中提及客戶端或者客戶端用戶時(shí),應(yīng)該理解的是,術(shù)語(yǔ)“客戶端”和“用戶”可以互換使用,而不會(huì)顯著影響所描述的處理的含義。
某些計(jì)算任務(wù)在下文可以描述為由功能單元執(zhí)行。功能單元可以由例程、子例程、處理、子處理、過(guò)程、功能、方法、面向?qū)ο蟮膶?duì)象、軟件模塊、小應(yīng)用程序、插件程序、ActiveXTM控制、腳本或者其它用于執(zhí)行計(jì)算任務(wù)的固件或軟件組件來(lái)表示。
此處對(duì)附圖的描述可涉及在各種組件之間交換信息,并且按照經(jīng)由消息交換來(lái)實(shí)現(xiàn)的方式來(lái)描述信息的交換,所述消息諸如是繼之以響應(yīng)消息的請(qǐng)求消息。應(yīng)該注意的是,在計(jì)算組件之間交換信息(可能包括同步或者異步請(qǐng)求/響應(yīng)交換)可以經(jīng)由各種數(shù)據(jù)交換機(jī)制來(lái)等效地實(shí)現(xiàn),所述機(jī)制諸如是消息傳送、方法調(diào)用、遠(yuǎn)程過(guò)程調(diào)用、事件信號(hào)通知或其它機(jī)制。
現(xiàn)在參考圖1C,數(shù)據(jù)流程圖舉例說(shuō)明了當(dāng)客戶端試圖訪問(wèn)服務(wù)器處的受保護(hù)資源時(shí)可使用的典型驗(yàn)證過(guò)程。如圖所示,處于客戶端工作站150的用戶試圖通過(guò)在客戶端工作站上執(zhí)行的用戶網(wǎng)絡(luò)瀏覽器來(lái)經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)對(duì)服務(wù)器151上的受保護(hù)資源進(jìn)行訪問(wèn)。受保護(hù)資源是對(duì)其的訪問(wèn)受到控制或者限制的資源(應(yīng)用程序、對(duì)象、文檔、頁(yè)面、文件、可執(zhí)行代碼、或者其它計(jì)算資源、通信型資源等)。受保護(hù)資源可以由統(tǒng)一資源定位符(URL)來(lái)標(biāo)識(shí),或者更一般地,可以由統(tǒng)一資源標(biāo)識(shí)符(URI)來(lái)標(biāo)識(shí),所述資源只能由經(jīng)過(guò)驗(yàn)證和授權(quán)的用戶訪問(wèn)。計(jì)算機(jī)網(wǎng)絡(luò)可以是互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)或者其它網(wǎng)絡(luò),如圖1A或者圖1B所示,并且服務(wù)器可以是網(wǎng)絡(luò)應(yīng)用服務(wù)器(WAS)、服務(wù)器應(yīng)用程序、小服務(wù)程序處理等。
當(dāng)用戶請(qǐng)求服務(wù)器側(cè)的受保護(hù)資源時(shí)啟動(dòng)處理,所述資源諸如為域“ibm.com”中的網(wǎng)頁(yè)(步驟152)。術(shù)語(yǔ)“服務(wù)器側(cè)”和“客戶端側(cè)”指的是在聯(lián)網(wǎng)環(huán)境內(nèi)、分別處于服務(wù)器或者客戶端處的動(dòng)作或者實(shí)體。網(wǎng)絡(luò)瀏覽器(或者相關(guān)聯(lián)的應(yīng)用程序或者小應(yīng)用程序)生成HTTP請(qǐng)求,所述HTTP請(qǐng)求被發(fā)送至網(wǎng)絡(luò)服務(wù)器,所述網(wǎng)絡(luò)服務(wù)器管理域“ibm.com”(步驟153)。術(shù)語(yǔ)“請(qǐng)求”和“響應(yīng)”應(yīng)該被理解為包括適合于傳送特殊操作中所涉及的信息的數(shù)據(jù)格式化,所述信息諸如是消息、通信協(xié)議信息或者其它相關(guān)聯(lián)的信息。
所述服務(wù)器確定它沒(méi)有用于客戶端的有效會(huì)話(步驟154),因此服務(wù)器通過(guò)向客戶端發(fā)送某些類型的驗(yàn)證難題來(lái)要求用戶執(zhí)行驗(yàn)證處理(步驟155)。所述驗(yàn)證難題可以具有各種格式,諸如是HTML形式。然后,用戶提供所請(qǐng)求的或者所要求的信息(步驟156),諸如用戶標(biāo)識(shí)符和相關(guān)聯(lián)的密碼,或者客戶端可以自動(dòng)地返回諸如數(shù)字證書(shū)之類的某些信息。
把驗(yàn)證響應(yīng)信息發(fā)送給服務(wù)器(步驟157),此刻,所述服務(wù)器例如通過(guò)檢索先前提交的注冊(cè)信息并且把給出的驗(yàn)證信息與用戶的存儲(chǔ)信息相匹配來(lái)驗(yàn)證用戶或者客戶端(步驟158)。假定驗(yàn)證成功,則為經(jīng)過(guò)驗(yàn)證的用戶或者客戶端建立有效會(huì)話。
然后服務(wù)器檢索所請(qǐng)求的網(wǎng)頁(yè)并且向客戶端發(fā)送HTTP響應(yīng)消息(步驟159)。此刻,用戶可以在瀏覽器內(nèi)通過(guò)點(diǎn)擊超文本鏈接來(lái)請(qǐng)求“ibm.com”中的另一頁(yè)面(步驟160),并且瀏覽器向服務(wù)器發(fā)送另一HTTP請(qǐng)求消息(步驟161)。此刻,服務(wù)器基于會(huì)話狀態(tài)信息識(shí)別出用戶具有有效會(huì)話(步驟162),其中所述會(huì)話狀態(tài)信息由服務(wù)器維護(hù)。例如,因?yàn)橛脩舻目蛻舳嗽贖TTP請(qǐng)求消息內(nèi)返回會(huì)話ID,所以服務(wù)器識(shí)別出請(qǐng)求用戶的適當(dāng)會(huì)話狀態(tài)信息?;诮?jīng)高速緩存的用戶會(huì)話信息,所述服務(wù)器例如通過(guò)用戶憑證(credential)副本的可利用性來(lái)確定用戶早已經(jīng)被驗(yàn)證過(guò)了;服務(wù)器因此能確定在滿足用戶請(qǐng)求之前不需要執(zhí)行某些操作,諸如驗(yàn)證操作。所述服務(wù)器在另一HTTP響應(yīng)消息中把所請(qǐng)求的網(wǎng)頁(yè)送回客戶端(步驟163),由此來(lái)滿足用戶對(duì)受保護(hù)資源的原始請(qǐng)求。
現(xiàn)在參考圖2A,框圖描述了典型的企業(yè)數(shù)據(jù)處理系統(tǒng)。圖1C描述了當(dāng)客戶端試圖訪問(wèn)服務(wù)器處的受保護(hù)資源時(shí)可以使用的典型驗(yàn)證處理,相比之下,圖2A示出了可用來(lái)支持圖1C中示出的驗(yàn)證處理并且支持后續(xù)的客戶端請(qǐng)求的某些服務(wù)器側(cè)實(shí)體。
正如典型的公司計(jì)算環(huán)境或者基于互聯(lián)網(wǎng)的計(jì)算環(huán)境中那樣,企業(yè)域200管理受控資源,其中用戶202例如通過(guò)使用客戶端206上的瀏覽器應(yīng)用程序204通過(guò)網(wǎng)絡(luò)208來(lái)訪問(wèn)所述受控資源;所述計(jì)算機(jī)網(wǎng)絡(luò)可以是互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)或者其它網(wǎng)絡(luò),如圖1A或者圖1B所示。受保護(hù)或者受控的資源是只有當(dāng)提出請(qǐng)求的客戶端或者提出請(qǐng)求的用戶被驗(yàn)證并且被授權(quán)時(shí)才可進(jìn)行訪問(wèn)或檢索的資源(應(yīng)用程序、對(duì)象、文檔、頁(yè)面、文件、可執(zhí)行代碼或者其它計(jì)算資源、通信類型資源等);在某些情況下,通過(guò)驗(yàn)證的用戶默認(rèn)為是經(jīng)授權(quán)的用戶。
企業(yè)域200支持多個(gè)服務(wù)器。應(yīng)用服務(wù)器210通過(guò)基于網(wǎng)絡(luò)的應(yīng)用程序或者其它類型的后端應(yīng)用程序(包括傳統(tǒng)應(yīng)用程序)支持受控和/或不受控制的資源。反向代理服務(wù)器214、或簡(jiǎn)稱為代理服務(wù)器214執(zhí)行企業(yè)域200的各種各樣的功能,例如,高速緩存網(wǎng)頁(yè),以便對(duì)來(lái)自應(yīng)用服務(wù)器的內(nèi)容進(jìn)行鏡像,或者過(guò)濾輸入和輸出數(shù)據(jù)流,以便對(duì)輸入的請(qǐng)求和輸出的響應(yīng)執(zhí)行各種處理任務(wù);可以依照各種企業(yè)策略中指定的目標(biāo)和條件來(lái)執(zhí)行每一檢查。
企業(yè)域200內(nèi)的上述實(shí)體表示許多計(jì)算環(huán)境內(nèi)的典型實(shí)體。正如根據(jù)圖1C所示的那樣,基于網(wǎng)絡(luò)的應(yīng)用程序通常利用各種手段來(lái)提示用戶輸入驗(yàn)證信息,通常作為在HTML形式內(nèi)的用戶名/密碼組合。在圖2A所示的例子中,在客戶端206有權(quán)訪問(wèn)資源之前,可以要求對(duì)用戶202進(jìn)行驗(yàn)證,在這之后,以與上文圖1C中所述方式類似的方式來(lái)為客戶端206建立會(huì)話。在可替代的實(shí)施例中,在向用戶提供對(duì)域200上的資源的訪問(wèn)之前,不執(zhí)行驗(yàn)證和授權(quán)操作;用戶會(huì)話在不伴隨驗(yàn)證操作的情況下創(chuàng)建。
驗(yàn)證服務(wù)器212可以支持各種驗(yàn)證機(jī)制,諸如用戶名/密碼、X.509證書(shū)或者安全標(biāo)志;多個(gè)驗(yàn)證服務(wù)器可以用于專門(mén)的驗(yàn)證方法。
在接收到來(lái)自客戶端206的輸入的請(qǐng)求之后,代理服務(wù)器214的處理任務(wù)之一可以是確定客戶端206是否早已建立了會(huì)話。代理服務(wù)器214維護(hù)會(huì)話高速緩存216;對(duì)于每個(gè)被激活的會(huì)話,代理服務(wù)器214把會(huì)話標(biāo)識(shí)符與維護(hù)會(huì)話狀態(tài)所要求的任何信息相關(guān)聯(lián)。在圖2A所示的例子中,會(huì)話高速緩存216被配置為包含會(huì)話高速緩存條目218的簡(jiǎn)單二維表,所述會(huì)話高速緩存條目218可通過(guò)會(huì)話標(biāo)識(shí)符220來(lái)搜索。例如,把會(huì)話ID 222與會(huì)話高速緩存條目相關(guān)聯(lián),所述會(huì)話高速緩存條目包含用戶憑證224和/或其它會(huì)話環(huán)境數(shù)據(jù)226,諸如用于表明各種會(huì)話狀態(tài)信息的標(biāo)志;用戶憑證224可以從驗(yàn)證服務(wù)器中檢索或者獲得。
如果客戶端206尚未建立會(huì)話,這例如可以通過(guò)識(shí)別或者檢驗(yàn)來(lái)自客戶端206的會(huì)話ID失敗來(lái)確定,和/或通過(guò)缺乏客戶端206的會(huì)話高速緩存條目來(lái)表明,則可以啟用驗(yàn)證服務(wù)器212上的驗(yàn)證服務(wù)以便驗(yàn)證用戶202。如果用戶202成功通過(guò)驗(yàn)證,則為客戶端206激活會(huì)話,并且創(chuàng)建會(huì)話高速緩存條目。驗(yàn)證服務(wù)返回一憑證,所述憑證可與任何后續(xù)處理結(jié)合使用,所述后續(xù)處理是代表企業(yè)域200內(nèi)的客戶端206而執(zhí)行的;把所述憑證存儲(chǔ)在與客戶端206相關(guān)聯(lián)的會(huì)話高速緩存條目中。
如果客戶端206早已建立了會(huì)話,則在允許訪問(wèn)受控資源之前,可由代理服務(wù)器214對(duì)輸入的請(qǐng)求執(zhí)行額外的授權(quán)檢查。在啟動(dòng)授權(quán)操作以前,代理服務(wù)器214定位與客戶端206相關(guān)聯(lián)的會(huì)話高速緩存條目,從所述會(huì)話高速緩存條目中獲得憑證,即,當(dāng)用戶202被驗(yàn)證時(shí)、先前與客戶端206相關(guān)聯(lián)的憑證,并且把所述憑證和任何其它適當(dāng)?shù)男畔鬟f到授權(quán)服務(wù)器228。
由于先前的一系列動(dòng)作,代理服務(wù)器214能夠?yàn)檩斎氲恼?qǐng)求定位適當(dāng)?shù)膽{證。在典型的網(wǎng)絡(luò)服務(wù)器環(huán)境內(nèi),可以通過(guò)各種機(jī)制從用戶的瀏覽器應(yīng)用程序傳回用戶會(huì)話的會(huì)話標(biāo)識(shí)符,所述機(jī)制例如是URL改寫(xiě)和HTTP cookie。對(duì)于使用URL改寫(xiě)的會(huì)話標(biāo)識(shí)符管理而言,當(dāng)把先前網(wǎng)頁(yè)返回到客戶端206時(shí),網(wǎng)頁(yè)內(nèi)的URL、例如與鏈接至受控資源的超級(jí)鏈接相關(guān)聯(lián)的那些URL往往已經(jīng)被改寫(xiě)了,以便把適當(dāng)?shù)臅?huì)話標(biāo)識(shí)符附加到每一超級(jí)鏈接上。當(dāng)用戶202選擇了該網(wǎng)頁(yè)內(nèi)的超級(jí)鏈接時(shí),瀏覽器204生成對(duì)企業(yè)域200的網(wǎng)頁(yè)或者其它資源的請(qǐng)求,所述資源由與所選超級(jí)鏈接相關(guān)聯(lián)的URL來(lái)標(biāo)識(shí)。代理服務(wù)器214分析輸入的請(qǐng)求中的URL,以便檢索相關(guān)聯(lián)的會(huì)話標(biāo)識(shí)符。對(duì)于使用HTTP cookie的會(huì)話標(biāo)識(shí)符管理而言,HTTP響應(yīng)消息包含特殊的“SET-COOKIE”頭,其具有至少一個(gè)名稱值對(duì),其中所述cookie的值包括依照某種方式的會(huì)話標(biāo)識(shí)符。當(dāng)用戶的瀏覽器應(yīng)用程序識(shí)別出HTTP響應(yīng)消息中的“SET-COOKIE”頭時(shí),瀏覽器把cookie置于其cookie高速緩存中,其中把cookie與發(fā)送域的域名相關(guān)聯(lián)地存儲(chǔ)。當(dāng)瀏覽器隨后向該域發(fā)送HTTP請(qǐng)求消息時(shí),瀏覽器把適當(dāng)?shù)腸ookie包括在HTTP請(qǐng)求消息中。當(dāng)所述cookie包含會(huì)話ID時(shí),把會(huì)話ID返回到所述域,由此所述域可以采用所述會(huì)話ID來(lái)識(shí)別將與輸入的請(qǐng)求相關(guān)聯(lián)的適當(dāng)?shù)臅?huì)話狀態(tài)信息。依照此方式,網(wǎng)絡(luò)應(yīng)用服務(wù)器隨每一響應(yīng)向用戶的客戶端返回具有會(huì)話ID的cookie,并且當(dāng)向網(wǎng)絡(luò)應(yīng)用程序發(fā)送后續(xù)請(qǐng)求時(shí),用戶的客戶端傳回任何適當(dāng)?shù)囊粋€(gè)或多個(gè)cookie。
授權(quán)服務(wù)器228可以采用授權(quán)數(shù)據(jù)庫(kù)230,其包含諸如訪問(wèn)控制列表232、授權(quán)策略234、與周戶組或作用有關(guān)的信息236以及與特殊的管理員組內(nèi)的管理員用戶有關(guān)的信息238之類的信息。使用這些信息,授權(quán)服務(wù)器228向代理服務(wù)器214提供指示,以表明是否應(yīng)該允許進(jìn)行特定的請(qǐng)求,例如,響應(yīng)于來(lái)自客戶端206的請(qǐng)求是否應(yīng)該允許訪問(wèn)受控資源。應(yīng)注意的是,本發(fā)明可以結(jié)合各種驗(yàn)證和授權(quán)應(yīng)用程序來(lái)實(shí)現(xiàn),并且就驗(yàn)證和授權(quán)服務(wù)的配置而言,此處所描述的本發(fā)明的實(shí)施例不應(yīng)該被解釋為限制本發(fā)明的范圍。
現(xiàn)在參考圖2B,框圖描述了典型的企業(yè)數(shù)據(jù)處理系統(tǒng),其包括具有多個(gè)反向代理服務(wù)器的負(fù)載平衡服務(wù)器。圖2B與圖2A相似;共同的元件具有相同的參考標(biāo)記,不過(guò)某些共同的元件在每一個(gè)附圖中沒(méi)有示出。圖2A示出了具有可用來(lái)支持客戶端請(qǐng)求的某些服務(wù)器側(cè)實(shí)體的數(shù)據(jù)處理系統(tǒng),其中包括反向代理服務(wù)器214,而圖2B示出了類似的具有多個(gè)冗余反向代理服務(wù)器的數(shù)據(jù)處理系統(tǒng),所述冗余反向代理服務(wù)器在下文也稱為代理服務(wù)器復(fù)制品或者反向代理服務(wù)器復(fù)制品。負(fù)載平衡服務(wù)器250接受來(lái)自客戶端的請(qǐng)求,并且依照適當(dāng)?shù)呢?fù)載平衡算法,在一組代理服務(wù)器復(fù)制品上分配所述請(qǐng)求。代理服務(wù)器252和254與代理服務(wù)器214相似,如此使得每一代理服務(wù)器包含類似組件;圖2A示出了每一代理服務(wù)器包含用于存儲(chǔ)會(huì)話管理信息的高速緩存,而圖2B示出了每一代理服務(wù)器包含用于管理會(huì)話的功能單元。
代理服務(wù)器254包含會(huì)話管理功能單元256,其用于執(zhí)行相對(duì)于代理服務(wù)器254適合于管理用戶會(huì)話的服務(wù)器側(cè)操作,例如如上文中就圖2A所述那樣。所述代理服務(wù)器復(fù)制品接收來(lái)自負(fù)載平衡服務(wù)器250的輸入的請(qǐng)求;代理服務(wù)器復(fù)制品執(zhí)行關(guān)于所述輸入的請(qǐng)求和相關(guān)聯(lián)會(huì)話信息的某些服務(wù)器側(cè)支持操作,例如如上文中就代理服務(wù)器214所述那樣。然后,代理服務(wù)器把輸入的請(qǐng)求轉(zhuǎn)發(fā)或者發(fā)送至適當(dāng)?shù)膽?yīng)用服務(wù)器;在已經(jīng)處理了所述請(qǐng)求之后,應(yīng)用服務(wù)器向代理服務(wù)器復(fù)制品返回響應(yīng),然后所述代理服務(wù)器復(fù)制品把響應(yīng)直接或者間接地發(fā)送或者轉(zhuǎn)發(fā)至正確的請(qǐng)求客戶端。會(huì)話管理功能單元256包含會(huì)話cookie生成功能單元258,其用于生成包含會(huì)話標(biāo)識(shí)符的會(huì)話cookie;在適當(dāng)時(shí),代理服務(wù)器254把會(huì)話cookie連同響應(yīng)一起返回至客戶端206處的瀏覽器應(yīng)用程序204,由此把會(huì)話cookie 260連同其它c(diǎn)ookie一起存儲(chǔ)在其cookie高速緩存262中。依照眾所周知的方式,當(dāng)向企業(yè)域200發(fā)送請(qǐng)求時(shí),瀏覽器應(yīng)用程序204在后來(lái)的時(shí)間點(diǎn)提交會(huì)話cookie 260;企業(yè)域200可以提取會(huì)話cookie內(nèi)的會(huì)話標(biāo)識(shí)符以便把輸入的請(qǐng)求與先前高速緩存的會(huì)話信息相關(guān)聯(lián),由此提供對(duì)輸入的請(qǐng)求的處理環(huán)境。
給出對(duì)圖1A-2B的描述作為背景信息,對(duì)其余附圖的描述涉及本發(fā)明。
現(xiàn)在參考圖2C,框圖描述了依照本發(fā)明實(shí)施例的包括具有多個(gè)反向代理服務(wù)器的負(fù)載平衡服務(wù)器的數(shù)據(jù)處理系統(tǒng),所述反向代理服務(wù)器包括用于創(chuàng)建并且管理會(huì)話支持cookie的功能。圖2C與圖2B相似;共同的元件具有相同的參考標(biāo)記。然而,圖2C示出了增強(qiáng)的會(huì)話管理功能單元270,其包含優(yōu)于圖2B示出的會(huì)話管理功能單元256的額外功能。增強(qiáng)的會(huì)話管理功能單元270包括會(huì)話支持cookie生成功能單元272和用于生成并且管理會(huì)話支持cookie的任何其它功能組件。依照類似于任何其它通信協(xié)議cookie的方式,例如依照類似于會(huì)話cookie的方式,把會(huì)話支持cookie發(fā)送到提出請(qǐng)求的客戶端并且從中接收會(huì)話支持cookie。由此,客戶端206處的瀏覽器應(yīng)用程序204依照類似于存儲(chǔ)并檢索會(huì)話cookie 260的方式來(lái)存儲(chǔ)并且檢索cookie高速緩存262內(nèi)的會(huì)話支持cookie 274。
每一代理服務(wù)器復(fù)制品均可以訪問(wèn)會(huì)話支持加密密鑰276的相同副本,可以把會(huì)話支持加密密鑰276作為其配置信息的一部分提供給代理服務(wù)器復(fù)制品。能夠依照安全的方式通過(guò)安全的管理過(guò)程或者安全的可編程過(guò)程來(lái)獲得、檢索會(huì)話支持加密密鑰,或者將其提供給代理服務(wù)器復(fù)制品。會(huì)話支持加密密鑰276可以是對(duì)稱的密鑰;作為選擇,每一代理服務(wù)器復(fù)制品均可以共享不對(duì)稱的密鑰對(duì),以便使得會(huì)話支持加密密鑰276表示公共/私人密鑰對(duì)。
現(xiàn)在參考圖2D,框圖描述了依照本發(fā)明實(shí)施例在客戶端和反向代理服務(wù)器之間進(jìn)行會(huì)話cookie和會(huì)話支持cookie的交換。在本發(fā)明中,把會(huì)話支持cookie邏輯上與會(huì)話cookie配對(duì);優(yōu)選的是,代理服務(wù)器復(fù)制品在每當(dāng)它產(chǎn)生會(huì)話cookie時(shí)產(chǎn)生會(huì)話支持cookie。圖2C和圖2D中共同的元件具有相同的參考標(biāo)記。如圖2D中所示那樣,每當(dāng)由代理服務(wù)器復(fù)制品254把會(huì)話cookie傳輸?shù)娇蛻舳?06或者從中接收會(huì)話cookie時(shí),會(huì)話支持cookie應(yīng)該伴隨有該會(huì)話cookie。會(huì)話cookie 260包含會(huì)話標(biāo)識(shí)符280的副本,而會(huì)話支持cookie包含具有受保護(hù)的保密格式的會(huì)話標(biāo)識(shí)符的副本,諸如加密的會(huì)話標(biāo)識(shí)符282。
如上所述,可以在客戶端處由服務(wù)器經(jīng)由HTTP響應(yīng)消息來(lái)設(shè)定cookie,其中所述HTTP響應(yīng)消息包含特殊的“SET-COOKIE”頭,其具有至少一個(gè)名稱值對(duì),其中cookie的值包括依照某種方式的會(huì)話標(biāo)識(shí)符。在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,可以在客戶端處由代理服務(wù)器通過(guò)把“SET-COOKIE”頭置于HTML消息中來(lái)設(shè)定會(huì)話支持cookie。用于設(shè)定會(huì)話支持cookie的頭的例子為SET-COOKIESessionSupport=B238F917AC32820D52,其中“SessionSupport”是cookie的名稱,而“BF917AC32820D52”是作為ASCII串格式化的十六進(jìn)制值;在cookie頭內(nèi)還可以包括諸如期滿時(shí)間的附加參數(shù)。SessionSupport cookie的值表示加密的會(huì)話標(biāo)識(shí)符,即,已經(jīng)使用會(huì)話支持加密密鑰的副本加密的會(huì)話標(biāo)識(shí)符,其中所述會(huì)話支持加密密鑰由已經(jīng)生成SessionSupport cookie的代理服務(wù)器復(fù)制品擁有。
在下文中更加詳細(xì)地解釋由代理服務(wù)器復(fù)制品采用會(huì)話支持cookie和會(huì)話支持加密密鑰的方式。
現(xiàn)在參考圖3A-3B,一對(duì)流程圖描述了依照本發(fā)明實(shí)施例用于確定反向代理服務(wù)器復(fù)制品何時(shí)應(yīng)當(dāng)為所接收的資源請(qǐng)求生成新的會(huì)話標(biāo)識(shí)符的處理。圖3A-3B中示出的處理由反向代理服務(wù)器在其接收到訪問(wèn)資源的輸入請(qǐng)求時(shí)執(zhí)行,例如當(dāng)圖2C中示出的代理服務(wù)器復(fù)制品254接收到來(lái)自客戶端206的請(qǐng)求消息時(shí)執(zhí)行,其中所述請(qǐng)求消息諸如是訪問(wèn)受保護(hù)資源的HTML請(qǐng)求消息。
所述處理從反向代理服務(wù)器確定輸入請(qǐng)求是否伴隨有例如具有作為輸入的HTML消息上的頭的HTML cookie形式的會(huì)話cookie(步驟302)而開(kāi)始。就所舉例說(shuō)明的本發(fā)明的實(shí)施例而言,如果輸入請(qǐng)求不伴隨有會(huì)話cookie,則代理服務(wù)器無(wú)法檢索到這樣的會(huì)話標(biāo)識(shí)符,其中所述會(huì)話標(biāo)識(shí)符也許與輸入請(qǐng)求以及來(lái)自請(qǐng)求客戶端的其它請(qǐng)求相關(guān)聯(lián)。由于代理服務(wù)器不具有經(jīng)由會(huì)話標(biāo)識(shí)符把輸入請(qǐng)求與進(jìn)行請(qǐng)求的用戶/客戶端的有效會(huì)話相關(guān)聯(lián)的能力,所以代理服務(wù)器無(wú)法在先前創(chuàng)建的會(huì)話環(huán)境內(nèi)處理該請(qǐng)求,其中先前創(chuàng)建的會(huì)話環(huán)境往往包含驗(yàn)證憑證和/或其它會(huì)話狀態(tài)信息。因此,所述代理服務(wù)器執(zhí)行一系列步驟來(lái)為客戶端創(chuàng)建有效會(huì)話。
所述代理服務(wù)器例如通過(guò)與驗(yàn)證服務(wù)器交互來(lái)啟動(dòng)對(duì)用戶的驗(yàn)證操作(步驟304),其中所述驗(yàn)證服務(wù)器用于執(zhí)行對(duì)用戶/客戶端的驗(yàn)證操作。假定驗(yàn)證操作成功,那么代理服務(wù)器為用戶生成新的會(huì)話標(biāo)識(shí)符(會(huì)話ID)(步驟306)。代理服務(wù)器生成并且高速緩存會(huì)話cookie和會(huì)話支持cookie(步驟308),它們均包含具有某種格式的新生成的會(huì)話標(biāo)識(shí)符;所述cookie可以被高速緩存在會(huì)話環(huán)境信息內(nèi)以便于進(jìn)行檢索。所述代理服務(wù)器例如通過(guò)執(zhí)行額外的步驟來(lái)創(chuàng)建所要求的任何會(huì)話狀態(tài)信息,由此來(lái)為用戶創(chuàng)建有效會(huì)話(步驟310)。然后,代理服務(wù)器繼續(xù)處理有效會(huì)話狀態(tài)信息環(huán)境內(nèi)的輸入請(qǐng)求(步驟312),并且結(jié)束所述處理。
應(yīng)注意的是,必要時(shí),可以在步驟304對(duì)用戶進(jìn)行重新驗(yàn)證。換言之,從用戶/客戶端的角度來(lái)看,即,在從用戶到一個(gè)或多個(gè)應(yīng)用服務(wù)器的一系列資源請(qǐng)求上,圖3A-3B中舉例說(shuō)明的處理支持這樣的方案,其中用戶在單個(gè)用戶會(huì)話內(nèi)可能需要被驗(yàn)證多次;此類方案將在下文中更加詳細(xì)地論述。
返回到步驟302,如果輸入的請(qǐng)求伴隨有會(huì)話cookie,則代理服務(wù)器能夠從所述會(huì)話cookie中檢索會(huì)話標(biāo)識(shí)符,其中所述會(huì)話標(biāo)識(shí)符可能與輸入請(qǐng)求以及來(lái)自請(qǐng)求客戶端的其它請(qǐng)求相關(guān)聯(lián)。就從會(huì)話cookie中檢索到的會(huì)話標(biāo)識(shí)符是否與當(dāng)前代理服務(wù)器所維護(hù)的有效會(huì)話相關(guān)聯(lián)來(lái)做出確定(步驟314)。倘若如此,則代理服務(wù)器具有經(jīng)由會(huì)話標(biāo)識(shí)符把輸入的請(qǐng)求與進(jìn)行請(qǐng)求的用戶/客戶端相關(guān)聯(lián)的能力,并且在步驟312,代理服務(wù)器可以在先前創(chuàng)建的會(huì)話環(huán)境內(nèi)處理該請(qǐng)求,此后結(jié)束所述處理。
返回到步驟314,如果所述輸入的請(qǐng)求伴隨有會(huì)話cookie,但是從所述會(huì)話cookie中檢索到的會(huì)話標(biāo)識(shí)符不與當(dāng)前代理服務(wù)器所維護(hù)的有效會(huì)話相關(guān)聯(lián),則就所述輸入的請(qǐng)求是否伴隨有會(huì)話支持cookie做出確定(步驟316)。如果不是,則代理服務(wù)器沒(méi)有機(jī)會(huì)從會(huì)話支持cookie提取會(huì)話標(biāo)識(shí)符。由于代理服務(wù)器不具有把經(jīng)由會(huì)話標(biāo)識(shí)符輸入的請(qǐng)求與進(jìn)行請(qǐng)求的用戶/客戶端的有效會(huì)話相關(guān)聯(lián)的能力,所以代理服務(wù)器無(wú)法在先前創(chuàng)建的會(huì)話環(huán)境內(nèi)處理該請(qǐng)求。因此,所述代理服務(wù)器在步驟312在新創(chuàng)建的會(huì)話環(huán)境內(nèi)處理請(qǐng)求之前執(zhí)行一系列步驟,以便經(jīng)由步驟304-310為客戶端創(chuàng)建有效會(huì)話,之后結(jié)束所述處理。
返回到步驟316,所述輸入的請(qǐng)求已經(jīng)伴隨有會(huì)話cookie,正如在步驟302所確定的那樣,但是從所述會(huì)話cookie中檢索到的會(huì)話標(biāo)識(shí)符不與當(dāng)前代理服務(wù)器所維護(hù)的有效會(huì)話相關(guān)聯(lián),正如在步驟314所確定的那樣。如果輸入的請(qǐng)求伴隨有會(huì)話支持cookie,如在步驟316確定的那樣,則代理服務(wù)器執(zhí)行一系列步驟來(lái)檢查會(huì)話支持cookie。
代理服務(wù)器例如通過(guò)解密會(huì)話支持cookie內(nèi)的命名值參數(shù)來(lái)解密會(huì)話支持cookie(步驟318)。例如,特別是如果解密的值包含除會(huì)話標(biāo)識(shí)符以外的其它信息,則代理服務(wù)器可以從解密的值中提取會(huì)話標(biāo)識(shí)符(步驟320)。然后,所述代理服務(wù)器把從會(huì)話支持cookie中提取的會(huì)話標(biāo)識(shí)符與來(lái)自會(huì)話cookie的會(huì)話標(biāo)識(shí)符進(jìn)行比較(步驟322)。然后就會(huì)話標(biāo)識(shí)符是否匹配做出確定(步驟324)。
如果在步驟324所述會(huì)話標(biāo)識(shí)符不匹配,那么代理服務(wù)器無(wú)法確信會(huì)話cookie內(nèi)的會(huì)話標(biāo)識(shí)符或者會(huì)話支持cookie內(nèi)的會(huì)話標(biāo)識(shí)符先前是有效的。換言之,代理服務(wù)器無(wú)法確定會(huì)話cookie內(nèi)的會(huì)話標(biāo)識(shí)符或者會(huì)話支持cookie內(nèi)的會(huì)話標(biāo)識(shí)符是否是由代理服務(wù)器或者其它某些反向代理服務(wù)器復(fù)制品發(fā)布的。在這一點(diǎn)上,可能有許多原因來(lái)假定某些惡意的第三方與輸入的請(qǐng)求有所牽連。例如,會(huì)話標(biāo)識(shí)符也許是惡意的代理偽造的,或者惡意的代理也許試圖重新使用失效的會(huì)話標(biāo)識(shí)符,即,所謂的重放攻擊。在任何情況下,所述代理服務(wù)器都確定為用戶創(chuàng)建新的會(huì)話。所述處理分支轉(zhuǎn)移到步驟304,以便使代理服務(wù)器可以執(zhí)行一系列步驟來(lái)基于新創(chuàng)建的會(huì)話標(biāo)識(shí)符為客戶端創(chuàng)建有效會(huì)話。然后在步驟312,在新創(chuàng)建的會(huì)話環(huán)境內(nèi)處理所述輸入的請(qǐng)求,此后結(jié)束所述處理。
如果在步驟324所述會(huì)話標(biāo)識(shí)符匹配,那么代理服務(wù)器可以確信會(huì)話標(biāo)識(shí)符由于如下原因是有效的。給定數(shù)據(jù)處理系統(tǒng)內(nèi)的一組反向代理服務(wù)器復(fù)制品已經(jīng)依照如下這種方式進(jìn)行了配置,所述方式為使它們自身之間具有信任關(guān)系;只有給定數(shù)據(jù)處理系統(tǒng)內(nèi)的反向代理服務(wù)器復(fù)制品應(yīng)該具有給定會(huì)話支持加密密鑰的副本。由于代理服務(wù)器能夠解密會(huì)話支持cookie內(nèi)的會(huì)話標(biāo)識(shí)符并且使之有效,所以只有反向代理服務(wù)器復(fù)制品能夠加密會(huì)話支持cookie內(nèi)的會(huì)話標(biāo)識(shí)符。換言之,在適當(dāng)?shù)淖罱鼤r(shí)間段期間,在反向代理服務(wù)器復(fù)制品處,所述代理服務(wù)器可以假定會(huì)話標(biāo)識(shí)符在有效的用戶會(huì)話的環(huán)境內(nèi)由反向代理服務(wù)器復(fù)制品發(fā)布。因此,所述代理服務(wù)器確定為用戶創(chuàng)建新的會(huì)話,同時(shí)重新使用提取出的會(huì)話標(biāo)識(shí)符,即,來(lái)自會(huì)話cookie或者會(huì)話支持cookie的會(huì)話標(biāo)識(shí)符。所述處理分支轉(zhuǎn)移到步驟310,以便使代理服務(wù)器可以基于先前發(fā)布的會(huì)話標(biāo)識(shí)符來(lái)為客戶端創(chuàng)建有效會(huì)話。然后在步驟312,在新創(chuàng)建的會(huì)話環(huán)境內(nèi)處理所述輸入的請(qǐng)求,此后結(jié)束所述處理。
現(xiàn)在參考圖3B,依照本發(fā)明的可替代實(shí)施例示出了可替代的一組步驟,這些步驟可用來(lái)替代圖3A中的步驟312。依照與上文中就步驟324所述方式類似的方式,可能有許多原因來(lái)假定某些惡意的第三方與輸入的請(qǐng)求有所牽連。例如,會(huì)話標(biāo)識(shí)符也許是殘缺的,以致于使代理服務(wù)器可能懷疑它是由惡意的代理偽造的,或者惡意的代理也許試圖重新使用失效的會(huì)話標(biāo)識(shí)符,即,所謂的重放攻擊。圖3B中示出的流程圖舉例說(shuō)明了可替代的實(shí)施例,其中可以通過(guò)發(fā)布會(huì)話標(biāo)識(shí)符來(lái)解決這種擔(dān)心。
圖3B中示出的可替代的子處理從確定代理服務(wù)器當(dāng)前是否懷疑或者檢測(cè)到已經(jīng)出現(xiàn)了某些類型的安全違反而開(kāi)始(步驟352)。如果不是,則繼續(xù)在與所述會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)的適當(dāng)?shù)臅?huì)話環(huán)境內(nèi)處理輸入的請(qǐng)求(步驟354),此后結(jié)束所述處理。如果代理服務(wù)器懷疑或者檢測(cè)到安全違反,則代理服務(wù)器生成新的會(huì)話標(biāo)識(shí)符(步驟356)。所述代理服務(wù)器還基于新的會(huì)話標(biāo)識(shí)符來(lái)生成并且高速緩存新的會(huì)話cookie和新的會(huì)話支持cookie(步驟358)。修改與先前會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)的會(huì)話環(huán)境信息,以便使它與新的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)(步驟360)。在步驟354繼續(xù)處理請(qǐng)求,此后結(jié)束所述處理。在下文中就圖4F-4H更加詳細(xì)地解釋在有效用戶會(huì)話期間、會(huì)話標(biāo)識(shí)符的替代結(jié)果。
現(xiàn)在參考圖4A-4H,一組框圖描述了依照本發(fā)明實(shí)施例在處理來(lái)自用戶/客戶端的請(qǐng)求的時(shí)間段內(nèi)相對(duì)于部分有代表性的會(huì)話環(huán)境的一組反向代理服務(wù)器復(fù)制品。圖4A-4H中共同的元件具有相同的參考標(biāo)記。圖4A-4H依照類似于圖2C中示出的方式描述了具有反向代理服務(wù)器復(fù)制品404-410的負(fù)載平衡服務(wù)器402。在這些例子中,代理服務(wù)器復(fù)制品410最初依照離線方式來(lái)示出,這是因?yàn)橐呀?jīng)將其保留作為故障轉(zhuǎn)移備份服務(wù)器。然而,應(yīng)該注意的是,在下文論述的故障轉(zhuǎn)移方案不要求離線備份;如果該組代理服務(wù)器復(fù)制品中的一個(gè)代理服務(wù)器發(fā)生故障,則僅僅使其離線即可,而不需要激活特殊的備份代理服務(wù)器。
如上所述,負(fù)載平衡服務(wù)器402接受來(lái)自客戶端的請(qǐng)求,并且依照適當(dāng)?shù)呢?fù)載平衡算法在一組代理服務(wù)器復(fù)制品上分配所述請(qǐng)求。圖4A-4H描述了在一系列時(shí)間點(diǎn)上一組代理服務(wù)器的狀態(tài)瞬態(tài)圖,在這期間,所述代理服務(wù)器處理一個(gè)或多個(gè)輸入的請(qǐng)求;例如,圖4A描述了初始狀態(tài),繼之以圖4B中的后續(xù)狀態(tài)。雖然該組代理服務(wù)器復(fù)制品可以處理來(lái)自多個(gè)客戶端的請(qǐng)求,但圖4A-4H僅僅涉及舉例說(shuō)明對(duì)于給定客戶端的某些動(dòng)作。代理服務(wù)器復(fù)制品404-410可以處理來(lái)自其它客戶端的其它請(qǐng)求,但圖4A-4H沒(méi)有舉例說(shuō)明響應(yīng)于這些請(qǐng)求而可能出現(xiàn)的其狀態(tài)的任何改變。在圖4A中,沒(méi)有代理服務(wù)器再為給定客戶端創(chuàng)建會(huì)話環(huán)境。
在圖4B中,代理服務(wù)器404包含會(huì)話環(huán)境412。會(huì)話環(huán)境412表示任何數(shù)據(jù)結(jié)構(gòu)、所存儲(chǔ)的數(shù)據(jù)或者任何其它元素,這些元素由代理服務(wù)器404采用以便在特定時(shí)間段內(nèi)為給定用戶/客戶端提供會(huì)話的服務(wù)器側(cè)支持。在這個(gè)例子中,因?yàn)榇矸?wù)器404接收到來(lái)自負(fù)載平衡服務(wù)器402的輸入的資源請(qǐng)求,并且所述輸入的請(qǐng)求不伴隨有會(huì)話cookie,所以創(chuàng)建了會(huì)話環(huán)境412。例如,所述輸入的請(qǐng)求可以是來(lái)自給定用戶/客戶端的第一請(qǐng)求。因此,所述代理服務(wù)器生成與所接收的請(qǐng)求以及來(lái)自同一用戶/客戶端的后續(xù)請(qǐng)求相關(guān)聯(lián)的新的會(huì)話標(biāo)識(shí)符。把會(huì)話環(huán)境412與唯一的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)并且用該唯一的會(huì)話標(biāo)識(shí)符來(lái)標(biāo)識(shí),在圖4B中該會(huì)話標(biāo)識(shí)符顯示為會(huì)話標(biāo)識(shí)符“Xi”。圖4B可以表示在執(zhí)行如圖3A所示的步驟302-310之后的代理服務(wù)器404的狀態(tài)。
現(xiàn)在參考圖4C,在某些稍晚的時(shí)間點(diǎn)上,代理服務(wù)器406包含會(huì)話環(huán)境414;依照與圖4B類似的方式,會(huì)話環(huán)境414與唯一的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)并且由該唯一的會(huì)話標(biāo)識(shí)符來(lái)標(biāo)識(shí),該會(huì)話標(biāo)識(shí)符顯示為會(huì)話標(biāo)識(shí)符“Xi”。圖4C舉例說(shuō)明了這樣的方案,其中由負(fù)載平衡服務(wù)器102接收來(lái)自給定客戶端的后續(xù)輸入請(qǐng)求,然后由負(fù)載平衡服務(wù)器102把所述請(qǐng)求轉(zhuǎn)發(fā)到代理服務(wù)器406;在本發(fā)明的一個(gè)實(shí)施例中,所述負(fù)載平衡服務(wù)器不確保來(lái)自給定客戶端的一系列請(qǐng)求在用戶會(huì)話內(nèi)被路由到同一代理服務(wù)器。因此,在圖4B-4C示出的例子中,把來(lái)自給定客戶端的初始請(qǐng)求路由到代理服務(wù)器404,并且可以把來(lái)自同一客戶端的后續(xù)請(qǐng)求路由到代理服務(wù)器404,但是負(fù)載平衡服務(wù)器402往往不確保這些后續(xù)請(qǐng)求或者任何另外的后續(xù)請(qǐng)求將被路由到代理服務(wù)器404。因此,在某些時(shí)間點(diǎn)上,負(fù)載平衡服務(wù)器402已經(jīng)把至少一個(gè)請(qǐng)求路由到代理服務(wù)器406。當(dāng)代理服務(wù)器406接收到輸入的請(qǐng)求時(shí),所述輸入的請(qǐng)求往往伴隨有會(huì)話cookie和會(huì)話支持cookie,這些cookie已經(jīng)由代理服務(wù)器404響應(yīng)于處理初始請(qǐng)求和同樣由代理服務(wù)器404處理的任何另外的后續(xù)請(qǐng)求、在給定客戶端處設(shè)定好了。代理服務(wù)器406依照?qǐng)D3A中所舉例說(shuō)明的方式使用會(huì)話cookie和會(huì)話支持cookie以接受cookie中的會(huì)話標(biāo)識(shí)符,由此能夠在代理服務(wù)器上為源于代理服務(wù)器404的會(huì)話標(biāo)識(shí)符的使用提供連續(xù)性,而不需要在負(fù)載平衡服務(wù)器402處就會(huì)話標(biāo)識(shí)符進(jìn)行特殊處理。
現(xiàn)在參考圖4D,在某些稍晚的時(shí)間點(diǎn)上,代理服務(wù)器408包含會(huì)話環(huán)境416;依照與圖4B和圖4C類似的方式,會(huì)話環(huán)境414與唯一的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)并且由該唯一的會(huì)話標(biāo)識(shí)符來(lái)標(biāo)識(shí),該會(huì)話標(biāo)識(shí)符顯示為會(huì)話標(biāo)識(shí)符“Xi”。圖4D舉例說(shuō)明了這樣的方案,其中來(lái)自給定客戶端的后續(xù)輸入請(qǐng)求由負(fù)載平衡服務(wù)器402接收,然后由負(fù)載平衡服務(wù)器402把所述請(qǐng)求轉(zhuǎn)發(fā)到代理服務(wù)器408;換言之,圖4D中舉例說(shuō)明的方案與圖4C中舉例說(shuō)明的方案相似。
在圖4D示出的例子中,來(lái)自給定客戶端的任何輸入請(qǐng)求可以由負(fù)載平衡服務(wù)器402路由到代理服務(wù)器404、代理服務(wù)器406或者代理服務(wù)器408。返回參考圖3A,當(dāng)在步驟302和314代理服務(wù)器識(shí)別出輸入請(qǐng)求伴隨有包含合法的、已識(shí)別的、有效會(huì)話標(biāo)識(shí)符的會(huì)話cookie時(shí),所述代理服務(wù)器將依照與會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)的會(huì)話環(huán)境來(lái)繼續(xù)處理輸入請(qǐng)求。由此,對(duì)于某些時(shí)間段來(lái)說(shuō),來(lái)自給定客戶端的輸入請(qǐng)求可以被路由至多個(gè)代理服務(wù)器,每個(gè)代理服務(wù)器均擁有會(huì)話環(huán)境信息,以便支持來(lái)自給定客戶端的輸入請(qǐng)求,而無(wú)需根據(jù)識(shí)別相關(guān)聯(lián)的會(huì)話標(biāo)識(shí)符失敗而觸發(fā)額外的授權(quán)操作或者任何其它類型的操作。換言之,那些輸入的后續(xù)請(qǐng)求上的相關(guān)聯(lián)會(huì)話標(biāo)識(shí)符將被識(shí)別,并且輸入請(qǐng)求將得以有效處理。在某些后續(xù)的時(shí)間點(diǎn)上,代理服務(wù)器可以執(zhí)行清除操作以便刪除或者清除會(huì)話環(huán)境。然而,所述代理服務(wù)器復(fù)制品可以被配置為在執(zhí)行已經(jīng)因超時(shí)違反而觸發(fā)的清除操作以便刪除或者清除會(huì)話環(huán)境信息之前、在閾值時(shí)間段內(nèi)保持會(huì)話環(huán)境;如果所述會(huì)話cookie或者會(huì)話支持cookie包含期滿參數(shù),則將據(jù)此來(lái)設(shè)定cookie的期滿期間。
現(xiàn)在參考圖4E,在某些稍晚的時(shí)間點(diǎn)上,代理服務(wù)器410包含會(huì)話環(huán)境418;依照與圖4B-4D類似的方式,會(huì)話環(huán)境418與唯一的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)并且由該唯一的會(huì)話標(biāo)識(shí)符來(lái)標(biāo)識(shí),該會(huì)話標(biāo)識(shí)符顯示為會(huì)話標(biāo)識(shí)符“Xi”。圖4E舉例說(shuō)明了這樣的方案,其中來(lái)自給定客戶端的后續(xù)輸入請(qǐng)求由負(fù)載平衡服務(wù)器402接收,然后由負(fù)載平衡服務(wù)器402把所述請(qǐng)求轉(zhuǎn)發(fā)到代理服務(wù)器410;換言之,圖4E中舉例說(shuō)明的方案與圖4C或圖4D中舉例說(shuō)明的方案相似。
然而,圖4E還舉例說(shuō)明了可以在支持在冗余服務(wù)器當(dāng)中進(jìn)行故障轉(zhuǎn)移操作的數(shù)據(jù)處理系統(tǒng)內(nèi)實(shí)現(xiàn)本發(fā)明。如上所述,圖4D表示當(dāng)前時(shí)間一組代理服務(wù)器復(fù)制品的狀態(tài)的瞬態(tài)圖,而圖4E表示在后續(xù)時(shí)間的瞬態(tài)圖。在所舉例說(shuō)明的時(shí)間點(diǎn)之間的時(shí)間段期間,代理服務(wù)器408已經(jīng)發(fā)生了故障并且已經(jīng)離線,而代理服務(wù)器410已經(jīng)進(jìn)入在線狀態(tài)。使用本發(fā)明中的會(huì)話支持cookie機(jī)制在代理服務(wù)器410上創(chuàng)建用于給定客戶端的會(huì)話環(huán)境,而無(wú)需中斷關(guān)于該客戶端的操作流程。例如,代理服務(wù)器410現(xiàn)在具有用于支持來(lái)自給定客戶端的請(qǐng)求的會(huì)話環(huán)境,可是代理服務(wù)器410沒(méi)有把任何不希望的操作、諸如重新驗(yàn)證用戶的操作插入到有關(guān)給定客戶端的事務(wù)中來(lái)創(chuàng)建其會(huì)話環(huán)境。通過(guò)識(shí)別先前由其它代理服務(wù)器采用的會(huì)話標(biāo)識(shí)符,代理服務(wù)器410能夠被并入關(guān)于給定客戶端的操作中,從而使得代理服務(wù)器410的操作相似于代理服務(wù)器404或者代理服務(wù)器406的那些操作,而不要求在代理服務(wù)器之間進(jìn)行任何集中的協(xié)調(diào)。此外,故障轉(zhuǎn)移事件的結(jié)果已經(jīng)通過(guò)圖3A中示出的過(guò)程處理了,而不需要再進(jìn)行關(guān)于存在故障轉(zhuǎn)移事件的任何考慮或者特地通知。
現(xiàn)在參考圖4F,在某些稍晚的時(shí)間點(diǎn)上,代理服務(wù)器410包含會(huì)話環(huán)境420;會(huì)話環(huán)境420與唯一的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)并且由該唯一的會(huì)話標(biāo)識(shí)符來(lái)標(biāo)識(shí),該會(huì)話標(biāo)識(shí)符顯示為會(huì)話標(biāo)識(shí)符“Yi”。圖4F舉例說(shuō)明了這樣的方案,其中由負(fù)載平衡服務(wù)器402接收來(lái)自給定客戶端的后續(xù)輸入請(qǐng)求,然后由負(fù)載平衡服務(wù)器402把所述請(qǐng)求轉(zhuǎn)發(fā)到代理服務(wù)器410。然而,根據(jù)可配置的規(guī)則組,代理服務(wù)器410可能檢測(cè)到或者懷疑存在安全違反。當(dāng)其自身啟動(dòng)時(shí),例如就圖3B所討論的那樣,代理服務(wù)器410丟棄先前已經(jīng)在多個(gè)代理服務(wù)器上采用的另外的有效的會(huì)話標(biāo)識(shí)符,即會(huì)話標(biāo)識(shí)符“Xi”,如圖4B-4E所示。因此,代理服務(wù)器已經(jīng)發(fā)布了新的會(huì)話標(biāo)識(shí)符,即,會(huì)話標(biāo)識(shí)符“Yi”,其已經(jīng)與給定客戶端的會(huì)話環(huán)境信息相關(guān)聯(lián),并且已經(jīng)包括在返回到給定客戶端的會(huì)話cookie和會(huì)話支持cookie內(nèi)。
依照此方式,任何代理服務(wù)器復(fù)制品可以用新的會(huì)話標(biāo)識(shí)符來(lái)替代另外的有效的會(huì)話標(biāo)識(shí)符,而不會(huì)中斷關(guān)于給定客戶端的操作流程。換言之,代理服務(wù)器410現(xiàn)在具有用于支持來(lái)自給定客戶端的請(qǐng)求的新的會(huì)話標(biāo)識(shí)符,可是代理服務(wù)器410沒(méi)有在創(chuàng)建新的會(huì)話標(biāo)識(shí)符后、把任何不希望的操作、諸如重新驗(yàn)證用戶的操作插入到有關(guān)給定客戶端的事務(wù)中。不過(guò)應(yīng)當(dāng)指出,如果期望的話,例如可以根據(jù)檢測(cè)到的或者懷疑存在的安全違反的嚴(yán)重性來(lái)對(duì)用戶/客戶端重新驗(yàn)證;圖3A中的步驟304表明圖3A內(nèi)舉例說(shuō)明的處理支持重新驗(yàn)證操作。
現(xiàn)在參考圖4G,在某些稍晚的時(shí)間點(diǎn)上,代理服務(wù)器406包含會(huì)話環(huán)境422;依照類似于圖4F的方式,會(huì)話環(huán)境422與唯一的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)并且由該唯一的會(huì)話標(biāo)識(shí)符來(lái)標(biāo)識(shí),該會(huì)話標(biāo)識(shí)符顯示為會(huì)話標(biāo)識(shí)符“Yi”。圖4G舉例說(shuō)明了這樣的方案,其中由負(fù)載平衡服務(wù)器402接收來(lái)自給定客戶端的后續(xù)輸入請(qǐng)求,然后由負(fù)載平衡服務(wù)器402把所述請(qǐng)求轉(zhuǎn)發(fā)到代理服務(wù)器406。
當(dāng)代理服務(wù)器406從伴隨輸入請(qǐng)求的會(huì)話cookie中提取新的會(huì)話標(biāo)識(shí)符、即會(huì)話標(biāo)識(shí)符“Yi”時(shí),代理服務(wù)器406將不會(huì)識(shí)別新的會(huì)話標(biāo)識(shí)符。然而,代理服務(wù)器406依照?qǐng)D3A中所舉例說(shuō)明的方式使用會(huì)話cookie和會(huì)話支持cookie來(lái)接收cookie中的新的會(huì)話標(biāo)識(shí)符,由此為源于代理服務(wù)器410的會(huì)話標(biāo)識(shí)符的使用在代理服務(wù)器410和406之間提供連續(xù)性,而不需要在負(fù)載平衡服務(wù)器402處就所述會(huì)話標(biāo)識(shí)符進(jìn)行特殊處理。此外,在無(wú)需對(duì)新的會(huì)話標(biāo)識(shí)符進(jìn)行任何集中通信或者無(wú)需在代理服務(wù)器之間對(duì)新會(huì)話標(biāo)識(shí)符進(jìn)行任何反向信道或側(cè)信道通信的情況下,代理服務(wù)器406已經(jīng)接受了新的會(huì)話標(biāo)識(shí)符。
現(xiàn)在參考圖4H,在某些稍晚的時(shí)間點(diǎn)上,代理服務(wù)器404包含會(huì)話環(huán)境424;依照類似于圖4F和圖4G的方式,會(huì)話環(huán)境424與唯一的會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)并且由該唯一的會(huì)話標(biāo)識(shí)符來(lái)標(biāo)識(shí),該會(huì)話標(biāo)識(shí)符顯示為會(huì)話標(biāo)識(shí)符“Yi”。圖4H舉例說(shuō)明了這樣的方案,其中來(lái)自給定客戶端的后續(xù)輸入請(qǐng)求由負(fù)載平衡服務(wù)器402接收,然后由負(fù)載平衡服務(wù)器402把所述請(qǐng)求轉(zhuǎn)發(fā)到代理服務(wù)器404,其最初未能識(shí)別新的會(huì)話標(biāo)識(shí)符、可是仍接受新的會(huì)話標(biāo)識(shí)符。換言之,圖4H中舉例說(shuō)明的方案與圖4G中舉例說(shuō)明的方案相似。在圖4H示出的例子中,可以由負(fù)載平衡服務(wù)器402把來(lái)自給定客戶端的輸入請(qǐng)求路由到代理服務(wù)器404、代理服務(wù)器406或者代理服務(wù)器410;通過(guò)使用伴隨的會(huì)話cookie,所述請(qǐng)求將由代理服務(wù)器復(fù)制品使用當(dāng)前會(huì)話環(huán)境信息來(lái)處理。
鑒于如上文所述的本發(fā)明的示例性實(shí)施例,本發(fā)明的優(yōu)點(diǎn)應(yīng)當(dāng)是明顯的。在典型的、現(xiàn)有技術(shù)中的、集中式解決方案中,服務(wù)器在集中式數(shù)據(jù)存儲(chǔ)器中的多個(gè)服務(wù)器復(fù)制品上維護(hù)會(huì)話狀態(tài),或者充當(dāng)集中式通信路由器,以確保所有服務(wù)器接收到會(huì)話狀態(tài)信息的更新。例如,服務(wù)器在建立新的會(huì)話之前聯(lián)系集中式服務(wù)器。在這種集中式解決方案中,容錯(cuò)和冗余可能要求復(fù)雜的修改。
相比之下,本發(fā)明提供了分散式的解決方案。利用本發(fā)明,不要求額外的集中式服務(wù)器;所述代理服務(wù)器本身確定何時(shí)應(yīng)該并且可以創(chuàng)建新的會(huì)話。利用本發(fā)明,代理服務(wù)器不發(fā)布新的會(huì)話標(biāo)識(shí)符,除非它確定它必須這樣做。代理服務(wù)器試圖在能夠使會(huì)話標(biāo)識(shí)符有效時(shí)重新使用會(huì)話標(biāo)識(shí)符;當(dāng)擁有會(huì)話cookie或者會(huì)話支持cookie內(nèi)的會(huì)話標(biāo)識(shí)符時(shí),如果代理服務(wù)器可以使所述會(huì)話標(biāo)識(shí)符有效,則它重新使用所述會(huì)話標(biāo)識(shí)符。
假定所述代理服務(wù)器維護(hù)持續(xù)了一定時(shí)間段的會(huì)話環(huán)境。因此,本發(fā)明提供的解決方案具有“完全解扣(round tripping)”會(huì)話標(biāo)識(shí)符的益處。例如,在給定的用戶會(huì)話內(nèi),如果用戶提交了一資源請(qǐng)求,所述資源請(qǐng)求被路由至早已處理了來(lái)自該用戶的請(qǐng)求的代理服務(wù)器,那么根據(jù)先前已處理的請(qǐng)求,所述代理服務(wù)器仍可具有有效的會(huì)話環(huán)境。
本發(fā)明的兩個(gè)重要的優(yōu)點(diǎn)涉及故障轉(zhuǎn)移操作和負(fù)載平衡操作。首先,本發(fā)明可以被集成在支持故障轉(zhuǎn)移的數(shù)據(jù)處理環(huán)境內(nèi),其中包括代理服務(wù)器當(dāng)中的故障轉(zhuǎn)移機(jī)制。其次,本發(fā)明可以被集成在支持無(wú)粘性負(fù)載平衡操作的數(shù)據(jù)處理環(huán)境內(nèi)。
此外,如果代理服務(wù)器例如根據(jù)可疑請(qǐng)求而檢測(cè)到某些類型的安全薄弱性或者異常,其中所述可疑請(qǐng)求是由先前通過(guò)驗(yàn)證的用戶/客戶端來(lái)按照推測(cè)發(fā)布的,則所述代理服務(wù)器可以改變會(huì)話標(biāo)識(shí)符,這最終導(dǎo)致在同一用戶會(huì)話期間、新的會(huì)話標(biāo)識(shí)符由所有其它代理服務(wù)器復(fù)制品來(lái)使用,由此改善了性能。
重要的是應(yīng)該注意到,雖然已經(jīng)在完全發(fā)揮功能的數(shù)據(jù)處理系統(tǒng)的環(huán)境中描述了本發(fā)明,但是本領(lǐng)域普通技術(shù)人員將理解的是,本發(fā)明中的處理能夠以計(jì)算機(jī)可讀介質(zhì)中的指令的形式以及各種其它形式來(lái)分配,而不管實(shí)際上用于執(zhí)行所述分配的信號(hào)承載介質(zhì)的特殊類型如何。計(jì)算機(jī)可讀介質(zhì)的例子包括諸如EPROM、ROM、磁帶、紙張、軟盤(pán)、硬盤(pán)驅(qū)動(dòng)器、RAM和CD-ROM之類的介質(zhì),并且還包括諸如數(shù)字和模擬通信鏈路之類的傳輸型介質(zhì)。
方法總體上被設(shè)想為是導(dǎo)致所期望的結(jié)果的自相一致的步驟序列。這些步驟要求物理量的物理操作。通常但不是必需的,這些量采用能夠進(jìn)行存儲(chǔ)、傳送、組合、比較等操作的電或者磁信號(hào)的形式。有時(shí)為了方便,主要是為了通用,把這些信號(hào)稱為比特、值、參數(shù)、項(xiàng)、元素、對(duì)象、符號(hào)、字符、術(shù)語(yǔ)、數(shù)字等。然而,應(yīng)當(dāng)指出,所有這些術(shù)語(yǔ)和類似術(shù)語(yǔ)將與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且僅僅是應(yīng)用于這些量的方便的標(biāo)記。
已經(jīng)為了舉例說(shuō)明的目的給出了對(duì)本發(fā)明的描述,但是這不意味著是窮舉的或者把本發(fā)明限制為所公開(kāi)的實(shí)施例。許多修改和變化對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的。選擇這些實(shí)施例,以解釋本發(fā)明的原理及其實(shí)際應(yīng)用,并且使其它本領(lǐng)域普通技術(shù)人員理解本發(fā)明,以便利用適合于其它所設(shè)想的用途的各種修改來(lái)實(shí)現(xiàn)各種實(shí)施例。
權(quán)利要求
1.一種用于在數(shù)據(jù)處理系統(tǒng)內(nèi)的一組服務(wù)器當(dāng)中管理會(huì)話標(biāo)識(shí)符的方法,該計(jì)算機(jī)實(shí)現(xiàn)的方法包括在該組服務(wù)器中的第一服務(wù)器處接收來(lái)自客戶端的第一資源請(qǐng)求;響應(yīng)于對(duì)第一資源請(qǐng)求不伴隨有包含會(huì)話標(biāo)識(shí)符的cookie的確定,在第一服務(wù)器上生成第一會(huì)話標(biāo)識(shí)符,并且由第一服務(wù)器把第一會(huì)話標(biāo)識(shí)符與在第一服務(wù)器上新創(chuàng)建的第一會(huì)話相關(guān)聯(lián),其中所述第一會(huì)話具有對(duì)于來(lái)自客戶端的資源請(qǐng)求而言將由第一服務(wù)器采用的會(huì)話狀態(tài)信息;并且把對(duì)第一資源請(qǐng)求的響應(yīng)從第一服務(wù)器發(fā)送至客戶端,其中對(duì)第一資源請(qǐng)求的響應(yīng)伴隨有由第一服務(wù)器生成的第一cookie和第二cookie,其中第一cookie包含第一會(huì)話標(biāo)識(shí)符的副本,而第二cookie包含已經(jīng)使用密鑰進(jìn)行加密保護(hù)的第一會(huì)話標(biāo)識(shí)符的副本,其中該組服務(wù)器中的每一服務(wù)器均具有所述密鑰的副本。
2.如權(quán)利要求1所述的方法,還包括在第一服務(wù)器上創(chuàng)建第一會(huì)話之前,對(duì)于客戶端的用戶成功地執(zhí)行驗(yàn)證操作。
3.如權(quán)利要求1所述的方法,還包括在該組服務(wù)器中的第二服務(wù)器處接收來(lái)自客戶端的第二資源請(qǐng)求,其中所述第二資源請(qǐng)求伴隨有第一cookie的副本和第二cookie的副本。
4.如權(quán)利要求3所述的方法,還包括從第一cookie的副本中獲得第一會(huì)話標(biāo)識(shí)符;并且響應(yīng)于對(duì)第二服務(wù)器從第一cookie的副本中識(shí)別出第一會(huì)話標(biāo)識(shí)符的確定,相對(duì)于與第二服務(wù)器上維護(hù)的第一會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)的會(huì)話狀態(tài)信息來(lái)處理第二資源請(qǐng)求。
5.如權(quán)利要求3所述的方法,還包括從第一cookie的副本中獲得第一會(huì)話標(biāo)識(shí)符;響應(yīng)于對(duì)第二服務(wù)器沒(méi)有從第一cookie的副本中識(shí)別出第一會(huì)話標(biāo)識(shí)符的確定,在第二服務(wù)器處使用密鑰的副本來(lái)解密至少一部分第二cookie;響應(yīng)于第二服務(wù)器對(duì)來(lái)自第二cookie的解密部分的會(huì)話標(biāo)識(shí)符與第一會(huì)話標(biāo)識(shí)符相同的確定,由第二服務(wù)器把第一會(huì)話標(biāo)識(shí)符與在第二服務(wù)器上新創(chuàng)建的第二會(huì)話相關(guān)聯(lián),其中第二會(huì)話具有對(duì)于來(lái)自客戶端的資源請(qǐng)求而言將由第二服務(wù)器采用的會(huì)話狀態(tài)信息。
6.如權(quán)利要求3所述的方法,還包括從第一cookie的副本中獲得第一會(huì)話標(biāo)識(shí)符;響應(yīng)于對(duì)第二服務(wù)器沒(méi)有從第一cookie的副本中識(shí)別出第一會(huì)話標(biāo)識(shí)符的確定,在第二服務(wù)器處使用密鑰的副本來(lái)解密至少一部分第二cookie;響應(yīng)于第二服務(wù)器對(duì)來(lái)自第二cookie的解密部分的會(huì)話標(biāo)識(shí)符與第一會(huì)話標(biāo)識(shí)符不相同的確定,在第二服務(wù)器上生成第二會(huì)話標(biāo)識(shí)符,并且由第二服務(wù)器把第二會(huì)話標(biāo)識(shí)符與在第二服務(wù)器上新創(chuàng)建的第二會(huì)話相關(guān)聯(lián),其中第二會(huì)話具有對(duì)于來(lái)自客戶端的資源請(qǐng)求而言將由第二服務(wù)器采用的會(huì)話狀態(tài)信息。
7.如權(quán)利要求3所述的方法,還包括在數(shù)據(jù)處理系統(tǒng)內(nèi)的負(fù)載平衡服務(wù)器處接收來(lái)自客戶端的第二資源請(qǐng)求;在所述負(fù)載平衡服務(wù)器處評(píng)估負(fù)載平衡算法;確定適當(dāng)?shù)姆?wù)器來(lái)接收第二資源請(qǐng)求,而不需要檢查伴隨第二資源請(qǐng)求的會(huì)話標(biāo)識(shí)符;并且在第二服務(wù)器處接收第二資源請(qǐng)求之前,把第二資源請(qǐng)求從負(fù)載平衡服務(wù)器轉(zhuǎn)發(fā)至第二服務(wù)器。
8.如權(quán)利要求3所述的方法,其中所述第二服務(wù)器是第一服務(wù)器。
9.如權(quán)利要求3所述的方法,還包括把對(duì)第二資源請(qǐng)求的第二響應(yīng)從第二服務(wù)器發(fā)送到客戶端,其中所述第二響應(yīng)伴隨有由第二服務(wù)器生成的第一cookie的副本和第二cookie的副本。
10.如權(quán)利要求3所述的方法,還包括在該組服務(wù)器中的第三服務(wù)器處接收來(lái)自客戶端的第三資源請(qǐng)求,其中所述第三資源請(qǐng)求伴隨有第一cookie的副本和第二cookie的副本;響應(yīng)于第三服務(wù)器確定對(duì)于第三資源請(qǐng)求有檢測(cè)到的安全違反或者受到質(zhì)疑的安全違反,在第三服務(wù)器上生成第三會(huì)話標(biāo)識(shí)符,并且用第三會(huì)話標(biāo)識(shí)符替代第一會(huì)話標(biāo)識(shí)符,由此由第三服務(wù)器把第三會(huì)話標(biāo)識(shí)符與第三服務(wù)器上的第三會(huì)話相關(guān)聯(lián),其中第三會(huì)話具有對(duì)于來(lái)自客戶端的資源請(qǐng)求而言將由第三服務(wù)器采用的會(huì)話狀態(tài)信息;并且把對(duì)第三資源請(qǐng)求的響應(yīng)從第三服務(wù)器發(fā)送至客戶端,其中對(duì)第三資源請(qǐng)求的響應(yīng)伴隨有由第三服務(wù)器生成的第三cookie和第四cookie,其中所述第三cookie包含第三會(huì)話標(biāo)識(shí)符的副本,而第四cookie包含已經(jīng)使用密鑰進(jìn)行加密保護(hù)的第三會(huì)話標(biāo)識(shí)符的副本。
11.如權(quán)利要求1所述的方法,還包括檢測(cè)該組服務(wù)器中的服務(wù)器的故障;并且支持?jǐn)?shù)據(jù)處理系統(tǒng)內(nèi)的故障轉(zhuǎn)移操作,由此在不用為客戶端替代由發(fā)生故障的服務(wù)器維護(hù)的會(huì)話的會(huì)話標(biāo)識(shí)符的情況下,把發(fā)生故障的服務(wù)器從該組服務(wù)器內(nèi)的在線狀態(tài)中移除。
12.一種用于在數(shù)據(jù)處理系統(tǒng)內(nèi)的一組服務(wù)器當(dāng)中管理會(huì)話標(biāo)識(shí)符的設(shè)備,所述設(shè)備包括用于在該組服務(wù)器中的第一服務(wù)器處接收來(lái)自客戶端的第一資源請(qǐng)求的裝置;用于響應(yīng)于對(duì)第一資源請(qǐng)求不伴隨有包含會(huì)話標(biāo)識(shí)符的cookie的確定,在第一服務(wù)器上生成第一會(huì)話標(biāo)識(shí)符并且由第一服務(wù)器把第一會(huì)話標(biāo)識(shí)符與在第一服務(wù)器上新創(chuàng)建的第一會(huì)話相關(guān)聯(lián)的裝置,其中所述第一會(huì)話具有對(duì)于來(lái)自客戶端的資源請(qǐng)求而言將由第一服務(wù)器采用的會(huì)話狀態(tài)信息;用于把對(duì)第一資源請(qǐng)求的響應(yīng)從第一服務(wù)器發(fā)送至客戶端的裝置,其中對(duì)第一資源請(qǐng)求的響應(yīng)伴隨有由第一服務(wù)器生成的第一cookie和第二cookie,其中第一cookie包含第一會(huì)話標(biāo)識(shí)符的副本,而第二cookie包含已經(jīng)使用密鑰進(jìn)行加密保護(hù)的第一會(huì)話標(biāo)識(shí)符的副本,其中該組服務(wù)器中的每一服務(wù)器均具有所述密鑰的副本。
13.如權(quán)利要求12所述的設(shè)備,還包括用于在該組服務(wù)器中的第二服務(wù)器處接收來(lái)自客戶端的第二資源請(qǐng)求的裝置,其中所述第二資源請(qǐng)求伴隨有第一cookie的副本和第二cookie的副本;用于從第一cookie的副本中獲得第一會(huì)話標(biāo)識(shí)符的裝置;以及用于響應(yīng)于對(duì)第二服務(wù)器從第一cookie的副本中識(shí)別出第一會(huì)話標(biāo)識(shí)符的確定,相對(duì)于與第二服務(wù)器上維護(hù)的第一會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)的會(huì)話狀態(tài)信息來(lái)處理第二資源請(qǐng)求的裝置。
14.如權(quán)利要求12所述的設(shè)備,還包括用于在該組服務(wù)器中的第二服務(wù)器處接收來(lái)自客戶端的第二資源請(qǐng)求的裝置,其中所述第二資源請(qǐng)求伴隨有第一cookie的副本和第二cookie的副本;用于從第一cookie的副本中獲得第一會(huì)話標(biāo)識(shí)符的裝置;用于響應(yīng)于對(duì)第二服務(wù)器沒(méi)有從第一cookie的副本中識(shí)別出第一會(huì)話標(biāo)識(shí)符的確定,在第二服務(wù)器處使用密鑰的副本來(lái)解密至少一部分第二cookie的裝置;用于響應(yīng)于第二服務(wù)器對(duì)來(lái)自第二cookie的解密部分的會(huì)話標(biāo)識(shí)符與第一會(huì)話標(biāo)識(shí)符相同的確定,由第二服務(wù)器把第一會(huì)話標(biāo)識(shí)符與在第二服務(wù)器上新創(chuàng)建的第二會(huì)話相關(guān)聯(lián)的裝置,其中第二會(huì)話具有對(duì)于來(lái)自客戶端的資源請(qǐng)求而言將由第二服務(wù)器采用的會(huì)話狀態(tài)信息。
15.如權(quán)利要求12所述的設(shè)備,還包括用于在該組服務(wù)器中的第二服務(wù)器處接收來(lái)自客戶端的第二資源請(qǐng)求的裝置,其中所述第二資源請(qǐng)求伴隨有第一cookie的副本和第二cookie的副本;用于從第一cookie的副本中獲得第一會(huì)話標(biāo)識(shí)符的裝置;用于響應(yīng)于對(duì)第二服務(wù)器沒(méi)有從第一cookie的副本中識(shí)別出第一會(huì)話標(biāo)識(shí)符的確定,在第二服務(wù)器處使用密鑰的副本來(lái)解密至少一部分第二cookie的裝置;用于響應(yīng)于第二服務(wù)器對(duì)來(lái)自第二cookie的解密部分的會(huì)話標(biāo)識(shí)符與第一會(huì)話標(biāo)識(shí)符不相同的確定,在第二服務(wù)器上生成第二會(huì)話標(biāo)識(shí)符并且由第二服務(wù)器把第二會(huì)話標(biāo)識(shí)符與在第二服務(wù)器上新創(chuàng)建的第二會(huì)話相關(guān)聯(lián)的裝置,其中第二會(huì)話具有對(duì)于來(lái)自客戶端的資源請(qǐng)求而言將由第二服務(wù)器采用的會(huì)話狀態(tài)信息。
16.一種在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,用于在數(shù)據(jù)處理系統(tǒng)內(nèi)使用,以便在一組服務(wù)器當(dāng)中管理會(huì)話標(biāo)識(shí)符,所述計(jì)算機(jī)程序產(chǎn)品包括用于實(shí)現(xiàn)如先前方法權(quán)利要求所述的任一方法的指令。
全文摘要
提供了一種用于管理一組服務(wù)器中的會(huì)話標(biāo)識(shí)符的方法。所述服務(wù)器接收來(lái)自客戶端的資源請(qǐng)求,并且所述服務(wù)器維護(hù)具有會(huì)話狀態(tài)信息的會(huì)話,其中每一會(huì)話與一會(huì)話標(biāo)識(shí)符相關(guān)聯(lián)。當(dāng)服務(wù)器向客戶端發(fā)送響應(yīng)時(shí),所述響應(yīng)伴隨有第一cookie和第二cookie,其中所述第一cookie包含會(huì)話標(biāo)識(shí)符的副本,而第二cookie包含已經(jīng)使用密鑰進(jìn)行加密保護(hù)的會(huì)話標(biāo)識(shí)符的副本,其中該組服務(wù)器中的每一服務(wù)器均具有密鑰的副本。如果服務(wù)器沒(méi)有識(shí)別出第一cookie中的會(huì)話標(biāo)識(shí)符,那么所述服務(wù)器解密第二cookie,并且如果來(lái)自cookie的會(huì)話標(biāo)識(shí)符是相同的,那么服務(wù)器將重新使用會(huì)話標(biāo)識(shí)符而不是生成新的會(huì)話標(biāo)識(shí)符。
文檔編號(hào)H04L29/06GK1878170SQ200610004270
公開(kāi)日2006年12月13日 申請(qǐng)日期2006年2月13日 優(yōu)先權(quán)日2005年6月6日
發(fā)明者彼得·S.·卡爾弗特, 布賴恩·伊頓, 本杰明·B.·哈莫恩, 埃里克·J.·伍德 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司