專利名稱:基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法。
背景技術(shù):
在云計(jì)算時(shí)代,計(jì)算機(jī)軟件是安裝并運(yùn)行在云中心,用戶可以在任何地方、任何時(shí)候,只需要一個(gè)客戶端或者網(wǎng)絡(luò)瀏覽器就可以使用運(yùn)行在云中心上的軟件應(yīng)用,這樣給用戶提供了使用軟件應(yīng)用的極大方便,用戶可以通過任何一個(gè)計(jì)算機(jī),通過網(wǎng)絡(luò)來使用一個(gè)軟件程序。但是,云計(jì)算的一個(gè)最大弱點(diǎn)是對互聯(lián)網(wǎng)的依賴。如果在用戶使用云服務(wù)期間, 發(fā)生網(wǎng)絡(luò)中斷等事件,用戶不僅沒有辦法繼續(xù)使用云服務(wù),而且正在進(jìn)行的工作的階段結(jié)果也有可能丟失,這是因?yàn)榫W(wǎng)絡(luò)中斷造成用戶客戶端和云中心服務(wù)器的“對話”中斷。這種“對話”中斷的情況還可能發(fā)生在用戶因?yàn)橛芯o急事情處理,而來不及正常結(jié)束手中的工作,或者用戶離開工作客戶端的時(shí)間超過了預(yù)期;再進(jìn)一步講,一個(gè)用戶也有可能在使用云服務(wù)的過程中,需要轉(zhuǎn)換工作地點(diǎn)。比如說,在下班回家后,在家里的計(jì)算機(jī)上繼續(xù)他在辦公室沒有完成的工作,或者需要換到另一個(gè)辦公室里和同事一起討論正在進(jìn)行的工作。在現(xiàn)有的技術(shù)下,用戶在離開辦公室前首先要結(jié)束他當(dāng)時(shí)和云計(jì)算中心的“對話”,然后到另一個(gè)地點(diǎn)后再重新建立一個(gè)新的對話,這就給用戶帶來了很大的麻煩。除了需要關(guān)閉和重建對話外,在進(jìn)入新對話后,用戶需要重新建立當(dāng)時(shí)的工作環(huán)境,有時(shí)候,這個(gè)過程會花費(fèi)很多時(shí)間,給用戶帶來極大的不便,甚至可能造成經(jīng)濟(jì)損失。
發(fā)明內(nèi)容
本發(fā)明的目的即在于克服現(xiàn)有技術(shù)的不足,提供一種基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,從根本上解決了“對話”中斷這個(gè)問題,允許用戶在任何時(shí)候,不同的客戶端上繼續(xù)原來和云服務(wù)器的“對話”,用戶在離開一個(gè)客戶端時(shí),不需要專門結(jié)束當(dāng)時(shí)的“對話”,在使用新的客戶端時(shí),可以立即繼續(xù)原來的“對話”,而不需要重建,確保用戶當(dāng)時(shí)完成的工作不會丟失,確保用戶可以重新在任何客戶端、任何時(shí)候恢復(fù)不管因?yàn)槿魏卧蚨袛嗟目蛻舳撕途W(wǎng)上服務(wù)器的“對話”等優(yōu)點(diǎn)。本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,確保云計(jì)算服務(wù)在服務(wù)器、客戶機(jī)或通信網(wǎng)絡(luò)故障修復(fù)后,或者客戶端用戶更換工作場地后,能夠恢復(fù)到服務(wù)中斷前的場景,它包括以下步驟
(1)登錄用戶登錄到一個(gè)網(wǎng)絡(luò)服務(wù)時(shí),服務(wù)器“用戶對話”機(jī)制首先查詢用戶對話數(shù)據(jù)庫,檢查該用戶有沒有暫停的“用戶對話”,如果該用戶沒有暫停的“用戶對話”,則“用戶對話”機(jī)制為該用戶創(chuàng)建一個(gè)新的“用戶對話”,如果該用戶有暫停的“用戶對話”,則“用戶對話”機(jī)制從用戶對話數(shù)據(jù)庫中讀取該用戶所有的“用戶對話”及其相關(guān)數(shù)據(jù)并顯示在界面上;
(2)“用戶對話”活動用戶可選擇繼續(xù)任何一個(gè)暫停的“用戶對話”,也可選擇開始一個(gè)新的“用戶對話”,如果用戶選擇繼續(xù)暫停的“用戶對話”,則“用戶對話”機(jī)制從用戶對話數(shù)據(jù)庫中恢復(fù)相應(yīng)的對話數(shù)據(jù),用戶繼續(xù)原來的工作;
(3)“用戶對話”暫停當(dāng)用戶請求暫停一個(gè)“用戶對話”,或者“對話”即將結(jié)束時(shí),“用戶對話”機(jī)制把“對話”機(jī)制未存儲的數(shù)據(jù)存儲到用戶對話數(shù)據(jù)庫中;
(4)“用戶對話”完成當(dāng)用戶請求結(jié)束一個(gè)“用戶對話”時(shí),“用戶對話”機(jī)制釋放其使用的系統(tǒng)資源,并把有關(guān)的“對話”數(shù)據(jù)從用戶對話數(shù)據(jù)庫中刪除。所述的“用戶對話”包括用戶在一段時(shí)間內(nèi)通過客戶端和服務(wù)器進(jìn)行的一次或一次以上的數(shù)據(jù)交換;
所述的“用戶對話”暫停包括客戶端用戶主動請求的“對話”暫停,服務(wù)器斷開的“對話” 暫停,以及服務(wù)器、客戶機(jī)或通信線路故障引起的“對話”暫停。本發(fā)明的有益效果是
(1)本發(fā)明提供一種基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,總體上來說, 從根本上解決了 “對話”中斷這個(gè)問題,允許用戶在任何時(shí)候,不同的客戶端上繼續(xù)原來和云服務(wù)器的“對話”,用戶在離開一個(gè)客戶端時(shí),不需要專門結(jié)束當(dāng)時(shí)的“對話”,在使用新的客戶端時(shí),可以立即繼續(xù)原來的“對話”,而不需要重建,確保用戶當(dāng)時(shí)完成的工作不會丟失,確保用戶可以重新在任何客戶端、任何時(shí)候恢復(fù)不管因?yàn)槿魏卧蚨袛嗟目蛻舳撕途W(wǎng)上服務(wù)器的“對話”;
(2)本發(fā)明提供一種基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,具體來說,給網(wǎng)絡(luò)/云應(yīng)用開發(fā)者和使用者都帶來好處,網(wǎng)絡(luò)/云應(yīng)用的用戶可以暫停他們的工作,在任何時(shí)候均可通過任何一個(gè)客戶端繼續(xù)原來的工作,防止由于網(wǎng)絡(luò)故障等特殊情況造成客戶端和服務(wù)器交流中斷帶來的用戶工作丟失;
(3)本發(fā)明提供一種基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,對網(wǎng)絡(luò)/云應(yīng)用的用戶的好處
A.給用戶帶來極大的可移動性,他們可以在任何一個(gè)地方開始使用網(wǎng)絡(luò)/云服務(wù)來進(jìn)行一項(xiàng)工作,如果需要的話,可以移動到別的地方繼續(xù)原來的工作;
B.提高用戶的工作效率,用戶已登錄系統(tǒng)就會把他上次工作的狀態(tài)呈現(xiàn)給用戶,馬上開始工作,而不需要再去創(chuàng)建上次的工作環(huán)境;
C.保證用戶的工作不丟失,即使用戶因?yàn)榫o急情況而匆忙離開而沒有時(shí)間保存自己的工作,或者因?yàn)橥獠吭蚨鴮?dǎo)致了用戶不能和網(wǎng)絡(luò)/云服務(wù)進(jìn)行交流時(shí),本發(fā)明能存儲用戶已做好但還沒保存的工作數(shù)據(jù),并且使用戶在下次登錄時(shí)可以繼續(xù)原來的工作;
D.沒有時(shí)間限制,用戶不用擔(dān)心因?yàn)槌瑫r(shí)而丟失數(shù)據(jù);
E.一個(gè)用戶可以有多個(gè)“用戶對話”同時(shí)存在,用戶可以很方便地從一個(gè)工作切換到另一個(gè)工作;
(4)本發(fā)明提供一種基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,對網(wǎng)絡(luò)/云應(yīng)用開發(fā)者的好處
A.使得網(wǎng)絡(luò)/云應(yīng)用可以很方便的存儲“用戶對話”數(shù)據(jù)而不需要開發(fā)人員做任何額外的工作;
B.實(shí)現(xiàn)的透明性,開發(fā)人員可按照原來處理“對話”的方式進(jìn)行編程;
C.本發(fā)明提供的方案可以應(yīng)用于任何網(wǎng)絡(luò)/云系統(tǒng);
D.提高開發(fā)人員的工作效率,不需要開發(fā)人員處理“用戶對話”的任務(wù),他們可以完全把精力放在業(yè)務(wù)任務(wù)的開發(fā)中。
圖1為本發(fā)明的流程圖2為本發(fā)明的“用戶對話”狀態(tài)圖; 圖3為本發(fā)明的“用戶對話”數(shù)據(jù)圖; 圖4為本發(fā)明“用戶對話”的實(shí)現(xiàn)流程圖5為本發(fā)明“用戶對話”模塊對HTTP請求進(jìn)行前置和后置處理來實(shí)現(xiàn)“用戶對話”所需操作的實(shí)現(xiàn)流程圖。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明做進(jìn)一步的描述,但本發(fā)明的保護(hù)范圍不局限于以下所述。如圖1所示,基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,確保云計(jì)算服務(wù)在服務(wù)器、客戶機(jī)或通信網(wǎng)絡(luò)故障修復(fù)后,或者客戶端用戶更換工作場地后,能夠恢復(fù)到服務(wù)中斷前的場景,它包括以下步驟
(1)登錄用戶登錄到一個(gè)網(wǎng)絡(luò)服務(wù)時(shí),服務(wù)器“用戶對話”機(jī)制首先查詢用戶對話數(shù)據(jù)庫,檢查該用戶有沒有暫停的“用戶對話”,如果該用戶沒有暫停的“用戶對話”,則“用戶對話”機(jī)制為該用戶創(chuàng)建一個(gè)新的“用戶對話”,如果該用戶有暫停的“用戶對話”,則“用戶對話”機(jī)制從用戶對話數(shù)據(jù)庫中讀取該用戶所有的“用戶對話”及其相關(guān)數(shù)據(jù)并顯示在界面上;
(2)“用戶對話”活動用戶可選擇繼續(xù)任何一個(gè)暫停的“用戶對話”,也可選擇開始一個(gè)新的“用戶對話”,如果用戶選擇繼續(xù)暫停的“用戶對話”,則“用戶對話”機(jī)制從用戶對話數(shù)據(jù)庫中恢復(fù)相應(yīng)的對話數(shù)據(jù),用戶繼續(xù)原來的工作;
(3)“用戶對話”暫停當(dāng)用戶請求暫停一個(gè)“用戶對話”,或者“對話”即將結(jié)束時(shí),“用戶對話”機(jī)制把“對話”機(jī)制未存儲的數(shù)據(jù)存儲到用戶對話數(shù)據(jù)庫中;
(4)“用戶對話”完成當(dāng)用戶請求結(jié)束一個(gè)“用戶對話”時(shí),“用戶對話”機(jī)制釋放其使用的系統(tǒng)資源,并把有關(guān)的“對話”數(shù)據(jù)從用戶對話數(shù)據(jù)庫中刪除。所述的“用戶對話”包括用戶在一段時(shí)間內(nèi)通過客戶端和服務(wù)器進(jìn)行的一次或一次以上的數(shù)據(jù)交換;
所述的“用戶對話”暫停包括客戶端用戶主動請求的“對話”暫停,服務(wù)器斷開的“對話” 暫停,以及服務(wù)器、客戶機(jī)或通信線路故障引起的“對話”暫停;
所述的“用戶對話”可直接實(shí)現(xiàn)在網(wǎng)絡(luò)服務(wù)器中,也可先實(shí)現(xiàn)在一個(gè)軟件模塊中,再把其接入現(xiàn)有的網(wǎng)絡(luò)服務(wù)器中?,F(xiàn)在的計(jì)算機(jī)“對話”是指一個(gè)用戶在一段時(shí)間內(nèi)通過一個(gè)客戶端和一個(gè)服務(wù)器進(jìn)行的一系列的交流,而這個(gè)“對話”開始的時(shí)間都是用戶明確請求的,而結(jié)束的時(shí)間或者是由用戶提出,也有可能是服務(wù)器由于各種原因強(qiáng)行結(jié)束(比如說,用戶長時(shí)間不進(jìn)行交流)。如圖2所示,本發(fā)明引進(jìn)一個(gè)稱為“用戶對話”的新概念,“用戶對話”是指一個(gè)用
5戶在一段時(shí)間內(nèi)通過客戶端和服務(wù)器進(jìn)行的一系列的交流。從定義可以看出,“用戶對話” 和“對話”的根本差別在于“用戶對話”允許用戶通過不同客戶端和給定服務(wù)器進(jìn)行交流。 大致來說,“用戶對話”是由多個(gè)“對話”組成,“用戶對話”的結(jié)束是完全由用戶來確定的。 一個(gè)“用戶對話”可以駐在下列三個(gè)狀態(tài)中的任何一個(gè)狀態(tài)活動、暫停、完成,一個(gè)“用戶對話”開始時(shí)是駐于“活動”狀態(tài),一個(gè)活動的“用戶對話”總是和一個(gè)“對話”相對應(yīng),并在該“對話”無論因?yàn)槿魏卧蚨Y(jié)束后進(jìn)入暫停狀態(tài),當(dāng)用戶結(jié)束一個(gè)“用戶對話”后,它就會進(jìn)入完成狀態(tài),按照制定的管理政策,管理員也有權(quán)利把一個(gè)“用戶對話”從暫停狀態(tài)變?yōu)橥瓿蔂顟B(tài),當(dāng)用戶重新使用一個(gè)暫停的“用戶對話”的時(shí)候,它就又進(jìn)入了活動狀態(tài),一個(gè) “用戶對話”可以在“暫停”和“活動”狀態(tài)間轉(zhuǎn)換任意次。如圖3所示,實(shí)現(xiàn)“用戶對話”機(jī)制的一個(gè)關(guān)鍵任務(wù)就是要能夠維護(hù)與“用戶對話” 有關(guān)的所有數(shù)據(jù),直到其變?yōu)椤巴瓿伞睜顟B(tài),當(dāng)“用戶對話”處于活動狀態(tài)的時(shí)候,與其有關(guān)的數(shù)據(jù)實(shí)現(xiàn)“對話”的機(jī)制會進(jìn)行保存。但是,當(dāng)“用戶對話”狀態(tài)從活動變?yōu)闀和5臅r(shí)候, “對話”機(jī)制將不再保存相關(guān)的數(shù)據(jù)。這是因?yàn)閷Α皩υ挕睓C(jī)制來講,“對話”已經(jīng)結(jié)束,所以, “用戶對話”機(jī)制在這個(gè)時(shí)候必須承擔(dān)起維護(hù)有關(guān)的數(shù)據(jù)。當(dāng)以后用戶重新連接到“用戶對話”的時(shí)候,“用戶對話”機(jī)制需要恢復(fù)有關(guān)的數(shù)據(jù)給“對話”機(jī)制,以確保用戶的工作不丟失。本發(fā)明可以用幾種辦法來擴(kuò)充現(xiàn)在的網(wǎng)絡(luò)服務(wù)器,實(shí)現(xiàn)“用戶對話”的功能,比如說,網(wǎng)絡(luò)服務(wù)器開發(fā)者可以把“用戶對話”的功能直接實(shí)現(xiàn)在網(wǎng)絡(luò)服務(wù)器中,也可以把“用戶對話”實(shí)現(xiàn)在一個(gè)軟件模塊中然后把其再接入現(xiàn)有的網(wǎng)絡(luò)服務(wù)器中。盡管不同的計(jì)算機(jī)平臺中所使用的網(wǎng)絡(luò)服務(wù)器不同,但是在它們上面實(shí)現(xiàn)“用戶對話”的軟件模式是相同的。本發(fā)明采用不同方法實(shí)現(xiàn)“用戶對話”的關(guān)鍵不同點(diǎn)在于在什么地方擴(kuò)展上述操作,比如說, 我們即可以把上述操作附加在ASP. NET的HPPT Modules的事件處理模塊中,也可以把這些操作附加給ASP. NET的HPPT Handlers的事件處理模塊,盡管我們這里描述的是使用HTTP Module的方法,該實(shí)現(xiàn)方法也適用于其它實(shí)現(xiàn)方法,本發(fā)明的保護(hù)范圍不局限于以上所述。如圖4、圖5所示,ASP. NET允許開發(fā)者通過添加HTTP Module來擴(kuò)充其功能,為了實(shí)現(xiàn)“用戶對話”,我們實(shí)現(xiàn)了一個(gè)HTTP Module并把其加入到HTTP Runtime的流程,“用戶對話”模塊可以對HTTP請求進(jìn)行前置和后置處理來實(shí)現(xiàn)“用戶對話”所需要的操作。每個(gè)“用戶對話”提供至少兩個(gè)事件處理器,兩個(gè)事件處理器分別處理兩 f HttpApplication · #, Ijf W M HttpApplication · # @ Application— OnPreRequestHandleExecute 禾口 Application_OnPostRequestHandlerExecute ;
所述的Application_OnPreRequestHandleExecute前置處理http請求,確定是不是需要繼續(xù)或者重新開始一個(gè)“用戶對話”,具體的包括如果該請求沒有相應(yīng)的“用戶對話”,則轉(zhuǎn)移到“用戶對話”頁面,上載用戶選擇的“用戶對話”或者創(chuàng)建新的“用戶對話”,并建立一個(gè)“用戶對話”對象,如果該請求有相應(yīng)的“用戶對話”則不做任何處理;
所述的 Application_OnPostRequestHandlerExecute 對 http 請求進(jìn)行后置處理,確定用戶是不是請求結(jié)束或者暫停一個(gè)“用戶對話”,并采取相應(yīng)的步驟,具體的包括如果“用戶對話”是在活動狀態(tài),則把有關(guān)的“對話”數(shù)據(jù)寫到用戶對話數(shù)據(jù)庫,如果“用戶對話”是在暫停狀態(tài),則改變“對話”在用戶對話數(shù)據(jù)庫中的狀態(tài),如果“用戶對話”是在完成狀態(tài), 則清理“對話”數(shù)據(jù);所述的HttpApplication定義ASP. NET應(yīng)用程序中的所有應(yīng)用程序?qū)ο蠊灿械姆椒ā?屬性和事件。
權(quán)利要求
1.基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,確保云計(jì)算服務(wù)在服務(wù)器、客戶機(jī)或通信網(wǎng)絡(luò)故障修復(fù)后,或者客戶端用戶更換工作場地后,能夠恢復(fù)到服務(wù)中斷前的場景,其特征在于它包括以下步驟(1)登錄用戶登錄到一個(gè)網(wǎng)絡(luò)服務(wù)時(shí),服務(wù)器“用戶對話”機(jī)制首先查詢用戶對話數(shù)據(jù)庫,檢查該用戶有沒有暫停的“用戶對話”,如果該用戶沒有暫停的“用戶對話”,則“用戶對話”機(jī)制為該用戶創(chuàng)建一個(gè)新的“用戶對話”,如果該用戶有暫停的“用戶對話”,則“用戶對話”機(jī)制從用戶對話數(shù)據(jù)庫中讀取該用戶所有的“用戶對話”及其相關(guān)數(shù)據(jù)并顯示在界面上;(2)“用戶對話”活動用戶可選擇繼續(xù)任何一個(gè)暫停的“用戶對話”,也可選擇開始一個(gè)新的“用戶對話”,如果用戶選擇繼續(xù)暫停的“用戶對話”,則“用戶對話”機(jī)制從用戶對話數(shù)據(jù)庫中恢復(fù)相應(yīng)的對話數(shù)據(jù),用戶繼續(xù)原來的工作;(3)“用戶對話”暫停當(dāng)用戶請求暫停一個(gè)“用戶對話”,或者“對話”即將結(jié)束時(shí),“用戶對話”機(jī)制把“對話”機(jī)制未存儲的數(shù)據(jù)存儲到用戶對話數(shù)據(jù)庫中;(4)“用戶對話”完成當(dāng)用戶請求結(jié)束一個(gè)“用戶對話”時(shí),“用戶對話”機(jī)制釋放其使用的系統(tǒng)資源,并把有關(guān)的“對話”數(shù)據(jù)從用戶對話數(shù)據(jù)庫中刪除。
2.根據(jù)權(quán)利要求1所述的基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,其特征在于所述的“用戶對話”包括用戶在一段時(shí)間內(nèi)通過客戶端和服務(wù)器進(jìn)行的一次或一次以上的數(shù)據(jù)交換。
3.根據(jù)權(quán)利要求1所述的基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,其特征在于所述的“用戶對話”暫停包括客戶端用戶主動請求的“對話”暫停,服務(wù)器斷開的“對話”暫停,以及服務(wù)器、客戶機(jī)或通信線路故障引起的“對話”暫停。
全文摘要
本發(fā)明公開了一種基于用戶對話模式的客戶機(jī)服務(wù)器持續(xù)會話的方法,它包括以下步驟(1)登錄服務(wù)器“用戶對話”機(jī)制查詢用戶對話數(shù)據(jù)庫,檢查該用戶有沒有暫停的“用戶對話”,如果沒有則創(chuàng)建一個(gè)新的“用戶對話”,如果有則從用戶對話數(shù)據(jù)庫中讀取該用戶所有的“用戶對話”;(2)“用戶對話”活動用戶可選擇繼續(xù)任何一個(gè)暫停的“用戶對話”,也可選擇開始一個(gè)新的“用戶對話”;(3)“用戶對話”暫停存儲“對話”機(jī)制未存儲的數(shù)據(jù);(4)“用戶對話”完成釋放系統(tǒng)資源,并將“對話”數(shù)據(jù)從用戶對話數(shù)據(jù)庫中刪除。確保云計(jì)算服務(wù)在服務(wù)器、客戶機(jī)或通信網(wǎng)絡(luò)故障修復(fù)后,或者客戶端用戶更換工作場地后,能恢復(fù)到服務(wù)中斷前的場景。
文檔編號H04L29/08GK102546795SQ20111045738
公開日2012年7月4日 申請日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者吳林芳, 唐永勤, 成鋼, 李華, 李志 , 李梅, 武志學(xué), 趙啟衛(wèi), 趙陽, 韓輝鵬 申請人:成都巴比塔網(wǎng)絡(luò)技術(shù)股份有限公司