一种大型xml文件的网络传输方法

文档序号:7840060阅读:1116来源:国知局
专利名称:一种大型xml文件的网络传输方法
技术领域
本发明涉及XML文件的传输,特别涉及一种大型XML文件的网络传输方法。
背景技术
XML (可扩展标记文件)是一种标记语言,其具有如下优点(1)自描述性;(2)支持文档内容的验证;C3)允许不同领域的标记语言的存在;(4)支持高级搜集,故而,XML格式的文件在现今的互联网应用中被大量使用。由于现今hternet网络带宽容量的限制,使得系统在进行大型XML文件传输时,对XML进行有效的压缩及传输机制的设计显得尤为重要。大型XML文件传输现有如下的两种方式(1)文件结构感知;(2)非文件结构感知两种方式;而在文件结构感知方式中又分为基于schema方式和非schema方式两种。考虑到XML文件是以文本方式进行存储,在非结构感知方式下现行系统多采用传统的文本压缩方式进行XML文件的压缩,例如采用bzip2,gzip等方式。虽然该种方式在对文本文件压缩时具有较大的压缩率,但同时此种方式缺点也较为明显(1)压缩需占用较多计算资源(CPU,内存,IO等);( 需要在发送端和接收端,同时具有相同的压缩/解压缩算法;(3)无法对压缩后的文件进行在线查询。结构感知方式的压缩方式,其旨在利用对XML文档结构的感知来实现压缩的一种压缩方式,相对XML文档进行一般文本压缩处理的方式来说,该方法进一步提供了压缩率, 但其依赖于其后端的压缩/解压算法和相应的XML文档的格式或XML文档的khema,而没有对于XML文档中的一些冗余信息进行相应的处理。基于对上述问题的讨论我们提出一种新的基于压缩和分批传输的大型XML文件网络传输方法,该方法具有较高的压缩率,较低的压缩/解压资源消耗,以及较快的传输速率等优点从而以较低的资源需求来完成海量数据的传输。在进行大型XML文件网络传输时,首要考虑的问题是网络带宽,其次是要考虑尽可能地减少所需要传输文档的大小,最后要考虑的是传输过程所造成文档误差的检查和修复能力。在此,我们主要关注前面两点,即如何在有限的网络带宽下,提高系统的吞吐量。现有对于大型XML文档进行网络传输时所采用的方法有上述提及的基于XML文档结构感知和非结构感知的两种主要方法,他们的重点均侧重于对于XML文档的压缩处理, 而对于压缩后的文件的传输问题则没有过多的讨论。下面就主要讨论一下上述各个方案。首先,对于非结构感知,其主要侧重于对于 XML文档进行相关的压缩,其所采用的方法是将XML文档作为文本文件进行压缩/解压处理,从而达到减少相应所需传输文件大小的目的。如在进行XML文档传输之前对相关文档使用文本压缩算法进行压缩,在接收端使用相应的解压算法对所接收的压缩文件进行解压并还原出源文件。该方案主要使用基于LZ77和Huffman编码,Burrows-Wheeler转换和自适应统计数据压缩技术的gzip,bzip2, PPM等算法对XML文档进行相关压缩。结构感知的压缩算法主要利用了 XML文档的高度结构化的特点,对XML文档进行结构分析,将XML文档的结构和数据分开,将XML文档结构使用树型数据结构来表示,然后将各个节点的数据保存至该树的各个叶子节点上的同质的容器中。XMill作为独立模式的结构感知的压缩算法现在已经广泛的应用在大型XML文档压缩中。例如对于如下的XML文档
<books>
<bookid="bookl">
<title> Discovery in deep ocean </title> <price>12.5</price> <author>Brad.Pitt</author〉 </book>
〈book id="book2">
<title>anonymous</title> <price>21.4</price> <authro>annoy</author〉 </book> </books>XMill首先根据文档中的所有元素节点构造相应的元素容器,下表表示上述的 XML文档所对应的元素容器及属性容器和数据容器的情况。元素表
权利要求
1.一种大型XML文件的网络传输方法,其特征在于,包括以下步骤51读取XML文档;52对XML文档的所有节点标签进行预处理;53对XML文档中的冗余标签进行处理;54完成XML文档的压缩处理和分片传输。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2进一步包括S21 寻找出XML文档中所有节点标签信息,并将所述节点标签信息保存至一张节点数据表中,并对所述节点数据表中的每一项赋予唯一编号作为该项在表中的索引值;S22:在完成所述节点数据表的建立后,使用节点所对应的索引号对所述XML文档进行相应的处理,对于所述节点在文档中的出现的位置使用其对应的节点索引号进行代替。
3.根据权利要求1或2所述的方法,其特征在于,所述步骤S4进一步包括541设置分片的初始大小为hitial_Size ;542取出若干个数据作为一个数据包进行压缩处理,并进行网络传输;其中所述数据包的大小为hitial_Size ;543判断当前网络负载状况,并得到网络自动生成的最大传输单元的值;544根据当前网络负载状况和最大传输单元的值重新确定分片大小为New_Size ;545重新取大小为New_Size的数据包进行压缩处理,并进行网络传输;546重复步骤S43至步骤S45,直至XML文档全部传输完成。
4.根据权利要求3所述的方法,其特征在于,所述步骤S43中,判断当前网络负载状况, 具体包括A431 步骤S42中数据包传输后,计算得到所述数据包的数据传输时间TT,其中,所述数据传输时间TT为所述数据包发送时间与响应时间之间的差值;A432 设定所述数据传输时间TT的初始上限值TT_MAX,用以描述数据在该网络中的传输所需的最大时间,即在网络异常拥堵的情况下,数据由发送端传输到接收端所需的最大传输时间;A433 判断网络负载状况若所述数据传输时间TT在区间(0,ΤΤ_ΜΑΧ]内,则认为该网络负载较为正常;若所述数据传输时间TT在区间(TT_MAX,+ -)内则表明该段网络状况较差。
5.根据权利要求3所述的方法,其特征在于,所述步骤S44进一步包括5441在时间T内随机抽取1\、T2......V1, Tn.....Tm个数据传输时间,这里的T指的是采样时间;5442计算所述m个数据传输时间的统计算术平均值,即统计平均传输时间ATm = m/ (1/V1/V......+1/TJ(4. 1)5443设定一个阈值,用以描述所述ATm的最大值;5444比较TN_i、Tn两段时间内数据报文的统计平均传输时间ATn和AT1^1的差值;检查所述ATAn和所述ATim的关系是否满足如公式(4. 2),如满足,则可以进一步按照公式(4. 3) 来增加发送分片的大小,否则执行S445 ;1- ( (ATn-AV1) /AV1)彡阙值(4. 2)New_Size = Initial_Size*(l+a)N(4. 3)其中dnitialSize为初始分片大小,New_SiZe为调整后的数据分片大小,a为数据分片的增幅大小,N为增幅指数,其初始值可以设置为1,每次执行所述算法时候将N设置为N =N士 1 ;S445 将a设置为_a,N设置为N-I (N彡1),并用公式(4. 3)来重新调整数据分片的大
6.根据权利要求1所述的方法,其特征在于,所述步骤S3进一步包括删除所有节点的右标签。
7.根据权利要求3所述的方法,其特征在于,步骤S42中取出的数据同时包括该数据在整个文档中的节点数据表。
全文摘要
本发明公开了一种大型XML文件的网络传输方法,包括S1读取XML文档。S2对XML文档的所有节点标签进行预处理。S3对XML文档中的冗余标签进行处理。S4完成XML文档的压缩处理和分片传输,进一步包括S41设置分片的初始大小为Initial_Size;S42取出若干个数据作为一个数据包进行压缩处理,并进行网络传输,其中该数据包的大小为Initial_Size;S43判断当前网络负载状况,并得出最大传输单元的值;S44根据当前网络负载状况和最大传输单元的值重新确定分片大小为New_Size;S45重新取大小为New_Size的数据包进行压缩处理,网络传输;S46重复步骤S43至步骤S45。
文档编号H04L29/08GK102571966SQ20121001318
公开日2012年7月11日 申请日期2012年1月16日 优先权日2012年1月16日
发明者关健, 刘钰, 孙伟丰, 徐邵稀, 李 浩, 王恒, 王文军, 程仁波, 罗正海, 胡奎, 赖铮, 赵伟, 郑程光 申请人:上海方正数字出版技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1