一种用户数据同步方法及设备的制作方法

文档序号:7986301阅读:159来源:国知局
一种用户数据同步方法及设备的制作方法
【专利摘要】本发明公开一种用户数据同步方法及设备,该方法包括:服务器接收用户终端发送的数据同步请求消息,其中携带有所述用户终端本地的用户数据的数据版本向量;所述服务器获取本地存储的用户终端的相应用户数据的数据版本向量,并将所述服务器本地存储的所述用户终端的相应用户数据的数据版本向量与所述用户终端发送的数据版本向量相比较,若前者大于后者,则根据两者的差值获取用户数据的修改日志;所述服务器对获取到的修改日志进行合并,并向所述用户终端返回数据同步响应消息,其中携带有合并后的修改日志。本发明的实施例不但节约了用户数据同步传输流量,而且节省了用户终端在执行修改日志操作时的资源耗用,提高用户终端资源利用率。
【专利说明】一种用户数据同步方法及设备
【技术领域】
[0001]本发明涉及通信网络【技术领域】,尤其涉及一种用户数据同步方法及设备。
【背景技术】
[0002]随着云计算技术的发展,各互联网公司纷纷依靠庞大的计算和存储能力,提供个人云服务,将用户数据汇集在云端,构建个人数据中心,个人云服务逐渐成为用户数字生活的核心。在终端与云端的用户数据同步过程中,应用较为广泛的数据同步方法是差量同步,即,只对本次修改的数据记录进行同步。
[0003]现有的用户数据同步方案,采用逻辑时钟来确定更新发生的顺序,每一个更新操作均对应一个向量描述,向量中的元素由系统中的设备构成,初始值为0,每当设备进行数据更新后,均将自己相应的元素加1,以此来保证更新事件的有序性。进行数据向量差异同步过程时,需要将两个设备的版本向量差异找出,并将1呢(日志)全部发给对端设备。例如4、8两终端分别保存对于数据(3 3的版本向量,终端4的版本向量为3〈3,5?,终端8的版本向量为6〈6,1?,终端八和8进行数据向量差异同步过程如图1所示。具体为:
终端八将自己的状态向量发给终端8,终端8将自己的状态向量与获得的终端八状态向量进行比较,获得修改日志,并将修改日志按时间顺序排序后,连同终端8的状态向量一并发送给终端八,即,发送的日志为6〈4,X〉,1X5,X〉和1X6,X〉。终端八按照获得的日志修改本地数据,并将终端8的状态向量与自己的状态向量进行比较,获得修改日志,并发送给终端8,即,发送的日志为XX,2?,XX,3?,XX,4?和XX,5?。终端8按照获得的日志项修改本地数据。
[0004]当修改数据次数较多时,设备上数据的版本会越来越大,中间所包含的数据操作也越来越多,当一个新终端加入系统时,需要将全部版本的状态向量对应的日志下载下来,分别在本地根据日志修改数据。例如云端设备的版本向量为〈3000,1?,终端的版本向量为〈0,0?,二者进行用户数据同步时,需要将曾经在云端设备上对第一个数据进行的3000次操作对应的全部日志下载到终端,在终端本地根据日志修改数据,因此带来以下两方面问题:
1、产生的数据修改日志过多,增加了数据传输流量。如果操作的对象是文件型数据,例如,先执行下载照片的操作,再执行删除该照片的操作,则更耗费终端流量。
[0005]2、大量的数据日志在终端本地依次执行时,会极大地耗费终端的计算和存储资源,导致终端耗电快、响应速度减慢等现象,尤其当日志中的无效操作偏多时,上述现象就更为明显。
[0006]因此,亟需用户数据同步方案出现,用以解决上述技术问题。

【发明内容】

[0007]本发明实施例提供了一种用户数据同步方法及设备,用以节省用户数据同步过程中的传输流量以及用户终端的资源耗用,提高资源利用率。据的数据版本向量与所述用户终端发送的5者的差值获取用户数据的修改日志;
志进行合并;
3步响应消息,其中携带有合并后的修改日
具有以下有益技术效果:
服务器接收到用户终端发送的数据同步请应用户数据的数据版本向量大于该用户终3用户数据的修改日志,对获取到的修改日寻户数据同步传输流量,而且节省了用户终终端资源利用率。
藍不意图;
II程不意图;
步流程示意图;据同步服务软件的服务器和终端设备之间基于服务器/客户端架构进行通信。
[0015]使用用户数据同步服务的用户终端,在服务器上注册有服务帐户,用户终端在根据其用户数据同步服务帐户登录服务器后,即可使用用户数据同步服务。为了实现在同一用户的不同终端之间进行用户数据同步,属于同一用户的各终端的用户数据同步服务帐户可绑定到同一用户的标识信息,比如该用户的手机号码、用户10等能够唯一标识该用户的信息。本发明实施例将现有用户数据同步服务注册、登录以及与用户信息绑定的方式合并于此,在此不再赘述。
[0016]本发明实施例的方案可以应用于但不限于云计算领域,在以下的实施例中,以服务器为云服务器为例进行说明。
[0017]以下结合上述系统架构和图2,详细说明基于用户数据同步技术的用户数据同步流程,其中,用户终端已经登录到云服务器,如图所示,该流程包括以下步骤:
步骤201,云服务器接收用户终端发送的数据同步请求消息,该数据同步请求消息中携带有该用户终端本地的用户数据的数据版本向量。
[0018]数据版本向量用于指示用户数据更新的版本,初始值为0。每当用户终端进行用户数据更新后,均将相应的用户数据的版本向量加1,以保证更新事件的有序性。
[0019]该步骤中,用户终端可在检测到本地用户数据发生更新时,自动向云服务器发送的数据同步请求消息;也可由用户通过在终端上操作,主动向云服务器发送数据同步请求消息。
[0020]步骤202,云服务器根据用户终端的用户数据的数据版本向量,获取本地存储的用户终端的相应用户数据的数据版本向量。
[0021]具体的,云服务器在接收到用户终端发送的数据同步请求消息时,启动数据同步流程,即,云服务器根据数据同步请求消息中携带的用户信息(通常为用于唯一标识用户的用户10)和数据版本向量,确定出该数据版本向量对应的数据对象,并根据该数据对象获取云服务器本地存储的相应用户数据的数据版本向量。
[0022]步骤203,云服务器将本地存储的用户终端的相应用户数据的数据版本向量与用户终端发送的数据版本向量相比较,若前者大于后者,则执行步骤204;若前者小于后者,则执行步骤207 ;若二者相等,则结束流程。
[0023]步骤204,云服务器根据本地存储的用户终端的相应用户数据的数据版本向量与用户终端发送的数据版本向量的差值,获取数据版本向量差值对应的用户数据的修改日
0
[0024]修改日志是系统操作事件的记录文件或文件集合,用于记录用户对数据进行的操作,用户操作通常包括增加操作和删除操作。
[0025]当云服务器判断出本地存储的用户终端的相应用户数据的数据版本向量大于用户终端发送的数据版本向量时,计算数据版本向量差值,根据数据版本向量确定相应的用户数据,并进一步根据数据版本向量差值确定该相应的用户数据对应的修改日志。确定出的修改日志即为用户终端的数据版本向量与云服务器的数据版本向量之间的修改日志。
[0026]步骤205,云服务器对获取到的修改日志进行合并。
[0027]具体的,云服务器根据数据类型存储该数据版本向量差值对应的用户数据。数据类型唯一标识用户数据,例如,数据类型可以为:对用户姓名与手机号码进行哈希(撤3?)运算,得到的撤3?值。
[0028]云服务器根据数据类型,获取该数据版本向量差值对应的用户数据的修改日志中记载的增加操作以及删除操作的执行顺序,利用堆栈算法,在数据版本向量差值对应的用户数据的修改日志中,确定出能够抵消的操作,并删除能够抵消的操作对应的修改日志,从而实现修改日志的合并。
[0029]通过合并修改日志,云服务器能够删除与前次操作可以抵消的操作,例如,针对某个用户数据,进行增加操作之后又进行了删除操作,云服务器通过对这两个操作所对应的修改日志进行合并,可以抵消这两条操作的修改日志,同样,若针对某个用户数据,进行了删除操作之后又进行了增加操作,则该两个操作的修改日志可以抵消。再例如,用户修改通讯录,对一个联系人的相关信息先后执行了以下操作:增加该联系人的家庭电话一〉删除该联系人的家庭电话一〉删除该联系人,云服务器将上述操作的修改日志进行合并,合并后的修改日志仅保留“删除该联系人”操作所对应的修改日志,精简了修改日志,可以减少用户终端的同步传输流量,并减少用户终端的操作,节约用户终端资源。
[0030]步骤206,云服务器向用户终端返回数据同步响应消息,该数据同步响应消息携带有合并后的修改日志和云服务器当前的相应数据的数据版本向量。用户终端在接收到数据同步响应消息后,根据其中携带的合并后的修改日志,更新本地存储的相应用户数据,并将本地存储的相应用户数据的数据版本向量设置为与云服务器相应用户数据的数据版本向量相同,实现差量数据同步。
[0031]步骤207,云服务器根据本地存储的用户终端的相应用户数据的数据版本向量与用户终端发送的数据版本向量的差值,以及携带于数据同步请求消息中的用户数据的修改日志,更新本地存储的相应用户数据。
[0032]具体的,若云服务器本地存储的用户终端的相应用户数据的数据版本向量小于用户终端发送的数据版本向量,说明用户终端的用户数据有更新,云服务器根据用户终端发送的数据同步请求消息中携带的修改日志以及数据版本向量差值,更新本地存储的相应用户数据。[0033]为了实现处于数据同步系统中的隶属于同一用户的不同用户终端之间的数据自动同步,本发明实施例的用户数据同步流程还可以包括以下步骤:
步骤208,云服务器获取与用户终端绑定相同用户信息的其他用户终端,并向其他用户终端发送数据同步请求消息,其中携带有修改日志。
[0034]具体的,云服务器通过与用户终端建立长连接,以进行数据交互和通信。当云服务器本地发生数据更新时,云服务器获取与用户终端绑定相同用户信息的其他用户终端的信息(例如,设备标识),通过长连接向其他用户终端发送数据同步请求消息,以使这些用户终端能够根据其中携带的修改日志更新本地的用户数据,从而实现隶属于同一用户的用户终端之间自动实现数据更新。
[0035]本发明实施例的上述用户数据同步流程中,若用户终端既有数据版本向量大于云服务器数据版本向量的本地的用户数据,也有数据版本向量小于云服务器数据版本向量的本地的用户数据,在该情况下,既要执行步骤204-206,以对用户终端的用户数据进行数据同步,也要执行步骤207,以对云服务器的用户数据进行数据同步,优选的,还可以继续执行步骤208,以使同一用户的其他用户终端进行数据同步。,X〉。其中,镜像库用于存储前一版本向量乍,根据该修改日志曰〈7,X〉,即可获知该修定者删除操作。
如勺变化情况。当用户在用户终端八上进行用、拍摄照片等操作,用户终端八可以检测户数据同步过程。这里,用户终端八检测到,此时,用户终端八上数据的版本向量
玫据同步请求消息,其中携带有数据版本向玫日志。
消息中携带的用户10和数据版本向量〈7,比并获取数据3和数据6在本地存储的数
#向量〈6,100〉和用户终端八的数据版本向勺数据版本向量大,因此执行步骤305?308,执行步骤309?310。[0048]步骤309,云服务器将数据3在本地进行数据更新,得到更新后的数据版本向量〈7,100〉。此时,用户终端八与云服务器之间实现数据同步。
[0049]步骤310,云服务器获取与用户终端八绑定相同用户信息的用户终端8的设备10,并根据该设备10向用户终端8发送携带有更新数据3操作所对应的修改日志的数据同步请求消息,以请求数据同步。
[0050]通过上述用户数据同步流程可以看出,同步系统可以在用户终端检测到自身数据发生变化时,主动进行与云服务器的用户数据同步,实现用户终端与云服务器之间数据的实时同步,也可以在云服务器发生数据更新时,向同一用户的其他用户终端发送数据同步请求,实现同一用户的不同用户终端之间的用户数据同步。
[0051]基于相同的技术构思,本发明实施例还提供了一种云服务器,如图4所示,该云服务器包括:
接收模块41,用于接收用户终端发送的数据同步请求消息,其中携带有所述用户终端本地的用户数据的数据版本向量。
[0052]处理模块42,用于获取本地存储的用户终端的相应用户数据的数据版本向量,并将服务器本地存储的所述用户终端的相应用户数据的数据版本向量与所述用户终端发送的数据版本向量相比较,若前者大于后者,则根据两者的差值获取用户数据的修改日志。
[0053]日志合并模块43,用于对获取到的修改日志进行合并。
[0054]发送模块44,用于向所述用户终端返回数据同步响应消息,其中携带有合并后的修改日志。
[0055]数据同步请求消息中还携带有所述用户数据的修改日志。相应的,处理模块42还用于,当判断所述用户终端发送的数据版本向量大于服务器本地存储的所述用户终端的相应用户数据的数据版本向量时,根据两者的差值,以及所述数据同步请求消息中携带的修改日志,更新本地存储的相应用户数据。
[0056]处理模块42还用于,在更新本地存储的相应用户数据之后,获取与所述用户终端绑定相同用户信息的其他用户终端,并指示发送模块44向所述其他用户终端发送数据同步消息,其中携带有服务器更新更新本地存储的相应用户数据操作所对应的修改日志;发送模块44还用于,向所述其他用户终端发送数据同步消息。
[0057]发送模块44还用于,在所述数据同步响应消息中携带有服务器本地存储的所述用户终端的相应用户数据的数据版本向量,以使用户终端将本地存储的所述用户终端的相应用户数据的数据版本向量设置为接收到的数据版本向量。
[0058]日志合并模块43具体用于,根据获取到的修改日志中的增加操作和删除操作的执行顺序,利用堆栈算法,在获取到的修改日志中确定出能够抵消的操作,并删除所确定出的能够抵消的操作对应的修改日志。
[0059]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。[0060]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
【权利要求】
1.一种用户数据同步方法,其特征在于,所述方法包括: 服务器接收用户终端发送的数据同步请求消息,其中携带有所述用户终端本地的用户数据的数据版本向量; 所述服务器获取本地存储的用户终端的相应用户数据的数据版本向量,并将所述服务器本地存储的所述用户终端的相应用户数据的数据版本向量与所述用户终端发送的数据版本向量相比较,若前者大于后者,则根据两者的差值获取用户数据的修改日志; 所述服务器对获取到的修改日志进行合并,并向所述用户终端返回数据同步响应消息,其中携带有合并后的修改日志。
2.如权利要求1所述的方法,其特征在于,所述数据同步请求消息中还携带有所述用户数据的修改日志; 若所述服务器判断所述用户终端发送的数据版本向量大于所述服务器本地存储的所述用户终端的相应用户数据的数据版本向量,则所述方法还包括:所述服务器根据两者的差值,以及所述数据同步请求消息中携带的修改日志,更新本地存储的相应用户数据。
3.如权利要求2所述的方法,其特征在于,所述服务器更新本地存储的相应用户数据之后,所述方法还包括: 所述服务器获取与所述用户终端绑定相同用户信息的其他用户终端,并向所述其他用户终端发送数据同步消息,其中携带有所述服务器更新本地存储的相应用户数据操作所对应的修改日志。
4.如权利要求1所述的方法,其特征在于,所述数据同步响应消息中还携带有所述服务器本地存储的所述用户终端的相应用户数据的数据版本向量,以使所述用户终端将本地存储的所述用户终端的相应用户数据的数据版本向量设置为接收到的数据版本向量。
5.如权利要求1-4任一项所述的方法,其特征在于,所述服务器对获取到的修改日志进行合并,具体为: 所述服务器根据获取到的修改日志中的增加操作和删除操作的执行顺序,利用堆栈算法,在获取到的修改日志中确定出能够抵消的操作,并删除所确定出的能够抵消的操作对应的修改日志。
6.一种服务器,其特征在于,包括: 接收模块,用于接收用户终端发送的数据同步请求消息,其中携带有所述用户终端本地的用户数据的数据版本向量; 处理模块,用于获取本地存储的用户终端的相应用户数据的数据版本向量,并将所述服务器本地存储的所述用户终端的相应用户数据的数据版本向量与所述用户终端发送的数据版本向量相比较,若前者大于后者,则根据两者的差值获取用户数据的修改日志; 日志合并模块,用于对获取到的所述修改日志进行合并; 发送模块,用于向所述用户终端返回数据同步响应消息,其中携带有合并后的修改日
0
7.如权利要求6所述的服务器,其特征在于,所述数据同步请求消息中还携带有所述用户数据的修改日志; 所述处理模块还用于,当判断所述用户终端发送的数据版本向量大于所述服务器本地存储的所述用户终端的相应用户数据的数据版本向量时,根据两者的差值,以及所述数据同步请求消息中携带的修改日志,更新本地存储的相应用户数据。
8.如权利要求7所述的服务器,其特征在于,所述处理模块还用于,在更新本地存储的相应用户数据之后,获取与所述用户终端绑定相同用户信息的其他用户终端,并指示所述发送模块向所述其他用户终端发送数据同步消息,其中携带有所述服务器更新更新本地存储的相应用户数据操作所对应的修改日志; 所述发送模块还用于,向所述其他用户终端发送数据同步消息。
9.如权利要求6所述的服务器,其特征在于,所述发送模块还用于,在所述数据同步响应消息中携带有所述服务器本地存储的所述用户终端的相应用户数据的数据版本向量,以使所述用户终端将本地存储的所述用户终端的相应用户数据的数据版本向量设置为接收到的数据版本向量。
10.如权利要求6-9任一项所述的服务器,其特征在于,所述日志合并模块具体用于,根据获取到的修改日志中的增加操作和删除操作的执行顺序,利用堆栈算法,在获取到的修改日志中确定出能够抵消的操作,并删除所确定出的能够抵消的操作对应的修改日志。
【文档编号】H04L29/08GK103841167SQ201210489620
【公开日】2014年6月4日 申请日期:2012年11月27日 优先权日:2012年11月27日
【发明者】孙悦, 李勇, 孔令军, 郑健平 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1