发明内容
本发明实施例的目的在于提供一种数据同步方法、客户端及服务器,用以解决盲目发送指纹进行比对的问题,减少服务器与客户端的交互,节约无线资源。
为实现上述目的,本发明实施例提供一种数据同步方法,该方法包括:接收服务器发来的服务器数据变更信息;将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据,所述指纹是对一组数据通过算法处理后得到的一个数值;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
为实现上述目的,本发明实施例还提供一种数据同步方法,该方法包括:向客户端发送服务器数据变更信息,用于客户端进行客户端数据变更信息与所述服务器数据变更信息比对并获取相同的数据项标识;接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改,所述指纹是对一组数据通过算法处理后得到的一个数值;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。
为实现上述目的,本发明实施例还提供一种数据同步客户端,该客户端包括:变更信息接收单元,用于接收服务器发来的服务器数据变更信息;变更信息比对单元,用于将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;变更信息处理单元,向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据,所述指纹是对一组数据通过算法处理后得到的一个数值;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
为实现上述目的,本发明实施例还提供一种数据同步服务器,该服务器包括:发送单元,用于向客户端发送服务器数据变更信息,所述服务器数据变更信息用于客户端进行客户端数据变更信息与所述服务器数据变更信息比对并获取相同的数据项标识;处理单元,用于接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改,所述指纹是对一组数据通过算法处理后得到的一个数值;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。
上述技术方案具有如下优点或有益效果:
本发明提供了一种数据同步指纹发送的装置、方法及系统,解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。
具体实施方式
下面将结合本发明实施例附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一的数据同步方法流程图。如图1所示,该方法包括:
步骤S101:接收服务器发来的服务器数据变更信息;
步骤S102:将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;
步骤S103:向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。若同步数据更改标准为所述客户端数据变更信息,则将所述相同的数据项标识对应的客户端数据内容及指纹发送给服务器端,用于更改服务器中对应的同步数据;若同步数据更改标准为所述服务器数据变更信息,则根据相同的数据项标识对应的服务器数据内容对客户端对应的同步数据进行更改。
在一优选的实施例中,所述的客户端数据变更信息和服务器数据变更信息可以包括数据项标识和/或同步数据修改信息,所述的客户端数据变更信息和服务器数据变更信息也可以包括数据项标识和/或同步数据删除信息。
现有一台终端设备与服务器之间需要发起同步,它们的数据项的映射关系如图5所示,其中LUID为客户端中某条数据对应的唯一ID,GUID为服务器中某条数据对应的唯一ID。图6为服务器的Changelog的数据变更信息,数据变更信息也可以放在服务器的Changelog外面。图7为客户端的Changelog的数据变更信息,数据变更信息也可以放在客户端的Changelog外面。
根据图6可知,服务器的Changelog中有4个数据项ABCD1012、ABCD1013、ABCD 1015和ABCD 1016发生变更,其中,ABCD1012和ABCD 1015发生修改,ABCD1013和ABCD 1016被删除。
下一次的同步过程中,在PKG2中,服务器将使用<ModifyID>来告知接收方服务器上发生了变更(删除、修改)的数据项ID。根据图6可知,服务器有4个数据项发生变更,具体过程如下:
若以客户端为准,客户端收到PKG2以后,经过解析,发现服务器有四个数据项发生了变化,根据图7,1012、1015和1016也存在于客户端的Changelog中,根据冲突策略,以客户端为准,那么客户端将在PKG3中直接发送1012、1015和1016的数据和最新的指纹,具体过程如下:
服务器收到PKG3后,直接把数据项内容和新指纹赋予ABCD1012、ABCD1015和ABCD1016。与此同时,服务器的Changelog如图8所示。
本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。
实施例二
图2为本发明实施例二的方法流程图。如图2所示,该方法包括:
步骤S201:向客户端发送服务器数据变更信息,用于客户端进行数据变更信息比对并获取相同的数据项标识;
步骤S202:接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。若同步数据更改标准为所述客户端数据变更信息,则接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;若同步数据更改标准为所述服务器数据变更信息,则向客户端发送所述相同的数据项标识对应的服务器数据内容,用于所述客户端更改对应的同步数据。
在一优选的实施例中,所述的客户端数据变更信息和服务器数据变更信息例如可以包括数据项标识和/或同步数据修改信息;所述的客户端数据变更信息和服务器数据变更信息还可以包括:数据项标识和/或同步数据删除信息。
现有一台终端设备与服务器之间需要发起同步,它们的数据项的映射关系如图5所示,其中LUID为客户端中某条数据对应的唯一ID,GUID为服务器中某条数据对应的唯一ID。图6为服务器的Changelog的数据变更信息,数据变更信息也可以放在服务器的Changelog外面。图7为客户端的Changelog的数据变更信息,数据变更信息也可以放在客户端的Changelog外面。
根据图6可知,服务器的Changelog中有4个数据项ABCD1012、ABCD1013、ABCD 1015和ABCD 1016发生变更,其中,ABCD1012和ABCD 1015发生修改,ABCD1013和ABCD 1016被删除。
下一次的同步过程中,在PKG2中,服务器将使用<ModifyID>来告知接收方服务器上发生了变更(删除、修改)的数据项ID,并给出变更的具体方式。具体过程如下:
若以服务器为准,虽然1012、1015和1016存在于客户端的Changelog中,但是客户端不需要发送1012、1015和1016的内容及1012、1015和1016对应的指纹,服务器将比对结果数据发送给客户端后,向服务器发送的数据如下:
服务器收到上述数据后,直接将服务器的1016数据项的条目删除,这时,服务器Changelog如图9所示。
本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。
实施例三
图3为本发明实施例三的数据同步客户端的结构示意图。如图3所示,该客户端包括:变更信息接收单元301,用于接收服务器发来的服务器数据变更信息;变更信息比对单元302,用于将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;变更信息处理单元303,向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
在一优选的实施例中,所述变更信息处理单元包括:标准判断子单元,用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息;若为所述客户端数据变更信息,则触发第一处理子单元,若为所述服务器数据变更信息,则触发第二处理子单元;第一处理子单元,用于根据所述标准判断子单元的触发,向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;第二处理子单元,用于根据所述标准判断子单元的触发,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。
实施例四
图4为本发明实施例四的数据同步服务器的结构示意图。如图4所示,该服务器包括:发送单元401,用于向客户端发送服务器数据变更信息,所述服务器数据变更信息用于客户端进行数据变更信息比对并获取相同的数据项标识;处理单元402,用于接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。
在一优选的实施例中,所述处理单元包括:判断子单元,用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息;若为所述客户端数据变更信息,则触发第三处理子单元,若为所述服务器数据变更信息,则触发第四处理子单元;第三处理子单元,用于根据所述判断子单元的触发,接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;第四处理子单元,用于根据所述判断子单元的触发,向客户端发送所述相同的数据项标识对应的服务器数据内容,所述服务器数据内容用于所述客户端更改对应的同步数据。
本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。
图10为本发明实施例数据同步过程的流程图。客户端向服务器发送同步初始化数据PKG1,PKG1中包含指纹使用方式协商信息或者指定指纹使用方式信息。服务器向客户端发送数据PKG2,PKG2中包含服务器Changelog中的服务器数据变更信息。客户端收到数据PKG2后,将PKG2中的服务器数据变更信息与客户端的Changelog中的客户端数据变更信息进行比对。设客户端数据变更信息为同步数据更改标准时,则将所述相同的数据项标识对应的客户端数据内容及指纹发送给服务器端,用于更改服务器中对应的同步数据;设所述的服务器数据变更信息为同步数据更改标准时,则根据相同数据项的服务器数据内容对客户端对应的同步数据进行更改。
客户端向服务器发送PKG3,PKG3中包括数据变更信息,更改变更日志中的数据项的内容和指纹。服务器向客户端发送PKG4,PKG4中包括服务器指示客户端需要发送的数据元素的标识。客户端向服务器发送PKG5,PKG5中包括客户端发送所指示的数据元素。服务器向客户端发送PKG6,PKG6中包括服务器返回接收状态信息,还可以发送服务器端修改的数据。客户端向服务器发送PKG7,PKG7中包括客户端返回接收数据的状态和映射命令。服务器向客户端发送PKG8,PKG8中包括服务器返回对映射命令的状态信息。同步结束,客户端将同步结果发送给用户。
本发明实施例的有益效果:解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。