欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種對(duì)用戶服務(wù)進(jìn)行遷移的方法、裝置及系統(tǒng)的制作方法

文檔序號(hào):7847118閱讀:196來(lái)源:國(guó)知局
專利名稱:一種對(duì)用戶服務(wù)進(jìn)行遷移的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通訊領(lǐng)域,尤其涉及一種對(duì)用戶服務(wù)進(jìn)行遷移的方法、裝置及系統(tǒng)。
背景技術(shù)
隨著當(dāng)前網(wǎng)絡(luò)的快速發(fā)展,很多傳統(tǒng)的服務(wù)已經(jīng)轉(zhuǎn)移到網(wǎng)絡(luò)環(huán)境中實(shí)施,由于網(wǎng)絡(luò)環(huán)境的脆弱性,常導(dǎo)致服務(wù)器需要維護(hù),從而使用戶服務(wù)出現(xiàn)中斷?,F(xiàn)今的高可用集群服務(wù)器系統(tǒng)至少由兩個(gè)服務(wù)器節(jié)點(diǎn)組成,并通過(guò)主、備服務(wù)器的切換,實(shí)現(xiàn)長(zhǎng)時(shí)間不間斷的運(yùn)行。在實(shí)現(xiàn)上述技術(shù)方案的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題由于切換用戶鏈接方法的限制,當(dāng)主服務(wù)器上運(yùn)行的應(yīng)用程序遷移到備服務(wù)器時(shí),該應(yīng)用程序 在備服務(wù)器上必須重新啟動(dòng),才能對(duì)外繼續(xù)提供服務(wù)。在主服務(wù)器上的應(yīng)用程序被關(guān)閉的情況下,客戶端與主服務(wù)器建立的通訊鏈接斷開,此時(shí)用戶會(huì)感知到服務(wù)的中斷;另外,客戶端與主服務(wù)器之間正在傳輸?shù)臄?shù)據(jù)包也會(huì)丟失,因此給用戶的使用帶來(lái)很大不便。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種對(duì)用戶服務(wù)進(jìn)行遷移的方法、裝置及系統(tǒng),以使在應(yīng)用程序遷移的過(guò)程中使用戶服務(wù)不中斷,且用戶的服務(wù)數(shù)據(jù)不丟失。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一方面,本發(fā)明實(shí)施例提供一種對(duì)用戶服務(wù)進(jìn)行遷移的方法,包括接收客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文并根據(jù)所述用戶請(qǐng)求鏈接報(bào)文建立用戶鏈接;保存客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文;在凍結(jié)應(yīng)用程序后,保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息、并保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)及套接字輸出緩沖區(qū)的數(shù)據(jù)包,所述凍結(jié)應(yīng)用程序是指在需要進(jìn)行用戶鏈接遷移時(shí),暫停應(yīng)用程序;將所述用戶請(qǐng)求鏈接報(bào)文轉(zhuǎn)發(fā)給備服務(wù)器,以使得備服務(wù)器根據(jù)所述用戶請(qǐng)求鏈接報(bào)文生成服務(wù)端套接字;將所述用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器,以使得備服務(wù)器更新服務(wù)端套接字及緩沖區(qū)數(shù)據(jù),完成用戶鏈接遷移。一方面,本發(fā)明實(shí)施例還提供一種對(duì)用戶服務(wù)進(jìn)行遷移的方法,包括備服務(wù)器接收主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文、用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)中數(shù)據(jù)包和套接字輸出緩沖區(qū)中數(shù)據(jù)包;建立所述主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文與備服務(wù)器間的鏈接并生成相應(yīng)的服務(wù)端套接字;根據(jù)所述主服務(wù)器發(fā)送的套接字狀態(tài)信息,更新所述服務(wù)端套接字;根據(jù)主服務(wù)器發(fā)送的套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包,更新緩沖區(qū)數(shù)據(jù),完成與客戶的鏈接。
另一方面,本發(fā)明實(shí)施列提供一種對(duì)用戶服務(wù)進(jìn)行遷移的裝置,包括第一報(bào)文接收單元,用于接收客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文并根據(jù)所述用戶請(qǐng)求鏈接報(bào)文建立用戶鏈接;請(qǐng)求鏈接報(bào)文保存單元,用于保存客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文;相關(guān)信息存儲(chǔ)單元,用于在凍結(jié)應(yīng)用程序后,保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息、并保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包,所述凍結(jié)應(yīng)用程序是指在需要進(jìn)行用戶鏈接遷移時(shí),暫停應(yīng)用程序;存儲(chǔ)信息發(fā)送單元,用于將所述用戶請(qǐng)求鏈接報(bào)文轉(zhuǎn)發(fā)給備服務(wù)器,并將所述用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器。 另一方面,本發(fā)明實(shí)施列還提供一種對(duì)用戶服務(wù)進(jìn)行遷移的裝置,包括第二報(bào)文接收單元,用于接收主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文、用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)中數(shù)據(jù)包和套接字輸出緩沖區(qū)中數(shù)據(jù)包;鏈接建立單元,用于建立所述主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文與備服務(wù)器間的鏈接并生成相應(yīng)的服務(wù)端套接字;套接字更新單元,用于根據(jù)所述主服務(wù)器發(fā)送的套接字狀態(tài)信息,更新所述服務(wù)端套接字;緩沖區(qū)更新單元,用于根據(jù)主服務(wù)器發(fā)送的套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包,更新緩沖區(qū)數(shù)據(jù),完成與客戶端的鏈接。另外一方面,本發(fā)明實(shí)施例提供一種對(duì)用戶服務(wù)進(jìn)行遷移的系統(tǒng),包括如權(quán)利要求5-8所述的裝置。本發(fā)明實(shí)施例提供一種對(duì)用戶服務(wù)進(jìn)行遷移的方法、裝置及系統(tǒng),通過(guò)保存主服務(wù)器上的用戶請(qǐng)求鏈接報(bào)文、套接字狀態(tài)信息、套接字輸入緩沖區(qū)及輸出緩沖區(qū)中的數(shù)據(jù)包,當(dāng)應(yīng)用程序在備服務(wù)器上啟動(dòng)后,利用保存下來(lái)的用戶請(qǐng)求鏈接報(bào)文及套接字狀態(tài)信息,進(jìn)行用戶鏈接恢復(fù),使用戶服務(wù)不中斷,提升了用戶體驗(yàn);利用保存下來(lái)的主服務(wù)器端套接字緩沖區(qū)中的數(shù)據(jù)進(jìn)行緩沖區(qū)數(shù)據(jù)的恢復(fù),使服務(wù)數(shù)據(jù)不丟失,提高了通信可靠性。


為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實(shí)施例I中主服務(wù)器側(cè)的對(duì)用戶服務(wù)進(jìn)行遷移的方法的流程圖;圖2為本發(fā)明實(shí)施例I中備服務(wù)器側(cè)的對(duì)用戶服務(wù)進(jìn)行遷移的方法的流程圖;圖3為本發(fā)明實(shí)施例2中對(duì)用戶服務(wù)進(jìn)行遷移的方法的流程圖;圖4為本發(fā)明實(shí)施例2中主服務(wù)器上用戶請(qǐng)求鏈接報(bào)文加入請(qǐng)求鏈表及應(yīng)用程序的處理不意圖;圖5為本發(fā)明實(shí)施例2中備服務(wù)器恢復(fù)鏈接示意圖;圖6為本發(fā)明實(shí)施例3中主服務(wù)器側(cè)的對(duì)用戶服務(wù)進(jìn)行遷移的裝置的框圖7為在圖6基礎(chǔ)上的另一種對(duì)用戶服務(wù)進(jìn)行遷移的裝置的框圖;圖8為在圖7基礎(chǔ)上的另一種對(duì)用戶服務(wù)進(jìn)行遷移的裝置的框圖;圖9為本發(fā)明實(shí)施例3備服務(wù)器側(cè)的對(duì)用戶服務(wù)進(jìn)行遷移的裝置的框圖;圖10為本發(fā)明實(shí)施例3 —種對(duì)用戶服務(wù)進(jìn)行遷移的系統(tǒng)的框圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例I :本發(fā)明實(shí)施例提供了一種對(duì)用戶服務(wù)進(jìn)行遷移的方法,該方法為遷移時(shí)主服務(wù)器側(cè)的方法,如圖I所示,該方法步驟包括S101、接收客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文并根據(jù)所述用戶請(qǐng)求鏈接報(bào)文建立用戶鏈接??蛻舳诵枰㈡溄訒r(shí),向服務(wù)器發(fā)送用戶請(qǐng)求鏈接報(bào)文建立與客戶端的用戶鏈接。S102、保存客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文??蛻舳税l(fā)送用戶請(qǐng)求鏈接報(bào)文要求建立鏈接,主服務(wù)器接收并保存該客戶端的用戶請(qǐng)求鏈接報(bào)文。S103、凍結(jié)應(yīng)用程序。凍結(jié)主服務(wù)器上的應(yīng)用程序,使其應(yīng)用程序暫停在某一個(gè)狀態(tài),以便進(jìn)行后續(xù)的主服務(wù)器上的數(shù)據(jù)、信息的保存。S104、保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息、并保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)及套接字輸出緩沖區(qū)的數(shù)據(jù)包。實(shí)際應(yīng)用中,可以將保存下來(lái)的套接字狀態(tài)信息及套接字緩沖區(qū)的數(shù)據(jù)包都保存至預(yù)設(shè)置的鏈接信息文件中。需要說(shuō)明的是,主服務(wù)器上客戶端的套接字狀態(tài)信息、套接字緩沖區(qū)的數(shù)據(jù)包在本實(shí)施例中是保存到鏈接信息文件中,也可以保存在其他存儲(chǔ)結(jié)構(gòu)里,但本發(fā)明實(shí)施例并不做限制。S105、將所述用戶請(qǐng)求鏈接報(bào)文轉(zhuǎn)發(fā)給備服務(wù)器,并將所述用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器。通過(guò)將用戶請(qǐng)求鏈接報(bào)文發(fā)送至備服務(wù)器,使得備服務(wù)器可以根據(jù)所述用戶請(qǐng)求鏈接報(bào)文生成服務(wù)端套接字;另外,將套接字狀態(tài)信息和套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包發(fā)送給備服務(wù)器,使得備服務(wù)器更新服務(wù)端套接字及緩沖區(qū)數(shù)據(jù)。本發(fā)明實(shí)施例還提供了一種對(duì)用戶服務(wù)進(jìn)行遷移的方法,該方法為遷移后備服務(wù)器側(cè)的方法,如圖2所示,該方法步驟包括S201、備服務(wù)器接收主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文、用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)中數(shù)據(jù)包和套接字輸出緩沖區(qū)中數(shù)據(jù)包。S202、建立所述用戶請(qǐng)求鏈接報(bào)文與備服務(wù)器間的鏈接并生成相應(yīng)的服務(wù)端套接字。讀取所述用戶請(qǐng)求鏈接報(bào)文,將其與備服務(wù)器建立鏈接,使得備服務(wù)器根據(jù)所述用戶請(qǐng)求鏈接報(bào)文,在備服務(wù)器上生成相應(yīng)的服務(wù)端套接字。S203、備服務(wù)器根據(jù)所述套接字狀態(tài)信息,更新所述服務(wù)端套接字。根據(jù)所述套接字狀態(tài)信息,更新所述服務(wù)端套接字結(jié)構(gòu)體變量。S204、備服務(wù)器根據(jù)所述套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包,更新緩沖區(qū)數(shù)據(jù),完成與客戶端的鏈接。本發(fā)明實(shí)施例提供一種對(duì)用戶服務(wù)進(jìn)行遷移的方法,通過(guò)保存主服務(wù)器上的用戶 請(qǐng)求鏈接報(bào)文、套接字狀態(tài)信息、套接字輸入緩沖區(qū)及輸出緩沖區(qū)中的數(shù)據(jù)包,當(dāng)應(yīng)用程序在備服務(wù)器上啟動(dòng)后,利用保存下來(lái)的用戶請(qǐng)求鏈接報(bào)文及套接字狀態(tài)信息,進(jìn)行鏈接恢復(fù),使用戶服務(wù)不中斷,提升了用戶體驗(yàn);利用保存下來(lái)的主服務(wù)器端套接字緩沖區(qū)中的數(shù)據(jù)進(jìn)行緩沖區(qū)數(shù)據(jù)的恢復(fù),使服務(wù)數(shù)據(jù)不丟失,提高了通信可靠性。實(shí)施例2:本發(fā)明實(shí)施例提供了一種對(duì)用戶服務(wù)進(jìn)行遷移的方法,如圖3所示,所述方法包括以下步驟S301、在主服務(wù)器上保存客戶端的用戶請(qǐng)求鏈接報(bào)文。當(dāng)有客戶端要求建立用戶鏈接時(shí),將該客戶端的用戶請(qǐng)求鏈接報(bào)文保存在請(qǐng)求報(bào)文鏈表中;如果當(dāng)前有客戶端關(guān)閉自身的套接字,則從請(qǐng)求報(bào)文鏈表中刪除已關(guān)閉自身套接字的客戶端的用戶請(qǐng)求鏈接報(bào)文,以節(jié)省存儲(chǔ)空間。實(shí)際應(yīng)用中,可以將保存下來(lái)的用戶請(qǐng)求鏈接報(bào)文保存至預(yù)設(shè)置的請(qǐng)求報(bào)文鏈表中。需要說(shuō)明的是,主服務(wù)器上客戶端的用戶請(qǐng)求鏈接報(bào)文在本實(shí)施例中是保存到請(qǐng)求報(bào)文鏈表中,也可以保存在其他存儲(chǔ)結(jié)構(gòu)里,但本發(fā)明實(shí)施例并不做限制。在S301步驟之后,當(dāng)需要執(zhí)行遷移時(shí),執(zhí)行步驟S302。具體的,可以人為的發(fā)出遷移指令;當(dāng)然,也可以由主服務(wù)器自行進(jìn)行檢測(cè),在檢測(cè)到自身符合預(yù)設(shè)置的遷移條件時(shí),發(fā)出遷移指令。比如,可以對(duì)服務(wù)器配置遷移條件,使其在出現(xiàn)故障時(shí)自動(dòng)發(fā)出遷移指令,從而轉(zhuǎn)向步驟S302。S302、凍結(jié)應(yīng)用程序。凍結(jié)主服務(wù)器上的應(yīng)用程序,使應(yīng)用程序保持在某一個(gè)狀態(tài),以便復(fù)制當(dāng)前的通訊狀態(tài)中的數(shù)據(jù)。S303、保存套接字狀態(tài)信息、保存套接字緩沖區(qū)數(shù)據(jù)。對(duì)于當(dāng)前的每一條鏈接,拷貝主服務(wù)器上對(duì)應(yīng)于該鏈接的套接字狀態(tài)信息,對(duì)于現(xiàn)存的每一條鏈接,拷貝主服務(wù)器上對(duì)應(yīng)于該鏈接的套接字輸入緩沖區(qū)及套接字輸出緩沖區(qū)中的數(shù)據(jù)包,將保存的信息保存至鏈接信息文件中,使得用戶服務(wù)不中斷。使服務(wù)數(shù)據(jù)不會(huì)丟失。需要說(shuō)明的是,主服務(wù)器上客戶端的套接字狀態(tài)信息、套接字緩沖區(qū)的數(shù)據(jù)包在本實(shí)施例中是保存到鏈接信息文件中,也可以保存在其他存儲(chǔ)結(jié)構(gòu)里,但本發(fā)明實(shí)施例并不做限制。S304、關(guān)閉應(yīng)用程序,并且截獲主服務(wù)器上應(yīng)用程序發(fā)出的鏈接關(guān)閉報(bào)文。具體的,所述鏈接關(guān)閉報(bào)文可以是用于通知客戶端關(guān)閉與主服務(wù)器的鏈接的FIN報(bào)文。通過(guò)截獲鏈接關(guān)閉報(bào)文,可以防止客戶端接收到鏈接關(guān)閉報(bào)文后執(zhí)行關(guān)閉鏈接的動(dòng)作,從而使客戶服務(wù)中斷。S305、將所述用戶請(qǐng)求鏈接報(bào)文發(fā)送至備服務(wù)器,并將所述套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器。在本實(shí)施例中,需要將主服務(wù)器上保存的信息發(fā)送到備服務(wù)器上,本發(fā)明實(shí)施例可以選擇在關(guān)閉主服務(wù)器上應(yīng)用程序后將用戶請(qǐng)求鏈接報(bào)文、套接字狀態(tài)信息、套接字緩沖區(qū)的數(shù)據(jù)包發(fā)送到備服務(wù)器;也可以在保存完用戶請(qǐng)求鏈接報(bào)文、套接字狀態(tài)信息、套接字緩沖區(qū)中的數(shù)據(jù)包后,并在關(guān)閉主服務(wù)器之前發(fā)送到備服務(wù)器上,以恢復(fù)正常的通訊鏈接,本發(fā)明實(shí)施例對(duì)此不做限制。S306、將應(yīng)用程序在備服務(wù)器上啟動(dòng)。利用HA(High Availability,高可用性群集)軟件便可以關(guān)閉主服務(wù)器上的應(yīng)用 程序,并在備服務(wù)器上將該應(yīng)用程序重新啟動(dòng),讓備服務(wù)器對(duì)外繼續(xù)提供服務(wù)。S307、備服務(wù)器建立與所述用戶請(qǐng)求鏈接報(bào)文的鏈接并生成相應(yīng)的服務(wù)端套接字。通過(guò)讀取主服務(wù)器發(fā)送到備服務(wù)器上的請(qǐng)求報(bào)文鏈表中的用戶請(qǐng)求鏈接報(bào)文,建立用戶請(qǐng)求鏈接報(bào)文與備服務(wù)間的鏈接,并且在備服務(wù)器上生成相應(yīng)的服務(wù)端套接字。S308、備服務(wù)器根據(jù)所述套接字狀態(tài)信息,更新所述服務(wù)端套接字。通過(guò)S307建立好鏈接后,讀取主服務(wù)器發(fā)送到備服務(wù)器上的套接字狀態(tài)信息,更新每一條鏈接的套接字結(jié)構(gòu)體變量,也就是更新服務(wù)端套接字結(jié)構(gòu)體變量,使備服務(wù)器認(rèn)為是客戶端發(fā)送過(guò)來(lái)的用戶請(qǐng)求鏈接報(bào)文。S309、備服務(wù)器根據(jù)所述套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包,更新緩沖區(qū)數(shù)據(jù)。進(jìn)一步地,通過(guò)利用主服務(wù)器發(fā)送到備服務(wù)器上的套接字輸入緩沖區(qū)和輸出緩沖區(qū)中的數(shù)據(jù)包,更新每一條鏈接的套接字輸入緩沖區(qū)和輸出緩沖區(qū)中的數(shù)據(jù),使服務(wù)數(shù)據(jù)不丟失,提高了通信可靠性。S310、恢復(fù)與客戶端之間的正常物理尋址??梢运⑿耡rp (Address Resolution Protocol,地址解析協(xié)議)與備服務(wù)器連接的交換機(jī)的arp緩存。實(shí)際應(yīng)用中,可以按照如圖4所示的方式執(zhí)行上述步驟S301-S305。在圖4中,主服務(wù)器X連接有備服務(wù)器Y,客戶端A與主服務(wù)器X建立了鏈接。具體來(lái)說(shuō),當(dāng)客戶端需要建立鏈接時(shí),主服務(wù)器X會(huì)將客戶端A發(fā)送給它的用戶請(qǐng)求鏈接報(bào)文A加入到請(qǐng)求報(bào)文鏈表中,當(dāng)主服務(wù)器X判斷客戶端A已經(jīng)關(guān)閉該端的套接字,則從請(qǐng)求報(bào)文鏈表中刪除該客戶端的用戶請(qǐng)求鏈接報(bào)文A。當(dāng)主服務(wù)器X判斷需要將其上正在執(zhí)行的通訊鏈接遷移到備服務(wù)器Y上時(shí),主服務(wù)器X會(huì)凍結(jié)其當(dāng)前的應(yīng)用程序,并且對(duì)當(dāng)前的每一條鏈接,保存主服務(wù)器X上對(duì)應(yīng)于該鏈接的套接字狀態(tài)信息,對(duì)現(xiàn)存的每一條鏈接,保存主服務(wù)器X上對(duì)應(yīng)于該鏈接的套接字輸入緩沖區(qū)及套接字輸出緩沖區(qū)中的數(shù)據(jù)包,然后關(guān)閉主服務(wù)器上相應(yīng)的應(yīng)用程序,同時(shí)截獲主服務(wù)器上應(yīng)用程序發(fā)出的鏈接關(guān)閉報(bào)文,防止客戶端接收到鏈接關(guān)閉報(bào)文后執(zhí)行關(guān)閉鏈接的動(dòng)作,進(jìn)而使服務(wù)中斷,之后,將主服務(wù)器X上保存的信息發(fā)送到備服務(wù)器Y上,以進(jìn)行用戶鏈接的恢復(fù)。
實(shí)際應(yīng)用中,可以按照如圖5所示的方式執(zhí)行上述步驟S306-S310。在圖5中,主服務(wù)器X鏈接有備服務(wù)器Y,客戶端A與備服務(wù)器Y建立了鏈接。具體來(lái)說(shuō),利用HA軟件在備服務(wù)器Y上將應(yīng)用程序重新啟動(dòng),讓備服務(wù)器Y對(duì)客戶端A繼續(xù)提供服務(wù),在備服務(wù)器Y上讀取保存下來(lái)的請(qǐng)求報(bào)文鏈表及保存下來(lái)的鏈接信息文件。通過(guò)遍歷請(qǐng)求報(bào)文鏈表,取出鏈表中的每一個(gè)用戶請(qǐng)求鏈接報(bào)文,將它與備服務(wù)器Y建立鏈接。使得備服務(wù)器Y認(rèn)為是客戶端A發(fā)送過(guò)來(lái)的請(qǐng)求報(bào)文,并且在備服務(wù)器Y上生成相應(yīng)的服務(wù)端套接字,當(dāng)備服務(wù)器Y與客戶端A建立好鏈接后,通過(guò)保存下來(lái)的套接字狀態(tài)信息,更新每一條鏈接的套接字結(jié)構(gòu)體變量,也就是更新服務(wù)端套接字的結(jié)構(gòu)體變量,然后利用保存下來(lái)的套接字輸入緩沖區(qū)和輸出緩沖區(qū)中的數(shù)據(jù)包,更新每一條鏈接的套接字輸入緩沖區(qū)和輸出緩沖區(qū)中的數(shù)據(jù),來(lái)實(shí)現(xiàn)數(shù)據(jù)的恢復(fù)。此后,通過(guò)恢復(fù)與每個(gè)客戶端之間的正常物理尋址,來(lái)實(shí)現(xiàn)備服務(wù)器與用戶端的正常通訊。通過(guò)以上步驟來(lái)實(shí)現(xiàn)主服務(wù)器與備服務(wù)器之間應(yīng)用程序的直接切換,使用戶服務(wù) 不中斷,且用戶的服務(wù)數(shù)據(jù)不丟失,解決了當(dāng)前HA系統(tǒng)對(duì)應(yīng)用程序計(jì)劃內(nèi)遷移后客戶端能感知到網(wǎng)絡(luò)中斷的問(wèn)題及服務(wù)數(shù)據(jù)因網(wǎng)絡(luò)斷開而丟失的問(wèn)題。用戶無(wú)需重新與備服務(wù)器建立鏈接即可以繼續(xù)進(jìn)行通信。本發(fā)明實(shí)施例提供的對(duì)用戶服務(wù)進(jìn)行遷移的方法,通過(guò)保存主服務(wù)器上的用戶請(qǐng)求鏈接報(bào)文、保存套接字狀態(tài)信息、套接字輸入緩沖區(qū)及輸出緩沖區(qū)中的數(shù)據(jù)包,關(guān)閉主服務(wù)器上應(yīng)用程序并將主服務(wù)器上保存的用戶請(qǐng)求鏈接報(bào)文、套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送到備服務(wù)器上,當(dāng)應(yīng)用程序在備服務(wù)器上啟動(dòng)后,利用保存下來(lái)的用戶請(qǐng)求鏈接報(bào)文及套接字狀態(tài)信息,進(jìn)行鏈接恢復(fù),并且通過(guò)截獲主服務(wù)器發(fā)送的鏈接關(guān)閉報(bào)文,可以防止客戶端接收到鏈接關(guān)閉報(bào)文后執(zhí)行關(guān)閉用戶鏈接的動(dòng)作,使用戶服務(wù)不中斷,提升了用戶體驗(yàn);同時(shí),利用保存下來(lái)的主服務(wù)器端套接字緩沖區(qū)中的數(shù)據(jù)進(jìn)行緩沖區(qū)數(shù)據(jù)的恢復(fù),使服務(wù)數(shù)據(jù)不丟失,提高了通信可靠性。另外,對(duì)于關(guān)閉套接字的客戶端,主服務(wù)器刪除對(duì)應(yīng)的用戶請(qǐng)求鏈接報(bào)文,從而節(jié)省了存儲(chǔ)空間,提高了處理速度。實(shí)施例3 本發(fā)明實(shí)施例提供了一種對(duì)用戶服務(wù)進(jìn)行遷移的裝置,如圖6所示,在主服務(wù)器一側(cè),所述裝置包括第一報(bào)文接收單元61、請(qǐng)求鏈接報(bào)文保存單元62、相關(guān)信息存儲(chǔ)單元63、存儲(chǔ)信息發(fā)送單元64。第一報(bào)文接收單元61用于接收客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文,并根據(jù)所述用戶請(qǐng)求鏈接報(bào)文建立用戶鏈接。請(qǐng)求鏈接報(bào)文保存單元62用于保存客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文。實(shí)際應(yīng)用中,可以將保存下來(lái)的用戶請(qǐng)求鏈接報(bào)文保存至預(yù)設(shè)置的請(qǐng)求報(bào)文鏈表中。需要說(shuō)明的是,主服務(wù)器上客戶端的用戶請(qǐng)求鏈接報(bào)文在本實(shí)施例中是保存到請(qǐng)求報(bào)文鏈表中,也可以保存在其他存儲(chǔ)結(jié)構(gòu)里,但本發(fā)明實(shí)施例并不做限制。相關(guān)信息存儲(chǔ)單元63用于在凍結(jié)應(yīng)用程序后,保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息、并保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包。需要說(shuō)明的是,主服務(wù)器上客戶端的套接字狀態(tài)信息、套接字緩沖區(qū)的數(shù)據(jù)包在本實(shí)施例中可以是保存到鏈接信息文件中,也可以保存在其他存儲(chǔ)結(jié)構(gòu)里,本發(fā)明實(shí)施例并不做限制。存儲(chǔ)信息發(fā)送單元64用于將所述用戶請(qǐng)求鏈接報(bào)文發(fā)送至備服務(wù)器,并將所述套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器。進(jìn)一步的,如圖7所示,所述裝置還包括請(qǐng)求鏈接報(bào)文刪除單元65。請(qǐng)求鏈接報(bào)文刪除單元65用于當(dāng)用戶鏈接斷開時(shí),刪除已保存的對(duì)應(yīng)用戶鏈接的用戶請(qǐng)求鏈接報(bào)文。進(jìn)一步的,如圖8所示,所述裝置還包括鏈接關(guān)閉報(bào)文攔截單元66。鏈接關(guān)閉報(bào)文攔截單元66用于在關(guān)閉所述應(yīng)用程序后,攔截所述應(yīng)用程序向所 述客戶端發(fā)送的鏈接關(guān)閉報(bào)文,以防止所述客戶端關(guān)閉鏈接。另外,如圖9所示,在備服務(wù)器一側(cè)的裝置包括第二報(bào)文接收單元91鏈接建立單元92、套接字更新單元93、緩沖區(qū)更新單元94。第二報(bào)文接收單元91用于接收主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文、用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)中數(shù)據(jù)包和套接字輸出緩沖區(qū)中數(shù)據(jù)包。需要說(shuō)明的是,備服務(wù)器上的第二報(bào)文接收單元91中接收到的用戶請(qǐng)求鏈接報(bào)文和第一報(bào)文接收單元61中的用戶請(qǐng)求鏈接報(bào)文是同一個(gè)用戶請(qǐng)求鏈接報(bào)文。鏈接建立單元92用于建立所述主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文與備服務(wù)器間的鏈接并生成相應(yīng)的服務(wù)端套接字。
套接字更新單元93用于根據(jù)所述主服務(wù)器發(fā)送的套接字狀態(tài)信息,更新所述服務(wù)端套接字。緩沖區(qū)更新單元94用于根據(jù)主服務(wù)器發(fā)送的套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包,更新緩沖區(qū)數(shù)據(jù),完成與客戶端的鏈接。通過(guò)利用主服務(wù)器發(fā)送到備服務(wù)器上的套接字輸入緩沖區(qū)和輸出緩沖區(qū)中的數(shù)據(jù)包,更新每一條鏈接的套接字輸入緩沖區(qū)和輸出緩沖區(qū)中的數(shù)據(jù),使服務(wù)數(shù)據(jù)不丟失,提高了通信可靠性。本發(fā)明實(shí)施例提供了一種對(duì)用戶服務(wù)進(jìn)行遷移的系統(tǒng),如圖10所示,所述裝置為上述實(shí)施例中主服務(wù)器上的裝置圖8、與備服務(wù)器上的裝置圖9的組合。需要說(shuō)明的是,所述對(duì)用戶服務(wù)進(jìn)行遷移的系統(tǒng)可以是主服務(wù)器上裝置圖6-8中任一裝置圖與備服務(wù)器上的裝置圖9的任意組合,但本發(fā)明實(shí)施例選用的是裝置圖8與裝置圖9的組合,本發(fā)明實(shí)施例并不做限制。本發(fā)明實(shí)施例提供的對(duì)用戶服務(wù)進(jìn)行遷移的裝置及系統(tǒng),當(dāng)需要執(zhí)行主服務(wù)器與備服務(wù)器間遷移時(shí)保存主服務(wù)器上的用戶請(qǐng)求鏈接報(bào)文、保存套接字狀態(tài)信息、套接字輸入緩沖區(qū)及輸出緩沖區(qū)中的數(shù)據(jù)包,關(guān)閉主服務(wù)器上應(yīng)用程序并將主服務(wù)器上保存的用戶請(qǐng)求鏈接報(bào)文、套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送到備服務(wù)器上,當(dāng)應(yīng)用程序在備服務(wù)器上啟動(dòng)后,利用保存下來(lái)的用戶請(qǐng)求鏈接報(bào)文及套接字狀態(tài)信息,進(jìn)行鏈接恢復(fù),并且通過(guò)截獲主服務(wù)器發(fā)送的鏈接關(guān)閉報(bào)文,可以防止客戶端接收到鏈接關(guān)閉報(bào)文后執(zhí)行關(guān)閉鏈接的動(dòng)作,使用戶服務(wù)不中斷,提升了用戶體驗(yàn);同時(shí),利用保存下來(lái)的主服務(wù)器端套接字緩沖區(qū)中的數(shù)據(jù)進(jìn)行緩沖區(qū)數(shù)據(jù)的恢復(fù),使服務(wù)數(shù)據(jù)不丟失,提高了通信可靠性。另外,對(duì)于關(guān)閉套接字的客戶端,主服務(wù)器刪除對(duì)應(yīng)的用戶請(qǐng)求鏈接報(bào)文,從而節(jié)省了存儲(chǔ)空間,提高了處理速度。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種對(duì)用戶鏈接進(jìn)行遷移的方法,其特征在于,包括 接收客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文并根據(jù)所述用戶請(qǐng)求鏈接報(bào)文建立用戶鏈接; 保存客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文; 在凍結(jié)應(yīng)用程序后,保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息、并保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)及套接字輸出緩沖區(qū)的數(shù)據(jù)包,所述凍結(jié)應(yīng)用程序是指在需要進(jìn)行用戶鏈接遷移時(shí),暫停應(yīng)用程序; 將所述用戶請(qǐng)求鏈接報(bào)文轉(zhuǎn)發(fā)給備服務(wù)器,以使得備服務(wù)器根據(jù)所述用戶請(qǐng)求鏈接報(bào)文生成服務(wù)端套接字,并將所述用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器,以使得備服務(wù)器更新服務(wù)端套接字及緩沖區(qū)數(shù)據(jù),完成用戶鏈接遷移。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 在客戶端終止與主服務(wù)器的用戶鏈接時(shí),刪除已保存的對(duì)應(yīng)用戶鏈接的用戶請(qǐng)求鏈接報(bào)文,以節(jié)省存儲(chǔ)空間。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 在關(guān)閉所述應(yīng)用程序后,攔截所述應(yīng)用程序向所述客戶端發(fā)送的鏈接關(guān)閉報(bào)文,以防止所述客戶端關(guān)閉用戶鏈接。
4.一種對(duì)用戶服務(wù)進(jìn)行遷移的方法,其特征在于,包括 備服務(wù)器接收主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文、用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)中數(shù)據(jù)包和套接字輸出緩沖區(qū)中數(shù)據(jù)包; 建立所述主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文與備服務(wù)器間的鏈接并生成相應(yīng)的服務(wù)端套接字; 根據(jù)所述主服務(wù)器發(fā)送的套接字狀態(tài)信息,更新所述服務(wù)端套接字; 根據(jù)主服務(wù)器發(fā)送給備服務(wù)器的套接字輸入緩沖區(qū)及套接字輸出緩沖區(qū)的數(shù)據(jù)包,更新緩沖區(qū)數(shù)據(jù),完成與客戶端的鏈接。
5.一種對(duì)用戶鏈接進(jìn)行遷移的裝置,其特征在于,包括 第一報(bào)文接收單元,用于接收客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文并根據(jù)所述用戶請(qǐng)求鏈接報(bào)文建立用戶鏈接; 請(qǐng)求鏈接報(bào)文保存單元,用于保存客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文; 相關(guān)信息存儲(chǔ)單元,用于在凍結(jié)應(yīng)用程序后,保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息、并保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包,所述凍結(jié)應(yīng)用程序是指在需要進(jìn)行用戶鏈接遷移時(shí),暫停應(yīng)用程序; 存儲(chǔ)信息發(fā)送單元,用于將所述用戶請(qǐng)求鏈接報(bào)文轉(zhuǎn)發(fā)給備服務(wù)器,并將所述用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括 請(qǐng)求鏈接報(bào)文刪除單元,用于在客戶端終止與主服務(wù)器的用戶鏈接時(shí),刪除已保存的對(duì)應(yīng)用戶鏈接的用戶請(qǐng)求鏈接報(bào)文,以節(jié)省存儲(chǔ)空間。
7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括 鏈接關(guān)閉報(bào)文攔截單元,用于在關(guān)閉所述應(yīng)用程序后,攔截所述應(yīng)用程序向所述客戶端發(fā)送的鏈接關(guān)閉報(bào)文,以防止所述客戶端關(guān)閉鏈接。
8.一種對(duì)用戶服務(wù)進(jìn)行遷移的裝置,其特征在于,包括第二報(bào)文接收單元,用于接收主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文、用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)中數(shù)據(jù)包和套接字輸出緩沖區(qū)中數(shù)據(jù)包; 鏈接建立單元,用于建立所述主服務(wù)器發(fā)送的用戶請(qǐng)求鏈接報(bào)文與備服務(wù)器間的鏈接并生成相應(yīng)的服務(wù)端套接字; 套接字更新單元,用于根據(jù)所述主服務(wù)器發(fā)送的套接字狀態(tài)信息,更新所述服務(wù)端套接字; 緩沖區(qū)更新單元,用于根據(jù)主服務(wù)器發(fā)送的套接字緩沖輸入?yún)^(qū)及套接字緩沖輸出區(qū)的數(shù)據(jù)包,更新緩沖區(qū)數(shù)據(jù),完成與客戶端的鏈接。
9.一種對(duì)用戶服務(wù)進(jìn)行遷移的系統(tǒng),包括用戶以及對(duì)用戶服務(wù)進(jìn)行遷移的裝置,其特征在于,所述裝置包括 接收客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文并根據(jù)所述用戶請(qǐng)求鏈接報(bào)文建立用戶鏈接; 保存客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文; 在凍結(jié)應(yīng)用程序后,保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息、并保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)及套接字輸出緩沖區(qū)的數(shù)據(jù)包,所述凍結(jié)應(yīng)用程序是指在需要進(jìn)行用戶鏈接遷移時(shí),暫停應(yīng)用程序; 將所述用戶請(qǐng)求鏈接報(bào)文轉(zhuǎn)發(fā)給備服務(wù)器,以使得備服務(wù)器根據(jù)所述用戶請(qǐng)求鏈接報(bào)文生成服務(wù)端套接字,并將所述用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器,以使得備服務(wù)器更新服務(wù)端套接字及緩沖區(qū)數(shù)據(jù),完成用戶鏈接遷移。
全文摘要
本發(fā)明實(shí)施例提供一種對(duì)用戶服務(wù)進(jìn)行遷移的方法、裝置及系統(tǒng),涉及通訊領(lǐng)域,在應(yīng)用程序遷移的過(guò)程中使用戶服務(wù)不中斷,且用戶的服務(wù)數(shù)據(jù)不丟失。該對(duì)用戶服務(wù)進(jìn)行遷移的方法,包括保存客戶端發(fā)送的用戶請(qǐng)求鏈接報(bào)文;在凍結(jié)應(yīng)用程序后,保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字狀態(tài)信息、并保存當(dāng)前的每條用戶鏈接對(duì)應(yīng)的套接字輸入緩沖區(qū)及套接字輸出緩沖區(qū)的數(shù)據(jù)包;將所述用戶請(qǐng)求鏈接報(bào)文發(fā)送至備服務(wù)器,以使得備服務(wù)器根據(jù)所述用戶請(qǐng)求鏈接報(bào)文生成服務(wù)端套接字,將所述套接字狀態(tài)信息及所述數(shù)據(jù)包發(fā)送給備服務(wù)器,以使得備服務(wù)器更新服務(wù)端套接字及緩沖區(qū)數(shù)據(jù)。本發(fā)明實(shí)施例用于切換通訊鏈接。
文檔編號(hào)H04L1/00GK102742223SQ201180002200
公開日2012年10月17日 申請(qǐng)日期2011年9月19日 優(yōu)先權(quán)日2011年9月19日
發(fā)明者楊振章 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
巩义市| 博兴县| 密云县| 石首市| 仁布县| 昌图县| 徐水县| 农安县| 英山县| 梁山县| 郓城县| 凤庆县| 历史| 自治县| 廉江市| 黄大仙区| 体育| 罗平县| 南汇区| 寻乌县| 广安市| 成都市| 青海省| 民勤县| 崇信县| 屯留县| 桂东县| 巴林左旗| 陆河县| 东平县| 静安区| 兖州市| 双柏县| 灵川县| 石景山区| 射阳县| 平安县| 大冶市| 顺平县| 抚松县| 德保县|