一种数据同步方法、客户端及服务器的制作方法

文档序号:7929251阅读:156来源:国知局
专利名称:一种数据同步方法、客户端及服务器的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种数据同步方法、客户端及服务器。
背景技术
数据同步技术已经得到广泛的应用,利用数据同步技术,用户可以随时 随地进行信息的接收和发送,用一台手持设备执行设备的应用程序,将数据 交互和执行应用程序的结果存储到手持设备中,并且保持与其他数据设备中 这种类型的数据一致。
在现有技术中,数据同步(Data Synchronization DS)技术中使用了一种 称为指纹(Fingerprint)的方法,指纹是对一组数据通过某种算法处理后得到 的一个数值。数据的任何变化都会导致指纹的不同,因此指纹可以有效标识 数据。指纹的用途是用于服务器(Server)来判别它从客户端(Client)收到 的数据与自身存储的数据是否相同。如果指纹一致,表明服务器与客户端的 数据一样,终端不需要发送,如果指纹不一样,表明数据有修改,这时要看 冲突检测策略,如果是以服务器的数据为准,那终端也没有必要发送数据。 这样,通过比较指纹可以避免发送一些不必要的数据,从而节省了流量。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题指纹 有多种算法,通信双方使用一致的算法,可以进行算法协商或者指定算法。 但是,变更日志(Changelog)中有时存在冲突的数据项,这时就需要客户端 发送指纹进行比对,但对于客户端单端产生指纹,服务器保存的情况,这时 服务器的Changelog中的数据项是没有指纹的,因此发送指纹是无用的。如果 双方进行正常增量同步时发生了中断,重新发起同步后,客户端需要把自己changelog中的数据项的指纹发送给服务器,这时也存在着服务器一些相应的 数据项没有指纹的问题,对于这些数据项,客户端也不需要发送指纹。客户 端与服务器之间多了一次交互,浪费了空口资源。

发明内容
本发明实施例的目的在于提供一种数据同步方法、客户端及服务器,用 以解决盲目发送指纹进行比对的问题,减少服务器与客户端的交互,节约无 线资源。
为实现上述目的,本发明实施例提供一种数据同步方法,该方法包括 接收服务器发来的服务器数据变更信息;将客户端数据变更信息与所述的服 务器数据变更信息进行比对,获取相同的数据项标识;向服务器发送所述相 同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器 中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内容, 对客户端对应的同步数据进行更改。
为实现上述目的,本发明实施例还提供一种数据同步方法,该方法包括 向客户端发送服务器数据变更信息,用于客户端迸行数据变更信息比对并获 取相同的数据项标识;接收所述相同的数据项标识对应的客户端数据内容及 指纹,对服务器中对应的同步数据进行更改;或将所述相同的数据项标识对 应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。
为实现上述目的,本发明实施例还提供一种数据同步客户端,该客户端 包括变更信息接收单元,用于接收服务器发来的服务器数据变更信息;变 更信息比对单元,用于将客户端数据变更信息与所述的服务器数据变更信息 进行比对,获取相同的数据项标识;变更信息处理单元,向服务器发送所述 相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务 器中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内 容,对客户端对应的同步数据进行更改。为实现上述目的,本发明实施例还提供一种数据同步服务器,该服务器 包括发送单元,用于向客户端发送服务器数据变更信息,所述服务器数据 变更信息用于客户端进行数据变更信息比对并获取相同的数据项标识;处理 单元,用于接收所述相同的数据项标识对应的客户端数据内容及指纹,对服 务器中对应的同步数据进行更改;或将所述相同的数据项标识对应的服务器 数据内容发送给客户端,用于所述客户端更改对应的同步数据。
上述技术方案具有如下优点或有益效果
本发明提供了一种数据同步指纹发送的装置、方法及系统,解决了盲目 发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的数据同步方法流程图。
图2为本发明实施例二的方法流程图。
图3为本发明实施例三的数据同步客户端的结构示意图。 图4为本发明实施例四的数据同步服务器的结构示意图。 图5为本发明实施例客户端与服务器的数据项的映射关系图。
图6为本发明实施例服务器的Changelog中的变更数据列表。 图7为本发明实施例客户端的Changelog中的变更数据列表。 图8为本发明实施例以客户端为准时更改后的服务器的Changelog中的变 更数据列表。
图9为本发明实施例以服务器为准时更改后的服务器的Changelog中的变 更数据列表。图io为本发明实施例数据同步过程的流程图。
具体实施例方式
下面将结合本发明实施例附图,对本发明实施例中的技术方案进行清楚、 完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全 部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图l为本发明实施例一的数据同步方法流程图。如图l所示,该方法包括 步骤S101:接收服务器发来的服务器数据变更信息;
步骤S102:将客户端数据变更信息与所述的服务器数据变更信息进行比 对,获取相同的数据项标识;
步骤S103:向服务器发送所述相同的数据项标识对应的客户端数据内容 及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收所述相同
的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。 若同步数据更改标准为所述客户端数据变更信息,则将所述相同的数据项标 识对应的客户端数据内容及指纹发送给服务器端,用于更改服务器中对应的
同步数据;若同步数据更改标准为所述服务器数据变更信息,则根据相同的 数据项标识对应的服务器数据内容对客户端对应的同步数据进行更改。
在一优选的实施例中,所述的客户端数据变更信息和服务器数据变更信 息可以包括数据项标识和/或同步数据修改信息,所述的客户端数据变更信息 和服务器数据变更信息也可以包括数据项标识和/或同步数据删除信息。
现有一台终端设备与服务器之间需要发起同步,它们的数据项的映射关 系如图5所示,其中LUID为客户端中某条数据对应的唯一ID, GUID为服 务器中某条数据对应的唯一 ID。图6为服务器的Changelog的数据变更信息, 数据变更信息也可以放在服务器的Changelog外面。图7为客户端的Changelog的数据变更信息,数据变更信息也可以放在客户端的Changdog外面。
根据图6可知,服务器的Changelog中有4个数据项ABCD1012、 ABCD1013、 ABCD 1015和ABCD 1016发生变更,其中,ABCD1012和 ABCD 1015发生修改,ABCD1013和ABCD 1016被删除。
下一次的同步过程中,在PKG2中,服务器将使用〈ModifylD〉来告知接收 方服务器上发生了变更(删除、修改)的数据项LD。根据图6可知,服务器有 4个数据项发生变更,具体过程如下 <SyncML> '
<SyncHdrVerSchema="2.0"VerProto="SyncML/2.0"SessionID="4"MsgID
=T>…
</SyncHdr>
<SyncBody>
<ModifyID CmdlD-"12345" > <!—服务器有4个变更的数据项--> <LUID> 1012</LUID> <LUID> 1013 </LUID> <LUID> 1015</LUID〉 <LUID> 1016</LUID>
<Final/> </SyncBody> </SyncML〉
若以客户端为准,客户端收到PKG2以后,经过解析,发现服务器有四 个数据项发生了变化,根据图7, 1012、 1015和1016也存在于客户端的 Changdog中,根据冲突策略,以客户端为准,那么客户端将在PKG3中直接 发送1012、 1015和1016的数据和最新的指纹,具体过程如下
<SyncML〉<SyncHdrVerSchema="2.0"VerProto="SyncML/2.0"SessionID="4" MsgID="2"> ... </SyncHdr> <SyncBody>
<Results CmdID="2345"MsgRef^" 1 "CmdRef=" 12345"> <Item>
<Hesouce〉
<LocURIFP="OxBDEFEOFFAAFFBB AA">I 012</LocURI> </R6Sourc6> <Data〉
</Data>
</Itsm〉
<Item>
<Resoucs>
<LocURIFP="0xAAEF3111577566DD">1015</LocURI> </Resource> <Data>
</Data> <Item>
<Resoucs>
<LocURIFP="0xCEEF3111577566EF">1016</LocURI> </R6Sourcs> <Data>
</Data></Item〉 </Results>
<Final/> </SyncBody> </SyncML>
服务器收到PKG3后,直接把数据项内容和新指纹赋予ABCD1012、 ABCD1015和ABCD1016。与此同时,服务器的Changelog如图8所示。
本发明实施例的有益效果解决了盲目发送指纹进行比对的问题,从而 减少了双方的交互,节约了无线资源。
实施例二
图2为本发明实施例二的方法流程图。如图2所示,该方法包括 步骤S201:向客户端发送服务器数据变更信息,用于客户端进行数据变 更信息比对并获取相同的数据项标识;
步骤S202:接收所述相同的数据项标识对应的客户端数据内容及指纹, 对服务器中对应的同步数据进行更改;或将所述相同的数据项标识对应的服 务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。若同步 数据更改标准为所述客户端数据变更信息,则接收所述相同的数据项标识对 应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;若同步
数据更改标准为所述服务器数据变更信息,则向客户端发送所述相同的数据 项标识对应的服务器数据内容,用于所述客户端更改对应的同步数据。 在一优选的实施例中,所述的客户端数据变更信息和服务器数据变更信
息例如可以包括数据项标识和/或同步数据修改信息;所述的客户端数据变更 信息和服务器数据变更信息还可以包括数据项标识和/或同步数据删除信息。 现有一台终端设备与服务器之间需要发起同步,它们的数据项的映射关
系如图5所示,其中LUID为客户端中某条数据对应的唯一ID, GUID为服 务器中某条数据对应的唯一 ID。图6为服务器的Changdog的数据变更信息,数据变更信息也可以放在服务器的Changelog外面。图7为客户端的Changdog 的数据变更信息,数据变更信息也可以放在客户端的Changdog外面。
根据图6可知,服务器的Changelog中有4个数据项ABCD1012、 ABCD1013、 ABCD 1015和ABCD 1016发生变更,其中,ABCD1012和 ABCD 1015发生修改,ABCD1013和ABCD 1016被删除。
下一次的同步过程中,在PKG2中,服务器将使用〈ModifylD〉来告知接 收方服务器上发生了变更(删除、修改)的数据项ID,并给出变更的具体方 式。具体过程如下
<SyncML>
<SyncHdrVerSchema="2.0"VerProto="SyncML/2.0"SessionID="4" MsgID="l">
</SyncHdr> <SyncBody>
<ModifyIDCmdID="12345"> <!—服务器有2个修改的数据项,2 个删除的-->
<ReplaceID>
<LUID>1012</LUID>
<LUID> 1015</LUID> </ReplaceID〉 <DeleteID>
<LUID> 1013 </LUID>
<LUID> 1016</LUID> </DeleteID> </Modify>
<Final/></SyncBody> </SyncML>
若以服务器为准,虽然1012、 1015禾n 1016存在于客户端的Changelog 中,但是客户端不需要发送1012、 1015和1016的内容及1012、 1015和1016
对应的指纹,服务器将比对结果数据发送给客户端后,向服务器发送的数据
如下
<SyncML>
<SyncHdrVerSchema="2.0"VerProto="SyncML/2.0" SessionID="4" Msgl D=,,2,,>
</SyncHdr> <SyncBody>
<DeletedItemID CmdID-" 123456" > <!—客户端删除1个数据项
—>
<LUID> 1016</LUID> </ DeletedItemID>
<Final/> </SyncBody> </SyncML>
服务器收到上述数据后,直接将服务器的1016数据项的条目删除,这时, 服务器Changelog如图9所示。
本发明实施例的有益效果解决了盲目发送指纹进行比对的问题,从而 减少了双方的交互,节约了无线资源。
实施例三
图3为本发明实施例三的数据同步客户端的结构示意图。如图3所示, 该客户端包括变更信息接收单元301,用于接收服务器发来的服务器数据变更信息;变更信息比对单元302,用于将客户端数据变更信息与所述的服务器 数据变更信息进行比对,获取相同的数据项标识;变更信息处理单元303,向 服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述 服务器更改服务器中对应的同步数据;或,接收所述相同的数据项标识对应 的服务器数据内容,对客户端对应的同步数据进行更改。
在一优选的实施例中,所述变更信息处理单元包括标准判断子单元, 用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数 据变更信息;若为所述客户端数据变更信息,则触发第一处理子单元,若为 所述服务器数据变更信息,则触发第二处理子单元;第一处理子单元,用于 根据所述标准判断子单元的触发,向服务器发送所述相同的数据项标识对应 的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据; 第二处理子单元,用于根据所述标准判断子单元的触发,接收所述相同的数 据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
本发明实施例的有益效果解决了盲目发送指纹进行比对的问题,从而 减少了双方的交互,节约了无线资源。
实施例四
图4为本发明实施例四的数据同步服务器的结构示意图。如图4所示, 该服务器包括发送单元401,用于向客户端发送服务器数据变更信息,所述 服务器数据变更信息用于客户端进行数据变更信息比对并获取相同的数据项 标识;处理单元402,用于接收所述相同的数据项标识对应的客户端数据内容 及指纹,对服务器中对应的同步数据进行更改;或将所述相同的数据项标识 对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。
在一优选的实施例中,所述处理单元包括判断子单元,用于判断同步 数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息; 若为所述客户端数据变更信息,则触发第三处理子单元,若为所述服务器数 据变更信息,则触发第四处理子单元;第三处理子单元,用于根据所述判断子单元的触发,接收所述相同的数据项标识对应的客户端数据内容及指纹, 对服务器中对应的同步数据进行更改;第四处理子单元,用于根据所述判断 子单元的触发,向客户端发送所述相同的数据项标识对应的服务器数据内容, 所述服务器数据内容用于所述客户端更改对应的同步数据。
本发明实施例的有益效果解决了盲目发送指纹进行比对的问题,从而 减少了双方的交互,节约了无线资源。
图IO为本发明实施例数据同步过程的流程图。客户端向服务器发送同步
初始化数据PKG1, PKG1中包含指纹使用方式协商信息或者指定指纹使用方 式信息。服务器向客户端发送数据PKG2, PKG2中包含服务器Changelog中 的服务器数据变更信息。客户端收到数据PKG2后,将PKG2中的服务器数 据变更信息与客户端的Changdog中的客户端数据变更信息进行比对。设客户 端数据变更信息为同步数据更改标准时,则将所述相同的数据项标识对应的 客户端数据内容及指纹发送给服务器端,用于更改服务器中对应的同步数据; 设所述的服务器数据变更信息为同步数据更改标准时,则根据相同数据项的 服务器数据内容对客户端对应的同步数据进行更改。
客户端向服务器发送PKG3, PKG3中包括数据变更信息,更改变更日志 中的数据项的内容和指纹。服务器向客户端发送PKG4, PKG4中包括服务器 指示客户端需要发送的数据元素的标识。客户端向服务器发送PKG5, PKG5 中包括客户端发送所指示的数据元素。服务器向客户端发送PKG6, PKG6中 包括服务器返回接收状态信息,还可以发送服务器端修改的数据。客户端向 服务器发送PKG7, PKG7中包括客户端返回接收数据的状态和映射命令。服 务器向客户端发送PKG8, PKG8中包括服务器返回对映射命令的状态信息。 同步结束,客户端将同步结果发送给用户。
本发明实施例的有益效果解决了盲目发送指纹进行比对的问题,从而 减少了双方的交互,节约了无线资源。
权利要求
1. 一种数据同步方法,其特征在于,所述的方法包括接收服务器发来的服务器数据变更信息;将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
2. 如权利要求1所述的方法,其特征在于,若同步数据更改标准为所述 客户端数据变更信息,则将所述相同的数据项标识对应的客户端数据内容及 指纹发送给服务器端,用于更改服务器中对应的同步数据;若同步数据更改标准为所述服务器数据变更信息,则根据相同的数据项 标识对应的服务器数据内容对客户端对应的同步数据进行更改。
3. 如权利要求1所述的方法,其特征在于,所述的客户端数据变更信息 和服务器数据变更信息包括数据项标识和/或同步数据修改信息。
4. 如权利要求1所述的方法,其特征在于,所述的客户端数据变更信息 和服务器数据变更信息包括数据项标识和/或同步数据删除信息。
5. —种数据同步方法,其特征在于,所述的方法包括向客户端发送服务器数据变更信息,用于客户端进行数据变更信息比对并获取相同的数据项标识;接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中 对应的同步数据进行更改;或将所述相同的数据项标识对应的服务器数据内 容发送给客户端,用于所述客户端更改对应的同步数据。
6. 如权利要求5所述的方法,其特征在于,若同步数据更改标准为所述 客户端数据变更信息,则接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;若同步数据更改标准为所述服务器数据变更信息,则向客户端发送所述 相同的数据项标识对应的服务器数据内容,用于所述客户端更改对应的同步 数据。
7. 如权利要求5所述的方法,其特征在于,所述的客户端数据变更信息和服务器数据变更信息包括数据项标识和/或同步数据修改信息。
8. 如权利要求5所述的方法,其特征在于,所述的客户端数据变更信息和服务器数据变更信息包括数据项标识和/或同步数据删除信息。
9. 一种数据同步客户端,其特征在于,所述的客户端包括变更信息接收单元,用于接收服务器发来的服务器数据变更信息;变更信息比对单元,用于将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;变更信息处理单元,向服务器发送所述相同的数据项标识对应的客户端 数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收 所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进 行更改。
10. 如权利要求9所述的客户端,其特征在于,所述变更信息处理单元包括标准判断子单元,用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息;若为所述客户端数据变更信息,则触发 第一处理子单元,若为所述服务器数据变更信息,则触发第二处理子单元;第一处理子单元,用于根据所述标准判断子单元的触发,向服务器发送 所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改 服务器中对应的同步数据;第二处理子单元,用于根据所述标准判断子单元的触发,接收所述相同 的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。
11. 一种数据同步服务器,其特征在于,所述的服务器包括发送单元,用于向客户端发送服务器数据变更信息,所述服务器数据变更信息用于客户端进行数据变更信息比对并获取相同的数据项标识;处理单元,用于接收所述相同的数据项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;或将所述相同的数据项标识对应的服务器数据内容发送给客户端,用于所述客户端更改对应的同步数据。
12、如权利要求ll所述的数据同步服务器,其特征在于,所述处理单元包括判断子单元,用于判断同步数据更改标准为所述服务器数据变更信息,还是所述客户端数据变更信息;若为所述客户端数据变更信息,则触发第三 处理子单元,若为所述服务器数据变更信息,则触发第四处理子单元-,第三处理子单元,用于根据所述判断子单元的触发,接收所述相同的数据 项标识对应的客户端数据内容及指纹,对服务器中对应的同步数据进行更改;第四处理子单元,用于根据所述判断子单元的触发,向客户端发送所述 相同的数据项标识对应的服务器数据内容,所述服务器数据内容用于所述客 户端更改对应的同步数据。
全文摘要
本发明提供一种数据同步方法、客户端及服务器,该方法包括接收服务器发来的服务器数据变更信息;将客户端数据变更信息与所述的服务器数据变更信息进行比对,获取相同的数据项标识;向服务器发送所述相同的数据项标识对应的客户端数据内容及指纹,用于所述服务器更改服务器中对应的同步数据;或,接收所述相同的数据项标识对应的服务器数据内容,对客户端对应的同步数据进行更改。本发明解决了盲目发送指纹进行比对的问题,从而减少了双方的交互,节约了无线资源。
文档编号H04L9/32GK101447874SQ200810241049
公开日2009年6月3日 申请日期2008年12月25日 优先权日2008年12月25日
发明者刘海涛, 悦 宋, 睿 王 申请人:深圳华为通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1