一种消息中间件的数据打包传输方法和系统的制作方法

文档序号:7758031阅读:241来源:国知局
专利名称:一种消息中间件的数据打包传输方法和系统的制作方法
技术领域
本发明涉及数据通讯技术领域,具体涉及一种消息中间件的数据打包传输方法和系统。
背景技术
为了进行数据交换,通常会将多个文件压缩或直接打包成一个目标文件,然后通过移动存储设备或通过互联网进行交换。在将多个文件进行打包时,对于需要打包的文件部分文件是压缩格式的文件,而另外一部分文件是非压缩格式文件时,对压缩格式的文件如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日
发明者乐以长, 芦华楠, 李翔宇, 梁学勇 申请人:北京大学, 北大方正集团有限公司, 方正国际软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1