中文字幕无码日韩视频无码三区

一種消息中間件的數據打包傳輸方法和系統的制作方法

文檔(dang)序(xu)號(hao):7758031閱(yue)讀:283來源:國知(zhi)局
專利名稱:一種消息中間件的數據打包傳輸方法和系統的制作方法
技術領域
本發明涉及數據通訊技術領域,具體涉及一種消息中間件的數據打包傳輸方法和系統。
背景技術
為了進行數據交換,通常會將多個文件壓縮或直接打包成一個目標文件,然后通過移動存儲設備或通過互聯網進行交換。在將多個文件進行打包時,對于需要打包的文件部分文件是壓縮格式的文件,而另外一部分文件是非壓縮格式文件時,對壓縮格式的文件如JPG和GIF格式的文件,打包時再進行壓縮壓縮比率非常有限,會浪費CPU資源;而對非壓縮格式的文件如BMP文件,如果不壓縮直接進行數據交換則會浪費大量的存儲空間或網 絡帶寬資源。在現有技術中,在將多個文件打包進一個目標文件時,要么對要打包的所有文件包括壓縮格式的文件都進行壓縮,如ZIP格式壓縮工具和rar格式壓縮工具;要么對要打包的文件包括非壓縮格式的文件都不進行壓縮,如tar格式壓縮工具。前者會導致浪費CPU資源,后者則會導致浪費存儲空間和網絡帶寬資源。在現有技術中針對所述數據交換問題,目前尚未提出有效的解決方案。

發明內容
針對現有技術中存在的缺陷,本發明的目的在于提供一種消息中間件的數據打包傳輸方法和系統,該方法和系統通過區別對待壓縮格式的文件和非壓縮格式的文件,實現高效的數據交換和資源共享。為實現上述目的,本發明采用的技術方案如下一種消息中間件的數據打包傳輸方法,包括以下步驟(I)消息發送裝置接收用戶需要發送的消息體和附件列表;(2)消息發送裝置中的消息打包模塊將用戶需要發送的消息體和附件列表打包成消息文件,打包時,消息發送裝置中的文件格式識別模塊判斷被打包的附件是否為壓縮格式,若是則將附件的壓縮標記設置為假,將附件直接打包進消息文件;若否則將附件的壓縮標記設置為真,將附件壓縮后打包進消息文件;(3)消息發送裝置將打包好的消息文件發送到數據交換服務器;(4)數據交換服務器將接收到的消息文件轉發給消息接收裝置;(5)消息接收裝置將接收到的消息文件進行解包得到消息體和附件列表;其中,解包消息文件打包的附件列表的具體步驟為查看附件的壓縮標記,若附件的壓縮標記為假,則直接解包得到附件;若附件的壓縮標記為真,則解包后解壓縮得到附件。進一步,如上所述的一種消息中間件的數據打包傳輸方法,步驟(2)中,將附件打包成消息文件的具體步驟為(2-1)查看附件列表是否為空,若是則進入步驟(3);若否則獲取附件,進入步驟(2-2);(2-2)消息發送裝置中的文件格式識別模塊判斷附件是否為壓縮格式,若是則將附件的壓縮標記設置為假,將附件直接打包進消息文件;若否則將附件的壓縮標記設置為真,將附件壓縮后打包進消息文件;(2-3)判斷是否存在下一個附件,若是則獲取附件后返回步驟(2-2),若否則進入步驟(3)。進一步,如上所述的一種消息中間件的數據打包傳輸方法,步驟(2-2)中,所述判斷附件是否為壓縮格式的具體的步驟為步驟a、文件格式識別模塊提取附件的文件擴展名;
步驟b、根據附件的文件擴展名確定附件是否為壓縮格式若文件擴展名在壓縮格式擴展名列表,則確定附件為壓縮格式;若擴展名在非壓縮格式擴展名列表,則確定附件為非壓縮格式。進一步,如上所述的一種消息中間件的數據打包傳輸方法,步驟b中,若文件擴展名為空,或文件擴展名不在壓縮格式擴展名列表和非壓縮格式擴展名列表,則提取附件的抽樣數據,對抽樣數據進行壓縮,確定壓縮比,若壓縮比大于設定的閾值,則確定附件為非壓縮格式,否則設定附件為壓縮格式;所述壓縮比是指對于附件的抽樣數據,其壓縮前的數據長度與壓縮后的數據長度的比值,所述壓縮比越大,表示壓縮率越高。再進一步,如上所述的一種消息中間件的數據打包傳輸方法,步驟(4)中,數據交換服務器接收消息發送裝置發送的消息文件,并根據路由規則得到消息接收端,將消息文件轉發給消息接收裝置。更進一步,如上所述的一種消息中間件的數據打包傳輸方法,步驟(3)和步驟(4)中的文件發送方式為一次性發送或分包斷點續傳發送。為實現上述方法,本發明還提供了一種消息中間件的數據打包傳輸系統,包括消息發送裝置用于接收用戶需要發送的消息體和附件列表,設置附件的壓縮標記,將消息體和附件列表打包成消息文件,將打包好的消息文件發送到數據交換服務器;數據交換服務器用于接收消息發送裝置發送的消息文件,并將接收到的消息文件轉發給消息接收裝置;消息接收裝置用于接收數據交換服務器轉發的消息文件,并將消息文件進行解包得到消息體和附件列表。進一步,如上所述的一種消息中間件的數據打包傳輸系統,所述消息發送裝置包括文件格式識別模塊,用于判斷被打包的附件的類型;所述附件類型包括壓縮格式和非壓縮格式。再進一步,如上所述的一種消息中間件的數據打包傳輸系統,所述消息發送裝置還包含消息打包模塊,用于將消息體及附件列表打包進消息文件。進一步,如上所述的一種消息中間件的數據打包傳輸系統,在將附件打包成消息文件時,根據文件格式識別模塊識別結果,將壓縮格式附件的壓縮標記設置為假,將附件直接打包;將非壓縮格式附件的壓縮標記設置為真,將附件壓縮后再打包。更進一步,如上所述的一種消息中間件的數據打包傳輸系統,消息打包模塊在對附件進行打包時,將壓縮標記寫入消息文件中,消息接收裝置在解包時若附件的壓縮標記為假,則將附件直接解包,若附件的壓縮標記為真,則將附件解包后再解壓縮。本發明的效果在于本發明所述的一種消息中間件的數據打包傳輸方法和系統,在對多個文件進行打包傳輸時,能夠區別對待壓縮格式的文件和非壓縮格式的文件,對壓縮格式的文件不再進行壓縮,直接打包進消息文件,節省CPU資源;對非壓縮格式的文件,將文件壓縮后再打包進消息文件,節約了大量存儲空間和網絡帶寬資源,通過互聯網實現高效的數據交換和資源共享。


圖I為本發明實施方式中一種消息中間件的數據打包傳輸系統的結構框圖;
圖2為本發明實施方式中一種消息中間件的數據打包傳輸系統的工作流程圖;圖3為本發明實施方式中一種消息中間件的數據打包傳輸的流程圖;圖4為本發明實施方式中文件格式識別模塊的工作流程圖;圖5為本發明實施方式中消息發送裝置的工作流程圖;圖6為本發明實施方式中消息接收裝置的工作流程圖。
具體實施例方式下面結合說明書附圖與具體實施方式
對本發明做進一步的詳細說明。圖I示出了本發明一種消息中間件的數據打包傳輸系統的結構框圖,該系統包括消息發送裝置11 :用于接收用戶需要發送的消息體和附件列表,設置附件的壓縮標記,將消息體和附件列表打包成消息文件,并將打包好的消息文件發送到數據交換服務器;數據交換服務器12 :用于接收消息發送裝置發送的消息文件,并將接收到的消息文件轉發給消息接收裝置;消息接收裝置13 :用于接收數據交換服務器轉發的消息文件,并將消息文件進行解包得到消息體和附件列表。其中,消息發送裝置還包括用于判斷被打包的附件類型是壓縮格式還是非壓縮格式的文件格式識別模塊,和用于將消息體及附件列表打包進消息文件的消息打包模塊。消息發送裝置11、數據交換服務器12和消息接收裝置13在進行數據打包傳輸時的工作流程如圖2所示首先,消息發送裝置11接收用戶需要發送的消息體和附件列表,并根據附件是否為壓縮格式,將附件壓縮后打包或直接打包到消息文件,將消息文件發送到數據交換服務器12 ;在打包時,若附件為壓縮格式,則設置附件的壓縮標記為假,若附件為非壓縮格式,則設置附件的壓縮標記為真,并將該壓縮標記寫入消息文件中,消息接收裝置在對附件解包時,正是根據該壓縮標記進行的;然后,數據交換服務器12接收到消息文件,根據路由規則得到消息接收端,將消息文件轉發給消息接收裝置13 ;最后,消息接收裝置13接收到消息文件,將消息文件解包得到消息體和附件列表,完成一次消息傳輸過程。在解包附件時,若附件的壓縮標記為假,則將附件直接解包,若附件的壓縮標記為真,則將附件解包后再解壓縮。圖3示出了基于圖I和圖2中消息中間件的數據打包傳輸系統的數據打包傳輸方法的流程圖,該方法包括以下步驟步驟S31 :接收消息體和附件列表;消息發送裝置11接收用戶需要發送的消息體和附件列表。其中,附件列表中附件的個數可以為空、可以為一個,也可以為多個。消息包括三個部分消息頭、消息體和附件列表,而消息體類似電子郵件正文。步驟S32 :將消息體和附件列表打包成消息文件;消息發送裝置11中的消息打包模塊將用戶需要發送的消息體和附件列表打包成消息文件,打包時,消息發送裝置中的文件格式識別模塊判斷被打包的附件是否為壓縮格式,若是則將附件的壓縮標記設置為假,將附件直接打包進消息文件;若否則將附件的壓縮標記設置為真,將附件壓縮后打包進消息文件;其中,將附件打包成消息文件的具體步驟為i)查看附件列表是否為空,若是則進入步驟S33;若否則獲取附件,進入步驟 );ii)消息發送裝置中的文件格式識別模塊判斷附件是否為壓縮格式,若是則將附件的壓縮標記設置為假,將附件直接打包進消息文件;若否則將附件的壓縮標記設置為真,將附件壓縮后打包到消息文件;iii)判斷是否存在下一個附件,若是則獲取附件,返回步驟ii),若否則進入步驟S33。其中,文件格式識別模塊判斷附件是否為壓縮格式的工作流程圖如圖4所示首先,文件格式識別模塊提取附件的文件擴展名;然后,查看附件的文件擴展名確定附件是否為壓縮格式若文件擴展名在壓縮格式擴展名列表,則確定附件為壓縮格式;若擴展名在非壓縮格式擴展名列表,則確定附件為非壓縮格式。對于文件擴展名為空,或文件擴展名不在壓縮格式擴展名列表和非壓縮格式擴展名列表時,則提取附件的抽樣數據,對抽樣數據進行壓縮,確定壓縮比,若壓縮比大于設定的閾值,則確定附件為非壓縮格式,否則設定附件為壓縮格式;壓縮比是指對于附件的抽樣數據,其壓縮前的數據長度與壓縮后的數據長度的比值,壓縮比越大,說明壓縮率越高,而閾值是由用戶根據需要進行設定,理論上來說,閾值的取值為正數就可以,但對于實際的應用過程中,閾值應該大于I,一般大于I. 5即可。。圖5示出了消息發送裝置11具體的工作流程圖,即步驟S31和步驟S32。步驟S33 :將消息文件發送到數據交換服務器;消息發送裝置11將打包好的消息文件發送到數據交換服務器12。步驟S34 :數據交換服務器接收消息文件并轉發;數據交換服務器12將接收到的消息文件轉發給消息接收裝置13,即數據交換服務器12接收消息發送裝置11發送的消息文件,并根據路由規則得到消息接收端,將消息文件轉發給消息接收裝置13。
步驟S35 :解包消息文件得到消息體和附件列表。消息接收裝置13將接收到的消息文件進行解包得到消息體和附件列表,其具體的流程如圖6所示首先,消息接收裝置13接收消息文件,并將消息文件解包后得到消息體與附件列表;然后,對附件列表進行解包若附件列表為空,則結束一次消息傳輸;否則獲取附件并查看附件的壓縮標記,若附件的壓縮·標記為假,則直接解包得到附件;若附件的壓縮標記為真,則解包后解壓縮得到附件;直至得到所有的附件。下面結合具體的實施例對本發明進行進一步詳細的說明。實施例I步驟I :消息發送裝置11接收用戶要發送的消息體“Test”和包含三個附件的附件列表,三個附件文件名分別為tree, jpg、river, bmp和fit. exe ;步驟2 :消息發送裝置12將消息體“Test”打包到名為CM7Z7BYJ0001. dat的消息文件;根據附件是否為壓縮格式,分別將附件打包到上述消息文件,附件tree, jpg擴展名為“jpg”,在預先設定的壓縮格式擴展名列表中,所以確定tree, jpg為壓縮格式,將其壓縮標記設置為假,直接將其打包進名為CM7Z7BYJ0001. dat的消息文件;river. bmp擴展名為“bmp”,在預先設定的非壓縮格式擴展名中,將其壓縮標記設置為真,將其壓縮,然后將其打包進名為CM7Z7BYJ0001. dat的消息文件;對于“fit. exe”文件,由于在現實中,“exe”擴展名的文件可能是壓縮格式、也可能是非壓縮格式,此時,首先對fit. exe附件抽取4096字節的數據,對這些數據進行壓縮,用壓縮前的數據長度除以壓縮后的數據長度得到壓縮t匕,本實施例中,假定壓縮后數據長度為688字節,那么壓縮比為4096/688,即5. 95 ;然后查看壓縮比是否大于設定的閾值,本實施例中取閾值為I. 5,顯然壓縮比5. 95大于I. 5,那么確定fit. exe為非壓縮格式,將其壓縮標記設置為真,先將其壓縮,然后將其打包進名為CM7Z7BYJ0001. dat 的消息文件;步驟3 :消息發送裝置11將打包好的名為CM7Z7BYJ0001. dat的消息文件一次性或分包斷點續傳發送到數據交換服務器12 ;步驟4 :數據交換服務器12收到名為CM7Z7BYJ0001. dat消息文件后將其一次性或分包轉發給消息接收裝置13 ;步驟5 :消息接收裝置13接收數據交換服務器12轉發的名為CM7Z7BYJ0001. dat的消息文件,將消息文件進行解包得到消息體“Test”,在處理打包后的附件列表時,對第一個附件,附件名為tree, jpg,其壓縮標記為假,為非壓縮格式,因此將其直接解包到tree,jpg的文件中;對第二個附件,附件名為river, bmp,其壓縮標記為真,為壓縮格式,將其解包并解壓縮到river, bmp文件;對第三個附件名為fit. exe,其壓縮標記為真,為壓縮格式,將其解包再解壓縮到fit. exe文件,至此完成一次消息傳輸過程。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其同等技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種消息中間件的數據打包傳輸方法,包括以下步驟 (1)消息發送裝置接收用戶需要發送的消息體和附件列表; (2)消息發送裝置中的消息打包模塊將用戶需要發送的消息體和附件列表打包成消息文件,打包時,消息發送裝置中的文件格式識別模塊判斷被打包的附件是否為壓縮格式,若是則將附件的壓縮標記設置為假,將附件直接打包進消息文件;若否則將附件的壓縮標記設置為真,將附件壓縮后打包進消息文件; (3)消息發送裝置將打包好的消息文件發送到數據交換服務器; (4)數據交換服務器將接收到的消息文件轉發給消息接收裝置; (5)消息接收裝置將接收到的消息文件進行解包得到消息體和附件列表;其中,解包消息文件打包的附件列表的具體步驟為 查看附件的壓縮標記,若附件的壓縮標記為假,則直接解包得到附件;若附件的壓縮標記為真,則解包后解壓縮得到附件。
2.如權利要求I所述的一種消息中間件的數據打包傳輸方法,其特征在于步驟(2)中,將附件打包成消息文件的具體步驟為 (2-1)查看附件列表是否為空,若是則進入步驟(3);若否則獲取附件,進入步驟(2-2); (2-2)消息發送裝置中的文件格式識別模塊判斷附件是否為壓縮格式,若是則將附件的壓縮標記設置為假,將附件直接打包進消息文件;若否則將附件的壓縮標記設置為真,將附件壓縮后打包進消息文件; (2-3)判斷是否存在下一個附件,若是則獲取附件后返回步驟(2-2),若否則進入步驟⑶。
3.如權利要求2所述的一種消息中間件的數據打包傳輸方法,其特征在于步驟(2-2)中,所述判斷附件是否為壓縮格式的具體的步驟為 步驟a、文件格式識別模塊提取附件的文件擴展名; 步驟b、根據附件的文件擴展名確定附件是否為壓縮格式若文件擴展名在壓縮格式擴展名列表,則確定附件為壓縮格式;若擴展名在非壓縮格式擴展名列表,則確定附件為非壓縮格式。
4.如權利要求3所述的一種消息中間件的數據打包傳輸方法,其特征在于步驟b中,若文件擴展名為空,或文件擴展名不在壓縮格式擴展名列表和非壓縮格式擴展名列表,則提取附件的抽樣數據,對抽樣數據進行壓縮,確定壓縮比,若壓縮比大于設定的閾值,則確定附件為非壓縮格式,否則設定附件為壓縮格式; 所述壓縮比是指對于附件的抽樣數據,其壓縮前的數據長度與壓縮后的數據長度的比值。
5.如權利要求I所述的一種消息中間件的數據打包傳輸方法,其特征在于步驟(4)中,所述數據交換服務器接收消息發送裝置發送的消息文件,并根據路由規則得到消息接收端,將消息文件轉發給消息接收裝置。
6.如權利要求I所述的一種消息中間件的數據打包傳輸方法,其特征在于步驟(3)和步驟(4)中的文件發送方式為一次性發送或分包斷點續傳發送。
7.一種消息中間件的數據打包傳輸系統,包括消息發送裝置用于接收用戶需要發送的消息體和附件列表,設置附件的壓縮標記,將消息體和附件列表打包成消息文件,將打包好的消息文件發送到數據交換服務器; 數據交換服務器用于接收消息發送裝置發送的消息文件,并將接收到的消息文件轉發給消息接收裝置; 消息接收裝置用于接收數據交換服務器轉發的消息文件,并將消息文件進行解包得至IJ消息體和附件列表。
8.如權利要求7所述的一種消息中間件的數據打包傳輸系統,其特征在于所述消息發送裝置包括文件格式識別模塊,用于判斷被打包的附件的類型;所述附件類型包括壓縮格式和非壓縮格式。
9.如權利要求7所述的一種消息中間件的數據打包傳輸系統,其特征在于所述消息發送裝置還包括消息打包模塊,用于將消息體及附件列表打包進消息文件。
10.如權利要求7-9之一所述的一種消息中間件的數據打包傳輸系統,其特征在于在將附件打包成消息文件時,根據文件格式識別模塊識別結果,將壓縮格式附件的壓縮標記設置為假,將附件直接打包;將非壓縮格式附件的壓縮標記設置為真,將附件壓縮后再打包。
11.如權利要求10所述的一種消息中間件的數據打包傳輸系統,其特征在于消息打包模塊在對附件進行打包時,將壓縮標記寫入消息文件中,消息接收裝置在解包時若附件的壓縮標記為假,則將附件直接解包,若附件的壓縮標記為真,則將附件解包后解壓縮。
全文摘要
本發明公開了一種消息中間件的數據打包傳輸方法和系統,涉及數據通訊領域。該方法首先通過消息發送裝置將要發送的消息體和附件打包成消息文件,在打包過程中,文件格式識別模塊判斷被打包的附件是否為壓縮格式,若是則直接將其打包進消息文件;若否則將其壓縮后再打包進消息文件;然后通過數據交換服務器將消息文件發送到消息接收裝置,消息接收裝置根據附件的壓縮標記直接解包或先解包再解壓縮得到附件,完成一次消息傳輸過程。通過本發明的方法及系統,可以區別對待消息附件列表中的壓縮文件和非壓縮文件,對壓縮格式的文件不再進行壓縮而直接打包,節省CPU資源;對非壓縮格式文件進行壓縮打包,減少在網絡上傳輸的數據量,提高傳輸效率。
文檔編號H04L12/951GK102957633SQ201110240599
公開日2013年3月6日 申請日期2011年8月19日 優先權日2011年8月19日
發明者樂以長, 蘆華楠, 李翔宇, 梁學勇 申請人:北京大學, 北大方正集團有限公司, 方正國際軟件(北京)有限公司
網(wang)友詢(xun)問(wen)留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1