基于web會話共享的信息交互系統的制作方法
【技術領域】
[0001]本發明涉及信息交互系統,更具體地,涉及基于web會話共享的信息交互系統。
【背景技術】
[0002]目前,隨著計算機和網絡應用的日益廣泛以及不同領域的業務種類的日益豐富,基于web的信息交互過程變得越來越重要。
[0003]基于web的信息交互過程通常是建立在HTTP協議之上的Web應用,而HTTP協議屬于無狀態協議,即每一個HTTP請求都是獨立的個體,其無法記憶前面的HTTP請求的相關信息。然而,隨著業務需求的日益豐富,常常要求將許多獨立的HTTP請求作為一個獨立的事務來完成,這要求在一個事務下的一系列HTTP請求相互之間具有記憶功能,由此產生了基于會話(其指用戶在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間中的信息交互過程)技術的網絡信息交互過程。然而,在Web服務器采取集群的部署方式時,Web應用會部署到兩臺或兩臺以上的服務器上,由此,在用戶通過客戶端發起服務請求時,該服務請求會首先傳送到負載均衡裝置中,該負載均衡裝置按照預定的規則將服務請求分發到負載較低的服務器上,但是,該方法會產生如下問題:在一個會話期間,用戶順序發送的多個服務請求中的一些可能會被A服務器接收,另一些可能會被B服務器所接收,即A服務器記錄的狀態B服務器可能并不知道,并由此導致相關的服務不可用。
[0004]現有的解決上述問題的方案的基本工作原理如下:在一個服務器中的Web容器里的會話信息發生變化時,通過信息廣播的方式向集群中的其他服務器中的web容器進行通知和同步,以便實現會話信息的共享。
[0005]然而,上述現有的技術方案存在如下問題:頻繁地進行會話信息廣播會占用大量服務器的內存和CPU的計算資源,換句話說,進行會話信息同步的服務器越多,則服務器性能損失會越嚴重,即服務器的性能會受到顯著的影響。
[0006]因此,存在如下需求:提供能夠在不影響服務器的性能的情況下實現會話信息共享的基于web的信息交互系統。
【發明內容】
[0007]為了解決上述現有技術方案所存在的問題,本發明提出了能夠在不影響服務器的性能的情況下實現會話信息共享的基于web的信息交互系統。
[0008]本發明的目的是通過以下技術方案實現的:
一種基于web會話共享的信息交互系統,所述系統包括:
至少一個客戶端,所述至少一個客戶端中的每個基于用戶指令并經由負載均衡裝置向所述至少兩個web服務器中的一個發送服務請求,并且接收來自相應的web服務器的服務響應以完成特定的信息交互過程;
負載均衡裝置,所述負載均衡裝置基于預定的負載均衡算法從所述至少兩個web服務器中選擇當前負載較低的web服務器并將所述服務請求傳送到所選擇的web服務器; 至少兩個web服務器,所述至少兩個web服務器中的每個處理接收到的服務請求并創建和維護與所接收到的服務請求相關聯的會話,以及將服務響應傳送回相應的客戶端,其中,所述至少兩個web服務器借助于分布式緩存子系統實現所述至少兩個web服務器之間的會話信息共享;
分布式緩存子系統,所述分布式緩存子系統存儲共享會話接口模型,所述共享會話接口模型包含需要在所述至少兩個web服務器3之間共享的會話信息。
[0009]在上面所公開的方案中,優選地,所述web服務器進一步包括:
服務請求處理單元,所述服務請求處理單元根據配置信息并且借助于所述共享會話接口模型處理接收到的服務請求并隨之將服務響應傳送回相應的客戶端;
緩存-web容器接口單元,所述緩存-web容器接口單元維護所述共享會話接口模型,以便基于所述共享會話接口模型實現會話信息的共享和更新;
配置信息存儲單元,所述配置信息存儲單元存儲所述配置信息。
[0010]在上面所公開的方案中,優選地,所述共享會話接口模型是由多個鍵-值對構成的記錄鏈表,其中,每個鍵-值對包含鍵域和值域。
[0011]在上面所公開的方案中,優選地,所述共享會話接口模型的記錄鏈表中的每個鍵-值對的鍵域的值是同步會話標識符,而每個鍵-值對的值域的值是由下列鍵-值對組成的鍵-值對列表:同步標記鍵-值對、過期時間鍵-值對、會話信息鍵-值對、以及共享會話鍵-值對,其中,所述會話信息鍵-值對的值域的值是所述同步會話標識符所指示的會話的信息。
[0012]在上面所公開的方案中,優選地,所述服務請求處理單元在接收到來自客戶端的初始服務請求后以常規的方式創建與其相關聯的會話以及生成與該會話相關聯的會話標識符,并且隨之按照預定規則生成與該會話相關聯的同步會話標識符,所述同步會話標識符在整個系統中是唯一的,以及隨后將初始會話信息分別存儲到本地會話記錄以及所述共享會話接口模型中,其中,所述共享會話接口模型中的對應的記錄的鍵-值對的鍵域的值是與所創建的會話相關聯的所述同步會話標識符。
[0013]在上面所公開的方案中,優選地,當web服務器向與已創建的會話相關聯的本地會話記錄中添加信息時,該web服務器中的緩存-web容器接口單元同時將所述共享會話接口模型中的對應的記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值清除并且重新設置為該web服務器的標識號,并且將該記錄的鍵-值對的值域中的會話信息鍵-值對的值域的值更新。
[0014]在上面所公開的方案中,優選地,當web服務器要從本地會話記錄中獲取與已創建的會話相關聯的會話信息時,該web服務器中的緩存-web容器接口單元首先根據與已創建的會話相關聯的同步會話標識符獲取所述共享會話接口模型中的對應記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值,并且判斷該值中是否包含當前web服務器的標識號,如果該值中包含當前web服務器的標識號,則隨之直接從本地會話記錄中獲取所述與已創建的會話相關聯的會話信息,如果該值中不包含當前web服務器的標識號,則該web服務器中的緩存-web容器接口單元從所述共享會話接口模型中的對應記錄的鍵-值對的值域中的會話信息鍵-值對中將最新的會話信息同步到本地會話記錄中,并且將當前web服務器的標識號添加到所述共享會話接口模型中的對應記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值中,隨之該web服務器在前述同步過程完成后從本地會話記錄中獲取與已創建的會話相關聯的會話信息。
[0015]在上面所公開的方案中,優選地,所述過期時間鍵-值對的值域的值是會話過期時間,并且在任何web服務器中的緩存-web容器接口單元向所述共享會話接口模型中的記錄插入數據或刪除數據時、或者在執行會話信息同步操作時,所述過期時間鍵-值對的值域的值被刷新。
[0016]在上面所公開的方案中,優選地,所述共享會話鍵-值對的值域由鍵-值對序列組成,所述鍵-值對序列中的每個鍵-值對的鍵域的值是需要進行跨應用會話信息共享的應用的標識符,所述鍵-值對序列中的每個鍵-值對的值域的值是需要共享會話信息的會話的同步會話標識符。
[0017]在上面所公開的方案中,優選地,所述配置信息至少包括:共享功能開關標志、應用標識號、服務器標識號、跨應用會話信息共享數據、會話信息共享自動降級標志以及會話超時時間。
[0018]在上面所公開的方案中,優選地,所述web服務器以如下方式添加會話信息:(I)將待添加的信息存儲在本地會話記錄中;(2)判斷共享功能開關標志的值,如果共享功能開關標志的值指示會話信息共享功能關閉,則添加過程結束,如果共享功能開關標志的值指示會話信息共享功能開啟,則進入步驟(3); (3)判斷會話信息共享自動降級標志的值,如果會話信息共享自動降級標志的值指示自動降級關閉,則添加過程結束,如果會話信息共享自動降級標志的值指示自動降級開啟,則檢測分布式緩存子系統是否可用并進入步驟
(4);(4)如果分布式緩存子系統不可用,則添加過程結束并且將共享功能開關標志的值設置為指示會話信息共享功能關閉,如果分布式緩存子系統可用,則將所述待添加的信息存儲到所述共享會話接口模型中的對應的記錄中并且將當前web服務器的標識號添加到所述共享會話接口模型中的對應記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值中。
[0019]在上面所公開的方案中,優選地,所述web服務器以如下方式刪除會話信息:(I)判斷共享功能開關標志的值,如果共享功能開關標志的值指示會話信息共享功能關閉,則將待刪除信息直接從本地會話記錄中刪除并且刪除過程結束,如果共享功能開關標志的值指示會話信息共享功能開啟,則進入步驟(2); (2)判斷會話信息共享自動降級標志的值,如果會話信息共享自動降級標志的值指示自動降級關閉,則將待刪除信息從本地會話記錄中刪除并且刪除過程結束,如果會話信息共享自動降級標志的值指示自動降級開啟,則檢測分布式緩存子系統是否可用并進入步驟(3) ; (3)如果分布式緩存子系統不可用,則將待刪除信息從本地會話記錄中刪除并且刪除過程結束以及將共享功能開關標志的值設置為指示會話信息共享功能關閉,如果分布式緩存子系統可用,則判斷所述共享會話接口模型中的對應的記錄是否需要同步,如果所述共享會話接口模型中的對應的記錄不需要同步,則將待刪除信息從本地會話記錄中刪除并且刪除過程結束,如果所述共享會話接口模型中的對應的記錄需要同步,則實施同步操作并且隨后將待刪除信息從本地會話記錄中刪除,隨之刪除過程結束。
[0020]在上面所公開的方案中,優