選地,所述web服務器以如下方式獲取會話信息:(I)判斷共享功能開關標志的值,如果共享功能開關標志的值指示會話信息共享功能關閉,則直接從本地會話記錄中獲取會話信息并且獲取過程結束,如果共享功能開關標志的值指示會話信息共享功能開啟,則進入步驟(2) ; (2)判斷會話信息共享自動降級標志的值,如果會話信息共享自動降級標志的值指示自動降級關閉,則直接從本地會話記錄中獲取會話信息并且獲取過程結束,如果會話信息共享自動降級標志的值指示自動降級開啟,則檢測分布式緩存子系統是否可用并進入步驟(3) ;(3)如果分布式緩存子系統不可用,則直接從本地會話記錄中獲取會話信息并且獲取過程結束以及將共享功能開關標志的值設置為指示會話信息共享功能關閉,如果分布式緩存子系統可用,則根據與該會話相關聯的同步會話標識符獲取所述共享會話接口模型中的對應記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值,并且判斷該值中是否包含當前web服務器的標識號,如果該值中包含當前web服務器的標識號,則隨之直接從本地會話記錄中獲取會話信息,如果該值中不包含當前web服務器的標識號,則該web服務器中的緩存-web容器接口單元6從所述共享會話接口模型中的對應記錄的鍵-值對的值域中的會話信息鍵-值對中將最新的會話信息同步到本地會話記錄中,并且將當前web服務器的標識號添加到所述共享會話接口模型中的對應記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值中,隨之在前述同步過程完成后從本地會話記錄中獲取會話信息。
[0021]在上面所公開的方案中,優選地,所述系統進一步包括攔截器,所述攔截器能夠攔截傳送到所述web服務器的每個服務請求,并且在每次攔截到傳送到所述web服務器的服務請求后刷新對應的過期時間鍵-值對的值域的值。
[0022]在上面所公開的方案中,優選地,所述攔截器能夠攔截所述web服務器發送到所述客戶端的每個服務響應,并且將與其相關聯的會話標識符和/或同步會話標識符嵌入該服務響應中。
[0023]在上面所公開的方案中,優選地,在客戶端向web服務器發送服務請求時,如果該服務請求不是初始服務請求,則該客戶端構造所述服務請求使得其包含會話標識符和同步會話標識符兩者,其中,如果該客戶端的cookie未被禁用,則該客戶端從cookie中獲取所述會話標識符和同步會話標識符,如果該客戶端的cookie被禁用,則該客戶端依據預定規則將所述會話標識符和同步會話標識符嵌入該服務請求中。
[0024]在上面所公開的方案中,優選地,在接收到服務請求后,所述web服務器從該服務請求中提取與其相關聯的會話標識符和同步會話標識符,并且如果會話標識符和同步會話標識符兩者均不能被獲取到,則確定此服務請求是初始服務請求并隨之為其生成與其相關聯的會話標識符和同步會話標識符,如果會話標識符和同步會話標識符兩者均能夠被獲取到并且本地會話記錄中不存在對應的記錄,則根據所述同步會話標識符從所述共享會話接口模型中查找對應的記錄,并將查找出的記錄同步到本地會話記錄中。
[0025]本發明所公開的基于web會話共享的信息交互系統至少具有下列優點:(1)由于采用了存儲于分布式緩存子系統中的共享會話接口模型,故能夠實現基于負載均衡或服務器故障導致的web服務器之間的平滑切換,并且同時不會增加歸因于同步操作的網絡流量負擔,從而確保了 web服務器的性能;(2)由于采用了共享自動降級功能,故能夠確保在分布式緩存子系統故障時整個系統的可用性以及配置靈活性;(3)由于在客戶端I的cookie被禁用的情況下能夠依據預定的規則將會話標識符和同步會話標識符嵌入到服務請求中,故提高了系統的健壯性和適用性。
【附圖說明】
[0026]結合附圖,本發明的技術特征以及優點將會被本領域技術人員更好地理解,其中:
圖1是根據本發明的實施例的基于web會話共享的信息交互系統的示意性結構圖。
【具體實施方式】
[0027]圖1是根據本發明的實施例的基于web會話共享的信息交互系統的示意性結構圖。如圖1所示,本發明所公開的基于web會話共享的信息交互系統包括至少一個客戶端1、負載均衡裝置8、至少兩個web服務器3和分布式緩存子系統4。所述至少一個客戶端I中的每個基于用戶指令并經由負載均衡裝置8向所述至少兩個web服務器3中的一個發送服務請求,并且接收來自相應的web服務器3的服務響應以完成特定的信息交互過程。所述負載均衡裝置8基于預定的負載均衡算法從所述至少兩個web服務器3中選擇當前負載較低的web服務器3并將所述服務請求傳送到所選擇的web服務器3。所述至少兩個web服務器3中的每個處理接收到的服務請求并創建和維護與所接收到的服務請求相關聯的會話,以及將服務響應傳送回相應的客戶端I,其中,所述至少兩個web服務器3借助于分布式緩存子系統4實現所述至少兩個web服務器3之間的會話信息共享。所述分布式緩存子系統4存儲共享會話接口模型,所述共享會話接口模型包含需要在所述至少兩個web服務器3之間共享的會話信息。
[0028]優選地,在本發明所公開的基于web會話共享的信息交互系統中,所述web服務器3進一步包括服務請求處理單元5、緩存-web容器接口單元6和配置信息存儲單元7。所述服務請求處理單元5根據配置信息并且借助于所述共享會話接口模型處理接收到的服務請求并隨之將服務響應傳送回相應的客戶端I。所述緩存ieb容器接口單元6維護所述共享會話接口模型,以便基于所述共享會話接口模型實現會話信息的共享和更新。所述配置信息存儲單元7存儲所述配置信息。
[0029]優選地,在本發明所公開的基于web會話共享的信息交互系統中,所述共享會話接口模型是由多個鍵-值對構成的記錄鏈表,其中,每個鍵-值對包含鍵域和值域。
[0030]優選地,在本發明所公開的基于web會話共享的信息交互系統中,所述共享會話接口模型的記錄鏈表中的每個鍵-值對的鍵域的值是同步會話標識符(sess1n ID),而每個鍵-值對的值域的值是由下列鍵-值對組成的鍵-值對列表:同步標記鍵-值對、過期時間鍵-值對、會話信息鍵-值對、以及共享會話鍵-值對,其中,所述會話信息鍵-值對的值域的值是所述同步會話標識符所指示的會話的信息(例如會話的屬性信息和歷史狀態信息寸寸/ O
[0031]優選地,在本發明所公開的基于web會話共享的信息交互系統中,所述服務請求處理單元5在接收到來自客戶端的初始服務請求(即能夠發起一個會話過程的最初始的服務請求)后以常規的方式創建與其相關聯的會話以及生成與該會話相關聯的會話標識符(sess1n ID),并且隨之按照預定規則生成與該會話相關聯的同步會話標識符,所述同步會話標識符在整個系統中是唯一的(示例性地,所述同步會話標識符根據如下規則生成:應用標識號+服務器標識號+會話標識符+系統納秒值),以及隨后將初始會話信息分別存儲到本地會話記錄以及所述共享會話接口模型中,其中,所述共享會話接口模型中的對應的記錄的鍵-值對的鍵域的值是與所創建的會話相關聯的所述同步會話標識符。
[0032]優選地,在本發明所公開的基于web會話共享的信息交互系統中,當web服務器3向與已創建的會話相關聯的本地會話記錄中添加信息時,該web服務器3中的緩存-web容器接口單元6同時將所述共享會話接口模型中的對應的記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值清除并且重新設置為該web服務器3的標識號,并且將該記錄的鍵-值對的值域中的會話信息鍵-值對的值域的值更新(即使得該值域中的信息與本地會話記錄中的信息同步)。
[0033]優選地,在本發明所公開的基于web會話共享的信息交互系統中,當web服務器3要從本地會話記錄中獲取與已創建的會話相關聯的會話信息時,該web服務器3中的緩存-web容器接口單元6首先根據與已創建的會話相關聯的同步會話標識符獲取所述共享會話接口模型中的對應記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值,并且判斷該值中是否包含當前web服務器3的標識號,如果該值中包含當前web服務器3的標識號,則隨之直接從本地會話記錄中獲取所述與已創建的會話相關聯的會話信息(即不需要從所述共享會話接口模型同步本地會話記錄),如果該值中不包含當前web服務器3的標識號,則該web服務器3中的緩存-web容器接口單元6從所述共享會話接口模型中的對應記錄的鍵-值對的值域中的會話信息鍵-值對中將最新的會話信息同步到本地會話記錄中,并且將當前web服務器3的標識號添加到所述共享會話接口模型中的對應記錄的鍵-值對的值域中的同步標記鍵-值對的值域的值中(例如,不同的web服務器3的標識號之間用逗號分隔),隨之該web服務器3在前述同步過程完成后從本地會話記錄中獲取與已創建的會話相關聯的會話信息。
[0034]優選地,在本發明所公開的基于web會話共享的信息交互系統中,所述過期時間鍵-值對的值域的值是會話過期時間,并且在任何web服務器3中的緩存-web容器接口單元6向所述共享會話接口模型中的記錄插入數據或刪除數據時、或者在執行會話信息同步操作時,所述過期時間鍵-值對的值域的值被刷新(即會話過期時間被刷新)。
[0035]優選地,在本發明所公開的基于web會話共享的信息交互系統中,所述共享會話鍵-值對的值域由鍵-值對序列組成,所述鍵-值對序列中的每個鍵-值對的鍵域的值是需要進行跨應用會話信息共享的應用的標識符(例如用戶標識符userlD),所述鍵-值對序列中的每個鍵-值對的值域的值是需要共享會話信息的會話的同