数据同步的方法、设备及系统的制作方法
【专利摘要】本发明公开了一种数据同步的方法、设备及系统,属于互联网领域。所述方法包括:服务器接收客户端上传的数据同步请求;根据恢复标识和客户端的数据项获取差异数据项集合;将差异数据项集合发送给客户端,使得客户端根据差异数据项集合同步客户端的本地数据。本发明通过服务器根据恢复标识和客户端的数据项获取包括服务器的数据项中相对于客户端的数据项的修改数据项和新增数据项的差异数据项集合后,不修改服务器的数据,使得客户端根据服务器发送的差异数据项集合同步客户端的本地数据,扩展了数据同步的方式,实现在数据同步过程中不修改服务器的数据,且能够用服务器的数据恢复客户端的本地数据,避免对服务器的数据造成错误修改。
【专利说明】数据同步的方法、设备及系统【技术领域】
[0001]本发明涉及互联网领域,特别涉及一种数据同步的方法、设备及系统。
【背景技术】
[0002]随着互联网技术的发展,用户会使用多个客户端连接到互联网,以便于享受互联网的多种便捷服务。用户的每个客户端的本地都会存储有一定的数据,为了方便用户管理不相同客户端的本地数据,可以将不相同客户端的本地数据上传到服务器,由服务器进行备份。服务器的数据中包括多个数据项,每个数据项可以包含用户名、电话号码、邮箱地址、QQ号码等内容,服务器的每个数据项可以与客户端的本地数据中的数据项一一对应。多个客户端中的一客户端可以将服务器的数据同步到该客户端的本地。
[0003]现有技术在进行数据同步时,至少提供了如下两种同步的方式:
[0004]方式一:双向同步。服务器接收客户端上传的数据同步请求,数据同步请求中携带有修改标识和客户端的本地数据中的修改数据项和新增数据项,服务器根据修改标识将客户端的本地数据中的修改数据项和新增数据项同步到服务器的数据中;将服务器的数据中的修改数据项及新增数据项发送给客户端,使得客户端根据服务器的数据中的修改数据项及新增数据项同步客户端的本地数据。
[0005]方式二:慢同步。服务器接收客户端上传的数据同步请求,数据同步请求中携带有新增标识和客户端的所有数据项,根据新增标识和客户端的所有数据项获取第一差异数据项集合和第二差异数据项集合,第一差异数据项集合中包括服务器的数据项中相对于客户端的数据项的修改数据项和新增数据项,第二数据项集合中包括客户端的数据项中相对于服务器的数据项的修改数据项和新增数据项;根据第二差异数据项集合同步服务器的数据;将第一差异数据项集合发送给客户端,使得客户端根据第一差异数据项集合同步客户端的本地数据。.
[0006]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0007]由于无论方式一或是方式二,在数据同步时服务器的数据都将被修改,如果服务器的数据项为服务器根据其他客户端的本地数据同步后的最新数据项,或者该客户端的数据项为被篡改后的错误的数据项,而对应的服务器的数据项为正确的数据项,由于在本次数据同步过程中服务器的数据项被同步于该客户端的数据项,导致服务器的数据发生错误,并且难以恢复。
【发明内容】
[0008]为了解决现有技术的问题,本发明实施例提供了一种数据同步的方法、设备及系统。所述技术方案如下:
[0009]第一方面,提供了一种数据同步的方法,所述方法包括:
[0010]服务器接收客户端上传的数据同步请求,所述数据同步请求中携带有恢复标识和所述客户端的数据项;[0011]根据所述恢复标识和所述客户端的数据项获取差异数据项集合,所述差异数据项集合中包括所述服务器的数据项中相对于所述客户端的数据项的修改数据项和新增数据项;
[0012]将所述差异数据项集合发送给所述客户端,使得所述客户端根据所述差异数据项集合同步所述客户端的本地数据。
[0013]结合第一方面,在第一方面的第一种可能的实现方式中,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述根据所述恢复标识和所述客户端的数据项获取差异数据项集合,包括:
[0014]根据所述恢复标识将所述客户端的每个数据项与所述服务器的所有数据项进行比对;
[0015]如果比对出所述客户端的一数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同,则将所述服务器的一数据项确定为修改数据项;
[0016]将与所述客户端的所有数据项的所有内容均不相同的所述服务器的数据项确定为新增数据项;
[0017]将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0018]结合第一方面,在第一方面的第二种可能的实现方式中,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述数据同步请求中还携带有所述客户端的每个数据项的标识,所述根据所述恢复标识和所述客户端的数据项获取差异数据项集合,包括:
[0019]根据所述客户端的每个数据项的标识确定与所述客户端的每个数据项对应的所述服务器的数据项;
[0020]根据所述恢复标识将所述客户端的每个数据项与对应的所述服务器的数据项进行比对;
[0021]如果比对出所述客户端的一数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同,则将对应的所述服务器的数据项确定为修改数据项;
[0022]将与所述客户端的所有数据项均不对应的所述服务器的数据项确定为新增数据项;
[0023]将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0024]结合第一方面,在第一方面的第三种可能的实现方式中,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间;所述根据所述恢复标识和所述客户端的数据项获取差异数据项集合,包括:
[0025]根据所述恢复标识将每个待恢复数据项与所述服务器的所有数据项进行比对;
[0026]如果比对出一待恢复数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同,则将所述服务器的一数据项确定为修改数据项;
[0027]将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项;
[0028]将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0029]结合第一方面,在第一方面的第四种可能的实现方式中,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识和每个待恢复数据项的标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间;所述根据所述恢复标识和所述客户端的数据项获取差异数据项集合,包括:
[0030]根据每个待恢复数据项的标识确定与所述每个待恢复数据项对应的所述服务器的数据项;
[0031]根据所述恢复标识将所述每个待恢复数据项与对应的所述服务器的数据项进行比对;
[0032]如果比对出一待恢复数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同,则将对应的所述服务器的数据项确定为修改数据项;
[0033]将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项;
[0034]将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0035]第二方面,提供了一种数据同步的方法,所述方法包括:
[0036]客户端将数据同步请求上传给服务器,所述数据同步请求中携带有恢复标识和所述客户端的数据项,使得所述服务器根据所述恢复标识和所述客户端的数据项获取差异数据项集合,将所述差异数据项集合发送给所述客户端;
[0037]接收所述服务器发送的所述差异数据项集合,并根据所述差异数据项集合同步所述客户端的本地数据;
[0038]其中,所述差异数据项集合中包括所述服务器的数据项中相对于所述客户端的数据项的修改数据项和新增数据项。
[0039]结合第二方面,在第二方面的第一种可能的实现方式中,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,使得所述服务器根据所述恢复标识将所述客户端的每个数据项与所述服务器的所有数据项进行比对,并在比对出所述客户端的一数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项,将与所述客户端的所有数据项的所有内容均不相同的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0040]结合第二方面,在第二方面的第二种可能的实现方式中,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述数据同步请求中还携带有所述客户端的每个数据项的标识,使得所述服务器根据所述客户端的每个数据项的标识确定与所述客户端的每个数据项对应的所述服务器的数据项,并根据所述恢复标识将所述客户端的每个数据项与对应的所述服务器的数据项进行比对,在比对出所述客户端的一数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项,将与所述客户端的所有数据项均不对应的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0041]结合第二方面,在第二方面的第三种可能的实现方式中,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间,使得所述服务器根据所述恢复标识将每个待恢复数据项与所述服务器的所有数据项进行比对,并在比对出一待恢复数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项,将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0042]结合第二方面,在第二方面的第四种可能的实现方式中,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识和每个待恢复数据项的标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间,使得所述服务器根据每个待恢复数据项的标识确定与所述每个待恢复数据项对应的所述服务器的数据项,并根据所述恢复标识将所述每个待恢复数据项与对应的所述服务器的数据项进行比对,并在比对出一待恢复数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项,将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0043]结合第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述将数据同步请求上传给服务器之前,还包括:
[0044]确定用户在所述客户端的所有数据项中选择的数据项,并根据所述用户选择的数据项确定待恢复数据项。
[0045]结合第二方面,在第二方面的第六种可能的实现方式中,所述根据所述差异数据项集合同步所述客户端的本地数据,包括:
[0046]将所述差异数据项集合中的修改数据项替换所述客户端的本地数据中对应的数据项;
[0047]将所述差异数据项集合中的新增数据项添加到所述客户端的本地数据中。
[0048]结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述将所述差异数据项集合中的修改数据项替换所述客户端的本地数据中对应的数据项之前,还包括:
[0049]显示所述差异数据项集合中的修改数据项,并确定用户在显示的所述差异数据项集合中的修改数据项中选择的修改数据项;
[0050]所述将所述差异数据项集合中的修改数据项替换所述客户端的本地数据中对应的数据项,包括
[0051]将所述差异数据项集合中用户选择的修改数据项替换所述客户端的本地数据中对应的数据项。
[0052]结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述将所述差异数据项集合中的新增数据项添加到所述客户端的本地数据中之前,还包括:
[0053]显示所述差异数据项集合中的新增数据项,并确定用户在显示的所述差异数据项集合中的新增数据项中选择的新增数据项;
[0054]所述将所述差异数据项集合中的新增数据项添加到所述客户端的本地数据中,包括:[0055]将所述差异数据项集合中用户选择的新增数据项添加到所述客户端的本地数据中。
[0056]第三方面,提供了一种服务器,所述服务器包括:
[0057]接收模块,用于接收客户端上传的数据同步请求,所述数据同步请求中携带有恢复标识和所述客户端的数据项;
[0058]获取模块,用于根据所述恢复标识和所述客户端的数据项获取差异数据项集合,所述差异数据项集合中包括所述服务器的数据项中相对于所述客户端的数据项的修改数据项和新增数据项;
[0059]发送模块,用于将所述获取模块获取到的差异数据项集合发送给所述客户端,使得所述客户端根据所述差异数据项集合同步所述客户端的本地数据。
[0060]结合第三方面,在第三方面的第一种可能的实现方式中,所述接收模块接收到的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述获取模块,包括:
[0061]第一比对单元,用于根据所述恢复标识将所述客户端的每个数据项与所述服务器的所有数据项进行比对;
[0062]第一确定单元,用于在所述第一比对单元比对出所述客户端的一数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项;
[0063]所述第一确定单元,还用于将与所述客户端的所有数据项的所有内容均不相同的所述服务器的数据项确定为新增数据项;
[0064]第一合并单元,用于将所述第一确定单元确定的修改数据项和所述新增数据项合并为差异数据项集合。
[0065]结合第三方面,在第三方面的第二种可能的实现方式中,所述接收模块接收到的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述数据同步请求中还携带有所述客户端的每个数据项的标识,所述获取模块,包括:
[0066]第二确定单元,用于根据所述客户端的每个数据项的标识确定与所述客户端的每个数据项对应的所述服务器的数据项;
[0067]第二比对单元,用于根据所述恢复标识将所述客户端的每个数据项与对应的所述服务器的数据项进行比对;
[0068]所述第二确定单元,还用于在所述第二比对单元比对出所述客户端的一数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同,则将对应的所述服务器的数据项确定为修改数据项;
[0069]所述第二确定单元,用于将与所述客户端的所有数据项均不对应的所述服务器的数据项确定为新增数据项;
[0070]第二合并单元,用于将所述第二确定单元确定的修改数据项和所述新增数据项合并为差异数据项集合。
[0071]结合第三方面,在第三方面的第三种可能的实现方式中,所述接收模块接收到的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间;所述获取模块,包括:
[0072]第三比对单元,用于根据所述恢复标识将每个待恢复数据项与所述服务器的所有数据项进行比对;
[0073]第三确定单元,用于在所述第三比对单元比对出一待恢复数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项;
[0074]所述第三确定单元,还用于将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项;
[0075]第三合并单元,用于将所述第三确定单元确定的所述修改数据项和所述新增数据项合并为差异数据项集合。
[0076]结合第三方面,在第三方面的第四种可能的实现方式中,所述接收模块接收到的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识和每个待恢复数据项的标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间;所述获取模块,包括:
[0077]第四确定单元,用于根据每个待恢复数据项的标识确定与所述每个待恢复数据项对应的所述服务器的数据项;
[0078]第四比对单元,用于根据所述恢复标识将所述每个待恢复数据项与对应的所述服务器的数据项进行比对;
[0079]所述第四确定单元,还用于在所述第四比对单元比对出一待恢复数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项;
[0080]所述第四确定单元,还用于将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项;
[0081]第四合并单元,用于将所述第四确定单元确定的修改数据项和所述新增数据项合并为差异数据项集合。
[0082]第四方面,提供了一种客户端,所述客户端包括:
[0083]上传模块,用于将数据同步请求上传给服务器,所述数据同步请求中携带有恢复标识和所述客户端的数据项,使得所述服务器根据所述恢复标识和所述客户端的数据项获取差异数据项集合,将所述差异数据项集合发送给所述客户端;
[0084]接收模块,用于接收所述服务器发送的所述差异数据项集合;
[0085]同步模块,用于根据所述接收模块接收到的差异数据项集合同步所述客户端的本地数据;
[0086]其中,所述差异数据项集合中包括所述服务器的数据项中相对于所述客户端的数据项的修改数据项和新增数据项。
[0087]结合第四方面,在第四方面的第一种可能的实现方式中,所述上传模块上传的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,使得所述服务器根据所述恢复标识将所述客户端的每个数据项与所述服务器的所有数据项进行比对,并在比对出所述客户端的一数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项,将与所述客户端的所有数据项的所有内容均不相同的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0088]结合第四方面,在第四方面的第二种可能的实现方式中,所述上传模块上传的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述数据同步请求中还携带有所述客户端的每个数据项的标识,使得所述服务器根据所述客户端的每个数据项的标识确定与所述客户端的每个数据项对应的所述服务器的数据项,并根据所述恢复标识将所述客户端的每个数据项与对应的所述服务器的数据项进行比对,在比对出所述客户端的一数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项,将与所述客户端的所有数据项均不对应的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0089]结合第四方面,在第四方面的第三种可能的实现方式中,所述上传模块上传的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间,使得所述服务器根据所述恢复标识将每个待恢复数据项与所述服务器的所有数据项进行比对,并在比对出一待恢复数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项,将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0090]结合第四方面,在第四方面的第四种可能的实现方式中,所述上传模块上传的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识和每个待恢复数据项的标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间,使得所述服务器根据每个待恢复数据项的标识确定与所述每个待恢复数据项对应的所述服务器的数据项,并根据所述恢复标识将所述每个待恢复数据项与对应的所述服务器的数据项进行比对,并在比对出一待恢复数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项,将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
[0091]结合第四方面的第三种可能的实现方式或第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,所述客户端还包括:
[0092]确定模块,用于确定用户在所述客户端的所有数据项中选择的数据项,并根据所述确定的用户选择的数据项确定待恢复数据项。
[0093]结合第四方面,在第四方面的第六种可能的实现方式中,所述同步模块,包括:
[0094]替换单元,用于将所述差异数据项集合中的修改数据项替换所述客户端的本地数据中对应的数据项;
[0095]添加单元,用于将所述差异数据项集合中的新增数据项添加到所述客户端的本地数据中。
[0096]结合第四方面的第六种可能的实现方式,在第四方面的第七种可能的实现方式中,所述同步模块,还包括:
[0097]显示单元,用于显示所述差异数据项集合中的修改数据项;
[0098]确定单元,用于确定用户在所述显示单元显示的所述差异数据项集合中的修改数据项中选择的修改数据项;
[0099]所述替换单元,具体用于将所述确定单元确定的所述差异数据项集合中用户选择的修改数据项替换所述客户端的本地数据中对应的数据项。
[0100]结合第四方面的第七种可能的实现方式,在第四方面的第八种可能的实现方式中,所述显示单元,还用于显示所述差异数据项集合中的新增数据项;
[0101 ] 所述确定单元,还用于确定用户在所述显示单元显示的所述差异数据项集合中的新增数据项中选择的新增数据项;
[0102]所述添加单元,具体用于将所述确定单元确定的所述差异数据项集合在用户选择的新增数据项添加到所述客户端的本地数据中。
[0103]第五方面,提供了一种数据同步的系统,所述系统包括:服务器和客户端;
[0104]其中,所述服务器如上述第三方面所述的服务器;
[0105]所述客户端如上述第四方面所述的客户端。
[0106]本发明实施例提供的技术方案带来的有益效果是:
[0107]通过服务器根据恢复标识和客户端的本地数据获取包括服务器的数据中相对于客户端的数据项的修改数据项和新增数据项的差异数据项集合后,不修改服务器的数据,将差异数据项集合发送给客户端,使得客户端根据差异数据项集合同步客户端的本地数据,扩展了数据同步的方式,实现了在数据同步过程中不修改服务器的数据,且能够用服务器的数据恢复客户端的本地数据,从而避免了客户端的本地数据发生错误时对服务器的数据造成的错误修改。
【专利附图】
【附图说明】
[0108]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0109]图1是本发明实施例一提供的一种数据同步的方法流程图;
[0110]图2是本发明实施例一提供的另一种数据同步的方法流程图;
[0111]图3是本发明实施例二提供的一种数据同步的方法流程图;
[0112]图4是本发明实施例二提供的一种服务器的结构示意图;
[0113]图5是本发明实施例三提供的一种服务器的结构示意图;
[0114]图6是本发明实施例四提供的一种客户端的结构示意图;
[0115]图7是本发明实施例五提供的一种数据同步的系统的结构示意图。
【具体实施方式】
[0116]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。[0117]实施例一
[0118]本发明实施例提供了一种数据同步的方法,该方法以服务器侧的角度为例,对数据同步的方法进行说明。参见图1,本发明实施例提供的方法流程包括:
[0119]101:服务器接收客户端上传的数据同步请求,数据同步请求中携带有恢复标识和客户端的数据项。
[0120]102:根据恢复标识和客户端的数据项获取差异数据项集合,差异数据项集合中包括服务器的数据项中相对于客户端的数据项的修改数据项和新增数据项。
[0121]具体地,数据同步请求中携带的客户端的数据项为客户端的所有数据项,根据恢复标识和客户端的数据项获取差异数据项集合,包括:
[0122]根据恢复标识将客户端的每个数据项与服务器的所有数据项进行比对;
[0123]如果比对出客户端的一数据项与服务器的一数据项的部分项内容相同且其余项内容不相同,则将服务器的一数据项确定为修改数据项;
[0124]将与客户端的所有数据项的所有内容均不相同的服务器的数据项确定为新增数据项;
[0125]将修改数据项和新增数据项合并为差异数据项集合。
[0126]具体地,数据同步请求中携带的客户端的数据项为客户端的所有数据项,数据同步请求中还携带有客户端的每个数据项的标识,根据恢复标识和客户端的数据项获取差异数据项集合,包括:
[0127]根据客户端的每个数据项的标识确定与客户端的每个数据项对应的服务器的数据项;
[0128]根据恢复标识将客户端的每个数据项与对应的服务器的数据项进行比对;
[0129]如果比对出客户端的一数据项与对应的服务器的数据项的部分项内容或全部内容不相同,则将对应的服务器的数据项确定为修改数据项;
[0130]将与客户端的所有数据项均不对应的服务器的数据中的数据项确定为新增数据项;
[0131]将修改数据项和新增数据项合并为差异数据项集合。
[0132]具体地,数据同步请求中携带的客户端的数据项为客户端的所有数据项中的至少一个待恢复数据项,数据同步请求中还携带有时间标识,时间标识用于标识客户端上一次发送数据同步请求的时间;根据恢复标识和客户端的数据项获取差异数据项集合,包括:
[0133]根据恢复标识将每个待恢复数据项与服务器的所有数据项进行比对;
[0134]如果比对出一待恢复数据项与服务器的一数据项的部分项内容相同且其余项内容不相同,则将服务器的一数据项确定为修改数据项;
[0135]将在时间标识所标识的时间之后添加的服务器的数据项确定为新增数据项;
[0136]将修改数据项和新增数据项合并为差异数据项集合。
[0137]具体地,数据同步请求中携带的客户端的数据项为客户端的所有数据项中的至少一个待恢复数据项,数据同步请求中还携带有时间标识和每个待恢复数据项的标识,时间标识用于标识客户端上一次发送数据同步请求的时间;根据恢复标识和客户端的数据项获取差异数据项集合,包括:
[0138]根据每个待恢复数据项的标识确定与每个待恢复数据项对应的服务器的数据项;
[0139]根据恢复标识将每个待恢复数据项与对应的服务器的数据项进行比对;
[0140]如果比对出一待恢复数据项与对应的服务器的数据项的部分项内容或全部内容不相同,则将对应的服务器的数据项确定为修改数据项;
[0141]将在时间标识所标识的时间之后添加的服务器的数据项确定为新增数据项;
[0142]将修改数据项和新增数据项合并为差异数据项集合。103:将差异数据项集合发送给客户端,使得客户端根据差异数据项集合同步客户端的本地数据。
[0143]服务器得到与客户端数据的差异数据项集合后,根据恢复(Restore)标识,确定本次客户端上传的数据仅用于恢复比较用,因此在比较操作完成后,不修改服务器的数据;月艮务器下发差异数据项集合给客户端,以使客户端做相应的数据更新。
[0144]若客户端的某些数据项与服务器数据的所有数据项均不对应,即客户端的这些数据项未包含在服务器的数据中,不将这些数据项放入差异数据项集合,后续客户端根据这些数据项进行的同步处理可以有不同方式,如客户端删除这些数据项,或者客户端不删除这些数据项,发送给服务器以添加这些数据项。
[0145]本发明实施例还提供了一种数据同步的方法,该方法以客户端侧的角度为例,对数据同步的方法进行说明。参见图2,本发明实施例提供的方法流程包括:
[0146]201:客户端将数据同步请求上传给服务器,数据同步请求中携带有恢复标识和客户端的数据项,使得服务器根据恢复标识和客户端的数据项获取差异数据项集合,将差异数据项集合发送给客户端。
[0147]202:接收服务器发送的差异数据项集合,并根据差异数据项集合同步客户端的本地数据。
[0148]其中,差异数据项集合中包括服务器的数据项中相对于客户端的数据项的修改数据项和新增数据项。
[0149]具体地,数据同步请求中携带的客户端的数据项为客户端的所有数据项,使得服务器根据恢复标识将客户端的每个数据项与服务器的所有数据项进行比对,并在比对出客户端的一数据项与服务器的一数据项的部分项内容相同且其余项内容不相同时,将服务器的一数据项确定为修改数据项,将与客户端的所有数据项的所有内容均不相同的服务器的数据项确定为新增数据项之后,将修改数据项和新增数据项合并为差异数据项集合。
[0150]具体地,数据同步请求中携带的客户端的数据项为客户端的所有数据项,数据同步请求中还携带有客户端的每个数据项的标识,使得服务器根据客户端的每个数据项的标识确定与客户端的每个数据项对应的服务器的数据项,并根据恢复标识将客户端的每个数据项与对应的服务器的数据项进行比对,在比对出客户端的一数据项与对应的服务器的数据项的部分项内容或全部内容不相同时,将对应的服务器的数据项确定为修改数据项,将与客户端的所有数据项均不对应的服务器的数据项确定为新增数据项之后,将修改数据项和新增数据项合并为差异数据项集合。
[0151]具体地,数据同步请求中携带的客户端的数据项为客户端的所有数据项中的至少一个待恢复数据项,数据同步请求中还携带有时间标识,时间标识用于标识客户端上一次发送数据同步请求的时间,使得服务器根据恢复标识将每个待恢复数据项与服务器的所有数据项进行比对,并在比对出一待恢复数据项与服务器的一数据项的部分项内容相同且其余项内容不相同时,将服务器的一数据项确定为修改数据项,将在时间标识所标识的时间之后添加的服务器的数据项确定为新增数据项之后,将修改数据项和新增数据项合并为差异数据项集合。
[0152]具体地,数据同步请求中携带的客户端的数据项为客户端的所有数据项中的至少一个待恢复数据项,数据同步请求中还携带有时间标识和每个待恢复数据项的标识,时间标识用于标识客户端上一次发送数据同步请求的时间,使得服务器根据每个待恢复数据项的标识确定与每个待恢复数据项对应的服务器的数据项,并根据恢复标识将每个待恢复数据项与对应的服务器的数据项进行比对,并在比对出一待恢复数据项与对应的服务器的数据项的部分项内容或全部内容不相同时,将对应的服务器的数据项确定为修改数据项,将在时间标识所标识的时间之后添加的服务器的数据项确定为新增数据项之后,将修改数据项和新增数据项合并为差异数据项集合。
[0153]进一步地,将数据同步请求上传给服务器之前,还包括:
[0154]确定用户在客户端的所有数据项中选择的数据项,并根据用户选择的数据项确定待恢复数据项。
[0155]具体地,根据差异数据项集合同步客户端的本地数据,包括:
[0156]将差异数据项集合中的修改数据项替换客户端的本地数据中对应的数据项;
[0157]将差异数据项集合中的新增数据项添加到客户端的本地数据中。
[0158]具体地,将差异数据项集合中的修改数据项替换客户端的本地数据中对应的数据项之前,还包括:
[0159]显示差异数据项集合中的修改数据项,并确定用户在显示的差异数据项集合中的修改数据项中选择的修改数据项;
[0160]将差异数据项集合中的修改数据项替换客户端的本地数据中对应的数据项,包括:
[0161]将差异数据项集合中用户选择的修改数据项替换客户端的本地数据中对应的数据项。
[0162]具体地,将差异数据项集合中的新增数据项添加到客户端的本地数据中之前,还包括:
[0163]显示差异数据项集合中的新增数据项,并确定用户在显示的差异数据项集合中的新增数据项中选择的新增数据项;
[0164]将差异数据项集合中的新增数据项添加到客户端的本地数据中,包括:
[0165]将差异数据项集合中用户选择的新增数据项添加到客户端的本地数据中。
[0166]综上所述,本发明实施例提供的方法,通过服务器根据恢复标识和客户端的本地数据获取包括服务器的数据中相对于客户端的数据项的修改数据项和新增数据项的差异数据项集合后,不修改服务器的数据,将差异数据项集合发送给客户端,使得客户端根据差异数据项集合同步客户端的本地数据,扩展了数据同步的方式,实现了在数据同步过程中不修改服务器的数据,且能够用服务器的数据恢复客户端的本地数据,从而避免了客户端的本地数据发生错误时对服务器的数据造成的错误修改。
[0167]实施例二
[0168]为了避免在客户端和服务器同步的过程中错误地修改服务器的数据,本发明实施例提供了一种数据同步的方法。结合上述实施例一的内容,参见图3,本发明实施例提供的方法流程包括:
[0169]301:客户端上传数据同步请求给服务器,数据同步请求中携带有恢复标识和客户端的数据项。
[0170]其中,客户端通常安装在终端上,也可以安装在其他设备上。终端可以包括手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4 (Moving Picture Experts Group Audio LayerIV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑和台式电脑等等。
[0171]针对该步骤,在实际应用中,服务器通常管理一个或多个客户端,每个客户端都可以将每个客户端的本地数据和服务器的数据进行同步。如果用户不确定某个客户端的本地数据中某个数据项或全部数据项是否正确,或者是否为相对于对应的服务器的数据项来说是被修改后的数据项,并且用户也不期望用客户端的本地数据同步服务器的数据,因而,用户可以在该客户端上传给服务器的数据同步请求中携带恢复标识和客户端的本地数据中的数据项。
[0172]客户端上传数据同步请求给服务器时,可以通过OMA (Open Mobile Alliance,开放移动联盟)SyncML (Synchronization Markup Language,同步标记语言)DS (DataSynchronization,数据同步)协议与服务器建立SyncML连接之后,通过SyncML连接发送数据同步请求给服务器。其中,数据同步请求可以是HTTP(Hyper Text Transfer Protocol,超文本传输协议)同步请求,数据同步请求可以通过XML (Extensible Markup Language,可扩展标记语言)报文或者 WBXML (Wireless Application Protocol Binary ExtensibleMarkup Language,无线应用协议二进制可扩展标记语言)报文的形式上传给服务器。
[0173]302:服务器在接收到客户端上传的数据同步请求后,根据恢复标识和客户端的本地数据获取差异数据项集合,差异数据项集合中包括服务器的数据项中相对于客户端的数据项的修改数据项和新增数据项。
[0174]由于数据同步请求中携带有恢复标识,表示客户端期望确定客户端的本地数据中某个数据项或全部数据项是否为正确或者是否为相对于对应的服务器的数据项来说是被修改后的数据项,而不期望用客户端的本地数据同步服务器的数据。因此,服务器在接收到客户端上传的数据同步请求后,根据恢复标识确定本次客户端上传的数据仅用于恢复比较,从而根据恢复标识和客户端的数据项获取差异数据项集合,且不修改服务器的数据。因此,服务器的数据不会同步于客户端的本地数据。
[0175]具体地,根据数据同步请求中携带的客户端的数据项的不相同和数据同步请求中携带的信息的不相同,服务器根据恢复标识和客户端的数据项获取差异数据项集合的方式也不相同,具体包括但不限于以下四种方式:
[0176]方式一:数据同步请求中携带的客户端的数据项为客户端的所有数据项,根据恢复标识和客户端的数据项获取差异数据项集合,包括:根据恢复标识将客户端的每个数据项与服务器的所有数据项进行比对;如果比对出客户端的一数据项与服务器的一数据项的部分项内容相同且其余项内容不相同,则将服务器的一数据项确定为修改数据项;将与客户端的所有数据项的所有内容均不相同的服务器的数据项确定为新增数据项;将修改数据项和新增数据项合并为差异数据项集合。[0177]该方式通常用于客户端执行第一次数据同步操作时,由于服务器预先不知道客户端的数据项与服务器的数据项之间的对应关系,因此,需要将客户端的每个数据项与服务器的所有数据项进行比对。由于数据项通常包含多项内容,例如,可以包含用户名、电话号码、QQ号码、邮箱地址等内容,用户在修改客户端的一数据项时,往往会修改其中部分项内容。例如,修改该数据项中的QQ号码,或在该数据项中继续添加一个或多个新的电话号码等。因而,在比对时,如果比对出客户端的一数据项与服务器的一数据项的部分项内容相同,说明该待恢复数据项与该服务器的数据项对应,又由于其余部分项内容不相同,则将该服务器的数据项确定为修改数据项。此外,如果客户端的一数据项与服务器的一数据项的全部内容均相同,说明客户端的该数据项与服务器的该数据项一致,无需使用服务器的数据项进行恢复操作,因而可以忽略该数据项。当然,如果客户端的所有数据项与服务器的数据项的全部内容均相同,则差异数据项集合中的修改数据项为空。
[0178]并且,如果一服务器的数据项与客户端的所有数据项的全部内容均不相同,则说明该数据项为新增到服务器的数据项,在客户端的本地数据中没有相应的记录,因而将该数据项确定为新增数据项。当然,如果没有任一服务器的数据项与客户端的所有数据项的全部内容均不相同,则差异数据项集合中的新增数据项为空。
[0179]举例来说,以客户端的所有数据项和服务器的所有数据项如下表I所示为例,每个数据项中包含用户名和手机号码,服务器接收到客户端上传的数据同步请求后,将客户端的数据项A与服务器的所有数据项Al-F进行比对,得到客户端的数据项A的用户名与服务器的数据项Al的用户名相同,且客户端的数据项A的手机号码与服务器的数据项Al的手机号码不相同,则将服务器的数据项Al确定为修改数据项。同样地,确定出服务器的数据项Dl为修改数据项。并且,由于服务器的数据项E和数据项F的所有内容与客户端的所有数据项的所有内容均不相同,因而将服务器的数据项E和F确定为新增数据项。将修改数据项Al和Dl以及新增数据项E和F合并为差异数据项集合。
[0180]表I
[0181]
【权利要求】
1.一种数据同步的方法,其特征在于,所述方法包括: 服务器接收客户端上传的数据同步请求,所述数据同步请求中携带有恢复标识和所述客户端的数据项; 根据所述恢复标识和所述客户端的数据项获取差异数据项集合,所述差异数据项集合中包括所述服务器的数据项中相对于所述客户端的数据项的修改数据项和新增数据项;将所述差异数据项集合发送给所述客户端,使得所述客户端根据所述差异数据项集合同步所述客户端的本地数据。
2.根据权利要求1所述的方法,其特征在于,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述根据所述恢复标识和所述客户端的数据项获取差异数据项集合,包括: 根据所述恢复标识将所述客户端的每个数据项与所述服务器的所有数据项进行比对; 如果比对出所述客户端的一数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同,则 将所述服务器的一数据项确定为修改数据项; 将与所述客户端的所有数据项的所有内容均不相同的所述服务器的数据项确定为新增数据项; 将所述修改数据项和所述新增数据项合并为差异数据项集合。
3.根据权利要求1所述的方法,其特征在于,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述数据同步请求中还携带有所述客户端的每个数据项的标识,所述根据所述恢复标识和所述客户端的数据项获取差异数据项集合,包括: 根据所述客户端的每个数据项的标识确定与所述客户端的每个数据项对应的所述服务器的数据项; 根据所述恢复标识将所述客户端的每个数据项与对应的所述服务器的数据项进行比对; 如果比对出所述客户端的一数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同,则将对应的所述服务器的数据项确定为修改数据项; 将与所述客户端的所有数据项均不对应的所述服务器的数据项确定为新增数据项; 将所述修改数据项和所述新增数据项合并为差异数据项集合。
4.根据权利要求1所述的方法,其特征在于,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间;所述根据所述恢复标识和所述客户端的数据项获取差异数据项集合,包括: 根据所述恢复标识将每个待恢复数据项与所述服务器的所有数据项进行比对; 如果比对出一待恢复数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同,则将所述服务器的数据项确定为修改数据项; 将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项; 将所述修改数据项和所述新增数据项合并为差异数据项集合。
5.根据权利要求1所述的方法,其特征在于,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识和每个待恢复数据项的标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间;所述根据所述恢复标识和所述客户端的数据项获取差异数据项集合,包括: 根据每个待恢复数据项的标识确定与所述每个待恢复数据项对应的所述服务器的数据项; 根据所述恢复标识将所述每个待恢复数据项与对应的所述服务器的数据项进行比对; 如果比对出一待恢复数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同,则将对应的所述服务器的数据项确定为修改数据项; 将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项; 将所述修改数据项和所述新增数据项合并为差异数据项集合。
6.一种数据同步的方法,其特征在于,所述方法包括: 客户端将数据同步请求上传给服务器,所述数据同步请求中携带有恢复标识和所述客户端的数据项,使得所述服务器根据所述恢复标识和所述客户端的数据项获取差异数据项集合,将所述差异数据项集合发送给所述客户端; 接收所述服务器发送的所述差异数据项集合,并根据所述差异数据项集合同步所述客户端的本地数据; 其中,所述差异数据项集合中包括所述服务器的数据项中相对于所述客户端的数据项的修改数据项和新增数据项。
7.根据权利要求6所述的方法,其特征在于,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,使得所述服务器根据所述恢复标识将所述客户端的每个数据项与所述服务器的所有数据项进行比对,并在比对出所述客户端的一数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项,将与所述客户端的所有数据项的所有内容均不相同的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集口 ο
8.根据权利要求6所述的方法,其特征在于,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述数据同步请求中还携带有所述客户端的每个数据项的标识,使得所述服务器根据所述客户端的每个数据项的标识确定与所述客户端的每个数据项对应的所述服务器的数据项,并根据所述恢复标识将所述客户端的每个数据项与对应的所述服务器的数据项进行比对,在比对出所述客户端的一数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项,将与所述客户端的所有数据项均不对应的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
9.根据权利要求6所述的方法,其特征在于,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间,使得所述服务器根据所述恢复标识将每个待恢复数据项与所述服务器的所有数据项进行比对,并在比对出一待恢复数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项,将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
10.根据权利要求6所述的方法,其特征在于,所述数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识和每个待恢复数据项的标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间,使得所述服务器根据每个待恢复数据项的标识确定与所述每个待恢复数据项对应的所述服务器的数据项,并根据所述恢复标识将所述每个待恢复数据项与对应的所述服务器的数据项进行比对,并在比对出一待恢复数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项,将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
11.根据权利要求9或10所述的方法,其特征在于,所述将数据同步请求上传给服务器之前,还包括: 确定用户在所述客户端的所有数据项中选择的数据项,并根据所述用户选择的数据项确定待恢复数据项。
12.根据权利要求6所述的方法,其特征在于,所述根据所述差异数据项集合同步所述客户端的本地数据,包括: 将所述差异数据项集合中的修改数据项替换所述客户端的本地数据中对应的数据项; 将所述差异数据项集合中的新增数据项添加到所述客户端的本地数据中。
13.根据权利要求12所述的方法,其特征在于,所述将所述差异数据项集合中的修改数据项替换所述客户端的本地数据中对应的数据项之前,还包括: 显示所述差异数据项集合中的修改数据项,并确定用户在显示的所述差异数据项集合中的修改数据项中选择的修改数据项; 所述将所述差异数据项集合中的修改数据项替换所述客户端的本地数据中对应的数据项,包括: 将所述差异数据项集合中用户选择的修改数据项替换所述客户端的本地数据中对应的数据项。
14.根据权利要求13所述的方法,其特征在于,所述将所述差异数据项集合中的新增数据项添加到所述客户端的本地数据中之前,还包括: 显示所述差异数据项集合中的新增数据项,并确定用户在显示的所述差异数据项集合中的新增数据项中选择的新增数据项; 所述将所述差异数据项集合中的新增数据项添加到所述客户端的本地数据中,包括: 将所述差异数据项集合中用户选择的新增数据项添加到所述客户端的本地数据中。
15.一种服务器,其特征在于,所述服务器包括: 接收模块,用于接收客户端上传的数据同步请求,所述数据同步请求中携带有恢复标识和所述客户端的数据项; 获取模块,用于根据所述恢复标识和所述客户端的数据项获取差异数据项集合,所述差异数据项集合中包括所述服务器的数据项中相对于所述客户端的数据项的修改数据项和新增数据项; 发送模块,用于将所述获取模块获取到的差异数据项集合发送给所述客户端,使得所述客户端根据所述差异数据项集合同步所述客户端的本地数据。
16.根据权利要求15所述的服务器,其特征在于,所述接收模块接收到的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述获取模块,包括: 第一比对单元,用于根据所述恢复标识将所述客户端的每个数据项与所述服务器的所有数据项进行比对; 第一确定单元 ,用于在所述第一比对单元比对出所述客户端的一数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项; 所述第一确定单元,还用于将与所述客户端的所有数据项的所有内容均不相同的所述服务器的数据项确定为新增数据项; 第一合并单元,用于将所述第一确定单元确定的修改数据项和所述新增数据项合并为差异数据项集合。
17.根据权利要求15所述的服务器,其特征在于,所述接收模块接收到的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述数据同步请求中还携带有所述客户端的每个数据项的标识,所述获取模块,包括: 第二确定单元,用于根据所述客户端的每个数据项的标识确定与所述客户端的每个数据项对应的所述服务器的数据项; 第二比对单元,用于根据所述恢复标识将所述客户端的每个数据项与对应的所述服务器的数据项进行比对; 所述第二确定单元,还用于在所述第二比对单元比对出所述客户端的一数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同,则将对应的所述服务器的数据项确定为修改数据项; 所述第二确定单元,还用于将与所述客户端的所有数据项均不对应的所述服务器的数据项确定为新增数据项; 第二合并单元,用于将所述第二确定单元确定的修改数据项和所述新增数据项合并为差异数据项集合。
18.根据权利要求15所述的服务器,其特征在于,所述接收模块接收到的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间;所述获取模块,包括: 第三比对单元,用于根据所述恢复标识将每个待恢复数据项与所述服务器的所有数据项进行比对; 第三确定单元,用于在所述第三比对单元比对出一待恢复数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的数据项确定为修改数据项; 所述第三确定单元,还用于将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项; 第三合并单元,用于将所述第三确定单元确定的所述修改数据项和所述新增数据项合并为差异数据项集合。
19.根据权利要求15所述的服务器,其特征在于,所述接收模块接收到的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识和每个待恢复数据项的标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间;所述获取模块,包括: 第四确定单元,用于根据每个待恢复数据项的标识确定与所述每个待恢复数据项对应的所述服务器的数据项; 第四比对单元,用于根据所述恢复标识将所述每个待恢复数据项与对应的所述服务器的数据项进行比对; 所述第四确定单元,还用于在所述第四比对单元比对出一待恢复数据项与对应的所述服务器的数据项的部分项内容或全·部内容不相同时,将对应的所述服务器的数据项确定为修改数据项; 所述第四确定单元,还用于将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项; 第四合并单元,用于将所述第四确定单元确定的修改数据项和所述新增数据项合并为差异数据项集合。
20.一种客户端,其特征在于,所述客户端包括: 上传模块,用于将数据同步请求上传给服务器,所述数据同步请求中携带有恢复标识和所述客户端的数据项,使得所述服务器根据所述恢复标识和所述客户端的数据项获取差异数据项集合,将所述差异数据项集合发送给所述客户端; 接收模块,用于接收所述服务器发送的所述差异数据项集合; 同步模块,用于根据所述接收模块接收到的差异数据项集合同步所述客户端的本地数据; 其中,所述差异数据项集合中包括所述服务器的数据项中相对于所述客户端的数据项的修改数据项和新增数据项。
21.根据权利要求20所述的客户端,其特征在于,所述上传模块上传的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,使得所述服务器根据所述恢复标识将所述客户端的每个数据项与所述服务器的所有数据项进行比对,并在比对出所述客户端的一数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项,将与所述客户端的所有数据项的所有内容均不相同的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
22.根据权利要求20所述的客户端,其特征在于,所述上传模块上传的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项,所述数据同步请求中还携带有所述客户端的每个数据项的标识,使得所述服务器根据所述客户端的每个数据项的标识确定与所述客户端的每个数据项对应的所述服务器的数据项,并根据所述恢复标识将所述客户端的每个数据项与对应的所述服务器的数据项进行比对,在比对出所述客户端的一数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项,将与所述客户端的所有数据项均不对应的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
23.根据权利要求20所述的方法,其特征在于,所述上传模块上传的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间,使得所述服务器根据所述恢复标识将每个待恢复数据项与所述服务器的所有数据项进行比对,并在比对出一待恢复数据项与所述服务器的一数据项的部分项内容相同且其余项内容不相同时,将所述服务器的一数据项确定为修改数据项,将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
24.根据权利要求20所述的客户端,其特征在于,所述上传模块上传的数据同步请求中携带的所述客户端的数据项为所述客户端的所有数据项中的至少一个待恢复数据项,所述数据同步请求中还携带有时间标识和每个待恢复数据项的标识,所述时间标识用于标识所述客户端上一次发送数据同步请求的时间,使得所述服务器根据每个待恢复数据项的标识确定与所述每个待恢复数据项对应的所述服务器的数据项,并根据所述恢复标识将所述每个待恢复数据项与对应的所述服务器的数据项进行比对,并在比对出一待恢复数据项与对应的所述服务器的数据项的部分项内容或全部内容不相同时,将对应的所述服务器的数据项确定为修改数据项,将在所述时间标识所标识的时间之后添加的所述服务器的数据项确定为新增数据项之后,将所述修改数据项和所述新增数据项合并为差异数据项集合。
25.根据权利要求23或24所述的客户端,其特征在于,所述客户端还包括: 确定模块,用于确定用户在所述客户端的所有数据项中选择的数据项;并根据所述确定的用户选择的数据项确定待恢复数据项。
26.根据权利要求20所述的客户端,其特征在于,所述同步模块,包括: 替换单元,用于将所述差异数据项集合中的修改数据项替换所述客户端的本地数据中对应的数据项; 添加单元,用于将所述差异数据项集合中的新增数据项添加到所述客户端的本地数据中。
27.根据权利要求26所述的客户端,其特征在于,所述同步模块,还包括: 显示单元,用于显示所述差异数据项集合中的修改数据项; 确定单元,用于确定用户在所述显示单元显示的所述差异数据项集合中的修改数据项中选择的修改数据项; 所述替换单元,具体用于将所述确定单元确定的所述差异数据项集合中用户选择的修改数据项替换所述客户端的本地数据中对应的数据项。
28.根据权利要求27所述的客户端,其特征在于, 所述显示单元,还用于显示所述差异数据项集合中的新增数据项; 所述确定单元,还用于确定用户在所述显示单元显示的所述差异数据项集合中的新增数据项中选择的新增数据项; 所述添加单元,具体用于将所述确定单元确定的所述差异数据项集合在用户选择的新增数据项添加到所述客户端的本地数据中。
29.一种数据同步的系统,其特征在于,所述系统包括:服务器和客户端; 其中,所述服务器如上述权利要求15至19任一权利要求所述的服务器; 所述客户端如上述权利要 求20至28任一权利要求所述的客户端。
【文档编号】H04L29/06GK103428264SQ201310263448
【公开日】2013年12月4日 申请日期:2013年6月27日 优先权日:2013年6月27日
【发明者】闵昕 申请人:华为软件技术有限公司