專利名稱:會話信息存儲系統(tǒng)及應(yīng)用服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本申請涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種會話信息存儲系統(tǒng)及應(yīng)用服務(wù)器。
背景技術(shù):
在一個(gè)大型的網(wǎng)絡(luò)系統(tǒng)中,可能包含多種應(yīng)用,每種應(yīng)用由至少一臺應(yīng)用服務(wù)器 承載,以淘寶網(wǎng)為例,其中包括了登錄應(yīng)用、商品詳情查詢應(yīng)用、交易應(yīng)用等多種WEB應(yīng)用, 客戶端通過與這些應(yīng)用服務(wù)器之間建立的SESSION(會話)連接,進(jìn)行應(yīng)用操作。在上述客 戶端與服務(wù)器建立SESSION連接并交互的過程中產(chǎn)生的所有會話信息可以存儲在應(yīng)用服 務(wù)器中,但是由于大型的網(wǎng)絡(luò)系統(tǒng)中應(yīng)用服務(wù)器通常以集群的方式出現(xiàn),即應(yīng)用集群中可 能包含多臺應(yīng)用服務(wù)器,而客戶端訪問不同應(yīng)用時(shí)都可能隨機(jī)與應(yīng)用集群中的某一臺應(yīng)用 服務(wù)器建立連接,為了保證無論與哪一臺應(yīng)用服務(wù)器建立連接,都可以搜索到該客戶端在 前一次訪問應(yīng)用過程中所產(chǎn)生的會話信息,這些會話信息都需要同步到集群中的每一臺應(yīng) 用服務(wù)器,這樣的同步過程將耗費(fèi)大量時(shí)間,且容易出現(xiàn)同步錯誤,并且在客戶端眾多的情 況下檢索會話信息的效率也不高?,F(xiàn)有技術(shù)為了克服在應(yīng)用服務(wù)器中存儲SESSION信息的缺陷,可以將每個(gè)客戶端 的SESSION信息寫入客戶端C00KIE,并由客戶端將COOKIE存儲在自身瀏覽器內(nèi),每次應(yīng) 用服務(wù)器可以從客戶端讀取該COOKIE中的SESSION信息。發(fā)明實(shí)用新型人在對現(xiàn)有技術(shù) 的研究和實(shí)踐過程中發(fā)現(xiàn),由于客戶端的每一次應(yīng)用訪問請求中都會包含C00KIE,因此對 于大型網(wǎng)絡(luò)系統(tǒng)來說,就需要借助COOKIE存儲更多的信息,但是由于每個(gè)客戶端瀏覽器對 COOKIE的總數(shù)和大小有一定的限制,因此當(dāng)SESSION信息較多時(shí),采用COOKIE將導(dǎo)致存儲 SESSION信息失?。惶貏e對于禁用COOKIE的瀏覽器來說,將無法實(shí)現(xiàn)對SESSION信息的存 儲。
實(shí)用新型內(nèi)容本申請實(shí)施例的目的是提供一種會話信息存儲系統(tǒng)及應(yīng)用服務(wù)器,以解決現(xiàn)有系 統(tǒng)中采用COOKIE存儲SESSION信息,當(dāng)信息量較大時(shí)導(dǎo)致存儲失敗的問題。為解決上述技術(shù)問題,本申請實(shí)施例提供了一種會話信息存儲系統(tǒng),是這樣實(shí)現(xiàn) 的一種會話信息存儲系統(tǒng),包括客戶端、應(yīng)用服務(wù)器和緩存服務(wù)器,所述應(yīng)用服務(wù)器,用于與所述客戶端建立會話連接后,接收所述客戶端發(fā)送的應(yīng) 用訪問請求,并將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會話信息傳輸至 緩存服務(wù)器;所述緩存服務(wù)器,用于接收所述應(yīng)用服務(wù)器傳輸?shù)臅捫畔⒑?,存儲所述會話?肩、ο為解決上述技術(shù)問題,本申請實(shí)施例還提供了一種應(yīng)用服務(wù)器,是這樣實(shí)現(xiàn)的一種應(yīng)用服務(wù)器,包括[0011]接收單元,用于與客戶端建立會話連接后,接收所述客戶端發(fā)送的應(yīng)用訪問請 求;傳輸單元,用于將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會話信 息傳輸至緩存服務(wù)器進(jìn)行存儲??梢?,本申請實(shí)施例中應(yīng)用服務(wù)器與客戶端建立會話連接后,接收客戶端發(fā)送的 應(yīng)用訪問請求,應(yīng)用服務(wù)器將客戶端在該會話連接下根據(jù)應(yīng)用訪問產(chǎn)生的會話信息傳輸至 緩存服務(wù)器進(jìn)行存儲。由于本申請實(shí)施例將會話信息存儲在獨(dú)立于應(yīng)用服務(wù)器的緩存服務(wù) 器中,而不是通過客戶端COOKIE進(jìn)行存儲,因此存儲的空間不受限制,并且也不受客戶端 瀏覽器對COOKIE使用的限制,能夠應(yīng)用于會話信息較多的大型網(wǎng)絡(luò)系統(tǒng),實(shí)現(xiàn)服務(wù)器側(cè)對 會話信息的海量存儲和維護(hù)。
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 申請中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提 下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請會話信息存儲系統(tǒng)的第一實(shí)施例結(jié)構(gòu)圖;圖2為應(yīng)用本申請系統(tǒng)第一實(shí)施例進(jìn)行會話信息存儲的流程圖;圖3為本申請會話信息存儲系統(tǒng)的第二實(shí)施例結(jié)構(gòu)圖;圖4為應(yīng)用本申請系統(tǒng)第二實(shí)施例進(jìn)行會話信息存儲的一個(gè)流程圖;圖5為應(yīng)用本申請系統(tǒng)第二實(shí)施例進(jìn)行會話信息存儲的另一個(gè)流程圖;圖6為本申請應(yīng)用服務(wù)器的第一實(shí)施例結(jié)構(gòu)圖;圖7為本申請應(yīng)用服務(wù)器的第二實(shí)施例結(jié)構(gòu)圖;圖8為本申請應(yīng)用服務(wù)器的第三實(shí)施例結(jié)構(gòu)圖。
具體實(shí)施方式
本申請實(shí)施例提供一種會話信息存儲系統(tǒng)及應(yīng)用服務(wù)器。為了使本技術(shù)領(lǐng)域的人員更好地理解本申請實(shí)施例中的技術(shù)方案,并使本申請實(shí) 施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,
以下結(jié)合附圖對本申請實(shí)施例中技術(shù)方 案作進(jìn)一步詳細(xì)的說明。參見圖1,為本申請會話信息存儲系統(tǒng)的第一實(shí)施例結(jié)構(gòu)圖,該系統(tǒng)包括客戶端 110、應(yīng)用服務(wù)器420和緩存服務(wù)器430。其中,所述應(yīng)用服務(wù)器420,用于與所述客戶端410建立會話連接后,接收所述客 戶端410發(fā)送的應(yīng)用訪問請求,并將所述客戶端410在所述會話連接下根據(jù)所述應(yīng)用訪問 產(chǎn)生的會話信息傳輸至緩存服務(wù)器430 ;所述緩存服務(wù)器430,用于接收所述應(yīng)用服務(wù)器420傳輸?shù)臅捫畔⒑螅鎯λ?br>
會話{曰息ο參見圖2,為應(yīng)用本申請系統(tǒng)第一實(shí)施例進(jìn)行會話信息存儲的流程圖步驟201 應(yīng)用服務(wù)器與客戶端建立會話連接后,接收客戶端發(fā)送的應(yīng)用訪問請
5求。在網(wǎng)絡(luò)應(yīng)用中,應(yīng)用服務(wù)器與客戶端建立的SESSION會話連接通常是指用戶通過 客戶端瀏覽器瀏覽某個(gè)網(wǎng)站時(shí),從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過的這段時(shí)間,也就瀏覽這 個(gè)網(wǎng)站所花費(fèi)的時(shí)間,瀏覽網(wǎng)站的過程,也就是對網(wǎng)站特定應(yīng)用系統(tǒng)進(jìn)行訪問的過程。當(dāng)應(yīng) 用服務(wù)器與客戶端建立了 SESSION連接后,客戶端在訪問某個(gè)特定應(yīng)用時(shí)需要向應(yīng)用服務(wù) 器發(fā)送應(yīng)用訪問請求,以淘寶網(wǎng)為例,當(dāng)通過客戶端點(diǎn)擊瀏覽商品時(shí),對應(yīng)于向應(yīng)用服務(wù)器 發(fā)送了瀏覽商品的應(yīng)用訪問請求。步驟202 應(yīng)用服務(wù)器將客戶端在會話連接下根據(jù)應(yīng)用訪問產(chǎn)生的會話信息傳輸 至緩存服務(wù)器進(jìn)行存儲,結(jié)束當(dāng)前流程?,F(xiàn)有技術(shù)中,將根據(jù)應(yīng)用訪問產(chǎn)生的會話信息存儲在應(yīng)用服務(wù)器本身將導(dǎo)致集群 中的應(yīng)用服務(wù)器同步耗費(fèi)大量時(shí)間和出現(xiàn)同步錯誤,而將會話信息存儲在獨(dú)立于應(yīng)用服務(wù) 器的緩存服務(wù)器中,無需進(jìn)行同步,應(yīng)用集群中的所有應(yīng)用服務(wù)器都與該緩存服務(wù)器通信 即可獲取需要的會話信息;另外,緩存服務(wù)器的容量可以根據(jù)需要不斷進(jìn)行擴(kuò)充,也克服了 現(xiàn)有技術(shù)中將會話信息存儲在客戶端COOKIE中的缺陷。參見圖3,本申請會話信息存儲系統(tǒng)的第二實(shí)施例結(jié)構(gòu)圖,該系統(tǒng)包括配置服務(wù) 器310、應(yīng)用服務(wù)器320、緩存服務(wù)器330和客戶端340。其中,所述配置服務(wù)器310,用于當(dāng)所述應(yīng)用服務(wù)器320預(yù)先訂閱會話信息的配置 信息后,在更新所述配置信息后推送所述更新后的配置信息到所述應(yīng)用服務(wù)器320 ;所述應(yīng)用服務(wù)器320,用于根據(jù)所述更新后的配置信息替換原有的配置信息,并且 用于與所述客戶端340建立會話連接后,接收客戶端340發(fā)送的包含客戶端340C00KIE的 應(yīng)用訪問請求,查詢配置服務(wù)器310推送的配置信息,當(dāng)所述配置信息指示將所述會話信 息存儲在所述應(yīng)用服務(wù)器320時(shí),將所述會話信息按照所述會話標(biāo)識存儲在所述應(yīng)用服務(wù) 器320中,當(dāng)所述配置信息指示將所述會話信息存儲在所述COOKIE中時(shí),將所述會話信息 寫入所述C00KIE,并返回所述COOKIE至所述客戶端340,當(dāng)所述配置信息指示將所述會話 信息存儲在緩存服務(wù)器330時(shí),將會話信息傳輸至緩存服務(wù)器330。所述緩存服務(wù)器330,用于接收所述應(yīng)用服務(wù)器320傳輸?shù)臅捫畔⒑?,存儲所?會話{曰息ο所述客戶端340,用于存儲所述應(yīng)用服務(wù)器320返回的寫入了會話信息的所述 COOKIE。進(jìn)一步,所述應(yīng)用服務(wù)器320,還用于當(dāng)接收到所述客戶端330發(fā)送的首次訪問所 述應(yīng)用服務(wù)器320的請求時(shí),為所述客戶端330創(chuàng)建所述會話,并為所述會話分配唯一的會 話標(biāo)識。具體的,所述應(yīng)用服務(wù)器320用于接收所述客戶端340發(fā)送的包含所述會話標(biāo)識 的應(yīng)用訪問請求,并將所述客戶端340在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會話信 息與所述會話標(biāo)識的對應(yīng)關(guān)系傳輸至緩存服務(wù)器330。進(jìn)一步,所述應(yīng)用服務(wù)器320,還用于接收所述客戶端340發(fā)送的讀操作請求或?qū)?操作請求時(shí),根據(jù)會話標(biāo)識從所述緩存服務(wù)器330獲取所述客戶端540的會話信息,根據(jù)所 述配置信息對所述會話信息進(jìn)行修改,并將所述修改后的會話信息與會話標(biāo)識的對應(yīng)關(guān)系 返回所述緩存服務(wù)器530進(jìn)行存儲。[0041 ] 進(jìn)一步,所述緩存服務(wù)器330可以具體包括默認(rèn)緩存服務(wù)器331和至少一個(gè)備份 緩存服務(wù)器332(圖3中僅示出一個(gè))。應(yīng)用服務(wù)器320,具體用于將所述客戶端340在所 述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會話信息與會話標(biāo)識的對應(yīng)關(guān)系同步傳輸至所述 默認(rèn)緩存服務(wù)器331和所述備份緩存服務(wù)器332。進(jìn)一步,應(yīng)用服務(wù)器320,還用當(dāng)根據(jù)預(yù)先設(shè)置的計(jì)數(shù)器判斷從所述默認(rèn)緩存服務(wù) 器331獲取會話信息失敗的次數(shù)未超過預(yù)先設(shè)置的閾值時(shí),根據(jù)會話標(biāo)識從所述默認(rèn)緩存 服務(wù)器331獲取所述客戶端340的會話信息,當(dāng)超過所述預(yù)先設(shè)置的閾值時(shí),根據(jù)會話標(biāo)識 從所述備份緩存服務(wù)器332獲取所述客戶端340的會話信息。參見圖4,為應(yīng)用本申請系統(tǒng)第二實(shí)施例進(jìn)行會話信息存儲的一個(gè)流程圖,該實(shí)施 例詳細(xì)示出了應(yīng)用服務(wù)器根據(jù)配置服務(wù)器的配置信息選擇對會話信息進(jìn)行存儲的詳細(xì)過 程步驟401 應(yīng)用服務(wù)器接收到客戶端發(fā)送的首次訪問該應(yīng)用服務(wù)器的請求時(shí),為 該客戶端創(chuàng)建一個(gè)會話??蛻舳耸状卧L問應(yīng)用服務(wù)器通常指客戶端首次登錄瀏覽某個(gè)網(wǎng)站,例如,客戶端 首次瀏覽淘寶網(wǎng)時(shí),淘寶網(wǎng)的應(yīng)用服務(wù)器為該客戶端創(chuàng)建一個(gè)SESSION,后續(xù)客戶端在瀏覽 淘寶網(wǎng)的各個(gè)網(wǎng)頁或者訪問淘寶網(wǎng)的各種應(yīng)用的過程都屬于該SESSION。步驟402 應(yīng)用服務(wù)器為該會話分配唯一的會話標(biāo)識。應(yīng)用服務(wù)器為了識別每個(gè)客戶端,通常在客戶端首次訪問應(yīng)用服務(wù)器,并為該客 戶端創(chuàng)建一個(gè)SESSION為,為該會話分配唯一的SESSION ID,用于識別該SESSION。步驟403 應(yīng)用服務(wù)器與客戶端之間建立并保持會話連接。步驟404 判斷是否接收到客戶端發(fā)送的包含會話標(biāo)識和客戶端COOKIE的應(yīng)用訪 問請求,若是,則執(zhí)行步驟405 ;否則,返回步驟403。步驟405 應(yīng)用服務(wù)器查詢配置服務(wù)器推送的配置信息。配置服務(wù)器內(nèi)預(yù)先配置并保存了網(wǎng)絡(luò)系統(tǒng)各種所有應(yīng)用服務(wù)器共享的配置信息, 當(dāng)某個(gè)應(yīng)用服務(wù)器需要接收配置服務(wù)器推送的配置信息時(shí),向該配置服務(wù)器發(fā)送訂閱消 息,以便當(dāng)配置服務(wù)器內(nèi)更新了配置信息后,可以相應(yīng)推送到這些應(yīng)用服務(wù)器內(nèi),應(yīng)用服務(wù) 器接收配置服務(wù)器推送的更新后的配置信息,根據(jù)更新后的配置信息替換原有的配置信 息,當(dāng)配置信息以版本的形式發(fā)布時(shí),可以用更新后的版本替換原有版本。配置信息只要是一些控制類信息,例如,本申請實(shí)施例中應(yīng)用到的SESSION信息 的存儲方式,另外,也可以包括需要存儲的SESSION信息的屬性,包括SESSION信息的有效 期、加解密設(shè)置、編碼格式等,應(yīng)用服務(wù)器將配置信息加載到內(nèi)存中,并根據(jù)配置信息的指 示對SESSION信息進(jìn)行操作。步驟406 判斷配置信息指示的存儲方法,當(dāng)配置信息指示會話信息存儲在應(yīng)用 服務(wù)器時(shí),執(zhí)行步驟408 ;當(dāng)配置信息指示將會話信息存儲在COOKIE中時(shí),執(zhí)行步驟409 ; 當(dāng)配置信息指示將會話信息存儲在緩存服務(wù)器時(shí),執(zhí)行步驟407。步驟407 應(yīng)用服務(wù)器將客戶端在會話連接下根據(jù)應(yīng)用訪問產(chǎn)生的會話信息與會 話標(biāo)識的對應(yīng)關(guān)系傳輸至緩存服務(wù)器進(jìn)行存儲,結(jié)束當(dāng)前流程。步驟408 應(yīng)用服務(wù)器將會話信息按照會話標(biāo)識存儲在應(yīng)用服務(wù)器中,結(jié)束當(dāng)前 流程。[0056]本申請實(shí)施例中通過配置服務(wù)器的配置信息的指示,仍然可以將一部分安全性要 求較高的SESSION信息按照現(xiàn)有技術(shù)的方式保存在應(yīng)用服務(wù)器中,此時(shí)SESSION信息按照 SESSION標(biāo)識進(jìn)行存儲,后續(xù)查詢這些SESSION信息時(shí)也在應(yīng)用服務(wù)器內(nèi)實(shí)現(xiàn)即可。步驟409 應(yīng)用服務(wù)器將會話信息寫入C00KIE,并返回COOKIE至客戶端進(jìn)行存儲, 結(jié)束當(dāng)前流程??蛻舳伺c應(yīng)用服務(wù)器在SESSION連接下進(jìn)行交互的過程中,客戶端訪問應(yīng)用服務(wù) 器進(jìn)行不同的應(yīng)用操作,例如登錄網(wǎng)站,瀏覽商品信息等,這些應(yīng)用操作生成的交互信息都 屬于該SESSION的SESSION信息,每一種SESSION信息也稱為SESSION KEY (會話關(guān)鍵字), 例如,訪問的IP地址、訪問的時(shí)間等,每個(gè)SESSION KEY還具有其各自的屬性值,包括是否 加密、所使用的存儲方式等。應(yīng)用服務(wù)器將客戶端每次應(yīng)用訪問所產(chǎn)生的SESSION信息都 寫入到該客戶端的COOKIE中,并將該COOKIE發(fā)送回客戶端,由客戶端將該COOKIE存儲到 客戶端瀏覽器中。當(dāng)應(yīng)用服務(wù)器需要獲取SESSION信息時(shí),可以從客戶端的瀏覽器中獲取 該C00KIE,并從中讀取相應(yīng)的SESSION信息。由此可知,本申請實(shí)施例通過配置服務(wù)器的控制功能,可以將SESSION信息存儲 在客戶端COOKIE中,也可以存儲在應(yīng)用服務(wù)器內(nèi),或者存儲在單獨(dú)的緩存服務(wù)器中,由此 提高了 SESSION信息存儲的靈活性。參見圖5,為應(yīng)用本申請系統(tǒng)第二實(shí)施例進(jìn)行會話信息存儲的另一個(gè)流程圖,該實(shí) 施例詳細(xì)示出了通過備份緩存服務(wù)器和默認(rèn)緩存服務(wù)器之間協(xié)調(diào)對會話信息進(jìn)行的讀寫 操作的過程步驟501 預(yù)先設(shè)置默認(rèn)緩存服務(wù)器和至少一個(gè)備份緩存服務(wù)器。本申請實(shí)施例中預(yù)先設(shè)置默認(rèn)緩存服務(wù)器和至少一個(gè)備份緩存服務(wù)器的目的在 于實(shí)現(xiàn)容災(zāi)功能的SESSION信息的存儲。由于本申請實(shí)施例中可能將所有的會話信息都存 儲在緩存服務(wù)器中,而如果系統(tǒng)中只有一臺緩存服務(wù)器的話,當(dāng)這臺緩存服務(wù)器發(fā)生故障 時(shí),將導(dǎo)致整個(gè)系統(tǒng)因無法獲取SESSION信息而癱瘓,因此可以設(shè)置一個(gè)默認(rèn)緩存服務(wù)器, 用于在通常情況下提供SESSION信息,而備份緩存服務(wù)器中保存與默認(rèn)緩存服務(wù)器中一致 的信息,當(dāng)默認(rèn)緩存服務(wù)器出現(xiàn)故障時(shí),可以備份緩存服務(wù)器中獲得SESSION信息,從而在 默認(rèn)緩存服務(wù)器發(fā)生故障時(shí)保證系統(tǒng)的正常運(yùn)行。步驟502 應(yīng)用服務(wù)器預(yù)先向配置服務(wù)器訂閱會話信息的配置信息。配置服務(wù)器內(nèi)預(yù)先配置并保存了網(wǎng)絡(luò)系統(tǒng)各種所有應(yīng)用服務(wù)器共享的配置信息, 當(dāng)某個(gè)應(yīng)用服務(wù)器需要接收配置服務(wù)器推送的配置信息時(shí),向該配置服務(wù)器發(fā)送訂閱消 息,以便當(dāng)配置服務(wù)器內(nèi)更新了配置信息后,可以相應(yīng)推送到這些應(yīng)用服務(wù)器內(nèi)。在一個(gè)包 含了多個(gè)應(yīng)用服務(wù)器的應(yīng)用集群中,配置服務(wù)器可以通過廣播的方式將配置信息推送到這 些應(yīng)用服務(wù)器中。步驟503 應(yīng)用服務(wù)器接收配置服務(wù)器更新配置信息后推送的更新后的配置信 肩、ο應(yīng)用服務(wù)器接收配置服務(wù)器推送的更新后的配置信息,根據(jù)更新后的配置信息替 換原有的配置信息,當(dāng)配置信息以版本的形式發(fā)布時(shí),可以用更新后的版本替換原有版本, 配置信息通常加載到應(yīng)用服務(wù)器的內(nèi)存中,應(yīng)用服務(wù)器根據(jù)配置信息的指示對SESSION信 息進(jìn)行操作。[0067]步驟504 根據(jù)更新后的配置信息替換原有的配置信息。步驟505 應(yīng)用服務(wù)器與客戶端建立會話連接后,接收客戶端發(fā)送的包含會話標(biāo) 識的應(yīng)用訪問請求。步驟506 應(yīng)用服務(wù)器將客戶端在會話連接下根據(jù)應(yīng)用訪問產(chǎn)生的會話信息與會 話標(biāo)識的對應(yīng)關(guān)系同步傳輸至默認(rèn)緩存服務(wù)器和備份緩存服務(wù)器。本申請實(shí)施例中,每個(gè)SESSION連接都分配了唯一的SESSION標(biāo)識,因此在緩存服 務(wù)器中保存SESSION信息時(shí),也按照SESSION標(biāo)識的索引關(guān)系進(jìn)行存儲,以便在后續(xù)查找時(shí) 按照該SESSION標(biāo)識獲取到相應(yīng)的SESSION信息。另外,基于本申請實(shí)施例的容災(zāi)方案,每次生成的SESSION信息都將同時(shí)傳輸?shù)?默認(rèn)緩存服務(wù)器和備份緩存服務(wù)器進(jìn)行存儲。步驟507 判斷是否接收到讀操作請求或?qū)懖僮髡埱螅羰?,則執(zhí)行步驟508 ;否 則,結(jié)束當(dāng)前流程。步驟508 根據(jù)預(yù)先設(shè)置的計(jì)數(shù)器判斷從默認(rèn)緩存服務(wù)器獲取會話信息失敗的次 數(shù)是否超過閾值,若是,則執(zhí)行步驟509 ;否則,執(zhí)行步驟511。本申請實(shí)施例中,與應(yīng)用集群中的應(yīng)用服務(wù)器同時(shí)建立SESSION連接并進(jìn)行應(yīng)用 訪問的客戶端可能有多個(gè),例如對于像淘寶這樣的大型網(wǎng)站系統(tǒng)來說,在同一時(shí)刻,可能有 數(shù)以萬計(jì)的客戶端需要通過應(yīng)用服務(wù)器獲取默認(rèn)緩存服務(wù)器內(nèi)存儲的SESSION信息,因此 為了防止在默認(rèn)緩存服務(wù)器出現(xiàn)故障時(shí),應(yīng)用服務(wù)器還頻繁地從該默認(rèn)緩存服務(wù)器讀取 SESSION信息,可以預(yù)先設(shè)置閾值,例如,該閾值設(shè)置為1000次,即當(dāng)集群中的應(yīng)用服務(wù)器 從默認(rèn)緩存服務(wù)器獲取SESSION信息失敗的次數(shù)達(dá)到1000次時(shí),切換到從備份緩存服務(wù)器 獲取SESSION信息。步驟509 應(yīng)用服務(wù)器根據(jù)會話標(biāo)識從備份緩存服務(wù)器獲取客戶端的會話信息。步驟510 根據(jù)配置信息對會話信息進(jìn)行修改,并將修改后的會話信息與會話標(biāo) 識的對應(yīng)關(guān)系返回備份緩存服務(wù)器進(jìn)行存儲,結(jié)束當(dāng)前流程。步驟511 應(yīng)用服務(wù)器根據(jù)會話標(biāo)識從默認(rèn)緩存服務(wù)器獲取客戶端的會話信息。步驟512 根據(jù)配置信息對會話信息進(jìn)行修改,并將修改后的會話信息與會話標(biāo) 識的對應(yīng)關(guān)系返回默認(rèn)緩存服務(wù)器和備份緩存服務(wù)器進(jìn)行存儲,結(jié)束當(dāng)前流程。參見圖6,為本申請應(yīng)用服務(wù)器的第一實(shí)施例框圖。該應(yīng)用服務(wù)器包括接收單元610和傳輸單元620。其中,接收單元610,用于與客戶端建立會話連接后,接收所述客戶端發(fā)送的應(yīng)用 訪問請求;傳輸單元620,用于將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會 話信息傳輸至緩存服務(wù)器進(jìn)行存儲。參見圖7,為本申請應(yīng)用服務(wù)器的第二實(shí)施例框圖。該應(yīng)用服務(wù)器包括創(chuàng)建單元700、分配單元710、訂閱單元720、接收單元730、替 換單元740、查詢單元750、判斷單元760、執(zhí)行單元770、傳輸單元780。其中,創(chuàng)建單元700,用于當(dāng)接收到所述客戶端發(fā)送的首次訪問所述應(yīng)用服務(wù)器的 請求時(shí),為所述客戶端創(chuàng)建所述會話;分配單元710,用于為所述會話分配唯一的會話標(biāo)識;[0087]訂閱單元720,用于預(yù)先向配置服務(wù)器訂閱會話信息的配置信息;接收單元730,用于接收所述配置服務(wù)器更新所述配置信息后推送的更新后的配
直fe息;替換單元740,用于根據(jù)所述更新后的配置信息替換原有的配置信息;接收單元730,還用于接收所述客戶端發(fā)送的包含所述會話標(biāo)識和客戶端的 COOKIE的應(yīng)用訪問請求;查詢單元750,用于所述接收單元730接收到所述客戶端發(fā)送的應(yīng)用訪問請求后, 查詢配置服務(wù)器推送的配置信息;判斷單元760,用于根據(jù)所述配置信息判斷配置信息指示的存儲方式;執(zhí)行單元770,用于當(dāng)所述配置信息指示將所述會話信息存儲在所述應(yīng)用服務(wù) 器時(shí),將所述會話信息按照所述會話標(biāo)識存儲在所述應(yīng)用服務(wù)器中;當(dāng)所述配置信息指示 將所述會話信息存儲在所述COOKIE中時(shí),將所述會話信息寫入所述C00KIE,并返回所述 COOKIE至所述客戶端;當(dāng)所述配置信息指示將所述會話信息存儲在緩存服務(wù)器時(shí),觸發(fā)所 述傳輸單元780執(zhí)行傳輸功能;傳輸單元780,用于將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會 話信息與所述會話標(biāo)識的對應(yīng)關(guān)系傳輸至緩存服務(wù)器進(jìn)行存儲。參見圖8,為本申請應(yīng)用服務(wù)器的第三實(shí)施例框圖。該應(yīng)用服務(wù)器包括預(yù)設(shè)單元800、創(chuàng)建單元810、分配單元820、訂閱單元830、接 收單元840、替換單元850、傳輸單元860、閾值判斷單元870和讀寫操作單元880。預(yù)設(shè)單元800,用于預(yù)先設(shè)置所述默認(rèn)緩存服務(wù)器和至少一個(gè)備份緩存服務(wù)器;創(chuàng)建單元810,用于當(dāng)接收到所述客戶端發(fā)送的首次訪問所述應(yīng)用服務(wù)器的請求 時(shí),為所述客戶端創(chuàng)建所述會話;分配單元820,用于為所述會話分配唯一的會話標(biāo)識;訂閱單元830,用于預(yù)先向配置服務(wù)器訂閱會話信息的配置信息;接收單元840,用于接收所述配置服務(wù)器更新所述配置信息后推送的更新后的配
直fe息;替換單元850,用于根據(jù)所述更新后的配置信息替換原有的配置信息。接收單元840,還用于接收所述客戶端發(fā)送的包含所述會話標(biāo)識的應(yīng)用訪問請 求;傳輸單元860,用于將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會 話信息與會話標(biāo)識的對應(yīng)關(guān)系同步傳輸至所述默認(rèn)緩存服務(wù)器和所述備份緩存服務(wù)器;閾值判斷單元870,用于讀寫操作單元880接收所述客戶端發(fā)送的讀操作請求或 寫操作請求時(shí),根據(jù)預(yù)先設(shè)置的計(jì)數(shù)器判斷從所述默認(rèn)緩存服務(wù)器獲取會話信息失敗的次 數(shù)是否超過閾值;讀寫操作單元880,用于當(dāng)所述閾值判斷單元870判斷未超過閾值時(shí),根據(jù)會話 標(biāo)識從所述默認(rèn)緩存服務(wù)器獲取所述客戶端的會話信息,根據(jù)所述配置信息對所述會話信 息進(jìn)行修改,并將所述修改后的會話信息與會話標(biāo)識的對應(yīng)關(guān)系返回所述默認(rèn)緩存服務(wù)器 和備份緩存服務(wù)器進(jìn)行存儲;當(dāng)所述閾值判斷單元870判斷超過閾值時(shí),根據(jù)會話標(biāo)識從 所述備份緩存服務(wù)器獲取所述客戶端的會話信息,根據(jù)所述配置信息對所述會話信息進(jìn)行修改,并將所述修改后的會話信息與會話標(biāo)識的對應(yīng)關(guān)系返回所述備份緩存服務(wù)器進(jìn)行存 儲。通過以上的實(shí)施方式的描述可知,本申請實(shí)施例中應(yīng)用服務(wù)器與客戶端建立會話 連接后,接收客戶端發(fā)送的應(yīng)用訪問請求,應(yīng)用服務(wù)器將客戶端在該會話連接下根據(jù)應(yīng)用 訪問產(chǎn)生的會話信息傳輸至緩存服務(wù)器進(jìn)行存儲。由于本申請實(shí)施例將會話信息存儲在獨(dú) 立于應(yīng)用服務(wù)器的緩存服務(wù)器中,而不是通過客戶端COOKIE進(jìn)行存儲,因此存儲的空間不 受限制,并且也不受客戶端瀏覽器對COOKIE使用的限制,能夠應(yīng)用于會話信息較多的大型 網(wǎng)絡(luò)系統(tǒng),實(shí)現(xiàn)服務(wù)器側(cè)對會話信息的海量存儲和維護(hù)。通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可 借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì) 上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品 可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備 (可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個(gè)實(shí)施例或者實(shí)施例的某些 部分所述的方法。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部 分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于系統(tǒng)實(shí) 施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例 的部分說明即可。本申請可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如個(gè)人計(jì)算機(jī)、服務(wù) 器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂 盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的 分布式計(jì)算環(huán)境等等。本申請可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序 模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組 件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請,在這些分布式計(jì)算環(huán)境中,由 通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以 位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。雖然通過實(shí)施例描繪了本申請,本領(lǐng)域普通技術(shù)人員知道,本申請有許多變形和 變化而不脫離本申請的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請的 精神。
權(quán)利要求一種會話信息存儲系統(tǒng),其特征在于,包括客戶端、應(yīng)用服務(wù)器和緩存服務(wù)器,所述應(yīng)用服務(wù)器,用于與所述客戶端建立會話連接后,接收所述客戶端發(fā)送的應(yīng)用訪問請求,并將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會話信息傳輸至緩存服務(wù)器;所述緩存服務(wù)器,用于接收所述應(yīng)用服務(wù)器傳輸?shù)臅捫畔⒑?,存儲所述會話信息?br>
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器,還用于當(dāng)接收到所述客戶端發(fā)送的首次訪問所述應(yīng)用服務(wù)器的請求 時(shí),為所述客戶端創(chuàng)建所述會話,并為所述會話分配唯一的會話標(biāo)識;所述應(yīng)用服務(wù)器,具體用于接收所述客戶端發(fā)送的包含所述會話標(biāo)識的應(yīng)用訪問請 求,并將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會話信息與所述會話標(biāo)識 的對應(yīng)關(guān)系傳輸至緩存服務(wù)器。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括配置服務(wù)器,所述配置服務(wù)器,用于當(dāng)所述應(yīng)用服務(wù)器預(yù)先訂閱會話信息的配置信息后,在更新所 述配置信息后推送所述更新后的配置信息到所述應(yīng)用服務(wù)器;所述應(yīng)用服務(wù)器,還用于根據(jù)所述更新后的配置信息替換原有的配置信息,并且在接 收到包含客戶端COOKIE的應(yīng)用訪問請求后,查詢配置服務(wù)器推送的配置信息,當(dāng)所述配置 信息指示將所述會話信息存儲在所述應(yīng)用服務(wù)器時(shí),將所述會話信息按照所述會話標(biāo)識存 儲在所述應(yīng)用服務(wù)器中,當(dāng)所述配置信息指示將所述會話信息存儲在所述COOKIE中時(shí),將 所述會話信息寫入所述C00KIE,并返回所述COOKIE至所述客戶端,當(dāng)所述配置信息指示將 所述會話信息存儲在緩存服務(wù)器時(shí),執(zhí)行所述將會話信息傳輸至緩存服務(wù)器的功能。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器,還用于接收所述客戶端 發(fā)送的讀操作請求或?qū)懖僮髡埱髸r(shí),根據(jù)會話標(biāo)識從所述緩存服務(wù)器獲取所述客戶端的會 話信息,根據(jù)所述配置信息對所述會話信息進(jìn)行修改,并將所述修改后的會話信息與會話 標(biāo)識的對應(yīng)關(guān)系返回所述緩存服務(wù)器進(jìn)行存儲。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述緩存服務(wù)器包括默認(rèn)緩存服務(wù)器和 至少一個(gè)備份緩存服務(wù)器;所述應(yīng)用服務(wù)器,具體用于將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的 會話信息與會話標(biāo)識的對應(yīng)關(guān)系同步傳輸至所述默認(rèn)緩存服務(wù)器和所述備份緩存服務(wù)器。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器,還用于當(dāng)根據(jù)預(yù)先設(shè)置的計(jì)數(shù)器判斷從所述默認(rèn)緩存服務(wù)器獲取會 話信息失敗的次數(shù)未超過預(yù)先設(shè)置的閾值時(shí),根據(jù)會話標(biāo)識從所述默認(rèn)緩存服務(wù)器獲取所 述客戶端的會話信息,當(dāng)超過所述預(yù)先設(shè)置的閾值時(shí),根據(jù)會話標(biāo)識從所述備份緩存服務(wù) 器獲取所述客戶端的會話信息。
7. 一種應(yīng)用服務(wù)器,其特征在于,包括接收單元,用于與客戶端建立會話連接后,接收所述客戶端發(fā)送的應(yīng)用訪問請求;傳輸單元,用于將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會話信息傳 輸至緩存服務(wù)器進(jìn)行存儲。
8.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,還包括創(chuàng)建單元,用于當(dāng)接收到所述客戶端發(fā)送的首次訪問所述應(yīng)用服務(wù)器的請求時(shí),為所述客戶端創(chuàng)建所述會話;分配單元,用于為所述會話分配唯一的會話標(biāo)識;所述接收單元,具體用于接收所述客戶端發(fā)送的包含所述會話標(biāo)識的應(yīng)用訪問請求; 所述傳輸單元,具體用于將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會 話信息與所述會話標(biāo)識的對應(yīng)關(guān)系傳輸至緩存服務(wù)器進(jìn)行存儲。
9.根據(jù)權(quán)利要求8所述的服務(wù)器,其特征在于,還包括 訂閱單元,用于預(yù)先向配置服務(wù)器訂閱會話信息的配置信息;所述接收單元,還用于接收所述配置服務(wù)器更新所述配置信息后推送的更新后的配置 fn息;替換單元,用于根據(jù)所述更新后的配置信息替換原有的配置信息。
10.根據(jù)權(quán)利要求9所述的服務(wù)器,其特征在于,所述接收單元接收的應(yīng)用訪問請求中 還包含所述客戶端的C00KIE,所述服務(wù)器還包括查詢單元,用于所述接收單元接收到所述客戶端發(fā)送的應(yīng)用訪問請求后,查詢配置服 務(wù)器推送的配置信息;判斷單元,用于根據(jù)所述配置信息判斷配置信息指示的存儲方式; 執(zhí)行單元,用于當(dāng)所述配置信息指示將所述會話信息存儲在所述應(yīng)用服務(wù)器時(shí),將所 述會話信息按照所述會話標(biāo)識存儲在所述應(yīng)用服務(wù)器中;當(dāng)所述配置信息指示將所述會話 信息存儲在所述COOKIE中時(shí),將所述會話信息寫入所述C00KIE,并返回所述COOKIE至所述 客戶端;當(dāng)所述配置信息指示將所述會話信息存儲在緩存服務(wù)器時(shí),觸發(fā)所述傳輸單元執(zhí) 行傳輸功能。
11.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,還包括讀寫操作單元,用于接收所述客戶端發(fā)送的讀操作請求或?qū)懖僮髡埱髸r(shí),根據(jù)會話標(biāo) 識從所述緩存服務(wù)器獲取所述客戶端的會話信息,根據(jù)所述配置信息對所述會話信息進(jìn)行 修改,并將所述修改后的會話信息與會話標(biāo)識的對應(yīng)關(guān)系返回所述緩存服務(wù)器進(jìn)行存儲。
12.根據(jù)權(quán)利要求11所述的服務(wù)器,其特征在于,還包括預(yù)設(shè)單元,用于預(yù)先設(shè)置所述緩存服務(wù)器為默認(rèn)緩存服務(wù)器,并為所述默認(rèn)緩存服務(wù) 器配置至少一個(gè)備份緩存服務(wù)器;所述傳輸單元,具體用于將所述客戶端在所述會話連接下根據(jù)所述應(yīng)用訪問產(chǎn)生的會 話信息與會話標(biāo)識的對應(yīng)關(guān)系同步傳輸至所述默認(rèn)緩存服務(wù)器和所述備份緩存服務(wù)器。
13.根據(jù)權(quán)利要求12所述的服務(wù)器,其特征在于,還包括閾值判斷單元,用于根據(jù)預(yù)先設(shè)置的計(jì)數(shù)器判斷從所述默認(rèn)緩存服務(wù)器獲取會話信息 失敗的次數(shù)是否超過閾值;所述讀寫操作單元,具體用于當(dāng)所述閾值判斷單元判斷未超過閾值時(shí),根據(jù)會話標(biāo)識 從所述默認(rèn)緩存服務(wù)器獲取所述客戶端的會話信息,當(dāng)所述閾值判斷單元判斷超過閾值 時(shí),根據(jù)會話標(biāo)識從所述備份緩存服務(wù)器獲取所述客戶端的會話信息。
專利摘要本申請實(shí)施例公開了一種會話信息存儲系統(tǒng)及應(yīng)用服務(wù)器,所述系統(tǒng)包括客戶端、應(yīng)用服務(wù)器和緩存服務(wù)器,應(yīng)用服務(wù)器,用于與客戶端建立會話連接后,接收客戶端發(fā)送的應(yīng)用訪問請求,并將客戶端在會話連接下根據(jù)應(yīng)用訪問產(chǎn)生的會話信息傳輸至緩存服務(wù)器;緩存服務(wù)器,用于接收應(yīng)用服務(wù)器傳輸?shù)臅捫畔⒑?,存儲會話信息。由于本申請?shí)施例將會話信息存儲在獨(dú)立于應(yīng)用服務(wù)器的緩存服務(wù)器中,而不是通過客戶端COOKIE進(jìn)行存儲,因此存儲的空間不受限制,并且也不受客戶端瀏覽器對COOKIE使用的限制,能夠應(yīng)用于會話信息較多的大型網(wǎng)絡(luò)系統(tǒng),實(shí)現(xiàn)服務(wù)器側(cè)對會話信息的海量存儲和維護(hù)。
文檔編號H04L29/06GK201682522SQ20102011633
公開日2010年12月22日 申請日期2010年2月8日 優(yōu)先權(quán)日2010年2月8日
發(fā)明者潘寶坤, 艾樂強(qiáng), 諸葛策 申請人:阿里巴巴集團(tuán)控股有限公司