CN103825918A - 数据同步方法、终端设备、服务器和系统 - Google Patents
数据同步方法、终端设备、服务器和系统 Download PDFInfo
- Publication number
- CN103825918A CN103825918A CN201210465097.4A CN201210465097A CN103825918A CN 103825918 A CN103825918 A CN 103825918A CN 201210465097 A CN201210465097 A CN 201210465097A CN 103825918 A CN103825918 A CN 103825918A
- Authority
- CN
- China
- Prior art keywords
- terminal equipment
- application data
- version number
- user
- operation log
- 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.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据同步方法、终端设备、服务器和系统,属于网络技术领域。所述方法包括:服务器接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;所述服务器对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据。采用本发明实施例提供的技术方案,通过使用用户标识以及中间格式的数据,扩展了数据同步的范围,避免了现有技术中仅对单一应用进行同步而造成的限制,提供了同步与一致的数据访问体验。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种数据同步方法、终端设备、服务器和系统。
背景技术
随着终端技术的发展,终端设备上可以安装各种各样的应用程序,根据应用程序的运行环境,我们将终端设备上所安装的应用程序称为本地应用程序,本地应用程序基于各计算设备专有的编程语言、程序库运行。
对于安装在终端设备上本地应用程序来说,它的数据经常会存储在本地,因而当用户切换到一台新的终端设备时,老的数据就必须相应地同步过来,否则就会造成数据不一致的问题。现有技术中通过云笔记的方式,使得各个不同的终端设备可以通过访问云笔记,以获取到完全一致的数据。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于现有技术仅限于记录笔记,适用范围太窄,其他类型的应用无法从中获益,限制了用户的使用。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据同步方法、终端设备、服务器和系统。所述技术方案如下:
一种数据同步方法,所述方法包括:
服务器接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;
所述服务器对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;
所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据。
所述服务器对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据,包括:
提取所述第一同步请求包中的所述终端设备的用户标识以及所述终端设备的操作日志;
从所述服务器的综合基本信息表中,获取所述终端设备的用户标识对应的应用数据版本号,并更新所述应用数据版本号;
合并所述第一终端的用户标识、更新后的应用数据版本号和所述终端设备的操作日志,得到中间格式的同步数据。
所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据之后,所述方法还包括:
所述服务器向所述终端设备发送第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据,包括:
根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中。
所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据,包括:
根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中;
解析所述终端设备的操作日志,根据所述操作日志中的操作类型,将所述操作日志中的数据条目名称和数据条目实际内容写入应用数据表。
一种数据同步方法,所述方法包括:
服务器接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
获取所述终端设备的用户标识和应用数据版本号对应的操作日志;
所述服务器向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志。
获取所述终端设备的用户标识和应用数据版本号对应的操作日志,包括:
根据所述用户标识,从综合基本信息表中查询当前应用数据版本号;
当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号不相等时,根据所述用户标识和所述第二同步请求携带的应用数据版本号,从应用数据操作日志表中获取与所述用户标识相应且应用数据版本号大于所述第二同步请求携带的应用数据版本号的操作日志;
相应地,所述第二同步响应包还携带所述操作日志的应用数据版本号。
所述方法还包括:当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号相等时,所述服务器向所述终端设备发送第三同步响应包,所述第三同步响应包用于将当前的同步状态通知所述终端设备。
一种数据同步方法,所述方法包括:
终端设备生成应用数据;
终端设备将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;
当所述终端设备符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
向服务器发送第一同步请求包之后,所述方法还包括:
接收所述服务器发送的第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
一种数据同步方法,所述方法包括:
终端设备向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
接收所述服务器返回的响应包,并根据所述响应包进行数据同步,包括:
当所述响应包携带应用数据版本号时,比较终端设备本地的应用数据版本号和响应包携带的应用数据版本号,当所述终端设备本地的应用数据版本号和响应包携带的应用数据版本号不相等时,提取所述响应包中的操作日志;
将提取的操作日志写入应用数据表,并更新终端设备本地的应用数据版本号。
一种服务器,所述服务器包括:
接收模块,用于接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;
格式转换模块,用于对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;
保存模块,用于根据所述终端设备的用户标识,保存所述中间格式的同步数据。
所述格式转换模块包括:
提取单元,用于提取所述第一同步请求包中的所述终端设备的用户标识以及所述终端设备的操作日志;
更新单元,用于从所述服务器的综合基本信息表中,获取所述终端设备的用户标识对应的应用数据版本号,并更新所述应用数据版本号;
同步数据获取单元,用于合并所述第一终端的用户标识、更新后的应用数据版本号和所述终端设备的操作日志,得到中间格式的同步数据。
所述服务器还包括:
响应模块,用于向所述终端设备发送第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
所述保存模块具体用于根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中。
所述保存模块具体用于根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中;解析所述终端设备的操作日志,根据所述操作日志中的操作类型,将所述操作日志中的数据条目名称和数据条目实际内容写入应用数据表。
一种服务器,所述服务器包括:
接收模块,用于接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
获取模块,用于获取所述终端设备的用户标识和应用数据版本号对应的操作日志;
发送模块,用于向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志。
所述获取模块具体用于根据所述用户标识,从综合基本信息表中查询当前应用数据版本号;当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号不相等时,根据所述用户标识和所述第二同步请求携带的应用数据版本号,从应用数据操作日志表中获取与所述用户标识相应且应用数据版本号大于所述第二同步请求携带的应用数据版本号的操作日志;
相应地,所述第二同步响应包还携带所述操作日志的应用数据版本号。
所述发送模块还用于当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号相等时,所述服务器向所述终端设备发送第三同步响应包,所述第三同步响应包用于将当前的同步状态通知所述终端设备。
一种终端设备,所述终端设备包括:
生成模块,用于生成应用数据;
记录模块,用于将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;
发送模块,用于当符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
所述终端设备还包括:
接收模块,用于接收所述服务器发送的第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
一种终端设备,所述终端设备包括:
发送模块,用于向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
接收模块,用于接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
所述接收模块具体用于当所述响应包携带应用数据版本号时,比较终端设备本地的应用数据版本号和响应包携带的应用数据版本号,当所述终端设备本地的应用数据版本号和响应包携带的应用数据版本号不相等时,提取所述响应包中的操作日志;将提取的操作日志写入应用数据表,并更新终端设备本地的应用数据版本号。
一种数据同步系统,包括:
服务器,用于接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;根据所述终端设备的用户标识,保存所述中间格式的同步数据;
终端设备,用于生成应用数据;将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;当符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
一种数据同步系统,包括:
服务器,用于接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;获取所述终端设备的用户标识和应用数据版本号对应的操作日志;向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志;
终端设备,用于向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
本发明实施例提供的一种数据同步方法、终端设备、服务器和系统,通过服务器接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;所述服务器对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据。采用本发明实施例提供的技术方案,通过使用用户标识以及中间格式的数据,扩展了数据同步的范围,避免了现有技术中仅对单一应用进行同步而造成的限制,提供了在不同终端设备上同步与一致的应用程序使用体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据同步方法的流程图;
图2是本发明实施例提供的一种数据同步方法的流程图;
图3是本发明实施例提供的一种数据同步方法的流程图;
图4是本发明实施例提供的一种数据同步方法的流程图;
图5是本发明实施例提供的一种数据同步方法的流程图;
图6是本发明实施例提供的一种数据同步方法的流程图;
图7是本发明实施例提供的一种服务器的结构示意图;
图8是本发明实施例提供的一种服务器的结构示意图;
图9是本发明实施例提供的一种终端设备的结构示意图;
图10是本发明实施例提供的一种终端设备的结构示意图;
图11是本发明实施例提供的一种数据同步系统的结构示意图;
图12是本发明实施例提供的一种数据同步系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种数据同步方法的流程图。该实施例的执行主体为服务器,该服务器可以为一独立的提供同步服务的服务器,还可以为作为云端的服务器集群或服务器的功能模块,该图1所示实施例包含终端设备向服务器上传操作日志的过程,参见图1,所述方法包括:
101、服务器接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;
在本发明实施例中,终端设备与云端服务器之间可以依靠通讯协议如HTTP进行通讯,该通讯协议涉及两个方面:一个是上传协议,另一个是下达协议(在后续实施例中详述)。其中,上传协议用/checkin这个URI表示。它的请求包使用POST方法,对于第一同步请求包来说,该第一同步请求包用于向服务器上传操作日志,其请求头是一个Uid字段,该字段为用户标识,而请求体是若干条应用程序的操作日志。而该第一同步请求包所对应的第一同步响应包仅包含一个响应头Version字段,其内容是云端服务器返回的最新的应用数据版本号。表1为该第一同步请求包和第一同步响应包的格式。
表1
102、所述服务器对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;
服务器将接收到的各个应用程序的操作日志转换为中间格式,进行统一保存,使得各个应用程序的操作能够在服务器上备份,以便后续同步。
103、所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据。
该用户标识可以为用户编号和/或应用程序标识,可以由服务器在注册阶段分配,该用户标识用于唯一标识该终端设备上进行数据同步的应用程序和该终端设备的用户。
采用本发明实施例提供的技术方案,通过使用用户标识以及中间格式的数据,扩展了数据同步的范围,避免了现有技术中仅对单一应用进行同步而造成的限制,提供了在不同终端设备上同步与一致的应用程序使用体验。
可选地,在图1所示实施例的技术方案基础上,步骤102“所述服务器对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据”,具体包括:
102a、提取所述第一同步请求包中的所述终端设备的用户标识以及所述终端设备的操作日志;
优选地,从第一同步请求包的请求头中提取用户标识,并从第一同步请求包的请求体中提取终端设备的操作日志。
102b、从所述服务器的综合基本信息表中,获取所述终端设备的用户标识对应的应用数据版本号,并更新所述应用数据版本号,所述综合基本信息表用于存储用户标识和应用数据版本号;
优选地,云端服务器的数据结构包括综合基本信息表,综合基本信息表用于存储用户标识和应用数据版本号,它可以包括Uid和Version两列,分别用于表示用户标识和应用数据版本号,该综合基本信息表可以以用户标识和/或应用数据版本号为索引进行检索,根据用户标识获取相应的应用数据版本号,或是根据应用数据版本号获取相应的用户标识,或是根据用户标识和应用数据版本号进行数据定位,以进行修改或其他处理。表2为该综合基本信息表的格式示例,其中的Uid和Version的具体格式可以为任一格式,该表2仅是其中一个示例。
表2
Uid | Version |
1011 | 2012.1.1 |
1012 | 2011.10.1 |
102c、合并所述第一终端的用户标识、更新后的应用数据版本号和所述终端设备的操作日志,得到中间格式的同步数据。
其中,中间格式的同步数据可以存于综合应用数据操作日志表,该综合应用数据操作日志表用于存储用户在终端设备上的应用数据操作日志,它可以包括Uid、Version和Logs三列,分别用于存储用户标识、应用数据版本号和应用数据操作日志的集合。该综合应用数据操作日志表可以以用户标识和/或应用数据版本号为索引进行检索,根据用户标识获取相应的应用数据版本号和应用数据操作日志,或是根据应用数据版本号获取相应的用户标识和应用数据操作日志,或是根据用户标识和应用数据版本号获取相应的应用数据操作日志。表3为该综合应用数据操作日志表的格式示例,其中的Uid、Versioin和Logs的具体格式可以为任一格式,该表3仅是其中一个示例。
表3
Uid | Version | Logs |
1011 | 2012.1.1 | 操作日志1、操作日志2……操作日志n |
1012 | 2011.10.1 | 操作日志1’、操作日志2’……操作日志n’ |
可选地,在图1所示实施例的技术方案基础上,步骤103“所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据”之后,所述方法还包括:所述服务器向所述终端设备发送第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
其中,该第一同步响应包的具体格式可以参考表1中的格式,该第一同步响应包用于向终端设备返回最新的应用数据版本号,该第一同步响应包包括响应头和响应体,响应头用于携带服务器向终端设备返回的最新的应用数据版本号,而响应体可以为空。
可选地,在图1所示实施例的技术方案基础上,步骤103“所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据”,包括:根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中。
在本发明实施例中,综合应用数据操作日志表中保存有多个用户标识对应的同步数据,因此,在保存同步数据时,需要根据其用户标识,将该同步数据对应保存入综合应用数据操作日志表中的相应存储位置。
可选地,在图1所示实施例的技术方案基础上,步骤103“所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据”,包括:
103a、根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中;
103b、解析所述终端设备的操作日志,根据所述操作日志中的操作类型,将所述操作日志中的数据条目名称和数据条目实际内容写入综合应用数据表。
在本发明实施例中,综合应用数据表用于存储用户在终端设备上的应用数据,它包括Uid、Key和Value三列,其中Uid表示用户标识,Key与Value用于记录着用户在使用应用程序中产生的个人信息,通常Key字段是字符串型,用以表示数据条目的名称,而Value字段是字节数组型,用以存放数据条目的实际内容。该综合应用数据表是用户应用数据的一个全集,用户可以用户标识作为索引,在该综合应用数据表中查询该用户标识对应的全部应用数据。主要是为了让用户能方便地查询到自己的全部应用数据。
表4为该综合应用数据表的格式示例,其中的Uid、Key和Value的具体格式可以为任一格式,该表4仅是其中一个示例。
表4
Uid | Key | Value |
1011 | 图书1阅读进度 | 第2章,第120字处 |
1012 | 图书2阅读进度 | 第3章,第80字处 |
采用本发明实施例提供的技术方案,通过使用用户标识以及中间格式的数据,扩展了数据同步的范围,避免了现有技术中仅对单一应用进行同步而造成的限制,提供了在不同终端设备上同步与一致的应用程序使用体验。
图2是本发明实施例提供的一种数据同步方法的流程图。该实施例的执行主体为服务器,该服务器可以为一独立的提供同步服务的服务器,还可以为服务器集群或服务器的功能模块,该实施例包括服务器向终端设备下达数据的过程,参见图2,该方法包括:
201、服务器接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
在本发明实施例中,终端设备与云端服务器之间可以依靠通讯协议如HTTP进行通讯,其中,下达协议用/checkout这个URI表示。它的请求包使用GET方法,请求头包括一个Version字段,用于以表示终端设备当前的应用数据版本号,此外还有一个Uid字段,用于标识用户标识。它的响应包包含一个响应头Version字段用以存放云端的应用数据的最新版本号,同时还有一个响应体用以存放云端服务器下发的若干条操作日志,但在某些情况下这个响应体也可能没有。表5为该第二同步请求包和第二同步响应包的格式。
表5
202、获取所述终端设备的用户标识和应用数据版本号对应的操作日志;
具体地,根据所述终端设备的用户标识和应用数据版本号,获取对应的中间格式的同步数据,对该中间格式的同步数据进行格式转换,得到操作日志。
203、所述服务器向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志。
采用本发明实施例提供的技术方案,通过使用用户标识以及中间格式的数据,扩展了数据同步的范围,使得不同终端设备均可以与服务器进行操作日志的同步,避免了现有技术中仅对单一应用进行同步而造成的限制,提供了在不同终端设备上同步与一致的应用程序使用体验。
可选地,在图2所示实施例的技术方案的基础上,该步骤202“获取所述终端设备的用户标识和应用数据版本号对应的操作日志”,包括:
202a、根据所述用户标识,从综合基本信息表中查询当前应用数据版本号;
由于本次同步是终端设备向服务器请求同步数据,因此,需要确定终端设备上此时的操作日志与服务器上此时的操作日志是否同步,而该确定的标准是根据应用数据版本号,根据用户标识,从服务器的综合基本信息表中,查询该用户标识对应的应用数据版本号。
202b、当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号不相等时,根据所述用户标识和所述第二同步请求携带的应用数据版本号,从综合应用数据操作日志表中获取与所述用户标识相应且应用数据版本号大于所述第二同步请求携带的应用数据版本号的操作日志;
当终端设备的应用数据版本号和服务器的应用数据版本号不相等时,可以认为服务器端的操作日志与终端设备的操作日志当前是不同步的,而由于服务器上可能保存有多个应用数据版本号的操作日志,因此,获取综合应用数据操作日志表中与所述用户标识相应且应用数据版本号大于所述第二同步请求携带的应用数据版本号的操作日志。如,终端设备发送的第二同步请求的应用数据版本号为100,而服务器端最新的应用数据版本号为130,则认为数据不同步,服务器获取从版本号为100~130之间的所有应用数据版本号对应的操作日志。
相应地,所述第二同步响应包还携带所述操作日志的应用数据版本号。
需要说明的是,当前第二同步响应包携带的应用数据版本号为服务器上最新的应用数据版本号。
可选地,在图2所示实施例的技术方案的基础上,所述方法还包括:当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号相等时,所述服务器向所述终端设备发送第三同步响应包,所述第三同步响应包用于将当前的同步状态通知所述终端设备。当应用数据版本号相等,可以认为终端设备与服务器上的数据处于同步状态,因此无需进行操作日志的传输。
图3是本发明实施例提供的一种数据同步方法的流程图。参见图3,该方法包括:
301、终端设备生成应用数据;
应用数据通常是一个Key与Value的表格,如表6所示,用于记录用户在使用应用程序中产生的个人信息。通常Key字段是字符串型,用以表示数据条目的名称,而Value字段是字节数组型,用以存放数据条目的实际内容。
表6
Key | Value |
图书1阅读进度 | 第5章,第120字处 |
图书2阅读进度 | 第3章,第80字处 |
302、终端设备将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;
应用数据的操作日志用于记录用户对应用数据进行了哪些操作,它可以用一个三元组(Key,Operate,Value)来表示一条操作日志。其中,Key与Value的含义与步骤301中的一致,Operate分为Add、Del和Modify三种类型,分别表示新增、删除和修改三种操作。特别地,对于Del操作没有Value,为了统一起见,把Del操作相关的Value记为None。
优选地,同一个Key的前后两条应用数据操作日志需要进行化简合并,将对于同一数据条目的同类型操作叠加,相反类型的抵消,相似类型的根据具体类型进行合并,例如前一条日志是(Key1,Add,Value1),后一条日志是(Key1,Del,None),那么化简合并的结果是删除掉原日志(Key1,Add,Value1)。类似地,例如前一条日志是(Key1,Add,Value1),后一条日志是(Key1,Modify,Value2),那么化简合并的结果是(Key1,Add,Value2)。同理,可推知表7其余的情况,其中打叉的情况表示不适用或无需考虑。
表7
需要说明的是,终端数据结构包括三个数据库表:其一是基本信息表,其二是应用数据操作日志表,其三是应用数据表。
基本信息表包括Uid和Version两列,分别表示用户标识和应用数据版本号。这个表只有一行数据,也就是这个表只存储Uid和Version两个数据,因而也可以用文件等更简单的存储形式来代替数据库表的使用。Version记录了用户在本终端上的应用数据的当前版本号,默认为0,即初始无数据的状态,表8为该终端设备的基本信息表的格式示例。
表8
Uid | Version |
1011 | 2012.1.1 |
应用数据操作日志表包括Key、Operate和Value三列,其含义与步骤302中的相同,它用来记录应用数据操作日志。
应用数据表包括Key和Value两列,其含义与步骤301中的完全相同,它用来存放终端的应用数据。
303、当所述终端设备符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
可选地,在图3所示实施例的技术方案的基础上,步骤303中的“向服务器发送第一同步请求包”之后,所述方法还包括:接收所述服务器发送的第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。在本发明实施例中,根据接收到的第一同步响应包所携带的更新后的应用数据版本号,对终端设备上的应用数据版本号进行更新。
图4是本发明实施例提供的一种数据同步方法的流程图。参见图4,该方法包括:
401、终端设备向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
该第二同步请求包的具体格式可以参见表5,在此不再赘述。
该第二同步请求包的发送可以由用户终端设备触发,或是终端设备每隔一段时长即触发,该时长可以由用户根据使用需要进行调整。
402、接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
该响应包有以下两种情况:(1)终端设备与服务器数据不同步,则该响应包的响应体携带服务器返回的操作日志;(2)终端设备与服务器数据同步,则该响应包的响应体为空。
可选地,在图4所示实施例的技术方案的基础上,步骤402“接收所述服务器返回的响应包,并根据所述响应包进行数据同步”,包括:
402a、当所述响应包携带应用数据版本号时,比较终端设备本地的应用数据版本号和响应包携带的应用数据版本号,当所述终端设备本地的应用数据版本号和响应包携带的应用数据版本号不相等时,提取所述响应包中的操作日志;
为了保证数据同步的准确性,在终端设备接收到响应包时,可以对其携带的应用数据版本号和本地的应用数据版本号进行比较,以判断是否提取响应包中的操作日志。
402b、将提取的操作日志写入应用数据表,并更新终端设备本地的应用数据版本号。在更新了操作日志和应用数据版本号后,实现了该终端设备与服务器上的数据同步。
图5是本发明实施例提供的一种数据同步方法的流程图。该实施例中的交互主体为终端设备和提供数据同步服务的服务器,参见图5,该发明实施例在上述实施例的基础上,对该数据同步方法进行了具体描述,该实施例具体包括:
501、终端设备生成应用数据;
对于终端设备来说,当应用程序运行时,终端设备根据用户对应用程序进行的操作,生成应用数据。在本发明实施例中,仅以对一个应用程序生成应用数据为例进行说明,而在实际应用中,该终端设备可以针对多个应用程序分别生成其相应的应用数据,各个应用程序的应用数据可以根据其用户标识区分,该用户标识可以为即时通讯用户名或用户编号等。
502、终端设备将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;
优选地,在将操作日志记录在应用数据操作日志表中时,对该操作日志和之前的操作日志进行化简合并,具体地,将对于同一数据条目的同类型操作叠加,相反类型的抵消,相似类型的根据具体类型进行合并,也即是对同一Key的操作日志进行化简合并。
在本发明实施例中,仅以对一个应用程序的操作日志保存为例进行说明,而在实际应用中,该终端设备可以针对多个应用程序分别生成其相应的应用数据进行记录和保存,在应用数据操作日志表中,按照用户标识对各个应用程序的操作日志进行保存。
503、当所述终端设备符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;
具体地,该步骤503判断该终端设备是否符合数据同步条件,当符合时,向服务器发送第一同步请求包,当不符合时,不进行处理。其中,该数据同步条件可以为:应用程序关闭(如用户退出应用程序)、到达数据同步预设时间(如预设每隔一段时长进行数据同步),用户触发终端设备与服务器之间的数据同步等。
其中,请求头Uid字段的值取自基本信息表的Uid字段的值,请求体取自应用数据操作日志表中保存的操作日志。
其中,该服务器通常可以是一个HTTP应用服务器,用于支撑网络处理并承载业务逻辑,如Resin和Tomcat等。
进一步地,清空应用数据操作日志表的全部操作日志,以备后面继续使用。
504、当服务器接收到终端设备发送的第一同步请求包,提取所述第一同步请求包中的所述终端设备的用户标识以及所述终端设备的操作日志;
其中,该提取所述第一同步请求包中的所述终端设备的用户标识以及所述终端设备的操作日志具体可以为:从请求包中拿出请求头Uid字段和请求体数据,分别赋值给变量u和b。其中,变量u通常是字符串型,变量b通常是字节数组型。
505、从所述服务器的综合基本信息表中,获取所述终端设备的用户标识对应的应用数据版本号,并更新所述应用数据版本号,所述综合基本信息表用于存储用户标识和应用数据版本号;
该获取和更新具体包括:根据变量u(此时变量u等于用户标识Uid字段),从服务器的综合基本信息表中查询出相应的Version字段,并将查询到的Version字段赋值给变量v。变量v通常是整型,默认为0。给变量v累加1,即v=v+1,然后用它更新基本信息表的Version字段。
506、合并所述第一终端的用户标识、更新后的应用数据版本号和所述终端设备的操作日志,得到中间格式的同步数据;
具体地,该合并可以为将变量u、v和b这三个值作为一条记录,该记录即为中间格式的同步数据。
507、根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中;
基于步骤506中的具体过程,将该记录对应写入向综合应用数据操作日志表。
508、解析所述终端设备的操作日志,根据所述操作日志中的操作类型,将所述操作日志中的数据条目名称和数据条目实际内容写入综合应用数据表;
其中,数据条目名称可以为应用程序中操作对象的名称,如用户使用阅读软件读图书1,则该数据条目名称可以为图书1阅读进度。
数据条目实际内容可以为操作后的结果,如对于图书1阅读进度来说,其实际内容为第1章第15页。
由于变量b的值为终端设备发送的操作日志,因此从变量b中逐一解析出每条操作日志的内容(Key,Operate,Value),并根据操作类型(Operate的类型)把应用数据的Key和Value写入到综合应用数据表中。
509、所述服务器向所述终端设备发送第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号;
其中,响应头Version字段的值取变量v的值,即为更新后的应用数据版本号。
510、终端设备接收所述服务器发送的第一同步响应包,根据所述第一同步响应包对应用数据版本号进行更新,所述第一同步响应包携带更新后的应用数据版本号。
具体地,终端设备从云端服务器读取/checkin协议的响应包,获取响应头Version的值,并用它更新基本信息表的Version字段。
采用本发明实施例提供的技术方案,通过使用用户标识以及中间格式的数据,扩展了数据同步的范围,避免了现有技术中仅对单一应用进行同步而造成的限制,提供了在不同终端设备上同步与一致的应用程序使用体验。终端设备与服务器之间的交互仅需简单的两条协议,同时终端与云端各自的逻辑流程也简单易行,而足够的简单带来了较大范围的通用性。且,由于终端与服务器之间相互传递的是操作日志,这就意味着只需传递有变化的数据即可,而无需传递全部数据,这将会降低用户的网络流量消耗,从而也提高了通讯的性能。
图6是本发明实施例提供的一种数据同步方法的流程图。该实施例中的交互主体为终端设备和提供数据同步服务的服务器,参见图6,该发明实施例在上述实施例的基础上,对该数据同步方法进行了具体描述,该实施例具体包括:
601、终端设备向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
可选地,该步骤601之前,可以判断该终端设备是否符合数据同步条件,当符合时,向服务器发送第二同步请求包,当不符合时,不进行处理。其中,该数据同步条件可以为:应用程序关闭(如用户退出应用程序)、到达数据同步预设时间(如预设每隔一段时长进行数据同步),用户触发终端设备与服务器之间的数据同步等。
具体地,终端设备在需要进行数据同步时,读取基本信息表的Version字段,并赋值给变量v1。变量v1通常是整型。按照/checkout协议拼装请求包并发送给服务器。其中,请求头Version字段的值取变量v1的值,请求头Uid字段的值取自基本信息表的Uid字段的值。
602、当服务器接收终端设备发送的第二同步请求包时,根据所述用户标识,从基本信息表中查询当前应用数据版本号;
具体地,从该第二同步请求包中拿出请求头Version和Uid,并分别赋值给变量v1和u。其中,变量v1通常是整型,变量u通常是字符串型。根据变量u,从综合基本信息表中查询出Version字段,并赋值给变量v2,变量v2通常是整型,默认为0。同时,定义变量b,用以存放响应体数据,它通常是字节数组型,其初始值可以为空。
一般地,由于第二同步请求包用于向服务器请求数据,则其请求体为空。
603、当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号不相等时,根据所述用户标识和所述第二同步请求携带的应用数据版本号,从综合应用数据操作日志表中获取与所述用户标识相应且应用数据版本号大于所述第二同步请求携带的应用数据版本号的操作日志;
具体地,服务器判断变量v1和v2是否相等,如果是,结束,如果否,则以Uid字段的值等于变量u的值并且Version字段的值大于变量v1的值为查询条件,从综合应用数据操作日志表中查询出全部符合条件的应用数据操作日志,并把他们存放到变量b中。
604、所述服务器向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志。
相应地,所述第二同步响应包还携带所述操作日志的应用数据版本号。
其中,第二同步响应包的响应头Version字段的值取变量v2的值,响应体取变量b的值。
另外,当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号相等时,则此时服务器的综合应用数据操作日志表中没有符合条件的操作日志,所述服务器向所述终端设备发送第三同步响应包,所述第三同步响应包用于将当前的同步状态通知所述终端设备。
605、当终端设备接收所述服务器返回的响应包,当所述响应包携带应用数据版本号时,比较终端设备本地的应用数据版本号和响应包携带的应用数据版本号,当所述终端设备本地的应用数据版本号和响应包携带的应用数据版本号不相等时,提取所述响应包中的操作日志;
具体地,提取响应包中的操作日志包括:从变量b中逐一解析出每条操作日志的内容(Key,Operate,Value)。
606、将提取的操作日志写入应用数据表,并更新终端设备本地的应用数据版本号。
根据操作日志的操作类型把应用数据的Key和Value写入到应用数据表中。用变量v2的值更新基本信息表的Version字段。
采用本发明实施例提供的技术方案,通过使用用户标识以及中间格式的数据,扩展了数据同步的范围,避免了现有技术中仅对单一应用进行同步而造成的限制,提供了在不同终端设备上同步与一致的应用程序使用体验。终端设备与服务器之间的交互仅需简单的两条协议,同时终端与云端各自的逻辑流程也简单易行,而足够的简单带来了较大范围的通用性。且,由于终端与服务器之间相互传递的是操作日志,这就意味着只需传递有变化的数据即可,而无需传递全部数据,这将会降低用户的网络流量消耗,从而也提高了通讯的性能。
图7是本发明实施例提供的一种服务器的结构示意图。参见图7,所述服务器包括:
接收模块71,用于接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;
格式转换模块72,用于对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;
保存模块73,用于根据所述终端设备的用户标识,保存所述中间格式的同步数据。
可选地,所述格式转换模块72包括:
提取单元,用于提取所述第一同步请求包中的所述终端设备的用户标识以及所述终端设备的操作日志;
更新单元,用于从所述服务器的综合基本信息表中,获取所述终端设备的用户标识对应的应用数据版本号,并更新所述应用数据版本号;
同步数据获取单元,用于合并所述第一终端的用户标识、更新后的应用数据版本号和所述终端设备的操作日志,得到中间格式的同步数据。
可选地,所述服务器还包括:
响应模块74,用于向所述终端设备发送第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
可选地,所述保存模块73具体用于根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中。
可选地,所述保存模块73具体用于根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中;解析所述终端设备的操作日志,根据所述操作日志中的操作类型,将所述操作日志中的数据条目名称和数据条目实际内容写入应用数据表。
图8是本发明实施例提供的一种服务器的结构示意图。参见图8,该服务器包括:
接收模块81,用于接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
获取模块82,用于获取所述终端设备的用户标识和应用数据版本号对应的操作日志;
发送模块83,用于向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志。
可选地,所述获取模块82具体用于根据所述用户标识,从综合基本信息表中查询当前应用数据版本号;当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号不相等时,根据所述用户标识和所述第二同步请求携带的应用数据版本号,从综合应用数据操作日志表中获取与所述用户标识相应且应用数据版本号大于所述第二同步请求携带的应用数据版本号的操作日志;
相应地,所述第二同步响应包还携带所述操作日志的应用数据版本号。
可选地,所述发送模块83还用于当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号相等时,所述服务器向所述终端设备发送第三同步响应包,所述第三同步响应包用于将当前的同步状态通知所述终端设备。
图9是本发明实施例提供的一种终端设备的结构示意图。参见图9,所述终端设备包括:
生成模块91,用于生成应用数据;
记录模块92,用于将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;
发送模块93,用于当符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
可选地,所述终端设备还包括:
接收模块94,用于接收所述服务器发送的第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
图10是本发明实施例提供的一种终端设备的结构示意图。参见图10,所述终端设备包括:
发送模块1001,用于向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
接收模块1002,用于接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
可选地,所述接收模块1002具体用于当所述响应包携带应用数据版本号时,比较终端设备本地的应用数据版本号和响应包携带的应用数据版本号,当所述终端设备本地的应用数据版本号和响应包携带的应用数据版本号不相等时,提取所述响应包中的操作日志;将提取的操作日志写入应用数据表,并更新终端设备本地的应用数据版本号。
图11是本发明实施例提供的一种数据同步系统的结构示意图。参见图11,所述系统包括:
服务器1101,用于接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;根据所述终端设备的用户标识,保存所述中间格式的同步数据;
终端设备1102,用于生成应用数据;将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;当符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
图12是本发明实施例提供的一种数据同步系统的结构示意图。参见图12,所述系统包括:
服务器1201,用于接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;获取所述终端设备的用户标识和应用数据版本号对应的操作日志;向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志;
终端设备1202,用于向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
需要说明的是:上述实施例提供的服务器和终端设备在数据同步时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务器和终端设备与数据同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (26)
1.一种数据同步方法,其特征在于,所述方法包括:
服务器接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;
所述服务器对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;
所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据。
2.根据权利要求1所述的方法,其特征在于,所述服务器对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据,包括:
提取所述第一同步请求包中的所述终端设备的用户标识以及所述终端设备的操作日志;
从所述服务器的综合基本信息表中,获取所述终端设备的用户标识对应的应用数据版本号,并更新所述应用数据版本号;
合并所述第一终端的用户标识、更新后的应用数据版本号和所述终端设备的操作日志,得到中间格式的同步数据。
3.根据权利要求2所述的方法,其特征在于,所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据之后,所述方法还包括:
所述服务器向所述终端设备发送第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
4.根据权利要求1所述的方法,其特征在于,所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据,包括:
根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中。
5.根据权利要求1所述的方法,其特征在于,所述服务器根据所述终端设备的用户标识,保存所述中间格式的同步数据,包括:
根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中;
解析所述终端设备的操作日志,根据所述操作日志中的操作类型,将所述操作日志中的数据条目名称和数据条目实际内容写入综合应用数据表。
6.一种数据同步方法,其特征在于,所述方法包括:
服务器接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
获取所述终端设备的用户标识和应用数据版本号对应的操作日志;
所述服务器向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志。
7.根据权利要求6所述的方法,其特征在于,获取所述终端设备的用户标识和应用数据版本号对应的操作日志,包括:
根据所述用户标识,从综合基本信息表中查询当前应用数据版本号;
当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号不相等时,根据所述用户标识和所述第二同步请求携带的应用数据版本号,从综合应用数据操作日志表中获取与所述用户标识相应且应用数据版本号大于所述第二同步请求携带的应用数据版本号的操作日志;
相应地,所述第二同步响应包还携带所述操作日志的应用数据版本号。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号相等时,所述服务器向所述终端设备发送第三同步响应包,所述第三同步响应包用于将当前的同步状态通知所述终端设备。
9.一种数据同步方法,其特征在于,所述方法包括:
终端设备生成应用数据;
终端设备将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;
当所述终端设备符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
10.根据权利要求9所述的方法,其特征在于,向服务器发送第一同步请求包之后,所述方法还包括:
接收所述服务器发送的第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
11.一种数据同步方法,其特征在于,所述方法包括:
终端设备向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
12.根据权利要求11所述的方法,其特征在于,接收所述服务器返回的响应包,并根据所述响应包进行数据同步,包括:
当所述响应包携带应用数据版本号时,比较终端设备本地的应用数据版本号和响应包携带的应用数据版本号,当所述终端设备本地的应用数据版本号和响应包携带的应用数据版本号不相等时,提取所述响应包中的操作日志;
将提取的操作日志写入应用数据表,并更新终端设备本地的应用数据版本号。
13.一种服务器,其特征在于,所述服务器包括:
接收模块,用于接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;
格式转换模块,用于对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;
保存模块,用于根据所述终端设备的用户标识,保存所述中间格式的同步数据。
14.根据权利要求13所述的服务器,其特征在于,所述格式转换模块包括:
提取单元,用于提取所述第一同步请求包中的所述终端设备的用户标识以及所述终端设备的操作日志;
更新单元,用于从所述服务器的综合基本信息表中,获取所述终端设备的用户标识对应的应用数据版本号,并更新所述应用数据版本号;
同步数据获取单元,用于合并所述第一终端的用户标识、更新后的应用数据版本号和所述终端设备的操作日志,得到中间格式的同步数据。
15.根据权利要求14所述的服务器,其特征在于,所述服务器还包括:
响应模块,用于向所述终端设备发送第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
16.根据权利要求13所述的服务器,其特征在于,所述保存模块具体用于根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中。
17.根据权利要求13所述的服务器,其特征在于,所述保存模块具体用于根据所述终端设备的用户标识,将所述中间格式的同步数据写入综合应用数据操作日志表中;解析所述终端设备的操作日志,根据所述操作日志中的操作类型,将所述操作日志中的数据条目名称和数据条目实际内容写入应用数据表。
18.一种服务器,其特征在于,所述服务器包括:
接收模块,用于接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
获取模块,用于获取所述终端设备的用户标识和应用数据版本号对应的操作日志;
发送模块,用于向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志。
19.根据权利要求18所述的服务器,其特征在于,所述获取模块具体用于根据所述用户标识,从综合基本信息表中查询当前应用数据版本号;当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号不相等时,根据所述用户标识和所述第二同步请求携带的应用数据版本号,从综合应用数据操作日志表中获取与所述用户标识相应且应用数据版本号大于所述第二同步请求携带的应用数据版本号的操作日志;
相应地,所述第二同步响应包还携带所述操作日志的应用数据版本号。
20.根据权利要求18所述的服务器,其特征在于,所述发送模块还用于当所述当前应用数据版本号与所述第二同步请求携带的应用数据版本号相等时,所述服务器向所述终端设备发送第三同步响应包,所述第三同步响应包用于将当前的同步状态通知所述终端设备。
21.一种终端设备,其特征在于,所述终端设备包括:
生成模块,用于生成应用数据;
记录模块,用于将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;
发送模块,用于当符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
22.根据权利要求21所述的终端设备,其特征在于,所述终端设备还包括:
接收模块,用于接收所述服务器发送的第一同步响应包,所述第一同步响应包携带更新后的应用数据版本号。
23.一种终端设备,其特征在于,所述终端设备包括:
发送模块,用于向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;
接收模块,用于接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
24.根据权利要求23所述的终端设备,其特征在于,所述接收模块具体用于当所述响应包携带应用数据版本号时,比较终端设备本地的应用数据版本号和响应包携带的应用数据版本号,当所述终端设备本地的应用数据版本号和响应包携带的应用数据版本号不相等时,提取所述响应包中的操作日志;将提取的操作日志写入应用数据表,并更新终端设备本地的应用数据版本号。
25.一种数据同步系统,其特征在于,包括:
服务器,用于接收终端设备发送的第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志;对所述终端设备的操作日志进行格式转换,得到中间格式的同步数据;根据所述终端设备的用户标识,保存所述中间格式的同步数据;
终端设备,用于生成应用数据;将所述应用数据写入操作日志,并将所述操作日志记录在应用数据操作日志表中;当符合数据同步条件时,向服务器发送第一同步请求包,所述第一同步请求包携带所述终端设备的用户标识以及所述终端设备的操作日志。
26.一种数据同步系统,其特征在于,包括:
服务器,用于接收终端设备发送的第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;获取所述终端设备的用户标识和应用数据版本号对应的操作日志;向所述终端设备发送第二同步响应包,所述第二同步响应包携带所述操作日志;
终端设备,用于向服务器发送第二同步请求包,所述第二同步请求包携带所述终端设备的用户标识以及应用数据版本号;接收所述服务器返回的响应包,并根据所述响应包进行数据同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210465097.4A CN103825918B (zh) | 2012-11-16 | 2012-11-16 | 数据同步方法、终端设备、服务器和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210465097.4A CN103825918B (zh) | 2012-11-16 | 2012-11-16 | 数据同步方法、终端设备、服务器和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103825918A true CN103825918A (zh) | 2014-05-28 |
CN103825918B CN103825918B (zh) | 2018-09-18 |
Family
ID=50760744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210465097.4A Active CN103825918B (zh) | 2012-11-16 | 2012-11-16 | 数据同步方法、终端设备、服务器和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103825918B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598372A (zh) * | 2015-02-16 | 2015-05-06 | 联想(北京)有限公司 | 一种信息处理方法和装置 |
CN105335434A (zh) * | 2014-08-11 | 2016-02-17 | 腾讯科技(北京)有限公司 | 日志管理方法、装置及电子设备 |
CN105991744A (zh) * | 2015-03-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 用于同步用户应用数据的方法与设备 |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN108512877A (zh) * | 2017-02-28 | 2018-09-07 | 腾讯科技(北京)有限公司 | 一种服务器集群中分享数据的方法和装置 |
CN109445717A (zh) * | 2018-11-15 | 2019-03-08 | 北京中电普华信息技术有限公司 | 一种双机备份时的数据存储方法及装置 |
CN110198331A (zh) * | 2018-03-28 | 2019-09-03 | 腾讯科技(上海)有限公司 | 一种同步数据的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968281A (zh) * | 2006-11-21 | 2007-05-23 | 华为技术有限公司 | 实现终端间单词库数据同步的方法及终端 |
CN101030157A (zh) * | 2007-04-20 | 2007-09-05 | 北京搜狗科技发展有限公司 | 一种用户词库同步更新的方法和系统 |
CN101370032A (zh) * | 2008-09-09 | 2009-02-18 | 中兴通讯股份有限公司 | 数据同步中的修改日志维护方法和装置 |
CN101547092A (zh) * | 2008-03-27 | 2009-09-30 | 天津德智科技有限公司 | 用于统一用户认证的多应用系统数据同步的方法及装置 |
US7610387B1 (en) * | 2003-11-12 | 2009-10-27 | Cisco Technology, Inc. | Method and apparatus for providing sticky bindings using version vectors |
CN101888393A (zh) * | 2009-05-13 | 2010-11-17 | 上海首恒电子科技有限公司 | 网络环境下基于构件中间件平台的非一致协同系统及方法 |
-
2012
- 2012-11-16 CN CN201210465097.4A patent/CN103825918B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7610387B1 (en) * | 2003-11-12 | 2009-10-27 | Cisco Technology, Inc. | Method and apparatus for providing sticky bindings using version vectors |
CN1968281A (zh) * | 2006-11-21 | 2007-05-23 | 华为技术有限公司 | 实现终端间单词库数据同步的方法及终端 |
CN101030157A (zh) * | 2007-04-20 | 2007-09-05 | 北京搜狗科技发展有限公司 | 一种用户词库同步更新的方法和系统 |
CN101547092A (zh) * | 2008-03-27 | 2009-09-30 | 天津德智科技有限公司 | 用于统一用户认证的多应用系统数据同步的方法及装置 |
CN101370032A (zh) * | 2008-09-09 | 2009-02-18 | 中兴通讯股份有限公司 | 数据同步中的修改日志维护方法和装置 |
CN101888393A (zh) * | 2009-05-13 | 2010-11-17 | 上海首恒电子科技有限公司 | 网络环境下基于构件中间件平台的非一致协同系统及方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335434A (zh) * | 2014-08-11 | 2016-02-17 | 腾讯科技(北京)有限公司 | 日志管理方法、装置及电子设备 |
CN105335434B (zh) * | 2014-08-11 | 2020-08-25 | 腾讯科技(北京)有限公司 | 日志管理方法、装置及电子设备 |
CN104598372A (zh) * | 2015-02-16 | 2015-05-06 | 联想(北京)有限公司 | 一种信息处理方法和装置 |
CN104598372B (zh) * | 2015-02-16 | 2017-11-03 | 联想(北京)有限公司 | 一种信息处理方法和装置 |
CN105991744B (zh) * | 2015-03-03 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 用于同步用户应用数据的方法与设备 |
CN105991744A (zh) * | 2015-03-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 用于同步用户应用数据的方法与设备 |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN106657170B (zh) * | 2015-10-28 | 2021-03-30 | 斑马智行网络(香港)有限公司 | 一种数据同步方法及装置 |
CN108512877A (zh) * | 2017-02-28 | 2018-09-07 | 腾讯科技(北京)有限公司 | 一种服务器集群中分享数据的方法和装置 |
CN110198331A (zh) * | 2018-03-28 | 2019-09-03 | 腾讯科技(上海)有限公司 | 一种同步数据的方法及系统 |
CN110198331B (zh) * | 2018-03-28 | 2022-11-25 | 腾讯科技(上海)有限公司 | 一种同步数据的方法及系统 |
CN109445717A (zh) * | 2018-11-15 | 2019-03-08 | 北京中电普华信息技术有限公司 | 一种双机备份时的数据存储方法及装置 |
CN109445717B (zh) * | 2018-11-15 | 2022-01-11 | 北京国电通网络技术有限公司 | 一种双机备份时的数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103825918B (zh) | 2018-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103825918A (zh) | 数据同步方法、终端设备、服务器和系统 | |
CN109656934A (zh) | 基于日志解析的源端Oracle数据库DDL同步方法及设备 | |
CN101313495B (zh) | 数据同步方法、系统及装置 | |
CN104820701A (zh) | 数据记录和同步方法及系统 | |
CN106599104A (zh) | 一种基于redis集群的海量数据关联方法 | |
CN103428264B (zh) | 数据同步的方法、设备及系统 | |
CN103049355B (zh) | 一种数据库系统恢复方法及设备 | |
CN110781230A (zh) | 一种数据接入方法、装置及设备 | |
CN109831486A (zh) | 多客户端的后台数据服务器系统及数据处理方法 | |
CN104378234A (zh) | 跨数据中心的数据传输处理方法及系统 | |
CN104102701A (zh) | 一种基于hive的历史数据存档与查询方法 | |
CN104468274A (zh) | 一种集群监控管理方法及系统 | |
CN108206750A (zh) | 虚拟机网卡的配置方法及装置 | |
CN104317957A (zh) | 一种报表处理的开放平台、系统及报表处理方法 | |
CN106294825A (zh) | 一种excel数据管理方法及系统、客户端、服务端 | |
CN109005167B (zh) | 一种认证数据的处理方法、装置、服务器与存储介质 | |
CN109271448A (zh) | 基于数据库为平台的数据同步系统及方法 | |
CN105446981B (zh) | 站点地图生成方法、访问方法及装置 | |
CN108133017A (zh) | 一种多数据源采集配置方法及装置 | |
CN103530369A (zh) | 一种去重方法及系统 | |
CN103079194A (zh) | 业务适配方法、装置及系统 | |
CN102638569B (zh) | 一种文件分发同步方法及系统 | |
US20140222771A1 (en) | Management device and management method | |
CN110019012A (zh) | 数据预处理方法、装置和计算机可读存储介质 | |
CN110417860A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |