专利名称:一种基于用户级文件双向同步的冲突检测方法
技术领域:
本发明涉及文件同步领域,特别是涉及文件双向同步时冲突检测与处理的方法。
背景技术:
目前,移动互联快速发展,智能终端日益普及,一个人可以拥有智能手机、平板电脑、移动PC和台式机等;在不同的终端上工作娱乐已是再常见不过。同时,新技术在提供极大便利的同时,也带给我们信息同步的烦恼。在办公室电脑中收集的资料要和家中电脑的相应文件夹同步,以便随时查看需要的文件内容;在智能手机上记下的想法要和电脑中的笔记本同步;多台电脑的工作文件需要同步。其实,不管有什么样类型的同步需求,都有相应的同步解决方案帮助我们解决文件同步的问题。随着广泛、众多的厂商跟进,文件同步服务作为个人级别的云存储服务,也成为了广大用户信息化时代管理个人数据的一种有效手段。因此,市面上也出现了很多的同步盘或云盘产品。目前市场上出现的主要文件同步产品只是提供文件的上传下载功能,而宣称实时同步功能也只是发生在当文件拖入同步文件夹时,后台服务检测同步文件夹里有新文件后才会自动同步到服务器端。如果我们把同步文件夹做为工作文件夹,在里面进行文档的增加、修改、删除、重命名等操作,现有的冲突检测支持还不能很好的处理类似的问题。因此,针对上述问题,特别需要一种基于用户级文件双向同步的冲突检测机制,以解决上述现有存在的问题。
发明内容
本发明的目的针对现有技术的不足,提供一种基于用户级文件双向同步的冲突检测方法,该方法可以准确判断出文件同步冲突类型,并依据内置冲突类型处理方法提供客户端与服务器端的文件同步,能够在双向文件同步时提供更好的支持与获得更高的用户体验性能。为了实现上述发明目的,本发明所采用技术方案为—种基于用户级文件双向同步的冲突检测方法,它包括如下步骤A.服务器端为每一个客户端都存储用户的文件元数据信息,服务器保存用户最近一次成功更新后的文件的元数据信息,用于在同步时检测冲突的比较数据集,客户端保存用户在本客户机同步文件夹中的文件元数据信息,便于记录客户操作的文件,为同步过程中提供支持;B.文件冲突类型定义,给出完整的冲突向量表,在冲突检测时能够准确确定文件同步过程中引发的冲突类型,为后续文件冲突处理提供支持依据;C.文件冲突处理方案,依据文件冲突类型,提供处理方案,支持同步过程中发生错误时的纠错机制,维护系统的灵活性、健壮性和交互性;D.用户可以在多个客户端登入取得与服务器的联系,同一时刻只能有一个客户端与服务端同步,客户端监测用户的操作步骤,发送经处理后操作条目系列至服务器端,接收到操作条目系列的服务器执行冲突检测,完成用户文件的同步。一方面,文件元数据条目里包含文件全局标识字段、控制字段和信息字段,用于作为支持检测过程中冲突检测系统快速判断同步过程是否发生冲突的依据,简化服务器端冲突检测的压力,其中控制字段是核心判断冲突的依据。文件元数据由七元组FID、FUSER、FPATH、FTYPE、FSIZE、FHME 和 FVERSION 构成,记录详细的文件信息,用于作为支持完整的冲突检测时的依据。另一方面,文件全局标识字段是在该文件被首次同步到服务器时由服务器指定,控制字段是在文件被首次同步至服务器时设定初始值,其后在每次同步中当服务器端文件内容发生修改时,控制字段也随之变化。再者,操作条目由三元组构成,包括文件全局标识、命令字段和参数字段,其中操作条目是客户端产生发送至服务器处理的命令。依据文件的四种操作新建、删除、修改、重命名,本地文件与服务器端文件发生冲突的八种类型分别是文件命名冲突、修改-删除冲突、修改-重命名冲突、修改-修改冲突、删除-修改冲突、重命名-删除冲突、重命名-修改冲突和重命名-重命名冲突。八种冲突的处理方案为I)文件命名冲突,告知用户在服务器端该文件名已被占用,提示用户更换相应文件名;2)修改-删除冲突,告知用户在服务器端该文件已经删除,提示用户在服务器端新建该文件,或是删除本地文件;3)修改-重命名冲突,告知用户在服务器端该文件被重命名,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个,或是合并修改与重命名操作;4)修改-修改冲突,告知用户在服务器端该文件被修改并显示详细冲突文件信息,提示用户在服务器端保留两个文件,或是保留其中一个,或是合并修改与重命名操作;5)删除-修改冲突,告知用户在服务器端该文件被修改,提示用户在服务器端确删除该文件,或是放弃删除操作;6)重命名-删除冲突,告知用户在服务器端该文件已经删除,提示用户在服务器端新建该文件,或是删除本地文件;7)重命名-修改冲突,告知用户在服务器端该文件被修改,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个,或是合并修改与重命名操作;8)重命名-重命名冲突,告知用户在服务器端该文件名已更改,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个。客户端与服务器取得联系,即客户端发起文件同步操作,服务接收文件同步请求并处理在同步过程中产生的冲突,所述步骤D包括如下步骤E.客户端后台服务监控用户的操作,经处理后发送操条目作系列至服务器;F.服务器收到客户端发送的操作条目后执行冲突检测;G.服务器依据冲突检测返回的冲突类型,处理客户端与服务器的文件同步操作。进一步服务器检测同步过程产生的文件冲突需要进行一系列的操作,即所述步骤F进一步包括如下步骤a)冲突检测系统依次提取操作条目的命令字段,文件全局标识字段,参数字段;
5
b)冲突检测系统读取服务器上用户所有文件的元数据信息;c)冲突检测系统负责比对、审核用户的文件同步操作是否有冲突;d)如果没有文件同步冲突,则直接进行用户客户端与服务器端的文件同步操作;e)如果有文件同步冲突,返回文件同步冲突类型。
图I是本发明文件同步冲突检测方法的框架图。图2是本发明文件同步冲突检测方法的流程示意图。图3是客户端发起的创建文件的同步检测流程图。图4是客户端发起的修改文件的同步检测流程图。图5是客户端发起的删除文件的同步检测流程图。图6是客户端发起的重命名文件的同步检测流程图。
具体实施例方式本发明的目的在于提供一种基于用户级文件双向同步的冲突检测方法,针对现有技术的不足,能够在双向文件同步时提供更好的支持与获得更高的用户体验性能。下面结合附图,通过最佳实施例,对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。如图I所示,本发明一种基于用户级文件双向同步的冲突检测方法100,它包括如下几个步骤A.服务器端与每一个客户端都存储用户的文件元数据信息200,服务器保存用户最近一次成功更新后的文件的元数据信息,用于在同步时检测冲突的比较数据集,客户端保存用户在本客户机同步文件夹中的文件元数据信息,便于记录客户操作的文件,为同步过程中提供支持;B.文件冲突类型定义300,给出完整的冲突向量表,在冲突检测时能够准确确定文件同步过程中引发的冲突类型,为后续文件冲突处理提供支持依据;C.文件冲突处理方案400,依据文件冲突类型300,提供处理方案,支持同步过程中发生错误时的纠错机制,维护系统的灵活性、健壮性和交互性;D.用户可以在多个客户端登入取得与服务器的联系,但是同一时刻只能有一个客户端与服务端同步,客户端监测用户的操作步骤,发送经处理后操作条目系列至服务器端,接收到操作系列的服务器执行冲突检测,完成用户文件的同步,这一系列的过程都由文件同步协议500来控制。一方面,文件元数据条目里包含文件全局标识字段、控制字段和信息字段,支持检测过程中冲突检测系统快速判断同步过程是否发生冲突的依据,简化服务器端冲突检测的压力,其中控制字段是核心判断冲突的依据。另一方面,文件全局标识字段文件是在该文件被首次同步到服务器时由服务器指定,控制字段是在文件被首次同步至服务器时设为初始值,其后在每次同步中当服务器端文件内容发生修改时,控制字段也随之变化。再者,操作条目由三元组构成,包括文件全局标识、命令字段和参数字段,其中操作条目是客户端产生发送至服务器处理的命令。依据文件的四种操作新建、删除、修改、重命名,给出本地文件与服务器端文件发生冲突的八种类型,分别是文件命名冲突、修改-删除冲突、修改-重命名冲突、修改-修改冲突、删除-修改冲突、重命名-删除冲突、重命名-修改冲突和重命名-重命名冲突。进一步包括如下八种冲突的处理方案I)文件命名冲突,告知用户在服务器端该文件名已被占用,提示用户更换相应文件名;2)修改-删除冲突,告知用户在服务器端该文件已经删除,提示用户在服务器端新建该文件,或是删除本地文件;3)修改-重命名冲突,告知用户在服务器端该文件被重命名,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个,或是合并修改与重命名操作;4)修改-修改冲突,告知用户在服务器端该文件被修改并显示详细冲突文件信息,提示用户在服务器端保留两个文件,或是保留其中一个,或是合并修改与重命名操作;5)删除-修改冲突,告知用户在服务器端该文件被修改,提示用户在服务器端确删除该文件,或是放弃删除操作;6)重命名-删除冲突,告知用户在服务器端该文件已经删除,提示用户在服务器端新建该文件,或是删除本地文件;7)重命名-修改冲突,告知用户在服务器端该文件被修改,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个,或是合并修改与重命名操作;8)重命名-重命名冲突,告知用户在服务器端该文件名已更改,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个。客户端与服务器取得联系,即客户端发起文件同步操作,服务接收文件同步请求并处理在同步过程中产生的冲突,完成文件的同步操作,使得客户端与服务器端的文件信息保持一致,参照图2,是本发明文件同步冲突检测方法的流程示意图,包括如下步骤步骤S210 :客户端后台服务监控用户的操作,经处理后发送操作条目系列至服务器,请求文件同步操作;步骤S220 服务器收到客户端发送的操作条目后执行冲突检测;步骤S230至S240 :冲突检测单元分析同步操作命令,依次提取操作条目的命令字段,文件全局标识字段,参数字段;之后依据操作命令分析结果读取服务器上用户所有文件的元数据信息,然后比对、审核用户的文件同步操作是否有冲突,返回冲突检测结果;步骤S250 :依据冲突检测返回的结果,判断是否有冲突产生;若没有文件冲突,则进入步骤S261,执行文件同步操作,更新客户端与服务端的文件信息;若有文件冲突,则进图步骤S260执行冲突处理;步骤S260至S270 :执行确定的冲突处理方案,完成文件同步请求操作,更新客户端与服务端的文件信息。现以客户端发起的创建文件同步请求操作为例,说明本发明文件同步冲突检测方法的工作流程,以及详细步骤。参照图3,具体步骤如下所述步骤S310 :客户端发送新建文件同步操条目至服务器,请求创建文件;步骤S320 服务器收到客户端发送的操作条目后执行冲突检测;检测在服务器上是否有同名文件,若已经存在同名文件,产生文件命名冲突,进入步骤S331 ;若未有文件同名,则进入步骤S330 ;步骤S330至S340 由服务器为该文件产生一个唯一标识符,即文件全局标识,并同时初始化控制字的值,更新服务端文件元数据表信息。服务器端与客户端各维护一个当前文件夹的视图,该视图由当前同步文件夹中的文件元数据组成;步骤S331和S350 :产生文件命名冲突,服务器调出文件命名冲突处理方案,完成冲突处理,继续新建文件同步操作。下面以客户端发起的修改文件同步请求操作为例,说明本发明文件同步冲突检测方法的工作流程,以及详细步骤。参照图4,具体步骤如下所述步骤S410 :客户端发送修改文件同步操条目至服务器,请求修改文件;步骤S420至S430 服务器收到客户端发送的操作条目后执行冲突检测;读取服务器端文件元数据信息,提取修改命令条目里的文件全局标识,若文件全局标识不存在,则产生修改-删除冲突,进入步骤S441 ;否则,进入步骤S440 ;步骤S440 :服务器继续检测文件名是否相同,若文件全局标识存在但是文件名不同,则产生修改-重命名冲突,进入步骤S451 ;否则,进入步骤S450 ;步骤S450 :通过控制字段服务器继续检测文件内容是否有修改,若文件内容不一样,则产生修改-修改冲突,进入步骤S461 ;否则,进入步骤S460 ;步骤S460 :没有检测到冲突,直接上传文件至服务器,覆盖原来的内容;步骤S441、S451和S461 :抛出文件冲突,等待进一步处理;步骤S470至S480 :依据产生的冲突,执行确定的冲突处理方案,完成文件同步请求操作,更新客户端与服务端的文件信息。下面以客户端发起的删除文件同步请求操作为例,说明本发明文件同步冲突检测方法的工作流程,以及详细步骤。参照图5,具体步骤如下所述步骤S510 :客户端发送删除文件同步操条目至服务器,请求删除文件;步骤S520至S530 服务器收到客户端发送的操作条目后执行冲突检测;读取服务器端文件元数据信息,提取删除命令条目里的文件全局标识,若文件全局标识不存在,进入步骤S541,因服务器没有该文件,即不执行删除操作;否则,进入步骤S540 ;步骤S540 :通过控制字段服务器继续检测文件内容是否有修改,若文件内容不一样产生删除-修改冲突,进入步骤S551 ;否则,进入步骤S550 ;步骤S550 :没有检测到冲突,直接删除服务器上有关该文件的信息;步骤S551 :抛出文件冲突,等待进一步处理;和S560至S570 :依据产生的冲突,执行确定的冲突处理方案,完成文件同步请求操作,更新客户端与服务端的文件信息。下面以客户端发起的重命名文件同步请求操作为例,说明本发明文件同步冲突检测方法的工作流程,以及详细步骤。参照图6,具体步骤如下所述步骤S610 :客户端发送重命名文件同步操条目至服务器,请求重命名文件;步骤S620至S630 服务器收到客户端发送的操作条目后执行冲突检测;读取服务器端文件元数据信息,提取重命名命令条目里的文件全局标识,若文件全局标识不存在,则产生重命名-删除冲突,进入步骤S641 ;否则,进入步骤S640 ;
步骤S640 :服务器继续检测文件名是否相同,若文件全局标识存在但是文件名不同,则产生重命名-重命名冲突,进入步骤S651 ;否则,进入步骤S650 ;步骤S650 :通过控制字段服务器继续检测文件内容是否有修改,若文件内容不一样,则产生重命名-修改冲突,进入步骤S661 ;否则,进入步骤S660 ;步骤S660 :没有检测到冲突,修改服务器上该文件的文件名为新的文件名;步骤S641、S651和S661 :抛出文件冲突,等待进一步处理;步骤S670至S680 :依据产生的冲突,执行确定的冲突处理方案,完成文件同步请求操作,更新客户端与服务端的文件信息;以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书及其等效物界定。
权利要求
1.一种基于用户级文件双向同步的冲突检测方法,其特征是,它包括如下步骤A.服务器端为每一个客户端都存储用户的文件元数据信息,服务器保存用户最近一次成功更新后的文件的元数据信息,用于在同步时检测冲突的比较数据集,客户端保存用户在本客户机同步文件夹中的文件元数据信息,便于记录客户操作的文件,为同步过程中提供支持;B.文件冲突类型定义,给出完整的冲突向量表,在冲突检测时能够准确的确定文件同步过程中引发的冲突类型,为后续文件冲突处理提供支持依据;C.文件冲突处理方案,依据文件冲突类型,提供处理方案,支持同步过程中发生错误时的纠错机制,维护系统的灵活性、健壮性和交互性;D.用户可以在多个客户端登入取得与服务器的联系,同一时刻只能有一个客户端与服务端同步,客户端监测用户的操作步骤,发送经处理后操作条目系列至服务器端,接收到操作条目系列的服务器执行冲突检测,完成用户文件的同步。
2.根据权利要求I所述的基于用户级文件双向同步的冲突检测方法,其特征是,在文件元数据条目里包含文件全局标识字段、控制字段和信息字段,用于作为支持检测过程中冲突检测系统快速判断同步过程是否发生冲突的依据,简化服务器端冲突检测的压力,其中控制字段是核心判断冲突的依据。
3.根据权利要求2所述基于用户级文件双向同步的冲突检测方法,其特征是,文件元数据由七元组FID、FUSER、FPATH、FTYPE、FSIZE、FHME和FVERSI0N构成,记录详细的文件信息,用于作为支持完整的冲突检测时的依据。
4.根据权利要求2所述的基于用户级文件双向同步的冲突检测方法,其特征是,文件全局标识字段是在该文件被首次同步到服务器时由服务器指定,控制字段是在文件被首次同步至服务器时设定初始值,其后在每次同步中当服务器端文件内容发生修改时,控制字段也随之变化。
5.根据权利要求I所述的基于用户级文件双向同步的冲突检测方法,其特征是,操作条目由三元组构成,包括文件全局标识、命令字段和参数字段,其中操作条目是客户端产生发送至服务器处理的命令。
6.根据权利要求I所述的基于用户级文件双向同步的冲突检测方法,其特征是,本地文件与服务器端文件发生冲突的八种类型分别是文件命名冲突、修改-删除冲突、修改-重命名冲突、修改-修改冲突、删除-修改冲突、重命名-删除冲突、重命名-修改冲突和重命名-重命名冲突。
7.根据权利要求6所述的基于用户级文件双向同步的冲突检测方法,其特征是,八种冲突的处理方案为1)文件命名冲突,告知用户在服务器端该文件名已被占用,提示用户更换相应文件名;2)修改-删除冲突,告知用户在服务器端该文件已经删除,提示用户在服务器端新建该文件,或是删除本地文件;3)修改-重命名冲突,告知用户在服务器端该文件被重命名,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个,或是合并修改与重命名操作;4)修改-修改冲突,告知用户在服务器端该文件被修改并显示详细冲突文件信息,提示用户在服务器端保留两个文件,或是保留其中一个,或是合并修改与重命名操作;·5)删除-修改冲突,告知用户在服务器端该文件被修改,提示用户在服务器端确删除该文件,或是放弃删除操作;6)重命名-删除冲突,告知用户在服务器端该文件已经删除,提示用户在服务器端新建该文件,或是删除本地文件;7)重命名-修改冲突,告知用户在服务器端该文件被修改,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个,或是合并修改与重命名操作;8)重命名-重命名冲突,告知用户在服务器端该文件名已更改,提示用户上传本地文件为新文件,或是保留两个文件中的其中一个。
8.根据权利要求I所述的基于用户级文件双向同步的冲突检测方法,其特征是,所述步骤D包括如下步骤E.客户端后台服务监控用户的操作,经处理后发送操条目作系列至服务器;F.服务器收到客户端发送的操作条目后执行冲突检测;G.服务器依据冲突检测返回的冲突类型,处理客户端与服务器的文件同步操作。
9.根据权利要求8所述的基于用户级文件双向同步的冲突检测方法,其特征是,所述步骤F包括如下步骤a)冲突检测系统依次提取操作条目的命令字段,文件全局标识字段,参数字段;b)冲突检测系统读取服务器上用户所有文件的元数据信息;c)冲突检测系统负责比对、审核用户的文件同步操作是否有冲突;d)如果没有文件同步冲突,则直接进行用户客户端与服务器端的文件同步操作;e)如果有文件同步冲突,返回确定文件同步冲突类型。
全文摘要
一种基于用户级文件双向同步的冲突检测方法。该方法包括如下几个步骤文件元数据重新定义及元数据存储位置的变化;文件同步冲突类型定义,涵盖了基本操作所产生的冲突类型;给出了对应文件冲突类型的处理方案;给出了处理文件同步冲突检测的过程。应用本发明方案,可以在客户端与服务器文件操作同步之前先进行文件操作的冲突检测,可以准确判断出文件同步冲突类型,并依据内置冲突类型处理支持机制提供客户端与服务器端的文件同步。
文档编号H04L29/08GK102945260SQ20121039888
公开日2013年2月27日 申请日期2012年10月18日 优先权日2012年10月18日
发明者雷州, 周哲博, 毕延岭, 向劲锋, 王菊姝, 张旻, 周亚军 申请人:江苏南开之星软件技术有限公司