CN101997829A - 一种分级数据同步的方法和设备 - Google Patents
一种分级数据同步的方法和设备 Download PDFInfo
- Publication number
- CN101997829A CN101997829A CN2009101093572A CN200910109357A CN101997829A CN 101997829 A CN101997829 A CN 101997829A CN 2009101093572 A CN2009101093572 A CN 2009101093572A CN 200910109357 A CN200910109357 A CN 200910109357A CN 101997829 A CN101997829 A CN 101997829A
- Authority
- CN
- China
- Prior art keywords
- data
- data item
- server
- synchronization
- client device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 20
- 230000008859 change Effects 0.000 claims description 24
- 230000001960 triggered effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种分级数据同步的方法和设备,其中方法实施例的实现包括:向服务器发送数据同步初始化消息,接收所述数据同步初始化消息的响应消息,判断本地分级数据库中是否存在数据项的成组改动;若判断为是,则向所述服务器发送相应处理指令以使所述服务器根据所述相应处理指令处理所述服务器中的相应数据项。还提供了相应的客户端设备和服务器。本发明实施例可解决分级数据同步过程中数据项发生成组改动时的避免浪费无线资源问题。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种分级数据同步的方法和设备。
背景技术
现代社会是信息社会。用户可以随时随地进行信息的接收和发送,可以随时随地用一台手持设备执行设备中的应用程序。而这种数据交互和执行应用程序的结果需要存储到手持设备中,也需要与其他数据设备中这种类型的数据保持一致。比如,在手机中和PDA(Personal Digital Assistant),个人数字助理)中都存有通讯录,在办公室和家里的PC机或者笔记本也都存有相同的通讯录,人们希望这些设备中的信息能保持一致,当其中一个设备上的数据变化时,可以操作其他设备中的数据做相应的改变,这就是数据同步。
通用同步协议的目标是普遍适用。同步两端可以是任何一种类型的网络设备,在任一种网络上面,同步操作的数据可以是任何一种网络数据。任一种移动设备包括掌上电脑、PDA、移动电话、自动计算机和桌面计算机。同时一个用户可以通过不同的设备访问、操作同样的数据集合。SYNCML(Synchronization Makeup Language,同步标记语言)同步协议就是为了实现这个目标而应运而生的一个新的通用标准。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
对于分级数据库,存在这样的情形:一方数据库中一个数据项及其下属所有子数据项都被删除了,或者一个数据项下的所有子数据项都被统一移动到了另外一个数据项下,当发起同步时,所有这些改动都会发送给另一方,无疑这时将消耗很多的无线资源。
发明内容
有鉴于此,本发明实施例提供一种分级数据同步的方法和设备以解决分级数据同步过程中数据项发生成组改动时的避免浪费无线资源问题。
为解决上述技术问题,一方面,提供了一种分级数据同步的方法,包括:
向服务器发送数据同步初始化消息;接收所述数据同步初始化消息的响应消息;判断本地分级数据库中是否存在数据项的成组改动;若判断为是,则向所述服务器发送相应处理指令以使所述服务器根据所述相应处理指令处理所述服务器中的相应数据项。
另一方面还提供一种分级数据同步的方法,包括:
向客户端设备发送数据同步初始化消息;接收所述数据同步初始化消息的响应消息;判断本地分级数据库中是否存在数据项的成组改动;若判断为是,则向所述客户端设备发送相应处理指令以使所述客户端设备根据所述相应处理指令处理所述客户端设备中的相应数据项。
另一方面还提供客户端设备,包括;
发送模块:用于向服务器发送数据同步初始化消息;
接收模块:用于接收所述数据同步初始化消息的响应消息;
判断模块:用于判断本地分级数据库中是否存在数据项的成组改动;
同步模块:用于所述判断模块判断为是时,向所述服务器发送相应处理指令以使所述服务器根据所述相应处理指令处理所述服务器中的相应数据项。
另一方面还提供一种服务器,包括:
发送模块:用于向客户端设备发送数据同步初始化消息;
接收模块:用于接收所述数据同步初始化消息的响应消息;
判断模块:用于判断本地分级数据库中是否存在数据项的成组改动;
同步模块:用于所述判断模块判断为是时,向所述客户端设备发送相应处理指令以使所述客户端设备根据所述相应处理指令处理所述客户端设备中的相应数据项。
上述技术方案具有如下有益效果:通过判断确定本地分级数据库中存在数据项的成组改动时,向数据同步的另一方发送关于数据项的相应处理指令以使所述数据同步的另一方根据所述相应处理指令处理所述客户端设备中的相应数据项,实现了分级数据的同步,避免了无线资源的浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一客户端发起数据同步的方法流程示意图;
图2为本发明实施例二服务器发起数据同步的方法流程示意图;
图3为本发明实施例三的数据项的结构示意图;
图4为本发明实施例三另一种数据项的结构示意图;
图5为本发明实施例三另一种数据项的结构示意图;
图6为本发明实施例四客户端设备结构示意图;
图7为本发明实施例四客户端设备另一结构示意图;
图8为本发明实施例五服务器结构示意图;
图9为本发明实施例五服务器另一结构示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的第一实施例是提供了一种数据同步的方法,首先,
应用场景:客户端设备主动发起的数据同步;
如图1所示,具体步骤如下:
步骤101、向服务器发送数据同步初始化消息;
客户端设备向服务器发送数据同步初始化消息,所述客户端设备向服务器发送数据同步的触发条件取决于预先设定的策略,所述策略包括但不限于设备时间触发,例如,通过定时器设定时间,当设定的时间到时,所述客户端设备发起数据同步;所述策略还可以包括:条件触发,例如,当数据发生改变时所述客户端设备发起数据同步,当然还可以设定数据改变到达一定数量时才触发所述客户端设备发起数据同步,也可以设定当数据项发生成组改动时触发所述客户端设备发起数据同步;需要说明的是所述初始化消息的具体类型此处不作限定,其中所述初始化消息携带有所属客户端设备的鉴权信息,设备能力,设备类型等信息;
步骤102、接收所述数据同步初始化消息的响应消息;
客户端设备接收服务器发送的所述数据同步初始化消息的响应消息,需要说明的是通过步骤101和步骤102实现了客户端设备与服务器之间的身份鉴权、需要同步的数据库的协商、同步能力的协商以及同步数据类型的协商等;
步骤103、判断本地分级数据库中是否存在数据项的成组改动;
客户端设备判断本地分级数据库中是否存在数据项的成组改动,所述数据项的成组改动包括但不限于:数据项及所述数据项的子数据项都被删除;或者,数据项及所述数据项的子数据项被移动到另一个数据项下;或者,所述数据项的子数据项被移动到另一个数据项下。
客户端设备上分级数据库的数据项发生了成组改动,这些改动都记录在变化记录Changelog中,因此所述客户端设备通过分析所述Changelog的纪录就可判断出是否存在数据项的成组改动;
步骤104、若判断为是,则向所述服务器发送相应处理指令以使所述服务器根据所述相应处理指令处理所述服务器中的相应数据项。
当客户端设备判断存在数据项的成组改动时,向所述服务器发送相应处理指令以使所述服务器根据所述相应处理指令处理所述服务器中的相应数据项;
例如,当如果数据项及其所述数据项的所有子数据项都被删除了,那么针对该父数据项的<Del>命令可以使用下面的格式:
DEL<URI>?list=Struct
其中“Struct”属性以“?list=Struct”的形式附在父数据项URI的后面用来表明需要把该数据项及其所述数据项的所有子数据项全部删除;
又例如,如果数据项及其所述数据项所有子数据项都被移动到另一个数据项下,那么针对该父数据项的<Move>命令可以使用下面的格式:
Move<URI>?list=Struct
其中“Struct”属性以“?list=Struct”的形式附在父数据项URI的后面用来表明需要把该数据项及其所述数据项的所有子数据项全部移动到另一个数据项下;
又例如,如果只是数据项下属所有子数据项被移动到另一个数据项下,那么针对该父数据项的<Move>命令可以使用下面的格式:
Move<URI>?list=Child
其中“Struct”属性以“?list=Struct”的形式附在父数据项URI的后面用来表明需要把该数据项的下属所有子数据项全部移动到另一个数据项下;
当所述服务器接收到上述指令时,执行该指令,实现了分级数据的同步。
可选的,当所述服务器执行完所述客户端设备发送的指令后,即实现分级数据同步后,向所述客户端设备返回处理结果,所述处理结果包括分级数据同步成功或分级数据同步失败,当所述分级数据同步失败时会返回失败原因,例如,所述数据发生变化或所述数据发生冲突等。使用该可选步骤可以使得客户端设备确定分级数据同步是否成功,若失败,可通过失败原因确定是否重新发起数据同步。
例如,对于删除指令,接收方服务器处理后,有下列情形:
1、数据项及其所述数据项的所有子数据项都被成功删除,返回执行成功的Status代码;
2、由于接收方服务器的该数据项及其所述数据项的子数据项也发生了一些改动(包括新增了一些子数据项),所以冲突发生了,接收方依据冲突解决策略解决后,仍只能删除部分子数据项,这时返回的Status代码可以为“518”,该代码定义如下:
518 | Only some child items are deleted.(部份子数据项被删除) |
又例如,对于移动指令,若数据发生了改动,那么Move命令是不能执行的,因此接收方处理时为下列情形:
1、所有子数据项都可以被移动,指令执行成功,返回执行成功的Status代码;
2、只有部分子数据项可以被移动,对于“Move<URI>?list=Child指令”,执行后,返回部分移动成功的Status代码“519”,该代码定义如下:
3、只有部分子数据项可以被移动,对于“Move<URI>?list=Struct指令”,执行后,返回命令执行错误的Status代码“428”。
本实施例当中所提出的方案的主要优点在于提供的提供了一种分级数据的同步方法,通过使用发送指令代替发送大量数据项解决了当数据项发生成组改动时避免发送大量数据所带来的无线资源的浪费,也使得分级数据同步的更快捷。
本发明提供的第二实施例是提供了一种数据同步的方法,首先应用场景:服务器主动发起的数据同步;
如图2所示,具体步骤如下:
步骤201、向客户端设备发送数据同步初始化消息;
服务器向客户端设备发送数据同步初始化消息,所述服务器向客户端设备发送数据同步的触发条件取决于预先设定的策略,所述策略包括但不限于时间触发,例如,通过定时器设定时间,当设定的时间到时,所述服务器发起数据同步;所述策略还可以包括:条件触发,例如,当数据发生改变时所述服务器发起数据同步,当然还可以设定数据改变到达一定数量时才触发所述服务器发起数据同步,也可以设定当数据项发生成组改动时触发所述服务器发起数据同步;需要说明的是所述初始化消息的具体类型此处不作限定,其中所述初始化消息携带有所属客户端设备的鉴权信息,设备能力,设备类型等信息;
步骤202、接收所述数据同步初始化消息的响应消息;
服务器接收客户端设备发送的所述数据同步初始化消息的响应消息,需要说明的是通过步骤201和步骤202实现了服务器与客户端设备之间的身份鉴权、需要同步的数据库的协商、同步能力的协商以及同步数据类型的协商等;
步骤203、判断本地分级数据库中是否存在数据项的成组改动;
服务器判断本地分级数据库中是否存在数据项的成组改动,所述数据项的成组改动包括但不限于:数据项及所述数据项的子数据项都被删除;或者,数据项及所述数据项的子数据项被移动到另一个数据项下;或者,所述数据项的子数据项被移动到另一个数据项下。
服务器上分级数据库的数据项发生了成组改动,这些改动都记录在变化记录Changelog中,因此所述服务器通过分析所述Changelog的纪录就可判断出是否存在数据项的成组改动;
步骤204、若判断为是,则向所述客户端设备发送相应处理指令以使所述客户端设备根据所述相应处理指令处理所述客户端设备中的相应数据项。
当服务器判断存在数据项的成组改动时,向所述客户端设备发送相应处理指令以使所述客户端设备根据所述相应处理指令处理所述客户端设备中的相应数据项;
例如,如果数据项及其所述数据项的所有子数据项都被删除了,那么针对该父数据项的<Del>命令可以使用下面的格式:
DEL<URI>?list=Struct
其中“Struct”属性以“?list=Struct”的形式附在父数据项URI的后面用来表明需要把该数据项及其所述数据项的所有子数据项全部删除;
又例如,如果数据项及其所述数据项所有子数据项都被移动到另一个数据项下,那么针对该父数据项的<Move>命令可以使用下面的格式:
Move<URI>?list=Struct
其中“Struct”属性以“?list=Struct”的形式附在父数据项URI的后面用来表明需要把该数据项及其所述数据项的所有子数据项全部移动到另一个数据项下;
又例如,如果只是数据项下属所有子数据项被移动到另一个数据项下,那么针对该父数据项的<Move>命令可以使用下面的格式:
Move<URI>?list=Child
其中“Struct”属性以“?list=Struct”的形式附在父数据项URI的后面用来表明需要把该数据项的下属所有子数据项全部移动到另一个数据项下;
当所述客户端设备接收到上述指令时,执行该指令,实现了分级数据的同步。
可选的,当所述客户端设备执行完所述客户端设备发送的指令后,即实现分级数据同步后,向所述服务器返回处理结果,所述处理结果包括分级数据同步成功或分级数据同步失败,当所述分级数据同步失败时会返回失败原因,例如,所述数据发生变化或所述数据发生冲突等。使用该可选步骤可以使得服务器确定分级数据同步是否成功,若失败,可通过失败原因确定是否重新发起数据同步。
例如,对于删除指令,接收方服务器处理后,有下列情形:
1、数据项及其所述数据项的所有子数据项都被成功删除,返回执行成功的Status代码;
2、由于接收方服务器的该数据项及其所述数据项的子数据项也发生了一些改动(包括新增了一些子数据项),所以冲突发生了,接收方依据冲突解决策略解决后,仍只能删除部分子数据项,这时返回的Status代码可以为“518”,该代码定义如下:
518 | Only some child items are deleted.(部份子数据项被删除) |
又例如,对于移动指令,若数据发生了改动,那么Move命令是不能执行的,因此接收方处理时为下列情形:
1、所有子数据项都可以被移动,指令执行成功,返回执行成功的Status代码;
2、只有部分子数据项可以被移动,对于“Move<URI>?list=Child指令”,执行后,返回部分移动成功的Status代码“519”,该代码定义如下:
3、只有部分子数据项可以被移动,对于“Move<URI>?list=Struct指令”,执行后,返回命令执行错误的Status代码“428”。
本实施例当中所提出的方案的主要优点在于提供的提供了一种分级数据的同步方法,通过使用发送指令代替发送大量数据项解决了当数据项发生成组改动时避免发送大量数据所带来的无线资源的浪费,也使得分级数据同步的更快捷。
本发明提供的第三实施例是提供了一种数据同步的具体流程,首先
应用场景:客户端设备主动发起的数据同步;
以下分别列举三种情况:
情况一:
此时,一台客户端设备与服务器刚刚完成一次同步过程,部分数据项映射表如下:
Client′s LUID | Server′s GUID | Object name |
03 | ABCD003 | MP3格式音乐 |
31 | ABCD031 | M1 |
32 | ABCD032 | M2 |
33 | ABCD033 | M3 |
34 | ABCD034 | M4 |
35 | ABCD035 | M5 |
其中,
GUID(Global Unique Identifier,全局标识符)
LUID(Local Unique Identifier,本地标识符)
其中数据项之间的关系如图3所示,数据库某一根节点的数据项(MP3格式音乐)03下面有5个子数据项(31,32,33,34,35)。
上次同步后,客户端设备上的数据项又发生了一些变化,数据项03及其下属所有子数据项都被删除了,如下所示,其中数据项03也被标识为“删除”。
Client′s LUID | ChangeType |
31 | Delete |
32 | Delete |
33 | Delete |
34 | Delete |
35 | Delete |
03 | Delete |
下次同步时,客户端发现数据项03为删除状态,因此将发送如下同步命令给服务器:
<Sync CmdID=″1234″>
<Delete CmdID=″12345″>
<Cred>
<Meta Type=”syncml:auth-md5”Format=”b64”/>
<Data>Zz6EivR3yeaaENcRN61pAQ==</Data>
</Cred>
<Item>
<Source><LocURI>02?Struct</LocURI></Source>
</Item>
</Delete>
</Sync>
服务器端收到上述指令后,分为两种情况:
1)如果服务器上这些相应的数据项没有任何变动,那么服务器将把数据项ABCD003及其下属所有子数据项全部删除,并返回执行成功的响应信息。
<Status CmdID=”12356”MsgRef=”1”CmdRef=”12345”Cmd=”delete”Code=″200″>
</Status>
2)若服务器上相应的数据项有一些变动,如下所示:
Server′sGUID | Client′s LUID | ChangeType |
ABCD031 | 31 | Replace |
ABCD034 | 34 | Replace |
假设冲突策略为“Server Win”,那么服务器将只能删除子数据项:ABCD032、ABCD033、ABCD035,并返回代码“518”,如下所示:
<Status CmdID=”12356”MsgRef=”1”CmdRef=”12345”Cmd=”delete”Code=″518″>
...
</Status>
情况二:
此时,一台客户端设备与服务器刚刚完成一次同步过程,部分数据项映射表如下:
Client′s LUID | Server′s GUID | Object name |
03 | ABCD003 | MP3格式音乐 |
04 | ABCD004 | Music |
31 | ABCD031 | M1 |
32 | ABCD032 | M2 |
33 | ABCD033 | M3 |
34 | ABCD034 | M4 |
35 | ABCD035 | M5 |
其中,
GUID(Global Unique Identifier,全局标识符)
LUID(Local Unique Identifier,本地标识符)
其中数据项之间的关系如图3所示,数据库某一根节点的数据项(MP3格式音乐)03下面有5个子数据项(31,32,33,34,35)。
上次同步后,终端设备上的数据项又发生了一些变化,数据项03下属所有子数据项都被移动到了数据项04下面,如图4所示:
Client′s LUID | ChangeType |
31 | Move |
32 | Move |
33 | Move |
34 | Move |
35 | Move |
针对这些改动,客户端设备判断这些数据项的移动是成组发生的,因此将发送如下同步命令给服务器:
<Sync CmdID=″1234″>
...
<Move CmdID=″12345″>
<Cred>
<Meta Type=”syncml:auth-md5”Format=”b64”/>
<Data>Zz6EivR3yeaaENcRN6lpAQ==</Data>
</Cred>
<Item>
<Source><LocURI>02?Child</LocURI></Target>
<SourceParent><LocURI>03</LocURI></SourceParent>
</Item>
</Move>
</Sync>
服务器端收到上述指令后,分为两种情况:
1)如果服务器上这些相应的数据项没有任何变动,那么服务器将把数据项ABCD003下属所有子数据项全部移动到数据项ABCD004下面,并返回执行成功的响应信息。
<Status CmdID=”12356”MsgRef=”1”CmdRef=”12345”Cmd=”delete”Code=″200″>
</Status>
2)若服务器上相应的数据项有一些变动,如下所示:
Server′sGUID | Client′s LUID | ChangeType |
ABCD033 | 33 | Replace |
ABCD035 | 35 | Replace |
这时Move指令对数据项ABCD033和ABCD035是不适用的,服务器只能删除子数据项:ABCD031、ABCD032、ABCD034,并返回代码“519”,如下所示:
<Status CmdID=”12356”MsgRef=”1”CmdRef=”12345”Cmd=”delete”Code=″519″>
</Status>
情况三:
此时,一台客户端设备与服务器刚刚完成一次同步过程,部分数据项映射表如下:
Client′s LUID | Server′s GUID | Object name |
03 | ABCD003 | MP3格式音乐 |
04 | ABCD004 | Music |
31 | ABCD031 | M1 |
32 | ABCD032 | M2 |
33 | ABCD033 | M3 |
34 | ABCD034 | M4 |
35 | ABCD035 | M5 |
其中,
GUID(Global Unique Identifier,全局标识符)
LUID(Local Unique Identifier,本地标识符)
其中数据项之间的关系如图3所示,数据库某一根节点的数据项(MP3格式音乐)03下面有5个子数据项(31,32,33,34,35)。
上次同步后,客户端设备上的数据项又发生了一些变化,数据项03及其下属所有子数据项都被移动到了数据项04下面,如图5所示,
Client′s LUID | ChangeType |
31 | Move |
32 | Move |
33 | Move |
34 | Move |
35 | Move |
03 | Move |
其中,数据项03也被标识为“移动”。
下次同步时,客户端设备发现03数据项为“移动”状态,因此将发送如下同步命令给服务器:
<Sync CmdID=″1234″>
...
<Move CmdID=″12345″>
<Cred>
<Meta Type=”syncml:auth-md5”Format=”b64”/>
<Data>Zz6EivR3yeaaENcRN61pAQ==</Data>
</Cred>
<Item>
<Source><LocURI>02?Struct</LocURI></Target>
<SourceParent><LocURI>03</LocURI></SourceParent>
</Item>
</Move>
</Sync>
服务器端收到上述指令后,分为两种情况:
1)如果服务器上这些相应的数据项没有任何变动,那么服务器将把数据项ABCD003及其下属所有子数据项全部移动到数据项ABCD004下面,并返回执行成功的响应信息。
<Status CmdID=”12356”MsgRef=”1”CmdRef=”12345”Cmd=”delete”Code=″200″>
</Status>
若服务器上相应的数据项有一些变动,如下所示:
Server′s GUID | Client′s LUID | ChangeType |
ABCD033 | 33 | Replace |
ABCD035 | 35 | Replace |
这时Move指令是不适用的,服务器返回命令执行失败的代码“428”。
需要说明的是本实施例同样适用于服务器作为数据同步发起方的场景,此处不再赘述。
本实施例当中所提出的方案的主要优点在于提供了一种分级数据的同步方法流程,通过使用发送指令代替发送大量数据项解决了当数据项发生成组改动时避免发送大量数据所带来的无线资源的浪费,也使得分级数据同步的更快捷。
本发明实施例还提供了一种客户端设备,如图6所示,具体包括:
发送模块601:用于向服务器发送数据同步初始化消息;
客户端设备的发送模块601向服务器发送数据同步初始化消息,所述发送模块601向服务器发送数据同步的触发条件取决于预先设定的策略,所述策略包括但不限于时间触发,例如,通过定时器设定时间,当设定的时间到时,所述客户端设备发起数据同步;所述策略还可以包括:条件触发,例如,当数据发生改变时所述客户端设备发起数据同步,当然还可以设定数据改变到达一定数量时才触发所述客户端设备发起数据同步,也可以设定当数据项发生成组改动时触发所述客户端设备发起数据同步;需要说明的是所述初始化消息的具体类型此处不作限定,其中所述初始化消息携带有所属客户端设备的鉴权信息,设备能力,设备类型等信息;
接收模块602:用于接收所述数据同步初始化消息的响应消息;
客户端设备的接收模块602接收服务器发送的所述数据同步初始化消息的响应消息,需要说明的是通过发送模块601和接收模块602实现了客户端设备与服务器之间的身份鉴权、需要同步的数据库的协商、同步能力的协商以及同步数据类型的协商等;
判断模块603:用于判断本地分级数据库中是否存在数据项的成组改动;
客户端设备的判断模块603判断本地分级数据库中是否存在数据项的成组改动,所述数据项的成组改动包括但不限于:数据项及所述数据项的子数据项都被删除;或者,数据项及所述数据项的子数据项被移动到另一个数据项下;或者,所述数据项的子数据项被移动到另一个数据项下。
同步模块604:用于所述判断模块603判断为是时,向所述服务器发送相应处理指令以使所述服务器根据所述相应处理指令处理所述服务器中的相应数据项。
可选的,如图7所示,所述客户端设备还可包括:
处理结果接收模块701:用于接收所述服务器返回的处理结果。
所述处理结果包括分级数据同步成功或分级数据同步失败,当所述分级数据同步失败时会返回失败原因,例如,所述数据发生变化或所述数据发生冲突等。使用该可选步骤可以使得服务器确定分级数据同步是否成功,若失败,可通过失败原因确定是否重新发起数据同步。
本实施例当中所提出的方案的主要优点在于提供了一种客户端设备,通过使用发送指令代替发送大量数据项解决了当数据项发生成组改动时避免发送大量数据所带来的无线资源的浪费,也使得分级数据同步的更快捷。
本发明实施例还提供了一种服务器,如图8所示,具体包括:
发送模块801:用于向客户端设备发送数据同步初始化消息;
服务器的发送模块601向客户端设备发送数据同步初始化消息,所述发送模块801向服务器发送数据同步的触发条件取决于预先设定的策略,所述策略包括但不限于时间触发,例如,通过定时器设定时间,当设定的时间到时,所述客户端设备发起数据同步;所述策略还可以包括:条件触发,例如,当数据发生改变时所述客户端设备发起数据同步,当然还可以设定数据改变到达一定数量时才触发所述客户端设备发起数据同步,也可以设定当数据项发生成组改动时触发所述客户端设备发起数据同步;需要说明的是所述初始化消息的具体类型此处不作限定,其中所述初始化消息携带有所属客户端设备的鉴权信息,设备能力,设备类型等信息;
接收模块802:用于接收所述数据同步初始化消息的响应消息;
服务器的接收模块802接收客户端设备发送的所述数据同步初始化消息的响应消息,需要说明的是通过发送模块801和接收模块802实现了客户端设备与服务器之间的身份鉴权、需要同步的数据库的协商、同步能力的协商以及同步数据类型的协商等;
判断模块803:用于判断本地分级数据库中是否存在数据项的成组改动;
服务器的判断模块603判断本地分级数据库中是否存在数据项的成组改动,所述数据项的成组改动包括但不限于:数据项及所述数据项的子数据项都被删除;或者,数据项及所述数据项的子数据项被移动到另一个数据项下;或者,所述数据项的子数据项被移动到另一个数据项下。
同步模块804:用于所述判断模块803判断为是时,向所述客户端设备发送相应处理指令以使所述客户端设备根据所述相应处理指令处理所述客户端设备中的相应数据项。
可选的,如图9所示,所述服务器还可包括:
处理结果接收模块901:用于接收所述客户端设备返回的处理结果;
所述处理结果包括分级数据同步成功或分级数据同步失败,当所述分级数据同步失败时会返回失败原因,例如,所述数据发生变化或所述数据发生冲突等。使用该可选步骤可以使得服务器确定分级数据同步是否成功,若失败,可通过失败原因确定是否重新发起数据同步。
本实施例当中所提出的方案的主要优点在于提供了一种服务器,通过使用发送指令代替发送大量数据项解决了当数据项发生成组改动时避免发送大量数据所带来的无线资源的浪费,也使得分级数据同步的更快捷。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种分级数据同步的方法和设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种分级数据同步的方法,其特征在于,包括:
向服务器发送数据同步初始化消息;
接收所述数据同步初始化消息的响应消息;
判断本地分级数据库中是否存在数据项的成组改动;
若判断为是,则向所述服务器发送相应处理指令以使所述服务器根据所述相应处理指令处理所述服务器中的相应数据项。
2.根据权利要求1所述方法,其特征在于,所述数据项的成组改动包括:
数据项及所述数据项的子数据项都被删除;或者,
数据项及所述数据项的子数据项被移动到另一个数据项下;或者,
所述数据项的子数据项被移动到另一个数据项下。
3.根据权利要求1或2所述方法,其特征在于,所述方法还包括:
接收所述服务器返回的处理结果。
4.一种分级数据同步的方法,其特征在于,包括:
向客户端设备发送数据同步初始化消息;
接收所述数据同步初始化消息的响应消息;
判断本地分级数据库中是否存在数据项的成组改动;
若判断为是,则向所述客户端设备发送相应处理指令以使所述客户端设备根据所述相应处理指令处理所述客户端设备中的相应数据项。
5.根据权利要求4所述方法,其特征在于,所述数据项的成组改动包括:
数据项及所述数据项的子数据项都被删除;或者,
数据项及所述数据项的子数据项被移动到另一个数据项下;或者,
所述数据项的子数据项被移动到另一个数据项下。
6.根据权利要求4或5所述方法,其特征在于,所述方法还包括:
接收所述客户端设备返回的处理结果。
7.一种客户端设备,其特征在于,包括:
发送模块:用于向服务器发送数据同步初始化消息;
接收模块:用于接收所述数据同步初始化消息的响应消息;
判断模块:用于判断本地分级数据库中是否存在数据项的成组改动;
同步模块:用于所述判断模块判断为是时,向所述服务器发送相应处理指令以使所述服务器根据所述相应处理指令处理所述服务器中的相应数据项。
8.根据权利要求7所述客户端设备,其特征在于,所述客户端设备还包括:
处理结果接收模块:用于接收所述服务器返回的处理结果。
9.一种服务器,其特征在于,包括:
发送模块:用于向客户端设备发送数据同步初始化消息;
接收模块:用于接收所述数据同步初始化消息的响应消息;
判断模块:用于判断本地分级数据库中是否存在数据项的成组改动;
同步模块:用于所述判断模块判断为是时,向所述客户端设备发送相应处理指令以使所述客户端设备根据所述相应处理指令处理所述客户端设备中的相应数据项。
10.根据权利要求9所述服务器,其特征在于,所述服务器还包括:
处理结果接收模块:用于接收所述客户端设备返回的处理结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101093572A CN101997829A (zh) | 2009-08-18 | 2009-08-18 | 一种分级数据同步的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101093572A CN101997829A (zh) | 2009-08-18 | 2009-08-18 | 一种分级数据同步的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101997829A true CN101997829A (zh) | 2011-03-30 |
Family
ID=43787427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101093572A Pending CN101997829A (zh) | 2009-08-18 | 2009-08-18 | 一种分级数据同步的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101997829A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701159A (zh) * | 2015-12-30 | 2016-06-22 | 华为技术有限公司 | 一种数据同步装置和方法 |
CN108282501A (zh) * | 2017-01-05 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种云服务器资源信息同步方法、装置和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794724A (zh) * | 2005-10-27 | 2006-06-28 | 华为技术有限公司 | 在SyncML层实现数据同步的方法 |
US20080270485A1 (en) * | 2005-11-16 | 2008-10-30 | Huawei Technologies Co., Ltd. | Method For Processing Data Synchronization And Client Terminal, Server, And Data Synchronization System Thereof |
CN101459503A (zh) * | 2007-12-12 | 2009-06-17 | 华为技术有限公司 | 一种实现数据同步的方法和装置 |
-
2009
- 2009-08-18 CN CN2009101093572A patent/CN101997829A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794724A (zh) * | 2005-10-27 | 2006-06-28 | 华为技术有限公司 | 在SyncML层实现数据同步的方法 |
US20080270485A1 (en) * | 2005-11-16 | 2008-10-30 | Huawei Technologies Co., Ltd. | Method For Processing Data Synchronization And Client Terminal, Server, And Data Synchronization System Thereof |
CN101459503A (zh) * | 2007-12-12 | 2009-06-17 | 华为技术有限公司 | 一种实现数据同步的方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701159A (zh) * | 2015-12-30 | 2016-06-22 | 华为技术有限公司 | 一种数据同步装置和方法 |
CN105701159B (zh) * | 2015-12-30 | 2019-05-03 | 华为技术有限公司 | 一种数据同步装置和方法 |
CN108282501A (zh) * | 2017-01-05 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种云服务器资源信息同步方法、装置和系统 |
CN108282501B (zh) * | 2017-01-05 | 2021-03-09 | 阿里巴巴集团控股有限公司 | 一种云服务器资源信息同步方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018219178A1 (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN101080056B (zh) | 一种移动终端的网络浏览器收藏夹的管理方法及系统 | |
CN107861686B (zh) | 文件存储方法、服务端和计算机可读存储介质 | |
CN1956452B (zh) | 一种实现数据同步的方法、系统、客户端及服务器 | |
CN101009516B (zh) | 一种进行数据同步的方法、系统及装置 | |
JP4405812B2 (ja) | 第1データ記憶部と第2データ記憶部との間で同期を取るための方法および装置 | |
CN101160903B (zh) | 一种实现数据同步的方法、系统、客户端及服务器 | |
JP5423668B2 (ja) | 情報処理システム、情報処理装置、携帯通信機器及びそれらに用いる利用者情報管理方法 | |
TWI734744B (zh) | 路由表的同步方法、裝置及系統 | |
US20150120655A1 (en) | Method and apparatus for synchronizing content | |
US8751442B2 (en) | Synchronization associated duplicate data resolution | |
US20100235434A1 (en) | Personal Information Management Data Synchronization | |
CN103905495B (zh) | 一种应用的同步方法及后台服务器 | |
CN111400777B (zh) | 一种网络存储系统、用户认证方法、装置及设备 | |
CN102769640B (zh) | 用户信息的更新方法、服务器以及系统 | |
CN103281798A (zh) | 一种实现修改同步的方法、装置及系统 | |
WO2008085869A2 (en) | Synchronization methods and systems | |
CN104348859A (zh) | 文件同步方法、装置、服务器、终端及系统 | |
CN103312489A (zh) | 一种终端与服务器进行同步的方法和装置 | |
WO2012013008A1 (zh) | 管理终端数据记录的方法及装置 | |
JP2015517710A (ja) | ファイル記述子を自動的に管理する技法 | |
CN102594874B (zh) | 一种同步处理方法和装置 | |
CN105635215B (zh) | 联系人信息的同步方法、装置及云服务器 | |
CN101610225B (zh) | 一种同步处理方法、系统和装置 | |
CN101997829A (zh) | 一种分级数据同步的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110330 |