CN100469016C - 一种实现网络通讯录数据同步的方法 - Google Patents
一种实现网络通讯录数据同步的方法 Download PDFInfo
- Publication number
- CN100469016C CN100469016C CNB2006100601687A CN200610060168A CN100469016C CN 100469016 C CN100469016 C CN 100469016C CN B2006100601687 A CNB2006100601687 A CN B2006100601687A CN 200610060168 A CN200610060168 A CN 200610060168A CN 100469016 C CN100469016 C CN 100469016C
- Authority
- CN
- China
- Prior art keywords
- client
- server
- data
- book data
- network communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种实现网络通讯录数据同步的方法,包括:在客户端对本地网络通讯录数据的修改操作超时后,且客户端通信层空闲时,客户端向服务器发送同步其网络通讯录数据的请求;服务器接到来自客户端的同步请求后,将其最新的网络通讯录数据传送给该客户端;客户端接收来自服务器的最新网络通讯录数据,更新本地网络通讯录,并将客户端的数据版本号改为与该服务器的数据版本号相同。本发明可以保证客户端与服务器中的网络通讯录中的数据的一致性,并尽量降低客户端与服务器通信次数。
Description
技术领域
本发明涉及互联网的数据同步技术,具体来说,涉及一种在客户端/服务器端实现网络通讯录数据同步的方法。
背景技术
在服务器/客户端的网络结构中,可以采用网络通讯录的方式来存储通讯录数据。所谓网络通讯录,是指一种基于服务器/客户端结构的通讯录。网络通讯录有两份数据,一份保存在服务器端,一份保存在客户端本地(为了提高访问速度或方便离线操作),以服务器的数据为准。
但是,由于网络环境不稳定等因素的影响,数据包在网络传输过程中,有可能会出现丢失数据包的现象。这样就需要借助一些机制来保证网络通讯录在服务器端与在客户端的数据的一致性。
一般在网络通讯录的客户端设有一个序号来标记客户端目前的网络通讯录数据的版本(称之为数据版本号)。用户每次登录通讯录时,就会将客户端当前的数据版本号通知给服务器,服务器也设有一个数据版本号,如果客户端的数据版本低于服务器的数据版本,则表明客户端的数据需要更新;如果客户端的数据版本等于服务器的数据版本,则表明客户端的数据是最新的,不需要去服务器更新数据,而可以直接启用本地的数据。每次在服务器端进行修改数据的操作时,服务器就会把该网络数据版本号改变一次(如增加1),以标记当前服务器最新的数据版本。
如图1所示,示出了一种现有的客户端/服务器结构中在客户端修改网络通讯录数据的流程图。首先,在客户端修改网络通讯录的数据(步骤S10);客户端把修改的网络通讯录的数据打包成数据包发送给服务器(步骤S11);服务器收到来自客户端的数据包后,在服务器的网络通讯录中作相应的修改,如果修改成功,则将网络通讯录的数据版号加1,且该服务器将修改结果通知给客户端(步骤S12);客户端判断所收到的修改结果中表示服务器端是否为修改数据成功(步骤S13);如果为成功,则在客户端的网络通讯录中保存所述修改,并把客户端的数据版本号修改为服务器的数据版本号(步骤S14);如果失败,则在客户端的网络通讯录中放弃保存所述的修改(步骤S15)。
网络通讯录因为有一大批联系人资料,所以有不少操作是对成批数据进行处理的(例如导入或删除一批联系人数据),对成批数据的处理往往会花费比较长的时间。但是,用户的网络环境是不可预知的,当网络环境不稳定或网络速度比较慢时,就有可能出现网络传输的丢包现象。例如,在服务器修改网络通讯录中的数据后,把修改结果返回给客户端的中途,就有可能出现丢包现象。当在服务器端进行多次修改数据的操作时,如果中途某次发生超时,而最后那次的操作却成功时,客户端的数据版本序号用了最后成功返回的数据版本号,这样,服务器就误认为客户端的数据是最新的了,中间的操作超时引起的数据不一致就无法解决了。这样就会引起该网络通讯录在服务器端与客户端的数据不一致。例如:用户在客户端进行删除一批联系人的操作,删除中间某些联系人时发生超时失败,但最后那名联系人却被成功删除了,由于删除中间那些联系人时超时失败,所以客户端还会保存这些联系人的资料,但服务器却已经成功删除了这些联系人。于是,当用户再次请求删除这些还保存在客户端的联系人时,因为服务器已经删除了这些联系人,所以服务器会提示这个联系人已不存在,则在客户端无法直接删除这些联系人信息。
发明内容
本发明所要解决的技术问题在于,为克服现有技术的上述缺点,提供一种实现网络通讯录数据同步的方法,以保证网络通讯录在数据通信时使得客户端的数据与服务器的数据保持一致。
本发明为解决其技术问题所采用的技术方案为:提供一种实现网络通讯录数据同步的方法,包括:(a)在客户端对本地网络通讯录数据的修改操作超时后,且客户端通信层空闲时,客户端向服务器发送同步其网络通讯录数据的请求;(b)服务器接到来自客户端的同步请求后,将其最新的网络通讯录数据传送给该客户端;(c)客户端接收来自服务器的最新网络通讯录数据,更新本地网络通讯录,并将客户端的数据版本号改为与该服务器的数据版本号相同。
在本发明的实现网络通讯录数据同步的方法中,步骤(a)中进一步包括:(a1)在客户端对本地网络通讯录数据的修改操作超时后,启动一个定时器,在该定时周期内检测当前客户端的通信层是否空闲;(a2)若当前客户端的通信层未空闲,则等待至下一个定时周期,继续检测当前客户端的通信层是否空闲,直至当前客户端的通信层空闲;(a3)若当前客户端的通信层空闲,停止该定时器,则客户端向服务器发送同步其网络通讯录数据的请求。
在本发明的实现网络通讯录数据同步的方法中,在步骤(b)与(c)之间进一步包括:(d)客户端在发送同步请求后的预定时间内判断是否收到来自服务器的最新的网络通讯录数据;(e)如果客户端在预定时间内未收到来自服务器的最新的网络通讯录数据,则将记录更新失败次数的计数器加1,并判断该计数器是否大于一个预定值;如果该计数器大于该预定值,则结束流程,并在客户端设置一个强制更新标志;如果该计数器小于或等于该预定值,则客户端向服务器再次发送同步其网络通讯录数据的请求,并转入步骤(b);(f)如果客户端在预定时间内收到来自服务器的最新的网络通讯录数据,则把记录更新失败次数的计数器清零,并转至步骤(c)。
在本发明的实现网络通讯录数据同步的方法中,在步骤(c)之后进一步包括:当客户端再次登录本地网络通讯录时,判断是否存在强制更新标志;如果存在,则客户端向服务器发送同步其网络通讯录数据的请求,并转至步骤(b)。
实施本发明的实现网络通讯录数据同步的方法,具有如下有益效果:当在客户端通信时发生超时后,不是立即去请求更新数据,而是等待其它要修改的数据都处理完了,再去向服务器端请求更新数据,这样可以一次性把客户端网络通讯录中的所有的不一致数据均进行更新,与服务器的网络通讯录中的数据进行同步。这样,既保证了客户端与服务器中的网络通讯录中的数据的一致性,也达到了尽量降低客户端与服务器通信次数的目的。
附图说明
图1是本发明的现有的客户端/服务器结构中在客户端改变本地网络通讯录数据的流程图;
图2是本发明的实现网络通讯录数据同步的方法的流程图。
具体实施方式
本发明提供了一种实现网络通讯录数据同步的方法,旨在即使出现网络环境不好的情形,也能使得客户端与服务器的数据通信质量更稳定,确保网络通讯录的客户端的数据与服务器的数据保持一致。
在本发明中,主要是基于客户端/服务器的网络通讯录,特别是在客户端发生与服务器通信超时后,在适当的时候自动启动向服务器请求更新本地数据的工作(即请求与服务器端的数据同步),使得客户端的数据保持为最新的和准确的。
如图2所示,是在客户端的修改操作发生超时后,本发明实现网络通讯录数据同步的方法的流程图。具体说明如下:首先检测客户端的通信操作是否超时(步骤S20)。当客户端修改操作超时,则启动一个定时器(周期为1至2秒为宜),进行定时检测(步骤S21)。以判断当前客户端的通信层是否空闲,即判断此时通信过程是否结束(S22)。若通信层未空闲,则再等待下一个定时周期再检测通信层是否空闲,直到通信层空闲为止。若在检测期间,再次发生客户端与服务器通信超时,不用另外再处理。
若当前客户端的通信层空闲,说明此时客户端的通信过程已经结束,则停止该定时器,同时启动更新客户端通讯录数据的工作,即请求与服务器端的数据进行同步,服务器接到该请求后,直接将其网络通讯录传送给该客户端(步骤S23)。
客户端在发送同步请求后预定时间内判断该次更新是否成功?即判断是否收到来自服务器的最新的网络通讯录(步骤S24)。
若客户端的通信层接收到来自服务器的最新的网络通讯录,则其将该最新的数据保存到本地的网络通讯录中,同时更新界面层的数据(如把客户端的数据版本号改为与该服务器端的数据版号相同),并把记录更新失败次数的计数器清零(步骤S27)。
若客户端在预定时间内未收到来自服务器端的最新信息,则表示在更新的过程中发生客户端通信超时,此次更新请求失败,将记录更新失败次数的计数器加1(步骤S25)。
判断该计数器中失败次数是否已经大于一个预定值N,该预定值N在5次以下为宜(步骤S26)。如果计数器中,失败次数已经大于该预定值N,很有可能是用户当前的网络环境很差(不稳定或已经断开网络),则表示本次更新数据过程失败,则本次登录内不再尝试重新更新数据,此时会在客户端设置一个强制更新标志。当客户端下一次登录该网络通讯录时,判断是否存在强制更新标志,如果存在该标志,则要强行去服务器更新一次数据,这样可以保证在客户端用到的数据是最新最准确的(步骤S28)。如果该计数器中失败次数小于或等于N,则流程转至步骤S23,继续请求与服务器端的数据进行同步,直到更新成功或失败次数大于N为止。
本发明提供的实现网络通讯录数据同步的方法,当在客户端通信时发生超时后,不是立即去请求更新数据,而是等待其它要修改的数据都处理完了,再去向服务器端请求更新数据,这样可以一次性把客户端网络通讯录中的所有的不一致数据均进行更新,与服务器的网络通讯录中的数据进行同步。这样,既保证了客户端与服务器中的网络通讯录中的数据的一致性,也达到了尽量降低客户端与服务器通信次数的目的。
Claims (4)
1、一种实现网络通讯录数据同步的方法,其特征在于,包括:
(a)在客户端对本地网络通讯录数据的修改操作超时后,且客户端通信层空闲时,客户端向服务器发送同步其网络通讯录数据的请求;
(b)服务器接到来自客户端的同步请求后,将其最新的网络通讯录数据传送给该客户端;
(c)客户端接收来自服务器的最新网络通讯录数据,更新本地网络通讯录,并将客户端的数据版本号改为与该服务器的数据版本号相同。
2、如权利要求1所述的实现网络通讯录数据同步的方法,其特征在于,步骤(a)中进一步包括:
(a1)在客户端对本地网络通讯录数据的修改操作超时后,启动一个定时器,在定时周期内检测当前客户端的通信层是否空闲;
(a2)若当前客户端的通信层未空闲,则等待至下一个定时周期,继续检测当前客户端的通信层是否空闲,直至当前客户端的通信层空闲;
(a3)若当前客户端的通信层空闲,停止该定时器,则客户端向服务器发送同步其网络通讯录数据的请求。
3、如权利要求1或2所述的实现网络通讯录数据同步的方法,其特征在于,在步骤(b)与(c)之间进一步包括:
(d)客户端在发送同步请求后的预定时间内判断是否收到来自服务器的最新的网络通讯录数据;
(e)如果客户端在预定时间内未收到来自服务器的最新的网络通讯录数据,则将记录更新失败次数的计数器加1,并判断该计数器是否大于一个预定值;如果该计数器大于该预定值,则结束流程,并在客户端设置一个强制更新标志;如果该计数器小于或等于该预定值,则客户端向服务器再次发送同步其网络通讯录数据的请求,并转入步骤(b);
(f)如果客户端在预定时间内收到来自服务器的最新的网络通讯录数据,则把记录更新失败次数的计数器清零,并转至步骤(c)。
4、如权利要求3所述的实现网络通讯录数据同步的方法,其特征在于,在步骤(c)之后进一步包括:
当客户端再次登录本地网络通讯录时,判断是否存在强制更新标志;如果存在,则客户端向服务器发送同步其网络通讯录数据的请求,并转至步骤(b)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100601687A CN100469016C (zh) | 2006-04-04 | 2006-04-04 | 一种实现网络通讯录数据同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100601687A CN100469016C (zh) | 2006-04-04 | 2006-04-04 | 一种实现网络通讯录数据同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101051925A CN101051925A (zh) | 2007-10-10 |
CN100469016C true CN100469016C (zh) | 2009-03-11 |
Family
ID=38783136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100601687A Active CN100469016C (zh) | 2006-04-04 | 2006-04-04 | 一种实现网络通讯录数据同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100469016C (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469036A (zh) * | 2010-11-02 | 2012-05-23 | 腾讯科技(深圳)有限公司 | 一种处理用户信息的方法和装置 |
CN103188321A (zh) * | 2011-12-30 | 2013-07-03 | 上海博泰悦臻电子设备制造有限公司 | 基于云服务器同步信息的方法及系统 |
CN103248655B (zh) * | 2012-02-10 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 名片信息更新的方法和装置 |
CN103379115B (zh) * | 2012-04-28 | 2018-01-05 | 盛乐信息技术(上海)有限公司 | 一种本地存储与网络存储的数据同步方法和设备 |
CN102740339B (zh) * | 2012-06-08 | 2015-09-09 | 大唐移动通信设备有限公司 | 基站通信方法及基站、核心网通信方法及核心网装置 |
US8635373B1 (en) * | 2012-09-22 | 2014-01-21 | Nest Labs, Inc. | Subscription-Notification mechanisms for synchronization of distributed states |
CN103399795A (zh) * | 2013-06-28 | 2013-11-20 | 贵阳朗玛信息技术股份有限公司 | 通讯录同步方法及装置 |
CN105812528B (zh) * | 2014-12-31 | 2019-04-09 | 展讯通信(天津)有限公司 | 移动终端通讯录变更方法及装置 |
CN104935656A (zh) * | 2015-06-15 | 2015-09-23 | 北京奇虎科技有限公司 | 通讯录自适配方法、装置及系统 |
CN105208177B (zh) * | 2015-09-14 | 2019-02-12 | 小米科技有限责任公司 | 通讯录更新方法及装置 |
CN105827699A (zh) * | 2016-03-16 | 2016-08-03 | 心动网络股份有限公司 | 数据同步方法 |
CN105959420A (zh) * | 2016-07-15 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 多客户端元数据同步更新方法及系统 |
CN106230927A (zh) * | 2016-07-29 | 2016-12-14 | 努比亚技术有限公司 | 联系人同步方法、装置及系统 |
CN107454174A (zh) * | 2017-08-14 | 2017-12-08 | 安徽简道科技有限公司 | 实现网络通讯录数据同步的方法 |
CN108768828B (zh) * | 2018-05-23 | 2021-04-06 | 广东微校信息科技有限公司 | 一种调整本地通讯录并映射微信企业号通讯录的同步方法 |
-
2006
- 2006-04-04 CN CNB2006100601687A patent/CN100469016C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101051925A (zh) | 2007-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100469016C (zh) | 一种实现网络通讯录数据同步的方法 | |
JP4732661B2 (ja) | クライアントのデータベースとサーバーのデータベースとを同期させる方法 | |
US9170892B2 (en) | Server failure recovery | |
CN105302676B (zh) | 一种分布式文件系统的主备机制数据传输方法及装置 | |
US20100077024A1 (en) | Method for transmitting data transmitted incompletely between server and client | |
CN109491694A (zh) | 应用更新方法和装置、数据推送方法和装置 | |
CN103905397A (zh) | 数据同步方法和系统 | |
WO2020108544A1 (zh) | 同步缓存数据的方法、装置和系统 | |
CN107623703B (zh) | 全局事务标识gtid的同步方法、装置及系统 | |
CN112367149B (zh) | 消息获取方法、装置、设备及存储介质 | |
CN101207580A (zh) | 即时通信平台和业务平台同步增删联系人的方法及系统 | |
CN105450682A (zh) | 一种用于数据同步保存、向客户端同步数据的方法、装置和系统 | |
CN102625156B (zh) | 一种信息同步的方法和系统 | |
CN102594874B (zh) | 一种同步处理方法和装置 | |
CN112084159B (zh) | 一种基于蓝牙通信的文件同步系统和同步方法 | |
US7159005B1 (en) | Methods, systems and computer program products for restartable multiplexed file transfers | |
CN100499637C (zh) | 一种通讯系统中获取信息的方法 | |
CN113438275A (zh) | 数据迁移方法、装置、存储介质及数据迁移设备 | |
US20160110285A1 (en) | Method of controlling data writing to persistent storage device | |
CN107786650A (zh) | 一种存储介质和管理策略的同步方法、装置及系统 | |
CN106936940A (zh) | 一种dhcp服务器中租约信息的备份方法及系统 | |
JP2004171278A (ja) | データの複製管理方法、ノードにおける情報処理方法、ノード、データの複製管理プログラム、および該プログラムを記載した記録媒体 | |
CN1996871A (zh) | 一种数据同步方法 | |
EP4237962B1 (en) | Checking state consistency in a log replication configuration | |
CN110300140A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |