一种应用数据的同步方法和装置的制造方法_2

文档序号:9767841阅读:来源:国知局
用数据,提高了应用数据推送的灵活性,避免每次都全量获取 所有的应用数据,减少了网络流量的耗费,加快了推送的速度,提高了同步效率。
[0088] 本申请实施例在多终端登录情景中,按照在当前终端产生的应用程序的应用数据 更新对应的数据进度节点,在判断其他终端符合预设的活跃条件时,推送对应的增量数据, 提高了应用数据推送的灵活性,避免了全量获取所有的应用数据,减少了网络流量的耗费, 加快了推送的速度,提高了同步效率。
【附图说明】
[0089] 图1是本申请的一种应用数据的同步方法实施例的步骤流程图;
[0090] 图2是本申请的另一种应用数据的同步方法实施例的步骤流程图;
[0091] 图3是本申请的一种应用数据的同步装置实施例的结构框图;
[0092] 图4是本申请的另一种应用数据的同步方法实施例的步骤流程图。
【具体实施方式】
[0093] 为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本申请作进一步详细的说明。
[0094] 参照图1,示出了本申请的一种应用数据的同步方法实施例的步骤流程图,具体可 以包括如下步骤:
[0095] 步骤101,接收终端发送的针对应用程序的应用数据的同步请求;
[0096] 需要说明的是,该终端可以为安装有该应用程序的终端,具体可以包括手机、 PDA (Personal Digital Assistant,个人数字助理)、膝上型计算机、平板电脑、个人电脑 (Personal Computer, PC)等等,本申请实施例对此不加以限制。
[0097] 应用程序在用户操作、日常运行的情景中,通常会产生许多不同业务类型的应用 数据,用以记录操作过程、操作结果等信息。
[0098] 例如,用户在某应用程序进行支付操作,可以产生记录支付账户、支付金额、支付 时间、账户余额等支付业务(业务类型之一)的应用数据;用户在该应用程序进行缴费操 作,可以产生缴费对象、缴费类型、缴费金额、缴费结果(即成功或失败)等缴费业务(业务 类型之一)的应用数据,等等。
[0099] 若用户在其他终端对某一应用程序进行操作,产生了新的应用数据,当前终端可 能缺失该应用程序中的部分应用数据,需要向服务器获取之前产生的应用数据,以便将该 应用程序调整至最近的状态并继续操作。
[0100] 应用数据的同步请求可以是指终端发出的同步某个用户(可以以用户标识表征) 所操作的某个应用程序的应用数据的指示。该同步请求可以在终端空闲时(如无下载任 务)发出,也可以在应用程序启动时发出,也可以在应用程序与服务器进行连接的时候发 出,还可以在其他时机发出,本申请实施例对此不加以限制。
[0101] 其中,所述同步请求中可以包括终端标识和用户标识中的至少一个,终端标识可 以是能够代表一个唯一确定的终端的信息,例如,手机的IMEI (nternationalMobileEquipm entldentificationNumber,国际移动设备识别码)、服务器分配的唯一编号等等,用户标识 可以是能够代表一个唯一确定的用户的信息,例如,用户ID(Identity,身份标识号码)等 等。
[0102] 在具体实现中,在服务器中可以存储并维护一个终端列表,在该终端列表中可以 记录当前与服务器连接的终端的终端标识、连接编号、应用程序标识、终端系统标识、应用 程序版本等信息。
[0103] 该终端列表的示例可以如下表所示:
[0104]
[0105] 如上表所不,在终端标识 clientld 为 "9slss0rskjxzsj3sdmslskdska91pzqs = " 的终端,与服务器建立了连接编号。〇]1116〇1:1(1为"1<:839〇8&81121]1118」3。9;[02。。29¥¥9181<^=" 的连接,在该终端中,终端系统版本platform为"Android",安装了应用程序标识appld为 "wallet"的应用程序,该应用程序的应用程序版本appVersion为"7. 1"。
[0106] 其中,连接编号可以是终端与服务器连接时赋予的编号,表示一个确定应用程序 (如确定应用程序版本),在一个确定的终端系统版本下的一次有效连接。连接编号可以用 于标识当前连接的通道ID,对于一个确定的终端标识,连接编号可以每次连接都不同,但是 同一时间保证一个终端编号只存在一个有效的连接编号。
[0107] 步骤102,根据所述终端标识和所述用户标识中的至少一个查找对应的同步进度 节点;
[0108] 在服务器中可以存储并维护一个用终端户列表,在该用户终端列表中可以记录当 前与服务器连接的终端的终端标识、用户标识、用户状态等信息。
[0109] 该用户终端列表的示例可以如下表所示:
[0111] 如上表所不,在终端标识 clientld 为 "9slss0rskjxzsj3sdmslskdska91pzqs = " 的终端,用户标识userid为"208811111111"的用户的用户状态status为"v"。
[0112] 其中,用户状态可以为表示当前用户在该终端上是否登录的信息,状态值可以包 括有效(V)和无效(I),对应登录状态和登出状态。
[0113] 应用本申请实施例,可以判断当前终端是否是首次连接,若是,则根据所述终端标 识和所述用户标识中的至少一个查找对应的同步进度节点。
[0114] 具体而言,可以采用终端标识和用户标识在用户终端列表中查找,若能查询到记 录(无论状态是V还是I),即表示当前用户在该终端上曾经或正建立连接,该终端上存储有 应用程序的应用数据,则可以根据灵活可扩展的抉择策略决定推送应用数据,若没查到则 可以表明该终端未与服务器建立过连接。
[0115] 在实际应用中,在终端中可以存储并维护一终端进度节点表,在该终端进度节点 表中可以记录终端标识、同步进度节点、用户标识和业务类型等信息。
[0116] 该终端进度节点表的示例可以如下表所示:
[0118] 如上表所不,在终端标识 clientld 为 "9slss0rskjxzsj3sdmslskdska91pzqs = " 的终端,与用户标识userid "208811111111"关联,在当前终端同步了业务类型type为 "FUWU"的应用数据,同步进度节点progressld为"99"。
[0119] 其中,业务类型的值可以根据各种应用程序内具体的业务自定义,可以保证应用 程序内唯一性即可,上述的"FUWU"只是一种业务类型的代码,可以表示服务窗业务。
[0120] 该同步进度节点可以由终端上传至服务器,也可以由服务器从终端中提取,本申 请实施例对此不加以限制。
[0121] 在本申请实施例中,所述应用数据可以按照产生时间顺序排序,以保证应用数据 时序性,使得应用数据在推送时可以按照应用数据的顺序进行推送,避免发生推送错误导 致终端处理应用数据错误。
[0122] 例如,某个应用程序产生了 A、B、C、D四份应用数据,服务器可以根据应用数据产 生的时序配置递增的序号,即对应用数据A配置序号1、对应用数据B配置序号2、对应用数 据C配置序号3、对应用数据D配置序号4。
[0123] 进一步地,为了方便对应用数据进行管理,本申请实施例中,可以按照业务类型对 应用数据进行分类,同一业务类型的应用数据可以按照产生时间顺序排序。
[0124] 例如,当前应用程序存在支付业务和缴费业务两种业务类型的应用数据,其中:
[0125] 在支付业务中产生了 Al、A2和A3这三份应用数据,可以对应配置递增的序号 1101U102 和 1103 ;
[0126] 在缴费业务中产生了 J1、J2和J3这三份应用数据,可以对应配置递增的序号 1201U202 和 1203。
[0127] 需要说明的是,服务端向终端推送应用数据时,需要保证同一业务类型的应用数 据的时序性,可以不保证不同业务类型的应用数据推送时序性。此外,本申请实施例中还可 以对业务类型配置不同的优先级,以优先推送某些重点业务类型的应用数据。
[0128] 此外,所述同步进度节点可以为记录所述终端已同步的应用数据的节点信息。若 应用数据按照产生时间顺序排序,则同步进度节点可以为已同步的最新的应用数据的序 号。
[0129] 而对于不同的业务类型同样存在同步进度节点需要各自隔离的需要,因此,可以 在同步进度节点标记是隶属于某个业务类型来区分。
[0130] 例如,在某个应用程序中,某个业务类型的应用数据共有200份,序号为1-200,若 当前的同步进度节点为195,则可以表示该应用程序所属的终端同步到序号为195的应用 数据,存在序号为196、197、198、199和200的应用数据未进行同步。
[0131] 步骤103,当查找到所述同步进度节点时,根据所述同步进度节点与预置的数据进 度节点推送对应的终态数据和增量数据中的至少一种至所述终端。
[0132] 在具体实现中,在服务器可以存储并维护一个数据进度节点表,该数据进度节点 表中可以记录用户标识、数据节点、业务类型和数据库等信息。
[0133] 该数据进度节点表的示例可以如下表所示:
[0135] 如上表所示,用户标识userid为"2088111 111 11"的用户,对应用程序进行操 作,产生了业务类型type为"FUWU"的应用数据1份,该应用数据的数据节点(即序号) progressld为"100",该应用数据可以定义数据传输的具体结构,以数据块data的形式存 储,可以为由业务自定义的json(Javascript Object Notation,数据交换语言)数据。
[0136] 具体而言,所述应用数据可以包括终态数据和增量数据中的至少一种;
[0137] 其中,所述增量数据可以为应用程序操作过程所产生的应用数据,则增量数据可 以标识操作过程。
[0138] 所述终态数据可以为应用程序操作完成后的应用数据,即操作导致应用数据变 更,变更后的稳定态的应用数据,该终态数据可以标识操作结果。
[0139] 以支付业务作为示例,假设当前用户的账户的余额为500. 00元,该用户为通过应 用程序为某个商品支付了 50. 00元,支付完成后账户的余额为450. 0元。
[0140] 在上述支付业务中,账户中在支付前的500. 00元为旧的终态数据,支付完成后的 450. 0元为新的终态数据,而在一次支付操作中产生的金额-50. 00元(即减少50. 00元) 为增量数据。
[0141] 则数据块可以如下定义:
[0142] 终态数据:{"amount": "500. 00","type": "T"}
[0143] 增量数据:{"amount": "-50. 00","type": "L"}
[0144] 需要说明的是,数据块格式解析可以根据不同的业务自定义,只要保证终端能理 解并解析即可。
[0145] 本申请实施例中,可以根据同步进度节点与预先记录的数据进度节点之间的差 异,推送对应的终态数据和增量数据中的至少一种至所述终端。
[0146] 在本申请的一种优选实施例中,步骤103可以包括如下子步骤:
[0147] 子步骤S11,计算所述同步进度节点与预先记录的数据进度节点之间的差异量;
[0148] 在具体显示中,所述数据进度节点可以为记录应用程序操作过程所产生的应用数 据的节点信息。若应用数据按照产生时间顺序排序,则数据进度节点可以为已产生的最新 的应用数据的序号。
[0149] 例如,在某个应用程序中,某个业务类型的应用数据共有200份,
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1