一種基于tcp/ip協(xié)議的長連接容錯機(jī)制的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信的技術(shù)領(lǐng)域,特別是涉及一種基于TCP/IP協(xié)議的長連接容錯機(jī)制。
【背景技術(shù)】
[0002]長連接通訊是指通訊雙方在整個通訊過程中始終保持通訊鏈路,是一種面向連接的,可靠的通訊方式。長連接通訊多用于操作頻繁、點(diǎn)對點(diǎn)的通訊,而且連接數(shù)不能太多情況。長連接的實現(xiàn)方法多種多樣,其中基于TCP/IP協(xié)議的實現(xiàn)應(yīng)用最為廣泛。其中,客戶端向服務(wù)器發(fā)起連接請求,服務(wù)器接受客戶端的連接請求,雙方建立連接;客戶端與服務(wù)器完成一次讀寫之后,它們之間的連接并不會主動關(guān)閉,后續(xù)的讀寫操作會繼續(xù)使用這個連接;在連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)鏈路檢測包。
[0003]具體地,基于TCP/IP協(xié)議的長連接通訊,在保持通訊鏈路本身的同時,內(nèi)部承載了更高網(wǎng)絡(luò)層級的應(yīng)用協(xié)議以及應(yīng)用業(yè)務(wù)內(nèi)容。長連接通道在邏輯上可劃分為三層:網(wǎng)絡(luò)鏈路層、應(yīng)用協(xié)議層和應(yīng)用業(yè)務(wù)層。基于TCP/IP協(xié)議的實際應(yīng)用中,常用的三層通常為TCP鏈路層、HTTP應(yīng)用協(xié)議層和SOAP業(yè)務(wù)層。
[0004]現(xiàn)有技術(shù)中,長連接容錯功能是由長連接通道內(nèi)各邏輯層獨(dú)立的容錯機(jī)制簡單疊加而成,各層的容錯機(jī)制之間無協(xié)同作用。
[0005]因此,現(xiàn)有的長連接容錯機(jī)制存在以下不足:
[0006](I)容錯體系并不完整,錯誤只能在產(chǎn)生源的本層傳播;
[0007](2)缺乏對錯誤跨層傳遞機(jī)制的定義;
[0008](3)缺乏對錯誤嚴(yán)重等級以及相應(yīng)行為的支持。
[0009]例如,在應(yīng)用業(yè)務(wù)層發(fā)生了一個嚴(yán)重級錯誤需要重新建立長連接網(wǎng)絡(luò)鏈路層以恢復(fù)服務(wù)時,目前的容錯機(jī)制無法規(guī)范地、靈活地實現(xiàn)上述要求。特別是當(dāng)長連接服務(wù)作為公共中間件提供服務(wù)時,無法做到頻繁修改服務(wù)器端,以同時滿足各種應(yīng)用的容錯需求。
【發(fā)明內(nèi)容】
[0010]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于TCP/IP協(xié)議的長連接容錯機(jī)制,無需修改服務(wù)器端即可滿足長連接服務(wù)作為中間件的各種容錯需求。
[0011]為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于TCP/IP協(xié)議的長連接容錯機(jī)制,包括:1)定義長連接的錯誤格式中包括以下字段:錯誤名稱/錯誤編碼、嚴(yán)重等級、優(yōu)先等級、處理方式、映射至基礎(chǔ)邏輯層的錯誤名稱/錯誤編碼和附加信息;2)長連接通道內(nèi)的每個業(yè)務(wù)操作都關(guān)聯(lián)至少一種錯誤,各邏輯層能夠?qū)I(yè)務(wù)操作所產(chǎn)生的錯誤進(jìn)行協(xié)同處理;3)在長連接通道內(nèi)發(fā)起的所有業(yè)務(wù)操作,都對其所關(guān)聯(lián)的每個錯誤在錯誤定義中聲明所對應(yīng)的處理方式;4)業(yè)務(wù)處理端根據(jù)每個業(yè)務(wù)操作所申明的錯誤的處理方式,對產(chǎn)生的錯誤進(jìn)行處理。
[0012]根據(jù)上述的基于TCP/IP協(xié)議的長連接容錯機(jī)制,其中:所述處理方式包括以下三種:
[0013]a、將業(yè)務(wù)操作所產(chǎn)生的錯誤保留在源產(chǎn)生邏輯層進(jìn)行處理;
[0014]b、將業(yè)務(wù)操作所產(chǎn)生的錯誤傳遞至源產(chǎn)生邏輯層以下的基礎(chǔ)邏輯層進(jìn)行處理;
[0015]c、不對業(yè)務(wù)操作所產(chǎn)生的錯誤進(jìn)行處理。
[0016]進(jìn)一步地,根據(jù)上述的基于TCP/IP協(xié)議的長連接容錯機(jī)制,其中:
[0017]所述錯誤名稱/錯誤編碼由長連接服務(wù)根據(jù)自身業(yè)務(wù)進(jìn)行定義;
[0018]所述嚴(yán)重等級表示錯誤的嚴(yán)重等級;
[0019]所述優(yōu)先等級表示錯誤的優(yōu)先等級;
[0020]所述映射至基礎(chǔ)邏輯層的錯誤名稱/錯誤編碼表示在處理方式為傳遞至基礎(chǔ)邏輯層處理時,錯誤在跨邏輯層傳遞處理過程中錯誤碼的映射關(guān)系;
[0021 ] 所述附加消息用于提供附加消息。
[0022]更進(jìn)一步地,根據(jù)上述的基于TCP/IP協(xié)議的長連接容錯機(jī)制,其中:所述嚴(yán)重等級和所述優(yōu)先等級均包括由低到高的I級-5級的5個等級。
[0023]進(jìn)一步地,根據(jù)上述的基于TCP/IP協(xié)議的長連接容錯機(jī)制,其中:所述業(yè)務(wù)處理端根據(jù)每個業(yè)務(wù)操作所申明的錯誤處理方式,采用如下方式對產(chǎn)生的錯誤進(jìn)行處理:
[0024]a、如果產(chǎn)生的錯誤沒有進(jìn)行申明,默認(rèn)使用保留在源產(chǎn)生邏輯層處理的處理方式;
[0025]b、如果產(chǎn)生的錯誤已進(jìn)行申明,依據(jù)錯誤申明定義的處理方式進(jìn)行處理;
[0026]C、如果產(chǎn)生多個錯誤,依據(jù)錯誤定義中的嚴(yán)重等級,最高嚴(yán)重等級的錯誤優(yōu)先得到處理;
[0027]d、如果產(chǎn)生多個嚴(yán)重等級相同的錯誤,依據(jù)錯誤定義中的優(yōu)先等級,最高優(yōu)先等級的錯誤優(yōu)先得到處理;
[0028]e、如果產(chǎn)生多個嚴(yán)重等級相同,優(yōu)先等級相同的錯誤,最先產(chǎn)生的錯誤優(yōu)先得到處理。
[0029]根據(jù)上述的基于TCP/IP協(xié)議的長連接容錯機(jī)制,其中:所述業(yè)務(wù)處理端為服務(wù)器端。
[0030]根據(jù)上述的基于TCP/IP協(xié)議的長連接容錯機(jī)制,其中:在長連接通道中,HTTP協(xié)議層中錯誤的處理方式的聲明由HTTP REQUEST結(jié)構(gòu)體包含;SOAP協(xié)議層中錯誤的處理方式的聲明由SOAP HEADER結(jié)構(gòu)體包含;SNMP協(xié)議中錯誤的處理方式的聲明由額外的變量綁定結(jié)構(gòu)體包含。
[0031]根據(jù)上述的基于TCP/IP協(xié)議的長連接容錯機(jī)制,其中:所述嚴(yán)重等級、所述優(yōu)先等級和所述處理方式字段均采用32位整型數(shù)據(jù)表示。
[0032]根據(jù)上述的基于TCP/IP協(xié)議的長連接容錯機(jī)制,其中:所述錯誤名稱/錯誤編碼、所述映射至基礎(chǔ)邏輯層的錯誤名稱/錯誤編碼和所述附加信息字段均為字符串型,長度在O?255之間。
[0033]如上所述,本發(fā)明的基于TCP/IP協(xié)議的長連接容錯機(jī)制,具有以下有益效果:
[0034](I)定義了完整的長連接容錯機(jī)制;
[0035](2)無需修改服務(wù)器端即可滿足長連接服務(wù)作為中間件的各種容錯需求。
【附圖說明】
[0036]圖1顯示為本發(fā)明的長連接的錯誤定義格式的示意圖;
[0037]圖2顯示為本發(fā)明的基于TCP/IP協(xié)議的長連接容錯機(jī)制原理圖。
【具體實施方式】
[0038]以下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應(yīng)用,本說明書中的各項細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
[0039]需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0040]本發(fā)明的基于TCP/IP協(xié)議的長連接容錯機(jī)制包括長連接通道內(nèi)各邏輯層的錯誤協(xié)同處理機(jī)制、錯誤的定義格式、錯誤的申明方式,以及錯誤的處理規(guī)則等幾部分內(nèi)容。
[0041]具體地,本發(fā)明的基于TCP/IP協(xié)議的長連接容錯機(jī)制包括以下內(nèi)容:
[0042]I)定義長連接的錯誤格式
[0043]參照圖1,本發(fā)明的長連接的錯誤格式包括以下字段:
[0044]a、錯誤名稱/錯誤編碼
[0045]該字段由長連接服務(wù)根據(jù)自身業(yè)務(wù)進(jìn)行定義。具體地,該字段為字符串型,長度在O?255之間。
[0046]b、嚴(yán)重等級
[0047]具體地,該字段表示錯誤的嚴(yán)重等級,分為I級-5級共5個等級,由低至高。當(dāng)多種錯誤同時產(chǎn)生時,嚴(yán)重等級最高的錯誤將優(yōu)先得到處理。該字段采用32位整型數(shù)據(jù)表不O
[0048]C、優(yōu)先等級
[0049]具體地,該字段表示錯誤的優(yōu)先級值分為I級-5級共5個等級,由低至高。當(dāng)多種相同嚴(yán)重等級的錯誤同時產(chǎn)生時,優(yōu)先等級最高的錯誤優(yōu)先得到處理。該字段采用32位整型數(shù)據(jù)表示。
[0050]d、處理方式
[0051]具體地,錯誤的處理方式字段采用32位整型數(shù)據(jù)表示,其中,0-3位數(shù)據(jù)為保留值,其余可擴(kuò)展。0-3位數(shù)據(jù)的定義如下:
[0052]O -預(yù)留(Reserved)
[0053]1-保留(Stay-1n)在源產(chǎn)生邏輯層進(jìn)行處理
[0054]具體地,將業(yè)務(wù)操作所產(chǎn)生的錯