发明内容
本申请实施例所要解决的技术问题是提供一种应用数据的同步方法,用以减少网络流量的耗费,提高同步效率。
相应的,本申请实施例还提供了一种应用数据的同步装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种应用数据的同步方法,包括:
接收终端发送的针对应用程序的应用数据的同步请求;所述同步请求中包括终端标识和用户标识中的至少一个,所述应用数据包括终态数据和增量数据中的至少一种;
根据所述终端标识和所述用户标识中的至少一个查找对应的同步进度节点;
当查找到所述同步进度节点时,根据所述同步进度节点与预先记录的数据进度节点推送对应的终态数据和增量数据中的至少一种至所述终端。
优选地,所述终态数据为应用程序操作完成后的应用数据,所述增量数据为应用程序操作过程所产生的应用数据。
优选地,所述根据所述同步进度节点与预置的数据进度节点推送对应的终态数据和增量数据中的至少一种至所述终端的步骤包括:
计算所述同步进度节点与预置的数据进度节点之间的差异量;
判断所述差异量是否大于或等于预设的差异量阈值;
若是,则推送对应的终态数据至所述终端;
若否,则推送对应的增量数据至所述终端;
其中,所述同步进度节点为记录所述终端已同步的应用数据的节点信息,所述数据进度节点为记录应用程序操作过程所产生的应用数据的节点信息,所述应用数据按照产生时间顺序排序。
优选地,所述差异量包括进度差异量,所述计算所述同步进度节点与预先记录的数据进度节点之间的差异量的步骤包括:
计算所述同步进度节点与预先记录的数据进度节点之间的进度差异量;
所述差异量阈值包括进度阈值,所述判断所述差异量是否大于或等于预设的差异量阈值的步骤包括:
判断所述进度差异量是否大于或等于预设的进度阈值。
优选地,所述差异量包括数据差异量,所述计算所述同步进度节点与预置的数据进度节点之间的差异量的步骤包括:
所述计算所述同步进度节点与预先记录的数据进度节点之间的应用数据的数据差异量;
所述差异量阈值包括数据量阈值,所述判断所述差异量是否大于或等于预设的差异量阈值的步骤包括:
判断所述数据差异量是否大于或等于预设的数据量阈值。
优选地,还包括:
当未查找到所述同步进度节点时,推送对应的终态数据至所述终端。
优选地,所述应用数据包括终端系统类型、应用程序版本、业务类型中的至少一种;
所述推送对应的终态数据至所述终端的步骤包括:
推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的终态数据至所述终端;
所述推送对应的增量数据至所述终端的步骤包括:
推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的增量数据至所述终端。
本申请实施例还公开了一种应用数据的同步方法,包括:
按照在当前终端产生的应用程序的应用数据更新对应的数据进度节点;
判断其他终端是否符合预设的活跃条件;其他终端具有对应的同步进度节点;
若是,则按照所述数据进度节点和所述同步进度节点计算增量数据;
将所述增量数据推送至所述其他终端。
优选地,所述同步进度节点为记录所述终端已同步的应用数据的节点信息,所述数据进度节点为记录应用程序操作过程所产生的应用数据的节点信息,所述应用数据按照产生时间顺序排序;所述增量数据为应用程序操作过程所产生的应用数据。
优选地,判断其他终端是否符合预设的活跃条件的步骤包括:
判断与其他客户端是否通过长连接进行通讯;若是,则判断所述其他客户端符合预设的活跃条件。
优选地,所述应用数据包括终端系统类型、应用程序版本、业务类型中的至少一种;
所述将所述增量数据推送至所述其他终端的步骤包括:
推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的增量数据至所述其他终端。
本申请实施例还公开了一种应用数据的同步装置,包括:
同步请求接收模块,用于接收终端发送的针对应用程序的应用数据的同步请求;所述同步请求中包括终端标识和用户标识中的至少一个,所述应用数据包括终态数据和增量数据中的至少一种;
同步进度节点查找模块,用于根据所述终端标识和所述用户标识中的至少一个查找对应的同步进度节点;
应用数据推送模块,用于查找到所述同步进度节点时,根据所述同步进度节点与预先记录的数据进度节点推送对应的终态数据和增量数据中的至少一种至所述终端。
优选地,所述终态数据为应用程序操作完成后的应用数据,所述增量数据为应用程序操作过程所产生的应用数据。
优选地,所述应用数据推送模块包括:
差异量计算子模块,用于计算所述同步进度节点与预置的数据进度节点之间的差异量;
差异量阈值判断子模块,用于判断所述差异量是否大于或等于预设的差异量阈值;若是,则调用第一推送子模块,若否,则调用第二推送子模块;
第一推送子模块,用于推送对应的终态数据至所述终端;
第二推送子模块,用于推送对应的增量数据至所述终端;
其中,所述同步进度节点为记录所述终端已同步的应用数据的节点信息,所述数据进度节点为记录应用程序操作过程所产生的应用数据的节点信息,所述应用数据按照产生时间顺序排序。
优选地,所述差异量包括进度差异量,所述差异量计算子模块包括:
进度差异量计算子模块,用于计算所述同步进度节点与预先记录的数据进度节点之间的进度差异量;
所述差异量阈值包括进度阈值,所述差异量阈值判断子模块包括:
进度阈值判断子模块,用于判断所述进度差异量是否大于或等于预设的进度阈值。
优选地,所述差异量包括数据差异量,所述差异量计算子模块包括:
数据差异量计算子模块,用于计算所述同步进度节点与预先记录的数据进度节点之间的应用数据的数据差异量;
所述差异量阈值包括数据量阈值,所述差异量阈值判断子模块包括:
数据差异量阈值判断子模块,用于判断所述数据差异量是否大于或等于预设的数据量阈值。
优选地,还包括:
终态数据推送模块,用于在未查找到所述同步进度节点时,推送对应的终态数据至所述终端。
优选地,所述应用数据包括终端系统类型、应用程序版本、业务类型中的至少一种;
所述第一推送子模块包括:
第一适配推送子模块,用于推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的终态数据至所述终端;
所述第二推送子模块包括:
第二适配推送子模块,用于推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的增量数据至所述终端。
本申请实施例还公开了一种应用数据的同步装置,包括:
数据进度节点更新模块,用于按照在当前终端产生的应用程序的应用数据更新对应的数据进度节点;
活跃条件判断模块,用于判断其他终端是否符合预设的活跃条件;其他终端具有对应的同步进度节点;若是,则调用增量数据计算模块;
增量数据计算模块,用于按照所述数据进度节点和所述同步进度节点计算增量数据;
增量数据推送模块,用于将所述增量数据推送至所述其他终端。
优选地,所述同步进度节点为记录所述终端已同步的应用数据的节点信息,所述数据进度节点为记录应用程序操作过程所产生的应用数据的节点信息,所述应用数据按照产生时间顺序排序;所述增量数据为应用程序操作过程所产生的应用数据。
优选地,所述活跃条件判断模块包括:
长连接判断子模块,用于判断与其他客户端是否通过长连接进行通讯;若是,则调用符合判断子模块;
符合判断子模块,用于判断所述其他客户端符合预设的活跃条件。
优选地,所述应用数据包括终端系统类型、应用程序版本、业务类型中的至少一种;
所述增量数据推送模块包括:
第三适配推送子模块,用于推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的增量数据至所述其他终端。
与背景技术相比,本申请实施例包括以下优点:
本申请实施例根据终端发送的针对应用程序的应用数据的同步请求,查找终端标识和用户标识中的至少一个所对应的同步进度节点,在查找到同步进度节点时,根据同步进度节点和数据进度节点推送对应的终态数据和增量数据中的至少一种至终端,可以根据实际的同步差异灵活推送应用数据,提高了应用数据推送的灵活性,避免每次都全量获取所有的应用数据,减少了网络流量的耗费,加快了推送的速度,提高了同步效率。
本申请实施例在多终端登录情景中,按照在当前终端产生的应用程序的应用数据更新对应的数据进度节点,在判断其他终端符合预设的活跃条件时,推送对应的增量数据,提高了应用数据推送的灵活性,避免了全量获取所有的应用数据,减少了网络流量的耗费,加快了推送的速度,提高了同步效率。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种应用数据的同步方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,接收终端发送的针对应用程序的应用数据的同步请求;
需要说明的是,该终端可以为安装有该应用程序的终端,具体可以包括手机、PDA(PersonalDigitalAssistant,个人数字助理)、膝上型计算机、平板电脑、个人电脑(PersonalComputer,PC)等等,本申请实施例对此不加以限制。
应用程序在用户操作、日常运行的情景中,通常会产生许多不同业务类型的应用数据,用以记录操作过程、操作结果等信息。
例如,用户在某应用程序进行支付操作,可以产生记录支付账户、支付金额、支付时间、账户余额等支付业务(业务类型之一)的应用数据;用户在该应用程序进行缴费操作,可以产生缴费对象、缴费类型、缴费金额、缴费结果(即成功或失败)等缴费业务(业务类型之一)的应用数据,等等。
若用户在其他终端对某一应用程序进行操作,产生了新的应用数据,当前终端可能缺失该应用程序中的部分应用数据,需要向服务器获取之前产生的应用数据,以便将该应用程序调整至最近的状态并继续操作。
应用数据的同步请求可以是指终端发出的同步某个用户(可以以用户标识表征)所操作的某个应用程序的应用数据的指示。该同步请求可以在终端空闲时(如无下载任务)发出,也可以在应用程序启动时发出,也可以在应用程序与服务器进行连接的时候发出,还可以在其他时机发出,本申请实施例对此不加以限制。
其中,所述同步请求中可以包括终端标识和用户标识中的至少一个,终端标识可以是能够代表一个唯一确定的终端的信息,例如,手机的IMEI(nternationalMobileEquipmentIdentificationNumber,国际移动设备识别码)、服务器分配的唯一编号等等,用户标识可以是能够代表一个唯一确定的用户的信息,例如,用户ID(Identity,身份标识号码)等等。
在具体实现中,在服务器中可以存储并维护一个终端列表,在该终端列表中可以记录当前与服务器连接的终端的终端标识、连接编号、应用程序标识、终端系统标识、应用程序版本等信息。
该终端列表的示例可以如下表所示:
如上表所示,在终端标识clientId为“9slss0rskjxzsj3sdmslskdska91pzqs=”的终端,与服务器建立了连接编号connectId为“ksaqosbgnzmhsjapqiozppzqwwqlskqz=”的连接,在该终端中,终端系统版本platform为“Android”,安装了应用程序标识appId为“wallet”的应用程序,该应用程序的应用程序版本appVersion为“7.1”。
其中,连接编号可以是终端与服务器连接时赋予的编号,表示一个确定应用程序(如确定应用程序版本),在一个确定的终端系统版本下的一次有效连接。连接编号可以用于标识当前连接的通道ID,对于一个确定的终端标识,连接编号可以每次连接都不同,但是同一时间保证一个终端编号只存在一个有效的连接编号。
步骤102,根据所述终端标识和所述用户标识中的至少一个查找对应的同步进度节点;
在服务器中可以存储并维护一个用终端户列表,在该用户终端列表中可以记录当前与服务器连接的终端的终端标识、用户标识、用户状态等信息。
该用户终端列表的示例可以如下表所示:
终端标识 |
用户标识 |
用户状态 |
clientId |
userId |
status |
9slss0rskjxzsj3sdmslskdska91pzqs= |
208811111111 |
v |
如上表所示,在终端标识clientId为“9slss0rskjxzsj3sdmslskdska91pzqs=”的终端,用户标识userId为“208811111111”的用户的用户状态status为“v”。
其中,用户状态可以为表示当前用户在该终端上是否登录的信息,状态值可以包括有效(V)和无效(I),对应登录状态和登出状态。
应用本申请实施例,可以判断当前终端是否是首次连接,若是,则根据所述终端标识和所述用户标识中的至少一个查找对应的同步进度节点。
具体而言,可以采用终端标识和用户标识在用户终端列表中查找,若能查询到记录(无论状态是V还是I),即表示当前用户在该终端上曾经或正建立连接,该终端上存储有应用程序的应用数据,则可以根据灵活可扩展的抉择策略决定推送应用数据,若没查到则可以表明该终端未与服务器建立过连接。
在实际应用中,在终端中可以存储并维护一终端进度节点表,在该终端进度节点表中可以记录终端标识、同步进度节点、用户标识和业务类型等信息。
该终端进度节点表的示例可以如下表所示:
终端标识 |
同步进度节点 |
用户标识 |
业务类型 |
clientId |
progressId |
userId |
type |
9slss0rskjxzsj3sdmslskdska91pzqs= |
99 |
208811111111 |
FUWU |
如上表所示,在终端标识clientId为“9slss0rskjxzsj3sdmslskdska91pzqs=”的终端,与用户标识userId“208811111111”关联,在当前终端同步了业务类型type为“FUWU”的应用数据,同步进度节点progressId为“99”。
其中,业务类型的值可以根据各种应用程序内具体的业务自定义,可以保证应用程序内唯一性即可,上述的“FUWU”只是一种业务类型的代码,可以表示服务窗业务。
该同步进度节点可以由终端上传至服务器,也可以由服务器从终端中提取,本申请实施例对此不加以限制。
在本申请实施例中,所述应用数据可以按照产生时间顺序排序,以保证应用数据时序性,使得应用数据在推送时可以按照应用数据的顺序进行推送,避免发生推送错误导致终端处理应用数据错误。
例如,某个应用程序产生了A、B、C、D四份应用数据,服务器可以根据应用数据产生的时序配置递增的序号,即对应用数据A配置序号1、对应用数据B配置序号2、对应用数据C配置序号3、对应用数据D配置序号4。
进一步地,为了方便对应用数据进行管理,本申请实施例中,可以按照业务类型对应用数据进行分类,同一业务类型的应用数据可以按照产生时间顺序排序。
例如,当前应用程序存在支付业务和缴费业务两种业务类型的应用数据,其中:
在支付业务中产生了A1、A2和A3这三份应用数据,可以对应配置递增的序号1101、1102和1103;
在缴费业务中产生了J1、J2和J3这三份应用数据,可以对应配置递增的序号1201、1202和1203。
需要说明的是,服务端向终端推送应用数据时,需要保证同一业务类型的应用数据的时序性,可以不保证不同业务类型的应用数据推送时序性。此外,本申请实施例中还可以对业务类型配置不同的优先级,以优先推送某些重点业务类型的应用数据。
此外,所述同步进度节点可以为记录所述终端已同步的应用数据的节点信息。若应用数据按照产生时间顺序排序,则同步进度节点可以为已同步的最新的应用数据的序号。
而对于不同的业务类型同样存在同步进度节点需要各自隔离的需要,因此,可以在同步进度节点标记是隶属于某个业务类型来区分。
例如,在某个应用程序中,某个业务类型的应用数据共有200份,序号为1-200,若当前的同步进度节点为195,则可以表示该应用程序所属的终端同步到序号为195的应用数据,存在序号为196、197、198、199和200的应用数据未进行同步。
步骤103,当查找到所述同步进度节点时,根据所述同步进度节点与预置的数据进度节点推送对应的终态数据和增量数据中的至少一种至所述终端。
在具体实现中,在服务器可以存储并维护一个数据进度节点表,该数据进度节点表中可以记录用户标识、数据节点、业务类型和数据库等信息。
该数据进度节点表的示例可以如下表所示:
如上表所示,用户标识userId为“208811111111”的用户,对应用程序进行操作,产生了业务类型type为“FUWU”的应用数据1份,该应用数据的数据节点(即序号)progressId为“100”,该应用数据可以定义数据传输的具体结构,以数据块data的形式存储,可以为由业务自定义的json(JavascriptObjectNotation,数据交换语言)数据。
具体而言,所述应用数据可以包括终态数据和增量数据中的至少一种;
其中,所述增量数据可以为应用程序操作过程所产生的应用数据,则增量数据可以标识操作过程。
所述终态数据可以为应用程序操作完成后的应用数据,即操作导致应用数据变更,变更后的稳定态的应用数据,该终态数据可以标识操作结果。
以支付业务作为示例,假设当前用户的账户的余额为500.00元,该用户为通过应用程序为某个商品支付了50.00元,支付完成后账户的余额为450.0元。
在上述支付业务中,账户中在支付前的500.00元为旧的终态数据,支付完成后的450.0元为新的终态数据,而在一次支付操作中产生的金额-50.00元(即减少50.00元)为增量数据。
则数据块可以如下定义:
终态数据:{"amount":"500.00","type":"T"}
增量数据:{"amount":"-50.00","type":"L"}
需要说明的是,数据块格式解析可以根据不同的业务自定义,只要保证终端能理解并解析即可。
本申请实施例中,可以根据同步进度节点与预先记录的数据进度节点之间的差异,推送对应的终态数据和增量数据中的至少一种至所述终端。
在本申请的一种优选实施例中,步骤103可以包括如下子步骤:
子步骤S11,计算所述同步进度节点与预先记录的数据进度节点之间的差异量;
在具体显示中,所述数据进度节点可以为记录应用程序操作过程所产生的应用数据的节点信息。若应用数据按照产生时间顺序排序,则数据进度节点可以为已产生的最新的应用数据的序号。
例如,在某个应用程序中,某个业务类型的应用数据共有200份,则该业务类型的数据进度节点可以为200。
一般而言,由于同步进度节点的序号是递增的,所以同步进度节点一般会小于或等于数据进度节点,服务器可以将同步进度节点与数据进度节点进行对比。当同步进度节点与数据进度节点的编号不一致时,则可以表示存在增量数据,即当前终端有未同步的应用数据,需要进行同步。
此外,该差异量可以为表征同步进度节点与数据进度节点之间的差异的信息。
在本申请实施例的一种优选示例中,所述差异量可以包括进度差异量,则在本示例中,子步骤S11可以包括如下子步骤:
子步骤S111,计算所述同步进度节点与预先记录的数据进度节点之间的进度差异量;
在本示例中,该进度差异量可以为体现应用数据在同步进度上的差异的信息。
例如,在某个应用程序中,某个业务类型的应用数据共有200份,序号为1-200,则数据进度节点为200,若当前的同步进度节点为195,则可以表示该应用程序所属的终端同步到序号为195的应用数据,进度差异量为200-195=5,存在序号为196、197、198、199和200的应用数据未进行同步。
在本申请实施例的另一种优选示例中,所述差异量可以包括数据差异量,则在本示例中,子步骤S11可以包括如下子步骤:
子步骤S112,计算所述同步进度节点与预先记录的数据进度节点之间的数据差异量;
在本示例中,该数据差异量可以为体现应用数据在同步数据量上的差异的信息。
例如,假设数据进度节点为200,同步进度节点为195,则数据进度节点与同步进度节点之间的包括序号为196、197、198、199和200的增量数据,数据差异量大小分别为100KB、200KB、150KB、50KB、50KB,则同步进度节点与的数据进度节点之间的数据差异量=100KB+200KB+150KB+50KB+50KB=550KB。
子步骤S12,判断所述差异量是否大于或等于预设的差异量阈值;若是,则执行子步骤S13,若否,则执行子步骤S14;
本申请实施例中,可以判断同步进度节点与数据进度节点之间的差异量,若该差异量大于或等于某个配置的差异量阈值时,则可以认为增量数据较大,若该差异量小于某个配置的差异量阈值时,可以认为增量数据较少。
在本申请实施例的一种优选示例中,所述差异量阈值可以包括进度阈值,则与子步骤S111相对应地,子步骤S12可以包括如下子步骤:
子步骤S121,判断所述进度差异量是否大于或等于预设的进度阈值。
在本示例中,可以根据进度差距策略选择推送终态数据还是增量数据。
具体而言,本示例中可以判断同步进度节点与数据进度节点之间的差值,若该差值大于或等于某个配置的进度阈值时,则可以认为增量数据较大,可以直接推送终态数据。若该差值小于某个配置的进度阈值时,可以认为增量数据较少,可以推送增量数据。
例如,假设数据进度节点为200,同步进度节点为195,则数据进度节点与同步进度节点之间的进度差异量为5,若进度阈值为5,进度差异量等于进度阈值,则可以推送最新的终态数据,若进度阈值为6,进度差异量小于进度阈值,则可以推送序号为196、197、198、199和200的增量数据。
在本申请实施例的另一种优选示例中,所述差异量阈值可以包括数据量阈值,则与子步骤S112相对应地,子步骤S12可以包括如下子步骤:
子步骤S122,判断所述数据差异量是否大于或等于预设的数据量阈值。
本示例中,可以根据数据量差距策略选择推送终态数据还是增量数据。
具体而言,本示例中可以判断判断同步进度节点与数据进度节点之间的应用数据的数据差异量的大小,若该数据差异量超过某个配置的数据量阈值时,则可以认为增量数据较大,可以直接推送终态数据。若该数据差异量小于某个配置的数据量阈值时,则可以认为增量数据较少,可以推送增量数据。
例如,假设数据进度节点为200,同步进度节点为195,则数据进度节点与同步进度节点之间的包括序号为196、197、198、199和200的增量数据,数据量大小分别为100KB、200KB、150KB、50KB、50KB,总的数据差异量=100KB+200KB+150KB+50KB+50KB=550KB,若数据量阈值为500KB,总的数据差异量大于数据量阈值,则可以推送最新的终态数据。若数据量阈值为600KB,总的数据差异量小于数据量阈值,则可以推送序号为196、197、198、199和200的增量数据。
子步骤S13,推送对应的终态数据至所述终端;
本申请实施例中,若增量数据较大,则可以直接推送终态数据,以减少终端合并应用数据的计算量。
在本申请实施例的一种优选示例中,所述应用数据可以包括终端系统类型、应用程序版本、业务类型中的至少一种;
则在本示例中,子步骤S13进一步可以包括如下子步骤:
子步骤S131,推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的终态数据至所述终端;
在具体实现中,终端系统类型可以为记录终端中操作系统的类型的信息,例如,Windows、Android(安卓)、IOS、WindowsPhone等等。
应用程序版本可以记录应用程序的版本的信息。
由于终端系统类型、应用程序版本等具有不同的功能,对应用数据的格式有要求,因此,本示例中,需要推送符合终端系统类型、应用程序版本等相应格式的终态数据。
子步骤S14,推送对应的增量数据至所述终端。
在本申请实施例中,若增量数据较少,则可以推送增量数据,以减少网络流量,加快推送速度。
在本申请实施例的一种优选示例中,所述应用数据可以包括终端系统类型、应用程序版本、业务类型中的至少一种;
则在本示例中,子步骤S14进一步可以包括如下子步骤:
子步骤S141,推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的增量数据至所述终端;
由于终端系统类型、应用程序版本等具有不同的功能,对应用数据的格式有要求,因此,本示例中,需要推送符合终端系统类型、应用程序版本等相应格式的增量数据。
当然,上述差异量只是作为示例,在实施本申请实施例时,可以根据实际情况设置其差异量,以灵活推送增量数据或终态数据,本申请实施例对此不加以限制。另外,除了上述差异量外,本领域技术人员还可以根据实际需要采用其它差异量,本申请实施例对此也不加以限制。
将应用数据推送至终端中,终端可以将应用程序中本地的应用数据与推送的应用数据进行合并。
由于应用数据中数据块的格式,可以由业务自定义,因此应用数据的合并方式也可以由业务决定,只要能自行理解其所配置的数据格式并进行相应操作即可。
以下以一个服务窗关注的例子作为示例进行说明:
其数据块定义:{"type":"XX","appId”:”X”}
其中,type可以表示操作类型,包括follow和unfollow,对应关注和取消关注,appId:表示关注的对象ID。
当前用户A在终端1存在关注列表(201411111111,20411111112)
此时用户A在其他终端取消对20411111112的关注,并添加对20411111113的关注,因此服务端数据节点新增如下记录:
终端1接收到FUWU业务类型中的应用数据时,解析数据块根据具体含义执行聚合操作:
收到序号为3的应用数据,则用户关注列表从(201411111111,20411111112)变更为(201411111111);
收到序号为4的应用数据,则用户关注列表从(201411111111)变更为(201411111111,20411111113)。
本申请实施例根据终端发送的针对应用程序的应用数据的同步请求,查找终端标识和用户标识中的至少一个所对应的同步进度节点,在查找到同步进度节点时,根据同步进度节点和数据进度节点推送对应的终态数据和增量数据中的至少一种至终端,可以根据实际的同步差异灵活推送应用数据,提高了应用数据推送的灵活性,避免每次都全量获取所有的应用数据,减少了网络流量的耗费,加快了推送的速度,提高了同步效率。
在本申请的一种优选实施例中,所述的方法还可以包括如下步骤:
步骤104,当未查找到所述同步进度节点时,推送对应的终态数据至所述终端。
在本申请实施例中,若未查找到同步进度节点,则可以表示当前终端未与服务器进行连接,在终端本地中不存在已同步的应用数据,可以直接推送终态数据至该终端中。
以支付业务作为示例,假设当前用户的账户的余额为500.00元,该用户为通过应用程序为某个商品支付了50.00元,支付完成后账户的余额为450.0元。
若在终端的应用程序中,没有支付业务的应用数据,则可以推送余额为450.00元的应用数据,在终端上展示余额为450.00元。
在本申请实施例的一种优选示例中,所述应用数据可以包括终端系统类型、应用程序版本、业务类型中的至少一种;
则在本示例中,步骤104可以包括如下子步骤:
子步骤S21,推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的终态数据至所述终端;
由于终端系统类型、应用程序版本等对应用数据的格式有要求,因此,本示例中,需要推送符合终端系统类型、应用程序版本等相应格式的终态数据。
参照图2,示出了本申请的另一种应用数据的同步方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,按照在当前终端产生的应用程序的应用数据更新对应的数据进度节点;
本申请实施例,用户可以应在多个终端同时登录某个账号,例如,用户可以在个人电脑上、手机上和平板电脑上同时登录即时通讯工具(一种应用程序)。
若用户在当前终端上进行操作,产生了新的应用数据,其他终端需要进行同步。
需要说明的是,其他终端可以为除当前终端之外的终端。
所述应用数据可以按照产生时间顺序排序,以保证应用数据时序性,使得应用数据在推送时可以按照应用数据的顺序进行推送,避免发生推送错误导致终端处理应用数据错误。
进一步地,为了方便对应用数据进行管理,本申请实施例中,可以按照业务类型对应用数据进行分类,同一业务类型的应用数据可以按照产生时间顺序排序。
所述数据进度节点可以为记录应用程序操作过程所产生的应用数据的节点信息。
用户在应用程序上进行操作,产生新的应用数据,将产生的新的应用业务数据同步到服务器,对该应用数据配置对应的序号,并更新数据进度节点。
例如,在某个应用程序中,某个业务类型的应用数据共有200份,序号为1-200,则数据进度节点为200。用户在该应用程序中进行操作,产生新的应用数据,对其配置序号为201,更新应用数据节点至201。
步骤202,判断其他终端是否符合预设的活跃条件;若是,则执行步骤203;
应用本申请实施例,可以预先设置表征活跃状态的活跃条件,以判断其他终端是否处于活跃状态。若其他终端符合活跃条件,则可以判断该终端为活跃终端;若其他终端不符合活跃条件,则可以判断该终端为非活跃终端。
在本申请的一种优选实施例中,步骤202可以包括如下子步骤:
子步骤S31,判断与其他客户端是否通过长连接进行通讯;若是,则执行子步骤S32;
子步骤S32,判断所述其他客户端符合预设的活跃条件。
在具体实现中,长连接可以指是一种保持持续连接状态的数据通道(例如socket连接),服务器与终端能通过该通道进行数据交互。
若服务器可以通过长连接与其他终端进行数据交互,则可以表明该终端符合活跃条件,为活跃终端。
需要说明的是,其他终端可以具有对应的同步进度节点,所述同步进度节点可以为记录所述终端已同步的应用数据的节点信息。
当然,上述活跃条件只是作为示例,在实施本申请实施例时,可以根据实际情况设置其他活跃条件,例如,操作频率、操作时长等等,以判断其他终端是否为活跃终端,本申请实施例对此不加以限制。另外,除了上述判断处理方法外,本领域技术人员还可以根据实际需要采用其它活跃条件,本申请实施例对此也不加以限制。
步骤203,按照所述数据进度节点和所述同步进度节点计算增量数据;
在具体实现中,所述增量数据可以为应用程序操作过程所产生的应用数据,数据进度节点和同步进度节点之间的应用数据可以为增量数据。
例如,假设数据进度节点为201,同步进度节点为195,则增量数据为序号为196、197、198、199、200和201的应用数据。
在本申请实施例的一种优选示例中,所述应用数据可以包括终端系统类型、应用程序版本、业务类型中的至少一种;则在本示例中,步骤203可以包括如下子步骤:
子步骤S41,推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的增量数据至所述其他终端。
由于终端系统类型、应用程序版本等对应用数据的格式有要求,因此,本示例中,需要推送符合终端系统类型、应用程序版本等相应格式的增量数据。
步骤204,将所述增量数据推送至所述其他终端。
若某个终端为活跃终端,可以表示用户在该终端上操作的几率比较大,对应用数据的需求也比较大;相反地,若某个终端为非活跃终端,可以表示用户在该终端上操作的几率比较少,对应用数据的需求也比较少。
本申请实施例可以将增量数据推送至活跃终端,在最大限度满足用户的需求的同时,减少推送的数据量。
在活跃终端中,可以将应用程序本地的应用数据与推送的增量数据进行合并,以保持多个终端之间的应用数据的同步。
本申请实施例在多终端登录情景中,按照在当前终端产生的应用程序的应用数据更新对应的数据进度节点,在判断其他终端符合预设的活跃条件时,推送对应的增量数据,提高了应用数据推送的灵活性,避免了全量获取所有的应用数据,减少了网络流量的耗费,加快了推送的速度,提高了同步效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,示出了本申请的一种应用数据的同步装置实施例的结构框图,具体可以包括如下模块:
同步请求接收模块301,用于接收终端发送的针对应用程序的应用数据的同步请求;所述同步请求中包括终端标识和用户标识中的至少一个,所述应用数据包括终态数据和增量数据中的至少一种;
同步进度节点查找模块302,用于根据所述终端标识和所述用户标识中的至少一个查找对应的同步进度节点;
应用数据推送模块303,用于查找到所述同步进度节点时,根据所述同步进度节点与预先记录的数据进度节点推送对应的终态数据和增量数据中的至少一种至所述终端。
在具体实现中,所述终态数据可以为应用程序操作完成后的应用数据,所述增量数据可以为应用程序操作过程所产生的应用数据。
在本申请的一种优选实施例中,所述应用数据推送模块303可以包括如下子模块:
差异量计算子模块,用于计算所述同步进度节点与预先记录的数据进度节点之间的差异量;
差异量阈值判断子模块,用于判断所述差异量是否大于或等于预设的差异量阈值;若是,则调用第一推送子模块,若否,则调用第二推送子模块;
第一推送子模块,用于推送对应的终态数据至所述终端;
第二推送子模块,用于推送对应的增量数据至所述终端;
其中,所述同步进度节点为记录所述终端已同步的应用数据的节点信息,所述数据进度节点为记录应用程序操作过程所产生的应用数据的节点信息,所述应用数据按照产生时间顺序排序。
在本申请实施例的一种优选示例中,所述差异量可以包括进度差异量,所述差异量计算子模块可以包括如下子模块:
进度差异量计算子模块,用于计算所述同步进度节点与预先记录的数据进度节点之间的进度差异量;
所述差异量阈值可以包括进度阈值,所述差异量阈值判断子模块可以包括如下子模块:
进度阈值判断子模块,用于判断所述进度差异量是否大于或等于预设的进度阈值。
在本申请实施例的另一种优选示例中,所述差异量可以包括数据差异量,所述差异量计算子模块可以包括如下子模块:
数据差异量计算子模块,用于计算所述同步进度节点与预先记录的数据进度节点之间的应用数据的数据差异量;
所述差异量阈值可以包括数据量阈值,所述差异量阈值判断子模块可以包括如下子模块:
数据差异量阈值判断子模块,用于判断所述数据差异量是否大于或等于预设的数据量阈值。
在本申请的一种优选实施例中,所述的装置还可以包括如下模块:
终态数据推送模块,用于在未查找到所述同步进度节点时,推送对应的终态数据至所述终端。
在本申请实施例的一种优选示例中,所述应用数据可以包括终端系统类型、应用程序版本、业务类型中的至少一种;
所述第一推送子模块可以包括如下子模块:
第一适配推送子模块,用于推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的终态数据至所述终端;
所述第二推送模块可以包括如下子模块:
第二适配推送子模块,用于推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的增量数据至所述终端。
在本申请实施例的一种优选示例中,所述应用数据可以包括终端系统类型、应用程序版本、业务类型中的至少一种;
所述终态数据推送模块可以包括如下子模块:
第四适配推送子模块,用于推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的终态数据至所述终端。
参照图4,示出了本申请的另一种应用数据的同步装置实施例的结构框图,具体可以包括如下模块:
数据进度节点更新模块401,用于按照在当前终端产生的应用程序的应用数据更新对应的数据进度节点;
活跃条件判断模块402,用于判断其他终端是否符合预设的活跃条件;其他终端具有对应的同步进度节点;若是,则调用增量数据计算模块403;
增量数据计算模块403,用于按照所述数据进度节点和所述同步进度节点计算增量数据;
增量数据推送模块404,用于将所述增量数据推送至所述其他终端。
在具体实现中,所述同步进度节点可以为记录所述终端已同步的应用数据的节点信息,所述数据进度节点可以为记录应用程序操作过程所产生的应用数据的节点信息,所述应用数据可以按照产生时间顺序排序;所述增量数据可以为应用程序操作过程所产生的应用数据。
在本申请的一种优选实施中,所述活跃条件判断模块402可以包括如下子模块:
长连接判断子模块,用于判断与其他客户端是否通过长连接进行通讯;若是,则调用符合判断子模块;
符合判断子模块,用于判断所述其他客户端符合预设的活跃条件。
在本申请实施例的一种优选示例中,所述应用数据可以包括终端系统类型、应用程序版本、业务类型中的至少一种;
所述增量数据推送模块404可以包括如下子模块:
第三适配推送子模块,用于推送所述业务类型中,与所述终端系统类型、应用程序版本中的至少一种匹配的增量数据至所述其他终端。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种应用数据的同步方法和一种应用数据的同步装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。