專利名稱:一種bs架構(gòu)門戶應(yīng)用中保持活躍會(huì)話的方法
技術(shù)領(lǐng)域:
本發(fā)明是增值業(yè)務(wù)相關(guān)的業(yè)務(wù)管理及用戶服務(wù)TOB門戶的構(gòu)建技術(shù)。尤其是一種 BS架構(gòu)門戶應(yīng)用中保持活躍會(huì)話的方法。
背景技術(shù):
BS架構(gòu)門戶應(yīng)用利用HTTP協(xié)議,以TOB應(yīng)用服務(wù)器作為服務(wù)端處理業(yè)務(wù)邏輯,以瀏覽器作為客戶端,利用HTML文檔實(shí)現(xiàn)用戶的操作、瀏覽界面。HTTP協(xié)議是一種請(qǐng)求/響應(yīng)式交互協(xié)議,基本交互模式為1)用戶通過瀏覽器提交訪問相關(guān)頁面/資源的HTTP訪問請(qǐng)求。2)TOB服務(wù)器接收瀏覽器的HTTP請(qǐng)求,解析請(qǐng)求并返回所需頁面/資源。3)瀏覽器收到TOB服務(wù)器返回的HTTP響應(yīng),解析其中的HTML內(nèi)容,并進(jìn)行界面呈現(xiàn)。HTTP協(xié)議是一個(gè)無狀態(tài)協(xié)議,不提供會(huì)話生命周期維持的功能(如會(huì)話的建立、 維持、終結(jié)),這些功能通常由應(yīng)用層模塊提供;維持會(huì)話狀態(tài)一般采用瀏覽器Cookie數(shù)據(jù)結(jié)合服務(wù)端會(huì)話跟蹤數(shù)據(jù)來完成,且一般是在用戶登錄門戶成功時(shí)建立會(huì)話,退出門戶時(shí)終結(jié)會(huì)話;由于HTTP協(xié)議的無狀態(tài)性質(zhì),即使用戶關(guān)閉瀏覽器,其會(huì)話跟蹤數(shù)據(jù)仍存在于服務(wù)器中。為保證會(huì)話識(shí)別、維持的及時(shí)性,大量的會(huì)話跟蹤數(shù)據(jù)一般是直接存放于服務(wù)器的內(nèi)存中的,對(duì)于用戶數(shù)較多的門戶應(yīng)用,為維持會(huì)話狀態(tài),通常要消耗大量服務(wù)器內(nèi)存和 /或用于傳遞Cookie數(shù)據(jù)的網(wǎng)絡(luò)流量,情況嚴(yán)重時(shí),門戶響應(yīng)緩慢,業(yè)務(wù)處理效率低下;此時(shí)一般的解決辦法是設(shè)置盡可能小的會(huì)話超時(shí)時(shí)限,對(duì)于久不操作以致超過超時(shí)時(shí)限的會(huì)話,將其狀態(tài)數(shù)據(jù)從服務(wù)端清除,以降低服務(wù)端內(nèi)存需求,從而將服務(wù)器從持續(xù)的低內(nèi)存狀態(tài)解放出來。由于會(huì)話超時(shí),相關(guān)的用戶再次操作時(shí)必須再次登陸,以重新建立會(huì)話。上述做法的代價(jià)是,用戶暫不操作時(shí),很容易發(fā)生會(huì)話超時(shí),這時(shí)需要用戶重新輸入用戶名/ 口令登陸;頻繁的登錄,造成用戶體驗(yàn)不佳。
發(fā)明內(nèi)容
本發(fā)明的目的是BS架構(gòu)應(yīng)用中,每個(gè)登陸用戶在WEB服務(wù)端都會(huì)維護(hù)一個(gè)會(huì)話狀態(tài)數(shù)據(jù),對(duì)于大量并發(fā)用戶的情況,用于會(huì)話的內(nèi)存開銷很大,且由于HTTP協(xié)議的特點(diǎn), 容易產(chǎn)生無效的會(huì)話,且得不到及時(shí)的清除,為保證服務(wù)器的處理性能,一般會(huì)為不活躍會(huì)話設(shè)定一個(gè)失效超時(shí)值,這時(shí)產(chǎn)生了一個(gè)問題超時(shí)值設(shè)置太長,回收服務(wù)端內(nèi)存開銷的效果不明顯;設(shè)置太短,會(huì)話很容易超時(shí),不時(shí)需要用戶重新登陸,用戶體驗(yàn)不佳。本發(fā)明一種 BS架構(gòu)門戶應(yīng)用中保持活躍會(huì)話的方法很好的解決了上述問題。本發(fā)明的技術(shù)方案是采用主流的瀏覽器均支持異步腳本調(diào)用技術(shù)。對(duì)于使用 HTML框架界面技術(shù)(FrameSet&Frame或IFrame或DIV層)的門戶應(yīng)用,在其內(nèi)容不發(fā)生更新的框架頁面內(nèi)設(shè)置異步HTTP調(diào)用腳本,并通過DHTML腳本定時(shí)器定期觸發(fā)“心跳”請(qǐng)求。對(duì)于不使用HTML框架界面技術(shù)的門戶應(yīng)用,可以在每個(gè)相關(guān)頁面中置入上述異步腳本。服務(wù)器端對(duì)瀏覽器的“心跳”請(qǐng)求的處理上沒有特殊要求,簡單返回HTTP成功響應(yīng)即可。瀏覽器和WEB應(yīng)用服務(wù)器的“心跳”交互關(guān)系如下,如圖1所示1)瀏覽器頁面中的定時(shí)器定期觸發(fā),向TOB應(yīng)用服務(wù)器異步發(fā)送“心跳”請(qǐng)求。2) WEB服務(wù)器端接受“心跳”請(qǐng)求,更新會(huì)話狀態(tài),返回“心跳”確認(rèn)響應(yīng)。“心跳”消息的發(fā)送頻率應(yīng)模擬普通人正常操作的頻率,不可以短于此頻率,以免造成不必要的額外網(wǎng)絡(luò)開銷,并加重服務(wù)端負(fù)載;應(yīng)在人工平均操作頻率的基礎(chǔ)上略加延長,以5至10分鐘一次為宜。利用此方法,要求配置服務(wù)器端的會(huì)話失效超時(shí)值,適當(dāng)調(diào)小此值,但仍需大于 “心跳”腳本的請(qǐng)求間隔,考慮網(wǎng)絡(luò)延時(shí),可以在“心跳”間隔基礎(chǔ)上另加5分鐘,并以實(shí)際業(yè)務(wù)運(yùn)行環(huán)境微調(diào)優(yōu)化。本發(fā)明的有益效果是(1)減輕服務(wù)器端的內(nèi)存開銷,提升TOB應(yīng)用的響應(yīng)性能和并發(fā)容量。(2)避免頻繁的超時(shí)重新登陸,保證用戶良好操作體驗(yàn)。
圖1瀏覽器和WEB應(yīng)用服務(wù)器的“心跳”交互關(guān)系圖
圖2異步“心跳”請(qǐng)求處理序列3 “心跳”異步調(diào)用定時(shí)器安裝流程圖
具體實(shí)施例方式一種BS架構(gòu)門戶應(yīng)用中保持活躍會(huì)話的方法主要包括了下面幾個(gè)關(guān)鍵的部分(I)HTML異步“心跳”處理腳本安裝“心跳”異步請(qǐng)求定時(shí)器,隨定時(shí)器觸發(fā)向WEB 應(yīng)用服務(wù)器發(fā)送“心跳”請(qǐng)求,處理“響應(yīng)”結(jié)果。(2)TOB服務(wù)器端處理“心跳”響應(yīng)的TOB應(yīng)用模塊接受“心跳”請(qǐng)求,返回成功響應(yīng),同時(shí)應(yīng)用服務(wù)器會(huì)幫助更新會(huì)話狀態(tài)。異步“心跳”請(qǐng)求處理序列如下,如圖2所示1)瀏覽器頁面中的定時(shí)器觸發(fā),向TOB應(yīng)用服務(wù)器發(fā)送“心跳”請(qǐng)求。2)TOB應(yīng)用收到“心跳”請(qǐng)求,更新響應(yīng)會(huì)話的狀態(tài),返回成功確認(rèn)響應(yīng)。3)瀏覽器收到“心跳”確認(rèn)響應(yīng),等待下次定時(shí)器觸發(fā),轉(zhuǎn)步驟1繼續(xù),若超時(shí)或接收響應(yīng)失敗,則繼續(xù)嘗試,嘗試一定次數(shù)(如3次,可配置)后,如果仍然失敗,提示用戶會(huì)話失效。瀏覽器頁面中“心跳”異步調(diào)用定時(shí)器安裝流程如下,如圖3所示1)瀏覽器加載從服務(wù)器返回的HTML頁面。2)頁面初始化腳本開始執(zhí)行。3)創(chuàng)建定時(shí)調(diào)用“心跳”請(qǐng)求的腳本定時(shí)器。4)完成其他初始化操作。5)頁面初始化完成。
權(quán)利要求
1.一種在BS架構(gòu)門戶應(yīng)用中保持活躍會(huì)話的方法,其特征是瀏覽器頁面中的DHTML 腳本定期(利用DHTML腳本定時(shí)器)向TOB應(yīng)用服務(wù)器發(fā)送異步HTTP請(qǐng)求,以避免當(dāng)前登錄會(huì)話因超時(shí)而失效。利用此方法的門戶的工作過程如下1)用戶通過瀏覽器向WEB服務(wù)器請(qǐng)求頁面。2)WEB服務(wù)器返回瀏覽器請(qǐng)求的頁面。3)瀏覽器初始化頁面,頁面中的DHTML腳本周期性地向WEB服務(wù)器異步請(qǐng)求特定URL, 這里稱為“心跳”請(qǐng)求。4)WEB服務(wù)器更新會(huì)話狀態(tài),并以簡單的成功(HTTP返回狀態(tài)碼200)回應(yīng)步驟3的請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的一種在BS架構(gòu)門戶應(yīng)用中保持活躍會(huì)話的方法,其特征是 步驟3所述“心跳”請(qǐng)求的時(shí)間周期低于WEB服務(wù)器的會(huì)話超時(shí)設(shè)置值。
3.根據(jù)權(quán)利要求1所述的一種在BS架構(gòu)門戶應(yīng)用中保持活躍會(huì)話的方法,其特征是 步驟3所述“心跳”請(qǐng)求,利用HTTP協(xié)議提供的協(xié)議頭控制WEB服務(wù)器及所經(jīng)網(wǎng)關(guān)、代理設(shè)備禁止緩存此請(qǐng)求,或者同時(shí)或單獨(dú)使用隨機(jī)的HTTP查詢參數(shù)(HTTP QueryString)避免請(qǐng)求被緩存。
全文摘要
本發(fā)明提供一種在BS架構(gòu)門戶應(yīng)用中保持活躍會(huì)話的方法,在調(diào)低BS架構(gòu)應(yīng)用會(huì)話超時(shí)值的情況下,利用瀏覽器異步腳本定期發(fā)送HTTP消息模擬“心跳”請(qǐng)求,降低服務(wù)端會(huì)話開銷的同時(shí)保證維持會(huì)話活性。
文檔編號(hào)H04L29/08GK102571867SQ201010617120
公開日2012年7月11日 申請(qǐng)日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者張進(jìn), 陸立軍 申請(qǐng)人:中博信息技術(shù)研究院有限公司, 南京聯(lián)創(chuàng)科技集團(tuán)股份有限公司