一種報(bào)文分包處理的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是涉及一種報(bào)文分包處理的方法。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中,當(dāng)某個報(bào)文數(shù)據(jù)分包處理失敗時,并沒有處理,也沒有將包括該處理失敗的報(bào)文數(shù)據(jù)分包在內(nèi)的所有已接收的報(bào)文數(shù)據(jù)分包的處理操作進(jìn)行回滾。
[0003]而且,通常,在進(jìn)行報(bào)文傳輸?shù)倪^程中,會直接將報(bào)文在服務(wù)器端和客戶端之間交互,而這樣會導(dǎo)致報(bào)文傳輸?shù)陌踩暂^差。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種報(bào)文分包處理的方法,其實(shí)現(xiàn)在由多個分包數(shù)據(jù)包構(gòu)成的報(bào)文數(shù)據(jù)包在傳輸過程中的整體完整性,并具有很好的安全性。
[0005]為實(shí)現(xiàn)本發(fā)明目的而提供的一種報(bào)文分包處理的方法,包括如下步驟:
[0006]接收串行下發(fā)的報(bào)文數(shù)據(jù)分包,其中,所述報(bào)文數(shù)據(jù)分包通過對待下發(fā)的事務(wù)報(bào)文進(jìn)行分包獲得;
[0007]當(dāng)某個報(bào)文數(shù)據(jù)分包處理失敗時,將包括該處理失敗的報(bào)文數(shù)據(jù)分包在內(nèi)的所有已接收的報(bào)文數(shù)據(jù)分包的處理操作進(jìn)行回滾。
[0008]較優(yōu)地,所述通過對待下發(fā)的事務(wù)報(bào)文進(jìn)行分包獲得所述報(bào)文數(shù)據(jù)分包,包括如下步驟:
[0009]將待下發(fā)的事務(wù)報(bào)文劃分為多個具有同一事務(wù)標(biāo)識的報(bào)文數(shù)據(jù)分包。
[0010]較優(yōu)地,所述的報(bào)文分包處理方法,還包括如下步驟:
[0011]為最后下發(fā)的報(bào)文數(shù)據(jù)分包設(shè)置表示所述事務(wù)下發(fā)完畢的結(jié)束標(biāo)識。
[0012]較優(yōu)地,所述的報(bào)文分包處理方法,還包括如下步驟:
[0013]當(dāng)在預(yù)置時間間隔內(nèi)沒有接收到下一個報(bào)文數(shù)據(jù)分包時,則將所有已接收的報(bào)文數(shù)據(jù)分包的處理操作進(jìn)行回滾。
[0014]較優(yōu)地,所述的報(bào)文分包處理方法,還包括如下步驟:
[0015]對報(bào)文進(jìn)行加密,并在報(bào)文中加入拆包信息,由受理客戶端框架解密報(bào)文后對文件進(jìn)行拆包并發(fā)送給受理框架合包。
[0016]較優(yōu)地,所述對報(bào)文進(jìn)行加密,并在報(bào)文中加入拆包信息,由受理客戶端框架解密報(bào)文后對文件進(jìn)行拆包并發(fā)送給受理框架合包,包括如下步驟:
[0017]客戶端應(yīng)用調(diào)用本地接口發(fā)起數(shù)據(jù)傳輸請求;
[0018]受理客戶端框架生成握手報(bào)文;
[0019]受理客戶端框架檢查報(bào)文大??;
[0020]用aes (Advanced Encrypt1n Standard,高級加密標(biāo)準(zhǔn))算法加密握手報(bào)文;[0021 ] 把數(shù)據(jù)發(fā)送到受理框架;
[0022]受理框架解密數(shù)據(jù),檢查技術(shù)報(bào)文的信息;
[0023]受理框架生成響應(yīng)報(bào)文;服務(wù)器端生成通信密碼用用戶證書加密,如果定義的通信方式是每次傳輸?shù)拿艽a都不同,則每一次都需要生成通信密碼,如果定義的通信方式是密碼相同,則只有在通信的有效時間內(nèi)使用同樣的密碼,否則,使用不同的密碼,如果定義的通信方式是使用數(shù)字信封,則每一次業(yè)務(wù)數(shù)據(jù)的傳輸都使用數(shù)字信封;
[0024]受理框架檢查技術(shù)報(bào)文中是否有分包信息;如果包含拆包信息,檢查服務(wù)器端是否有已經(jīng)上傳的部分?jǐn)?shù)據(jù),生成分包信息,把分包信息加入響應(yīng)報(bào)文;
[0025]用aes加密響應(yīng)報(bào)文,返回報(bào)文給受理客戶端框架;
[0026]受理客戶端框架解密報(bào)文;
[0027]把業(yè)務(wù)數(shù)據(jù)按照數(shù)據(jù)表示算法加密成數(shù)字信封;
[0028]如果分包有多個數(shù)據(jù)包,就需要把多個數(shù)據(jù)包分別加密成數(shù)字信封;把每個數(shù)據(jù)包組裝成發(fā)送報(bào)文;
[0029]發(fā)送數(shù)據(jù)包;
[0030]受理框架分別解密技術(shù)報(bào)文和根據(jù)技術(shù)報(bào)文解密業(yè)務(wù)報(bào)文;
[0031]如果技術(shù)報(bào)文包含分包信息,轉(zhuǎn)存分包信息,需要判斷是否所有的包都傳輸完成,如果都傳輸完成,要合并傳輸?shù)陌缓蟮?4步,否則,返回握手的技術(shù)報(bào)文,包含還沒有傳輸?shù)膱?bào)文序號;
[0032]受理框架記錄日志;
[0033]受理框架轉(zhuǎn)發(fā)報(bào)文;
[0034]受理框架加密處理應(yīng)用處理結(jié)果,用aes加密技術(shù)報(bào)文;
[0035]受理框架把數(shù)據(jù)發(fā)回給受理客戶端框架;
[0036]受理客戶端框架解密技術(shù)報(bào)文和業(yè)務(wù)報(bào)文;
[0037]受理框架把處理結(jié)果返回給上層應(yīng)用。
[0038]較優(yōu)地,所述對報(bào)文進(jìn)行加密,并在報(bào)文中加入拆包信息,由受理客戶端框架解密報(bào)文后對文件進(jìn)行拆包并發(fā)送給受理框架合包,包括如下步驟:
[0039]受理客戶端框架在報(bào)文數(shù)據(jù)大于IM時,在握手報(bào)文中加入拆包信息后加密握手報(bào)文:
[0040]受理框架對握手報(bào)文進(jìn)行解密后生成響應(yīng)報(bào)文,握手報(bào)文中如有拆包信息,則將拆包信息加入響應(yīng)報(bào)文,并對響應(yīng)報(bào)文進(jìn)行加密;
[0041]受理客戶端框架對響應(yīng)報(bào)文進(jìn)行解密并將文件拆包,加密后傳輸報(bào)文;當(dāng)解密后的響應(yīng)報(bào)文中包含拆包信息時,受理客戶端框架分析拆包信息,并對報(bào)文進(jìn)行拆包處理,分包加密后,開始傳輸報(bào)文;
[0042]受理框架解密報(bào)文后,記錄日志并合并數(shù)據(jù)包。
[0043]本發(fā)明的報(bào)文分包處理的方法,在進(jìn)行多報(bào)文的事務(wù)處理時,將整體報(bào)文進(jìn)行數(shù)據(jù)分包的劃分并串行下發(fā),在對報(bào)文數(shù)據(jù)分包進(jìn)行處理時,當(dāng)出現(xiàn)處理失敗的情形時,將包括該處理失敗的報(bào)文數(shù)據(jù)分包在內(nèi)的所有已接收的報(bào)文數(shù)據(jù)分包的處理操作進(jìn)行回滾,保證所有的報(bào)文數(shù)據(jù)分包作為一個整體執(zhí)行,從而能夠滿足由多個分包數(shù)據(jù)包構(gòu)成的報(bào)文數(shù)據(jù)包在傳輸過程中的整體完整性需求,進(jìn)一步地,其通過加解密提供報(bào)文傳輸?shù)陌踩浴?br>【附圖說明】
[0044]圖1為依據(jù)本發(fā)明一個實(shí)施例的報(bào)文分包處理的方法流程圖。
【具體實(shí)施方式】
[0045]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚透徹,以下結(jié)合附圖及實(shí)施例,對本發(fā)明的報(bào)文分包處理的方法進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0046]本發(fā)明報(bào)文加解密分包處理的方法,所述方法包括:
[0047]接收串行下發(fā)的報(bào)文數(shù)據(jù)分包,其中,所述報(bào)文數(shù)據(jù)分包通過對待下發(fā)的事務(wù)報(bào)文進(jìn)行分包獲得;
[0048]當(dāng)某個報(bào)文數(shù)據(jù)分包處理失敗時,將包括該處理失敗的報(bào)文數(shù)據(jù)分包在內(nèi)的所有已接收的報(bào)文數(shù)據(jù)分包的處理操作進(jìn)行回滾。
[0049]優(yōu)選的,所述通過對待下發(fā)的事務(wù)報(bào)文進(jìn)行分包獲得所述報(bào)文數(shù)據(jù)分包,包括:
[0050]將待下發(fā)的事務(wù)報(bào)文劃分為多個具有同一事務(wù)標(biāo)識的報(bào)文數(shù)據(jù)分包。
[0051]進(jìn)一步,所述方法還包括:
[0052]為最后下發(fā)的報(bào)文數(shù)據(jù)分包設(shè)置表示所述事務(wù)下發(fā)完畢的結(jié)束標(biāo)識。
[0053]進(jìn)一步,所述方法還包括:
[0054]當(dāng)在預(yù)置時間間隔內(nèi)沒有接收到下一個報(bào)文數(shù)據(jù)分包時,則將所有已接收的報(bào)文數(shù)據(jù)分包的處理操作進(jìn)行回滾。
[0055]本發(fā)明報(bào)文分包處理的方法,進(jìn)一步對報(bào)文進(jìn)行加密,并在報(bào)文中加入拆包信息,由受理客戶端框架解密報(bào)文后對文件進(jìn)行拆包并發(fā)送給受理框架合包。
[0056]1、客戶端應(yīng)用調(diào)用本地接口發(fā)起數(shù)據(jù)傳輸請求;
[0057]2、受理客戶端框架生成握手報(bào)文;
[0058]3、受理客戶端框架檢查報(bào)文大??;
[0059]I)如果報(bào)文大小大于1M,信在握手報(bào)文中增加分包息
[0060]4、用aes算法加密握手報(bào)文(業(yè)務(wù)報(bào)文項(xiàng)數(shù)據(jù)為空,簽名報(bào)文數(shù)據(jù)項(xiàng)為空);
[0061]5、把數(shù)據(jù)發(fā)送到受理框架;
[0062]6、受理框架解密數(shù)據(jù),檢查技術(shù)報(bào)文的信息,如客戶端廠商是否注冊、用戶是否注冊等;
[0063]7、受理框架生成響應(yīng)報(bào)文;服務(wù)器端生成通信密碼用用戶證書加密(如果定義的通信方式是每次傳輸?shù)拿艽a都不同,則每一次都需要生成通信密碼,如果定義的通信方式是密碼相同,則只有在通信的有效時間內(nèi)(客戶端30分鐘內(nèi)有上傳數(shù)據(jù)的情況)使用同樣的密碼,否則,使用不同的密碼,如果定義的通信方式是使用數(shù)字信封,則每一次業(yè)務(wù)數(shù)據(jù)的傳輸都使用數(shù)字信封,注意:下面的步驟中是以數(shù)字信封來說明的)
[0064]8、受理框架檢查技術(shù)報(bào)文中是否有分包信息;
[0065]I)包含拆包信息,