CN103354560B - 数据的分解同步方法及系统 - Google Patents

数据的分解同步方法及系统 Download PDF

Info

Publication number
CN103354560B
CN103354560B CN201310268827.6A CN201310268827A CN103354560B CN 103354560 B CN103354560 B CN 103354560B CN 201310268827 A CN201310268827 A CN 201310268827A CN 103354560 B CN103354560 B CN 103354560B
Authority
CN
China
Prior art keywords
server
client
data
anchor
current sync
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310268827.6A
Other languages
English (en)
Other versions
CN103354560A (zh
Inventor
梁捷
李建军
唐正
王尧佳
苏翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Tmall Technology Co Ltd
Original Assignee
Guangzhou Dongjing Computer Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Dongjing Computer Technology Co Ltd filed Critical Guangzhou Dongjing Computer Technology Co Ltd
Priority to CN201310268827.6A priority Critical patent/CN103354560B/zh
Publication of CN103354560A publication Critical patent/CN103354560A/zh
Priority to PCT/CN2013/089528 priority patent/WO2014206034A1/zh
Priority to US14/981,078 priority patent/US10021182B2/en
Application granted granted Critical
Publication of CN103354560B publication Critical patent/CN103354560B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供了一种数据的分解同步方法及系统,其中的方法包括:客户端根据预先设定的数据分解标准对需要同步的数据进行分解,然后分批数据发送给服务器进行同步;服务器接收客户端发送的数据,然后服务器根据各自的当前同步锚确定其之间的差集数据;服务器更新自己的当前同步锚并发送给客户端;服务器根据预先设定的数据分解标准对差集数据进行分解并分批将所分解的差集数据发送给客户端;客户端接收服务器发送的差集数据并更新当前同步锚。本发明解决了同步过程中数据太多或者差集数据较大的情况下存在的数据同步失败的风险,使得用户在同步操作上更具操作性和可控性,以提升用户的使用体验。

Description

数据的分解同步方法及系统
技术领域
本发明涉及数据同步技术领域,更为具体地,涉及一种数据的分解同步方法及系统。
背景技术
随着移动通信网络技术和计算机的不断发展,人们对设备的功能性要求也不断提高。其中,数据同步实现了多个终端设备、平台和网络上远端数据的共享,而SyncML协议的出现使得在不同设备上同步网络数据成为可能。例如,用户可以通过移动电话阅读电子邮件,并可以对已读的邮件进行修改、更新和维护,经过数据同步后,用户下一次在使用计算机阅读电子邮件时,就会清楚的知道哪些是已经处理过的邮件,哪些是未处理的邮件。
SyncML协议是一种行业通用的移动数据同步协议,由SyncML Initiative发行,是一种开放性协议,可以说是目前数据同步领域的一个公共标准,里面对同步类型、同步过程都做了描述。
图1示出了SyncML协议中的一次同步过程。
如图1所示,SyncML协议将一次同步过程划分为6个Package,其中,
Package#1:客户端向服务器发送初始化信息,请求同步,包括客户端的当前同步锚和同步方式;
Package#2:服务器向客户端确认同步请求,最重要的是确认双方本次采用的是何种同步方式,例如采用的是双向同步或者是慢同步等;
Package#3:客户端将本次要同步的数据以及相对应的数据指纹发送到服务器;
Package#4:服务器处理客户端发送上来的同步数据,同时找出客户端和服务器间的差集数据,也就是将Package#1中发送的客户端当前同步锚和服务器中的同步锚间的差集数据和对应的指纹下发给客户端;
Package#5:客户端处理服务器下发的差集数据并将处理结果和对应的luid和guid的关系上传到服务器,其中luid是数据在客户端的唯一编号,guid是数据在服务器的唯一编号;
Package#6:服务器确认客户端的操作结果和记录映射关系,然后将同步成功与否的结果和当前最新的同步锚发送给客户端。
当客户端收到Package#6消息包中的确认结果时,将目前的数据版本,也就是服务器返回的同步锚记录下来后,即标记着此次同步过程顺利完成。此时客户端的同步锚和服务器的同步锚是一样的,也就是说在此次同步过程顺利完成后,客户端和服务器间是没有差集数据的。
从SyncML协议的同步过程中可以看出,如果某一次同步过程中需要同步的数据比较多,也就是说在Package#4消息包里的差集数据较多的时候,由于移动网络的多变性,同步的时间就可能比较久。用户在同步数据时,当用户看着一直在同步中的同步界面而不想再等下去,但又担心数据丢失而不敢关闭时,就大大降低了用户的体验。另外对于移动网络来说,存在很多不确定的因素,比如网络的稳定性、网关的超时等等问题,这些问题无疑都加大了数据同步失败的风险,一旦数据同步失败,用户还得重头再来。对于用户来说,同步失败和重头再来的体验都是用户所不能接受的。
发明内容
鉴于上述问题,本发明的目的是提供一种数据的分解同步方法及系统,实现将一次同步分解过程为多个同步过程,用以解决在同步过程中数据太多或者差集数据较大的情况下存在的数据同步失败的风险,从而提升用户的使用体验。
根据本发明的一个方面,提供一种数据的分解同步方法,包括:
客户端向服务器发送同步请求以及客户端的当前同步锚;
服务器确认所述同步请求并接收客户端的当前同步锚;
当客户端存在需要同步的数据且同步的数据超过预定阀值时,客户端根据预先设定的数据分解标准对需要同步的数据进行分解,然后分批将所分解的数据发送给服务器进行同步;
服务器接收客户端发送的数据,并根据客户端的当前同步锚和服务器的当前同步锚确定客户端与服务器之间的差集数据,然后服务器更新服务器的当前同步锚,并将服务器的当前同步锚发送给客户端;
当差集数据超过预定阀值时,服务器根据预先设定的数据分解标准对差集数据进行分解,然后分批将所分解的差集数据发送给客户端进行同步;
客户端接收服务器发送的差集数据并更新客户端的当前同步锚。
其中,在服务器更新服务器的当前同步锚的过程中,服务器每完成一次有数据变化的同步,服务器以同步锚递增的方式更新服务器的当前同步锚,然后服务器将服务器的当前同步锚发送给客户端,客户端将服务器的当前同步锚作为客户端的当前同步锚进行更新。
另一方面,本发明还提供一种数据的分解同步系统,包括:
同步请求单元,用于客户端向服务器发送同步请求以及客户端的当前同步锚;
同步确认单元,用于服务器确认所述同步请求并接收客户端的当前同步锚;
客户端数据分解单元,用于当客户端存在需要同步的数据且该需要同步的数据超过预定阀值时,客户端根据预先设定的数据分解标准对需要同步的数据进行分解,然后分批将所分解的数据发送给服务器进行同步;
服务器接收单元,用于服务器接收客户端发送的数据;
差集数据确定单元,用于服务器根据客户端的当前同步锚和服务器的当前同步锚确定客户端与服务器之间的差集数据;
同步锚更新单元,用于服务器更新服务器的当前同步锚,并将服务器的当前同步锚发送给客户端;
差集数据发送单元,用于当差集数据超过预定阀值时,服务器根据预先设定的数据分解标准对差集数据进行分解,然后分批将所分解的差集数据和服务器的当前同步锚发送给客户端进行同步;
客户端接收单元,用于客户端接收服务器发送的差集数据并更新客户端的当前同步锚。
利用上述根据本发明的数据的分解同步方法及系统,能够将一次同步分解过程为多个同步过程,解决了在同步过程中数据太多或者差集数据较大的情况下存在的数据同步失败的风险,使用户在数据同步操作上更具操作性和可控性,从而提升用户的使用体验。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
图1为SyncML协议中的一次同步过程;
图2为根据本发明实施例的数据的分解同步流程示意图;
图3-1为根据本发明实施例的客户端1第一次同步分解过程交互流程图;
图3-2为根据本发明实施例的客户端1第二次同步分解过程交互流程图;
图4-1为根据本发明实施例的服务器第一次同步分解过程交互流程图;
图4-2为根据本发明实施例的服务器第二次同步分解过程交互流程图;
图5为根据本发明实施例的数据的分解同步系统方框示意图。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
以下将结合附图对本发明的具体实施例进行详细描述。
针对前述现有技术中当同步的数据过多时,数据同步时间太久以及可能存在数据同步失败,从而使用户体验变差的问题,本发明通过对同步的数据进行分解,将一次同步分解过程为多个细小的同步过程,解决了在同步过程中数据太多或者差集数据较大的情况下存在的数据同步失败的风险,从而提升用户的体验。
图2示出了根据本发明实施例的数据的分解同步方法流程示意图。如图2所示,本发明提供的数据的分解同步方法包括:
在步骤S210中,客户端向服务器发送同步请求以及客户端的当前同步锚。
在步骤S220中,服务器确认客户端的同步请求并接收客户端的当前同步锚。
在步骤S230中,当客户端存在需要同步的数据且该需要同步的数据超过预定阀值时,客户端根据预先设定的数据分解标准对需要同步的数据进行分解,然后分批将所分解的数据发送给服务器进行同步。
需要说明的是,在步骤S210中,也就是在客户端向服务器发起同步之前,客户端和服务器都有自己的初始同步锚,如果以前从来没有同步过,初始同步锚为0。客户端的当前同步锚是客户端在发起同步请求时发给服务器的。
在本发明的一个示例中,当所述客户端存在需要同步的数据且所述同步的数据超过预定阀值时,执行步骤S230,客户端按预先设定的数据分解标准将数据进行分解,然后分批次发送给服务器。
例如:预定分解标准可以是当所述客户端存在的需要同步的数据量超过N条时,则将所述客户端存在的需要同步的数据分成多批分别进行同步,每批数据量不超过N条。
在步骤S240中,服务器接收客户端发送的数据,并根据客户端的当前同步锚和服务器的当前同步锚确定客户端与服务器之间的差集数据。
接着,在步骤S250中,服务器更新服务器的当前同步锚,并将服务器的当前同步锚发送给客户端。
其中,步骤S250中,服务器接收客户端发送的数据后,利用客户端发送的数据对服务器中的数据进行更新同步,在服务器更新服务器的当前同步锚的过程中,服务器每次从客户端接收一批数据并利用这批数据完成数据更新,服务器以同步锚递增的方式更新服务器的当前同步锚。然后服务器将服务器的当前同步锚发送给客户端。
客户端接收服务器的发送的当前同步锚作为客户端的当前同步锚进行更新。
也就是说,服务器每次更新完当前的同步锚后,都会把自己的当前同步锚下发给客户端,客户端就会更新自己的当前同步锚为服务器下发的同步锚,在每完成一批同步时,客户端都会将自己的当前同步锚更新为跟服务器的当前同步锚一致。需要说明的是,即使客户端和服务器的当前同步锚一致,也不能意味着同步过程的结束,因为有可能客户端还有需要同步的数据要发给服务器。
在步骤S260中,当差集数据超过预定阀值时,服务器根据预先设定的数据分解标准对差集数据进行分解,然后分批将所分解的差集数据发送给客户端进行同步。
其中,在服务器分批将所分解的差集数据和服务器的当前同步锚发送给客户端进行同步的过程中,服务器在客户端的当前同步锚和服务器的当前同步锚之间确定中间同步锚;服务器将客户端的当前同步锚和中间同步锚之间的差集数据和中间同步锚发送给客户端;客户端接收服务器发送的差集数据并将中间同步锚作为客户端的当前同步锚。
在步骤S270中,客户端接收服务器发送的差集数据并更新客户端的当前同步锚。
作为本发明的一个示例,客户端的当前同步锚为2,服务器的当前同步锚为4,说明服务器有数据需要同步到客户端,假设客户端当前没有数据要同步到服务器,则在步骤S240中,服务器计算客户端的当前同步锚2和服务器的当前同步锚4之间有5条差集数据,预定分解标准是每批同步数据不超过3条。则分2次同步,取中间同步锚为3,当第一次同步完成之后,服务器给客户端下发中间同步锚3,客户端的当前同步锚就变成3;当第二次同步完成后,客户端的当前同步锚就为4。此时,客户端和服务器的当前同步锚一样,表明此次同步完成。
需要说明的是,客户端和服务器是当他们有数据需要同步并且需要同步的数据都达到一定数量时才需要都进行分解并同步的。也就是说,当客户端或者服务器有数据需要同步,并且需要同步的数据超过预定的阀值时,才对需要同步的数据进行分解,然后分批发送。实际的情况中,有的是一方有数据需要同步分解,而另一方则没有数据需要同步分解;有的是两方都有数据需要同步分解。
另外需要说明的是,如果两方都有数据需要同步分解时,当客户端向服务器发送同步数据后,服务器更新服务器的当前同步锚,然后服务器确认客户端与服务器之间的差集数据,然后分批将差集数据和中间同步锚发送给客户端,客户端根据服务器下发的同步锚更新客户端的当前同步锚。
由于客户端向服务器同步数据时,首先将要同步的数据生成数据包,然后再将生成的数据包发送给服务器。因此,当客户端在生成数据包的过程中发现需要同步的数据太多时,客户端就会根据预先设定的数据分解标准对将要同步的数据进行分解,然后分批次发送给服务器。由于每完成一次同步,服务器都会更新服务器的当前同步锚,并且服务器也会将服务器的当前同步锚发送给客户端,以作为客户端的当前同步锚。也就是说当客户端每批的数据与服务器同步成功时,服务器都会将服务器的当前同步锚递增,这样就可以确保服务器上每一个同步锚间隔的数据不会太多。
其中,在服务器分批将差集数据发送给客户端进行同步的过程中,如果服务器在本批次数据发送完成后,还有其他分解过程待同步,则服务器在客户端发送本批次数据的同时,服务器还会将有其他分解过程待同步的消息发送给客户端。
在客户端向服务器发送数据时,服务器也会向客户端下发服务器与客户端之间的差集数据。当服务器向客户端下发差集数据时,首先会将差集数据生成数据包,然后再将生成的数据包下发给客户端。因此,当服务器在生成差集数据包的过程中发现服务器与客户端之间的差集数据太多时,服务器就会根据预先设定的数据分解标准在客户端的当前同步锚和服务器的当前同步锚之间确定中间同步锚,服务器在此次同步过程中向客户端下发的差集数据则为客户端的当前同步锚和中间同步锚之间的差集数据,然后服务器将中间同步锚发送给客户端,并返回同步结果给客户端。客户端在接收到服务器的同步返回结果和中间同步锚之后,将中间同步锚作为客户端的当前同步锚,当客户端接收到返回结果为有后续数据等待同步时将再一次向服务器发起同步请求,直到服务器与客户端的当前同步锚一致时,也就表示服务器与客户端之间的数据一致了。
具体地,下面将以一个具体地示例对本发明提供的数据的分解同步过程进行详细地说明。
假设预先设定的数据分解标准为3条数据,也就是说当客户端发现要同步的数据超过3条时,客户端就会以每3条数据为一个数据包进行打包并发送给服务器。
假设用户当前从来没有与服务器进行过数据同步,用户想要用客户端1的数据与服务器进行同步,而此时服务器暂时没有用户的数据,,客户端1之前也没有与服务器进行同步过,也就是说客户端1与服务器的当前同步锚都为0。假设目前客户端1下待同步的数据如下表1所示:
luid guid datas fp
1 hello 2GDW8g2FkDH32aaiuwLYhkN
2 hi 166Fe42odlADP0sg41H4B17
3 good 3XFTqM2P6f6h2HHqca3yRoNv
4 ok 3VYxYz1hNSc12w8quj14KQ7i
5 nice 2sq8p23ly8IkklvA143vx5a
表1
其中,luid为数据在客户端的编号;guid为数据在服务器的编号;datas为数据内容;fp为数据的指纹。这时,客户端在向服务器发起同步请求时,发现有5条数据要同步,根据预先设定的数据分解标准,可以将这5条数据分为两个批次发送给服务器。
为了详细地说明本发明提供的客户端的同步分解过程,图3-1示出了根据本发明实施例的客户端1第一次同步分解过程交互流程图。如图3-1所示:
package1:客户端1将客户端的当前同步锚0发送给服务器请求同步;
package2:服务器接收客户端的当前同步锚信息并向客户端1确认同步请求;
package3:客户端1将本批次luid为1,2,3的数据发送给服务器;
package4:服务器处理客户端1发送过来的同步数据,由于客户端1与服务器的当前同步锚都为0,因此没有差集数据下发给客户端1;
package5:客户端1将对应的luid和guid的关系上传到服务器;
package6:服务器将当前的同步锚变为1,服务器确认客户端1的操作结果并记录映射关系,然后将同步的结果和服务器的当前同步锚发送给客户端1,客户端将自己的当前同步锚变为1,完成本批次的数据同步。
当完成此次同步分解过程后,服务器的当前同步锚为1,服务器的数据如表2所示:
guid datas fp
Guid1 hello 2GDW8g2FkDH32aaiuwLYhkN
Guid2 hi 166Fe42odlADP0sg41H4B17
Guid3 good 3XFTqM2P6f6h2HHqca3yRoNv
表2
由表2可以看出,此次同步分解过程完成了对客户端1前3条数据的同步。当第一次同步分解过程完成时,客户端1当前的同步锚也变为了1,此时客户端1的数据如表3所示:
luid guid datas fp
1 Guid1 hello 2GDW8g2FkDH32aaiuwLYhkN
2 Guid2 hi 166Fe42odlADP0sg41H4B17
3 Guid3 good 3XFTqM2P6f6h2HHqca3yRoNv
4 ok 3VYxYz1hNSc12w8quj14KQ7i
5 nice 2sq8p23ly8IkklvA143vx5a
表3
由表3可以看出,经过一次同步分解过程后,客户端1的guid一栏就有了服务器的标签,而客户端1下一次的同步分解过程将是luid为4和5的数据,因为luid为4和5的数据都没有服务器的标签,也就意味着和服务器没有关系。
为了清楚地说明客户端1下一次的同步分解过程,图3-2示出了根据本发明实施例的客户端1第二次同步分解过程交互流程图。如图3-2所示:
package1:客户端1将客户端的当前同步锚发送给服务器再次请求同步;
package2:服务器向客户端1确认同步请求;
package3:客户端1将本批次luid为4,5的数据发送给服务器;
package4:服务器处理客户端1发送过来的同步数据,由于客户端1与服务器的当前同步锚都为1,因此没有差集数据下发给客户端1;
package5:客户端1将对应的luid和guid的关系上传到服务器;
package6:服务器将当前的同步锚变为2,服务器确认客户端1的操作结果并记录映射关系,然后将同步的结果和服务器的当前同步锚2发送给客户端1,客户端1将自己的当前同步锚更新为2,完成本批次的数据同步。
当此次同步分解过程完成后,客户端1和服务器的当前同步锚都为2,表4和表5分别示出了此时服务器与客户端1的数据。其中,服务器的数据如表4所示:
guid datas fp
Guid1 hello 2GDW8g2FkDH32aaiuwLYhkN
Guid2 hi 166Fe42odlADP0sg41H4B17
Guid3 good 3XFTqM2P6f6h2HHqca3yRoNv
Guid4 ok 3VYxYz1hNSc12w8quj14KQ7i
Guid5 nice 2sq8p23ly8IkklvA143vx5a
表4
客户端1的数据如表5所示:
luid guid datas fp
1 Guid1 hello 2GDW8g2FkDH32aaiuwLYhkN
2 Guid2 hi 166Fe42odlADP0sg41H4B17
3 Guid3 good 3XFTqM2P6f6h2HHqca3yRoNv
4 Guid4 ok 3VYxYz1hNSc12w8quj14KQ7i
5 Guid5 nice 2sq8p23ly8IkklvA143vx5a
表5
通过表4和表5可以看出,经过第二次同步分解过程后,客户端1的全部数据都已经同步到服务器,从而保证了客户端1与服务器数据的一致性。
示例1详细说明了本发明提供的客户端的同步分解过程,通过示例1可以将客户端已有的数据与服务器进行同步。作为本发明的另一个示例,示例2将详细说明本发明提供的服务器的同步分解过程。
在示例1的基础上,假设用户此时有一台全新的设备作为客户端2,那么此时客户端2的当前同步锚为0,数据为空,服务器的数据沿用示例1的数据。服务器之前已经同步过用户的数据,同步锚为2。此时客户端2向服务器发起同步请求,服务器根据预先设定的数据分解标准在客户端2的当前同步锚0和服务器的当前同步锚2之间确定中间同步锚。同样假设预先设定的数据分解标准为每批同步不超过3条数据,当服务器发现客户端与服务器的当前同步锚之间的差集数据超过3条时,服务器就会以每3条数据确定一个中间同步锚进行打包,然后下发给客户端2。
由于服务器的数据沿用的是示例1的数据,也就是说服务器此时的数据如表4所示,根据预先设定的数据分解标准,将这5条数据以每3条数据确定一个中间同步锚,然后下发给客户端2。
为了详细说明本发明提供的服务器的同步分解过程,图4-1示出了根据本发明实施例的服务器第一次同步分解过程交互流程图。如图4-1所示:
package1:客户端2将客户端2的当前同步锚0发送给服务器请求同步;
package2:服务器接收客户端2的当前同步锚0信息并向客户端2确认同步请求;
package3:客户端2没有同步的数据发送给服务器;
package4:由于此时客户端2的当前同步锚为0,而服务器的当前同步锚为2,在0-2之间的数据有guid1、guid2、guid3、guid4和guid5,因此服务器在客户端2与服务器的当前同步锚之间确定1为中间同步锚,此时服务器向客户端2下发的差集数据就变为了同步锚0-1之间的数据;
package5:客户端2将对应的luid和guid的关系上传到服务器;
package6:服务器将中间同步锚1和有后续数据等待同步的同步结果发送给客户端2,客户端2将自己的当前同步锚更新为1,完成本次的数据同步。
当完成这次同步后,客户端2当前的同步锚为1,而服务器的当前同步锚仍为2,客户端2经过本次同步后的数据如表6所示:
luid guid datas fp
1 Guid1 hello 2GDW8g2FkDH32aaiuwLYhkN
2 Guid2 hi 166Fe42odlADP0sg41H4B17
3 Guid3 good 3XFTqM2P6f6h2HHqca3yRoNv
表6
由表6可以看出,客户端2此时与服务器完成了guid为guid1、guid2和guid3的数据同步。由于客户端2在package6中收到的同步结果是“有后续数据等待同步”,因此客户端2在完成与服务器第一次同步分解过程后,将再次向服务器发起同步请求。图4-2示出了根据本发明实施例的服务器第二次同步分解过程交互流程图。如图4-2所示:
package1:客户端2将客户端的当前同步锚1发送给服务器再次请求同步;
package2:服务器接收客户端2的当前同步锚1信息并向客户端确认同步请求;
package3:客户端没有同步的数据发送给服务器;
package4:由于此时客户端的当前同步锚为1,而服务器的当前同步锚为2,在1-2之间的数据有guid4和guid5,没有达到预定的数据分解标准,因此不需要将数据进行分解,此时服务器向客户端下发的差集数据就为同步锚1-2之间的差集数据,也就是guid为guid4和guid5的数据;
package5:客户端将对应的luid和guid的关系上传到服务器;
package6:由于没有数据分解,也就没有中间同步锚,因此服务器将当前的同步锚发送给客户端作为客户端的当前同步锚并将同步成功的结果发送给客户端,客户端2将自己的当前同步锚更新为2,完成本次的数据同步。
当完成此次同步后,客户端的数据如表7所示:
luid guid datas fp
1 Guid1 hello 2GDW8g2FkDH32aaiuwLYhkN
2 Guid2 hi 166Fe42odlADP0sg41H4B17
3 Guid3 good 3XFTqM2P6f6h2HHqca3yRoNv
4 Guid4 ok 3VYxYz1hNSc12w8quj14KQ7i
5 Guid5 nice 2sq8p23ly8IkklvA143vx5a
表7
由表7可以看出,通过服务器第二次同步分解过程后,客户端和服务器的当前同步锚都为2,并且同时根据服务器在package6中发送给客户端2的同步结果中可以知道整个同步流程都完成了,因此客户端与服务器的数据也就一致了。
与上述方法相对应,本发明还提供一种数据的分解同步系统,图5示出了根据本发明实施例的数据的分解同步系统方框示意图。
如图5所示,本发明提供的数据的分解同步系统500包括同步请求单元510、同步确认单元520、客户端数据分解单元530、服务器接收单元540、差集数据确定单元550、同步锚更新单元560、差集数据发送单元570和客户端接收单元580。
其中,同步请求单元510用于客户端向服务器发送同步请求以及客户端的当前同步锚;
同步确认单元520用于服务器确认客户端的同步请求并接收客户端的当前同步锚;
客户端数据分解单元530用于当客户端存在需要同步的数据且该同步的数据超过预定阀值时,客户端根据预先设定的数据分解标准对需要同步的数据进行分解,然后分批将所分解的数据发送给服务器进行同步;
服务器接收单元540用于服务器接收客户端发送的数据;
差集数据确定单元550用于服务器根据客户端的当前同步锚和服务器的当前同步锚确定客户端与服务器之间的差集数据;
同步锚更新单元560用于服务器更新服务器的当前同步锚并将服务器的当前同步锚发送给客户端;
差集数据发送单元570用于当差集数据超过预定阀值时,服务器根据预先设定的数据分解标准对差集数据进行分解,然后分批将所分解的差集数据发送给客户端进行同步;
客户端接收单元580用于客户端接收服务器发送的差集数据并更新客户端的当前同步锚。
其中,同步锚更新单元560在服务器更新服务器的当前同步锚的过程中,服务器每完成一次有数据变化的同步,服务器以同步锚递增的方式更新服务器的当前同步锚,然后服务器将服务器的当前同步锚发送给客户端,客户端将服务器的当前同步锚作为客户端的当前同步锚进行更新。
另外,差集数据发送单元570进一步包括中间同步锚确定单元(图中未示出),用于在服务器分批将所分解的差集数据发送给客户端的过程中,服务器在客户端的当前同步锚和服务器的当前的同步锚之间确定中间同步锚,服务器将客户端的当前同步锚和中间同步锚之间的差集数据和中间同步锚发送给客户端,然后客户端接收服务器发送的差集数据并将中间同步锚作为客户端的当前同步锚。
本发明提供的数据的分解同步方法及系统,在一次同步过程中,客户端或者服务器端都可以根据设定的数据分解标准,合理的将原来需要一次同步的过程分解过程为多个细小的同步过程。由于每一次的同步过程都被分解得比较细,数据粒度变小了,因此用户在同步操作上也更具有操作性和可控性。
如上参照附图以示例的方式描述了根据本发明的数据的分解同步方法及系统。但是,本领域技术人员应当理解,对于上述本发明所提出的数据的分解同步方法及系统,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。

Claims (5)

1.一种数据的分解同步方法,包括:
客户端向服务器发送同步请求,所述同步请求中包括本次同步采用的同步方式和客户端的当前同步锚;
所述服务器确认所述同步请求,确认同步请求是指确认本次同步采用的同步方式和接收所述客户端的当前同步锚;
当所述客户端存在需要同步的数据且所述同步的数据超过预定阀值时,所述客户端根据预先设定的数据分解标准对需要同步的数据进行分解,然后分批将所分解的数据发送给服务器进行同步;
所述服务器接收所述客户端发送的数据,并根据所述客户端的当前同步锚和所述服务器的当前同步锚,确定所述客户端与所述服务器的之间的差集数据;
所述服务器以同步锚递增的方式更新所述服务器的当前同步锚,并将所述服务器的当前同步锚发送给所述客户端;
当所述差集数据超过预定阀值时,所述服务器根据预先设定的数据分解标准对所述差集数据进行分解,然后分批将所分解的差集数据发送给客户端进行同步,其中,在所述服务器分批将所分解的差集数据发送给所述客户端进行同步的过程中,所述服务器在所述客户端的当前同步锚和所述服务器的当前同步锚之间确定中间同步锚;所述服务器将所述客户端的当前同步锚和所述中间同步锚之间的差集数据和所述中间同步锚发送给所述客户端;所述客户端接收所述服务器发送的差集数据并将所述中间同步锚作为所述客户端的当前同步锚;
所述客户端接收所述服务器发送的差集数据并更新所述客户端的当前同步锚。
2.如权利要求1所述的数据的分解同步方法,其中,在所述服务器更新所述服务器的当前同步锚的过程中,
所述服务器每完成一次有数据变化的同步,所述服务器以同步锚递增的方式更新所述服务器的当前同步锚,然后所述服务器将所述服务器的当前同步锚发送给所述客户端,所述客户端将所述服务器的当前同步锚作为所述客户端的当前同步锚进行更新。
3.如权利要求1所述的数据的分解同步方法,其中,在所述服务器分批将所述差集数据发送给客户端进行同步的过程中,如果所述服务器在本批次数据发送完成后,还有其他分解过程待同步,则所述服务器在向所述客户端发送本批次数据的同时,所述服务器还会将有其他分解过程待同步的消息发送给所述客户端。
4.一种数据的分解同步系统,包括:
同步请求单元,用于客户端向服务器发送同步请求,所述同步请求中包括本次同步采用的同步方式和客户端的当前同步锚;
同步确认单元,用于所述服务器确认所述同步请求,确认同步请求是指确认本次同步采用的同步方式和接收所述客户端的当前同步锚;
客户端数据分解单元,用于当所述客户端存在需要同步的数据且所述同步的数据超过预定阀值时,所述客户端根据预先设定的数据分解标准对需要同步的数据进行分解,然后分批将所分解的数据发送给服务器进行同步;
服务器接收单元,用于所述服务器接收所述客户端发送的数据;
差集数据确定单元,用于所述服务器根据所述客户端的当前同步锚和所述服务器的当前同步锚确定所述客户端与所述服务器之间的差集数据;
同步锚更新单元,用于所述服务器以同步锚递增的方式更新所述服务器的当前同步锚,并将所述服务器的当前同步锚发送给所述客户端;
差集数据发送单元,用于当所述差集数据超过预定阀值时,所述服务器根据预先设定的数据分解标准对所述差集数据进行分解,然后分批将所分解的差集数据发送给客户端进行同步,其中,在所述服务器分批将所分解的差集数据发送给所述客户端进行同步的过程中,所述服务器在所述客户端的当前同步锚和所述服务器的当前同步锚之间确定中间同步锚;所述服务器将所述客户端的当前同步锚和所述中间同步锚之间的差集数据和所述中间同步锚发送给所述客户端;所述客户端接收所述服务器发送的差集数据并将所述中间同步锚作为所述客户端的当前同步锚;
客户端接收单元,用于所述客户端接收所述服务器发送的差集数据并更新所述客户端的当前同步锚。
5.如权利要求4所述的数据的分解同步系统,其中,所述同步锚更新单元在所述服务器更新所述服务器的当前同步锚的过程中,
所述服务器每完成一次有数据变化的同步,所述服务器以同步锚递增的方式更新所述服务器的当前同步锚,然后所述服务器将所述服务器的当前同步锚发送给所述客户端,所述客户端将所述服务器的当前同步锚作为所述客户端的当前同步锚进行更新。
CN201310268827.6A 2013-06-28 2013-06-28 数据的分解同步方法及系统 Active CN103354560B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310268827.6A CN103354560B (zh) 2013-06-28 2013-06-28 数据的分解同步方法及系统
PCT/CN2013/089528 WO2014206034A1 (zh) 2013-06-28 2013-12-16 数据的分解同步方法及系统
US14/981,078 US10021182B2 (en) 2013-06-28 2015-12-28 Method and apparatus for data synchronization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310268827.6A CN103354560B (zh) 2013-06-28 2013-06-28 数据的分解同步方法及系统

Publications (2)

Publication Number Publication Date
CN103354560A CN103354560A (zh) 2013-10-16
CN103354560B true CN103354560B (zh) 2017-05-17

Family

ID=49310866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310268827.6A Active CN103354560B (zh) 2013-06-28 2013-06-28 数据的分解同步方法及系统

Country Status (3)

Country Link
US (1) US10021182B2 (zh)
CN (1) CN103354560B (zh)
WO (1) WO2014206034A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354560B (zh) 2013-06-28 2017-05-17 广州市动景计算机科技有限公司 数据的分解同步方法及系统
CN104519142B (zh) * 2015-01-10 2019-09-20 蓝信移动(北京)科技有限公司 一种数据同步方法和系统、客户端、协议服务器
CN111835913B (zh) * 2016-03-01 2021-04-27 创新先进技术有限公司 一种设备信息收集方法、智能终端、服务器及系统
US10282138B2 (en) * 2016-09-27 2019-05-07 International Business Machines Corporation Secondary read cache optimization in data replication environments
CN106973099B (zh) 2017-03-28 2019-08-06 Oppo广东移动通信有限公司 一种数据更新方法、装置及系统
CN109086295B (zh) * 2018-06-13 2023-05-30 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备及存储介质
CN109410044B (zh) * 2018-08-22 2020-10-23 泰链(厦门)科技有限公司 区块链系统及其中利用非生产者节点闲置计算资源的方法
EP3962024A4 (en) * 2018-12-04 2022-06-15 Hong Kong Sunstar Technology Co., Limited RECORD TRANSMISSION METHOD AND DEVICE
CN112104742A (zh) * 2020-09-21 2020-12-18 北京嘀嘀无限科技发展有限公司 信息同步方法、装置、服务器、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009516A (zh) * 2006-01-26 2007-08-01 华为技术有限公司 一种进行数据同步的方法及系统
CN102508834A (zh) * 2011-09-22 2012-06-20 用友软件股份有限公司 基于消息的大型事务应用装置和方法
CN102915325A (zh) * 2012-08-11 2013-02-06 深圳市极限网络科技有限公司 基于md5哈希列表的文件分解与组合技术

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006004717A2 (en) * 2004-06-30 2006-01-12 Jumpstart Wireless Corporation System and method for extending business systems to a mobile workforce
US8069226B2 (en) * 2004-09-30 2011-11-29 Citrix Systems, Inc. System and method for data synchronization over a network using a presentation level protocol
CN103354560B (zh) 2013-06-28 2017-05-17 广州市动景计算机科技有限公司 数据的分解同步方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009516A (zh) * 2006-01-26 2007-08-01 华为技术有限公司 一种进行数据同步的方法及系统
CN102508834A (zh) * 2011-09-22 2012-06-20 用友软件股份有限公司 基于消息的大型事务应用装置和方法
CN102915325A (zh) * 2012-08-11 2013-02-06 深圳市极限网络科技有限公司 基于md5哈希列表的文件分解与组合技术

Also Published As

Publication number Publication date
US10021182B2 (en) 2018-07-10
US20160134695A1 (en) 2016-05-12
CN103354560A (zh) 2013-10-16
WO2014206034A1 (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
CN103354560B (zh) 数据的分解同步方法及系统
CN105933888B (zh) 一种基于NFC的eSIM卡烧录方法及装置
EP3447631B1 (en) Writing trajectory synchronization method and system for multiple clients
CN104348878A (zh) 用于远程控制移动终端的方法、装置、移动终端及系统
US20150372711A1 (en) Data compression method, data restoration method, apparatuses, and system
CN109246762B (zh) 一种本地业务分流方法及装置
CN106535156A (zh) 虚拟用户识别模块卡的迁移方法、终端、服务器、系统
CN101447874A (zh) 一种数据同步方法、客户端及服务器
CN103200146B (zh) 终端和服务器的数据同步方法和装置
CN102647470A (zh) 在线应用平台内云下载的方法及在线应用平台系统
CN104780211A (zh) 数据同步方法和装置
CN101510872A (zh) 远程用户拨号认证服务客户端、服务器、发送/接收方法
CN103501534A (zh) 一种移动设备上同步时间的方法
CN102946634B (zh) 通信装置和数据通信方法
CN105471818B (zh) 应用软件间的信息传递方法和系统
CN103533024A (zh) 一种移动设备上同步固件的方法
CN107454174A (zh) 实现网络通讯录数据同步的方法
CN106879005A (zh) 一种ap的配置方法及装置
CN106102040A (zh) 一种虚拟客户识别模块sim卡的切换方法及装置
CN102281265A (zh) 一种实现列表认证同步的方法及系统
CN104639535A (zh) 数传电台数据传输协议自适应方法及装置
CN105721528B (zh) 一种局域网内容推送方法、设备及系统
CN107635224B (zh) 一种接入核心网的控制方法及装置
US20140146898A1 (en) Method and apparatus for data communications over power lines
CN103546359A (zh) 基于imap的数据同步方法、服务器、系统及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: GUANGZHOU DONGJING COMPUTER TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: GUANGZHOU JINGYING INFORMATION TECHNOLOGY CO., LTD.

Effective date: 20140901

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 510665 GUANGZHOU, GUANGDONG PROVINCE TO: 510627 GUANGZHOU, GUANGDONG PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20140901

Address after: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio square 14 storey tower

Applicant after: Guangzhou Dongjing Computer Technology Co., Ltd.

Address before: 510665, Guangzhou, Guangdong, Tianhe District province rhyme Road 16, 2, 4 Building

Applicant before: Guangzhou Jingying Information Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200526

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio square 14 storey tower

Patentee before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210303

Address after: Room 507, 5 / F, building 3, 969 Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province 311100

Patentee after: ZHEJIANG TMALL TECHNOLOGY Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Alibaba (China) Co.,Ltd.