專利名稱:用于在交易處理中管理網(wǎng)絡(luò)應(yīng)用的會話狀態(tài)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于web的網(wǎng)絡(luò)交易處理。具體而言,本發(fā)明針對用 于保存web應(yīng)用交易中的會話狀態(tài)的技術(shù)。
背景技術(shù):
作為背景,用于進行遠(yuǎn)程電子交易的web應(yīng)用的使用已變得十分 普遍。web應(yīng)用是允許用戶通過使用由web服務(wù)器傳送并通過web客 戶機(例如,web瀏覽器)顯示給用戶的網(wǎng)頁形式與遠(yuǎn)程服務(wù)交互的 軟件程序。雖然術(shù)語"web"是"萬維網(wǎng)"(全球因特網(wǎng)的一部分)的簡 稱,但web應(yīng)用不限于公用網(wǎng)絡(luò),而是可被用于專用網(wǎng)絡(luò)中或者甚至 用于非網(wǎng)絡(luò)連接的機器之間??赏ㄟ^使用web應(yīng)用實現(xiàn)的交易的類型 是各種各樣的。例子包含在線購物、貿(mào)易、銀行業(yè)務(wù)和其它形式的商 業(yè)。web應(yīng)用還被用于實現(xiàn)用于諸如存儲器和數(shù)據(jù)庫管理系統(tǒng)的硬件 和軟件服務(wù)的用戶界面。在常規(guī)的特別是處理安全(例如銀行業(yè)務(wù))信息的基于web的應(yīng) 用中,存在出于安全原因終止用戶與應(yīng)用的交互的會話超時,如果該 超時被觸發(fā)。當(dāng)這發(fā)生時,用戶必須重新登錄界面并從交易的開始開 始。如果會話由于網(wǎng)絡(luò)錯誤或設(shè)備故障等被打斷,那么會話狀態(tài)也將 丟失。當(dāng)前的web應(yīng)用也不提供使得用戶能夠自愿地中斷會話同時保 存會話狀態(tài)的機制。例如,當(dāng)用戶登錄金融機構(gòu)網(wǎng)站以進行在線帳單 支付時,用戶必須在退出之前完成交易。不允許用戶保存當(dāng)前的交易 狀態(tài)、退出并然后在以后重新登錄該系統(tǒng)并從該保存點繼續(xù)交易。希望提供使得即使交易處理中斷也能夠保存web應(yīng)用的會話狀態(tài) 的技術(shù)。特別需要的是,web應(yīng)用用戶能夠控制會話狀態(tài),使得會話
可被暫停并根據(jù)用戶需要在以后繼續(xù)。 發(fā)明內(nèi)容通過一種用于在交易處理中管理web應(yīng)用的會話狀態(tài)的新穎的方 法、系統(tǒng)和計算程序產(chǎn)品,解決上述問題并獲得本領(lǐng)域的改進。當(dāng)消 息在web客戶機和web服務(wù)器之間被交換時,代表客戶機其中的會話 信息,諸如web客戶機請求或web服務(wù)器響應(yīng)被存儲。在會話狀態(tài)中 斷后,可通過使用存儲的會話信息重新產(chǎn)生會話狀態(tài)。根據(jù)示例性的示出的實施例,消息可包含加密的web客戶機請求 消息、非加密的web客戶機消息、加密的web服務(wù)器響應(yīng)消息和非加 密的web服務(wù)器響應(yīng)消息中的一種。會話信息可包含整個消息或其一 部分。在任一種情況下,會話信息可以以與會話標(biāo)識符相關(guān)聯(lián)的方式 被存儲。會話信息數(shù)據(jù)可在會話狀態(tài)保持未中斷時被存儲在高速緩存 中,并在會話狀態(tài)中斷時被存儲在持久存儲器中。持久存儲器可包含 服務(wù)器側(cè)文件系統(tǒng)存儲器、客戶機側(cè)文件系統(tǒng)存儲器或數(shù)據(jù)庫存儲器 中的一個。在另一方面中,客戶機可在客戶機自愿終止會話狀態(tài)時獲 得啟動會話信息的存儲的選項。在一個示例性實施例中,會話狀態(tài)管理功能是在在交易處理中管 理web應(yīng)用的會話狀態(tài)的同時提供web應(yīng)用的web服務(wù)器系統(tǒng)產(chǎn)品 的一部分。當(dāng)請求從包含用于產(chǎn)生網(wǎng)頁的會話信息的客戶機被接收時, web服務(wù)器系統(tǒng)代表客戶機存儲會話信息。在會話狀態(tài)中斷后,可通 過使用存儲的會話信息重新產(chǎn)生會話狀態(tài)以產(chǎn)生網(wǎng)頁。在另一示例性實施例中,會話狀態(tài)管理功能是在在交易處理中管 理web應(yīng)用的會話狀態(tài)的同時提供web應(yīng)用中支持web服務(wù)器系統(tǒng) 的中間件產(chǎn)品的 一部分。當(dāng)中間件產(chǎn)品從包含用于產(chǎn)生網(wǎng)頁的會話信 息的客戶機接收請求時,托付(submission)被轉(zhuǎn)送給web服務(wù)器系 統(tǒng),并且代表客戶機會話狀態(tài)信息被存儲。在會話狀態(tài)中斷后,為了 產(chǎn)生網(wǎng)頁,可以通過向web服務(wù)器提供存儲的會話信息重新產(chǎn)生會話 狀態(tài)。
從附圖所示的本發(fā)明的優(yōu)選實施例的以下的更特別的說明,本發(fā) 明的上述和其它特征和優(yōu)點將變得十分明顯,在這些附圖中,圖l是表示包含web應(yīng)用會話狀態(tài)管理器的示例性web交易環(huán)境 的功能框圖;圖2是表示由圖1的會話狀態(tài)管理器執(zhí)行的一系列動作的流程圖; 圖3是表示圖1的會話狀態(tài)管理器的示例性實現(xiàn)的功能框圖; 圖4A是表示圖1的會話狀態(tài)管理器的第一替代性實現(xiàn)的功能框圖;圖4B是表示圖1的會話狀態(tài)管理器的第二替代性實現(xiàn)的功能框圖;圖5是表示可被用于實現(xiàn)圖1的會話狀態(tài)管理器的示例性計算機 硬件平臺的功能框圖;圖6是可被用于提供用于實現(xiàn)圖1的會話狀態(tài)管理器的計算機程 序產(chǎn)品的存儲介質(zhì)的示意圖。
具體實施方式
現(xiàn)在通過附圖示出的示例性實施例說明本發(fā)明,在所有這些附圖 中,類似的附圖標(biāo)記表示類似的要素。參照圖1,示例性web交易環(huán) 境2被示出,其中, 一個或更多個web應(yīng)用客戶機(web客戶機)4j、 42...4n通過通信媒介8與web應(yīng)用服務(wù)器系統(tǒng)(web服務(wù)器系統(tǒng))6 通信。web客戶機^、 42...《可各自體現(xiàn)為能夠?qū)崿F(xiàn)與web服務(wù)器系 統(tǒng)6交互所需要的web客戶機邏輯的任意類型的裝置、系統(tǒng)或設(shè)備。 僅作為例子,示例性的web客戶機A、 42…4n可包含在個人臺式計算 機、膝上型計算機、蜂窩式電話或其它手持裝置、web設(shè)備或其它嵌 入式系統(tǒng)等上運行的web瀏覽器程序。web服務(wù)器系統(tǒng)6可通過使用在一個或更多個數(shù)據(jù)處理平臺上的 一個或更多個實例中執(zhí)行的常規(guī)web服務(wù)器程序邏輯被實現(xiàn)。在圖1
中,web服務(wù)器系統(tǒng)6僅作為例子被示為能夠大規(guī)模web交易處理的 服務(wù)器組。根據(jù)本示例性實現(xiàn),web服務(wù)器系統(tǒng)6可包含一個或更多 個前端詢問分發(fā)器實例(詢問分發(fā)器)10、 一個或更多個后端web服 務(wù)器實例(web服務(wù)器)12和一個或更多個服務(wù)器存儲器14的實例。 如本領(lǐng)域公知的那樣,詢問分發(fā)器10的功能是從界61)客戶機41、42...411 接收客戶機請求并以實現(xiàn)平衡的web服務(wù)器負(fù)載配平的方式將它們分 發(fā)給web服務(wù)器12。 web服務(wù)器12通過詢問分發(fā)器10處理客戶機請 求并產(chǎn)生返回給客戶機A、 42...《的響應(yīng)的網(wǎng)頁。該處理包含可被存 儲在服務(wù)器存儲器14中的靜態(tài)網(wǎng)頁的檢索和使得web服務(wù)器12能夠 調(diào)用幫助產(chǎn)生動態(tài)網(wǎng)頁內(nèi)容的外部幫助應(yīng)用的公共網(wǎng)關(guān)接口 (CGI) 處理。服務(wù)器存儲器14存儲靜態(tài)網(wǎng)頁,并可另外存儲諸如用于構(gòu)建動 態(tài)網(wǎng)頁的數(shù)據(jù)以及與前端詢問分發(fā)器10、 web服務(wù)器12和任何相關(guān) 幫助應(yīng)用有關(guān)的執(zhí)行和數(shù)據(jù)文件的其它信息??杀挥糜谧鳛樵儐柗职l(fā) 器10和web服務(wù)器12主機使用的示例性數(shù)據(jù)處理資源包含但不限于 個人計算機、工作站、中型計算機或大型機系統(tǒng)。為了運行所需數(shù)量 的詢問分發(fā)器和web服務(wù)程序邏輯的實例,這些資源中的一個或更多 個可被使用,并且各個這種資源可被單獨或多倍分割。示例性的服務(wù) 器組實現(xiàn)可利用 一個或更多個數(shù)據(jù)處理資源中的第 一組以作為前端詢 問分發(fā)器10的主機,并利用一個或更多個數(shù)據(jù)處理資源中的第二組以 作為后端web服務(wù)器12的主機。web服務(wù)器幫助應(yīng)用也可在數(shù)據(jù)處 理資源中的笫二組上運行,或者,作為替代方案, 一個或更多個數(shù)據(jù) 處理資源中的第三組可被使用。諸如一個或更多個單盤存儲單元、多 盤存儲子系統(tǒng)、RAID陣列、JBOD陣列等的一組專用數(shù)據(jù)存儲資源 可被用于用作服務(wù)器存儲器14的主機。web服務(wù)器系統(tǒng)6的上述資源 可位于單個物理站點上,或者可分布在地理位置不同的多個站點上。 雖然沒有示出,但可通過專用網(wǎng)絡(luò)、公用網(wǎng)絡(luò)或通過其它通信基礎(chǔ)設(shè) 施提供這些資源之間的互連??赏ㄟ^使用任意適當(dāng)?shù)耐ㄐ偶夹g(shù),包含有線(例如電氣或光學(xué)) 或無線網(wǎng)絡(luò)或其它連接方案,實現(xiàn)通信媒介8。適當(dāng)?shù)木W(wǎng)絡(luò)實現(xiàn)的例
子包含但不限于諸如因特網(wǎng)的公用網(wǎng)絡(luò)以及專用網(wǎng)絡(luò)。關(guān)于后一種, 專用網(wǎng)絡(luò)可包含其自身的物理基礎(chǔ)設(shè)施,或者可通過公用網(wǎng)絡(luò)內(nèi)的虛擬專用網(wǎng)絡(luò)連接被提供。因此,雖然術(shù)語"web"是"萬維網(wǎng)"(全球因 特網(wǎng)的一部分)的簡稱,但web客戶機4p 42...4n和web服務(wù)器6之 間的通信不限于公用網(wǎng)絡(luò),而是可包含專用網(wǎng)絡(luò)或者甚至非網(wǎng)絡(luò)連接 的使用。web客戶機A、 42...4n可通過根據(jù)任何適當(dāng)?shù)幕趙eb的請求響 應(yīng)協(xié)議交換消息與web服務(wù)器系統(tǒng)6交互。例如,web客戶機4i 、 42...4n 可向web服務(wù)器系統(tǒng)6發(fā)送對于網(wǎng)頁的請求,并且后者可返回包含格 式化指令和web客戶機處理成圖形網(wǎng)頁顯示的數(shù)據(jù)的響應(yīng)。由客戶機 A、 42...4 發(fā)送的請求可以以任意適當(dāng)?shù)姆绞奖桓袷交@?,客?機請求可包含目前已知的以常規(guī)的方式在web瀏覽器地址窗口中顯示 的類型的HTML (超文本鏈接標(biāo)記語言)URL (統(tǒng)一資源定位符)字 符串(也被稱為網(wǎng)址)。請求可另外包含當(dāng)產(chǎn)生響應(yīng)的網(wǎng)頁時web服 務(wù)器系統(tǒng)6要處理的數(shù)據(jù)。常見的例子是web客戶機A、 42...4 的用 戶使用網(wǎng)頁表單供給的表單數(shù)據(jù)(form data )。當(dāng)用戶提交這種表單 時,輸入其中的數(shù)據(jù)作為由web客戶機A、 42..A發(fā)送的請求的一部 分被傳送給web服務(wù)器系統(tǒng)6 (例如,通過使用常規(guī)的GET或POST 方法)。web服務(wù)器系統(tǒng)6處理請求并向客戶機返回適當(dāng)?shù)木W(wǎng)頁響應(yīng)。 該響應(yīng)可通過使用諸如HTML (超文本鏈接標(biāo)記語言)或XML (可 擴展標(biāo)記語言)的語言被格式化,web客戶機^、 42...4n分析和解釋 該語言以顯示網(wǎng)頁。如上所述,來自web服務(wù)器系統(tǒng)6的響應(yīng)可以是 從服務(wù)器存儲器14檢索的靜態(tài)網(wǎng)頁,或者它可例如通過處理作為客戶 機請求的一部分提交的數(shù)據(jù)的web服務(wù)器幫助應(yīng)用動態(tài)產(chǎn)生。還應(yīng)理 解,web客戶機A、 42…《和web服務(wù)器系統(tǒng)6之間交換的請求響應(yīng) 消息可以為開放的web文本格式,或者它們可以根據(jù)諸如SSL/TLS (安全套接層/傳輸層安全)的加密機制被加密。為了有利于在線交易處理,web服務(wù)器系統(tǒng)6具有跟蹤它與web 客戶機一、42...4n之間的會話的能力。如本領(lǐng)域公知的那樣,可以通 過使用諸如客戶機名稱和/或密碼(假定交易使用這種標(biāo)識符)由web 服務(wù)器系統(tǒng)6設(shè)定的cookie、客戶機網(wǎng)絡(luò)或MAC地址的任何唯一標(biāo) 識信息或其它區(qū)別信息通過web服務(wù)器系統(tǒng)6標(biāo)識會話。注意,上述 信息中的一些或全部的可用性可取決于交易是否涉及登錄過程,如果 是,那么登錄的類型被使用。例如,交易可利用用戶供給名稱和/或密 碼的正式登錄過程,或web服務(wù)器系統(tǒng)可能響應(yīng)用戶選擇復(fù)選框等指 示他們希望被記住,在web客戶機4p 42…4n上設(shè)定cookie或其它標(biāo) 識符的非正式登錄過程。在前一種場合下,用戶名稱和密碼信息對web 服務(wù)器系統(tǒng)6是可用的以用作會話標(biāo)識符。在后一種場合下,可能不 存在任何用戶名稱或密碼,而是會存在可被用作會話標(biāo)識符的cookie 等。會話是指web服務(wù)器和單個web客戶機A、 42...4 之間的一系列 請求響應(yīng)交互。在線交易處理會話的常見的例子是一般響應(yīng)以前由用 戶供給的數(shù)據(jù),使web客戶機用戶填寫和提交由web服務(wù)器系統(tǒng)6產(chǎn) 生的一組web表單(form)的請求響應(yīng)序列。依次請求用戶名稱、密 碼、帳戶號和一組交易指令等的在線銀行業(yè)務(wù)交易是單一會話的典型 例子。會話的另一例子是購物車交易,其中,web客戶機用戶選擇購 買的物品、將它們放入購物車中、然后作為結(jié)帳過程的一部分購買這 些物品。另一例子是使得web客戶機用戶能夠與用于諸如存儲器和數(shù) 據(jù)庫管理系統(tǒng)的硬件和軟件服務(wù)web界面交互的交易。在本例子中, 用戶使用 一 系列web表單以輸入調(diào)用服務(wù)的功能的 一 系列接口命令。 如上面作為背景討論的那樣,在常規(guī)的基于web的應(yīng)用中,存在 如果超時或其它功能被觸發(fā)則出于安全原因關(guān)閉web應(yīng)用會話的會話 超時或其它自動功能。當(dāng)網(wǎng)絡(luò)錯誤、設(shè)備故障使客戶機/服務(wù)器通信鏈 接中斷時,會話也會被終止。當(dāng)這些事件發(fā)生時,會話狀態(tài)丟失并且 用戶必須重新獲得界面并從交易的開始開始。常規(guī)的基于web的應(yīng)用如,當(dāng)用戶登錄金融機構(gòu)網(wǎng)站以進行在線帳單支付時,用戶必須在退 出之前完成交易。不允許用戶保存當(dāng)前的交易狀態(tài)、退出并然后在以 后重新登錄該系統(tǒng)并從該保存點繼續(xù)交易。
為了解決該問題,可提供使得用戶即使在會話中斷時也能夠保存會話狀態(tài)(上下文(context))的會話狀態(tài)管理器16。如圖1所示, 會話狀態(tài)管理器16包含可被配置為截取在前端分發(fā)器10和web服務(wù) 器12之間通過的客戶機請求和/或服務(wù)器響應(yīng)的過濾器18。假定會話 狀態(tài)管理器16處于活動模式,過濾器將各請求和/或各響應(yīng)中的會話 信息存儲在高速緩存存儲器20中以保存用于隨后在重新產(chǎn)生會話狀 態(tài)中使用的會話信息。高速緩存存儲器20可在物理上與諸如與web 服務(wù)器系統(tǒng)6相關(guān)的數(shù)據(jù)處理資源中的一個的任意適當(dāng)?shù)臄?shù)據(jù)處理主 機上的會話狀態(tài)管理器16駐留在一起,或駐留在其它位置(見下文)。 在請求或響應(yīng)被加密(例如通過SSL/TLS加密)的情況下,其要被緩 存的部分可在過濾之前被加密。該過濾可由前端10、 web服務(wù)器12 或通過過濾器18本身執(zhí)行。圖1示出可被用于4吏客戶機請求和/或服務(wù)器響應(yīng)通過濾過器18 的示例性通路(pathway) 22和24。當(dāng)進入的客戶機請求從詢問分發(fā) 器10被傳送到web服務(wù)器12時,它們可通過通路22轉(zhuǎn)向到過濾器 18。過濾器18可被^L計為通過將整個請求消息或其中的信息的子集復(fù) 制到高速緩存存儲器20中緩存會話信息。在某些實施例中,為了保留 存儲器,過濾器18可任選地覆寫任何以前的緩存的會話用信息。在緩 存后,請求通過通路24被傳送給適當(dāng)?shù)膚eb服務(wù)器12進行處理。在 相反的方向中,由web服務(wù)器12發(fā)送給詢問分發(fā)器的外發(fā)的響應(yīng)可 通過通路24轉(zhuǎn)向到過濾器18。同樣,過濾器18可被設(shè)計為通過將整 個響應(yīng)消息或其中的信息的子集復(fù)制到高速緩存存儲器20中緩存會 話信息。在某些實施例中,為了保留存儲器,過濾器18可任選地覆寫 任何以前的緩存的會話用信息。在緩存后,請求通過通路24被傳送給 詢問分發(fā)器IO,以傳輸給web客戶機4p 42...4n。這樣,諸如當(dāng)前的 網(wǎng)頁、登錄狀態(tài)、向?qū)Р襟E、輸入欄數(shù)據(jù)等的會話信息可在交互式會 話的過程中被會話狀態(tài)管理器16跟蹤。為了適當(dāng)?shù)貙⒕彺娴臅捫畔?與正確的web客戶機A、 42…4n相關(guān)聯(lián),諸如客戶機名稱和/或密碼、 由web服務(wù)器系統(tǒng)6設(shè)定的cookie、客戶機網(wǎng)絡(luò)或MAC地址的附加
會話標(biāo)識信息或其它唯一 的區(qū)別信息也可被緩存。在會話中斷的情況下,代表最近的請求或響應(yīng)的緩存的會話信息可與相關(guān)的會話標(biāo)識信息(例如,web客戶機4p 42...4n的網(wǎng)絡(luò)地址) 一起被交付給持久存儲器(persistent storage),使得會話上下文可 在以后被恢復(fù)。持久存儲器可由任何適當(dāng)?shù)拇鎯ο到y(tǒng)提供。例如,持 久存儲器可實現(xiàn)為與web服務(wù)器系統(tǒng)6相關(guān)的文件系統(tǒng)存儲器或數(shù)據(jù) 庫存儲器(例如,服務(wù)器存儲器14)或與web客戶機^、 42...4 相關(guān) 的文件系統(tǒng)存儲器或數(shù)據(jù)庫存儲器(例如,邏輯盤驅(qū)動器)。作為替 代方案,可使用會話狀態(tài)管理器16專用的存儲器,諸如與實現(xiàn)會話狀 態(tài)管理器的數(shù)據(jù)處理主機(見下文)相關(guān)的文件系統(tǒng)存儲器或可由會 話狀態(tài)管理器訪問的單獨的數(shù)據(jù)庫存儲系統(tǒng)。任何適當(dāng)?shù)拇鎯Ω袷剑?包含BLOB (二進制大型對象)或其它數(shù)據(jù)類型,可被使用。導(dǎo)致緩存的信息向持久存儲器的傳輸?shù)臅捴袛嗫稍诟鞣N情況下 出現(xiàn),例如,在以下實例中的一種出現(xiàn)時出現(xiàn)-用戶請求退出系統(tǒng)并保存當(dāng)前的會話狀態(tài)以在下一次登錄時恢復(fù);-由于web應(yīng)用的會話超時或其它自動功能,系統(tǒng)自動使用戶退 出系統(tǒng);或者-由于網(wǎng)絡(luò)錯誤、設(shè)備故障或其它條件,會話被中斷。 當(dāng)用戶回到會話并訪問web應(yīng)用時,過濾器18可從其以前存儲 的會話標(biāo)識信息確定用戶具有保存的會話。過濾器18可然后提供給用 戶繼續(xù)最后的保存的會話的能力,或舍棄自最后的會話的變化并從新 的會話開始。如果用戶請求繼續(xù)以前的會話,那么過濾器18從持久存 儲器檢索保存的會話信息并使用該信息以提供給用戶與以前的狀態(tài)一 致的網(wǎng)頁。例如,如果緩存的會話信息的最后的條目是包含具有相關(guān) 的web表單數(shù)據(jù)的URL地址的客戶機請求,那么該信息將由過濾器 18從持久存儲器檢索,并通過通路24被傳送給web服務(wù)器12。請求 將以常規(guī)的方式被處理,并且,將產(chǎn)生適當(dāng)?shù)捻憫?yīng)。類似地,如果緩 存的會話信息的最后的條目是web服務(wù)器響應(yīng)(即,網(wǎng)頁),那么過 濾器18將從持久存儲器檢索響應(yīng),并通過通路22將其傳送給詢問分 發(fā)器IO,以返回給相關(guān)的web客戶機4!、 42...4n。用戶由此被帶到最 后的會話所處的確切位置,包含所有字段輸入、頁面、向?qū)Р襟E等。 實質(zhì)上,由于它在以前的退出、超時或其它會話中斷的時候繼續(xù)存在, 因此看起來好象用戶從沒有離開會話。作為替代方案,如果用戶請求 舍棄最后的會話,那么來自以前的會話的所有信息和狀態(tài)數(shù)據(jù)會被刪 除,并且將提供給用戶新的會話,就好象沒有以前的會話要被恢復(fù)。 如果會話狀態(tài)管理器16不存在或被啟用進行操作,那么會是這種情 況?,F(xiàn)在轉(zhuǎn)到圖2,對于過濾器保存客戶機請求和服務(wù)器響應(yīng)這兩者 (而不僅是一個或另一個)的狀態(tài)的情況,說明由會話狀態(tài)管理器16 的過濾器18實現(xiàn)的示例性邏輯。請求響應(yīng)的流程(traffic)的這種處 理從在客戶機訪問點30上接收客戶機請求開始。當(dāng)客戶機請求被接收 時,控制轉(zhuǎn)到步驟32,在該步驟32中,過濾器18測試請求是否代表 新的會話(新的客戶機訪問)。可以通過在以前緩存和/或持久存儲的 會話上下文信息的查閱表中使用客戶機的當(dāng)前會話標(biāo)識信息(例如, 名稱、密碼、cookie、網(wǎng)絡(luò)或MAC地址等)作為檢索關(guān)鍵字,執(zhí)行 該步驟。如果為肯定的(例如,發(fā)現(xiàn)檢索關(guān)鍵字匹配),那么控制轉(zhuǎn) 到步驟34,在該步驟34中,過濾器18測試是否存在用于當(dāng)前的web 客戶機A、 42...4n的任何保存的(緩存或持久存儲的)會話上下文信 息。如果步驟34的結(jié)果為否定的,那么控制轉(zhuǎn)到步驟36,在該步驟 36中,過濾器18設(shè)置用于緩存與新的會話有關(guān)的會話上下文信息的 高速緩存存儲器。如果在步驟34中確定存在以前保存的會話上下文信 息,那么控制轉(zhuǎn)到步驟38。在步驟38中,過濾器18測試web客戶機4p 42...《是否已提交 恢復(fù)保存的會話的會話上下文的請求。不管以前的會話是被web服務(wù) 器系統(tǒng)6自動終止或由用戶自愿終止,還是由于網(wǎng)絡(luò)錯誤、設(shè)備故障 或其它狀況終止,該選項都是web客戶機用戶所希望的。可以通過向 web客戶機A、 42...《提供允許用戶選擇是繼續(xù)進行當(dāng)前的會話還是 恢復(fù)以前的會話的網(wǎng)頁控制元素,征求用戶的指令。用戶的選擇將作為客戶機請求的一部分被傳送,使得它可在步驟38中被過濾器18評 價。如果在步驟38中確定web客戶機42...4n已請求以前的會話 的恢復(fù),那么會話上下文將在步驟40中被過濾器18從持久的存儲器 檢索??梢酝ㄟ^在持久存儲的會話上下文信息的查閱表中使用客戶機 的當(dāng)前會話標(biāo)識信息(例如,名稱、密碼、cookie、網(wǎng)絡(luò)或MAC地 址等)作為檢索關(guān)鍵字,執(zhí)行該步驟。在步驟42中,過濾器18基于 檢索的上下文信息在步驟42中重建會話狀態(tài)。這可以由過濾器18單 獨或在來自web服務(wù)器12的支持下被處理。重建的會話狀態(tài)將包含 在步驟44中通過詢問分發(fā)器IO中的一個傳達(dá)給web客戶機4i、42…4n 的網(wǎng)頁。如果在步驟38中確定web客戶機A、 42...《沒有請求會話上下 文恢復(fù),或者如果在步驟32中確定當(dāng)前的請求不是新的會話的開始, 那么控制轉(zhuǎn)到步驟46,在該步驟46中,過濾器18確定客戶機是否已 請求保存當(dāng)前會話。可以在用戶不涉及的透明情況下或基于用戶輸入 進行這種確定。在前一種情況下,用戶在會話完成前終止該會話(例 如,在完成之前退出交易)可被解釋為保存會話上下文的客戶機請求。 在后來的登錄之前,用戶不需要知道會話上下文已被保存,在該登錄 點上,用戶可被詢問他們是否希望按照步驟38~42恢復(fù)以前的會話。 如果步驟46的確定是基于用戶輸入做出的,那么可以通過向web客 戶機A、 42...4 提供允許用戶按照會話終止請求啟動會話保存的網(wǎng)頁 控制元素,請求用戶的指令。如果在步驟46中確定web客戶機4p 42...4n已請求會話保存,那么過濾器18將在步驟48中將用于當(dāng)前的 會話的緩存的上下文交付(commit)給持久存儲器。在步驟50中, 過濾器18產(chǎn)生會話保存驗證響應(yīng)(例如,作為網(wǎng)頁),并且,步驟 44中,該響應(yīng)被傳送給web客戶機4!、 42...4n。如果在步驟46中確定web客戶機A、 42...4。還沒有請求會話保 存,那么控制轉(zhuǎn)到步驟52,并且過濾器18將當(dāng)前的請求緩存為會話 上下文信息。同樣,為了代表正確的web客戶機便于隨后的會話恢復(fù),
與web客戶機A、 42...4n有關(guān)的附加會話標(biāo)識信息(例如,名稱、密 碼、cookie、網(wǎng)絡(luò)或MAC地址等)也可被緩存。步驟52還將在步驟 36的高速緩存存儲器設(shè)置操作之后被實現(xiàn)。在步驟54中,過濾器18 將請求傳送給web服務(wù)器12用于進行常規(guī)的處理。當(dāng)web服務(wù)器響 應(yīng)返回過濾器18時,它在步驟56中被緩存。在步驟44中響應(yīng)然后被 傳送給web客戶機A、 42...4n (通過詢問分發(fā)器10中的一個)。當(dāng)存在不是自愿地被web客戶機用戶啟動的會話終止時,圖2的 處理邏輯可在服務(wù)器訪問點58上被web服務(wù)器12訪問。步驟60代 表服務(wù)器側(cè)終止事件,在該服務(wù)器側(cè)終止事件中,web服務(wù)器系統(tǒng)6 啟動會話超時或其它自動會話終止功能,或知道會話已由于諸如網(wǎng)絡(luò) 錯誤或設(shè)備故障等的一些其它原因中斷。當(dāng)這種事件出現(xiàn)時,過濾器 18被通知,使得它可以在步驟62中將緩存的會話上下文交付給持久 存儲器。如果存在會話終止的事先警告,那么在步驟44中適當(dāng)?shù)捻憫?yīng) 會被傳送給web客戶機4,、 42...4n (通過詢問分發(fā)器10中的一個)。 應(yīng)當(dāng)理解,過濾器18可作為軟件、固件或兩者的組合被實現(xiàn)。包 含過濾器18的編程邏輯可在任何適當(dāng)?shù)臄?shù)據(jù)處理系統(tǒng)或裝置上執(zhí)行。 高速緩存存儲器20可在與執(zhí)行過濾器邏輯的系統(tǒng)或裝置相關(guān)的存儲 器中被實現(xiàn)。圖3示出過濾器18的一個示例性實現(xiàn),其中,其邏輯例 如作為獨立的中間件產(chǎn)品以與web服務(wù)器系統(tǒng)6分開的方式被體現(xiàn)。 根據(jù)該實現(xiàn),過濾器邏輯與用于實現(xiàn)詢問分發(fā)器10和web服務(wù)器12 的程序邏輯不同。但注意,過濾器邏輯仍可在運行詢問分發(fā)器10和/ 或web服務(wù)器12的相同硬件上執(zhí)行。作為替代方案,過濾器邏輯可 在獨立的系統(tǒng)上運行。為了在圖3的實施例中處理加密的消息(例如, 基于SSL/TLS等),使過濾器18處理進入的客戶機請求的任何解密 (在緩存這些請求之前)和外發(fā)的服務(wù)器響應(yīng)的加密(在緩存這些響 應(yīng)之后)會是有利的。作為替代方案,詢問分發(fā)器10可執(zhí)行解密/加 密。圖4A和圖4B示出過濾器18的另一示例性實施例,其中,其邏 輯被包含在web服務(wù)器系統(tǒng)6中。在圖4A中,過濾器邏輯是詢問分 發(fā)器10的一部分。為了在圖4A的實施例中處理加密的消息(例如,
基于SSL/TLS等),使詢問分發(fā)器IO處理進入的客戶機請求的任何 解密(在緩存這些請求之前)和外發(fā)的服務(wù)器響應(yīng)的加密(在緩存這 些響應(yīng)之后)會是有利的。作為替代方案,過濾器18可如圖3的實施 例那樣執(zhí)行解密/加密。在圖4B中,過濾器邏輯是web服務(wù)器12的 一部分。為了在圖4B的實施例中處理加密的消息(例如,基于SSL/TLS 等),使web服務(wù)器12處理進入的客戶機請求的任何解密(在緩存 這些請求之前)和外發(fā)的服務(wù)器響應(yīng)的加密(在緩存這些響應(yīng)之后) 會是有利的。作為替代方案,過濾器18可如圖3的實施例那樣執(zhí)行解 密/加密,詢問分發(fā)器10也可以。因此,公開了用于在交易處理中管理web應(yīng)用的會話狀態(tài)的技術(shù)。 可以理解,發(fā)明概念可分別在數(shù)據(jù)處理系統(tǒng)、機器實現(xiàn)的方法和計算 機程序產(chǎn)品(其中編程邏輯被設(shè)置在一個或更多個數(shù)據(jù)存儲介質(zhì)上用 于控制數(shù)據(jù)處理系統(tǒng)以執(zhí)行所需的功能)中的任一個中被體現(xiàn)。對于 數(shù)據(jù)處理系統(tǒng)和機器實現(xiàn)的方法,圖5示出可實現(xiàn)會話狀態(tài)管理器16 的示例性硬件環(huán)境30。硬件環(huán)境30包含CPU或其它數(shù)據(jù)處理資源32、 主存儲器34、用于產(chǎn)生對于監(jiān)視器(未示出)的視覺輸出的圖形卡36、 外圍存儲設(shè)備38、其它外圍設(shè)備40和互連上述元件的總線基礎(chǔ)設(shè)施 42。會話狀態(tài)管理器16可被加載到主存儲器34中。高速緩存存儲器 20也可駐留在主存儲器34中。存儲設(shè)備38可被用作持久存儲器???戶機請求和服務(wù)器響應(yīng)可通過由諸如web接口卡或其它通信設(shè)備的外 圍設(shè)備40提供的I/O (輸入/輸出)資源被輸入。對于具有機器可讀介質(zhì)和編程邏輯的計算機程序產(chǎn)品,用于存儲 編程邏輯的示例性數(shù)據(jù)存儲介質(zhì)在圖6中由附圖標(biāo)記50示出。介質(zhì) 50被示為常規(guī)上用于商業(yè)軟件銷售的類型的便攜式存儲光盤,諸如光 盤只讀存儲器(CD-ROM)盤、光盤讀/寫(CD-R/W)盤和數(shù)字通用 盤(DVD)。這些介質(zhì)可單獨或與包含所需的功能的其它軟件產(chǎn)品結(jié) 合存儲本發(fā)明的編輯邏輯。編程邏輯也可由便攜式磁介質(zhì)(諸如軟盤、 閃速存儲棒等)或與驅(qū)動器系統(tǒng)(例如,盤驅(qū)動器)結(jié)合的磁介質(zhì)或 包含于數(shù)據(jù)處理平臺中的諸如隨機訪問存儲器(RAM)、只讀存儲器
(ROM)或其它半導(dǎo)體或固態(tài)存儲器的介質(zhì)提供。更寬地說,介質(zhì)可 包含任何電子、磁、光、電磁、紅外、半導(dǎo)體系統(tǒng)或裝置或設(shè)備、傳 送或傳播信號或信號承載介質(zhì)(諸如網(wǎng)絡(luò))、或可包含、存儲、傳達(dá)、 傳播或傳送供數(shù)據(jù)處理系統(tǒng)、計算機或其它指令執(zhí)行系統(tǒng)、裝置或設(shè) 備^:用或與它們相關(guān)的編程邏輯的其它實體。雖然示出和說明了本發(fā)明的幾個實施例,但;f艮顯然可以實現(xiàn)許多 變更方式和替代性實施例。例如,如上所述,為了保留高速緩存存儲 器和持久存儲器容量,過濾器18可適于只存儲web客戶機請求或只 存儲web服務(wù)器響應(yīng)而不是緩存web客戶機請求和web服務(wù)器響應(yīng) 這兩者。因此,應(yīng)當(dāng)理解,除了根據(jù)所附的權(quán)利要求和它們的等同, 本發(fā)明不應(yīng)以任何方式被限制。
權(quán)利要求
1.一種用于在交易處理中管理web應(yīng)用的會話狀態(tài)的方法,包括接收在web客戶機和web服務(wù)器之間交換的消息;代表所述客戶機存儲所述消息中的會話信息;和在會話狀態(tài)中斷之后,通過使用所述會話信息重新產(chǎn)生所述會話狀態(tài)。
2. 根據(jù)權(quán)利要求l的方法,其中,所述消息包含加密的web客 戶機請求消息、非加密的web客戶機消息、加密的web服務(wù)器響應(yīng)消 息和非加密的web服務(wù)器響應(yīng)消息中的一種。
3. 根據(jù)權(quán)利要求l的方法,其中,存儲會話信息包含存儲所述消 息的全部。
4. 根據(jù)權(quán)利要求l的方法,其中,所述會話信息在所述會話狀態(tài) 保持未中斷時被存儲在高速緩存中,并在所述會話狀態(tài)中斷時被存儲 在持久存儲器中。
5. 根據(jù)權(quán)利要求4的方法,其中,所述持久存儲器包含服務(wù)器側(cè) 文件系統(tǒng)存儲器、客戶機側(cè)文件系統(tǒng)存儲器或數(shù)據(jù)庫存儲器中的 一個。
6. 根據(jù)權(quán)利要求l的方法,其中,所述會話信息以與會話標(biāo)識符 相關(guān)聯(lián)的方式被存儲。
7. 根據(jù)權(quán)利要求4的方法,還包括允許所述客戶機在所述客戶機 自愿終止會話時啟動所述會話信息向所述持久存儲器的存儲。
8. —種用于在交易處理中管理web應(yīng)用的會話狀態(tài)的系統(tǒng),包括過濾器; 存儲器;所述過濾器適于接收在web客戶機和web服務(wù)器之間交換的消息;所述過濾器還適于代表所述客戶機在所述存儲器中存儲所述消息中的會話信息;并且所述過濾器還適于在會話狀態(tài)中斷之后通過使用所述會話信息重 新產(chǎn)生所述會話狀態(tài)。
9. 根據(jù)權(quán)利要求8的系統(tǒng),其中,所述消息包含非加密的web 客戶機請求消息、加密的web客戶機消息、非加密的web服務(wù)器響應(yīng) 消息和非加密的web服務(wù)器響應(yīng)消息中的 一種。
10. 根據(jù)權(quán)利要求8的系統(tǒng),其中,所述過濾器適于在所述存儲 器中存儲所述消息中的全部。
11. 根據(jù)權(quán)利要求8的系統(tǒng),其中,所述過濾器適于在所述會話 狀態(tài)保持未中斷時將所述會話信息存儲在高速緩存中,并在所述會話 狀態(tài)中斷時將所述會話信息存儲在持久存儲器中。
12. 根據(jù)權(quán)利要求ll的系統(tǒng),其中,所述持久存儲器包含服務(wù)器 側(cè)文件系統(tǒng)存儲器、客戶機側(cè)文件系統(tǒng)存儲器或數(shù)據(jù)庫存儲器中的一 個。
13. 根據(jù)權(quán)利要求8的系統(tǒng),其中,所述過濾器適于以與會話標(biāo) 識符相關(guān)聯(lián)的方式保留所述數(shù)據(jù)。
14. 根據(jù)權(quán)利要求8的系統(tǒng),其中,所述過濾器適于允許所述客 戶機在所述客戶機自愿終止會話時啟動所述會話信息的存儲。
15. —種用于在交易處理中管理web應(yīng)用的會話狀態(tài)的計算機程 序產(chǎn)品,包括一個或更多個機器可讀介質(zhì);在所述機器可讀介質(zhì)上提供的編程邏輯,用于對數(shù)據(jù)處理裝置編 程,以進行操作實現(xiàn)根據(jù)權(quán)利要求1~7中的任一項的方法中的步驟。
全文摘要
提供一種用于在交易處理中管理web應(yīng)用的會話狀態(tài)的技術(shù)。當(dāng)消息在web客戶機和web服務(wù)器之間被交換時,代表客戶機其中的會話信息,諸如web客戶機請求或web服務(wù)器響應(yīng)被存儲。在會話狀態(tài)中斷后,可通過使用存儲的會話信息重新產(chǎn)生會話狀態(tài)。
文檔編號H04L29/06GK101166191SQ20071014074
公開日2008年4月23日 申請日期2007年8月9日 優(yōu)先權(quán)日2006年8月10日
發(fā)明者布倫特·W.·亞德利 申請人:國際商業(yè)機器公司