著录项信息
专利名称 | 一种数据同步方法、客户端及服务器 |
申请号 | CN200810241049.0 | 申请日期 | 2008-12-25 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2009-06-03 | 公开/公告号 | CN101447874 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L9/32 | IPC分类号 | H;0;4;L;9;/;3;2;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 深圳华为通信技术有限公司 | 申请人地址 | 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为终端有限公司 | 当前权利人 | 华为终端有限公司 |
发明人 | 刘海涛;王睿;宋悦 |
代理机构 | 北京三友知识产权代理有限公司 | 代理人 | 任默闻 |
摘要
本发明提供一种数据同步方法、客户端及服务器,该方法包括:接收服务器发来的服务器数据变更信息;将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。本发明解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。
1.一种数据同步方法,其特征在于,所述的方法包括:
接收服务器发来的服务器数据变更信息;
将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;
向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据,所述指纹是对一组数据通过算法处理后得到的一个数值;
或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
2.如权利要求1所述的方法,其特征在于,若同步数据更改标准为所述客户端数据变更信息,则将所述相同的数据项标识对应的客户端数据内容及指纹发送给服务器端,用于更改服务器中对应的同步数据;
若同步数据更改标准为所述服务器数据变更信息,则根据相同的数据项标识对应的服务器数据内容对客户端对应的同步数据进行更改。
3.如权利要求1所述的方法,其特征在于,所述的客户端数据变更信息和服务器数据变更信息包括:数据项标识和/或同步数据修改信息。
4.如权利要求1所述的方法,其特征在于,所述的客户端数据变更信息和服务器数据变更信息包括:数据项标识和/或同步数据删除信息。
5.一种数据同步方法,其特征在于,所述的方法包括:
向客户端发送服务器数据变更信息,用于客户端进行客户端数据变更信息与所述服务器数据变更信息比对并获取相同的数据项标识;
接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改,所述指纹是对一组数据通过算法处理后得到的一个数值;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。
6.如权利要求5所述的方法,其特征在于,若同步数据更改标准为所述客户端数据变更信息,则接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;
若同步数据更改标准为所述服务器数据变更信息,则向客户端发送所述相同的数据项标识对应的服务器数据内容,用于所述客户端更改对应的同步数据。
7.如权利要求5所述的方法,其特征在于,所述的客户端数据变更信息和服务器数据变更信息包括:数据项标识和/或同步数据修改信息。
8.如权利要求5所述的方法,其特征在于,所述的客户端数据变更信息和服务器数据变更信息包括:数据项标识和/或同步数据删除信息。
9.一种数据同步客户端,其特征在于,所述的客户端包括:
变更信息接收单元,用于接收服务器发来的服务器数据变更信息;
变更信息比对单元,用于将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;
变更信息处理单元,向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据,所述指纹是对一组数据通过算法处理后得到的一个数值;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
10.如权利要求9所述的客户端,其特征在于,所述变更信息处理单元包括:
标准判断子单元,用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息;若为所述客户端数据变更信息,则触发第一处理子单元,若为所述服务器数据变更信息,则触发第二处理子单元;
第一处理子单元,用于根据所述标准判断子单元的触发,向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;
第二处理子单元,用于根据所述标准判断子单元的触发,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
11.一种数据同步服务器,其特征在于,所述的服务器包括:
发送单元,用于向客户端发送服务器数据变更信息,所述服务器数据变更信息用于客户端进行客户端数据变更信息与所述服务器数据变更信息比对并获取相同的数据项标识;
处理单元,用于接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改,所述指纹是对一组数据通过算法处理后得到的一个数值;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。
12.如权利要求11所述的数据同步服务器,其特征在于,所述处理单元包括:
判断子单元,用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息;若为所述客户端数据变更信息,则触发第三处理子单元,若为所述服务器数据变更信息,则触发第四处理子单元;
第三处理子单元,用于根据所述判断子单元的触发,接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;
第四处理子单元,用于根据所述判断子单元的触发,向客户端发送所述相同的数据项标识对应的服务器数据内容,所述服务器数据内容用于所述客户端更改对应的同步数据。
一种数据同步方法、客户端及服务器\n技术领域\n[0001] 本发明涉及通信领域,尤其涉及一种数据同步方法、客户端及服务器。\n背景技术\n[0002] 数据同步技术已经得到广泛的应用,利用数据同步技术,用户可以随时随地进行信息的接收和发送,用一台手持设备执行设备的应用程序,将数据交互和执行应用程序的结果存储到手持设备中,并且保持与其他数据设备中这种类型的数据一致。\n[0003] 在现有技术中,数据同步(Data Synchronization DS)技术中使用了一种称为指纹(Fingerprint)的方法,指纹是对一组数据通过某种算法处理后得到的一个数值。数据的任何变化都会导致指纹的不同,因此指纹可以有效标识数据。指纹的用途是用于服务器(Server)来判别它从客户端(Client)收到的数据与自身存储的数据是否相同。如果指纹一致,表明服务器与客户端的数据一样,终端不需要发送,如果指纹不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器的数据为准,那终端也没有必要发送数据。这样,通过比较指纹可以避免发送一些不必要的数据,从而节省了流量。\n[0004] 在实现本发明过程中,发明人发现现有技术中至少存在如下问题:指纹有多种算法,通信双方使用一致的算法,可以进行算法协商或者指定算法。但是,变更日志(Changelog)中有时存在冲突的数据项,这时就需要客户端发送指纹进行比对,但对于客户端单端产生指纹,服务器保存的情况,这时服务器的Changelog中的数据项是没有指纹的,因此发送指纹是无用的。如果双方进行正常增量同步时发生了中断,重新发起同步后,客户端需要把自己changelog中的数据项的指纹发送给服务器,这时也存在着服务器一些相应的数据项没有指纹的问题,对于这些数据项,客户端也不需要发送指纹。客户端与服务器之间多了一次交互,浪费了空口资源。\n发明内容\n[0005] 本发明实施例的目的在于提供一种数据同步方法、客户端及服务器,用以解决盲目发送指纹进行比对的问题,减少服务器与客户端的交互,节约无线资源。\n[0006] 为实现上述目的,本发明实施例提供一种数据同步方法,该方法包括:接收服务器发来的服务器数据变更信息;将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据,所述指纹是对一组数据通过算法处理后得到的一个数值;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。\n[0007] 为实现上述目的,本发明实施例还提供一种数据同步方法,该方法包括:向客户端发送服务器数据变更信息,用于客户端进行客户端数据变更信息与所述服务器数据变更信息比对并获取相同的数据项标识;接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改,所述指纹是对一组数据通过算法处理后得到的一个数值;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。\n[0008] 为实现上述目的,本发明实施例还提供一种数据同步客户端,该客户端包括:变更信息接收单元,用于接收服务器发来的服务器数据变更信息;变更信息比对单元,用于将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;变更信息处理单元,向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据,所述指纹是对一组数据通过算法处理后得到的一个数值;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。\n[0009] 为实现上述目的,本发明实施例还提供一种数据同步服务器,该服务器包括:发送单元,用于向客户端发送服务器数据变更信息,所述服务器数据变更信息用于客户端进行客户端数据变更信息与所述服务器数据变更信息比对并获取相同的数据项标识;处理单元,用于接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改,所述指纹是对一组数据通过算法处理后得到的一个数值;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。\n[0010] 上述技术方案具有如下优点或有益效果:\n[0011] 本发明提供了一种数据同步指纹发送的装置、方法及系统,解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。\n附图说明\n[0012] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。\n[0013] 图1为本发明实施例一的数据同步方法流程图。\n[0014] 图2为本发明实施例二的方法流程图。\n[0015] 图3为本发明实施例三的数据同步客户端的结构示意图。\n[0016] 图4为本发明实施例四的数据同步服务器的结构示意图。\n[0017] 图5为本发明实施例客户端与服务器的数据项的映射关系图。\n[0018] 图6为本发明实施例服务器的Changelog中的变更数据列表。\n[0019] 图7为本发明实施例客户端的Changelog中的变更数据列表。\n[0020] 图8为本发明实施例以客户端为准时更改后的服务器的Changelog中的变更数据列表。\n[0021] 图9为本发明实施例以服务器为准时更改后的服务器的Changelog中的变更数据列表。\n[0022] 图10为本发明实施例数据同步过程的流程图。\n具体实施方式\n[0023] 下面将结合本发明实施例附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0024] 实施例一\n[0025] 图1为本发明实施例一的数据同步方法流程图。如图1所示,该方法包括:\n[0026] 步骤S101:接收服务器发来的服务器数据变更信息;\n[0027] 步骤S102:将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;\n[0028] 步骤S103:向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。若同步数据更改标准为所述客户端数据变更信息,则将所述相同的数据项标识对应的客户端数据内容及指纹发送给服务器端,用于更改服务器中对应的同步数据;若同步数据更改标准为所述服务器数据变更信息,则根据相同的数据项标识对应的服务器数据内容对客户端对应的同步数据进行更改。\n[0029] 在一优选的实施例中,所述的客户端数据变更信息和服务器数据变更信息可以包括数据项标识和/或同步数据修改信息,所述的客户端数据变更信息和服务器数据变更信息也可以包括数据项标识和/或同步数据删除信息。\n[0030] 现有一台终端设备与服务器之间需要发起同步,它们的数据项的映射关系如图5所示,其中LUID为客户端中某条数据对应的唯一ID,GUID为服务器中某条数据对应的唯一ID。图6为服务器的Changelog的数据变更信息,数据变更信息也可以放在服务器的Changelog外面。图7为客户端的Changelog的数据变更信息,数据变更信息也可以放在客户端的Changelog外面。\n[0031] 根据图6可知,服务器的Changelog中有4个数据项ABCD1012、ABCD1013、ABCD \n1015和ABCD 1016发生变更,其中,ABCD1012和ABCD 1015发生修改,ABCD1013和ABCD \n1016被删除。\n[0032] 下一次的同步过程中,在PKG2中,服务器将使用来告知接收方服务器上发生了变更(删除、修改)的数据项ID。根据图6可知,服务器有4个数据项发生变更,具体过程如下:\n[0033] \n[0034] \n[0035] 若以客户端为准,客户端收到PKG2以后,经过解析,发现服务器有四个数据项发生了变化,根据图7,1012、1015和1016也存在于客户端的Changelog中,根据冲突策略,以客户端为准,那么客户端将在PKG3中直接发送1012、1015和1016的数据和最新的指纹,具体过程如下:\n[0036] \n[0037] \n[0038] 服务器收到PKG3后,直接把数据项内容和新指纹赋予ABCD1012、ABCD1015和ABCD1016。与此同时,服务器的Changelog如图8所示。\n[0039] 本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。\n[0040] 实施例二\n[0041] 图2为本发明实施例二的方法流程图。如图2所示,该方法包括:\n[0042] 步骤S201:向客户端发送服务器数据变更信息,用于客户端进行数据变更信息比对并获取相同的数据项标识;\n[0043] 步骤S202:接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。若同步数据更改标准为所述客户端数据变更信息,则接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;若同步数据更改标准为所述服务器数据变更信息,则向客户端发送所述相同的数据项标识对应的服务器数据内容,用于所述客户端更改对应的同步数据。\n[0044] 在一优选的实施例中,所述的客户端数据变更信息和服务器数据变更信息例如可以包括数据项标识和/或同步数据修改信息;所述的客户端数据变更信息和服务器数据变更信息还可以包括:数据项标识和/或同步数据删除信息。\n[0045] 现有一台终端设备与服务器之间需要发起同步,它们的数据项的映射关系如图5所示,其中LUID为客户端中某条数据对应的唯一ID,GUID为服务器中某条数据对应的唯一ID。图6为服务器的Changelog的数据变更信息,数据变更信息也可以放在服务器的Changelog外面。图7为客户端的Changelog的数据变更信息,数据变更信息也可以放在客户端的Changelog外面。\n[0046] 根据图6可知,服务器的Changelog中有4个数据项ABCD1012、ABCD1013、ABCD \n1015和ABCD 1016发生变更,其中,ABCD1012和ABCD 1015发生修改,ABCD1013和ABCD \n1016被删除。\n[0047] 下一次的同步过程中,在PKG2中,服务器将使用来告知接收方服务器上发生了变更(删除、修改)的数据项ID,并给出变更的具体方式。具体过程如下:\n[0048] \n[0049] \n[0050] 若以服务器为准,虽然1012、1015和1016存在于客户端的Changelog中,但是客户端不需要发送1012、1015和1016的内容及1012、1015和1016对应的指纹,服务器将比对结果数据发送给客户端后,向服务器发送的数据如下:\n[0051] \n[0052] 服务器收到上述数据后,直接将服务器的1016数据项的条目删除,这时,服务器Changelog如图9所示。\n[0053] 本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。\n[0054] 实施例三\n[0055] 图3为本发明实施例三的数据同步客户端的结构示意图。如图3所示,该客户端包括:变更信息接收单元301,用于接收服务器发来的服务器数据变更信息;变更信息比对单元302,用于将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;变更信息处理单元303,向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。\n[0056] 在一优选的实施例中,所述变更信息处理单元包括:标准判断子单元,用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息;若为所述客户端数据变更信息,则触发第一处理子单元,若为所述服务器数据变更信息,则触发第二处理子单元;第一处理子单元,用于根据所述标准判断子单元的触发,向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;第二处理子单元,用于根据所述标准判断子单元的触发,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。\n[0057] 本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。\n[0058] 实施例四\n[0059] 图4为本发明实施例四的数据同步服务器的结构示意图。如图4所示,该服务器包括:发送单元401,用于向客户端发送服务器数据变更信息,所述服务器数据变更信息用于客户端进行数据变更信息比对并获取相同的数据项标识;处理单元402,用于接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;\n或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。\n[0060] 在一优选的实施例中,所述处理单元包括:判断子单元,用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息;若为所述客户端数据变更信息,则触发第三处理子单元,若为所述服务器数据变更信息,则触发第四处理子单元;第三处理子单元,用于根据所述判断子单元的触发,接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;第四处理子单元,用于根据所述判断子单元的触发,向客户端发送所述相同的数据项标识对应的服务器数据内容,所述服务器数据内容用于所述客户端更改对应的同步数据。\n[0061] 本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。\n[0062] 图10为本发明实施例数据同步过程的流程图。客户端向服务器发送同步初始化数据PKG1,PKG1中包含指纹使用方式协商信息或者指定指纹使用方式信息。服务器向客户端发送数据PKG2,PKG2中包含服务器Changelog中的服务器数据变更信息。客户端收到数据PKG2后,将PKG2中的服务器数据变更信息与客户端的Changelog中的客户端数据变更信息进行比对。设客户端数据变更信息为同步数据更改标准时,则将所述相同的数据项标识对应的客户端数据内容及指纹发送给服务器端,用于更改服务器中对应的同步数据;设所述的服务器数据变更信息为同步数据更改标准时,则根据相同数据项的服务器数据内容对客户端对应的同步数据进行更改。\n[0063] 客户端向服务器发送PKG3,PKG3中包括数据变更信息,更改变更日志中的数据项的内容和指纹。服务器向客户端发送PKG4,PKG4中包括服务器指示客户端需要发送的数据元素的标识。客户端向服务器发送PKG5,PKG5中包括客户端发送所指示的数据元素。服务器向客户端发送PKG6,PKG6中包括服务器返回接收状态信息,还可以发送服务器端修改的数据。客户端向服务器发送PKG7,PKG7中包括客户端返回接收数据的状态和映射命令。服务器向客户端发送PKG8,PKG8中包括服务器返回对映射命令的状态信息。同步结束,客户端将同步结果发送给用户。\n[0064] 本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。
法律信息
- 2019-05-28
专利权人的姓名或者名称、地址的变更
专利权人由华为终端(东莞)有限公司变更为华为终端有限公司
地址由523808 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5变更为523808 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5
- 2017-11-21
专利权的转移
登记生效日: 2017.11.01
专利权人由华为终端有限公司变更为华为终端(东莞)有限公司
地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为523808 广东省东莞市松山湖高新技术产业开发区新城大道2号南方工厂厂房(一期)项目B2区生产厂房-5
- 2011-07-20
- 2009-07-29
- 2009-06-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-10-25
|
2005-07-20
| | |
2
| |
2007-08-01
|
2006-05-31
| | |
3
| |
2008-12-03
|
2007-05-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |