WO2007087746A1 - Procédé, système et dispositif de synchronisation de données - Google Patents

Procédé, système et dispositif de synchronisation de données Download PDF

Info

Publication number
WO2007087746A1
WO2007087746A1 PCT/CN2007/000284 CN2007000284W WO2007087746A1 WO 2007087746 A1 WO2007087746 A1 WO 2007087746A1 CN 2007000284 W CN2007000284 W CN 2007000284W WO 2007087746 A1 WO2007087746 A1 WO 2007087746A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
client
server
synchronization
feature information
Prior art date
Application number
PCT/CN2007/000284
Other languages
English (en)
French (fr)
Inventor
Jiao Kang
Xiangzhou Guo
Linyi Tian
Original Assignee
Huawei Technologies 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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to CN2007800001981A priority Critical patent/CN101313495B/zh
Priority to EP07702202.8A priority patent/EP1983662B1/en
Publication of WO2007087746A1 publication Critical patent/WO2007087746A1/zh
Priority to US12/180,626 priority patent/US8635266B2/en
Priority to US14/107,938 priority patent/US9524327B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

数据同步方法、 系统及装置
技术领域
本发明涉及在网络中对数据的处理技术, 特别涉及数据同步方法、 系统及装置。 发明背景
为了在多个平台及网络之间实现个人信息及企业的数据同步, 于
2000年 2月份创建了 SyncML。 创建 SyncML的目的在于, 使用户、 设 备开发商、.基础构件开发商、 数据提供商、 应用软件开发商以及服务提 供商协同工作, 真正实现使用任何客户端均可随时随地的访问任何网络 数据。
SyncML 的典型应用是移动设备和网络服务设备之间的数据同步, 除此之外, 还可以用于两台对等设备的数据同步, 如在两台计算机之间 进行数据同步。 客户端与服务器之间进行数据同步的过程为: 在经过同 步初始化阶段的设备能力信息协商以后, 客户端将自身修改的数据发送 给服务器进行存储; 服务器将自身修改的数据发送给客户端进行存储, 以保证双方数据的同步。
目前, 进行数据同步的同步类型主要有表 1所示的几种。
表 1 数据同步的同步类型表
•同步类型 描述信息
双 向 同 步 双向同步是通常所使用的一种同步方式。 采用该方式, ( Two-way sync ) 同步的客户端和服务器相互仅交换彼此设备中的数据修改信 息, 未修改的数据信息不交换。客户端首先发送其修改信息。 慢同步( Slow sync ) 慢同步是双向同步的一种特殊类型, 不同之处在于必须 对数据进行逐条、 逐个字段的进行比较处理。 同步时, 客户 端必须把自身所有数据都发送到服务器, 然后服务器对客户 端发送的数据和服务器自身数据进行逐个字段的同步分析。
.客户端单向同步 客户端单向同步是一种单边方式的同步。 只有客户端发
( One-way. sync from 送其数据修改信息到服务器, 而服务器并不把服务器的数据 client only ) 修改信息发给客户端。
客 户 端 刷 新 客户端刷新是一种单边方式的同步。 客户端把自身所有 ( Refresh sync from 数据都发送到服务器, 服务器用客户端发送的数据来覆盖服 client only ) 务器中该用户的所有数据, 即服务器中的数据和客户端的数 据完全一致。 .
服务器单向同步 服务器单向同步和客户端单向同步类似。 只有服务器发 ( One-way sync from 送其数据修改信息到客户端, 而客户端并不把自身的数据修 server only ) 改信息发给服务器。
服 务 器 刷 新 服务器刷新和客户端刷新类似。 服务器把自身存储的用 ( Refresh sync from 户所有数据都发送给客户端, 客户端用服务器发送的数据来 server only ) 覆盖客户端自身的所有数据, 即客户端中的数据和服务器中 的用户数据完全一致。 .
'服务器通知同步 服务器通知同步是指由服务器首先提醒客户端来执行 ( Server Alerted Sync ) 同步操作, 即由服务器指示客户端开始一个特定类型的同步 操作, 仅仅是服务器通知客户端, 要求其发起某种同步, 后 续同步方式可能为以上六种同步方式。 以下釆用双向同步的例子说明如何进行数据同步。 其他同步类型的 数据同步都是双向同步的特殊情况, 例如, 慢同步可以看成是客户端和 服务器发送全部用户数据的双向同步、 单项同步是单方向发送用户数据 的双向同步、 刷新同步是单方向发送用户数据的慢同步等。
采用双向同步类型在客户端与服务器之间进行数据同步的过程为: 第一步, 客户端向服务器发送同步初始化包。 第二步, 服务器向客户端发送同步初始化包。
笫一步以及第二步主要进行同步初始化, 同步初始化主要完成身^ f分 鉴权、 需要同步的数据的协商以及设备能力信息的协商等, 其中, 设备 能力信息的协商为支持同步哪些数据以及支持哪些同步类型等。
第三步、 客户端向服务器发送同步数据。
.第四步、 服务器向客户端发送同步数据。
在第三步以及第四步中, 客户端根据数据的状态, 数据的状态可以 为新增、 更新、 删除以及移动等, 将发生修改的数据发送给服务器, 月艮 务器根据接收到的数据修改自身存储的数据以达到数据同步的目的后, 也根据自身存储的数据的状态, 将发生修改的数据发送给客户端, 客户 端根据接收到的数据修改自身存储的数据以达到数据同步的目的。
第五步、 客户端接收到同步数据后, 向服务器发送确认同步完成消 第六步、 服务器接收到同步数据后, 向客户端发送确认同步完成消 在上述方法中, 很多步驟都使用了消息包, 这是因为: 客户端和服 务器之间的具有相同功能的交互过程需要持续多次才能完成, 而在表示 时, '只用了一来一回的两种消息包。
实现数据同步过程的系统包括客户端和服务器, 客户端可以与服务 器进行消息交互。 其中, 在客户端侧还具有客户端数据库, 用于存储客 户端所属用户需要的数据, 该客户端数据库可以设置在客户端中, 也可 以单独设置;在服务器侧还具有服务器数据库,用于存放服务器的数据, 该服务器数据库可以设置在服务器中或者单独设置。
客户端通常可以为计算机、 移动终端或个人数字助理(PDA )等智 能终端。 在客户端数据库存储的数据可以包括: 通讯录、 日程、 便笺、 短信和电子邮件等。 这些数据均有标准规范定义其格式, 客户端可以将 所存储的数据转换成标准格式的数据发送给服务器, 服务器对接收到的 数据处理后可以将处理后的数据保存在服务器数据库中。
服务器通常可以为计算机或进行数据同步网络的网络服务器, 可以 接收来自客户端的数据同步消息或数据同步命令, 也可以向客户端发送 数据同步消息或数据同步命令。
图 1为存储在客户端数据库数据的存储方式示意图: 每一条数据用 本地唯一标识(LUID )进行标识, 该 LUID的值可以是针对一种类型数 据唯一, 也可以是针对客户端唯一, 其中, 每一条数据项中还设置有记 录数据状态的变更日志 (Chang Log ), 如图中所示的状态值( Status )。
图 2为存储在服务器数据库数据的存储方式示意图: 每一条数据用 进衧数据同步网絡的网絡唯一标识(GUID )进行标识, 并且设置同一 数据的 GUID与 LUID之间的映射关系表。
客户端和服务器双方进行的对数据的操作都会分别导致客户端数据 库中的数据项的状态和服务器数据库中的数据项的状态进行变更, 客户 端和服务器双方可以分别根据自身所保存的数据项的状态变更确定接 收到了什么数据同步命令或 /和数据同步消息。
客户端向服务器发送的数据同步命令或 /和数据同步消息包括: 增加 数据, 客户端将生成的数据及其对应的 LUID发送给服务器, 服务器对 数据完成增加处理后为其生成 GUID, 并保存数据的 LUID与 GUID的 映射关系; 更新数据, 客户端将要更新的数据及其对应的 LUID发送给 服务器, 服务器根据映射关系确定该 LUID对应的 GUID, 将 GUID对 应的数据进行更新并保存; 删除数据, 客户端将要删除的数据及其对应 的 LUID发送给服务器 ,服务器根据映射关系确定该 LUID对应的 GUID, 将 GUID对应的数据进行删除并删除该数据的 LUID与 GUID的映射关 系条目; 移动数据, 客户端将要移动数据当前的 LUID以及移动到目的 LUID 发送给服务器, 服务器根据映射关系确定当前 LUID 以及目的 LUID分别对应的当前 GUID以及目的 GUID,将当前 GUID对应的数据 移动到目的 GUID对应的数据项中。
服务器向客户端发送的数据同步命令或 /和数据同步消息包括: 增加 数据, 服务器将生成的数据及其对应的 GUID发送给客户端, 客户端对 数据完成增加处理后为其生成 LUID并将生成的 LUID返回给服务器, 服务器保存数据的 LUID与 GUID的映射关系; 更新数据, 服务器将要 更新的数据及其对应的 LUID发送给客户端, 客户端将 LUID对应的数 据进行更新并保存;删除数据,服务器将要删除的数据及其对应的 LUID 发送给客户端并删除该数据的 LUID与 GUID的映射关系条目, 客户端 将 LUID对应的数据进行删除; 移动数据, 服务器将要移动数据当前的 LUID以及移动到目的 LUID发送给客户端,客户端将当前 LUID对应的 数据移动到目的 LUID对应的数据项中。
目前, 在同步数据的类型中客户端和服务器之间采用锚(Anchor ) 来分别标记上一次的数据同步, Anchor是数据库级别的, 即当客户端和 服务器之间完成一次数据同步时, 在各自的数据库中分别设置相同的 Anchor信息。 在后续进行服务器和客户端之间的数据同步时, 客户端或 服务器判断自身的数据库设置的 Anchor信息是否与对方数据库设置的 Anchor信息相同, 如果相同, 就不再进行数据同步; 否则, 则发起慢同 步或刷新同步。
在客户端和服务器之间进行更新 Anchor信息的过程为:
第一步、 客户端向服务器发送同步数据包, 该同步数据包不仅携带 同步数据, 还携带上一次与服务器进行同步的 Anchor信息以及本次进 行同步的 Anchor信息。 第二步、 服务器接收到同步数据包, 比较该数据包携带的上一次与 服务器进行同步的 Anchor信息与自身数据库存储的 Anchor信息, 如果 相同', 则根据该同步数据包携带的同步数据进行数据同步, 并更新自身 数据库的 Anchor信息, 更新为该同步数据包携带的本次进行同步的 Anchor信息, 向客户端返回携带同步数据的同步数据包, 该同步数据是 服务器数据库中有修改标记的数据; 否则, 则服务器发起慢同步类型或 刷新同步类型。
在进行慢同步时, 客户端必须把客户端数据库中的所有数据都发送 到服务器上, 然后服务器再将客户端数据库中的每一条数据项与服务器 数据库存储的相应的数据项进行同步比较。 目前, 发生慢同步的原因包 括: 1 )客户端数据库中的 LUID混乱或者丟失,有些客户端会重用 LUID 或者 LUID重新生成导致 LUID混乱, 那么服务器的 LUID-GUID映射 表就失去了作用, 双方无法判断哪些数据项是对应的; 2 )客户端数据 库中的 Chang Log丢失, 客户端数据库的数据项的 Chang Log丟失后, 就无法判断哪些数据已经完成数据同步了, 哪些数据还需要继续进行数 据同步; 3 )客户端和服务器的 Anchor不一致, 即使客户端主动发起快 同步, 服务器也会发现双方的 Anchor 不一致, 从而不知道双方是否已 经进行了数据同步, 导致无法确定需要同步的数据, 发起慢同步。
在上述 1 ) ~ 2 )情况下, 客户端主动发起慢同步, 3 )情况下可以 由客户端发起慢同步或者服务器要求客户端发起慢同步。
采用慢同步在客户端和服务器之间进行数据同步, 存在着缺点:
1、客户端需要将客户端数据库中的全部数据项发送到服务器上,其 中可能大部分数据是已经完成同步的, 导致数据传输量大, 数据同步时 间长。
2、服务器在进行数据同步时, 需要对所接收的各个数据项进行同步 比较, 处理时间比较长。
3、 采用 Anchor技术的不合理性: 在进行数据同步的网络中, 发生 慢同步类型的情况非常多, 如进行数据同步的网络断连、 使用客户端的 用户取消客户端以及使用客户端的用户重置客户端都会引起客户端和 服务器各自的 Anchor信息不一致, 而导致进行慢同步过程。 但是, 在 实际中, 客户端和服务器各自的 Anchor信息不一致并不能表示双方各 自数据库中的所有数据都不相同。 例如, 如果客户端和服务器同步 100 条数据, 同步到第 50条数据时进行数据同步的网络断连, 那么这 50条 数据已经一致了, 在下次数据同步时就不需要再发送了, 但是由于客户 端和服务器各自的 Anchor信息不一致, 要进行慢同步或刷新同步, 还 必须发送这 50条数据, 使这 50条数据成为了垃圾数据。
因此, 在同步数据的类型中, 特别是慢同步类型中, 客户端和服务 器需要相互传送各自数据库中的所有数据, 而其中有很多是一致的并且 不需要传输的垃圾数据, 例如: 客户端和服务器都没有修改的数据、 客 户端和服务器已经同步的数据、 客户端的修改和服务器的修改的相同数 据等,这样网络流量特别大,其中包含了大部分不需要发送的垃圾数据, 降低数据同步的效率, 用户需要付出高额的费用。 发明内容
本发明实施例提供一种数据同步方法, 该方法能够降低数据传输量 和提高数据同步的效率。
本发明实施例还提供一种数据同步系统, 该系统能够降低数据传输 量和提高数据同步的效率。
本发明实施例还提供一种数据同步装置, 该装置能够降低数据传输 量和提高数据同步的效率。 本发明实施例是这样实现的:
一种数据同步方法, 该方法还包括: A、 客户端向服务器发送数据 特征信息验证消息, 该消息携带一个或一个以上为数据库中数据设定的 数据特征信息; B、 服务器将该消息携带的一个或一个以上数据特征信 息与自身数据库中数据设定的数据特征信息相比较, 根据比较的结果确 定需要同步的数据, 将指示该数据的信息携带在数据特征信息验证响应 消息中发送给客户端; C、 客户端根据该消息携带的信息, 确定要进行 同步的数据, 与服务器之间进行所确定数据的同步。
一种数据同步系统,包括客户端和与客户端进行数据同步的服务器, 客户端和服务器各自连接数据库, 客户端或服务器中还包括同步模块、 连接同步模块和数据库的数据处理模块和与同步模块相连接的数据特 征信息模块, 其中,
数据处理模块, 用于将数据库存储的数据发送给同步模块, 或者从 同步模块接收到数据同步消息, 根据该消息携带的同步数据对数据库中 的数据进行修改或增加;
数据特征信息处理模块, 用于为同步模块中的数据设定数据特征信 息后发送给同步模块;
同步模块, 还与服务器或客户端相连接, 用于将服务器或客户端所 发送数据的数据特征信息与由数据特征信息处理模块得到的相应数据 的数据特征信息进行验证并得出验证结果, 发送给服务器或客户端, 接 收来自服务器或客户端发送的携带同步数据的数据同步消息, 并将该消 息发送给数据处理模块; 或者向服务器或客户端发送由数据特征信息处 理模块得到的数据特征信息, 接收来自服务器或客户端的验证结果, 根 据验证结果向服务器或客户端发送携带同步数据的数据同步消息使对 方进行数据同步。 一种数据同步客户端, 包括同步模块、 连接同步模块和数据库的数 据处理模块和与同步模块相连接的数据特征信息模块, 其中,
数据处理模块, 用于将数据库存储的数据发送给同步模块, 或者从 同步模块接收到数据同步消息, 根据该消息携带的同步数据对数据库中 的数据进行修改或增加;
'数据特征信息处理模块, 用于为同步模块中的数据设定数据特征信 息后发送给同步模块;
同步模块, 用于将服务器所发送数据的数据特征信息与由数据特征 信息处理模块得到的相应数据的数据特征信息进行验证并得出验证结 果, 发送给服务器, 接收来自服务器发送的携带同步数据的数据同步消 息, 并将该消息发送给数据处理模块; 或者向服务器发送由数据特征信 息处理模块得到的数据特征信息, 接收来自服务器的验证结果, 根据验 证结果向服务器发送携带同步数据的数据同步消息使服务器进行数据 同步。
一种数据同步服务器, 包括同步模块、 连接同步模块和数据库的数 据处理模块和与同步模块相连接的数据特征信息模块, 其中,
数据处理模块, 用于将数据库存储的数据发送给同步模块, 或者从 同步模块接收到数据同步消息, 根据该消息携带的同步数据对数据库中 的数据进行修改或增加;
数据特征信息处理模块, 用于为同步模块中的数据设定数据特征信 息后发送给同步模块;
同步模块, 用于将客户端所发送数据的数据特征信息与由数据特征 信息处理模块得到的相应数据的数据特征信息进行验证并得出验证结 果, 发送给客户端, 接收来自客户端发送的携带同步数据的数据同步消 息, 并将该消息发送给数据处理模块; 或者向客户端发送由数据特征信 息处理模块得到的数据特征信息, 接收来自客户端的验证结果, 根据验 证结果向客户端发送携带同步数据的数据同步消息使客户端进行数据 同步。
本发明实施例提供的方法、 系统及装置, 为在客户端和服务器各自 数据库存储的数据设定数据特征信息, 客户端数据库中的数据特征信息 是客户端计算得到的, 服务器数据库中的数据特征信息是服务器计算得 到的或接收由客户端发送并存储的。 当在双方进行数据同步时, 客户端 将为自身数据库存储数据设定的数据特征信息发送给服务器, 服务器进 行自身数据库存储的相应数据的数据特征信息验证, 并将验证不能通过 的数据的信息发送给客户端, 客户端再根据该信息进行不能通过验证数 据的数据同步过程。 由于数据特征信息的长度比较短, 在客户端传送数 据特征信息给服务器进行验证时, 数据传输量低于将自身数据库存储的 所有数据都发送给服务器进行数据同步的数据传输量; 既使在验证后, 加上发送未通过验证的需要同步的数据的过程, 也比直接发送自身数据 库存储的所有数据所传输的数据量小。 因此,本发明实施例提供的系统、 方法及装置在数据同步过程中, 降低了数据传输量, 节省了网络带宽和 提高了数据同步的效率。 附图简要说明
图 1为现有技术存储在客户端数据库数据的存储方式示意图; 图 2为现有技术存储在服务器数据库数据的存储方式示意图; ' 图 3为本发明实施例进行数据同步的方法流程图;
.图 4为本发明实施例 i办商采用单方计算智能数据同步类型的方法流 程图;
图 5为本发明实施例出现表 4的笫一种情况时服务器采用 a )方式 后进行数据指纹的比较方法流程图;
图 6为本发明实施例出现表 4的第一种情况时服务器采用 b )方式 后进行数据指紋的比较方法流程图;
图 7为本发明实施例出现表 4的第二种情况时服务器判定需要进行 同步的数据项的方法流程图;
图 8a为本发明实施例 1的客户端数据库和服务器数据库中的数据项 的初始状态示意图;
图 8b为本发明实施例 1的客户端数据库和服务器数据库中的数据项 的 "改状态示意图;
图 8c为本发明实施例 1的客户端数据库中数据项的 Change Log丟 失后客户端数据库和服务器数据库中的数据项的修改状态示意图; 图 8d为本发明实施例 1进行数据同步后客户端数据库和服务器数据 库中的数据项的修改状态示意图;
图 9a为本发明实施例 2的客户端数据库和服务器数据库中的数据项 的爹改状态示意图;
图 9b为本发明实施例 2进行数据同步后客户端数据库和服务器数据 库中的数据项的修改状态示意图;
图 10a为本发明实施例 3的客户端数据库和服务器数据库中的数据 项的初始状态示意图;
图 10b为本发明实施例 3的客户端数据库和服务器数据库中的数据 项的修改状态示意图;
图 10c为本发明实施例 3的客户端数据库中数据项的 Change Log丢 失后客户端数据库和服务器数据库中的数据项的修改状态示意图; 图 11a为本发明实施例 4的客户端数据库和服务器数据库中的数据 项的修改状态示意图; 图 12 为本发明实施例采用单方计算智能数据同步类型进行数据同 步的方法流程图;
图 13 为本发明实施例协商采用双方计算智能数据同步类型的方法 流程图;
图 14 为本发明实施例采用双方计算智能数据同步类型进行数据同 步的方法流程图;
图 15 .为本发明实施例在客户端数据库分层存储数据实施例的示意 图;
图 16 为本发明实施例客户端和服务器进行分级数据指纹的验证方 法流程图;
图 17 .为本发明实施例客户端和服务器进行不分级数据指紋的验证 方法流程图;
图 18 为本发明实施例客户端的数据库存储数据的数据结构实施例 示意图;
图 19 .为本发明实施例服务器数据库存储数据的数据结构实施例示 意图;
图 20为本发明实施例中进行数据库的数据指纹验证示意图; .图 21为本发明实施例中进行第二级数据的数据指纹验证示意图; 图 22 为本发明实施例中进行第二级数据以下级别的数据指纹验证 示意图;
图 23为本发明实施例进行数据同步的系统示意图。 实施本发明的方式
为使本发明的目的、 技术方案和优点更加清楚明白, 以下举实施例 并参照附图, 对本发明进一步详细说明。 在客户端和服务器之间进行数据同步过程中, 垃圾数据是指客户端 自身数据库当前存储的与服务器自身数据库当前存储的相同数据。 垃圾 数据包括: 客户端和服务器在各自数据库中都没有修改的数据、 客户端 和服务器已经进行同步的数据以及客户端在自身数据库修改的和服务 器在自身数据库修改的相同数据等。
为了在同步数据过程中, 特别是慢同步数据过程, 客户端和服务器 需要相互传送各自数据库中的数据时, 不相互传送已经相同的垃圾数 据, 本发明实施例提出了一种优化数据同步的类型, 即智能同步类型, 该类型的核心思想为: 为客户端和服务器各自数据库中的各个数据都设 定数据特征信息, 在同步数据过程中, 首先验证数据特征信息, 即通过 对比客户端和服务器各自数据库所存储的数据设定的数据特征信息来 区分需要同步的数据和垃圾数据, 从而在后续数据同步阶段只传输需要 同步的数据, 避免垃圾数据的传送, 能够降低数据传输量和提高数据同 步的效率。
在本发明实施例中, 数据特征信息可以为数据指紋, 数据指纹能够 准确并且唯一标识数据的内容, 其含义是指不同的数据有不同的数据指 紋, 相同的数据有相同的指纹。 本发明实施例可以采用摘要算法, 如消 息摘要算法(MD5 )和安全散列算法(SHA )等; 或者可以采用循环冗 余校验算法, 如循环冗余校验算法(CRC )等; 或者可以采用普通散列 算法, 如哈希 (HASH ) 算法等; 或者可以采用时间戳算法, 如创建或 修改的时间标记等。
以下用数据特征信息为数据指紋举例说明本发明实施例。
在本发明实施例中, 为客户端和服务器各自数据库中的各个数据设 定的数据指纹, 是通过客户端和服务器协商或预先设定的数据指纹算法 获得的一个较短的字符串, 该字符串具有的性质为: 长度较短, 一般只 有十几个字节; 不同数据计算得出不同的字符串, 即不同数据的数据指 紋异有唯一性。 由于数据指紋的长度比较短, 在客户端传送数据指紋给 服务器进行验证时, 数据传输量远远低于将自身数据库存储的所有数据 都发送给服务器进行数据同步的数据传输量, 既使在验证后, 加上发送 未通过验证的需要同步的数据的过程, 也比直接发送自身数据库存储的 所有数据的数据传输量小。
在本发明实施例中, 为客户端和服务器各自数据库中的各个数据设 定的数据指紋可以是预先设定并对应于用 LUID标识的数据存储在数据 库中, 或者是在客户端和服务器进行数据指紋验证阶段动态设定的, 即 对用 LUID标识的数据进行动态设定, 这种方式可以称为双方计算智能 数据同步类型。
在本发明实施例中, 还可以采用客户端将计算的各个数据的数据指 紋发送给服务器, 服务器针对各个数据存储数据指紋, 在服务器比较数 据指紋时, 就可以不用计算, 而直接与自身存储的数据指纹进行比较。 在这种情况下, 客户端计算数据指纹的时机可以采用以下几种方式: 1 ) 在数据同步开始时, 客户端计算客户端数据库中各个数据项的数据指 紋, 这种方案不需要客户端保存各个数据项的数据指纹; 2 )客户端数 据库存储各个数据项的数据指纹, 一旦数据项进行了修改, 则客户端重 新计算修改的数据项的数据指纹并更新。 这种方式可以称为单方计算智 能数据同步类型。
图 3为本发明实施例进行数据同步的方法流程图, 其具体步骤为: 数据同步初始化阶段
步骤 300、 客户端和服务器之间进行数据同步初始化过程。
在本发明实施例中, 可以在进行数据同步初始化过程时, 进行数据 同步类型的协商, 即协商是否采用智能数据同步类型, 还是其他数据同 步类型。 在这里, 设协商为采用智能数据同步类型。
在协商采用智能数据同步类型的过程中还可以包括协商是否采用单 方计算智能数据同步类型还是采用双方计算的智能数据同步类型。
在本发明实施例中, 对于双方计算的智能数据同步类型客户端和服 务器之间在数据同步初始化过程中还可以进行数据指纹算法的确定, 从 而使双方采用确定的数据指紋算法为各自数据库存储的数据进行数据 指紋的设定, 也可以采用现有技术进行数据同步初始化过程。
在本发明实施例中, 对于单方计算的智能数据同步类型, 在数据同 步初始化过程中可以不进行数据指紋算法的确定。
数据指紋验证阶段
步骤 301、 客户端向服务器发送携带对应于自身数据库存储数据的 数据指紋的数据指紋验证消息。
步驟 302、 服务器将该消息携带的一个或一个以上数据特征信息与 自身数据库中数据设定的数据特征信息相比较, 根据比较的结果确定客 户端数据的状态, 例如是否作修改或是否是客户端新增的等, 以及服务 器端数据的状态, 例如, 是否作修改, 是否是服务器端新增等, 服务器 根据双方在同步初始化时协商的同步类型, 结合上述的比较结果, 确定 需要同步的数据, 将标识需要同步数据的信息携带在数据特征信息验证 响应消息中发送给客户端。
'标识需要同步数据的信息可以为需要同步数据对应的 LUID, 或者 为需要同步数据对应的数据指纹, 或者为需要同步数据的数据指紋对应 的状态码。
当标识需要同步的数据的信息为 LUID时, 本发明实施例可以将客 户端'数据库中 LUID对应的数据作为需要同步的数据; 当标识需要同步 数据的信息为数据指紋时, 本发明实施例可以将客户端数据库中的数据 指纹对应的数据作为需要同步数据; 当标识需要同步数据的信息为状态 码时, 本发明实施例中客户端可以根据客户端数据库中状态码确定对应 的数据是否需要同步, 由于状态码一般和 LUID对应, 因此将客户端数 据库中 LUID对应的数据作为需同步数据。
数据同步阶段
步骤 303、 客户端根据该响应消息所携带的信息确定要进行同步的 数据, 向服务器发送要进行同步的数据, 供服务器进行自身数据库中数 据的同步。
步驟 304、 服务器向客户端返回同步完数据的响应消息, 该响应消 息携带需要客户端同步的数据。
步驟 305、 客户端根据服务器端返回的响应消息所携带的数据同步 自身数据库中的数据。
数据同步完成阶段
步驟 306、 客户端向服务器发送确认数据同步完成消息, 该消息携 带本次同步完成的状态信息, 可以为 Anchor信息, 或者对应于自身数 据库设定的数据指纹等等。
步骤 307、 服务器接收到该消息后, 保存同步完成的状态信息, 向 客户端发送确认数据同步完成的响应消息, 完成数据同步过程; 或将接 收到的客户端的同步完成状态信息与自身数据库的同步完成状态信息 进行比较, 如果不相同, 则转入步骤 302, 继续执行本流程(图中未示 出); 否则, 向客户端返回确认数据同步完成的响应消息, 完成数据同 步过程(图中未示出)。
在本发明实施例中, 也可以不进行步骤 306和步骤 307, 而直接完 成客户端和服务器之间的数据同步过程。
为了保证在客户端数据库中数据的数据指紋和在服务器中相应数据 的数据指紋相同, 本发明实施例可以采用几种方式。 第一种方式, 单方 计算智能数据同步类型, 由客户端将数据库中各个数据的数据指纹计算 后发送给服务器, 服务器对应存储到服务器数据库中相应数据中; 第二 种方式, 双方计算智能数据同步类型, 客户端和服务器采用相同的数据 指纹算法计算各自数据库中数据项的数据指纹。 以下分别对这两种方式 进行详细说明。
单方计算智能数据同步类型
对于某些数据类型, 采用数据指纹由客户端计算, 服务器进行保存 方式的原因为: 客户端和服务器所保存的同一数据项的字段顺序、 编码 方式或存储格式可能不同, 那么所计算的同一数据项的数据指紋也是不 相同的, 导致在进行数据同步时指紋校验失效, 例如在 vCard中, 电话 号码 " + 86-755-28974150 " , 在客户 端存储时可 能 变成 "86-755-28974150" ; 还例如时间数据, 06/04/05和 06-04-05表示的是 相同的时间, 但由于存储格式不同, 计算得到的数据指紋也不同。
在这种方式中, 客户端会将所计算的数据指紋对应于数据项通过 Add, Replace, Copy或者 Move等同步命令发送给服务器, 服务器将这 些数据指紋与对应的数据项保存在服务器数据库中。
为了采用单方计算智能数据同步类型进行数据同步, 客户端和服务 器之前需要进行数据同步类型的协商, 该协商过程可以在数据同步的初 始化阶段或其他阶段。
图 4为本发明实施例协商采用单方计算智能数据同步类型的方法流 程图, 其具体步骤为:
'步骤 400、 客户端根据自身数据库中数据的状态确定要发起的数据 同步类型, '向服务器上报上一次数据同步的状态信息以及本次确定要发 起的数据同步类型。 步骤 401、 服务器根据接收到的客户端数据库的上一次数据同步的 状态信息, 确定是否采用接收到的要发起的数据同步类型后, 将所确定 的数据同步类型发送给客户端。
步驟 402、 客户端判断接收到的数据同步类型是否为单方计算智能 数据同步类型, 如果是, 转入步骤 403; 否则, 转入步骤 404。
步骤 403、 客户端采用单方计算智能数据同步类型进行本次数据同 步过程。
步驟 404、 客户端按照协商后确定的数据同步类型进行数据同步或 者进行重新协商。
在本发明实施例中, 客户可以随意选择一种数据同步类型通知客户 端, 客户端需要检测当前自身数据库中数据的状态然后再确定是发起客 户要求的数据同步类型, 还是发起一种能够解决数据库状态混乱的数据 同步类型 (可以为单方计算智能数据同步类型和慢数据同步类型)。
客户端检测当前自身数据库中数据的状态包括检测自身数据库中数 据的数据指紋的生成方式是否发生了改变、 自身数据库中的 L'UID混乱 或 /和重新生成、 自身数据库中数据的修改状态丟失。
如果客户端检测到自身数据库中数据的数据指紋的生成方式发生了 改变, 即计算数据指纹的算法或计算数据指紋的方式发生了改变, 则不 管客户发起的是何种数据同步类型, 客户端发起慢数据同步类型。 如果 客户端检测到自身数据库中数据的数据指纹的生成方式未发生改变, 客 户端可进一步判定数据库的状态, 确定是发起单方计算智能数据同步类 型或采用客户发起的数据同步类型。
如果客户端检测到自身数据库中数据的数据指紋的生成方式未发生 改变,但自身数据库中的 LUID混乱或 /和重新生成、或 /和自身数据库中 数据的修改状态丢失, 客户端可以发起单方计算智能数据同步类型。 如果客户端检测到自身数据库中数据的数据指紋的生成方式未发生 改变, 且自身数据库中的未 LUID混乱或 /和未重新生成、 且自身数据库 中数据的修改状态未丟失, 客户端可以发起单方计算智能数据同步类型 或釆用客户发起的数据同步类型。
服务器检测服务器数据库中的映射表未丟失、 保存的指紋未丢失, 且客户端指紋生成方式没有发生改变, 则服务器进一步根据接收到的客 户端数据库的上一次数据同步的状态信息检测到上一次数据同步是否 失败, 如果是, 则服务器可以在响应消息中要求客户端发起单方计算智 能数据同步类型。
服务器检测到服务器数据库中的映射表丟失、或 /和服务器数据库中 仅修改状态丟失, 且服务器数据库中的数据指纹未丢失, 可以在响应消 息中要求客户端发起单方计算智能数据同步类型。
服务器检测到服务器数据库中的映射表丢失且服务器数据库中的数 据特征信息丢失, 可以在响应消息中要求客户端发起慢同步数据类型。
服务器检测到客户端数据库中数据的数据指紋的生成方式发生了改 变, 可以在响应消息中要求客户端发起慢同步数据类型。
由上述分析可以看出, 客户端确定发起的数据同步类型和服务器确 定发起的数据同步类型分別如表 2和表 3所示:
表 2客户端发起数据同步类型表
数据指纹
生成方式 LUID 混
发生了改 乱或 /和重
新生成 Change Log丢失 数据同步类型
否 是 否 单方计算智能数据同步类型 1 否 " 否 是 单方计算智能数据同步类型 2 否 是 疋 单方计算智能数据同步类型 1 是 1 1 慢数据同步类型 表 3 服务器确定发起的数据同步类型表
Figure imgf000022_0001
服务器根据上一次数据同步状态信息判断上一次数据同步是否失败 的过程可以采用两种方式。
第一种方式: 客户端发送的上一次数据同步的状态信息为数据库的
Anchor信息。
服务器检测上一次的数据同步失败的过程为: 将客户端发送的 Anchor信息与上一次数据同步过程中客户端发送并保存在服务器数据 库的 Anchor信息进行比较, 如果相同, 则上一次数据同步成功, 否则 上一次数据同步失败。 第二种方式: 客户端发送的上一次数据同步的状态信息为采用设定 的数据特扭信息算法为自身数据库计算的数据特征信息。
_服务器检测上一次的数据同步失败的过程为: 将客户端发送的客户 端数据库的数据特征信息与上一次数据同步过程中客户端发送并保存 在服务器数据库中的客户端数据库的数据特征信息进行比较, 如果相 同, 则上一次数据同步成功, 否则上一次数据同步失败。
在第二种方式中, 采用设定的数据特征信息算法为自身数据库计算 数据特征信息的过程为: 将自身数据库中所有目录的数据特征信息和 / 或目录下数据对应的 LUID作为输入元素采用设定的数据特征信息算法 为自身数据库计算数据特征信息; 或者将自身数据库中所有目录的数据 特征信息或 /和目录下数据对应的 LUID, 以及目录下数据的数据特征信 息和 /或目录的下级数据对应的 LUID作为输入元素采用设定的数据特征 信息算法为自身数据库计算数据特征信息; 或者将自身数据库中所有数 据的数据特征信息和 /或数据项对应的 LUID作为输入元素采用设定的数 据特征信息算法为自身数据库计算数据特征信息。 算智能数据同步类型, 这是可以是针对客户端数据库和服务器数据库中 所有数据、 所有数据类型的数据、 某种数据类型的数据的或者基于数据 大小阀值的数据。
在进行数据同步时, 本发明实施例主要分析客户端异常的情况, 服 务器异常情况可以等同于客户端异常情况。 客户端可能出现的异常状态 主要有以下两种情况。
1 ) LUID混乱或 /和重新生成
此时, 将导致服务器数据库存储的数据的 LUID全部无效, 只能通 过数据指紋来找到客户端数据库和服务器数据库对应的数据项。 服务器数据库映射表丢失的情况可以等同于客户端数据库的 LUID 混乱或 /和重新生成。
2 ) Change Log丟失, 即数据修改状态丟失, 客户端数据库和月 务 器数据库 Anchor不一致的情况同此情况。
这种情况将导致无法准确的获知客户端数据库和服务器数据库中的 数据项的状态, 是否已经进行了数据同步、 进行了数据修改还是未进行 数据同步。
服务器数据库的 Change Log丟失的情况等同于客户端数据库的 Change Log丟失的情况; 服务器检测到上一次同步失败, 且其他状态正 常时, 等同于客户端数据库的 Change Log丟失。
根据上述分析, 客户端数据库中数据的状态可能出现的情况如表 4 所示:
表 4客户端数据库中数据的状态表
Figure imgf000024_0001
在表 4中的第一种情况是 LUID正常 Change Log丢失,此时客户端 数据库和服务器数据库中的数据项的对应关系没有丢失, 但客户端已经 无法判定这些数据项进行了修改以及进行了何种修改。 在这种情况下, 可根据客户端发送的 LUID找到数据项的对应关系。 服务器在接收到客 户端发送的 "LUID-数据指紋" 映射后, 直接与服务器数据库存储的相 同 LUID的数据指纹进行对比, 来确定对应的数据项中的数据是否需要 同步。
在表 4中的第二种情况是 LUID失效 Change Log正常,此时客户端 数据库和服务器数据库中的数据项的对应关系丢失了, 但客户端可以根 据 Change Log确定数据项做了何种修改。在这种情况下,对于那些在客 户端已经进行了进行修改了的数据项, 其数据指紋不需要发送给服务 器, 因为在服务器数据库中必定找不到匹配的数据指纹。 因此, 在这种 情况下,客户端可以根据 Change Log减少数据指紋验证阶段的数据指纹 传输量, 同时, 服务器也减少对比数据指紋的数量。
在表 4中的第三种情况是 LUID失效 Change Log丟失,此时客户端 数据库和服务器库中的数据项的对应关系丟失了, 而且客户端也无法判 定哪些数据项做了修改以及作了何种修改, 此时, 无法进行上述二种情 况的优化, 客户端需要发送所有待同步数据的指紋。
为了简化起见, 实施过程中第二种情况可以和的三种情况合并, 统 一按照的三种情况进行处理。
在表 4中的第四种情况是客户端处于正常情况下, 客户端可以采用 智能数据同步类型, 也可以是其他同步类型。
综上所述, 本发明实施例可以利用正常 LUID降低数据指紋的对比 复杂度, 利用 Change Log减少数据指纹的传输量。
以下釆用表 4的前两种情况分别举例说明如何进行数据同步。
本发明实施例出现表 4的第一种情况时进行数据同步的过程为: 第一步、 客户端和服务器协商后采用单方计算数据同步类型且针对 表 4出现的第一种情况。
第二步、 客户端向服务器发送客户端数据库中所有数据的 LUID-数 据指紋。
第三步、 服务器接收到后, 根据服务器数据库保存的 LUID-GUID 的映射关系和 GUID和数据指紋的映射关系, 确定对应的数据, 对比两 者的数据指纹, 得到需要进行数据同步的数据。
第四步、 服务器向客户端返回需要进行数据同步的数据项的 LUID。 在进行上述所述的方法时, 可能会出现两种方式。 a )服务器修改了 服务器数据库中的某个数据项后, 就移除原保存的数据指纹; b )服务 器修改了服务器数据库中的某个数据项后, 就在原保存的数据指紋作一 个标记位, 标记该数据指紋巳经修改或无效, 并且保存原数据指紋, 用 以比较时使用。
图 5为本发明实施例出现表 4的第一种情况时服务器采用 a ) 方式 后进行数据指紋的比较方法流程图, 其具体步骤为:
步骤 500、 服务器从客户端发送的所有 LUID-数据指紋中选取一个。 .步骤 501、 服务器判断服务器数据库中是否存在选取的 LUID-GUID 的映射关系, 如果是, 执行步 502; 否则, 为客户端新增数据, 执行 步骤 504。
步骤 502、服务器判断服务器数据库中的对应于选择的 LUID-GUID 数据的数据指紋是否存在,如果是,执行步骤 503; 否则,执行步骤 506。
步骤 503、 服务器判断两者的数据指纹是否相同, 如果是, 则客户 端数据库中和服务器数据库中的数据是相同的, 双方都未作修改, 执行 步骤 504; 否则, 执行步骤 505。
步骤 504、 服务器选取下一个 LUID-数据指纹进行比较, 直到客户 端发送的所有 LUID-数据指紋全部验证完毕, 执行步骤 507。
步骤 505、 该客户端数据库中的数据发生了修改, 服务器数据库相 应的数据未修改, 转入步驟 504;
步骤 506、 该服务器数据库中的数据发生了修改, 客户端数据是否 发生修改未知, 服务器可以进行冲突检测和仲裁后, 执行步骤 504; 步骤 507、 对于服务器数据库中剩余的无法与客户端发送的 LUID- 数据指紋对应的数据, 判断服务器数据库中是否是该数据指紋对应的 LUID, 如果是, 则转入步骤 508; 否则, 转入步驟 509。
步骤 508、 服务器判定该数据为在客户端删除的数据, 比较过程结 束。
-步骤 509、 服务器判定该数据为服务器数据库中的新增数据, 比较 过程结束。 .
图 5的比较结果如表 5所示:
表 5 釆用 a ) 方式后进行数据指纹的比较结果表
Figure imgf000027_0001
最终, 服务器向客户端返回响应消息:服务器将客户端修改的数据、 或者客户端新增的数据、 或者冲突检测后需要客户端发送到服务器的数 据对应的 LUID、 或者其数据指纹、 或者对应的状态码携带在响应消息 中返回给客户端, 客户端根据响应消息将需要同步的数据发送给服务器 进行数据同步; 服务器在进行数据同步的同时或之后, 将服务器数据库 新增、 或者修改的数据、 或者冲突检测后需要服务器发送到客户端的数 据下发给客户端进行客户端数据库中的数据同步。
图 6为本发明实施例出现表 4的第一种情况时服务器采用 b ) 方式 后进行数据指纹的比较方法流程图, 其具体步骤为:
步驟 600、服务器从客户端发送的所有 LUID-数据指纹中选取一个。 步骤 601、服务器判断服务器数据库中是否存在选取的 LUID-GUID 映射关系, 如果是, 执行步骤 602; 否则, 为客户端新增数据, 执行步 骤 606»
步骤 602、 服务器判断两者的数据指紋是否一致, 如果否, 执行步 骤 603; 如果是, 执行步骤 605。
步骤 603、 月1务器判断该数据指紋是否标识有标记位, 标识该数据 项已经进行了修改, 如果否, 执行步骤 604; 如果是, 执行步骤 608。
步驟 604、 服务器确定仅客户端数据库的该数据项发生了修改, 执 行步骤 606。
步骤 605、 月艮务器判断该数据指紋是否标识有标记位, 标识该数据 项已经进行了修改,如果否 ,客户端和服务器均未作修改,执行步骤 606; 如果是, 执行步骤 607。
步骤 606、 艮务器选取下一个 LUID-数据指紋进行比较, 直到客户 端发送的所有 LUID-数据指紋全部验证完毕, 执行步骤 609。
步骤 607、 服务器确定仅服务器数据库中的该数据项发生了修改, 执行步驟 606。
步骤 608、 服务器确定客户端和服务器均对此数据进行了修改, 需 要进行冲突检测和仲裁后, 执行步骤 606。
步骤 609、 对于服务器数据库中剩余的无法与客户端发送的 LUID- 数据指紋对应的数据, 判断服务器数据库中是否该数据指纹对应的 LUID, 如果是, 则转入步骤 610; 否则, 转入步驟 611。
步骤 610、 服务器判定该数据为在客户端删除的数据, 比较过程结 束。 .
步骤 611、 服务器判定该数据为服务器数据库中的新增数据, 比较 过程结束。
图 6的比较结果如表 6所示:
表 6 采用 b ) 方式后进行数据指紋的比较结果图
情况 . 映射关系 指纹比较 结果
步骤 605 根据 LUID找到映射 指紋相同 客户端和服务器均未作修改 指紋相同, 服 客户端未修改, 服务器修改 步骤 607 根据 LUID找到映射 务器有修改标
记位
指紋不相同, 客户端修改, 服务器未修改 步骤 604 根据 LUID找到映射 服务器端无修
改标记位
指纹不相同, 服务器确定客户端和服务器均 步驟 608 据 LUID找到映射 服务器端有修 对此数据进行了修改, 需要进 改标记位 行冲突检测和仲裁; 步骤 606 根据 LUID找不到映射 1 客户端新增数据
服务器端剩余无法找到 服务器新增数据
步驟 611 1
映射关系的数据
服务器端有 LUID,但客 客户端删除的数据项 步骤 610 户端未传送该数据的指 1
紋 本发明实施例出现表 4的第二种情况时进行数据同步的过程为: 第一步、 客户端和服务器协商后釆用单方计算数据同步类型且针对 表 4的第二种情况, 并根据数据项的状态信息确定哪些数据指紋需要发 送。
第二步、 客户端向服务器发送客户端数据库中需要发送的数据项的 数据指紋。
第三步、 服务器接收到后, 根据服务器数据库保存的数据项, 对比 两者的数据指紋, 得到需要进行数据同步的数据项。
第四步、 服务器向客户端返回需要进行数据同步的数据项的数据指 紋或状态码。
在本发明实施例中, 客户端可以根据以下规则判定需要发送的数据 指紋。
a )数据项具有修改状态标识, 如添加、 删除或修改, 则该数据项的 LUID-数据指紋需要发送。
b )数据项没有修改状态标识, 则该数据项的 LUID-数据指纹可以发 送, 也可以不发送。
当服务器对服务器数据库中的数据项作了修改后, 移除所保存的数 据指紋时, 如图 7所述的方法。 图 7为本发明实施例出现表 4的第二种 情况时服务器判定需要进行同步的数据项的方法流程图, 其具体步骤 为:
步骤 700、 服务器从客户端发送的所有数据指纹中选取一个。
步驟 701、 服务器从服务器数据库所保存的数据指纹中是否可以找 到相同的数据指纹, 如果否, 执行步骤 702; 如果是, 执行步骤 704。
步厥 702、 服务器确定为客户端新增数据, 执行步骤 703。 步骤 703、 服务器选取客户端发送的下一个数据指紋进行比较, 直 到客户端发送的所有数据指纹都比较完毕, 执行步骤 705。
步骤 704、 客户端和服务器均未作修改, 重建映射关系后, 执行步 驟 703。
步骤 705、 对于服务器数据库中剩余的无法与客户端发送的数据指 纹对应的数据, 判断为服务器数据库中的新增数据, 比较过程结束。
图 7的比较结果如表 7所示:
表 7表 4的第二种情况时服务器后比较数据指纹的比较结果表
Figure imgf000031_0001
当服务器对服务器数据库中的数据项作了修改后, 在原保存的数据 项对应的数据指紋设置标记位, 该标记位标识该数据指纹已经修改或无 效并保存原数据指紋时, 也可以采用图 7所述的方法, 这时, 使得步骤 701 的数据指紋比较更加精确, 可以进一步解决数据重复同步的问题。 例如上述表 7中, 如果服务器在服务器数据库中找不到与客户端发送的 数据指紋匹配的数据指紋, 只能认为是客户端新增数据, 导致了数据重 复的问题。 但是, 实际上也可能是客户端未修改, 而服务器进行了修改 的情况, 如果服务器保存旧指纹, 并标记进行了修改, 则客户端发送的 数据指纹可以与服务器保存的旧指纹匹配, 从而判定为仅服务器数据库 中的数据发生了修改, 从而避免了数据重复。
采用本发明实施例时,可以在数据同步协议中新增智能数据同步类 型, 并使用状态码进行标识, 如表 8所示:
表 8新增智能数据同步类型表
Figure imgf000032_0001
此种表示方式下, 客户端向服务器发送协商数据同步类型命令格式 如下:
<数据闳步类型协商命令 >
<数据同步类型编码 >智能同步类型 1</数据同步类型编码 >
</数据同步类型协商命令>
在具体实现时, 可以通过数据同步过程中的 <Alert>命令实现, 以下 是一个客户端向服务器发起智能数据同步类型 1的<八1611>命令举例: <SyncML> <SyncHdr>
</SyncHdr>
<SyncBody>
<Alert>
<CmdID>K/CmdID>
<Data>21K/Data <!- Smart Sync 1 -- >
</Alert>
</SyncML>
服务器要求客户端发起智能数据同步类型 1 的<Alert>命令举例如
<SyncML>
<SyncHdr>
</SyncHdr>
<SyncBody>
<Status>....</Status>
<Alert>
<CmdID>3</CmdID>
<Data 21K/Data>
</Alert>
</SyncML>
本发明实施例的另外一种实施方式为仅新增智能数据同步类 型, 并在协商数据同步类型命令中指明数据指紋的生成方式和发起数据 同步的原因, 这种表示方式下, 客户端向服务器发送协商同步类型命令 格式可如下:
<同步类型协商命令 >
<同步类型编码 >智能同步 </同步类型编码 >
<指紋生成方式>客户端生成指紋到服务器保存 </指紋生成方式 > <原因编码 >智能同步发起原因编码 </原因编码 >
</同步类型协商命令 >
为了方便在数据同步命令中携带, 可以在现有的规范中定义一个新 的数据同步类型表示智能数据同步, 同时给智能数据同步的数据指紋生 成方式和发起原因新增编码, 如表 9所示:
表 9 智能数据同步的数据指紋生成方式和发起原因新增编码表
Figure imgf000034_0001
在具体实现时, 可以通过数据同步过程中的 <Alert>命令实现, 以下 是一个客户端向服务器发起智能数据同步 1的<Alert>命令举例:
<SyncML>
<SyncHdr>
</SyncHdr> <SyncBody>
<Status>....</Status>
<Alert>
<CmdID>3</CmdID>
<Data>211</Data
<FPGen>501 </FPGen>
<Reason>503</Reason>
</Alert>
</SyncML> 使用本发明实施例后数据指紋发送和校验结果的实施方式 客户端可以通过 <Fingerprint>命令向服务器发送自身数据库中的数 据项的 LUID和数据指紋。 命令格式可以采用但不限于以下两种。
第一种: <Fingerprint>
<LUID>01 K/LUID>
<Data>LKSDJLFJSLDJSDJL</Data>
</Fingerprint>
<Fingerprint>
<LUID>012</LUID>
<Data>JLSDJOTOEWJFLS</Data>
</Fingerprint>
第二种: <Fingerprints>
Oil: LKSDJLFJSLDJSDJL;
012:JLSDJOTOEWJFLS
</Fingerprints> 服务器向客户端返回的指纹验证响应消息的格式可以采用但不限于 如下三种方式:
.第一种方式, 服务器向客户端返回需要客户端上传数据的 LUID列 表或 /和数据指纹列表;
在具体实现时,可以通±<Status>命令实现,其消息格式可采用但不 限于如下的形式:
<Status>
LUID编号: 指紋验证状态码; LUID编号: 指紋检证状态码 </Status>
或者仅有 LUID编号
第二种方式, 服务器对客户端发送的每一个数据指紋, 返回一个数 据指紋验证结果;
在具体实现时,可以通 <Status>命令实现,其消息格式可采用但不 限于如下的形式:
,<Status>
<LUID>01K/LUID>
<Data>217</Data>
</Status>
<Status>
<LUID>012</LUID>
<Data>218 </Data>
</Status >
第三种方式, 服务器向客户端发送的每一个数据指纹, 返回数据指 纹验证结果, 相同验证结果返回数据项的 LUID或 /和指纹的列表, 即对 具有相同状态码的情况可以合并命令, 减少数据传输量;
在具体实现时,可以通 i±<Status>命令实现,其消息格式可采用但不 限于如下的形式:
<Status>
<LUID>011; 013</LUID>
<Data>217</Data
</Status>
<Status>
<LUID>012; 014</LUID>
<Data>218 </Data>
</Status >
举几个具体的实施例说明本发明实施例。
假设服务器对服务器数据库中的数据项作了修改并移除已保存的数 据指纹。
实施例 1: 表 4的第一种情况的实施例。
首先, 客户端数据库和服务器数据库中的数据项的初始状态如图 8a 所示, 客户端数据库和服务器数据库一段时间后, 做了如图 8b 所示的 修改。
其次, 客户端数据库中数据项的 Change Log丢失, 如图 8c所示。 最后, 进行数据指紋的比较。
a、 客户端发现客户端数据库中数据项的 Change Log丟失, 在数据 同步初始化阶段, 向服务器请求发起智能数据同步, 其中, 发起智能数 据同步的原因为: Change Log丟失。
b、 服务器返回进行智能数据同步的确认。
c、 客户端将客户端数据库中数据项的 LUID-数据指紋发送给服务
d、服务器在接收到客户端发送的 LUID-数据指紋对后, 进行如下对 比: 服务器数据库 <1, Fa> <2, Fb> <3, -> <4, -> <5, Fe> 客户端数据库 <1, Fa> <2, Fb,> <3, Fc> <4, Fd,> <6, Ff> <7, Fh> 对比结果: 数据 1 , 不需要进行数据同步; 数据 2, 需要进行数据同 步; 数据 3, 因为服务器无法判定客户端是否进行了修改, 需要根据冲 突策略而定, 如果服务器赢, 则不需要进行数据同步; 数据 4, 根据冲 突策略而定; 数据 5, 服务器端检测 LUID = 5的数据项的数据指紋没有 发送过来,'确定客户端删除了该数据项, 月 务器也将该数据项删除; 数 据 6, 服务器发现 LUID = 6的数据项的数据指紋已在服务器端删除, 则 在数据同步阶段, 服务器发送删除命令将客户端上的该数据项也删除; 数据 8, 服务器没有找到可比较的指紋, 服务器判定为服务器新增的数 据项。
e、 服务器向客户端返回需要进行数据同步的数据集合: <2, 3 ?, 4 ?, 6, 7>。
f、 客户端根据服务器返回的数据集合, 开始同步。
g、在同步完成阶段, 客户端向服务器返回 10008的数据指紋, 服务 器上保存该数据指纹后, 向客户端返回该数据指纹保存确认。
如果设定的冲突策略为客户端贏, 则在数据同步后客户端数据库和 服务器数据库中的数据项如图 8d所示。
实施例 2: 表 4的第二种情况的实施例。
首先, 客户端数据库中数据项的 LUID全部无效,.服务器上 LUID 和 GUID的映射已经无效, 而客户端会为客户端数据库中数据项重新分 配一个新的 LUID, 此时进行智能数据同步的目的为: 快速高效地在服 务器重新建立 GUID-LUID的对应关系, 同时, 使得客户端数据库中的 数据项与服务器数据库中的数据项对应的数据相一致。 .
其次, 如图 9a所示, 客户端将客户端数据库中的 LUID进行了重新 分配, 此时, 在服务器数据库中的数据项的对应关系已经无效, 只能通 过仅有的数据指纹找到原对应的数据项, 对于数据指纹不一致的数据 项, 只能作为新添加的数据项。
最后, 进行数据指紋的比较。
a、客户端发现客户端数据库中数据项的 LUID失效, 在数据同步初 始化阶段,向服务器请求发起智能数据同步,其中包含发起原因为 LUID 失效。
b、 服务器清除服务器数据库中所有数据项的 LUID, 返回发起智能 数据同步的确认。
c、 客户端将客户端数据库中数据项的 LUID-数据指紋发送给服务 器, 如下所示: {<11, Fa> <12, Fb,> <13, Fc> <14, Fd'> <16, F^> <17, Fh>}。
d、服务器在接收到客户端发送的 LUID-数据指纹后, 与服务器数据 库中保存的数据指紋进行对比, 其结果如下: 数据 11 , ' 10001的指紋与 其一致, 因此更新 10001对应的 LUID; 数据 12 - 17, 均没有找到指纹 一致的数据项。
e、服务器向客户端返回需要进行数据同步的数据项集合, 即没有找 到一致数据指紋的数据项集合, 这些数据项集合将类似于客户端新添加 的数据项, 同步到服务器数据库中; 而服务器数据库中的数据项也作为 服务器新添加的数据项同步到客户端上。
f、 在数据同步完成阶段, 客户端对服务器上新增的数据项返回数据 指紋, 服务器在服务器数据库中保存指紋后, 向客户端返回数据指紋保 存确认。在数据同步后客户端数据库和服务器数据库中的数据项如图 9b 所示。
以下实施例为服务器对服务器数据库中的数据项作了修改并在修改 数据项的数据指紋设置了标记位, 标识该数据指纹已经修改或无效的情 况。
实施例 3 , 表 4的第一种情况的实施例。
首先,客户端数据库和服务器数据库中的数据项的初始状态如图 10a 所示, 客户端数据库和服务器数据库一段时间后, 做了如图 10b所示的 修改。
其次, 客户端数据库中数据项的 Change Log丢失, 如图 10c所示。 最后, 进行数据指紋的比较。
a、 客户端发现客户端数据库中数据项的 Change Log丢失, 在数据 同步初始化阶段, 向服务器请求发起智能数据同步, 其中, 发起智能数 据同步的原因为: Change Log丟失。
b、 服务器返回进行智能数据同步的确认。
c、 客户端将客户端数据库中数据项的 LUID-数据指纹发送给服务 d、服务器在接收到客户端发送的 LUID-数据指紋对后,进行如下对 比:
服务器数据库 <1, Fa> <2, Fb> <3, -> <4, -> <5, Fe>
客户端数据库 <1, Fa> <2, Fb'> <3, Fc> <4, Fd'> <6, Ffi> <7, Fh>。 对比结果: 数据 1 , 不需要进行数据同步; 数据 2, 由于 Fb,不等于 Fb,而且服务器数据库中数据项的数据指纹没有标志位,说明客户端数据 库的数据项发生改变, 需要进行凝:据同步; 数据 3, 由于客户端数据库 中数据项的数据指紋等于服务器数据库中数据项的数据指纹, 服务器数 据库中数据项的数据指纹上有标记位 , 说明服务器数据库中数据项的数 据指纹做了修改, 客户端数据库中该数据项没有做修改, 客户端不需要 同步该数据项; 数据 4, 由于 Fd,不等于 Fd, 而且服务器数椐库中数据 项的数据指紋有修改标志位, 所以客户端和服务器均对该数据项做了修 改, '冲突, 根据冲突策略而定; 数据 5, 服务器发现 LUID = 5的数揮项 的数据指 ^没有接收到, 确定客户端删除了该数据项, 服务器也将该数 据项删除,客户端不需要对该数据项进行同步;数据 6,服务器发现 LUID = 6 的数据项的数据指纹已在服务器删除, 在数据同步阶段, 服务器发 送刪除命令将客户端数据库存储的该数据项也删除; 数据 7, 客户端新 增的数据项, 需要进行数据同步; 数据 8, 服务器没有找到可比较的指 紋, 服务器判定为服务器新增的数据项。
e、 服务器向客户端返回需要上传的数据集合, 即<2,4 ?, 6, 7> f、 客户端根据服务器返回的数据集合, 开始进行数据同步。
g、在同步完成阶段, 客户端向服务器返回 10008的数据指纹, 服务 器上保存该数据指紋后, 向客户端返回该数据指纹保存确认。
实施例 4: 表 4的第二种情况的实施例。
首先, 客户端数据库中数据项的 LUID全部无效, 服务器上 LUID 和 GUID的映射已经无效, 而客户端会为客户端数据库中数据项重新分 配一个新的 LUID, 此时进行智能数据同步的目的为: 快速高效地在服 务器重新建立 GUID-LUID的对应关系, 同时, 使得客户端数据库中的 数据项与服务器数据库中的数据项对应的数据相一致。
其次, 如图 11a所示, 客户端将客户端数据库中的 LUID进行了重 新分配, 此时, 在服务器数据库中的数据项的对应关系已经无效, 只能 通过仅有的数据指紋找到原对应的数据项, 对于数据指紋不一致的数据 项, 只能作为新添加的数据项。
最后, 进行数据指紋的比较。
a、客户端发现客户端数据库中数据项的 LUID失效, 在数据同步初 始化阶段,向服务器请求发起智能数据同步,其中包含发起原因为 LUID 失效。
b、 服务器清除服务器数据库中所有数据项的 LUID, 返回发起智能 数据同步的确认。
c、 客户端将客户端数据库中数据项的 LUID-数据指紋发送给服务 器, 如下所示: {<11, Fa> <12, Fb,> <13, Fc> <14, Fd,> <16, ¥f> <17, Fh〉}。
4、服务器在接收到客户端发送的 LUID-数据指紋后, 与服务器数据 库中保存的数据指纹进行对比, 其结果如下: 数据 11 , 10001的数据指 紋与其一致, 因此更新 10001对应的 LUID, 客户端不需要同步数据; 数据 13, 10003的数据指紋与其一致, 而且服务器上的数据指纹有|爹改 标记位, 说明数据 13与 10003是对应的, 更新 10 03对应的 LUID, 且 服务器上的数据发生了修改,所以客户端不需要同步数据;数据 12, 14, 16, 17, 均没有找到数据指纹一致的数据项。
e、服务器向客户端返回需要发送的数据集合: 即<12, 14, 16, 17>。 f、 客户端根据服务器返回的数据同步的集合, 开始进行数据同步。 g、在数据同步完成阶段,客户端对服务器上新增的数据项返回数据 指紋, 服务器在服务器数据库中保存指紋后, 向客户端返回数据指紋保 存确认。
在本发明实施例中, 当采用单方计算智能数据同步类型同步完数据 后, 客户端还可以将标识本次同步完成的数据同步的状态信息在确认数 据同步完成消息中发送给服务器; 服务器将确认数据同步完成消息中携 带的数据同步的状态信息存储到自身数据库中后返回响应消息。 当然, 该数据同步的状态信息包括客户端数据库中进行了同步数据的数据指 紋和客户端数据库的数据指纹或 Anchor等, 以便在下一次进行数据同 步时服务器或客户端根据该数据同步的状态信息进行验证。 在本发明实施例中, 当客户端确定了采用何种单方计算智能数据同 步类型后, 就可以与服务器进行数据同步了。 单方计算智能数据同步类 型的几种方式可以采用发起原因编码进行标识, 在服务器中, 服务器根 据发起原因编码确定采用单方计算智能同步类型中的哪种方式进行数 据指紋验证。
图 12 为本发明实施例采用单方计算智能数据同步类型进行数据同 步的方法流程图, 其具体步骤为:
步骤 1200、客户端向服务器发起单方计算智能数据同步类型的数据 同步清求, 该请求携带类型码, 用以标识采用单方计算智能数据同步类 型的哪种类型。
根据该请求可以判断客户端发起智能同步的原因, 原因包括: 客户 端数据库中数据的数据指紋的生成方式发生了改变、 数据的 LUID混乱 或 /和重新生成和数据的修改状态丢失等。
如表 2所示, 可以有三种方式: 第一种需要将客户端数据库中所有 · 数据的数据指纹发送; 第二种需要将客户端数据库中修改状态改变数据 的数据指紋发送。
步骤 1201、 服务器接收到请求后, 确定采用客户端发起的单方计算 智能数据同步类型的方式, 向客户端返回该请求的响应消息。
步骤 1202、客户端将自身数据库中需要同步数据的数据指紋携带在 数据特征信息验证消息中发送给服务器。
在不同的方式下, 需要同步数据不相同: 在第一种方式下, 为自身 数据库中所有数据; 在第二种方式下, 为自身数据库中修改状态改变的 数据; 第三种方式下, 为自身数据库中针对 LUID的数据。
步骤 1203、服务器将接收到的数据指纹与自身数据库中的数据指紋 进行验证, 根据验证结果确定需要同步的数据, 将指示需要同步数据的 信息携带在响应消息中发送给客户端。
在不同方式下, 验证的过程不一样, 具体验证方式可以参考上面描 述的过程。
在本发明实施例中 , 指示需要同步数据的信息为需要同步数据对应 的 LUID、 数据指紋或状态码。
,步骤 1204、客户端根据响应消息携带的信息确定需要发送给服务器 的数据, 将确定的数据发送给服务器。
步驟 1205、服务器根据客户端上传的数据进行服务器数据库的数据 同步, 在之后或同时给客户端返回数据同步完成消息的响应消息, 该响 应消息携带需要客户端同步的数据。
步骤 1206、 客户端接收到该响应消息后, 根据携带的需要客户端同 步的数据进行客户端数据库的同步过程。
步骤 1207、 客户端将所有进行数据同步数据的数据指紋针对 LUID 携带在确认数据同步完成消息中发送给服务器。
步骤 1208、 服务器针对 LUID存储接收到的确认数据同步完成消息 中所有进行数据同步数据的数据指紋, 给客户端返回确认数据同步完成 消息的响应消息。
双方计算数据同步类型
为了采用双方计算智能数据同步类型进行数据同步, 客户端和服务 器之前需要进行数据同步类型的协商, 该协商过程可以在数据同步的初 始化阶段或其他阶段和预先设定。
图 13 为本发明实施例协商采用双方计算智能数据同步类型的方法 流程图, 其具体步骤为:
步驟 1300、客户端根据自身数据库中数据的状态确定要发起的数据 同步类型, 向服务器上报上一次数据同步的状态信息以及本次确定要发 起的数据同步类型。
步驟 1301、服务器根据接收到的客户端数据库的上一次数据同步的 状态信息, 确定是否采用接收到的要发起的数据同步类型后, 将所确定 的数据同步类型发送给客户端。
步骤 1302、客户端判断接收到的数据同步类型是否为双方计算智能 数据同步类型, 如果是, 转入步骤 1303; 否则, 转入步骤 1304。
步驟 1303、客户端釆用双方计算智能数椐同步类型进行本次数据同 步过程。
步骤 1304、客户端按照协商后确定的数据同步类型进行数据同步或 者进行重新协商。
在本发明实施例中, 客户可以随意选择一种数据同步类型通知客户 端, 客户端需要检测当前自身数据库中数据的状态然后再确定是发起客 户要求的数据同步类型, 还是发起一种能够解决数据库状态混乱的数据 同步类型 (可以为双方计算智能数据同步类型和慢数据同步类型)。
客户端检测当前自身数据库中数据的状态包括检测自身数据库中的 LUID混乱或 /和重新生成和自身数据库中数据的修改状态丢失。
客户.端如果检测到自身数据库中的 LUID 混乱或 /和重新生成、 或 / 和修改状态丢失, 则为双方计算智能同步类型。
服务器确定所发起的数据同步类型的过程为: 服务器根据上一次数 据同步的状态信息检测到上一次的数据同步失败,或 /和服务器数据库中 的映射表丟失,或 /和服务器数据库中数据的修改状态丟失, 则为双方计 算智能数据同步类型。
客户端和服务器分别确定发起的数据同步类型分別如表 10和表 11 所示:
表 10 实施例中的客户端确定发起的数据同步类型表 LUID 混乱或 /和重 Change
新生成 Log丟失 数据同步类型
双方计算数据同步类型 是 否
3
双方计算数据同步类型 否 是
4
双方计算数据同步类型
' 是 是
3 表 11 实施例中的服务器确定发起的数据同步类型表
Figure imgf000046_0001
服务器根据上一次数据同步状态信息判断上一次数据同步是否失败 的过程可以采用与单方计算智能数据同步类型相同的两种方式。
当然, 本发明实施例的客户端和服务器还可以预先约定采用双方计 算数据同步类型, 这是可以是针对客户端数据库和服务器数据库中所有 数据的、 所有数据类型的数据的、 某种数据类型的数据的或者某种数据 大小的数据的。
在本发明实施例中, 客户端和服务器约定根据所同步的数据类型或 数据大小来确定数据同步类型, 具体叙述为:
1)对于 vCard, vCalendar数据类型, 是由多个字段組成, 客户端与 服务器端字段的顺序, 字段的编码方式等不同都会影响指紋值的计算, 所以针对这些数据类型, 可以采用单方计算智能数据同步类型。
2)对于文件, mp3等数据类型,没有字段的顺序和编码方式的不同, 可以直接对数据内容计算指紋, 这样釆用双方计算智能数据同步类型。
3 )根据同步数据的大小来协商是否进行指纹验证。
在进行数据同步过程中, 如果采用过滤机制, 则数据指紋协商以及 数据同步时, 只考虑满足过滤机制的数据。
由于采用双方计算数据同步类型进行数据同步, 所以客户端和服务 器都需要计算各自数据库中数据的数据指紋, 两方计算数据指紋的算法 必须相同, 并且可以预先分别设定在客户端和 ϋ良务器中。 在本发明实施 例中, 客户端和服务器还可以协商计算数据指紋的算法。
本发明实施例客户端和服务器进行数据指紋算法的协商过程为: 第一步、 客户端向服务器发送初始化数据包, 其中包括一个或多个 数据指紋算法标记。
第二步、 服务器接收到该初始化数据包, 根据该初始化数据包包括 的一个或多个数据指紋算法标记确定可以选择的数据指纹算法, 根据自 身情况选择一个数据指紋算法。
第三步、 服务器向客户端返回初始化数据包, 其中包括所选择的数 据指紋算法标记。
协商完成后, 客户端采用所协商的数据指紋算法对自身数据库存储 的数据设定数据指紋, 同样地, 服务器采用所协商的数据指紋算法对自 身数据库存储的数据设定数据指紋。
在具体实现中, 由于服务器可以支持所有已经规定好的数据指纹算 法, 所以客户端可以指定其中一种适合自身的数据指纹算法, 本发明实 施例客户端和服务器进行客户端指定数据指紋算法的过程为: '第一步、 客户端向服务器发送初始化数据包, 其中包括指定的数据 指紋算法标记。
第二步、 服务器根据接收到初始化数据包包括的指定的数据指纹算 法标记确定数据指紋算法, 向客户端返回初始化数据包, 其中包括确认 客户端指定的数据指紋算法标记。
这样, '客户端和服务器就可以采用客户端指定的数据指纹算法为各 自数据库中的数据设定数据指纹了。
在本发明实施例中 , 客户端指定数据指紋算法的过程也可以不在数 据同步初始化阶段进行, 而是在数据同步初始化阶段之后进行: 在客户 端向服务器发送数据指紋验证消息时, 还携带所采用的数据指紋算法标 记; 在服务器接收到该消息后, 根据该消息携带的数据指紋算法标记确 定数据指纹算法, 采用所确定的数据指紋算法为自身数据库中存储的数 据设定数据指纹, 然后再执行后续过程。
在服务器釆用双方计算智能数据同步类型进行数据同步过程中的数 据指紋验证时, 与采用单方计算智能数椐同步类型进行数据同步过程中 的数据指纹验证的过程相同, 只不过服务器数据库中的数据指紋是由服 务器根据数据指纹算法计算得到的 , 而不是由客户端发送来并存储的, 所以在这不再重述。
在采用双方计算智能数据同步类型同步完数据后 , 该方法还包括: 客户端将自身数据库中完成同步的数据同步的状态信息在确认数据同 步完成消息中发送给服务器; 服务器将确认数据同步完成消息中携带的 数据同步的状态信息与自身数据库中相应的数据同步的状态信息进行 比较, 该自身数据库中相应的数据同步的状态信息为客户端发送并保存 的, 或是服务器计算的, 如果都相同, 则返回响应消息; 否则, 再次采 用双方计算智能数据同步类型进行数据同步。 当然, 该数据同步的状态 信息可以为客户端数据库和服务器数据库的 Anchor值、 或数据库的数 据指纹、 或数据的数据指纹。
'图 14 为本发明实施例采用双方计算智能数据同步类型进行数据同 步的方法流程图, 其具体步驟为:
步骤 1400、客户端向服务器发起双方计算智能数据同步类型的数据 同步请求, 该请求携带类型码, 用以标识采用双方计算智能数据同步类 型的哪种类型。
根据该请求可以判断客户端发起智能同步的原因, 原因包括: 数据 的 LUID混乱或 /和重新生成和数据的修改状态丟失等。
如表 10所示,可以有两种方式: 第一种需要将客户端数据库中所有 修改状态或未改变数据的数据指纹发送; 第二种需要将客户端数据库中 所有数据的数据指紋针对 LUID发送。
步骤 1401、 服务器接收到请求后, 确定采用客户端发起的双方计算 智能数据同步类型的方式, 向客户端返回该请求的响应消息。
步骤 1402、客户端将自身数据库中需要同步数据的数据指纹携带在 数据特征信息验证消息中发送给服务器。
在不同的方式下,需要同步数据不相同:在表 11的在第一种方式下, 为自身数据库中所有修改状态或未改变的数据; 在表 12 的第二种方式 下, 为自身数据库中针对 LUID的数据。
步骤 1403、服务器将接收到的数据指紋与自身数据库中的数据指纹 进行验证, 根据验证结果确定需要同步的数据, 将指示需要同步数据的 信息携带在响应消息中发送给客户端。
在不同方式下, 验证的过程不一样, 具体的验证过程参见上面的描 述。
在本发明实施例中, 指示需要同步数据的信息为需要同步数据对应 的 LUID、 客户端数据库设置的数据指紋, 服务器下发给客户端的数据 等。 .
步骤 1404、客户端根据响应消息携带的信息确定需要发送给服务器 的数据, 将确定的数据发送给服务器。
步骤 1405、服务器根据客户端上传的数据进行服务器数据库的数据 同 , 在之后或同时给客户端返回数据同步完成消息的响应消息, 该响 应消息携带需要客户端同步的数据。
步骤 1406、 客户端接收到该响应消息后, 根据携带的需要客户端同 步的数据进行客户端数据库的同步过程。
.步骤 1407、 客户端将所有进行数据同步的数据指紋针对 LUID携带 在确认数据同步完成消息中发送给服务器。
步骤 1408、 服务器针对 LUID根据接收到的数据指紋验证自身数据 库中的数据指纹, 如果都相同, 则给客户端返回确认数据同步完成消息 的响应消息, 如果不相同,'则再次发起数据同步过程(图中未示出)。
当然, 在步驟 1407和步驟 1408的过程中, 也可以是服务器发送数 据指纹, 由客户端进行验证。
在本发明实施例中, 无论采用单方计算智能数据同步类型还是采用 双方计算智能数据同步类型进行数据同步, 在服务器验证完数据指纹 后, 会向客户端返回需要进行同步数据的信息, 该信息可以为需要同步 数据的 LUID或需要同步数据的客户端数据库的数据指纹, 该信息还可 以为对应 LUID或数据指纹的状态码,以下举一个具体的例子进行说明。
服务器向客户端返回需要进行同步数据的信息中的状态码分别表示 的含义如表 12所示或表 13所示:
表 12服务器向客户端返回需要进行同步数据的信息中的状态码表 示的含义实例 1表 数据指紋验证结果 状态码
不需要同步 217
客户端需要上传数据, 服务器无需下发数据 218
.客户端无需上传数据, 服务器需要下发数据 219
客户端需要上传数据, 服务器需要下发数据 220
冲突检测, 客户端贏, 客户端上传数据 221
冲突检测, 月艮务器端贏, 服务器下发数据 222
表 13 服务器向客户端返回需要进行同步数据的信息中的状态码表
示的含义实例 2表
Figure imgf000051_0001
.假设服务器进行数据指紋验证的结果如表 14所示:
表 14 实施例服务器进行数据指紋验证的结果表
LUID Fingerpri 验证结果 状态码 nt
1111 Fl 不需要同步 217
1112 F2 不需要同步 217
1113 F3 客户端无需上传数据, 服务器需要下发数据 219
1114 F4 冲突检测, 服务器端贏, 服务器下发数据 222
1115 F5 冲突检测, 客户端贏, 客户端上传数据 221
1116 F6 冲突检测, 服务器端贏, 服务器下发数据 222
1117 F7 冲突检测, 客户端贏, 客户端上传数据 221
1118 F8 客户端需要上传数据, 服务器无需下发数据 218 1119 F9 客户端需要上传数据, 服务器无需下发数据 218
1120 . F10 客户端无需上传数据, 服务器需要下发数据 219
1121 Fll 客户端无需上传数据, 服务器需要下发数据 219 服务器向客户端返回需要进行同步数据的信息可以采用三种方式: 第一种方式, 服务器向客户端返回需要客户端上传数据项的 LUID 列表或 /和数据指紋列表; 上例返回需要客户端上传的数据项的 LUID如 下:
<需同步数据项的 LUID列表 >1115 , 1117, 1118, 1119</需同步数据 项的 LUID列表 >
第二种方式, 服务器对客户端发送的每一个数据指紋, 返回一个数 据指紋验证结果; 上例返回 LUID和数据指紋验证结果如下:
<验证结果〉
<1111 ,. 217>, <1112, 217>, <1113 , 219>, <1114, 222><1115 , 221>, <1116, 222x1117, 221>, <1118, 218>, <1119, 218>, <1120, 219>, <1121 , 219>
</验证结果>
第三种方式, 服务器向客户端发送的每一个数据指纹, 返回数据指 紋验证结果, 相同验证结果返回数据项的 LUID或 /和指纹集合; 上例返 回 LUID和状态码的情况如下:
<验证结果〉
<Status>217</Status><LocURI> 1111 , 1112</LocURI>
<Status>222</Status><LocURI> 1114, 1116< LocURI>
<Status>221 </Status><LocURI> 1115, 1117</LocURI>
<Status>218</Status><LocUT > 1118, 1119</LocURI> <Status>219</Status><LocU I> 1113, 1120, 1121< LocURI>
</验证结果〉
在本发明实施例中, 无论采用单方计算智能数据同步类型还是采用 双方计算智能数据同步类型进行数据同步, 当客户端与服务器之间进行 为各自数据库存储的数据设定的数据指纹的验证时, 可以采用两种方案 进行险证。 第一种方案, 分级数据指紋的验证, 该方案在确定客户端与 服务器各自数据库存储的数据存在不相同时, 客户端与服务器将分级层 层验证双方数据库中的数据设定的数据指纹, 根据双方数据库中上层数 据设定的数据指紋的验证结果, 确定是否要进行数据库中下层数据设定 的数据指紋的验证。 第二种方案, 不分级数据指紋的验证, 该方法在确 定客户端与服务器各自数据库存储的数据存在不相同时, 客户端将为自 身数据库中各个数据设定的数据指紋都发送给服务器, 由服务器根据所 接收数据指纹对为自身数据库中的数据设定的数据指纹进行——验证。 以下对这两种方案进行详细说明。
第一种方案, 分级数据指纹的验证。
为了实现分级数据指紋的验证,在客户端和服务器各自的数据库中, 当存储数据时, 也需要分层进行存储, 图 15 为本发明实施例在客户端 数据库分层存储数据实施例的示意图: 客户端数据库存储的数据分为四 级, 每个所存储数据用 N1~N11中的一个作为数据指纹进行标识。 对应 的存储表如表 15所示:
表 15数据指紋对应的存储表
LUID 名称 属性 数据指紋
1110 朋友 N2
1111 A1 N3
1112 A2 N4 2007/000284
Figure imgf000054_0001
为了标识数据库存储的数据都属于哪一个级別, 本发明实施例还为 所存储的数据设定了一个标识父元素的字节, 父元素指得是其上一级数 据的名称或者其上一级数据对应的 LUID, 第一級标识的父元素设定为 根节点, 根据为数据设定的标识父元素的字节就可以确定出该数据为哪 一级数据了。
同样地, 在服务器数据库中也采用上述方式存储各个级别的数据。 本发明实施例以客户端数据库中数据的 LUID未混乱 /重新生成的情况举 例说明。
.图 16 为本发明实施例客户端和服务器进行分级数据指纹的验证方 法流程图, 其具体步骤为:
步骤 1601、 客户端将自身数据库中第一级数据作为当前级别数据。 在本发明实施例中,第一级数据可以为自身数据库虚拟的数据指纹, 也就是自身数据库的根目录的数据指纹, 第二级数据也可以为自身数据 库虚拟的数据指纹的下一级数据指纹, 也就是自身数据库的根目录的下 一级目录或数据的数据指纹。
在本发明实施例中, 数据库虚拟的数据指纹也可以在数据同步过程 的初始化阶段进行验证, 而不在图 16所述的过程中验证。
步骤 1602、 客户端将为当前级别数据设定的用 LUID标识的数据指 紋携带在数据指紋验证消息中发送给服务器。
.步骤 1603、服务器接收到该消息携带的用 LUID标识的数据指纹后, 比较为自身数据库中相应数据设定的数据指纹是否相同, 并将验证的结 果携带在数据指紋验证响应消息中发送给客户端。
步骤 1604、 客户端接收到该响应消息后, 根据该响应消息携带的验 证结果确定自身数据库存储的数据指纹不相同的数据。
步骤 1605、客户端将自身数据库存储的数据指紋不相同的数据设定 为数据同步过程中要发送的同步数据, 并且将该数据的下一级数据作为 当前级别数据, 转入步驟 1602继续执行, 直到将自身数据库中所有级 别的数据都执行完, 结束本验证数据指纹的流程。
在图 16中, 如果步骤 1604携带的验证结果中没有数据指纹不相同 的数据指紋的信息, 则客户端确定自身数据库存储的数据指紋相同的数 据以及其下级数据为垃圾数据, 不需要进行数据同步, 结束本验证数据 指纹的流程以及后续的数据同步过程。
为了实现分级数据指紋的验证, 本发明实施例在对客户端和服务器 各自数据库中各个级别的数据设定数据指纹时, 各个级别的数据可以包 括三种类型的数据: 文件、 数据项和目录, 其中目录下面可以包含数据 项、 .文件和下级目录, 可以采用递归的方式进行设定, 如当前级别的数 据为目录时, 可以将为当前级别的下一级别的数据设定的数据指纹以及 下一级别的数据对应的 LUID作为计算目录的数据指纹的输入元素采用 设定的数据指紋算法设定目录的数据指纹。 为了保证服务器和客户端在 设置同一目录的数据指纹时所设置的目录的数据指紋相同 , 本发明实施 例设定的目录的数据指纹时所采用的输入元素按照 LUID 进行顺序排 列。
这样, 就可以保证如果客户端和服务器各自数据库中的当前级别数 据验证为是垃圾数据时, 其下级别所有数据一定也是垃圾数据。
采用这种递归方式对客户端和服务器各自数据库中各个级别的数据 设定数据指纹时, 也可以将客户端和服务各自数据库作为最高级别的数 据, 为客户端和服务各自数据库设定数据指纹。
第二种方案, 不分级数据指紋的验证
本发明实施例以客户端数据库中数据的 LUID未混乱 /重新生成的情 况举例说明。
图 17 为本发明实施例客户端和服务器进行不分级数据指紋的验证 方法流程图, 其具体步骤为:
步骤 1701、客户端向服务器发送携带对应于自身数据库存储的各个 数据的用 LUID标识的数据指纹的数据指纹验证消息。
步骤 1702、 服务器对于所接收到该消息携带的每一个用 LUID标识 的数据指纹进行处理: 判断自身数据库是否为存储的相应数据设定了数 据指纹, 如果是, 执行步骤 1703; 否则, 执行步骤 1705。
步骤 1703、 服务器判断接收到的用 LUID标识的数据指纹是否与为 自身数据库存储的相应数据设定的数据指纹相同, 如果是, 执行步骤 1704; 否则, 执行步驟 1705;
步驟 1704、 服务器将具有该 LUID的数据设定为垃圾数据, 转入步 骤 2502, 继续所接收到该消息携带的下一个用 LUID标识的数据指紋的 处理。
步骤 1705、 服务器将具有该 LUID的数据设定为要进行数据同步的 数据, 返回步骤 1702, 继续所接收到该消息携带的下一个用 LUID标识 的数据指纹的处理, 直到将所有该消息携带的用 LUID标识的数据指紋 都处理完成, 将标识有要进行数据同步的所有数据的信息携带在数据指 紋险证响应消息中发送给客户端, 由客户端进行后续的数据同步过程。 以下举具体实施例说明本发明实施例如何进行数据的数据指纹设定 过程以及如何采用为数据设定的数据指纹进行数据同步的过程。
实施例一, 对数据库和目录的数据指紋进行设定
目录的数据指纹计算, 以该目录下的目录、 文件、 数据项的数据指 紋 对应的 LUID作为输入元素采用设定的数据指紋算法进行计算, 采 用图 18所示的示意图: "朋友" 目录下有 "大学同学"、 A4和 A5三个 数据。 其中 "大学同学" 是目录, A4和 A5是数据项。 因此, 以 CRC 算法为例, "朋友" 目录的指紋可按如下计算:
■ "朋友,,的数据指纹 N2 = CRC ( "大学朋友: N6; A4: N7; A5: N8" )
同样地, 对于数据库的数据指紋可按如下计算:
数据库的数据指纹 Nl = CRC ( "朋友: N2; Al : N3; A2: N4; 公司同事: N5" )
如果采用时间戳算法作为设定的数据指纹算法, 数据库或目录的数 据指紋为该数据库或目录中的所有下级数据中的数据最近修改的时间。
实施例二, 对数据项的数据指纹的设定
数据项的数据指紋计算, 以该数据项的内容作为输入元素采用设定 的数据指纹算法进行指纹计算, 采用图 18所示的示意图, 数据项 A1的 数据指纹可按如下计算:
数据指紋 N3 = CRC ( A1的实际内容)
实施例三, 采用为数据设定的数据指紋进行数据同步过程
假设用户使用的客户端的数据库存储的数据如图 19所示,其中,第 二级数据中的数据项 A1为新增数据项;第三级数据中的 A5以及第四级 数据中的 A8 为修改数据项。 假设客户端数据库的数据指紋 N1 为 000111 , 则客户端数据库中的用 LUID标识的数据、 '为数据设定的数据 指紋以及当前属性如表 16所示:
表 16 实施例中针对图 19为数据设定的数据指纹以及当前属性表
Figure imgf000058_0001
假设服务器数据库存储的数据如图 27所示,其中,第二级数据中的 数据项 B1为新增数据项; 第三级数据中的 A5以及第四级数据中的 A8 为修改数据项。 假设服务数据库的数据指紋 N1为 001111 , 则服务器数 据库中的用 LUID对应的 GUID标识的数据、 为数据设定的数据指紋以 及当前属性如表 17所示:
表 17 实施例中针对图 27为数据设定的数据指紋以及当前属性表
GUID 名称 当前属,!■生 数据指紋
111110 朋友 更新 N2=111000
111111 A2 未改变 N3=100110
- 111112 A3 未改变 N4=101111
111113 公司同事 未改变 N5=000011
111114 大学朋友 更新 N6=010101
111115 A4 未改变 N7=010001 111116 A5 更新 N8=100011
111117 A6 未改变 N9=010101
111118 A7 未改变 N10=0110101
111119 A8 更新 Nl 1=1000000
1111001 Bl 增力口 N12=111001 假设客户端和服务器均对各自数据库中存储的数据项 A8进行了修 改, 但是所作的修改是相同的, 即客户端为数据项 A8设定的数据指紋 与服务器为数据项 A8设定的数据指紋相同。
这时, 由客户端和服务器协商后确定发起智能数据同步, 该智能数 据同步采用分级数据指紋验证的方法进行验证。
首先, 如图 20所示: 客户端发送自身数据库的数据指紋给服务器, 服务器将接收到的数据指紋与自身数据库的数据指紋进行比较, 判断出 不一致, 执行下一步骤。 '
其次,如图 21所示:客户端继续传送第二级数据的数据指纹给服务 器, 服务器对所接收到的数据指纹与自身数据库的相应数据的数据指紋 进行——比较, 并将比较的结果发送给客户端。
再次,如图 22所示:客户端根据所接收到的比较结果继续传送第二 级数据的下级数据的数据指纹给服务器, 服务器对所接收到的数据指紋 与自身数据库的相应数据的数据指紋进行一一比较, 并将比较的结果发 送给客户端。
最后, 客户端接收到比较结果后, 完成对自身数据库中数据的数据 指紋验证, 确定数据指紋不相同的数据项 Al、 A5和 Bl, 可以采用现有 技术进行数据项 Al、 A5和 Bl的数据同步过程, 其中, 数据项 B1在客 户端数据库中没有, 服务器判定为自己添加的, 在数据同步时需要发送 给客户端。
本发明实施例还提供了一种系统,如图 23所示: 该系统包括客户端 和与客户端进行同步数据的服务器, 客户端和服务器各自连接数据库, 用于分别存储同步数据。
在客户端和服务器中, 分别还具有数据处理模块、 数据指纹处理模 块和同步模块, 其中,
舞据处理模块, 分别与数据库和同步模块相连接, 用于将数据库存 储的数据发送给同步模块, 或者从同步模块接收到数据同步消息, 根据 该消息携带的同步数据对数据库中的数据进行修改或 /和增加。
数据指纹处理模块, 与同步模块相连接, 用于为同步模块中的数据 设定数据指纹后发送给同步模块进行对应于数据的存储。
同步模块, 分别与数据处理模块、 数据指紋处理模块以及对方的同 步模块相连接, 用于将对方的同步模块所发送数据的数据指纹与自身存 储相应数据的数据指紋进行验证并得出验证结果, 发送给对方的同步模 块, 接收来自对方的同步模块的携带同步数据的数据同步消息, 并将该 消息发送给数据处理模块; 或者向对方的同步模块发送自身存储的数据 指纹, 接收来自对方的同步模块的验证结果, 根据验证结果向对方的同 步模块发送携带同步数据的数据同步消息使对方进行数据同步。
对方的同步模块发送的数据同步消息些的同步数据是根据接收到的 同步模块的验证结果确定的需要同步的数据。
在本发明实施例中, 还提供一种进行数据同步的客户端, 该客户端 如图 23 中的客户端所示, 包括同步模块、 连接同步模块和数据库的数 据处理模块和与同步模块相连接的数据特征信息模块, 其中,
数据处理模块, 用于将数据库存储的数据发送给同步模块, 或者从 同步模块接收到数据同步消息, 根据该消息携带的同步数据对数据库中 的数据进行修改或增加;
数据特征信息处理模块, 用于为同步模块中的数据设定数据特征信 息后发送给同步模块;
同步模块, 用于将服务器所发送数据的数据特征信息与由数据特征 信息处理模块得到的相应数据的数据特征信息进行验证并得出验证结 果, 发送给服务器, 接收来自服务器发送的携带同步数据的数据同步消 息, 并将该消息发送给数据处理模块; 或者向服务器发送由数据特征信 息处理模块得到的数据特征信息, 接收来自服务器的验证结果, 根据验 证结果向服务器发送携带同步数据的数据同步消息使服务器进行数据 同步。
在该客户端中, 所述的同步模块还与服务器中的同步模块进行信息 交互。
本发明实施例还提供一种进行数据同步的服务器,如图 23中的月良务 器所示, 包括同步模块、 连接同步模块和数据库的数据处理模块和与同 步模块相连接的数据特征信息模块, 其中,
数据处理模块, 用于将数据库存储的数据发送给同步模块, 或者从 同步模块接收到数据同步消息, 根据该消息携带的同步数据对数据库中 的数据进行修改或增加;
数据特征信息处理模块, 用于为同步模块中的数据设定数据特征信 息后发送给同步模块;
同步模块, 用于将客户端所发送数据的数据特征信息与由数据特征 信息处理模块得到的相应数据的数据特征信息进行验证并得出验证结 果, 发送给客户端, 接收来自客户端发送的携带同步数据的数据同步消 息, 并将该消息发送给数据处理模块; 或者向客户端发送由数据特征信 息处理模块得到的数据特征信息, 接收来自客户端的验证结果, 根据验 证结果向客户端发送携带同步数据的数据同步消息使客户端进行数据 同步。
在该服务器中, 所述的同步模块还与客户端中的同步模块进行信息 交互。
在本发明实施例中, 客户端和服务器的地位属于对等的, 对于功能 比较强大的客户端, 如个人数字助理 (PDA )或计算机等客户端, 也可 以按照艮务器一样的架构以及处理流程进行设备信息协商过程; 对于功 能比较弱的服务器, 本发明实施例也可以按照客户端一样的架构以及处 理流程进行设备信息协商过程, 如不使用緩存机制、 采用压缩技术等。
本发明实施例提供的系统、 方法及装置降低了数据传输流量, 提高 了进行数据同步的效率, 并且便于扩展和自由选择, 满足使用客户端的 用户需求。
以上所述的具体实施例, 对本发明的目的、 技术方案和有益效果进 行了进一步详细说明, 所应理解的是, 以上所述仅为本发明的具体实施 例而已, 并不用于限制本发明, 凡在本发明的精神和原则之内, 所做的 任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。

Claims

权利要求书
1、 一种数据同步方法, 其特征在于, 该方法还包括:
A、 客户端向服务器发送数据特征信息验证消息, 该消息携带一个 或一个以上为数据库中数据设定的数据特征信息;
B、 服务器将该消息携带的一个或一个以上数据特征信息与自身数 据库中数据设定的数据特征信息相比较, 根据比较的结果确定需要同步 的数据, 将指示该数据的信息携带在数据特征信息验证响应消息中发送 给客户端;
C、 客户端根据该消息携带的信息, 确定要进行同步的数据, 与服 务器之间进行所确定数据的同步。
2、 如权利要求 1所述的方法, 其特征在于, 步骤 A所述设定数据 特征信息是根据设定的数据特征信息算法进行实时计算得到的、 或根据 设定的数据特征信息算法计算后存储的;
.步骤 B所述设定的数据特征信息是接收由客户端发送并存储的。
3、 如权利要求 2所述的方法, 其特征在于, 所述确定步骤 B数据 特征信息是接收由客户端发送并存储的过程为:
客户端和服务器协商是否采用单方计算智能同步类型, 如果是, 步 骤 B所设定的数据特征信息是接收由客户端预先发送并存储的或者是上 一次单方计算智能同步过程中由客户端发送并存储的; 否则, 步骤 B所 设定的数据特征信息是根据设定或者客户端和服务器协商得到的数据 特征信息算法计算得到的;
或者客户端和服务器预先约定 用单方计算智能同步类型, 该约定 是针对客户端数据库中所有数据和月 务器数据库中所有数据或者所有 数据类型的数据; 或者针对客户端数据库中和服务器数据库中的某种数 据类型或某种大小的数据。
4、 如权利要求 2所述的方法, 其特征在于, 在步骤 A之前, 该方 法还包括协商采用数据同步类型的过程:
客户端根据自身数据库中数据的状态确定要发起的数据同步类型, 向服务器上报上一次数据同步的状态信息以及本次确定要发起的数据 同步类型;
服务器根据接收到的客户端数据库的上一次数据同步的状态信息, 确定是否采用接收到的要发起的数据同步类型后, 将所确定的数据同步 类型发送给客户端;
客户端判断接收到的数据同步类型是否为单方计算智能数据同步类 型, 如果是, 执行步驟 A; 否则, 按照协商后确定的数据同步类型进行 数据同步或者重新协商。
5、如权利要求 4所述的方法, 其特征在于, 所述客户端确定要发起 的数据同步类型的过程为:
如果自身数据库中数据的数据特征信息的生成方式发生了改变, 为 慢同步数据类型;
如果客户端数据库中数据状态为 LUID混乱或 /和重新生成,或 /和修 改状态丢失, 为单方计算智能数据同步类型;
如果自身数据库中数据的数据特征信息的生成方式没有发生改变, 且客户端数据库中数据状态为 LUID未混乱或 /和未重新生成,且修改状 态未丟失, 为客户选择的数据同步类型。
6、 如权利要求 4所述的方法, 其特征在于, 所述服务器确定数据同 步类型的过程为:
.如果服务器根据上一次数据同步的状态信息检测到上一次的数据同 步失败, 且服务器数据库中的映射表未丢失、 且服务器数据库中保存的 数据特征信息未丟失, 为单方计算智能数据同步类型; 如果服务器检测到服务器数据库中的映射表丟失、或 /和服务器数据 库中仅修改状态丟失, 且服务器数据库中的数据特征信息未丢失, 为单 方计算智能数据同步类型;
如果服务器检测到服务器数据库中的映射表丟失且服务器数据库中 的数据特征信息丟失, 为慢同步数据类型;
如果服务器检测到客户端数据库中数据的数据特征信息的生成方式 发生了改变, 为慢同步数据类型。
7、如权利要求 6所述的方法, 其特征在于, 所述客户端发送的上一 次数据同步的状态信息为锚 Anchor信息; 所述服务器检测上一次的数 据同步失败的过程为: 将客户端发送的 Anchor信息与上一次数据同步 过程中客户端发送并保存在服务器数据库的 Anchor信息进行比较, 如 果相同, 则上一次数据同步成功, 否则上一次数据同步失败;
或者 , 所述客户端发送的上一次数据同步的状态信息为采用设定的 数据特征信息算法为自身数据库计算的数据特征信息; 所述服务器检测 上一次的数据同步失败的过程为: 将客户端发送的客户端数据库的数据 特征信息与上一次数据同步过程中客户端发送并保存在服务器数据库 中的客户端数据库的数据特征信息进行比较, 如果相同, 则上一次数据 同步成功, 否则上一次数据同步失败。
8、如权利要求 7所述的方法, 其特征在于, 所述采用设定的数据特 征信息算法为自身数据库计算数据特征信息的过程为:
将自身数据库中所有目录的数据特征信息和 /或目录下数据对应的 LUID 作为输入元素采用设定的数据特征信息算法为自身数据库计算数 据特征信息;
或者将自身数据库中所有目录的数据特征信息或 /和目录下数据对 应的 LUID, 以及目录下数据的数椐特征信息和 /或目录的下级数据对应 的 LUID作为输入元素采用设定的数据特征信息算法为自身数据库计算 数据特征信息;
或者将自身数据库中所有数据的数据特征信息和 /或数据项对应的 LUID作为输入元素采用设定的数据特征信息算法为自身数据库计算数 据特征信息。
9、 如权利要求 2所述的方法, 其特征在于, 当客户端数据库中数据 特征信息的本地唯一标识 LUID 混乱或 /和重新生成但修改状态未丟失 时,
步骤 A所述的数据特征信息为自身数据库中修改状态改变的待同步 数据的数据特征信息或者所有待同步数据的数据特征信息;
步骤 B所述比较过程为: 对于客户端发送的每个数据特征信息, 服 务器将其与服务器数据库中所有的数据特征信息进行比较;
当客户端数据库中数据特征信息的 LUID未混乱或 /和重新生成但修 改状态丢失时,
步骤 A所述的数据特征信息为自身数据库中所有用 LUID标识的待 同步数据的数据特征信息;
步骤 B所述比较过程为: 服务器根据该消息所携带的一个或一个以 上数据特征信息的 LUID确定所对应的自身数据库中的数据, 将该消息 携带的一个或一个以上数据特征信息与为所对应数据设定的数据特征 信息相比较;
当客户端数据库中数据特征信息的 LUID混乱或 /和重新生成且修改 状态丟失,
步骤 A所述的数据特征信息为自身数据库中所有待同步数据的数据 特征信息; 步骤 B所述比较过程为: 对于客户端发送的数据特征信息, 服务器 将其与服务器数据库中所有的数据特征信息进行比较。
10、 如权利要求 9所述的方法, 其特征在于, 当服务器修改自身数 据库中的数据时, 服务器移除该数椐对应的数据特征信息;
步骤 B所述将其与服务器数据库中的数据特征信息进行比较的过程 为: '服务器判断在自身数据库中是有与所接收到的数据特征信息相同的 数据特征信息, 如果有, 则所接收到的该数据特征信息对应的数据不需 要同步; 否则, 则所接收到的该数据特征对应的数据需要同步;
当服务器修改自身数据库中的数据时, 服务器给该数据对应的数据 特征信息设置标记位且保存数据特征信息;
步骤 B所述将其与服务器数据库中的数据特征信息进行比较的过程 为: 服务器判断在自身数据库中是有与所接收到的数据特征信息相同的 数据特征信息, 如果没有, 则所接收到的该数据特征信息对应的数据需 要同步; 如果有, 则在自身数据库中与所接收到的数据特征相同的数据 特征信息是否有标记位, 如果有标记位, 则所接收到的该数据特征对应 的数据需要同步; 如果没有标记位, 则所接收到的该数据特征对应的数 据不需要同步。
11、 如权利要求 9所述的方法, 其特征在于, 步驟 C所述与服务器 之间进行所确定数据的同步的过程为:
客户端根据该消息携带的信息, 确定要要上传给服务器的数据, 将 所确定的数据上传给服务器进行服务器数据库中数据的同步;
服务器根据比较的结果将需要发送到客户端的数据发送到客户端, 供客户端进行自身数据库中数据的同步。
12、 如权利要求 11所述的方法, 其特征在于, 确定所述需要发送到 客户端的数据的过程为: 服务器数据库中所有与接收到的数据特征信息不相同的数据特征信 息对应的数据、 或者服务器数据库中所有与接收到的数据特征信息相同 的数据特征信息且设置了标记位的数据、 或者服务器数据库中所有与接 收到的数据特征信息不相同的数据特征信息经过冲突检测后需发送到 客户端同步的数据。
13、 如权利要求 11所述的方法, 其特征在于, 该方法进一步包括: 客户端将标识本次同步完成的数据同步的状态信息在确认数据同步 完成消息中发送给服务器;
服务器将确认数据同步完成消息中携带的数据同步的状态信息存储 到自身数据库中后返回响应消息。
14、 如权利要求 1所述的方法, 其特征在于, 步骤 A所述设定数据 特征信息是根据设定的数据特征信息算法进行实时计算得到的、 或根据 设定的«居特征信息算法计算后存储的;
步骤 B所述设定的数据特征信息是根据设定的数据特征信息算法计 算得到的。
15、 如权利要求 14所述的方法, 其特征在于, 所述确定步驟 B数 据特征信息是根据设定的数据特征信息算法计算得到的过程为:
客户端和服务器协商是否采用双方计算智能同步类型, 如果是, 步 骤 B 所设定的数据特征信息是根据设定的数据特征信息算法计算得到 的; 否则, 步骤 B所设定的数据特征信息是由客户端发送并存储的; 或者客户端和服务器预先约定采用双方计算智能同步类型, 该约定 是针对客户端数据库中所有数据和服务器数据库中所有数据的; 或者针 对客户端数据库中和服务器数据库中的某种数据类型的数据。
16、如权利要求 14所述的方法,其特征在于, 所述步骤 A和步骤 B 所设定的数据特征信息算法相同, 该数据特征信息算法是预先设定的、 或者在客户端和服务器之间协商后设定的。 _
17、如权利要求 16所述的方法, 其特征在于, 所述该数据特征信息 算法在客户端和服务器之间进行协商的步骤为:
客户端向服务器发送的数据包中携带一个或一个以上数据特征信息 算法标记;
服务器根据该数据包携带的一个或多个数据特征信息算法标记确定 数据特征信息算法, 根据自身情况选择一个数据特征信息算法;
服务器向客户端返回携带所选择的数据特征信息算法标记的数据 包, 客户端根据该数据包携带的数据特征信息算法标记确定设定自身数 据库中数据的数据特征信息的数据特征信息算法。
18、如权利要求 16所述的方法, 其特征在于, 所述该数据特征信息 算法在客户端和服务器之间进行协商的步骤为:
客户端向服务器发送携带指定的数据特征信息算法标记的数据包; 服务器根据接收到数据包携带的指定的数据特征信息算法标记确定 数据特征信息算法, 向客户端返回携带确认客户端指定的数据特征信息 算法标记的数据包。
19、 如权利要求 14所述的方法, 其特征在于, 在步骤 A之前, 该 方法还包括协商采用数据同步类型的过程:
客户端根据自身数据库的状态确定要发起的数据同步类型 , 向服务 器上 ^艮上一次数据同步的状态信息以及本次确定要发起的数据同步类 型;
服务器根据接收到的上一次数据同步的状态信息, 确定是否采用接 收到的要发起的数据同步类型后, 将所确定的数据同步类型发送给客户 端;
客户端判断接收到的数据同步类型是否为双方计算智能数据同步类 型, 如果是, 执行步骤 A; 否则, 按照协商后确定的数据同步类型进行 数据同步或者重新协商。
20、如权利要求 19所述的方法, 其特征在于, 所述客户端确定要发 起的数据同步类型的过程为:
如果自身数据库中数据的 LUID混乱或 /和重新生成,或 /和修改状态 丢失, 则为双方计算智能同步类型;
所述服务器确定数据同步类型的过程为:
如果服务器根据上一次数据同步的状态信息检测到上一次的数据同 步失败, 或 /和服务器数据库中的映射表丟失, 或 /和服务器数据库中数 据的修改状态丢失, 则为双方计算智能数据同步类型。
21、如权利要求 20所述的方法, 其特征在于, 所述客户端发送的上 一次数据同步的状态信息为锚 Anchor信息; 所述服务器检测上一次的 数据同步失败的过程为: 将客户端发送的 Anchor信息与上一次数据同 步过程中客户端发送并保存在服务器数据库的 Anchor信息或自身计算 的服务器数据库的 Anchor信息进行比较, 如果相同, 则上一次数据同 步成功, 否则上一次数据同步失败;
或者, 所述客户端发送的上一次数据同步的状态信息为采用设定的 数据特征信息算法为自身数据库计算的数据特征信息; 所述服务器检测 上一次的数据同步失败的过程为: 将客户端发送的客户端数据库的数据 特征信息与服务器数据库的数据特征信息进行比较, 如果相同, 则上一 次数据同步成功, 否则上一次数据同步失败。
22、如权利要求 21所述的方法, 其特征在于, 所述采用设定的数据 特征信息算法为自身数据库计算数据特征信息的过程为:
将自身数据库中所有目录的数据特征信息和 /或目录下数据对应的 LUID作为输入元素采用设定的数据特征信息算法为自身数据库计算数 据特征信息;
或者将自身数据库中所有目录的数据特征信息或 /和目录下数据对 应的 LUID., 以及目录下数据的数据特征信息和 /或目录的下级数据对应 的 LUID作为输入元素采用设定的数据特征信息算法为自身数据库计算 数据特征信息;
或者将自身数据库中所有数据的数据特征信息和 /或数据项对应的 LUID 作为输入元素采用设定的数据特征信息算法为自身数据库计算数 据特征信息。
23、如权利要求 14所述的方法, 其特征在于, 当客户端数据库中数 据特征信息的本地唯一标识 LUID混乱或 /和重新生成但 改状态未丢失 时,
步骤 A所述的数据特征信息为自身数据库中修改状态改变的待同步 数据的数据特征信息或者所有待同步数据的数据特征信息;
•步驟 B所述比较过程为: 对于客户端发送的每个数据特征信息, 服 务器将其与计算的服务器数据库中所有的数据特征信息进行比较; 当客户端数据库中数据特征信息的 LUID未混乱或 /和重新生成但修 改状态丟失时,
步骤 A所述的数据特征信息为自身数据库中所有用 LUID标识的待 同步数据的数据特征信息;
步骤 B所述比较过程为: 服务器根据该消息所携带的一个或一个以 上数据特征信息的 LUID确定所对应的自身数据库中的数据, 将该消息 携带的一个或一个以上数据特征信息与为所对应数据计算的数据特征 信息相比较;
当客户端数据库中数据特征信息的 LUID混乱或 /和重新生成且修改 状态丟失, 步驟 A所述的数据特征信息为自身数据库中所有待同步数据的数据 特征信息;
步骤 B所述比较过程为: 对于客户端发送的数据特征信息, 服务器 将其与计算的服务器数据库中所有的数据特征信息进行比较。
24、 如权利要求 23所述的方法, 其特征在于, 步骤 C所述与服务 器之间进行所确定数据的同步的过程为:
客户端根据该消息携带的信息, 确定要要上传给服务器的数据, 将 所确定的数据上传给服务器进行服务器数据库中数据的同步;
服务器根据比较的结果将需要发送到客户端的数据发送到客户端, 供客户端进行自身数据库中数据的同步。
25、如权利要求 24所述的方法, 其特征在于, 确定所述需要发送到 客户端的数据的过程为:
服务器数据库中所有与接收到的数据特征信息不相同的数据特征信 息对应的数据、 或者服务器数据库中所有与接收到的数据特征信息相同 的数据特征信息且设置了标记位的数据、 或者服务器数据库中所有与接 收到的数据特征信息不相同的数据特征信息经过冲突检测后需发送到 客户端同步的数据。
26、 如权利要求 24所述的方法, 其特征在于, 该方法进一步包括: 客户端将自身数据库中完成同步的数据同步的状态信息在确认数据 同步完成消息中发送给服务器;
月 务器将确认数据同步完成消息中携带的数据同步的状态信息与自 身数据库中相应的数据同步的状态信息进行比较, 该自身数据库中相应 的数据同步的状态信息为客户端发送并保存的, 或是服务器计算的, 如 果都相同, 则返回响应消息; 否则, 则重新执行步驟 A。
27、 如权利要求 1所述的方法, 其特征在于, 步骤 A所述携带的一 个或一个以上数据特征信息为客户端数据库存储的当前级别的数据对 应的数据特征信息;
在步骤 C之前, 该方法还包括: 客户端根据该响应消息所携带数据 的信息确定数据特征信息不相同的数据级别, 将数据特征信息不相同的 数据级別的下一级别作为当前级别, 返回步驟 A继续执行, 直到客户端 数据库中的最后一级数据为止, 再执行步骤(。
28、 如权利要求 1所述的方法, 其特征在于, 步骤 B所述指示需要 同步数据的信息为需要同步数据对应的 LUID、 或需要同步数据在客户 端数据库中对应的数据特征信息、 或为对客户端数据库中数据特征信息 所对应的状态码。
29、 如权利要求 1所述的方法, 其特征在于, 所述数据为目录、 文 件或数据项。
30、如权利要求 29所述的方法,其特征在于,当所述数据为目录时, 将目录的下级数据的数据特征信息或 /和目录的下级数据对应的 LUID作 为输入元素采用设定的数据特征信息算法设定目录的数据特征信息; 当所述数据为文件或数据项时, 将文件或数据项的内容作为输入元 素采用设定的数据特征信息算法设定数据为文件或数据项的数据特征 信息。
31、 如权利要求 1所述的方法, 其特征在于, 所述的数据特征信息 为数据指纹。
32、 如权利要求 2、 3、 7、 8、 9、 14、 15、 16、 17、 18、 21或 22 所 述的方法, 其特征在于, 所述设定的数据特征信息算法为摘要算法、 循 环冗余校验算法、 普通散列算法或者时间戳算法。
33、 一种数据同步系统, 包括客户端和与客户端进行数据同步的服 务器, 客户端和服务器各自连接数据库, 其特征在于, 客户端或服务器 中还包括同步模块、 连接同步模块和数据库的数据处理模块和与同步模 块相连接的数据特征信息模块, 其中,
数据处理模块, 用于将数据库存储的数据发送给同步模块, 或者从 同步模块接收到数据同步消息, 根据该消息携带的同步数据对数据库中 的数据进行修改或增加;
-数据特征信息处理模块, 用于为同步模块中的数据设定数据特征信 息后发送给同步模块;
同步模块, 还与服务器或客户端相连接, 用于将服务器或客户端所 发送数据的数据特征信息与由数据特征信息处理模块得到的相应数据 的数据特征信息进行验证并得出验证结果, 发送给服务器或客户端, 接 收来自月 务器或客户端发送的携带同步数据的数据同步消息, 并将该消 息发送给数据处理模块; 或者向服务器或客户端发送由数据特征信息处 理模块得到的数据特征信息, 接收来自服务器或客户端的验证结果, 根 据验证结果向服务器或客户端发送携带同步数据的数据同步消息使对 方进行数据同步。
34、 如权利要求 33所述的数据同步系统, 其特征在于, 所述的同步 模块还与服务器或客户端相连接为: 同步模块还与服务器或客户端中的 同步模块相连接。
35、 如权利要求 33所述的数据同步系统, 其特征在于, 所述客户端 和服务器在进行数据同步网络中的地位对等。
36、一种数据同步客户端, 其特征在于, 所述客户端包括同步模块、 连接同步模块和数据库的数据处理模块和与同步模块相连接的数据特 征信息模块, 其中,
数据处理模块, 用于将数据库存储的数据发送给同步模块, 或者从 同步模块接收到数据同步消息, 根据该消息携带的同步数据对数据库中 的数据进行修改或增加;
数据特征信息处理模块, 用于为同步模块中的数据设定数据特征信 息后发送给同步模块;
同步模块, 用于将服务器所发送数据的数据特征信息与由数据特征 信息处理模块得到的相应数据的数据特征信息进行验证并得出验证结 果, 发送给服务器, 接收来自服务器发送的携带同步数据的数据同步消 息,,并将该消息发送给数据处理模块; 或者向服务器发送由数据特征信 息处理模块得到的数据特征信息, 接收来自服务器的验证结果, 根据验 证结果向服务器发送携带同步数据的数据同步消息使服务器进行数据 同步。
37、 如权利要求 36所述的客户端, 其特征在于, 所述的同步模块还 与服务器中的同步模块进行信息交互。
38. 一种数据同步服务器, 其特征在于, 所述服务器包括同步模块、 连接同步模块和数据库的数据处理模块和与同步模块相连接的数据特 征信息模块, 其中,
数据处理模块, 用于将数据库存储的数据发送给同步模块, 或者从 同步模块接收到数据同步消息 , 根据该消息携带的同步数据对数据库中 的数据进行修改或增加;
-数据特征信息处理模块, 用于为同步模块中的数据设定数据特征信 息后发送给同步模块;
同步模块, 用于将客户端所发送数据的数据特征信息与由数据特征 信息处理模块得到的相应数据的数据特征信息进行验证并得出验证结 果, 发送给客户端, 接收来自客户端发送的携带同步数据的数据同步消 息, 并将该消息发送给数据处理模块; 或者向客户端发送由数据特征信 息处理模块得到的数据特征信息, 接收来自客户端的验证结果, 根据验 证结杲向客户端发送携带同步数据的数据同步消息使客户端进行数据 同步。
39, 如权利要求 38所述的服务器, 其特征在于, 所述的同步模块还 与客户端中的同步模块进行信息交互。
PCT/CN2007/000284 2006-01-26 2007-01-25 Procédé, système et dispositif de synchronisation de données WO2007087746A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2007800001981A CN101313495B (zh) 2006-01-26 2007-01-25 数据同步方法、系统及装置
EP07702202.8A EP1983662B1 (en) 2006-01-26 2007-01-25 Data synchronization method, system and device
US12/180,626 US8635266B2 (en) 2006-01-26 2008-07-28 Method and system for data synchronization, and apparatus thereof
US14/107,938 US9524327B2 (en) 2006-01-26 2013-12-16 Method and system for data synchronization, and apparatus thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN200610003042 2006-01-26
CN200610003042.6 2006-01-26
CN200610085153.6 2006-05-31
CN2006100851536A CN101009516B (zh) 2006-01-26 2006-05-31 一种进行数据同步的方法、系统及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/180,626 Continuation US8635266B2 (en) 2006-01-26 2008-07-28 Method and system for data synchronization, and apparatus thereof

Publications (1)

Publication Number Publication Date
WO2007087746A1 true WO2007087746A1 (fr) 2007-08-09

Family

ID=38327121

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2007/000284 WO2007087746A1 (fr) 2006-01-26 2007-01-25 Procédé, système et dispositif de synchronisation de données

Country Status (4)

Country Link
US (2) US8635266B2 (zh)
EP (2) EP1983662B1 (zh)
CN (2) CN101009516B (zh)
WO (1) WO2007087746A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2200222A1 (en) * 2007-10-12 2010-06-23 Huawei Technologies Co., Ltd. A data synchronization method, system and device
EP2249246A4 (en) * 2008-01-24 2011-03-02 Huawei Tech Co Ltd METHOD, DEVICE AND SYSTEM FOR IMPLEMENTING FINGERPRINTER TECHNOLOGY
CN102315930A (zh) * 2010-06-30 2012-01-11 国际商业机器公司 用于在数据同步中减少数据传输量的方法和系统
CN108766547A (zh) * 2018-04-08 2018-11-06 广州市海升信息科技有限责任公司 一种街道养老服务上报、处理方法及客户端、处理系统
CN111680104A (zh) * 2020-05-29 2020-09-18 平安证券股份有限公司 数据同步方法、装置、计算机设备及可读存储介质
CN113779141A (zh) * 2021-08-10 2021-12-10 携程商旅信息服务(上海)有限公司 商旅酒店信息同步存储方法、电子设备和介质

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007206941A (ja) * 2006-02-01 2007-08-16 Konica Minolta Business Technologies Inc 生体認証装置、生体認証システム及び生体データ管理方法
CN101009516B (zh) 2006-01-26 2011-05-04 华为技术有限公司 一种进行数据同步的方法、系统及装置
US7827138B2 (en) * 2006-10-02 2010-11-02 Salesforce.Com, Inc. Method and system for synchronizing a server and an on-demand database service
US7738503B2 (en) * 2007-02-02 2010-06-15 Palm, Inc. Multi-way, peer-to-peer synchronization
US8095495B2 (en) * 2007-09-25 2012-01-10 Microsoft Corporation Exchange of syncronization data and metadata
US20090144513A1 (en) * 2007-12-03 2009-06-04 Pitney Bowes Inc. Database update method
CN101494534A (zh) * 2008-01-21 2009-07-29 华为技术有限公司 一种数据同步方法、装置及系统
CN101552773B (zh) * 2008-04-03 2012-08-22 华为技术有限公司 一种数据同步中处理数据项标识符映射的方法、设备和系统
CN101252462B (zh) * 2008-04-11 2010-09-22 杭州华三通信技术有限公司 告警页面刷新方法以及服务器和客户端
US9747340B2 (en) * 2008-06-19 2017-08-29 Microsoft Technology Licensing, Llc Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic
CN101610281B (zh) * 2008-06-19 2012-11-21 华为技术有限公司 一种数据指纹保存方法和装置
CN102594874B (zh) * 2008-06-20 2014-12-17 华为技术有限公司 一种同步处理方法和装置
US8135670B2 (en) * 2008-07-22 2012-03-13 International Business Machines Corporation Embedded change logging for data synchronization
CN101447874B (zh) * 2008-12-25 2011-07-20 华为终端有限公司 一种数据同步方法、客户端及服务器
JP5003701B2 (ja) * 2009-03-13 2012-08-15 ソニー株式会社 サーバ装置及び設定情報の共有化方法
US8473543B2 (en) 2009-07-06 2013-06-25 Microsoft Corporation Automatic conflict resolution when synchronizing data objects between two or more devices
CN101662760B (zh) * 2009-07-31 2011-12-28 中兴通讯股份有限公司 将终端数据进行备份的方法及系统
KR101108957B1 (ko) * 2009-11-16 2012-02-09 엘지전자 주식회사 광대역 무선 접속 시스템에서의 그룹 자원 할당 방법
US20110119232A1 (en) * 2009-11-18 2011-05-19 Raytheon Company Synchronizing data between a client and a server
WO2011070646A1 (ja) 2009-12-08 2011-06-16 富士通株式会社 生体認証システム及び生体認証方法
US8954625B2 (en) * 2010-01-21 2015-02-10 Lee Friedman System, method and computer program product for portable multimedia content display
US8410994B1 (en) * 2010-08-23 2013-04-02 Matrox Graphics Inc. System and method for remote graphics display
CN102054036B (zh) * 2010-12-29 2013-04-17 北京新媒传信科技有限公司 一种文件同步方法和装置
US8095534B1 (en) 2011-03-14 2012-01-10 Vizibility Inc. Selection and sharing of verified search results
CN102184218B (zh) * 2011-05-05 2012-11-21 华中科技大学 一种基于因果关系的重复数据删除方法
US9646291B2 (en) 2011-05-11 2017-05-09 Visa International Service Association Electronic receipt manager apparatuses, methods and systems
CN102279881A (zh) * 2011-07-28 2011-12-14 南京中兴新软件有限责任公司 清除垃圾数据的方法及文件访问服务器
CN102291453B (zh) * 2011-08-09 2017-04-26 中兴通讯股份有限公司 一种数据同步的方法及装置
US20130097116A1 (en) * 2011-10-17 2013-04-18 Research In Motion Limited Synchronization method and associated apparatus
CN103327037B (zh) * 2012-03-20 2017-09-29 中兴通讯股份有限公司 数据同步方法及装置
US10089323B2 (en) 2012-04-05 2018-10-02 Microsoft Technology Licensing, Llc Telemetry system for a cloud synchronization system
US9633098B2 (en) 2012-09-25 2017-04-25 Visa International Service Association System and method for maintaining device state coherency
CN103024039B (zh) * 2012-12-13 2016-04-06 东莞宇龙通信科技有限公司 数据同步方法和系统
US9218314B2 (en) 2013-02-01 2015-12-22 International Business Machines Corporation Boosting remote direct memory access performance using cryptographic hash based approach
CN103117883B (zh) * 2013-03-20 2015-09-16 烽火通信科技股份有限公司 一种分组设备运行状态同步方法
CN104144187B (zh) * 2013-05-10 2018-04-06 中国电信股份有限公司 一种获取应用更新版本的方法、终端、平台和系统
CN103279510A (zh) * 2013-05-17 2013-09-04 上海市计量测试技术研究院 多数据库非连续性在线同步的方法
CN103347005B (zh) * 2013-06-19 2016-08-10 北京奇虎科技有限公司 一种控制数据上报的方法以及客户端设备和服务器设备
CN103354560B (zh) * 2013-06-28 2017-05-17 广州市动景计算机科技有限公司 数据的分解同步方法及系统
CN104348859B (zh) * 2013-07-30 2019-05-07 深圳市腾讯计算机系统有限公司 文件同步方法、装置、服务器、终端及系统
US10778680B2 (en) * 2013-08-02 2020-09-15 Alibaba Group Holding Limited Method and apparatus for accessing website
CN104601497B (zh) * 2013-10-31 2019-01-18 华为技术有限公司 基于wan接口的1588v2报文传输方法及装置
CN103607767A (zh) * 2013-11-26 2014-02-26 厦门亿联网络技术股份有限公司 一种减少主机与无线终端同步数据量的方法
CN103701913B (zh) * 2013-12-30 2017-02-22 广州爱九游信息技术有限公司 数据同步方法及装置
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US10825056B1 (en) 2014-04-17 2020-11-03 The Nielsen Company (Us), Llc Client-side video advertisement replacement using automatic content recognition
KR20190044145A (ko) * 2014-06-24 2019-04-29 구글 엘엘씨 원격 데이터베이스에 대한 변경사항들의 처리
CN105450682B (zh) * 2014-08-08 2019-12-06 阿里巴巴集团控股有限公司 一种用于数据同步保存、向客户端同步数据的方法、装置和系统
CN104580425A (zh) * 2014-12-26 2015-04-29 北京中交兴路车联网科技有限公司 一种客户端数据同步方法及系统
CN104519142B (zh) * 2015-01-10 2019-09-20 蓝信移动(北京)科技有限公司 一种数据同步方法和系统、客户端、协议服务器
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US9563638B2 (en) 2015-01-30 2017-02-07 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US9185164B1 (en) 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items
US9413824B1 (en) 2015-01-30 2016-08-09 Dropbox, Inc. Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
CN104639651A (zh) * 2015-03-04 2015-05-20 成都维远艾珏信息技术有限公司 一种移动设备信息传输方法
CN104615784B (zh) * 2015-03-04 2017-09-08 贵州腾迈信息技术有限公司 一种存取数据的方法
CN104881454A (zh) * 2015-05-19 2015-09-02 百度在线网络技术(北京)有限公司 参数的更新方法及系统
CN105187475B (zh) * 2015-06-09 2018-10-12 深圳金蝶账无忧网络科技有限公司 数据同步的方法和系统
US10721298B1 (en) 2015-06-18 2020-07-21 EMC IP Holding Company LLC Learning client preferences to optimize event-based synchronization
US10992748B1 (en) * 2015-06-18 2021-04-27 EMC IP Holding Company LLC Verification of event-based synchronization
US10235331B1 (en) 2015-06-18 2019-03-19 EMC IP Holding Company LLC Event-based synchronization in a file sharing environment
US10242024B1 (en) 2015-06-18 2019-03-26 EMC IP Holding Company LLC Dynamic reprioritization of content download during synchronization
CN106649056B (zh) * 2015-07-16 2019-07-02 阿里巴巴集团控股有限公司 一种数据检测方法和装置
CN106375354B (zh) * 2015-07-20 2020-06-05 阿里巴巴集团控股有限公司 数据处理方法及装置
CN105306554B (zh) * 2015-09-30 2018-10-23 北京恒华伟业科技股份有限公司 一种数据同步方法及本地服务器
CN105187260A (zh) * 2015-10-20 2015-12-23 上海斐讯数据通信技术有限公司 一种网络管理系统的设备数据同步方法及系统
CN105357290A (zh) * 2015-10-26 2016-02-24 无锡天脉聚源传媒科技有限公司 一种视频的相关信息同步的处理方法及装置
CN106611001A (zh) * 2015-10-26 2017-05-03 中兴通讯股份有限公司 虚拟机数据库表数据一致性的校验方法、装置及系统
CN105282253A (zh) * 2015-11-04 2016-01-27 湖南御家科技有限公司 一种数据单据同步方法及系统
US10778672B2 (en) * 2015-11-16 2020-09-15 International Business Machines Corporation Secure biometrics matching with split phase client-server matching protocol
US10311082B2 (en) * 2015-12-21 2019-06-04 Sap Se Synchronization of offline instances
CN107220259A (zh) * 2016-03-22 2017-09-29 北京京东尚科信息技术有限公司 一种数据库扩展系统、设备和用于扩展数据库的方法
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
US10719532B2 (en) 2016-04-25 2020-07-21 Dropbox, Inc. Storage constrained synchronization engine
CN107341163B (zh) * 2016-05-03 2020-08-14 阿里巴巴集团控股有限公司 数据同步方法及装置
CN106202387B (zh) * 2016-07-08 2019-05-21 苏州超块链信息科技有限公司 一种数据一致性并行维护方法
CN106230703A (zh) * 2016-08-30 2016-12-14 腾讯科技(深圳)有限公司 聊天记录的处理和获取方法以及装置
CN106650490B (zh) * 2016-10-25 2019-07-23 Oppo广东移动通信有限公司 云账号的登录方法及装置
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
CN106790584B (zh) * 2016-12-28 2020-09-04 北京小米移动软件有限公司 信息同步方法及装置
US10635690B1 (en) * 2016-12-31 2020-04-28 Allscripts Software, Llc Bitwise data comparison utilizing dynamic temporal segmentation
CN106886589B (zh) * 2017-02-20 2020-08-11 浪潮通用软件有限公司 一种图片存储方法、服务端以及客户端
CN108632300B (zh) * 2017-03-15 2021-12-10 阿里巴巴集团控股有限公司 数据同步系统、方法、服务器、客户端及电子设备
CN108733680A (zh) * 2017-04-14 2018-11-02 徐州瑞晨矿业科技发展有限公司 一种基于矢量图形数据进行工程图纸远程分享的方法
CN107197018B (zh) * 2017-05-23 2020-01-21 北京奇艺世纪科技有限公司 一种系统间数据同步的方法和装置
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
CN107425938B (zh) * 2017-07-28 2019-04-16 江苏神州信源系统工程有限公司 一种即时通信中的大规模组织机构的实时同步方法
US10931517B2 (en) * 2017-07-31 2021-02-23 Vmware, Inc. Methods and systems that synchronize configuration of a clustered application
CN107491526A (zh) * 2017-08-18 2017-12-19 国云科技股份有限公司 一种实现数据库同步的系统及其方法
CN109428918B (zh) * 2017-08-25 2021-07-30 北京国双科技有限公司 域账号与域组之间映射关系的同步方法及装置
CN107846450A (zh) * 2017-09-29 2018-03-27 珂伯特机器人(天津)有限公司 一种聊天数据同步的方法
WO2019071617A1 (zh) * 2017-10-09 2019-04-18 华为技术有限公司 一种电子邮件的同步方法及终端
CN107749877A (zh) * 2017-10-16 2018-03-02 苏州蜗牛数字科技股份有限公司 网络游戏地形数据同步方法、装置及一种网络游戏系统
CN107741887A (zh) * 2017-10-23 2018-02-27 山东浪潮通软信息科技有限公司 一种组件间的通信交互方法和装置
CN107733923B (zh) * 2017-11-23 2020-01-24 韵盛发科技(北京)股份有限公司 一种基于报文指纹的认证方法及系统
CN108055305B (zh) * 2017-12-06 2020-11-17 深圳市智物联网络有限公司 一种存储扩展方法及存储扩展装置
US10331660B1 (en) 2017-12-22 2019-06-25 Capital One Services, Llc Generating a data lineage record to facilitate source system and destination system mapping
CN108418746B (zh) * 2018-02-13 2020-06-12 论客科技(广州)有限公司 一种邮件同步方法、装置与计算机可读存储介质
CN109063493B (zh) * 2018-07-11 2021-10-29 西康软件股份有限公司 去中心化高性能同步方法
CN109344349B (zh) * 2018-09-28 2020-12-29 北京三快在线科技有限公司 一种数据缓存方法及装置、电子设备
US10949548B2 (en) * 2018-10-18 2021-03-16 Verizon Patent And Licensing Inc. Systems and methods for providing multi-node resiliency for blockchain peers
CN109446271B (zh) * 2018-10-31 2023-02-14 创新先进技术有限公司 一种数据同步方法、装置、设备及介质
CN110502584B (zh) * 2019-08-28 2021-09-28 北京三快在线科技有限公司 数据同步的方法和装置
CN111131240A (zh) * 2019-12-23 2020-05-08 杭州迪普科技股份有限公司 认证信息备份方法及装置、电子设备、存储介质
CN111190962B (zh) * 2019-12-24 2024-02-09 深圳市优必选科技股份有限公司 一种文件同步方法、装置及本地终端
CN114067473B (zh) * 2020-08-07 2023-01-06 比亚迪股份有限公司 综合调度系统中的门禁权限管理方法、装置及设备
CN112446536A (zh) * 2020-11-19 2021-03-05 海南省林业科学研究院(海南省红树林研究院) 基于大数据架构的生态环境监测网格化系统及其监测方法
US11941022B2 (en) 2021-11-15 2024-03-26 GE Precision Healthcare LLC Systems and methods for database synchronization
CN114344799B (zh) * 2021-12-13 2022-11-11 深圳市培林体育科技有限公司 智能云跳绳和跳绳运动系统及其控制方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163344A (ja) * 1998-11-27 2000-06-16 Nec Corp ネットワーク管理システムのデータベース復旧方式
EP1291770A2 (en) * 2001-08-14 2003-03-12 Microsoft Corporation Method and system for sychronizing mobile devices
CN1407475A (zh) * 2001-08-24 2003-04-02 前锦网络信息技术(上海)有限公司 基于互联网的人才简历数据库同步更新方法
US20030115301A1 (en) 2001-11-12 2003-06-19 (Nokia Corporation) Arrangement of data synchronization in a telecommunications system
CN1472911A (zh) * 2002-07-31 2004-02-04 鸿富锦精密工业(深圳)有限公司 无线设备同步系统及方法
EP1564658A1 (en) 2004-02-10 2005-08-17 Research In Motion Limited Apparatus and associated method for synchronizing databases by comparing hash values.

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535892B1 (en) * 1999-03-08 2003-03-18 Starfish Software, Inc. System and methods for exchanging messages between a client and a server for synchronizing datasets
US6880107B1 (en) * 1999-07-29 2005-04-12 International Business Machines Corporation Software configuration monitor
US6986039B1 (en) * 2000-07-11 2006-01-10 International Business Machines Corporation Technique for synchronizing security credentials using a trusted authenticating domain
US20030045311A1 (en) * 2001-08-30 2003-03-06 Tapani Larikka Message transfer from a source device via a mobile terminal device to a third device and data synchronization between terminal devices
US7526575B2 (en) * 2001-09-28 2009-04-28 Siebel Systems, Inc. Method and system for client-based operations in server synchronization with a computing device
GB2384331A (en) * 2002-01-19 2003-07-23 Hewlett Packard Co Access control using credentials
US7143117B2 (en) 2003-09-25 2006-11-28 International Business Machines Corporation Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match
CN100502284C (zh) * 2004-04-21 2009-06-17 华为技术有限公司 通信系统中数据同步方法及其装置
US7155040B2 (en) * 2004-06-29 2006-12-26 Bio-Key International, Inc. Generation of quality field information in the context of image processing
US7925549B2 (en) * 2004-09-17 2011-04-12 Accenture Global Services Limited Personalized marketing architecture
US20060271791A1 (en) 2005-05-27 2006-11-30 Sbc Knowledge Ventures, L.P. Method and system for biometric based access control of media content presentation devices
US8024290B2 (en) * 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
CN101009516B (zh) 2006-01-26 2011-05-04 华为技术有限公司 一种进行数据同步的方法、系统及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163344A (ja) * 1998-11-27 2000-06-16 Nec Corp ネットワーク管理システムのデータベース復旧方式
EP1291770A2 (en) * 2001-08-14 2003-03-12 Microsoft Corporation Method and system for sychronizing mobile devices
CN1407475A (zh) * 2001-08-24 2003-04-02 前锦网络信息技术(上海)有限公司 基于互联网的人才简历数据库同步更新方法
US20030115301A1 (en) 2001-11-12 2003-06-19 (Nokia Corporation) Arrangement of data synchronization in a telecommunications system
CN1472911A (zh) * 2002-07-31 2004-02-04 鸿富锦精密工业(深圳)有限公司 无线设备同步系统及方法
EP1564658A1 (en) 2004-02-10 2005-08-17 Research In Motion Limited Apparatus and associated method for synchronizing databases by comparing hash values.

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1983662A4 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489548B2 (en) 2007-10-12 2013-07-16 Huawei Technologies Co., Ltd. Method, system, and device for data synchronization
EP2200222A4 (en) * 2007-10-12 2011-01-26 Huawei Tech Co Ltd METHOD, SYSTEM AND DEVICE FOR SYNCHRONIZATION OF DATA
EP2200222A1 (en) * 2007-10-12 2010-06-23 Huawei Technologies Co., Ltd. A data synchronization method, system and device
US8706746B2 (en) 2008-01-24 2014-04-22 Huawei Technologies Co., Ltd. Method, device, and system for realizing fingerprint technology
JP2011510572A (ja) * 2008-01-24 2011-03-31 華為技術有限公司 フィンガープリント技術の実現方法、装置、及びシステム
EP2249246A4 (en) * 2008-01-24 2011-03-02 Huawei Tech Co Ltd METHOD, DEVICE AND SYSTEM FOR IMPLEMENTING FINGERPRINTER TECHNOLOGY
CN102315930A (zh) * 2010-06-30 2012-01-11 国际商业机器公司 用于在数据同步中减少数据传输量的方法和系统
CN102315930B (zh) * 2010-06-30 2014-07-23 国际商业机器公司 用于在数据同步中减少数据传输量的方法和系统
US8793214B2 (en) 2010-06-30 2014-07-29 International Business Machines Corporation Reducing an amount of data transfer in data synchronization
CN108766547A (zh) * 2018-04-08 2018-11-06 广州市海升信息科技有限责任公司 一种街道养老服务上报、处理方法及客户端、处理系统
CN111680104A (zh) * 2020-05-29 2020-09-18 平安证券股份有限公司 数据同步方法、装置、计算机设备及可读存储介质
CN111680104B (zh) * 2020-05-29 2023-11-03 平安证券股份有限公司 数据同步方法、装置、计算机设备及可读存储介质
CN113779141A (zh) * 2021-08-10 2021-12-10 携程商旅信息服务(上海)有限公司 商旅酒店信息同步存储方法、电子设备和介质

Also Published As

Publication number Publication date
CN101313495A (zh) 2008-11-26
CN101313495B (zh) 2012-07-04
EP1983662A1 (en) 2008-10-22
CN101009516B (zh) 2011-05-04
US8635266B2 (en) 2014-01-21
EP2955644A1 (en) 2015-12-16
US9524327B2 (en) 2016-12-20
CN101009516A (zh) 2007-08-01
EP1983662B1 (en) 2015-08-26
US20140108338A1 (en) 2014-04-17
US20090157802A1 (en) 2009-06-18
EP2955644B1 (en) 2017-06-21
EP1983662A4 (en) 2009-06-17

Similar Documents

Publication Publication Date Title
WO2007087746A1 (fr) Procédé, système et dispositif de synchronisation de données
US8489548B2 (en) Method, system, and device for data synchronization
US6928467B2 (en) Apparatus and methods for providing data synchronization by facilitating data synchronization system design
JP4829316B2 (ja) 中断された同期プロセスに対処してデータを同期させる方法、装置、システム
US8171171B2 (en) Data synchronization method and system between devices
US8930693B2 (en) Cluster federation and trust
US8712982B2 (en) Virtual multi-cluster clouds
US7636767B2 (en) Method and apparatus for reducing network traffic over low bandwidth links
US7359920B1 (en) Communication protocol for synchronization of personal information management databases
EP2208148B1 (en) System and method for replication and synchronisation
TW200522630A (en) Lightweight input/output protocol
JP2003524968A (ja) Dnaトランスミッション(送信)及びトランスクリプション技術を利用した冗長データセットを表示及び維持するためのシステム及び方法
US10339124B2 (en) Data fingerprint strengthening
WO2022237497A1 (zh) 一种基于区块链网络的数据存储方法及装置
WO2020125452A1 (zh) 配置数据处理方法、软件定义网络设备、系统及存储介质
JP4494970B2 (ja) 中断された同期プロセスに対処してデータを同期させる方法、装置、システム
WO2013078797A1 (zh) 网络文件传输方法及系统
CN102594874B (zh) 一种同步处理方法和装置
CN116955355A (zh) 一种区块数据处理方法、装置及电子设备
WO2013136584A1 (ja) データ転送システム
TWI220201B (en) Engine system of common data synchronization protocol for pocket PC
CN115189883A (zh) 分布式证书管理系统及其构建方法、证书管理方法
Waldvogel et al. EKA: Efficient keyserver using ALMI
Narayanan A New Network File Protocol

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780000198.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007702202

Country of ref document: EP