專利名稱:一種通信設(shè)備及其異常處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式通信領(lǐng)域,尤其涉及一種通信設(shè)備及其異常處理方法。
背景技術(shù):
傳統(tǒng)的分布式通信領(lǐng)域,包括RPC、XML_RPC、Web Service、Restful WS等,都依賴于IP網(wǎng)絡(luò)的可靠性,而且,實(shí)現(xiàn)了分布式的通信設(shè)備一般都需要身份校驗(yàn)、登錄認(rèn)證等處理。當(dāng)網(wǎng)絡(luò)連接異?;蛘叱霈F(xiàn)其他環(huán)境異常,傳統(tǒng)的分布式通信框架、方法一般把這些問題留給了通信設(shè)備的上層應(yīng)用來處理,通信設(shè)備中的應(yīng)用系統(tǒng)一般對(duì)異常采取直接拋出的方式,恢復(fù)處理操作需要由通信設(shè)備的上層應(yīng)用完成。目前的分布式系統(tǒng)中的網(wǎng)絡(luò)設(shè)備存在以下問題:通信異常與業(yè)務(wù)異常交織在一起,不便于問題追查與確認(rèn)。設(shè)備中的每個(gè)上層應(yīng)用都需要進(jìn)行異?;謴?fù)處理,不能有效的重用,導(dǎo)致維護(hù)、升級(jí)困難。通信恢復(fù)的策略與機(jī)制耦合緊密,無法根據(jù)不同的部署環(huán)境靈活、動(dòng)態(tài)調(diào)整。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明要解決的一個(gè)技術(shù)問題是提供一種通信設(shè)備,可以根據(jù)通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元和通信處理單元運(yùn)行。一種通信設(shè)備,其特征在于,包括:業(yè)務(wù)處理單元,用于進(jìn)行用戶的業(yè)務(wù)處理;通信處理單元,用于處理有關(guān)通信的事件;狀態(tài)維護(hù)單元,用于當(dāng)運(yùn)行狀態(tài)發(fā)生異常時(shí),根據(jù)所述運(yùn)行狀態(tài)確定通信狀態(tài),并根據(jù)所述通信狀態(tài)驅(qū)動(dòng)所述業(yè)務(wù)處理單元和所述通信處理單元運(yùn)行;所述業(yè)務(wù)處理單元和所述通信處理單元將運(yùn)行結(jié)果反饋給所述狀態(tài)維護(hù)單元;所述狀態(tài)維護(hù)單元根據(jù)所述運(yùn)行結(jié)果維護(hù)通信狀態(tài)。根據(jù)本發(fā)明設(shè)備的一個(gè)實(shí)施例,所述通信狀態(tài)包括:初始狀態(tài)、正常狀態(tài)、恢復(fù)嘗試狀態(tài)、未注冊(cè)狀態(tài)、網(wǎng)絡(luò)異常狀態(tài)。根據(jù)本發(fā)明設(shè)備的一個(gè)實(shí)施例,當(dāng)所述通信狀態(tài)為正常狀態(tài)時(shí),所述業(yè)務(wù)處理單元運(yùn)行,進(jìn)行業(yè)務(wù)處理;當(dāng)所述通信狀態(tài)不為正常狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止運(yùn)行;當(dāng)所述通信狀態(tài)為恢復(fù)嘗試狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元運(yùn)行重新連接操作并將運(yùn)行的結(jié)果反饋給所述狀態(tài)維護(hù)單元;當(dāng)所述通信狀態(tài)不為恢復(fù)嘗試狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元停止運(yùn)行重新連接操作;當(dāng)所述通信狀態(tài)為未注冊(cè)狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元運(yùn)行登錄恢復(fù)操作并將運(yùn)行的結(jié)果反饋給所述狀態(tài)維護(hù)單元;當(dāng)所述通信狀態(tài)不為未注冊(cè)狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元停止運(yùn)行登錄恢復(fù)操作。根據(jù)本發(fā)明設(shè)備的一個(gè)實(shí)施例,所述通信處理單元使用HTTP協(xié)議;當(dāng)所述通信處理單元在運(yùn)行時(shí)出現(xiàn)異常時(shí),向所述狀態(tài)維護(hù)單元反饋異常狀態(tài)碼,所述狀態(tài)維護(hù)單元將所述通信狀態(tài)變更為恢復(fù)嘗試狀態(tài),所述異常狀態(tài)包括:3XX、401、500 ;所述業(yè)務(wù)處理單元進(jìn)行業(yè)務(wù)處理出現(xiàn)異常時(shí),所述業(yè)務(wù)處理單元不向所述狀態(tài)維護(hù)單元反饋異常。
根據(jù)本發(fā)明設(shè)備的一個(gè)實(shí)施例,所述業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器使用HTTP協(xié)議;當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元在與應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP 500異常時(shí),將所述通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止運(yùn)行,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB通信重連操作;所述通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試;當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP401異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB認(rèn)證模塊;所述通信處理單元進(jìn)行登錄恢復(fù)處理;當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器之間的通信出現(xiàn)網(wǎng)絡(luò)異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB通信重連操作;所述通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試;所述通信處理單元將運(yùn)行結(jié)果反饋給所述狀態(tài)維護(hù)單元,如果運(yùn)行結(jié)果為成功,所述狀態(tài)維護(hù)單元將所述通信狀態(tài)設(shè)置為正常狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元停止運(yùn)行。根據(jù)本發(fā)明設(shè)備的一個(gè)實(shí)施例,所述通信處理單元進(jìn)行HTTP協(xié)議重連嘗試可以采用:固定周期的重試、指數(shù)間隔重試或指數(shù)間隔加上隨機(jī)偏移時(shí)間重試;其中,所述指數(shù)間隔重試為以指數(shù)方式遞增每次的嘗試間隔,一直到最大間隔;所述指數(shù)間隔加上隨機(jī)偏移時(shí)間重試是以指數(shù)方式遞增每次的嘗試間隔,并對(duì)所述嘗試間隔加上一個(gè)隨機(jī)時(shí)間偏移。本發(fā)明要解決的一個(gè)技術(shù)問題是提供一種通信設(shè)備的異常處理方法,可以根據(jù)通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元和通信處理單元運(yùn)行。一種通信設(shè)備的異常處理方法,當(dāng)運(yùn)行狀態(tài)發(fā)生異常時(shí),狀態(tài)維護(hù)單元根據(jù)所述運(yùn)行狀態(tài)確定通信狀態(tài),并根據(jù)所述通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元和通信處理單元運(yùn)行;所述業(yè)務(wù)處理單元和所述通信處理單元將運(yùn)行結(jié)果反饋給所述狀態(tài)維護(hù)單元;所述狀態(tài)維護(hù)單元根據(jù)所述運(yùn)行結(jié)果維護(hù)所述通信狀態(tài)。根據(jù)本發(fā)明方法的一個(gè)實(shí)施例,所述通信狀態(tài)包括:初始狀態(tài)、正常狀態(tài)、恢復(fù)嘗試狀態(tài)、未注冊(cè)狀態(tài)、網(wǎng)絡(luò)異常狀態(tài)。根據(jù)本發(fā)明方法的一個(gè)實(shí)施例,所述根據(jù)所述通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元和通信處理單元運(yùn)行包括:當(dāng)所述通信狀態(tài)為正常狀態(tài)時(shí),所述業(yè)務(wù)處理單元運(yùn)行,進(jìn)行業(yè)務(wù)處理;當(dāng)所述通信狀態(tài)不為正常狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)業(yè)務(wù)處理單元停止運(yùn)行;當(dāng)所述通信狀態(tài)為恢復(fù)嘗試狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元運(yùn)行重新連接操作并將運(yùn)行的結(jié)果反饋給所述狀態(tài)維護(hù)單元;當(dāng)所述通信狀態(tài)不為恢復(fù)嘗試狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元停止運(yùn)行重新連接操作;當(dāng)所述通信狀態(tài)為未注冊(cè)狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元運(yùn)行登錄恢復(fù)操作并將運(yùn)行的結(jié)果反饋給所述狀態(tài)維護(hù)單元;當(dāng)所述通信狀態(tài)不為未注冊(cè)狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元停止運(yùn)行登錄恢復(fù)操作。根據(jù)本發(fā)明方法的一個(gè)實(shí)施例,所述通信處理單元使用HTTP協(xié)議,當(dāng)所述通信處理單元運(yùn)行時(shí)出現(xiàn)異常時(shí),向所述狀態(tài)維護(hù)單元反饋HTTP異常狀態(tài)碼,所述狀態(tài)維護(hù)單元將所述通信狀態(tài)變更為恢復(fù)嘗試狀態(tài),所述HTTP異常狀態(tài)碼包括:3XX、401、500。
根據(jù)本發(fā)明方法的一個(gè)實(shí)施例,所述業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器使用HTTP協(xié)議;當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元在與應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP 500異常時(shí),將所述通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止運(yùn)行,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB通信重連操作;所述通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試;當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP401異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB認(rèn)證操作;所述通信處理單元進(jìn)行登錄恢復(fù)處理;當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器之間的通信出現(xiàn)網(wǎng)絡(luò)異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元?jiǎng)覹EB通信重連模塊;所述通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試;所述通信處理單元將運(yùn)行結(jié)果反饋給所述狀態(tài)維護(hù)單元,如果運(yùn)行結(jié)果為成功,所述狀態(tài)維護(hù)單元將所述通信狀態(tài)設(shè)置為正常狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元停止運(yùn)行。根據(jù)本發(fā)明方法的一個(gè)實(shí)施例,所述進(jìn)行HTTP協(xié)議重連嘗試可以采用:固定周期的重試、指數(shù)間隔重試或指數(shù)間隔加上隨機(jī)偏移時(shí)間重試;其中所述指數(shù)間隔重試為以指數(shù)方式遞增每次的嘗試間隔,一直到最大間隔;所述指數(shù)間隔加上隨機(jī)偏移時(shí)間重試是以指數(shù)方式遞增每次的嘗試間隔,并對(duì)所述嘗試間隔加上一個(gè)隨機(jī)時(shí)間偏移。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為根據(jù)本發(fā)明的通信設(shè)備的一個(gè)實(shí)施例的示意圖;圖2為根據(jù)本發(fā)明的通信設(shè)備的異常處理方法的一個(gè)實(shí)施例的流程圖。
具體實(shí)施例方式下面參照附圖對(duì)本發(fā)明進(jìn)行更全面的描述,其中說明本發(fā)明的示例性實(shí)施例。下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。下面結(jié)合各個(gè)圖和實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行多方面的描述。圖1根據(jù)本發(fā)明的通信設(shè)備的一個(gè)實(shí)施例的示意圖。如圖1所示:通信設(shè)備11包括:業(yè)務(wù)處理單元111、通信處理單元112和狀態(tài)維護(hù)單元113。業(yè)務(wù)處理單元111進(jìn)行用戶的業(yè)務(wù)處理。通信處理單元112處理有關(guān)通信的事件。當(dāng)運(yùn)行狀態(tài)發(fā)生異常時(shí),狀態(tài)維護(hù)單元113根據(jù)運(yùn)行狀態(tài)確定通信狀態(tài),并根據(jù)通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元111和通信處理單元112運(yùn)行。業(yè)務(wù)處理單元111和通信處理單元112將運(yùn)行結(jié)果反饋給狀態(tài)維護(hù)單元113。狀態(tài)維護(hù)單元113根據(jù)運(yùn)行結(jié)果維護(hù)通信狀態(tài)。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,通信狀態(tài)包括:初始狀態(tài)、正常狀態(tài)、恢復(fù)嘗試狀態(tài)、未注冊(cè)狀態(tài)、網(wǎng)絡(luò)異常狀態(tài)。當(dāng)通信狀態(tài)為正常狀態(tài)時(shí),業(yè)務(wù)處理單元111運(yùn)行,進(jìn)行業(yè)務(wù)處理。當(dāng)通信狀態(tài)不為正常狀態(tài)時(shí),狀態(tài)維護(hù)單元113驅(qū)動(dòng)業(yè)務(wù)處理單元112停止運(yùn)行。當(dāng)通信狀態(tài)為恢復(fù)嘗試狀態(tài)時(shí),狀態(tài)維護(hù)單元113驅(qū)動(dòng)通信處理單元112運(yùn)行重新連接操作并將運(yùn)行的結(jié)果反饋給狀態(tài)維護(hù)單元113。當(dāng)通信狀態(tài)不為恢復(fù)嘗試狀態(tài)時(shí),狀態(tài)維護(hù)單元113驅(qū)動(dòng)通信處理單元112停止運(yùn)行重新連接操作。當(dāng)通信狀態(tài)為未注冊(cè)狀態(tài)時(shí),狀態(tài)維護(hù)單元113驅(qū)動(dòng)通信處理單元112運(yùn)行登錄恢復(fù)操作并將運(yùn)行的結(jié)果反饋給狀態(tài)維護(hù)單元113。當(dāng)通信狀態(tài)不為未注冊(cè)狀態(tài)時(shí),狀態(tài)維護(hù)單元113驅(qū)動(dòng)通信處理單元112停止運(yùn)行登錄恢復(fù)操作。根據(jù)本發(fā)明的一個(gè)實(shí)施例,通信處理單元112使用HTTP協(xié)議。當(dāng)通信處理單元112在運(yùn)行時(shí)出現(xiàn)異常時(shí),向狀態(tài)維護(hù)單元113反饋異常狀態(tài)碼,狀態(tài)維護(hù)單元113將通信狀態(tài)變更為恢復(fù)嘗試狀態(tài),異常狀態(tài)包括:3xx、401、500。業(yè)務(wù)處理單元111進(jìn)行業(yè)務(wù)處理出現(xiàn)異常時(shí),業(yè)務(wù)處理單元111不向狀態(tài)維護(hù)單元113反饋異常。根據(jù)本發(fā)明的一個(gè)實(shí)施例,業(yè)務(wù)處理單元111與應(yīng)用服務(wù)器交互信息,業(yè)務(wù)處理單元111與應(yīng)用服務(wù)器使用HTTP協(xié)議。當(dāng)狀態(tài)維護(hù)單元113獲得業(yè)務(wù)處理單元111在與應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP500異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)業(yè)務(wù)處理單元111停止運(yùn)行,驅(qū)動(dòng)通信處理單元112進(jìn)行WEB通信重連操作。通信處理單元112持續(xù)進(jìn)行HTTP協(xié)議重連嘗試。當(dāng)狀態(tài)維護(hù)單元113獲得業(yè)務(wù)處理單元111與應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP 401異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)業(yè)務(wù)處理單元111停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)通信處理單元112進(jìn)行WEB認(rèn)證模塊。通信處理單元112進(jìn)行登錄恢復(fù)處理。當(dāng)狀態(tài)維護(hù)單元113獲得業(yè)務(wù)處理單元111與應(yīng)用服務(wù)器之間的通信出現(xiàn)網(wǎng)絡(luò)異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)業(yè)務(wù)處理單元111停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)通信處理單元112驅(qū)動(dòng)WEB通信重連模塊。通信處理單元112持續(xù)進(jìn)行HTTP協(xié)議重連嘗試。通信處理單元112將運(yùn)行結(jié)果反饋給狀態(tài)維護(hù)單元113,如果運(yùn)行結(jié)果為成功,狀態(tài)維護(hù)單元113將通信狀態(tài)設(shè)置為正常狀態(tài),并驅(qū)動(dòng)業(yè)務(wù)處理單元111與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)通信處理單元112停止運(yùn)行。通信處理單元112進(jìn)行HTTP協(xié)議重連嘗試可以采用:固定周期的重試、指數(shù)間隔重試或指數(shù)間隔加上隨機(jī)偏移時(shí)間重試。其中指數(shù)間隔重試為以指數(shù)方式遞增每次的嘗試間隔,一直到最大間隔。指數(shù)間隔加上隨機(jī)偏移時(shí)間重試是以指數(shù)方式遞增每次的嘗試間隔,并對(duì)嘗試間隔加上一個(gè)隨機(jī)時(shí)間偏移。業(yè)務(wù)處理單元和通信處理單元可以解耦業(yè)務(wù)處理與通信恢復(fù)處理。兩個(gè)部分都是由狀態(tài)維護(hù)單元驅(qū)動(dòng),當(dāng)狀態(tài)變遷時(shí),會(huì)分別驅(qū)動(dòng)兩個(gè)單元進(jìn)行或停止不同的處理。業(yè)務(wù)處理單元和通信處理單元可以綁定不同的通信協(xié)議。圖2為根據(jù)本發(fā)明的通信設(shè)備的異常處理方法的一個(gè)實(shí)施例的流程圖。如圖2所示:步驟202,當(dāng)運(yùn)行狀態(tài)發(fā)生異常時(shí),狀態(tài)維護(hù)單元根據(jù)運(yùn)行狀態(tài)確定通信狀態(tài),并根據(jù)通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元和通信處理單元運(yùn)行。步驟203,業(yè)務(wù)處理單元和通信處理單元將運(yùn)行結(jié)果反饋給狀態(tài)維護(hù)單元。步驟204,狀態(tài)維護(hù)單元根據(jù)運(yùn)行結(jié)果維護(hù)通信狀態(tài)。通信狀態(tài)包括:初始狀態(tài)、正常狀態(tài)、恢復(fù)嘗試狀態(tài)、未注冊(cè)狀態(tài)、網(wǎng)絡(luò)異常狀態(tài)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,通信處理單元包括重連處理、登錄恢復(fù)模塊。當(dāng)通信狀態(tài)進(jìn)入正常狀態(tài)時(shí),驅(qū)動(dòng)業(yè)務(wù)處理模塊開始運(yùn)作。當(dāng)通信狀態(tài)離開正常狀態(tài)時(shí),驅(qū)動(dòng)業(yè)務(wù)處理模塊停止運(yùn)作。當(dāng)通信狀態(tài)進(jìn)入恢復(fù)嘗試狀態(tài)時(shí),驅(qū)動(dòng)重連處理模塊開始運(yùn)作。當(dāng)通信狀態(tài)離開恢復(fù)嘗試狀態(tài)時(shí),驅(qū)動(dòng)重連處理模塊停止運(yùn)作。當(dāng)通信狀態(tài)進(jìn)入未注冊(cè)狀態(tài)時(shí),驅(qū)動(dòng)登錄恢復(fù)模塊開始運(yùn)作。當(dāng)通信狀態(tài)離開未注冊(cè)狀態(tài)時(shí),會(huì)驅(qū)動(dòng)登錄恢復(fù)模塊停止運(yùn)作。各個(gè)模塊之間是相互獨(dú)立、互不干擾的。在業(yè)務(wù)處理單元、通信處理單元運(yùn)行的過程中,可能會(huì)出現(xiàn)各種異常,也可以綁定不同的通信協(xié)議。以下為基于HTTP方式的異常檢測:業(yè)務(wù)相關(guān)的異常,由業(yè)務(wù)處理單元進(jìn)行處理。通信連接異常,會(huì)導(dǎo)致通信狀態(tài)變遷,從當(dāng)前狀態(tài)轉(zhuǎn)換為恢復(fù)嘗試狀態(tài)。如在基于HTTP方式的通信中,返回非200、3xx、401的狀態(tài)碼時(shí),就會(huì)被確認(rèn)為通信連接異常。登錄超時(shí)異常,會(huì)導(dǎo)致通信狀態(tài)變遷,從當(dāng)前狀態(tài)變遷為未注冊(cè)狀態(tài)。如在基于HTTP方式的通信中,返回401的狀態(tài)碼時(shí),就會(huì)被確認(rèn)為登錄超時(shí)異常。通信處理部分單元可以設(shè)置不同的嘗試策略。固定周期的重試這是最簡單的策略實(shí)現(xiàn)。指數(shù)間隔重試,以指數(shù)方式遞增每次的嘗試間隔,一直到最大間隔。對(duì)于大多數(shù)短暫的網(wǎng)絡(luò)異常,這種策略可以保證較好的恢復(fù)速度。對(duì)于長時(shí)間的網(wǎng)絡(luò)異常,這種策略可以降低頻繁重試的開銷。指數(shù)間隔加上隨機(jī)偏移時(shí)間重試,這種方式是在上面策略的基礎(chǔ)上,力口上一個(gè)很小的隨機(jī)時(shí)間偏移(如隨機(jī)選擇O至30秒),可以防止通信恢復(fù)時(shí)出現(xiàn)并發(fā)阻塞。根據(jù)本發(fā)明的一個(gè)實(shí)施例,業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,業(yè)務(wù)處理單元與應(yīng)用服務(wù)器使用HTTP協(xié)議。業(yè)務(wù)處理單元將通信設(shè)備中的數(shù)據(jù)上送到應(yīng)用服務(wù)器。當(dāng)數(shù)據(jù)上送正常時(shí),業(yè)務(wù)處理單元持續(xù)正常運(yùn)作,通信處理單元處于阻塞狀態(tài)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,通信處理單元可以包括WEB通信重連模塊和WEB認(rèn)證模塊。當(dāng)狀態(tài)維護(hù)單元獲得事件上送出現(xiàn)HTTP 500異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)業(yè)務(wù)處理單元停止運(yùn)行,驅(qū)動(dòng)通信處理單元進(jìn)行WEB通信重連操作。通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試。當(dāng)狀態(tài)維護(hù)單元獲得業(yè)務(wù)處理單元的事件上送出現(xiàn)HTTP 401異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)通信處理單元進(jìn)行WEB認(rèn)證操作。通信處理單元進(jìn)行登錄恢復(fù)處理。當(dāng)狀態(tài)維護(hù)單元獲得業(yè)務(wù)處理單元的通信出現(xiàn)網(wǎng)絡(luò)異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)通信處理單元進(jìn)行WEB通信重連操作。通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試。通信處理單元將運(yùn)行結(jié)果反饋給狀態(tài)維護(hù)單元,如果運(yùn)行結(jié)果為成功,狀態(tài)維護(hù)單元將通信狀態(tài)設(shè)置為正常狀態(tài),并驅(qū)動(dòng)業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)通信處理單元停止運(yùn)行。本發(fā)明申請(qǐng)的設(shè)備和方法使通信異常與業(yè)務(wù)異常相互獨(dú)立,互不干擾,便于問題追查與確認(rèn)。設(shè)備中的每個(gè)上層應(yīng)用模塊都不需要進(jìn)行異?;謴?fù)處理,可以有效重用,方便維護(hù)、升級(jí)。通信恢復(fù)的策略可以根據(jù)不同的部署環(huán)境靈活、動(dòng)態(tài)調(diào)整,在每個(gè)上層應(yīng)用模塊中指定使用的策略,根據(jù)策略選擇合適的恢復(fù)機(jī)制。可能以許多方式來實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。例如,可通過軟件、硬件、固件或者軟件、硬件、固件的任何組合來實(shí)現(xiàn)本發(fā)明的方法和系統(tǒng)。用于方法的步驟的上述順序僅是為了進(jìn)行說明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說明。此外,在一些實(shí)施例中,還可將本發(fā)明實(shí)施為記錄在記錄介質(zhì)中的程序,這些程序包括用于實(shí)現(xiàn)根據(jù)本發(fā)明的方法的機(jī)器可讀指令。因而,本發(fā)明還覆蓋存儲(chǔ)用于執(zhí)行根據(jù)本發(fā)明的方法的程序的記錄介質(zhì)。本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對(duì)于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。
權(quán)利要求
1.一種通信設(shè)備,其特征在于,包括: 業(yè)務(wù)處理單元,用于進(jìn)行用戶的業(yè)務(wù)處理; 通信處理單元,用于處理有關(guān)通信的事件; 狀態(tài)維護(hù)單元,用于當(dāng)運(yùn)行狀態(tài)發(fā)生異常時(shí),根據(jù)所述運(yùn)行狀態(tài)確定通信狀態(tài),并根據(jù)所述通信狀態(tài)驅(qū)動(dòng)所述業(yè)務(wù)處理單元和所述通信處理單元運(yùn)行; 所述業(yè)務(wù)處理單元和所述通信處理單元將運(yùn)行結(jié)果反饋給所述狀態(tài)維護(hù)單元;所述狀態(tài)維護(hù)單元根據(jù)所述運(yùn)行結(jié)果維護(hù)通信狀態(tài)。
2.如權(quán)利要求1所述的設(shè)備,其特征在于: 所述通信狀態(tài)包括:初始狀態(tài)、正常狀態(tài)、恢復(fù)嘗試狀態(tài)、未注冊(cè)狀態(tài)、網(wǎng)絡(luò)異常狀態(tài)。
3.如權(quán)利要求2所述的設(shè)備,其特征在于: 當(dāng)所述通信狀態(tài)為正常狀態(tài)時(shí),所述業(yè)務(wù)處理單元運(yùn)行,進(jìn)行業(yè)務(wù)處理;當(dāng)所述通信狀態(tài)不為正常狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止運(yùn)行; 當(dāng)所述通信狀態(tài)為恢復(fù)嘗試狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元運(yùn)行重新連接操作并將運(yùn)行的結(jié)果反饋給所述狀態(tài)維護(hù)單元;當(dāng)所述通信狀態(tài)不為恢復(fù)嘗試狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元停止運(yùn)行重新連接操作; 當(dāng)所述通信狀態(tài)為未注冊(cè)狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元運(yùn)行登錄恢復(fù)操作并將運(yùn)行的 結(jié)果反饋給所述狀態(tài)維護(hù)單元;當(dāng)所述通信狀態(tài)不為未注冊(cè)狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元停止運(yùn)行登錄恢復(fù)操作。
4.如權(quán)利要求3所述的設(shè)備,其特征在于: 所述通信處理單元使用HTTP協(xié)議; 當(dāng)所述通信處理單元在運(yùn)行時(shí)出現(xiàn)異常時(shí),向所述狀態(tài)維護(hù)單元反饋異常狀態(tài)碼,所述狀態(tài)維護(hù)單元將所述通信狀態(tài)變更為恢復(fù)嘗試狀態(tài),所述異常狀態(tài)包括:3XX、401、500 ;所述業(yè)務(wù)處理單元進(jìn)行業(yè)務(wù)處理出現(xiàn)異常時(shí),所述業(yè)務(wù)處理單元不向所述狀態(tài)維護(hù)單元反饋異常。
5.如權(quán)利要求3所述的設(shè)備,其特征在于: 所述業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器使用HTTP協(xié)議; 當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元在與應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP500異常時(shí),將所述通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止運(yùn)行,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB通信重連操作;所述通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試; 當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP401異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB認(rèn)證操作;所述通信處理單元進(jìn)行登錄恢復(fù)處理; 當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器之間的通信出現(xiàn)網(wǎng)絡(luò)異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB通信重連操作;所述通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試;所述通信處理單元將運(yùn)行結(jié)果反饋給所述狀態(tài)維護(hù)單元,如果運(yùn)行結(jié)果為成功,所述狀態(tài)維護(hù)單元將所述通信狀態(tài)設(shè)置為正常狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元停止運(yùn)行。
6.如權(quán)利要求5所述的設(shè)備,其特征在于: 所述通信處理單元進(jìn)行HTTP協(xié)議重連嘗試可以采用:固定周期的重試、指數(shù)間隔重試或指數(shù)間隔加上隨機(jī)偏移時(shí)間重試; 其中指數(shù)間隔重試為以指數(shù)方式遞增每次的嘗試間隔,一直到最大間隔;所述指數(shù)間隔加上隨機(jī)偏移時(shí)間重試是以指數(shù)方式遞增每次的嘗試間隔,并對(duì)所述嘗試間隔加上一個(gè)隨機(jī)時(shí)間偏移。
7.一種通信設(shè)備的異常處理方法,其特征在于: 當(dāng)運(yùn)行狀態(tài)發(fā)生異常時(shí),狀態(tài)維護(hù)單元根據(jù)所述運(yùn)行狀態(tài)確定通信狀態(tài),并根據(jù)所述通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元和通信處理單元運(yùn)行; 所述業(yè)務(wù)處理單元和所述通信處理單元將運(yùn)行結(jié)果反饋給所述狀態(tài)維護(hù)單元;所述狀態(tài)維護(hù)單元根據(jù)所述運(yùn)行結(jié)果維護(hù)所述通信狀態(tài)。
8.如權(quán)利要求7所述的方法,其特征在于: 所述通信狀態(tài)包括:初始狀態(tài)、正常狀態(tài)、恢復(fù)嘗試狀態(tài)、未注冊(cè)狀態(tài)、網(wǎng)絡(luò)異常狀態(tài)。
9.如權(quán)利要求8所 述的方法,其特征在于:所述根據(jù)所述通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元和通信處理單元運(yùn)行包括: 當(dāng)所述通信狀態(tài)為正常狀態(tài)時(shí),所述業(yè)務(wù)處理單元運(yùn)行,進(jìn)行業(yè)務(wù)處理;當(dāng)所述通信狀態(tài)不為正常狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)業(yè)務(wù)處理單元停止運(yùn)行; 當(dāng)所述通信狀態(tài)為恢復(fù)嘗試狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元運(yùn)行重新連接操作并將運(yùn)行的結(jié)果反饋給所述狀態(tài)維護(hù)單元;當(dāng)所述通信狀態(tài)不為恢復(fù)嘗試狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元停止運(yùn)行重新連接操作; 當(dāng)所述通信狀態(tài)為未注冊(cè)狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元運(yùn)行登錄恢復(fù)操作并將運(yùn)行的結(jié)果反饋給所述狀態(tài)維護(hù)單元;當(dāng)所述通信狀態(tài)不為未注冊(cè)狀態(tài)時(shí),所述狀態(tài)維護(hù)單元驅(qū)動(dòng)所述通信處理單元停止運(yùn)行登錄恢復(fù)操作。
10.如權(quán)利要求9所述的方法,其特征在于: 所述通信處理單元使用HTTP協(xié)議,當(dāng)所述通信處理單元運(yùn)行時(shí)出現(xiàn)異常時(shí),向所述狀態(tài)維護(hù)單元反饋HTTP異常狀態(tài)碼,所述狀態(tài)維護(hù)單元將所述通信狀態(tài)變更為恢復(fù)嘗試狀態(tài),所述HTTP異常狀態(tài)碼包括:3xx、401、500。
11.如權(quán)利要求9所述的方法,其特征在于: 所述業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器使用HTTP協(xié)議; 當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元在與應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP500異常時(shí),將所述通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止運(yùn)行,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB通信重連操作;所述通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試; 當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器之間的通信出現(xiàn)HTTP401異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB認(rèn)證模塊;所述通信處理單元進(jìn)行登錄恢復(fù)處理; 當(dāng)所述狀態(tài)維護(hù)單元獲得所述業(yè)務(wù)處理單元與所述應(yīng)用服務(wù)器之間的通信出現(xiàn)網(wǎng)絡(luò)異常時(shí),將通信狀態(tài)設(shè)置為恢復(fù)嘗試狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元停止與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元進(jìn)行WEB通信重連操作;所述通信處理單元持續(xù)進(jìn)行HTTP協(xié)議重連嘗試; 所述通信處理單元將運(yùn)行結(jié)果反饋給所述狀態(tài)維護(hù)單元,如果運(yùn)行結(jié)果為成功,所述狀態(tài)維護(hù)單元將所述通信狀態(tài)設(shè)置為正常狀態(tài),并驅(qū)動(dòng)所述業(yè)務(wù)處理單元與應(yīng)用服務(wù)器交互信息,驅(qū)動(dòng)所述通信處理單元停止運(yùn)行。
12.如權(quán)利要求11所述的方法,其特征在于: 所述進(jìn)行HTTP協(xié)議重連嘗試可以 采用:固定周期的重試、指數(shù)間隔重試或指數(shù)間隔加上隨機(jī)偏移時(shí)間重試; 其中指數(shù)間隔重試為以指數(shù)方式遞增每次的嘗試間隔,一直到最大間隔;所述指數(shù)間隔加上隨機(jī)偏移時(shí)間重試是以指數(shù)方式遞增每次的嘗試間隔,并對(duì)所述嘗試間隔加上一個(gè)隨機(jī)時(shí)間偏移。
全文摘要
本發(fā)明公開了一種通信設(shè)備以及異常處理方法,涉及分布式通信領(lǐng)域,當(dāng)運(yùn)行狀態(tài)發(fā)生異常時(shí),狀態(tài)維護(hù)單元根據(jù)運(yùn)行狀態(tài)確定通信狀態(tài),并根據(jù)通信狀態(tài)驅(qū)動(dòng)業(yè)務(wù)處理單元和通信處理單元運(yùn)行;業(yè)務(wù)處理單元和通信處理單元將運(yùn)行結(jié)果反饋給狀態(tài)維護(hù)單元;狀態(tài)維護(hù)單元根據(jù)所述運(yùn)行結(jié)果維護(hù)通信狀態(tài)。本發(fā)明公開的通信設(shè)備以及異常處理方法,將業(yè)務(wù)處理與通信恢復(fù)處理解耦,相互獨(dú)立,互不干擾,便于問題追查與確認(rèn),可以有效重用,方便維護(hù)、升級(jí)。
文檔編號(hào)H04L12/24GK103178984SQ20111044201
公開日2013年6月26日 申請(qǐng)日期2011年12月26日 優(yōu)先權(quán)日2011年12月26日
發(fā)明者趙敬謙, 俞韶楨, 章軍, 唐維, 李文宇, 田朝文, 賈海燕, 馮曉東, 張鑒, 常力元, 趙洪波 申請(qǐng)人:中國電信股份有限公司