一种数据差异分析方法

文档序号:6463214阅读:215来源:国知局
专利名称:一种数据差异分析方法
技术领域
本发明属于数据压缩领域,具体涉及到一种数据差异分析方法。
背景技术
在一些网络存储应用中,比如网络存储系统中,通常情况下, 一个文件祐: 修改后重新保存时,需要将整个文件重新上传到服务器;比如,在客户端打开 一个文件A时,需要从服务器上面下栽A文件的数据,A文件修改后形成A,, 如果要保存A,的话,还需要把整个A,重新传输给服务器。由于文件被修改后, 通常情况下只有一小部分被修改,如果重新上传整个文件的话,将极大浪费网
;、l匕如从服务器下载一个10M字节的文件a.doc,修改其中的一个字符后保 存,则需要把这个10M字节的文件重新传输给服务器。如果我们能把》修改前 后的数据差异提取出来传送给服务器,则只需要传输非常少量的数据。针对这 种需求,出现了一些分析数据差异的通用算法,如美国专利号为59卯810专利 中介绍了一些分析修改前后的数据差异的通用差异分析算法。
在实际应用中,各种数据都有自己的格式,如果不了解数据格式,差异分 析的效果将会比较差。比如,对于一个word文件,修改其中的一个字符后, 如果不了解word的格式的话,采用通用差异分析算法进行差异分析,则差异 数据通常有几十k字节。
为了在提高一些常用数据格式的差异分析的效率,本发明提供了一种将专 用差异分析算法和通用差异分析算法相结合的差异分析方法。

发明内容
本发明所介绍的方法中,系统中i史有专用差异分析算法,同时设有通用差 异分析算法。保存数据的时候,先检查是否存在专用差异分析算法,如果不存 在专用差异分析算法,采用通用差异分析算法来分析数据;数据分析完以后把 差异数据提交给服务器。打开数据时,选择一种差异合并算法,将原始数据和 差异数据合并成目标数据。
为了便于说明,修改之前的数据称为源数据,修改之后的数据称为目标数 据。数据被修改后,通过分析源数据和目标数据的差异得到差异数据。
本发明所提供的一种数据差异分析方法,其特征在于1) 系统中设有专用差异分析算法;
2) 系统中设有通用差异分析算法;
3) 保存数据时,选择一种差异分析算法,分析源数据和目标数据的差异, 把差异数据提交给存储器。
4) 打开数据时,合并源数据和差异数据,得到目标数据。 对于本发明所述的一种数据差异分析方法,其特征1)系统中设有专用差
异分析算法。对于所述的每一种专用差异分析算法,都有相应的关联特征与之 关联。
上述所提到的关联特征是指
la).能够表明数据格式类型的属性,比如文件的后缀名通常表明该文件
数据的格式类型; lb). 数据本身的格式信息; lc).la)和lb)中的其中任意一种或者两种;
对于本发明所提到的专用差异分析算法,其输出的差异数据格式可以选择 下面二者之一
2a).该专用差异分析算法自己定义的专用差异数据格式;
2b).使用系统统一定义的通用差异数据格式; 对于上述2a)所述的专用差异分析算法自己定义的数据格式,其特征在于 当差异分析算法使用专用差异数据格式时,必须提供相应的专用差异合并算 法;
对于上述2a)和2b)中所述的差异数据格式,是指用来描述数据间差异的方 法,具体如何描述数据间的差异并不影响本发明的本质。
上述特征3)保存数据时,选择一种差异分析算法,分析源数据和目标数 据的差异,把差异数据提交给存储器。对于所述的选择一种差异分析算法,详 细步骤如下
3a).对于需要分析的数据,首先根据关联特征查找是否存在专用差异分
析算法,如果存在,则选择对应的专用差异分析算法; 3b).如果不存在,则选择通用差异分析算法; 上述特征4)合并源数据和差异数据,所述合并源数据和差异数据,具体 步骤如下
4a). 选择一种差异合并算法;4b).使用差异合并算法分析差异数据和源数据,得到目标数据; 对于上述4a)选择一种差异合并算法,详细说明如下 5a).如果生成差异数据的差异分析算法使用专用差异数据格式,则选择
该差异分析算法所提供的差异合并算法; 5b).如果差异分析算法使用通用的差异数据格式,则选择通用差异数据 合并算法。


图l是分析目标数据和源数据形成差异数据;
图2是根据源数据和差异数据合并成目标数据;
图3是系统中的差异分析算法;
图4是专用差异分析算法示例;
图5是数据存储流程;
图6是选择差异分析算法;
图7是生成目标数据;
图8是选择差异合并算法;
图9是差异数据格式示例具体实施例方式
下面结合实例对本发明做进一步描述
如图l所示,图l说明了将源数据和目标数据进行差异分析后得到差异数 据的过程;
如图2所示,图2说明了将源数据和差异数据合并后得到目标数据的过程。 如图3所示,图3是一个系统中同时存在专用差异分析算法和通用差异分
析算法的系统示例,其中有三个专用差异分析算法Word专用差异分析算法,
Excel专用差异分析算法,JPG图片专用差异分析算法。
如图4所示,图4说明了一个专用差异分析算法所应该具有的功能示例,
其详细i兌明々口下
1) 算法支持的后缀名对于每一个专用差异分析算法,都有关联的后缀 名,如果数据文件的后缀名与该关联的后缀名不相同,则说明该专用 差异分析算法不能用于分析指定的数据。在图示的算法中,所关联的 后缀名是doc。
2) 数据格式判断函数专用差异分析算法提供了一种根据数据格式判断 是否可以使用该专用差异分析算法的函数。通常情况下,不同的文件格式可能采用相同的后缀名,因此这种功能有利于进一步确定算法是 否是能够适用于给定数据的专用算法。对于给定的数据,该函数检查 数据的格式信息是否与算法支持的格式一致,如果是,说明该专用算 法可以用来分析数据。
3)差异合并算法函数。
这里只是给出一个实例,说明一个专用差异分析算法应该具有的功能,在 实际使用中,1)和2)中也可以仅用其中的一个。
当该专用差异分析算法使用专用差异数据格式时,需要提供相应的差异合 并算法,否则不需要提供差异合并算法。差异数据格式是用来描述不同数据间 差别的方式,具体采用何种差异数据格式并不影响本发明的本质,
如图5所示,图5说明了保存数据的过程
1) 选择一种差异分析算法;
2) 利用差异分析算法来分析数据,得到差异数据; 3 )将差异数据存储到存储器。
如图6所示,图6说明了如何为数据选择合适的差异分析算法,
1) 根据数据文件的后缀名选择一个能够支持指定后缀名的差异分析算法。
2) 如果没有找到能够支持指定后缀名的专用差异分析算法,则选择通用 差异分析算法,结束;否则,继续步骤3;
3) 利用数据格式判断函数,根据数据的内容判断所选的专用差异分析算 法是否可以用来分析数据。如果可以,则选择该专用差异分析算法,结束;
4) 如果不可以,根据后缀名选择下一个专用差异分析算法,转2)。 如图7所示,图7说明了如何根据差异数据生成目标数据;
1) 读取差异数据;
2) 选择一个差异合并算法;
3) 利用差异合并算法将源数据和差异数据合并为目标数据; 如图8所示,图8说明了如何选择差异合并算法
1) 如果差异数据不是由专用差异分析算法产生的,则选择通用差异合并 算法;
2) 如果产生差异数据的专用差异分析算法提供差异合并算法,则选择其 所提供的专用差异合并算法,否则选择通用差异合并算法。
如图9所示,图9是一种差异数据格式示例图,差异数据格式是用来描述 不同数据间差别的方式,具体采用何种差异数据格式并不影响本发明的本质。 图中所示的只是其中一种的示例。数据的差异情况分两种, 一种是能够在源数 据中找到匹配数据的部分,如示例图里面的加==数据部分(c d g f g); 另外一种情况是没有从源数据里面找到匹配的部分,如示例图里面的kp和m 1。在示例图中的记录方法是以Oxff表示后面的数据是没有找到匹配的数据, 0xff后面紧接着是数据长度,数据长度后面是没有找到匹配数据的拷贝;以0x00表示后面的数据是找到匹配的部分,0x00后面紧接着是匹配的长度,再 接下来是匹配数据在源数据中的位置。详细说明如下
1) 目标数据里面的kp是一个长度为2的数据,该数据没有在源数据里面 找到相同的数据。因此,这部分数据是没法从源数据里面找到匹配的部 分。对于这种数据,写入差异数据时采用以下方法往差异数据里面写 入0xff,接着写入数据长度2,紧接着写入数据本身kp,因此,差异数 据里面的结果是Oxff |2|kp|
2) 目标数据c d o f g是一个长度为5的数据,该数据可以在源数据 中找到相同数据(与源数据的第二个位置开始长度为5的数据相同), 因此,这部分数据是能够在源数据中找到相同数据的部分。对于这种数 据,写入差异数据时采用以下方法往差异数据里面写入0x00,紧接着 写入数据长度5,紧接着写入源数据中相同数据所在的位置1 (第一个 数据的位置为0,第二个数据的位置为l,依次类推),因此,差异数 据里面的结果是0x0015111。
3) 目标数据里面的ml同1)类似,写入的结果是0xffl2lml1
4) 综上,差异数据的结果如图中所示。
权利要求
1、一种数据差异分析方法,其特征在于1)系统中设有专用差异分析算法;2)系统中设有通用差异分析算法;3)保存数据时,选择一种差异分析算法,分析源数据和目标数据的差异,把差异数据提交给存储器;4)使用数据时,合并源数据和差异数据,得到目标数据。
2、 根据权利要求1所述的一种数据差异分析方法,其特征1)系统中设有专用 差异分析算法,对于所述的每一种专用差异分析算法,都有相应的关联特征与 之关联。
3、 根据权利要求2所述的一种数据差异分析方法,其所指的关联特征是指 3a).能够表明数据格式类型的属性;3b). 数据本身的格式信息;3c).3a)和3b)中的其中任意一种或者两种,
4、 根据权利要求1所述的一种数据差异分析方法,其特征1)系统中设有专用 差异分析算法,对于所述的专用差异分析算法,其使用的差异数据格式可以选 择下面二者之一4a).该专用差异分析算法自己定义的专用差异数据格式; 4b).系统统一定义的通用差异lt据格式。
5、 根据权利要求4所述的一种数据差异分析方法,其中4a)该专用差异分析 算法自己定义的专用差异数据格式,其特征在于当差异分析算法使用专用差异 数据格式时,必须提供对应的专用差异合并算法。
6、 根据权利要求1所述的一种数据差异分析方法,其特征在于特征3)保存数 据时,选择一种差异分析算法,分析源数据和目标数据的差异,把差异数据提 交给存储器。对于所述的选择一种差异分析算法,详细步骤如下6a).对于需要分析的lt据,首先根据关联特征查找是否存在专用差异分析算法,如果存在,则选择对应的专用差异分析算法; 6b). 如果不存在,則选择通用差异分析算法。
7、 根据权利要求1所迷的一种数据差异分析方法,其特征4)合并源数据和差 异数据,所述的合并源数据和差异数据,详细步壤如下7a).选择一种差异合并算法;7b).使用差异合并算法分析差异数据和源数据,得到目标数据。
8、根据权利要求7所述的一种数据差异分析方法,其特征在于步骤7a)选择 一种差异合并算法,详细说明如下8a).如果生成差异数据的差异分析算法使用专用差异数据格式,则选择该差异分析算法所提供的专用差异合并算法; 8b).如果生成差异数据的差异分析算法使用通用差异数据格式,則选择 通用的差异数据合并算法。
全文摘要
本发明属于数据压缩领域,具体涉及到一种数据差异分析方法。采用本发明所介绍的方法,系统中同时存在通用差异分析算法和专用差异分析算法;分析数据时,根据关联特征查找是否存在相应的专用差异分析算法,当存在专用差异分析算法时,采用专用差异分析算法来分析数据,当不存在专用差异分析算法时,采用通用差异分析算法来分析数据。
文档编号G06F17/30GK101546319SQ20081010281
公开日2009年9月30日 申请日期2008年3月27日 优先权日2008年3月27日
发明者林兆祥 申请人:林兆祥
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1