书签 分享 收藏 举报 版权申诉 / 15

一种数据同步的方法和系统.pdf

  • 上传人:b***
  • 文档编号:1097829
  • 上传时间:2018-03-31
  • 格式:PDF
  • 页数:15
  • 大小:807.45KB
  • 摘要
    申请专利号:

    CN200810104507.6

    申请日:

    2008.04.21

    公开号:

    CN101567858A

    公开日:

    2009.10.28

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效|||公开

    IPC分类号:

    H04L12/58; H04L29/06

    主分类号:

    H04L12/58

    申请人:

    联想(北京)有限公司

    发明人:

    叶帅民; 高 锋

    地址:

    100085北京市海淀区上地信息产业基地创业路6号

    优先权:

    专利代理机构:

    北京银龙知识产权代理有限公司

    代理人:

    许 静

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供一种数据同步的方法和系统,其中方法包括:接收同步命令;生成第一原始同步策略,第一原始同步策略至少包含第一文件指纹;接收第二文件指纹,第二文件指纹包含在第二原始同步策略中;比较第一文件指纹和第二文件指纹是否相同;如果相同,应用预定的策略变换规则对第一原始同步策略和/或所述第二原始同步策略进行修改,生成第一修正同步策略和/或第二修正同步策略;根据第一修正同步策略和/或所述第二修正同步策略进行数据同步。应用本发明优选实施例所提供的技术,一旦文件指纹相同的文件的文件名或者位置发生改变,不再需要经过网络进行同步,而是在设备内部进行文件的修改,极大的减轻了网络的负担,提高了同步效率。

    权利要求书

    1.  一种数据同步方法,其特征在于,
    接收同步命令;
    生成第一原始同步策略,所述第一原始同步策略至少包含第一文件指纹;
    接收第二文件指纹,所述第二文件指纹包含在第二原始同步策略中;
    比较所述第一文件指纹和所述第二文件指纹是否相同;
    如果相同,应用预定的策略变换规则对所述第一原始同步策略和/或所述第二原始同步策略进行修改,生成第一修正同步策略和/或第二修正同步策略;根据所述第一修正同步策略和/或所述第二修正同步策略进行数据同步。

    2.
      根据权利要求1所述的方法,其特征在于,所述第一原始同步策略和所述第二原始同步策略,以及所述第一修正同步策略和所述第二修正同步策略所包含的内容均相同,并至少包括:
    源路径、目标路径、相对路径、源文件名、目标文件名、策略类型、源文件修改时间和所述文件指纹。

    3.
      根据权利要求2所述的方法,其特征在于,所述接收同步命令之后,还包括:
    对参与所述数据同步的同步设备的同步根路径下的文件列表中的每一个待同步文件,生成所述第一原始同步策略和所述第二原始同步策略。

    4.
      根据权利要求3所述的方法,其特征在于,所述数据同步的过程包括远程同步方式和本地同步方式;
    所述生成所述第一原始同步策略和所述第二原始同步策略具体包括:
    根据所述同步方式和/或所述源文件修改时间分别生成所述第一原始同步策略和所述第二原始同步策略。

    5.
      根据权利要求2所述的方法,其特征在于,所述应用预定的策略变换规则对所述第一原始同步策略和/或所述第二原始同步策略进行修改具体包括:
    如果所述第一原始同步策略和第二原始同步策略中的所述策略类型均是:从源路径新增到目标路径;则根据所述源文件修改时间和/或所述相对路径生成所述策略变换规则;
    如果所述第一原始同步策略和第二原始同步策略中的所述策略类型分别是:所述从源路径新增到目标路径,删除源路径的文件;则根据所述源文件修改时间生成所述策略变换规则。

    6.
      根据权利要求5所述的方法,其特征在于,所述源文件修改时间最新的待同步文件生成的同步策略是第一原始同步策略;所述根据所述源文件修改时间和/或所述相对路径生成所述策略变换规则具体包括:
    所述源文件修改时间不相同,所述相对路径相同,且所述待同步文件的文件名不同,重新计算所述文件指纹:
    如果所述文件指纹不相同则不生成所述策略变换规则;
    如果所述文件指纹相同,所述策略变换规则是:
    删除所述第一原始同步策略,
    将所述第二原始同步策略修改为所述第二修正同步策略具体包括,目标路径更改为所述第二原始同步策略的所述源路径,所述目标文件名更新为所述第一原始同步策略的所述源文件名,设置所述策略类型为将源路径下文件的文件名复制到目标路径下文件的文件名,以及所述源文件修改时间修改为最新修改时间;

    7.
      根据权利要求5所述的方法,其特征在于,所述源文件修改时间最新的所述待同步文件生成的同步策略是第一原始同步策略;所述根据所述源文件修改时间和/或所述相对路径生成所述策略变换规则具体包括:
    所述源文件修改时间不相同,且所述相对路径不相同,重新计算所述文件指纹:
    如果所述文件指纹不相同则不生成所述策略变换规则;
    如果所述文件指纹相同,所述第一原始同步策略和所述第二原始同步策略的所述目标路径和所述目标文件名互换,
    设置所述第二同步策略的所述策略类型为所述从源路径新增到目标路径,以及所述源文件修改时间修改为最新修改时间。

    8.
      根据权利要求5所述的方法,其特征在于,所述根据所述源文件修改时间和/或所述相对路径生成所述策略变换规则具体包括:所述源文件修改时间相同,则任意指定一个同步策略为所述第一原始同步策略,另一个所述同步策略为所述第二原始同步策略;
    所述相对路径相同,且待同步文件的文件名不同,则提示输入所述文件名,所述第一原始同步策略的所述目标路径修改为该第一原始同步策略的所述源路径,设置所述第一原始同步策略的所述策略类型为将源路径下文件的文件名复制到目标路径下文件的文件名;
    所述第二原始同步策略的所述目标路径修改为该第二原始同步策略的所述源路径,设置所述第一原始同步策略的所述策略类型为将源路径下文件的文件名复制到目标路径下文件的文件名;
    所述相对路径不相同,则所述第一原始同步策略和所述第二原始同步策略的所述目标路径互换,所述目标文件名互换。

    9.
      根据权利要求5所述的方法,其特征在于,所述策略类型为所述从源路径新增到目标路径的同步策略对应的待同步文件生成的所述同步策略是第一原始同步策略;所述策略类型为所述删除源路径的文件的所述同步策略对应的所述待同步文件生成的所述同步策略是第二原始同步策略;则所述根据所述源文件修改时间和/或所述相对路径生成所述策略变换规则具体包括:
    所述源文件修改时间不相同,则删除第二原始同步策略,
    第一原始同步策略中,源文件名改为所述第二原始同步策略的目标文件名,源路径改为所述第二同步策略的目标路径,设置所述策略类型为移动源路径下的文件到目标路径下,以及所述源文件修改时间修改为最新修改时间;
    所述源文件修改时间相同:则所述第一原始同步策略中,所述源文件名改为所述第二原始同步策略中所述目标文件名,所述源路径改为所述第二原始同步策略的目标路径,且设置所述策略类型为所述移动源路径下的文件到目标路径下。

    10.
      一种数据同步系统,其特征在于,
    本地同步控制器,用于根据待同步文件生成原始同步策略,并对所述原始同步策略中的文件指纹相同的所述原始同步策略应用策略变换规则进行修改,生成修正同步策略;
    第二同步设备,用于与所述本地同步控制器建立连接,提供位于该第二同步设备上的所述待同步文件的信息;
    根据所述修正同步策略进行数据同步,使得禁止在所述本地同步控制器和所述第二同步设备之间传输所述待同步文件。

    11.
      根据权利要求10所述的系统,其特征在于,所述第二同步设备是从设备;
    所述本地同步控制器包括:
    同步连接模块,用于通过本地驱动器或者网络共享路径访问该从设备中所述待同步文件的信息;
    同步分析模块,用于对所述待同步文件生成所述原始同步策略;
    指纹识别模块,用于生成所述原始同步策略中的文件指纹,并对所述原始同步策略应用策略变换规则;
    文件同步模块,用于根据应用所述策略变换规则后的所述修正同步策略执行所述数据同步。

    12.
      根据权利要求11所述的系统,其特征在于,所述第二同步设备是远程同步控制器,所述远程同步控制器上的所述待同步文件是远程待同步文件,包括:
    同步代理模块,用于连接所述同步分析模块,向所述同步分析模块发送所述远程待同步文件的列表;还用于与所述文件同步模块连接,在同步过程中发送所述远程待同步文件,并接收来自所述本地同步控制器的所述待同步文件。

    说明书

    一种数据同步的方法和系统
    技术领域
    本发明涉及不同设备之间的数据交互,特别是指一种数据同步的方法和系统。
    背景技术
    在多个设备之间,或者本地设备和远程网络设备之间,人们经常要进行文件的同步或者备份,比如:公司两台计算机之间的文件同步,公司笔记本和家庭计算机之间的文件同步,个人计算机和远程数据备份中心之间的文件同步,以及个人计算机和网络硬盘的文件同步。
    目前有很多技术方案都可以解决这些同步问题,例如,通过在同步源建立文件变化信息表,在同步目标建立同步规则和同步记录表,两者连接后就可以自动把同步源的变化同步到同步目标上;或者,在本地设备和远程网络设备之间,通过递归对比文件的属性信息进行文件和目录的同步;或者通过对比文件摘要信息表的变化进行文件同步。
    但是无论采用上述哪一种技术,一旦文件名或者位置发生改变,就会被认为是一个新的同步项,并首先在同步目标上删除文件,然后从同步源复制被改名或者移动的文件到同步目标,这会导致在进行同步的设备之间进行多次文件传输,特别是对于大量的大文件之间的同步,同步效率会很低。
    发明内容
    本发明的目的是提供一种数据同步的方法和系统,用于解决现有技术中,一旦文件名或者位置发生改变,需要多次同步传输,降低同步效率的缺陷。
    一种数据同步方法,接收同步命令;生成第一原始同步策略,所述第一原始同步策略至少包含第一文件指纹;接收第二文件指纹,所述第二文件指纹包含在第二原始同步策略中;比较所述第一文件指纹和所述第二文件指纹是否相同;如果相同,应用预定的策略变换规则对所述第一原始同步策略和/或所述第二原始同步策略进行修改,生成第一修正同步策略和/或第二修正同步策略;根据所述第一修正同步策略和/或所述第二修正同步策略进行数据同步。
    一种数据同步系统,本地同步控制器,用于根据待同步文件生成原始同步策略,并对所述原始同步策略中的文件指纹相同的所述原始同步策略应用策略变换规则进行修改,生成修正同步策略;第二同步设备,用于与所述本地同步控制器建立连接,提供位于该第二同步设备上的所述待同步文件的信息;根据所述修正同步策略进行数据同步,使得禁止在所述本地同步控制器和所述第二同步设备之间传输所述待同步文件。
    应用本发明优选实施例所提供的技术,无论在本地同步的双向同步或者单向同步中,还是在远程同步的双向同步或者单向同步中,一旦文件指纹相同的文件的文件名或者位置发生改变,不再需要经过网络进行同步传输,而是在设备内部进行文件的修改,极大的减轻了网络的负担,提高了同步效率。
    附图说明
    图1为本发明优选实施例各个设备与控制器之间的整体同步关系示意图;
    图2为本发明优选实施例本地同步控制器与远程同步控制器之间同步示意图。
    具体实施方式
    为使本发明的目的、技术特征和实施效果更加清楚,下面将结合附图对本发明的优选实施例进行详细描述。
    本发明提供的技术方案可以应用在本地同步和远程同步过程中;如图1所示,其中:
    本地同步是指只在一台电子设备上运行同步程序,该设备是主设备,另外一台不运行同步程序的电子设备是从设备,该从设备上的待同步文件可以被主设备通过本地驱动器或者网络共享路径的方式访问到。
    远程同步是指主设备作为本地设备,和远程设备之间通过网络进行的同步,除了主设备需要运行同步程序外,远程设备也需要运行同步程序。由图1可以看出,远程设备作为远程同步控制器101,可以是一台服务器或者计算机;主设备作为本地同步控制器102可以是一台电脑;从设备则可以是电脑、掌上电脑、本地目录或者USB存储设备。
    其中,本地同步控制器102的内部结构如图2所示,包括:同步连接模块、同步分析模块、指纹识别模块和文件同步模块;
    同步连接模块,用于根据预定的相应协议与远程同步控制器101建立同步连接;并且用于根据预定的相应协议与本地从设备103建立同步连接。
    同步分析模块,用于在建立所述同步连接之后,将本地各个路径下的文件与位于远程同步控制器101或者本地从设备103中对应路径下的文件进行对比,并初步确定需要进行同步的各个待同步文件。
    指纹识别模块,用于将本地特定路径下的待同步文件的文件指纹与远程同步控制器101或者本地从设备103中对应路径下的待同步文件的文件指纹进行对比,根据对比的结果判断是否需要进行两个待同步文件之间的同步。
    文件同步模块,用于对需要进行同步的待同步文件,按照本发明所提供的同步信息制定同步策略,并进行数据同步。
    远程同步控制器101的内部结构如图2所示,包括:同步代理(Agent)模块、文件远程同步模块;
    同步Agent模块,用于连接位于所述本地同步控制器102的同步分析模块,接收来自该模块的请求信息,并提供远程同步控制器101中各个文件的文件列表和计算远程待同步文件的文件指纹;还用于连接位于所述本地同步控制器102的文件同步模块,提供指定的远程待同步文件,接收文件同步模块传送来的文件,并根据本发明提供的策略变换规则来删除对远程待同步文件的某些同步策略。
    文件远程同步模块,用于与本地同步控制器102中的文件同步模块配合,按照本发明所提供的同步策略进行文件之间的数据同步。
    其中,指纹识别模块中用到的文件指纹实质上是将文件中的内容通过摘要算法而生成的数据摘要;通常采用哈希算法作为摘要算法;需要说明的是,由于文件指纹是用于辨别文件是否被修改过的一个技术,也可以使用文件水印或者其他的技术实现。
    本发明选择一个优选实施例描述文件指纹的生成过程,取一个待同步文件的三部分不同的内容C1、C2和C3,然后根据这些内容生成一个文件指纹,具体过程包括:
    步骤301.获取待同步文件的长度大小L;
    步骤302.截取待同步文件的起始内容C1到S;
    由于需要保证截取待同步文件的三段内容必须是各不相同的,因此就要保证C1、C2和C3是位于待同步文件不同位置的内容,本优选实施例中:
    起始内容C1是,从待同步文件开头读取长度为Min(L/3,SL)的内容,其中SL为预设的读取长度。
    步骤303.截取待同步文件的中间内容C2到M;
    中间内容C2是,读取起始位置为L/3-Min(L/3,SL)/2,读取长度为Min(L/3,SL),其中SL为预设的读取长度。
    步骤304.截取待同步文件的最后内容C3到E;
    最后内容C3是,读取起始位置为L-Min(L/3,SL),读取长度为Min(L/3,SL),其中SL为预设的读取长度。
    步骤305.由L、S、M和E通过摘要算法生成文件指纹,或者文件水印等能够唯一识别该文件的数据摘要。
    在生成文件指纹之后,以下以本地同步的数据同步过程描述本地同步控制器102与本地从设备103之间的文件同步工作原理:本地同步控制器102中的同步连接模块,用于与本地从设备103建立连接,同步连接模块指定两个同步设备的同步根路径D1和D2;指定同步方式。所述同步方式分为双向同步和单向同步;在双向同步中,本地同步控制器102与本地从设备103均要更新各自的文件,更新之后,两个设备中文件指纹一致的文件的文件名、文件绝对路径一致;在单向同步中,只有本地从设备103或者本地同步控制器102中的一个设备更新设备上的待同步文件,更新之后,该设备包含另一设备中对应路径下的所有文件。
    同步分析模块用于,以两个根路径D1、D2为起点,逐层对比两个路根径下的文件列表,生成由多条同步策略组成的同步策略表,同步策略表中每一条同步策略的内容至少包括:源路径SPath、目标路径DPath、相对路径RPath、源文件名SFile、目标文件名DFile、同步策略类型SType、源文件修改时间FDate和文件指纹FFP。
    其中,同步策略的类型SType包括:
    A-从源路径新增到目标路径;
    U-从源路径更新到目标路径;
    D-删除源路径的文件;
    R-将源路径下文件的文件名复制到目标路径下文件的文件名;
    M-移动源路径下的文件到目标路径下;
    T-把文件的修改时间设置为FDate的时间,该FDate的时间是最新的FDate值,即也可以表述为:源文件修改时间修改为最新修改时间。
    生成同步策略的具体过程描述如下,其中,同步源上生成的同步策略是第一原始同步策略,同步目标上生成的同步策略是第二原始同步策略;对所述第一原始同步策略修改之后生成第一修正同步策略,对所述第二原始同步策略修改之后生成第二修正同步策略:
    类型1:本地同步控制器102中存在一个文件A,本地从设备103中存在一个文件B;并且,文件A和文件B的文件名相同,FDate不同,则FDate最新的文件所在路径是同步源,另外一个文件所在路径是同步目标,并分以下两种情形生成同步策略:
    a).选择双向同步;
    b).选择单向同步,且FDate最新的文件位于单向同步的同步源;
    针对a).和b).的情形,则,FDate最新的文件所在路径是同步源,另外一个文件所在路径是同步目标,其中SPath取同步源的同步根路径,DPath是取同步目标的同步根路径,RPath取当前对比的相对路径,SFile为同步源文件名,DFile是取同步目标文件名;
    据此生成的同步策略中,SType是U,FDate和FFP置空;
    类型2:待同步文件只在一台设备中存在,例如只在本地同步控制器102或者本地从设备103中存在,分以下两种情形生成同步策略:
    c).双向同步;采用现有通用的同步策略即可;
    d).单向同步,且待同步文件在单向同步的同步源上;
    则,以待同步文件所在路径为同步源,另外一个为同步目标,生成同步策略:
    生成的同步策略中,SType为A,其它属性依据当前相对路径RPath及文件设定;考虑到如果待同步文件如果是小文件,即使同步也不会增加网络传输的负担,因此,可以设定如果所述待同步文件的长度大于预设的阈值,则计算FFP,否则为空,。
    e).单向同步,且文件不在单向同步的同步源上;
    以该文件所在路径为同步目标,另外一个为同步源生成一条同步策略:
    生成的同步策略中,SType为D,SFile为空,DFile为当前文件名,FDate为空且FFP为空。
    根据类型1和类型2中的同步策略生成规则a).至e).生成对应的同步策略之后,需要应用指纹识别模块来对各个文件的同步策略中的文件指纹进行比对,并根据文件指纹比对的结果对同步策略作以下策略变换:
    对于文件指纹不相同的两个文件,不进行策略变换,按照已经生成的同步策略进行同步。
    如果文件指纹相同,则对于策略类型都是A的第一原始同步策略和第二原始同步策略,进行策略变换,其中,第一原始同步策略和第二原始同步策略是在同步源和同步目标之间形成的同步策略;
    具体包括四条策略变换规则:策略变换规则1至策略变换规则4:
    策略变换规则1.FDate不相同,不失一般性,第一原始同步策略中的FDate最新,相对路径RPath相同,文件名不同;
    选择SL=L/3重新计算文件指纹,如果不相同,则不作策略变换;
    如果选择SL=L/3重新计算文件指纹,且相同,则把第二原始同步策略中DFile更新为第一原始同步策略的SFile,DPath更新为和第二原始同步策略中的SPath一样,SType更新为R&T,FDate更新为第一原始同步策略的FDate,同时删除第一原始同步策略。
    策略变换规则2.FDate不相同,不失一般性,第一原始同步策略中的FDate最新,相对路径RPath不相同;
    选择SL=L/3重新计算文件指纹,如果不相同,则不做任何策略变换。
    选择SL=L/3重新计算文件指纹,如果相同,则把第一原始同步策略,第二原始同步策略的DPath值互换,DFile值互换,第二原始同步策略的SType更新为A&T,第二原始同步策略的FDate更新为第一原始同步策略的FDate。
    策略变换规则3.两个第一原始同步策略和第二原始同步策略的FDate是一样的,相对路径RPath相同,文件名不同,则,
    提示用户选择一个文件名UFile,然后更新第一原始同步策略和第二原始同步策略的DPath为SPath的值,DFile为UFile,SType修改为R。
    策略变换规则4.两个第一原始同步策略和第二原始同步策略的FDate是一样的,相对路径不同,则,第一原始同步策略和第二原始同步策略的DPath值互换,DFile值互换。
    以上描述了策略变换规则1至策略变换规则4;如果文件指纹相同,则,对于策略类型SType一个是A,另外一个是D的情况,生成策略变换规则5和策略变换规则6。不失一般性,设定第一原始同步策略的策略类型SType是A,第二原始同步策略的策略类型是D;其中,第一原始同步策略和第二原始同步策略是在同步源和同步目标之间形成的同步策略;
    具体包括两条策略变换规则:
    策略变换规则5:第一原始同步策略和第二原始同步策略的FDate不一样,则生成第一修正同步策略是把第一原始同步策略中SFile更新为第二原始同步策略的DFile,SPath更新为第二原始同步策略的DPath,SType更新为M&T,FDate更新为第一原始同步策略和第二原始同步策略中比较新的FDate,同时删除第二原始同步策略。
    策略变换规则6:第一原始同步策略和第二原始同步策略的FDate一样,则把第一原始同步策略中SFile更新为第二原始同步策略的DFile,SPath更新为第二原始同步策略的DPath,SType更新为M,同时删除第二原始同步策略。
    以上策略变换规则1至策略变换规则6描述了本地同步过程中,在同步策略生成之后,需要对该同步策略进行策略变换的变换规则,经过策略变换之后,文件同步模块依据指纹识别变换后的同步策略进行文件的同步和更新。
    以下描述远程同步过程,远程同步过程和本地同步过程基本相同,差别点如下:
    位于所述本地同步控制器102的同步分析模块需要连接远程同步控制器101中的同步Agent模块,并向同步Agent模块请求下载远程文件的文件列表并计算远程文件的文件指纹;本地同步控制器102与远程同步控制器101之间生成同步策略,然后应用策略变换对所述同步策略进行变换,所应用到的策略变换规则与本地同步中的策略变换规则1至策略变换规则6是对应一致的。
    位于所述本地同步控制器102的文件同步模块连接远程同步控制器101中的同步Agent模块,建立同步连接;在远程同步过程中,根据应用策略变换规则之后的同步策略来下载指定的远程待同步文件,上载本地文件到远程同步控制器101,删除对应的文件。
    如果待同步文件的文件内容较少,占用存储空间较少,则制定同步策略的过程会耗费过多的资源而得不偿失,因此,优选地,可以事先设定一个文件内容大小L的阈值Z,当文件大小L大于该阈值Z时,采用本发明实施例所提供的同步策略,反之,采用同步分析模块原始生成的通用的同步策略。
    应用本发明优选实施例所提供的技术,无论在本地同步的双向同步或者单向同步过程中,还是在远程同步的双向同步或者单向同步过程中,一旦文件指纹相同的文件的文件名或者位置发生改变,不再需要经过网络传输文件的数据进行同步,而是在设备内部进行文件的修改,极大的减轻了网络的负担,提高了同步效率。
    应当说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,所有的参数取值可以根据实际情况调整,且在该权利保护范围内。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。

    关 键  词:
    一种 数据 同步 方法 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种数据同步的方法和系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1097829.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1