本發(fā)明涉及通信技術領域,尤其涉及一種服務器、會話管理方法和系統(tǒng)。
背景技術:
隨著互聯(lián)網技術的不斷發(fā)展,傳統(tǒng)的瀏覽器/服務器(browser/server,b/s)架構下的互聯(lián)網中的單個應用服務器已經無法滿足業(yè)務服務的發(fā)展要求。
一種解決的方法是:如圖1所示的互聯(lián)網應用系統(tǒng)中,一個應用服務器提供的業(yè)務服務被拆分到多個應用服務器中,由多個應用服務器共同為客戶端提供服務,而通過客戶端請求服務的用戶不會感知到這種分布式部署與原有模式的差異,仍然像在訪問同一個應用服務器一樣請求業(yè)務服務,我們將圖1所示的互聯(lián)網應用系統(tǒng),稱為“分布式互聯(lián)網應用系統(tǒng)”。
當僅存在單個應用服務器時,應用服務器與客戶端之間的會話管理由單個應用服務器完成,當由多個應用服務器共同為客戶端提供服務時,目前還沒有一種可應用在圖1所示的分布式互聯(lián)網應用系統(tǒng)中,能夠在多個應用服務器之間管理會話的機制。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種服務器、會話管理方法和系統(tǒng),用以提供一種在多個應用服務器之間管理會話的機制。
第一方面,提供一種第一服務器,應用于分布式互聯(lián)網應用系統(tǒng)中,該系統(tǒng)包括:至少一個客戶端、多個應用服務器;所述至少一個客戶端用于向所述多個應用服務器中的一個或多個應用服務器請求業(yè)務服務;所述多個應用服務器用于向所述至少一個客戶端提供業(yè)務服務;所述第一服務器用于在所述多個應用服務器為所述至少一個客戶端提供業(yè)務服務時創(chuàng)建會話,并對創(chuàng)建的會話進行會話管理,所述第一服務器包括:
接收模塊,用于接收所述多個應用服務器中的第一應用服務器發(fā)送的針對第一會話的第一會話管理請求;
處理模塊,用于根據所述第一會話管理請求對所述第一會話進行會話管理;
發(fā)送模塊,用于將對所述第一會話的會話管理的結果返回給所述第一應用服務器。
其中,由統(tǒng)一的第一服務器在多個應用服務器之間進行會話管理,提供了一種多應用服務器場景下的會話管理的機制,并且由于是由統(tǒng)一的第一服務器進行會話管理,避免了各個應用服務器之間會話狀態(tài)不一致、會話數據不一致的問題。
結合第一方面,在第一種可能的實現(xiàn)方式中,所述第一會話管理請求為創(chuàng)建所述第一會話的請求;
所述處理模塊具體用于:創(chuàng)建所述第一會話,并記錄所述第一會話的會話數據;
所述發(fā)送模塊具體用于:將所述處理模塊記錄所述第一會話的會話數據中的會話基本信息發(fā)送給所述第一應用服務器,所述第一會話的會話數據中的會話基本信息包括所述第一會話的會話標識信息。
結合第一方面,在第二種可能的實現(xiàn)方式中,所述第一會話管理請求為更新所述第一會話的會話數據的請求;
所述處理模塊具體用于:對所述第一會話的會話數據進行更新,并記錄更新后的所述第一會話的會話數據;
所述發(fā)送模塊具體用于:將用于指示所述第一會話的會話數據更新成功的指示信息和/或更新后的所述第一會話的會話數據返回給第一應用服務器。
結合第一方面,在第三種可能的實現(xiàn)方式,所述第一會話管理請求為刪除所述第一會話的請求;
所述處理模塊具體用于:刪除所述第一會話;
所述發(fā)送模塊具體用于:將用于指示所述第一會話的成功刪除的指示信息發(fā)給所述第一應用服務器。
上述三種可能的實現(xiàn)方式分別提供了會話管理的三種功能:會話創(chuàng)建、會話數據更新和會話刪除。
結合第一方面,或第一方面的上述任一種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,
所述第一會話為臨時會話,所述臨時會話是所述至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;或
所述第一會話為正式會話,所述正式會話是所述至少一個客戶端中的一個客戶端的使用者在身份驗證通過后創(chuàng)建的。
通過臨時會話和正式會話的管理,可實現(xiàn)使用者的身份未驗證通過時,也能夠請求部分服務。
結合第一方面的第一種或第二種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述第一會話為臨時會話,所述臨時會話是所述至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;
所述接收模塊還用于:在所述處理模塊根據所述第一會話管理請求對所述第一會話進行會話管理之后,接收所述多個應用服務器中的所述第一應用服務器或第二應用服務器發(fā)送的針對第二會話的第二會話管理請求,所述第二會話管理請求為創(chuàng)建所述第二會話的請求;
所述處理模塊還用于:在確定所述第二會話為所述第一會話對應的正式會話時,創(chuàng)建所述第二會話,并將所述第一會話的會話數據記錄到所述第二會話的會話數據中;
所述發(fā)送模塊還用于:將用于指示所述第一會話的成功刪除、所述第二會話成功創(chuàng)建的指示信息發(fā)給所述第一應用服務器。
通過對臨時會話和正式會話的管理,當創(chuàng)建了正式會話后,刪除臨時會話,并將臨時會話的會話數據記錄到正式會話的會話數據中,可實現(xiàn)會話數據的一致性,為客戶提供連續(xù)一致的服務。
第二方面,本發(fā)明實施例提供一種第一應用服務器,應用于分布式互聯(lián)網應用系統(tǒng)中,該系統(tǒng)包括:至少一個客戶端、包括所述第一應用服務器在內的多個所述應用服務器;所述至少一個客戶端用于向所述多個應用服務器中的一個或多個應用服務器請求業(yè)務服務;所述多個應用服務器用于向所述至少一個客戶端提供業(yè)務服務;所述分布式互聯(lián)網應用系統(tǒng)還包括會話管理服務器,所述會話管理服務器用于在所述多個應用服務器為所述至少一個客戶端提供業(yè)務服務時創(chuàng)建會話,并對創(chuàng)建的會話進行會話管理,所述第一應用服務器包括:
發(fā)送模塊,用于向所述會話管理服務器發(fā)送針對第一會話的第一會話管理請求;
接收模塊,用于接收所述會話管理服務器響應于所述第一會話管理請求發(fā)送的所述第一會話的會話管理的結果;
處理模塊,用于根據所述接收模塊收到的所述第一會話的會話管理的結果對所述第一會話進行處理。
結合第二方面,在第一種可能的實現(xiàn)方式中,所述第一會話管理請求為創(chuàng)建所述第一會話的請求;
所述接收模塊具體用于:所述第一應用服務器接收所述會話管理服務器發(fā)送的所述第一會話的會話數據中的會話基本信息,所述第一會話的會話數據中的會話基本信息包括所述第一會話的會話標識信息;
所述處理模塊具體用于:通過所述發(fā)送模塊將所述第一會話的會話標識信息發(fā)送給所述第一會話的第一客戶端,并在對所述第一會話的處理過程中所述發(fā)送模塊和所述接收模塊與所述第一客戶端交互時,使用所述第一會話的會話標識信息標識所述第一會話。
其中,由統(tǒng)一的會話管理服務器在多個應用服務器之間進行會話管理,提供了一種多應用服務器場景下的會話管理的機制,并且由于是由統(tǒng)一的會話管理服務器進行會話管理,避免了各個應用服務器之間會話狀態(tài)不一致、會話數據不一致的問題。
結合第二方面,在第二種可能的實現(xiàn)方式中,所述第一會話管理請求為更新所述第一會話的會話數據的請求;
所述接收模塊具體用于:所述第一應用服務器接收所述會話管理服務器發(fā)送的將用于指示所述第一會話的會話數據更新成功的指示信息;
所述處理模塊具體用于:確定所述第一會話的會話數據更新成功,并根據更新后的所述第一會話的會話數據,對所述第一會話進行處理。
結合第二方面,在第三種可能的實現(xiàn)方式中,所述第一會話管理請求為更新所述第一會話的會話數據的請求;
所述接收模塊具體用于:接收更新后的所述第一會話的會話數據;
所述處理模塊具體用于:根據所述接收模塊接收的更新后的所述第一會話的會話數據,對所述第一會話進行處理。
結合第二方面,在第三種可能的實現(xiàn)方式中,所述第一會話管理請求為刪除所述第一會話的請求;
所述接收模塊具體用于:接收所述會話管理服務器發(fā)送的用于指示所述第一會話的成功刪除的指示信息;
所述處理模塊具體用于:根據所述接收模塊收到的用于指示所述第一會話的成功刪除的指示信息,確定所述第一會話刪除成功。
上述四種可能的實現(xiàn)方式提供了會話管理的三種功能:會話創(chuàng)建、會話數據更新和會話刪除。
結合第二方面,或第二方面的上述任一種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,
所述第一會話為臨時會話,所述臨時會話是所述至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;或
所述第一會話為正式會話,所述正式會話是所述至少一個客戶端中的一個客戶端的使用者在身份驗證通過后創(chuàng)建的。
通過臨時會話和正式會話的管理,可實現(xiàn)使用者的身份未驗證通過時,也能夠請求部分服務。
結合第二方面的第一種至第三種可能的實現(xiàn)方式中的任一種,在第六種可能的實現(xiàn)方式,所述第一會話為臨時會話,所述臨時會話是所述至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;
所述發(fā)送模塊還用于:在向所述會話管理服務器發(fā)送針對第一會話的第一會話管理請求之后,向所述會話管理服務器發(fā)送針對第二會話的第二會話管理請求,所述第二會話管理請求為創(chuàng)建所述第二會話的請求;所述第二會話為所述第一會話對應的正式會話;
所述接收模塊還用于:接收所述會話管理服務器響應于所述第二會話管理請求發(fā)送的將用于指示所述第一會話的成功刪除以及所述第二會話成功創(chuàng)建的指示信息;
所述處理模塊還用于:確定所述第一會話刪除成功,以及確定所述第二會話創(chuàng)建成功。
通過對臨時會話和正式會話的管理,當創(chuàng)建了正式會話后,刪除臨時會話,并將臨時會話的會話數據記錄到正式會話的會話數據中,可實現(xiàn)會話數據的一致性,為客戶提供連續(xù)一致的服務。
第三方面,本發(fā)明實施例提供一種會話管理的方法,應用于分布式互聯(lián)網應用系統(tǒng)中,該系統(tǒng)包括:至少一個客戶端、多個應用服務器;所述至少一個客戶端用于向所述多個應用服務器中的一個或多個應用服務器請求業(yè)務服務;所述多個應用服務器用于向所述至少一個客戶端提供業(yè)務服務;所述分布式互聯(lián)網應用系統(tǒng)還包括會話管理服務器,所述會話管理服務器用于在所述多個應用服務器為所述至少一個客戶端提供業(yè)務服務時創(chuàng)建會話,并對創(chuàng)建的會話進行會話管理,所述方法包括:
所述會話管理服務器接收所述多個應用服務器中的第一應用服務器發(fā)送的針對第一會話的第一會話管理請求;
所述會話管理服務器根據所述第一會話管理請求對所述第一會話進行會話管理;
所述會話管理服務器將對所述第一會話的會話管理的結果返回給所述第一應用服務器。
其中,由統(tǒng)一的會話管理服務器在多個應用服務器之間進行會話管理,提供了一種多應用服務器場景下的會話管理的機制,并且由于是由統(tǒng)一的會話管理服務器進行會話管理,避免了各個應用服務器之間會話狀態(tài)不一致、會話數據不一致的問題。
結合第三方面,在第一種可能的實現(xiàn)方式中,所述第一會話管理請求為創(chuàng)建所述第一會話的請求;
所述會話管理服務器根據所述第一會話管理請求對所述第一會話進行會話管理,包括:所述會話管理服務器創(chuàng)建所述第一會話,并記錄所述第一會話的會話數據;
所述會話管理服務器將對所述第一會話的會話管理的結果返回給所述第一應用服務器,包括:所述會話管理服務器將記錄所述第一會話的會話數據中的會話基本信息發(fā)送給所述第一應用服務器,所述第一會話的會話數據中的會話基本信息包括所述第一會話的會話標識信息。
結合第三方面,在第二種可能的實現(xiàn)方式中,所述第一會話管理請求為更新所述第一會話的會話數據的請求;
所述會話管理服務器根據所述第一會話管理請求對所述第一會話進行會話管理,包括:所述會話管理服務器對所述第一會話的會話數據進行更新,并記錄更新后的所述第一會話的會話數據;
所述會話管理服務器將對所述第一會話的會話管理的結果返回給所述第一應用服務器,包括:所述會話管理服務器將用于指示所述第一會話的會話數據更新成功的指示信息和/或更新后的所述第一會話的會話數據返回給第一應用服務器。
結合第三方面,在第三種可能的實現(xiàn)方式中,所述第一會話管理請求為刪除所述第一會話的請求;
所述會話管理服務器根據所述第一會話管理請求對所述第一會話進行會話管理,包括:所述會話管理服務器刪除所述第一會話;
所述會話管理服務器將對所述第一會話的會話管理的結果返回給所述第一應用服務器,包括:所述會話管理服務器將用于指示所述第一會話的成功刪除的指示信息發(fā)給所述第一應用服務器。
上述三種可能的實現(xiàn)方式提供了會話管理的三種功能:會話創(chuàng)建、會話數據更新和會話刪除。
結合第三方面,或第三方面的上述任一種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,
所述第一會話為臨時會話,所述臨時會話是所述至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;或
所述第一會話為正式會話,所述正式會話是所述至少一個客戶端中的一個客戶端的使用者在身份驗證通過后創(chuàng)建的。
通過臨時會話和正式會話的管理,可實現(xiàn)使用者的身份未驗證通過時,也能夠請求部分服務。
結合第三方面的第一種或第二種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述第一會話為臨時會話,所述臨時會話是所述至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;
在所述會話管理服務器根據所述第一會話管理請求對所述第一會話進行會話管理之后,還包括:
所述會話管理服務器接收所述多個應用服務器中的所述第一應用服務器或第二應用服務器發(fā)送的針對第二會話的第二會話管理請求,所述第二會話管理請求為創(chuàng)建所述第二會話的請求;
所述會話管理服務器在確定所述第二會話為所述第一會話對應的正式會話時,創(chuàng)建所述第二會話,并將所述第一會話的會話數據記錄到所述第二會話的會話數據中;
所述會話管理服務器將用于指示所述第一會話的成功刪除、所述第二會話成功創(chuàng)建的指示信息發(fā)給所述第一應用服務器。
通過對臨時會話和正式會話的管理,當創(chuàng)建了正式會話后,刪除臨時會話,并將臨時會話的會話數據記錄到正式會話的會話數據中,可實現(xiàn)會話數據的一致性,為客戶提供連續(xù)一致的服務。
第四方面,本發(fā)明實施例提供一種會話管理的方法,應用于分布式互聯(lián)網應用系統(tǒng)中,該系統(tǒng)包括:至少一個客戶端、多個應用服務器;所述至少一個客戶端用于向所述多個應用服務器中的一個或多個應用服務器請求業(yè)務服務;所述多個應用服務器用于向所述至少一個客戶端提供業(yè)務服務;所述分布式互聯(lián)網應用系統(tǒng)還包括會話管理服務器,所述會話管理服務器用于在所述多個應用服務器為所述至少一個客戶端提供業(yè)務服務時創(chuàng)建會話,并對創(chuàng)建的會話進行會話管理,所述方法包括:
所述多個應用服務器中的第一應用服務器向所述會話管理服務器發(fā)送針對第一會話的第一會話管理請求;
所述第一應用服務器接收所述會話管理服務器響應于所述第一會話管理請求發(fā)送的所述第一會話的會話管理的結果;
所述第一應用服務器根據收到的所述第一會話的會話管理的結果對所述第一會話進行處理。
其中,由統(tǒng)一的會話管理服務器在多個應用服務器之間進行會話管理,提供了一種多應用服務器場景下的會話管理的機制,并且由于是由統(tǒng)一的會話管理服務器進行會話管理,避免了各個應用服務器之間會話狀態(tài)不一致、會話數據不一致的問題。
結合第四方面,在第一種可能的實現(xiàn)方式中,所述第一會話管理請求為創(chuàng)建所述第一會話的請求;
所述第一應用服務器接收所述會話管理服務器響應于所述第一會話管理請求發(fā)送的所述第一會話的會話管理的結果,包括:所述第一應用服務器接收所述會話管理服務器發(fā)送的所述第一會話的會話數據中的會話基本信息,所述第一會話的會話數據中的會話基本信息包括所述第一會話的會話標識信息;
所述第一應用服務器根據收到的所述第一會話的會話管理的結果對所述第一會話進行處理,包括:所述第一應用服務器將所述第一會話的會話標識信息發(fā)送給所述第一會話的第一客戶端,并在對所述第一會話的處理過程中與所述第一客戶端交互時,使用所述第一會話的會話標識信息標識所述第一會話。
結合第四方面,在第二種可能的實現(xiàn)方式中,所述第一會話管理請求為更新所述第一會話的會話數據的請求;
所述第一應用服務器接收所述會話管理服務器響應于所述第一會話管理請求發(fā)送的所述第一會話的會話管理的結果,包括:所述第一應用服務器接收所述會話管理服務器發(fā)送的將用于指示所述第一會話的會話數據更新成功的指示信息;
所述第一應用服務器根據收到的所述第一會話的會話管理的結果對所述第一會話進行處理,包括:所述第一應用服務器確定所述第一會話的會話數據更新成功,并根據更新后的所述第一會話的會話數據,對所述第一會話進行處理。
結合第四方面,在第三種可能的實現(xiàn)方式中,所述第一會話管理請求為更新所述第一會話的會話數據的請求;
所述第一應用服務器接收所述會話管理服務器響應于所述第一會話管理請求發(fā)送的所述第一會話的會話管理的結果,包括:所述第一應用服務器接收更新后的所述第一會話的會話數據;
所述第一應用服務器根據收到的所述第一會話的會話管理的結果對所述第一會話進行處理,包括:所述第一應用服務器根據接收的更新后的所述第一會話的會話數據,對所述第一會話進行處理。
結合第四方面,在第四種可能的實現(xiàn)方式中,所述第一會話管理請求為刪除所述第一會話的請求;
所述第一應用服務器接收所述會話管理服務器響應于所述第一會話管理請求發(fā)送的所述第一會話的會話管理的結果,包括:所述第一應用服務器接收所述會話管理服務器發(fā)送的用于指示所述第一會話的成功刪除的指示信息;
所述第一應用服務器根據收到的所述第一會話的會話管理的結果對所述第一會話進行處理,包括:所述第一應用服務器根據收到的用于指示所述第一會話的成功刪除的指示信息,確定所述第一會話刪除成功。
上述四種可能的實現(xiàn)方式提供了會話管理的三種功能:會話創(chuàng)建、會話數據更新和會話刪除。
結合第四方面,或第四方面的上述任一種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,
所述第一會話為臨時會話,所述臨時會話是所述至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;或
所述第一會話為正式會話,所述正式會話是所述至少一個客戶端中的一個客戶端的使用者在身份驗證通過后創(chuàng)建的。
通過臨時會話和正式會話的管理,可實現(xiàn)使用者的身份未驗證通過時,也能夠請求部分服務。
結合第四方面的第一種至第三種可能的實現(xiàn)方式中的任一種,在第六種可能的實現(xiàn)方式中,所述第一會話為臨時會話,所述臨時會話是所述至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;
在所述第一應用服務器向所述會話管理服務器發(fā)送針對第一會話的第一會話管理請求之后,還包括:
所述第一應用服務器向所述會話管理服務器發(fā)送針對第二會話的第二會話管理請求,所述第二會話管理請求為創(chuàng)建所述第二會話的請求;所述第二會話為所述第一會話對應的正式會話;
所述第一應用服務器接收所述會話管理服務器響應于所述第二會話管理請求發(fā)送的將用于指示所述第一會話的成功刪除以及所述第二會話成功創(chuàng)建的指示信息;
所述第一應用服務器確定所述第一會話刪除成功,以及確定所述第二會話創(chuàng)建成功。
通過對臨時會話和正式會話的管理,當創(chuàng)建了正式會話后,刪除臨時會話,并將臨時會話的會話數據記錄到正式會話的會話數據中,可實現(xiàn)會話數據的一致性,為客戶提供連續(xù)一致的服務。
第五方面,本發(fā)明實施例提供一種分布式互聯(lián)網應用系統(tǒng),包括:
至少一個客戶端,用于向多個應用服務器中的一個或多個應用服務器請求業(yè)務服務;
所述多個應用服務器,用于向所述至少一個客戶端提供業(yè)務服務;
會話管理服務器,用于在所述多個應用服務器為所述至少一個客戶端提供業(yè)務服務時創(chuàng)建會話,并對創(chuàng)建的會話進行會話管理。
其中,由統(tǒng)一的會話管理服務器在多個應用服務器之間進行會話管理,提供了一種多應用服務器場景下的會話管理的機制,并且由于是由統(tǒng)一的會話管理服務器進行會話管理,避免了各個應用服務器之間會話狀態(tài)不一致、會話數據不一致的問題。
附圖說明
圖1為目前一種分布式互聯(lián)網應用系統(tǒng)的結構示意圖;
圖2為本發(fā)明實施例提供的分布式互聯(lián)網應用系統(tǒng)的結構示意圖;
圖3為本發(fā)明實施例提供的臨時會話的會話管理流程的流程圖;
圖4為本發(fā)明實施例提供的正式會話的會話管理流程的流程圖;
圖5和圖6為本發(fā)明實施例中,客戶在買家中心登錄后,買家中心和賣家中心之間進行會話管理、共享會話數據的過程的示意圖;
圖7為一種會話數據在應用服務器之間進行共享的方式的示意圖;
圖8為本發(fā)明實施例提供的會話管理服務器的結構示意圖;
圖9為圖8所示的會話管理服務器的一種具體實現(xiàn)的硬件結構示意圖;
圖10為本發(fā)明實施例提供的第一應用服務器的結構示意圖;
圖11為圖10所示的第一應用服務器的一種具體實現(xiàn)的硬件結構示意圖;
圖12為本發(fā)明實施例提供的第一種會話管理的方法的流程圖;
圖13為本發(fā)明實施例提供的第二種會話管理的方法的流程圖。
具體實施方式
為了更好地理解本申請的上述目的、方案和優(yōu)勢,下文提供了詳細描述。該詳細描述通過使用框圖、流程圖等附圖和/或示例,闡明了裝置和/或方法的各種實施方式。在這些框圖、流程圖和/或示例中,包含一個或多個功能和/或操作。本領域技術人員將理解到:這些框圖、流程圖或示例內的各個功能和/或操作,能夠通過各種各樣的硬件、軟件、固件單獨或共同實施,或者通過硬件、軟件和固件的任意組合實施。
本發(fā)明實施例提供一種服務器、會話管理方法和系統(tǒng),用以提供一種在多個應用服務器之間管理會話的機制。其中,由統(tǒng)一的會話管理服務器在多個應用服務器之間進行會話管理,提供了一種多應用服務器場景下的會話管理的機制,并且由于是由統(tǒng)一的會話管理服務器進行會話管理,避免了各個應用服務器之間會話狀態(tài)不一致、會話數據不一致的問題。
下面,結合附圖對本發(fā)明實施例進行詳細介紹。
圖2為本發(fā)明實施例提供的分布式互聯(lián)網應用系統(tǒng)的結構示意圖。如圖2所示,該分布式互聯(lián)網應用系統(tǒng)包括:至少一個客戶端201、多個應用服務器202和會話管理服務器203。
其中,客戶端201可以向多個應用服務器202中的一個或多個應用服務器202請求業(yè)務服務;多個應用服務器202向請求業(yè)務服務的客戶端201提供業(yè)務服務,會話管理服務器203在多個應用服務器202為客戶端201提供業(yè)務服務時創(chuàng)建會話,并對創(chuàng)建的會話進行會話管理。
為了簡單示意,圖中僅示出一個客戶端201和兩個應用服務器202(分別為應用服務器202a和應用服務器202b),實際上,通常存在多個客戶端201,應用服務器202的數量也可超過兩個。在為客戶端201提供業(yè)務服務時,這多個應用服務器202維護并共享同一個會話。
可選地,該分布式互聯(lián)網應用系統(tǒng)還可包括會話數據存儲中心204,該會話數據存儲中心204可以是單個數據庫或緩存應用,也可以是數據庫或緩存集群,用于存儲會話管理服務器203所管理的會話的會話數據,數據存儲中心204可以部署在單獨的服務器上,也可以與會話管理服務器203合設。
在進行會話管理時,多個應用服務器202與會話管理服務器203之間可采用客戶端/服務器(client/server,c/s)的架構,應用服務器202向會話管理服務器203發(fā)送會話管理請求,會話管理服務器203接收會話管理請求,并根據接收的會話管理請求對會話進行管理,會話管理服務器203將對會話的會話管理的結果返回給應用服務器202。
其中,會話管理服務器203可向各個應用服務器202提供標準的api接口,應用服務器202通過會話管理服務器203提供的api接口與會話管理服務器203進行交互。
可選地,會話數據可包括會話基本信息和會話擴展信息;
其中,會話基本信息可包括:會話的會話標識信息,該會話標識信息用于唯一標識一個會話;此外,會話基本信息還可包括:會話的創(chuàng)建時間、會話最后更新的時間、會話的屬性(臨時會話或正式會話),本發(fā)明實施例中,臨時會話是客戶端201的使用者還未進行身份驗證前創(chuàng)建的會話;正式會話是客戶端201的使用者在身份驗證通過后創(chuàng)建的會話。
會話擴展信息可包括:會話的上下文數據;
會話的上下文信息可包括與會話相關的程序或業(yè)務的數據。比如:客戶端201的使用者,或稱之為“客戶”的客戶標識信息、客戶昵稱、客戶注冊信息、客戶聯(lián)系信息、客戶常用的配送地址、店鋪基本信息等。
會話的創(chuàng)建時間、會話的最后更新時間、會話的屬性等也可作為會話擴展信息。
本發(fā)明實施例中,不論是會話基本信息,還是會話擴展信息,均是由會話管理服務器203統(tǒng)一管理的,可選地,可存儲于會話數據存儲中心204中。
此外,客戶端201可用于創(chuàng)建業(yè)務請求,并向客戶端201的使用者展示業(yè)務。客戶端201一般可為各種類型的瀏覽器,需開啟cookie功能,可在cookie中緩存會話的會話標識信息,。會話的創(chuàng)建時間等。
多個應用服務器202之間,可根據功能劃分成的多個應用服務器202,也可稱為“業(yè)務處理模塊”,分別部署在對應的web容器中,針對不同的客戶端201發(fā)起的業(yè)務請求進行處理和響應。如前所述,應用服務器202與會話管理服務器203之間可采用c/s的架構,此時,應用服務器202內可集成用于實現(xiàn)會話共享的適配器,即會話共享client,用于向會話管理服務器203發(fā)送會話管理請求,并接收會話管理服務器203進行會話管理的會話管理結果和/或會話數據。
會話管理服務器203,用于對多個應用服務器202之間的會話進行統(tǒng)一管理,提供會話創(chuàng)建、共享、刪除(也可稱為“銷毀”)的能力。當會話管理服務器203包括會話數據存儲中心204,或會話管理服務器203連接會話數據存儲中心204時,會話管理服務器203可調用會話數據存儲中心204提供的能力,完成會話數據的存取。
此外,會話管理服務器203還可提供如下功能:攔截用戶請求、獲取會話對象、新增會話數據、更新會話數據、刪除會話數據。
可將會話管理服務器203和多個應用服務器202中的會話共享client合稱為“共享會話管理模塊”,應用服務器202作為會話管理的客戶端,會話管理服務器203作為會話管理的服務端,兩者相互配合,進行適配和交互,共同實現(xiàn)會話管理的功能。
會話數據存儲中心204,可以是分布式部署的數據存儲系統(tǒng),通常為輕量級分布式緩存數據庫集群,比如:redis集群,提供會話數據的存取能力。當然,會話數據存儲中心204也可以不用采用數據庫集群的方式實現(xiàn)。使用集群可實現(xiàn)負載均衡,能夠支持較大的數據存儲量,并能夠支持高并發(fā)的場景,即同時有多個應用服務器202進行會話數據的訪問和/或更新,或者應用服務器202接收多用戶并發(fā)的服務請求。
會話數據存儲中心204還可提供存取會話數據的能力,提供高可用,高性能的會話數據,對會話數據的操作包括增加、修改、刪除等。
可選地,會話管理服務器203和會話數據存儲中心204也可位于多個應用服務器202中的一個應用服務器202上,該應用服務器202可以是發(fā)起會話創(chuàng)建的應用服務器202。
可選地,本發(fā)明實施例中,會話可分為臨時會話和正式會話,其中,臨時會話為客戶端201的使用者未進行身份驗證前創(chuàng)建的會話;正式會話是客戶端201的使用者在身份驗證通過后創(chuàng)建的會話。
可選地,客戶端201的使用者首次訪問應用服務器202時為創(chuàng)建臨時會話。比如:應用服務器202在收到客戶端201發(fā)送的業(yè)務請求時,檢查是否已存在會話,若不存在,則請求會話管理服務器203創(chuàng)建臨時會話,用以保存會話處理過程中產生的會話數據。臨時會話創(chuàng)建之后,應用服務器202可將會話的會話標識信息返回給客戶端201,客戶端201將收到的會話標識信息放入cookie中,下一次再發(fā)起業(yè)務請求時攜帶該會話標識信息,用以標識會話,這樣,諸如會話的創(chuàng)建時間、會話的最后更新時間等會話數據得以保存,可以保證會話數據不會因為超時而失效。
可選地,客戶端201的使用者在登錄后,即該使用者的身份通過驗證之后,會話管理服務器203創(chuàng)建正式會話,并檢查是否有對應的臨時會話。若存在對應的臨時會話,則將該臨時會話中會話數據復制到正式會話中,然后銷毀該臨時會話;若不存在臨時會話則不進行會話數據的復制,也不銷毀臨時會話。
可選地,若創(chuàng)建了正式會話,則應用服務器202通知客戶端201創(chuàng)建的正式會話的會話標識信息發(fā)送給客戶端201,客戶端201將收到的正式會話的會話標識信息存儲在cookie中,替換掉之前的臨時會話的會話標識信息。
客戶端201后續(xù)在向應用服務器202發(fā)送業(yè)務請求時,均攜帶該正式會話的會話標識信息,這樣會話數據得以保存。此外,在客戶端201的使用者的身份驗證通過后,可以根據業(yè)務需要,將會話數據中的會話的上下文信息存儲到會話數據中。
在會話的創(chuàng)建和保持的過程中,會話數據存儲在會話數據存儲中心204中。
在整個會話管理過程中,會話數據可通過針對會話的擴展字段列表來實現(xiàn),這樣,可靈活保存會話級別的上下文數據。該擴展字段列表可以包括多個鍵值對,可根據業(yè)務需要設置鍵名,并保存對應的值。
目前,在圖1所示的分布式互聯(lián)網應用系統(tǒng)中,會話管理是在各個應用服務器上實現(xiàn)的,比如:本地web容器實現(xiàn)會話管理,一個應用服務器將會話管理的結果和/或會話數據在多個應用服務器之間通過數據同步的方式共享。
本發(fā)明實施例中,為了兼容目前的本地web容器的會話管理,可選地,可提供一個可選參數,該可選參數用于控制是使用會話管理服務器203進行統(tǒng)一的會話管理,還是在應用服務器202上實現(xiàn)本地的會話管理。該可選參數可在分布式互聯(lián)網應用系統(tǒng)運行時動態(tài)刷新,因此可實現(xiàn)實時變更會話管理的方式,在統(tǒng)一會話管理和本地會話管理兩種模式之間進行平滑切換。
綜上,本發(fā)明實施例可應用于基于b/s架構的分布式互聯(lián)網應用系統(tǒng),多個應用服務器202(比如:web服務端)可由多個web容器組成,各容器中部署不同的業(yè)務模塊,共享相同的會話數據,共同對外提供完整的業(yè)務服務。
下面,以互聯(lián)網模式下典型的商家對商家對客戶(businesstobusinesstocustomer,b2b2c)電商系統(tǒng)為例進行說明。
該實施例中,分布式互聯(lián)網應用系統(tǒng)包括:電商系統(tǒng)的買家中心和賣家中心,即包括“買家中心”和“賣家中心”兩個應用服務器202,會話管理服務器203實現(xiàn)賣家中心和賣家中心兩個應用服務器202的統(tǒng)一的會話管理,會話數據存儲中心204采用redis集群方式實現(xiàn)。
系統(tǒng)功能約束包括:同一個客戶(即前述的客戶端201的使用者)可以注冊為商城買家,成為買家后可以進一步注冊為商城賣家,申請開店。即一個客戶的id可對應兩種系統(tǒng)角色,當該客戶在買家中心或賣家中心任一應用服務器202登錄后,在兩個應用服務器202之間共享客戶的登錄信息、客戶注冊的基本信息,比如:客戶昵稱、聯(lián)系信息、常用配送地址、注冊類型、上次登錄時間等。
此外,對于未登錄的客戶,同樣開放瀏覽商品和添加商品的能力,后續(xù)登錄成功后即可下單完成商品的訂購,所以該電商系統(tǒng)具備臨時會話的會話管理能力。
該電商系統(tǒng)的一種典型的臨時會話的會話管理流程可如圖3所示,包括如下步驟:
s301:未登錄的客戶訪問買家中心,請求買家中心的服務;
s302:買家中心調用會話共享模塊,即通過自身的會話共享client查看客戶的服務請求中是否包含會話標識信息;若包含,則請求會話管理服務器203查看該會話標識信息是否有效,會話管理服務器203在會話數據存儲中心204上查詢該會話標識信息,若會話標識信息無效或者服務請求中沒有會話標識信息,表示該客戶不存在會話,則執(zhí)行步驟s303;否則,若有會話標識信息且該會話標識信息有效,表示該客戶已經有會話,執(zhí)行步驟s306;
s303:會話共享模塊創(chuàng)建臨時會話;買家中心通過調用會話共享模塊提供的client,可向作為會話共享模塊的服務端——會話管理服務器203請求創(chuàng)建會話,會話管理服務器203創(chuàng)建會話;
s304:會話共享模塊將創(chuàng)建的臨時會話的會話數據存入會話存儲中心204;會話管理服務器203可調用會話數據存儲中心204的能力,將會話數據存入會話數據存儲中心204;
s305:會話管理服務器203將創(chuàng)建的臨時會話的會話標識信息存入買家中心;
s306:買家中心向發(fā)起服務請求的客戶端201,即客戶使用的瀏覽器返回對應的服務。
在上述步驟s306中,買家中心可將臨時會話的會話標識信息存入客戶端201的公共域cookie。需要說明的是:該cookie可保存在客戶端201的根路徑下,保證客戶端201后續(xù)所有對買家中心發(fā)起的服務請求都會攜帶該cookie。該cookie的存活時間為會話級別,即當客戶關閉瀏覽器后,該cookie就會被清理,防止客戶一直保持會話。如果客戶做登出操作時,買家中心也會刪除該cookie。
該電商系統(tǒng)的一種典型的正式會話的會話管理流程可如圖4所示,包括如下步驟:
s401:客戶登錄賣家中心;
s402:賣家中心調用會話共享模塊創(chuàng)建正式會話,賣家中心調用會話共享模塊提供的client,可向作為會話共享模塊的服務端——會話管理服務器203請求創(chuàng)建正式會話,會話管理服務器203創(chuàng)建正式會話;
s403:會話共享模塊將正式會話的會話數據存入會話數據存儲中心204,會話管理服務器203可將創(chuàng)建的正式會話的會話數據存入會話數據存儲中心204;
s404:會話共享模塊判斷是否存在臨時會話;若存在臨時會話,則執(zhí)行步驟s405;若不存在臨時會話,則執(zhí)行步驟s407;
s405:會話共享模塊將臨時會話的會話數據復制給創(chuàng)建的正式會話;其中,會話管理服務器203可將臨時會話的會話數據作為正式會話的會話數據存儲在會話數據存儲中心204中;
s406:會話共享中心銷毀臨時會話;其中,會話管理服務器203刪除該臨時會話,通知會話數據存儲中心204刪除臨時會話的會話數據;
s407:賣家中心將正式會話的會話標識信息存入客戶端201的公共域cookie(如果cookie中有臨時會話的會話標識信息,則臨時會話的會話標識信息會被正式會話的會話標識信息覆蓋);
s408:賣家中心向客戶端201返回登錄成功的指示信息。
在上述步驟s407中,賣家中心可將正式會話的會話標識信息存入客戶端201的公共域cookie。同樣,與圖3所示的流程類似,該cookie可保存在客戶端201的根路徑下,保證客戶端201后續(xù)所有對應用服務器202發(fā)起的服務請求都會攜帶該cookie。該cookie的存活時間為會話級別,即當客戶關閉瀏覽器后,該cookie就會被清理,防止客戶一直保持會話。如果客戶做登出操作時,賣家中心也會刪除該cookie。
在圖3和圖4所示的流程中,會話數據可包括會話基本信息和會話的上下文數據。其中,會話基本信息可包括:會話標識信息,此外,也可包括會話的創(chuàng)建時間,會話的最后更新時間等;會話的上下文數據包括:客戶的標識信息,客戶昵稱,客戶注冊類型,客戶聯(lián)系信息,客戶常用的配送地址,店鋪基本信息等。
客戶在買家中心登錄后,在買家中心和賣家中心之間進行會話管理、共享會話數據的過程如圖5和圖6所示。
圖5所示的流程中,客戶端201請求登錄賣家中心,買家中心請求會話管理服務器203創(chuàng)建會話,會話管理服務器203對客戶進行鑒權,創(chuàng)建會話,生成會話的會話基本信息和會話擴展信息;會話管理服務器203請求會話數據存儲中心204,存儲會話數據;會話數據存儲中心204存儲會話數據,并向會話管理服務器203返回會話基本信息,會話管理服務器203將收到的會話基本信息返回給買家中心,買家中心將收到的會話基本信息放入cookie中,買家中心向客戶端201返回客戶登錄成功信息。
圖6所示的流程中,客戶端201請求賣家中心的服務,賣家中心請求會話管理服務器203進行客戶認證,并進行會話管理。會話管理服務器203根據會話基本信息完成認證,并更新會話的最后更新時間;會話管理服務器203請求會話數據存儲中心204完成會話更新,即更新會話的會話數據;會話數據存儲中心204更新會話基本信息,并獲取會話擴展信息;會話數據存儲中心204將會話擴展信息返回給會話管理服務器203,會話管理服務器203可將收到的會話擴展信息返回給賣家中心;若會話管理服務器203將會話擴展信息返回給賣家中心,則賣家中心可根據收到的會話擴展信息,對客戶端201發(fā)起的服務請求進行處理,在操作完成后,向客戶端201返回操作成功響應,其中可以根據不同的業(yè)務請求,攜帶相應的會話擴展信息;客戶端201根據收到的操作成功響應刷新頁面,展示客戶請求的數據。
圖8為本發(fā)明實施例提供的會話管理服務器的結構示意圖。該會話管理服務器可應用于圖2所示的分布式互聯(lián)網應用系統(tǒng)中。如圖8所示,該會話管理服務器包括:
接收模塊801,用于接收多個應用服務器中的第一應用服務器發(fā)送的針對第一會話的第一會話管理請求;
處理模塊802,用于根據第一會話管理請求對第一會話進行會話管理;
發(fā)送模塊803,用于將對第一會話的會話管理的結果返回給第一應用服務器。
可選地,第一會話管理請求為創(chuàng)建第一會話的請求;
處理模塊802具體用于:創(chuàng)建第一會話,并記錄第一會話的會話數據;
發(fā)送模塊803具體用于:將處理模塊802記錄第一會話的會話數據中的會話基本信息發(fā)送給第一應用服務器,第一會話的會話數據中的會話基本信息包括第一會話的會話標識信息。
可選地,第一會話管理請求為更新第一會話的會話數據的請求;
處理模塊802具體用于:對第一會話的會話數據進行更新,并記錄更新后的第一會話的會話數據;
發(fā)送模塊803具體用于:將用于指示第一會話的會話數據更新成功的指示信息和/或更新后的第一會話的會話數據返回給第一應用服務器。
可選地,第一會話管理請求為刪除第一會話的請求;
處理模塊802具體用于:刪除第一會話;
發(fā)送模塊803具體用于:將用于指示第一會話的成功刪除的指示信息發(fā)給第一應用服務器。
可選地,第一會話為臨時會話,臨時會話是至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;或
第一會話為正式會話,正式會話是至少一個客戶端中的一個客戶端的使用者在身份驗證通過后創(chuàng)建的。
可選地,第一會話為臨時會話,臨時會話是至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;
接收模塊801還用于:在處理模塊802根據第一會話管理請求對第一會話進行會話管理之后,接收多個應用服務器中的第一應用服務器或第二應用服務器發(fā)送的針對第二會話的第二會話管理請求,第二會話管理請求為創(chuàng)建第二會話的請求;
處理模塊802還用于:在確定第二會話為第一會話對應的正式會話時,創(chuàng)建第二會話,并將第一會話的會話數據記錄到第二會話的會話數據中;
發(fā)送模塊803還用于:將用于指示第一會話的成功刪除、第二會話成功創(chuàng)建的指示信息發(fā)給第一應用服務器。
該會話管理服務器的其他可選實現(xiàn)方式可參考前述的會話管理服務器203,其中,接收模塊801可用于執(zhí)行會話管理服務器203的接收操作,處理模塊802可用于執(zhí)行會話管理服務器203的處理操作,發(fā)送模塊803可用于執(zhí)行會話管理服務器203的發(fā)送操作。
該會話管理服務器的一種可選的硬件實現(xiàn)方式可參考圖9,其中,接收模塊801可由圖9中的接收器901實現(xiàn),處理模塊802可由圖9中的處理器902實現(xiàn),發(fā)送模塊803可由圖9中的發(fā)送器903來實現(xiàn)。該發(fā)送器903和接收器902也可由統(tǒng)一的輸入/輸出(i/o)接口實現(xiàn)。i/o接口與處理器902之間可采用總線的連接方式,通過總線進行數據和消息的交互。
圖10為本發(fā)明實施例提供的第一應用服務器的結構示意圖。該第一應用服務器可應用于圖2所示的分布式互聯(lián)網應用系統(tǒng)中,包括:
發(fā)送模塊1001,用于向會話管理服務器發(fā)送針對第一會話的第一會話管理請求;
接收模塊1002,用于接收會話管理服務器響應于第一會話管理請求發(fā)送的第一會話的會話管理的結果;
處理模塊1003,用于根據接收模塊1002收到的第一會話的會話管理的結果對第一會話進行處理。
可選地,第一會話管理請求為創(chuàng)建第一會話的請求;
接收模塊1002具體用于:第一應用服務器接收會話管理服務器發(fā)送的第一會話的會話數據中的會話基本信息,第一會話的會話數據中的會話基本信息包括第一會話的會話標識信息;
處理模塊1003具體用于:通過發(fā)送模塊1001將第一會話的會話標識信息發(fā)送給第一會話的第一客戶端,并在對第一會話的處理過程中發(fā)送模塊1001和接收模塊1002與第一客戶端交互時,使用第一會話的會話標識信息標識第一會話。
可選地,第一會話管理請求為更新第一會話的會話數據的請求;
接收模塊1002具體用于:第一應用服務器接收會話管理服務器發(fā)送的將用于指示第一會話的會話數據更新成功的指示信息;
處理模塊1003具體用于:確定第一會話的會話數據更新成功,并根據更新后的第一會話的會話數據,對第一會話進行處理。
可選地,第一會話管理請求為更新第一會話的會話數據的請求;
接收模塊1002具體用于:接收更新后的第一會話的會話數據;
處理模塊1003具體用于:根據接收模塊1002接收的更新后的第一會話的會話數據,對第一會話進行處理。
可選地,第一會話管理請求為刪除第一會話的請求;
接收模塊1002具體用于:接收會話管理服務器發(fā)送的用于指示第一會話的成功刪除的指示信息;
處理模塊1003具體用于:根據接收模塊1002收到的用于指示第一會話的成功刪除的指示信息,確定第一會話刪除成功。
可選地,第一會話為臨時會話,臨時會話是至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;或
第一會話為正式會話,正式會話是至少一個客戶端中的一個客戶端的使用者在身份驗證通過后創(chuàng)建的。
可選地,第一會話為臨時會話,臨時會話是至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;
發(fā)送模塊1001還用于:在向會話管理服務器發(fā)送針對第一會話的第一會話管理請求之后,向會話管理服務器發(fā)送針對第二會話的第二會話管理請求,第二會話管理請求為創(chuàng)建第二會話的請求;第二會話為第一會話對應的正式會話;
接收模塊1002還用于:接收會話管理服務器響應于第二會話管理請求發(fā)送的將用于指示第一會話的成功刪除以及第二會話成功創(chuàng)建的指示信息;
處理模塊1003還用于:確定第一會話刪除成功,以及確定第二會話創(chuàng)建成功。
該第一應用服務器的其他可選實現(xiàn)方式可參考前述的應用服務器202,其中,接收模塊801可用于執(zhí)行應用服務器202的接收操作,處理模塊802可用于執(zhí)行應用服務器202的處理操作,發(fā)送模塊803可用于執(zhí)行應用服務器202的發(fā)送操作。
該應用服務器的一種可選的硬件實現(xiàn)方式可參考圖11,其中,接收模塊1002可由圖11中的接收器1102實現(xiàn),處理模塊1003可由圖11中的處理器1103實現(xiàn),發(fā)送模塊1001可由圖11中的發(fā)送器1101來實現(xiàn)。該發(fā)送器1101和接收器1102也可由統(tǒng)一的i/o接口實現(xiàn)。i/o接口與處理器1103之間可采用總線的連接方式,通過總線進行數據和消息的交互。
圖12為本發(fā)明實施例提供的第一種會話管理的方法的流程圖。該方法可應用于圖2所示的分布式互聯(lián)網應用系統(tǒng)中,可由圖2中的會話管理服務器203來執(zhí)行,該方法包括:
s1201:會話管理服務器接收多個應用服務器中的第一應用服務器發(fā)送的針對第一會話的第一會話管理請求;
s1202:會話管理服務器根據第一會話管理請求對第一會話進行會話管理;
s1203:會話管理服務器將對第一會話的會話管理的結果返回給第一應用服務器。
可選地,第一會話管理請求為創(chuàng)建第一會話的請求;
會話管理服務器根據第一會話管理請求對第一會話進行會話管理,包括:會話管理服務器創(chuàng)建第一會話,并記錄第一會話的會話數據;
會話管理服務器將對第一會話的會話管理的結果返回給第一應用服務器,包括:會話管理服務器將記錄第一會話的會話數據中的會話基本信息發(fā)送給第一應用服務器,第一會話的會話數據中的會話基本信息包括第一會話的會話標識信息。
可選地,第一會話管理請求為更新第一會話的會話數據的請求;
會話管理服務器根據第一會話管理請求對第一會話進行會話管理,包括:會話管理服務器對第一會話的會話數據進行更新,并記錄更新后的第一會話的會話數據;
會話管理服務器將對第一會話的會話管理的結果返回給第一應用服務器,包括:會話管理服務器將用于指示第一會話的會話數據更新成功的指示信息和/或更新后的第一會話的會話數據返回給第一應用服務器。
可選地,第一會話管理請求為刪除第一會話的請求;
會話管理服務器根據第一會話管理請求對第一會話進行會話管理,包括:會話管理服務器刪除第一會話;
會話管理服務器將對第一會話的會話管理的結果返回給第一應用服務器,包括:會話管理服務器將用于指示第一會話的成功刪除的指示信息發(fā)給第一應用服務器。
可選地,第一會話為臨時會話,臨時會話是至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;或
第一會話為正式會話,正式會話是至少一個客戶端中的一個客戶端的使用者在身份驗證通過后創(chuàng)建的。
可選地,第一會話為臨時會話,臨時會話是至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;
在會話管理服務器根據第一會話管理請求對第一會話進行會話管理之后,還包括:
會話管理服務器接收多個應用服務器中的第一應用服務器或第二應用服務器發(fā)送的針對第二會話的第二會話管理請求,第二會話管理請求為創(chuàng)建第二會話的請求;
會話管理服務器在確定第二會話為第一會話對應的正式會話時,創(chuàng)建第二會話,并將第一會話的會話數據記錄到第二會話的會話數據中;
會話管理服務器將用于指示第一會話的成功刪除、第二會話成功創(chuàng)建的指示信息發(fā)給第一應用服務器。
該方法的其他可選實現(xiàn)方式可參考前述的會話管理服務器203的處理。
圖13為本發(fā)明實施例提供的第二種會話管理的方法的流程圖。該方法可應用于圖2所示的分布式互聯(lián)網應用系統(tǒng)中,可由應用服務器202執(zhí)行。該方法包括:
s1301:多個應用服務器中的第一應用服務器向會話管理服務器發(fā)送針對第一會話的第一會話管理請求;
s1302:第一應用服務器接收會話管理服務器響應于第一會話管理請求發(fā)送的第一會話的會話管理的結果;
s1303:第一應用服務器根據收到的第一會話的會話管理的結果對第一會話進行處理。
可選地,第一會話管理請求為創(chuàng)建第一會話的請求;
第一應用服務器接收會話管理服務器響應于第一會話管理請求發(fā)送的第一會話的會話管理的結果,包括:第一應用服務器接收會話管理服務器發(fā)送的第一會話的會話數據中的會話基本信息,第一會話的會話數據中的會話基本信息包括第一會話的會話標識信息;
第一應用服務器根據收到的第一會話的會話管理的結果對第一會話進行處理,包括:第一應用服務器將第一會話的會話標識信息發(fā)送給第一會話的第一客戶端,并在對第一會話的處理過程中與第一客戶端交互時,使用第一會話的會話標識信息標識第一會話。
可選地,第一會話管理請求為更新第一會話的會話數據的請求;
第一應用服務器接收會話管理服務器響應于第一會話管理請求發(fā)送的第一會話的會話管理的結果,包括:第一應用服務器接收會話管理服務器發(fā)送的將用于指示第一會話的會話數據更新成功的指示信息;
第一應用服務器根據收到的第一會話的會話管理的結果對第一會話進行處理,包括:第一應用服務器確定第一會話的會話數據更新成功,并根據更新后的第一會話的會話數據,對第一會話進行處理。
可選地,第一會話管理請求為更新第一會話的會話數據的請求;
第一應用服務器接收會話管理服務器響應于第一會話管理請求發(fā)送的第一會話的會話管理的結果,包括:第一應用服務器接收更新后的第一會話的會話數據;
第一應用服務器根據收到的第一會話的會話管理的結果對第一會話進行處理,包括:第一應用服務器根據接收的更新后的第一會話的會話數據,對第一會話進行處理。
可選地,第一會話管理請求為刪除第一會話的請求;
第一應用服務器接收會話管理服務器響應于第一會話管理請求發(fā)送的第一會話的會話管理的結果,包括:第一應用服務器接收會話管理服務器發(fā)送的用于指示第一會話的成功刪除的指示信息;
第一應用服務器根據收到的第一會話的會話管理的結果對第一會話進行處理,包括:第一應用服務器根據收到的用于指示第一會話的成功刪除的指示信息,確定第一會話刪除成功。
可選地,第一會話為臨時會話,臨時會話是至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;或
第一會話為正式會話,正式會話是至少一個客戶端中的一個客戶端的使用者在身份驗證通過后創(chuàng)建的。
可選地,第一會話為臨時會話,臨時會話是至少一個客戶端中的一個客戶端的使用者未進行身份驗證前創(chuàng)建的;
在第一應用服務器向會話管理服務器發(fā)送針對第一會話的第一會話管理請求之后,還包括:
第一應用服務器向會話管理服務器發(fā)送針對第二會話的第二會話管理請求,第二會話管理請求為創(chuàng)建第二會話的請求;第二會話為第一會話對應的正式會話;
第一應用服務器接收會話管理服務器響應于第二會話管理請求發(fā)送的將用于指示第一會話的成功刪除以及第二會話成功創(chuàng)建的指示信息;
第一應用服務器確定第一會話刪除成功,以及確定第二會話創(chuàng)建成功。
該方法的其他可選實現(xiàn)方式可參考前述的應用服務器202的處理。
綜上,本發(fā)明實施例提供一種服務器、會話管理方法和系統(tǒng),提供了一種在多個應用服務器之間進行統(tǒng)一的會話管理的機制,可保證多個應用服務器之間的會話數據的一致性。
進一步地,通過專門的會話數據存儲中心存儲會話數據,當該會話數據存儲中心采用數據庫集群的方式實現(xiàn)時,可支持大容量的會話數據的存儲,提升了分布式互聯(lián)網應用系統(tǒng)的性能。
通過用于選擇同一會話管理和本地會話管理方式的可選參數,可平滑自由地切換會話管理模式。
通過臨時會話和正式會話,可在客戶登錄前后變更會話,安全性更高。能夠在客戶未進行身份驗證前,實現(xiàn)客戶使用應用服務器提供的服務。與圖7所示的會話數據在應用服務器之間進行共享的方式相比,避免同一客戶的會話數據在多個應用服務器之間的復制與同步,極大的降低了分布式互聯(lián)網應用系統(tǒng)的內存消耗;并且,由于會話數據由會話管理服務器集中管理,保證了會話數據的傳遞的實時性及高可靠性。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發(fā)明實施例進行各種改動和變型而不脫離本發(fā)明實施例的精神和范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。