数据同步方法

文档序号:7739912阅读:128来源:国知局
专利名称:数据同步方法
技术领域
本发明涉及网络技术领域,具体而言,涉及一种数据同步技术。
背景技术
当前,邮件、即时消息等已经成为企业内部员工工作、沟通的重要工具,而企业通 讯录则是这些通讯工具的数据基础,通讯录中存放有员工、客户的邮箱地址、电话号码等各 种重要联系信息。在诸多场景中,当用户需要与某个联系人通讯时,首先会从通讯录中查 找该联系人的联系方式,然后根据找到的信息,选择一种适当的通讯工具,发起与该联系人 的通讯。比如,在通讯录中找到联系人的电子邮件地址后,通过邮件系统客户端给联系人 发邮件;又或者通过登记在通讯录中的联系人电话号码,向该联系人发起语音呼叫、视频呼 叫、多方会议等操作,在这些操作过程中,用户希望能够从通讯录中快速、准确找到联系人 信息。 在基于客户端/服务器网络结构的通讯录应用系统中(如邮件系统、即时协同系 统),服务器上存放有最新的通讯录数据,而客户端(如即时通讯客户端、邮件客户端等) 为了提高访问速度或离线查找的需要,会在本地存储器中保留一份缓存的通讯录副本,用 户在客户端查找和访问的联系人信息都是从本地的通讯录副本中取出来的,这就需要客户 端能够及时同步服务器上的数据,使客户端中通讯录副本的联系人信息与服务器上保持一 致,保证用户得到的信息是准确和有效的。 现有同步方式是当服务器上的数据被修改后,所有的客户端都会到该服务器去 获取更新数据,保存到客户端本地的副本中。这种集中同步的方式虽然能够使客户端的数 据与服务器保持一致,但也存在很大的问题由于服务器上的资源(如网络带宽、磁盘10、 CPU处理能力等)是有限的,当大量客户端并发请求同步时,会造成服务响应变慢甚至拒绝 客户端的请求,随着客户端数量的增加,服务器资源问题会变的越来越严重,使客户端需要 很长时间才能完成同步,甚至同步失败,需要等服务器空闲后才能重新同步,造成客户端通 讯录副本中的联系人信息在一段时间内与服务器不一致,用户无法查到最新,准确的联系 人信息,影响了用户的使用和体验,甚至阻碍正常沟通,降低了工作效率。

发明内容
针对现有数据同步技术中服务器的资源有限,客户端数据同步需要长时间完成的 问题提出本发明。为此,本发明的主要目的在于提供一种数据同步系统和方法,以解决上述 问题至少之一。 根据本发明的一个方面,提出了一种数据同步的方法,应用于包括资源管理服务 器,至少一个数据服务器和至少一个客户端的系统中,其特征在于,包括 将客户端加入资源管理服务器的资源列表作为资源节点; 资源管理服务器处理客户端的资源列表请求,返回资源列表; 所述客户端选择所述资源列表中的资源节点建立连接进行数据同步。
进一步地,所述客户端向所述资源管理服务器发送注册请求;所述资源管理服务
器处理客户端的注册请求,并将客户端加入到资源列表。 进一步地,所述客户端向资源管理服务器发送资源列表请求;所述资源管理服务 器响应客户端的资源列表请求,根据预定的资源分配策略从中选取资源列表返回给所述客 户端。 进一步地,所述资源节点为客户端和/或数据服务器。 进一步地,资源管理服务器收到客户端注册请求后,验证客户端注册参数是否正 确,验证通过后将客户端加入到资源列表。 进一步地,所述资源节点收到所述请求客户端的同步请求后,首先从请求中获取 对端通讯录数据版本号,将对端版本号与本地通讯录副本版本号相比较,若两端数据相同, 结束本次同步过程。 进一步地,若本地通讯录副本比对端新,则根据对端版本号,从本地缓存数据中取 出该版本号之后所有更新的数据,发给对端;若本地通讯录副本比对端旧,则向对端请求更 新数据;所述对端为所述请求客户端。 进一步地,所述预定的资源分配策略包括以下方式的任一或组合 随机分配资源管理服务从资源列表中随机选取其中的几个资源返回给请求客户
丄山
顺; 按资源负载分配资源管理服务将资源列表按资源负载状态进行排序,选取负载 最低的几个资源返回给请求客户端,所述的资源负载是指该资源节点当前正在为其它节点 提供数据服务的节点数量; 按网络路径分配资源管理服务器在资源列表中查找与请求客户端在同一网络或 邻近网络的资源节点,并将这些节点返回给请求客户端。 根据本发明的另一个方面,提出了一种数据同步的方法,应用于包括资源管理服 务器,至少一个数据服务器和至少一个客户端的系统中,其特征在于,包括以下步骤
A.客户端向资源管理服务器发送注册请求; B.资源管理服务器处理客户端的注册请求,并将客户端加入到资源列表中;
C.客户端向资源管理服务器发送资源列表请求; D.资源管理服务器响应客户端的资源列表请求,根据预定的资源分配策略从中选 取资源列表返回给请求客户端; E.客户端连接资源列表中的资源节点,并将自己的通讯录数据版本号发给所述资 源节点;所述资源节点接受来自其他客户端节点的连接,比较对端和自己的通讯录数据版 本号,根据版本号与对端同步通讯录数据。 与现有技术相比较,本发明使用分布式端对端的方法完成数据同步过程,使得客 户端的数据同步不需要都到数据服务器来完成,通过资源管理服务器的协调和管理,客户 端之间可以完成数据同步过程,减轻了数据服务器的负载,而且对于数据服务器的响应不 会随着客户端数量的增加而变慢。


图1为本发明实施例的数据同步方法流程5
图2为本发明实施例的资源管理服务器处理客户端注册请求流程 图3为本发明实施例的资源管理服务器处理客户端资源请求流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。 本发明的核心是客户端同步数据时不需要都到数据服务器去同步,而是通过资源管理服务器这样一个新的逻辑功能实体来完成资源协调和控制,客户端向资源管理服务器发出同步请求,根据资源管理服务器返回的资源列表直接向资源节点同步数据,所述资源节点可以是服务器,可以是客户端。 本发明提出的数据同步系统架构,包括资源管理服务器,至少一个数据服务器和至少一个客户端,其中, 数据服务器保存有当前最新的通讯录数据,以及通讯录数据的版本号;可选的是,数据服务器可以接受客户端的同步请求,将需要更新的通讯录数据发给请求客户端。
资源管理服务器用来管理网络中的资源节点,这些资源节点可以为其他网元(客户端或者服务器)提供数据服务。 进一步地,资源管理服务器用来管理可提供数据同步服务的资源列表,所述资源是指能够处理其它客户端的同步请求,根据请求结果将本地的数据返回给请求者的资源节点,这些资源节点可以是数据服务器或者是客户端。 进一步地,资源管理服务器接受客户端的注册请求,同时将客户端加入到资源列表中;接受客户端的资源列表请求,收到该请求后,资源管理器检查当前的资源列表,按照预定的资源分配策略从中选取资源返回给请求客户端,具体的资源分配策略包括以下方式的任一或组合( — )、随机分配方式资源管理服务从资源列表中随机选取其中的几个资源返回给请求客户端。 ( 二 )、按资源负载分配方式资源管理服务将资源列表按资源负载状态进行排序,选取负载最低的几个资源返回给请求客户端。所述的资源负载是指该资源节点当前正在为其它节点提供数据服务的节点数量。(三)、按网络路径分配方式资源管理服务器在资源列表中查找与请求客户端在同一网络或邻近网络的资源节点,并将这些节点返回给请求客户端。 需要说明的是资源管理服务器作为一个逻辑功能实体可以是一个或多个独立的网元,也可以是数据服务器的一个子模块,具体根据不同的应用场景,可选择设置。 一种优选的方式是,根据数据服务器和资源服务器的资源负载情况,在资源负载较低的情况下,将数据服务器和资源管理服务器合并为一个网元;在资源负载较高的情况下,将数据服务器和资源管理服务器分为两个独立的网元;也可以在运行期间根据资源负载情况在两种方式之间调整。 客户端为用户提供查找和使用通讯录服务的资源节点,在本地存储器中保存有通讯录数据副本,以及该副本数据的版本号; 客户端在启动时向资源管理服务器注册,将本地通讯录副本的版本号发送给资源管理器,从资源管理服务器获取同步资源列表,与这些资源节点建立连接,向这些资源节点 发起同步请求。同时,客户端也作为资源节点接受和处理来自其他客户端的同步请求。
基于上述的系统架构,本发明提出了一种数据同步方法,包括
E.客户端向资源管理服务器发送注册请求; F.资源管理服务器处理客户端的注册请求,并将客户端加入到资源列表中;
G.客户端向资源管理服务器发送资源列表请求; H.资源管理服务器响应客户端的资源列表请求,根据预定的资源分配策略从中选 取资源列表返回给请求客户端; I.客户端连接资源列表中的资源节点,并将自己的通讯录数据版本号发给这些节 点; J.资源节点接受来自其他客户端节点的连接,比较对端和自己的通讯录数据版本
号,根据版本号与对端同步通讯录数据;
进一步地,步骤B还具体包括 Bl.资源管理服务器收到客户端注册请求后,验证客户端注册参数是否正确,验证 通过执行下一步,否则执行B3。 B2.将该客户端保存到资源列表中,作为其他客户端同步的资源节点,资源列表中
每个资源节点包括但不限于以下数据属性资源节点通讯地址和端口。 B3.返回注册结果。
进一步地,步骤D还具体包括 Dl.检查当前资源列表中有没有可用的资源节点,若有则进入下一步,否则将数据 服务器作为一个资源节点返回给请求客户端。 D2.根据预先定义的资源分配策略,从资源列表中取出预定数量的资源节点信息, 返回给客户端。 进一步地,步骤F具体实现过程包括 Fl.资源节点收到客户端的同步请求后,首先从请求中获取对端通讯录数据版本 号。 F2.将对端版本号与本地通讯录副本版本号相比较,根据比较结果,若两端数据相 同,说明不用同步,结束本次同步过程。 F3.若本地通讯录副本比对端新,则根据对端版本号,从本地缓存数据中取出该版 本号之后所有更新的数据,发给对端。 F4.若本地通讯录副本比对端旧,则向对端请求更新数据。 与现有技术相比较,本发明使用分布式端对端的方法完成数据同步过程,使得客 户端的数据同步不需要都到数据服务器来完成,通过资源管理服务器的设置,客户端之间 可以完成数据同步过程,减轻了数据服务器的负载,而且对于数据服务器的响应不会随着 客户端数量的增加而变慢。 下面以客户端A和客户端B的通讯录数据同步过程为例,说明本发明所述数据同 步方法的流程。 如图1所示,为本发明实施例的数据同步方法流程图,包括
步骤101.客户端B到资源管理服务器注册,所述注册具体还包括
7
1.资源管理服务器验证客户端B的注册信息是否合法;
2.将客户端B作为一个同步节点加到资源列表中; 步骤102.客户端B到资源管理服务器获取资源列表,此时,资源管理器上的资源列表中只有一条客户端B的记录,在一种实施方案的资源分配策略中,资源管理器将数据服务器作为同步资源返回给客户端B。 步骤103.客户端B收到资源服务器返回的资源列表,从中取出数据服务器通讯地
址信息,连接到数据同步服务器进行数据同步。 步骤104.客户端A到资源管理服务器注册。 步骤105.客户端A到资源管理服务器获取资源列表。此时,资源管理器上的资源列表中存在客户端B和客户端A两条资源记录,在一种实施方案的资源分配策略中,资源管理器将客户端B作为同步资源返回给客户端A。 步骤106.客户端A收到资源服务器返回的资源列表,从中取出客户端B通讯地址信息,连接到客户端B进行数据同步。 如图2所示,为本发明实施例的资源管理器处理客户端注册请求流程图,具体包括 步骤201.资源管理器收到客户端的注册请求,在具体的实施方案中,客户端的注册请求包括注册信息、为其它客户端提供同步服务的通讯地址(称之为同步地址)。
步骤202.检查客户端注册信息是否正确。 步骤203.如果客户端注册信息不正确,则向客户端返回注册失败信息。否则进入步骤204。 步骤204.检查客户端是否已经在资源列表中,若已在资源列表中,则执行步骤206,否则进入步骤205。 步骤202.将客户端加到资源列表中。 如图3所示,为本发明实施例的资源管理器处理客户端资源请求流程图,在步骤102或者105中,包括 步骤301.资源管理器收到客户端的资源请求。 步骤302.检查当前资源列表中的资源数量,如果小于或等于l,说明除了请求客
户端,没有其他同步资源可用,执行步骤303 ;否则转到步骤304。 步骤303.资源管理器将数据服务器作为同步资源返回给请求客户端。 步骤304.当资源列表中存在多个可用的同步资源时,资源管理器按照一定的资
源分配策略,为请求客户端分配一定数量的资源。所述资源分配策略是指,按照一定的规则
从资源列表中选取可用资源, 一种优选的方案是资源管理器根据请求客户端的通讯地址,
优先为其分配同一网络内的其他同步资源,这样同步时可获得更快的响应时间和数据传输速率。 具体的资源分配策略包括以下方式的任一或组合( — )随机分配方式资源管理服务从资源列表中随机选取其中的几个资源返回给请求客户端; ( 二 )按资源负载分配方式资源管理服务将资源列表按资源负载状态进行排序,选取负载最低的几个资源返回给请求客户端。所述的资源负载是指该资源节点当前正在为其它节点提供数据服务的节点数量;(三)按网络路径分配方式资源管理服务器在资源列表中查找与请求客户端在
同一网络或邻近网络的资源节点,并将这些节点返回给请求客户端; 步骤305.资源管理器将分配好的同步资源返回给请求客户端。 本发明方法将客户端作为资源节点,作为数据同步的节点,使得客户端之间的数
据同步不需要到数据服务器,而是在资源管理服务器的协调和管理下,客户端之间可以完
成数据同步过程,减轻了数据服务器的负载,而且对于数据服务器的响应不会随着客户端
数量的增加而变慢。 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种数据同步方法,应用于包括资源管理服务器,至少一个数据服务器和至少一个客户端的系统中,其特征在于,包括将客户端加入资源管理服务器的资源列表作为资源节点;资源管理服务器处理客户端的资源列表请求,返回资源列表;所述客户端选择所述资源列表中的资源节点建立连接进行数据同步。
2. 如权利要求l所述的方法,其特征在于,所述客户端向所述资源管理服务器发送注册请求;所述资源管理服务器处理客户端的注册请求,并将客户端加入到资源列表。
3. 如权利要求2所述的方法,其特征在于,所述客户端向资源管理服务器发送资源列表请求;所述资源管理服务器响应客户端的资源列表请求,根据预定的资源分配策略从中选取资源列表返回给所述客户端。
4. 如权利要求l所述的方法,其特征在于,所述资源节点为客户端和/或数据服务器。
5. 如权利要求2所述的方法,其特征在于,资源管理服务器收到客户端注册请求后,验证客户端注册参数是否正确,验证通过后将客户端加入到资源列表。
6. 如权利要求2所述的方法,其特征在于,所述资源节点收到所述请求客户端的同步请求后,首先从请求中获取对端通讯录数据版本号,将对端版本号与本地通讯录副本版本号相比较,若两端数据相同,结束本次同步过程。
7. 如权利要求6所述的方法,其特征在于,若本地通讯录副本比对端新,则根据对端版本号,从本地缓存数据中取出该版本号之后所有更新的数据,发给对端;若本地通讯录副本比对端旧,则向对端请求更新数据;所述对端为所述请求客户端。
8. 如权利要求3所述的方法,其特征在于,所述预定的资源分配策略包括以下方式的任一或组合随机分配资源管理服务从资源列表中随机选取其中的几个资源返回给请求客户端;按资源负载分配资源管理服务将资源列表按资源负载状态进行排序,选取负载最低的几个资源返回给请求客户端,所述的资源负载是指该资源节点当前正在为其它节点提供数据服务的节点数量;按网络路径分配资源管理服务器在资源列表中查找与请求客户端在同一网络或邻近网络的资源节点,并将这些节点返回给请求客户端。
9. 一种数据同步方法,应用于包括资源管理服务器,至少一个数据服务器和至少一个客户端的系统中,其特征在于,包括以下步骤A. 客户端向资源管理服务器发送注册请求;B. 资源管理服务器处理客户端的注册请求,并将客户端加入到资源列表中;C. 客户端向资源管理服务器发送资源列表请求;D. 资源管理服务器响应客户端的资源列表请求,根据预定的资源分配策略从中选取资源列表返回给请求客户端;E.客户端连接资源列表中的资源节点,并将自己的通讯录数据版本号发给所述资源节点;所述资源节点接受来自其他客户端节点的连接,比较对端和自己的通讯录数据版本号,根据版本号与对端同步通讯录数据。
10.如权利要求9所述的方法,其特征在于,所述资源节点收到所述请求客户端的同步请求后,首先从请求中获取对端通讯录数据版本号,将对端版本号与本地通讯录副本版本号相比较,若两端数据相同,说明不用同步,结束本次同步过程;若本地通讯录副本比对端新,则根据对端版本号,从本地缓存数据中取出该版本号之后所有更新的数据,发给对端;若本地通讯录副本比对端旧,则向对端请求更新数据;所述对端为所述请求客户端。
全文摘要
本发明提出了一种数据同步的系统及方法,使用分布式端对端的方法完成数据同步过程,使得客户端的数据同步不需要都到数据服务器来完成,通过资源管理服务器的协调和管理,客户端之间可以完成数据同步过程,减轻了数据服务器的负载,而且对于数据服务器的响应不会随着客户端数量的增加而变慢。
文档编号H04L12/24GK101771723SQ20101000307
公开日2010年7月7日 申请日期2010年1月5日 优先权日2010年1月5日
发明者李英新, 杨志鹏, 范国华 申请人:深圳中兴网信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1