一种数据缓存同步方法、服务器和客户端的制作方法_3

文档序号:9547277阅读:来源:国知局
将这同步上下文信息发送给服务器,服务器从同 步上下文信息中解析出取数类型、缓存依赖中的第一权限版本和第一缓存依赖项版本。
[0098] 步骤206 :根据目标客户端的取数类型,实例化对应的同步提供程序;
[0099] 步骤207 :控制同步提供程序获取服务器中对应的第二权限版本和第二缓存依赖 项版本;
[0100] 步骤208 :判断第一权限版本和第一缓存依赖项版本分别与对应的第二权限版本 和第二缓存依赖项版本是否完全相同,如果是,则执行步骤209 ;否则执行步骤210 ;
[0101] 在该步骤中,主要是同步提供程序将服务器中的第二权限版本与同步上下文信息 中第一权限版本进行对比,将服务器中的第二缓存依赖项版本与同步上下文信息中第一缓 存依赖项版本进行对比。
[0102] 步骤209 :确定缓存数据的版本,并执行步骤211 ;
[0103] 在该步骤中,也是在同步上下文信息中解析出缓存数据的版本。
[0104] 步骤210 :发送对应的第二权限版本和第二缓存依赖项版本对应的数据给目标客 户端,并结束当前流程;
[0105] 例如:一个公司的HR变为客户经理时,其客户端的权限版本和缓存依赖项版本势 必要发生变化,而不同权限版本和缓存依赖项版本对应的数据差异性和变化量较大,那么, 在该步骤中可以利用定义的缓存同步策略中的整表更新更新表中所有的数据,可以快速更 新数据。
[0106] 值得说明的是,本发明实施例中提及的功能菜单表GSPFunc其权限和缓存依赖项 均没有定义,则对于这种权限和缓存依赖项均没有定义的客户端来说,服务器在执行完步 骤206之后,可以忽略步骤207、步骤208和步骤210,而直接执行步骤209。
[0107] 步骤211 :判断缓存数据版本与服务器中对应的数据版本是否相同,如果是,则执 行步骤212 ;否则,执行步骤213 ;
[0108] 步骤212 :不更新缓存数据,并结束当前流程;
[0109] 步骤213 :设置缓存数据更新标志为Increment ;
[0110] 该步骤中设置的更新标志主要是为了明确告知客户端程序应采用何种策略进行 更新,避免引发不一致的错误。在前面已提及缓存同步策略主要有两种,由于本实施例的 GSPFunc表中数据变化量不大,选择时间戳增量的方式更新缓存数据。对于整表更新数据的 缓存同步策略来说,可以设置更新标志为All ;而对于如果未发生变化的数据,则可以设置 更新标志为None。
[0111] 步骤214 :确定缓存数据中各个缓存字段的时间戳;
[0112] 步骤215 :将对应的数据字段的时间戳与缓存数据中各个缓存字段的时间戳进行 对比,确定对应的数据字段的时间戳增量;
[0113] 例如:某一数据字段被修改过,那么该数据字段在服务器中的时间戳即为其修改 的时间,那么,客户端中与该数据字段对应的缓存数据字段的时间戳就与该数据字段在服 务器中的时间戳产生了时间差即为时间戳增量。
[0114] 步骤216 :利用时间戳增量,确定更新数据字段和删除数据字段,并提供更新字段 和删除字段给目标客户端。
[0115] 对于产生了时间戳增量的数据字段即为被修改过的数据字段,那么,仅将这发生 变化的数据字段发送给目标客户端,而对于被删处的数据字段可通过一定的标记标识出, 以使客户端根据这标识删除相应的缓存数据字段。
[0116] 在该步骤中,提供提供更新字段和删除字段给目标客户端的方式主要是,将相应 的数据、服务器端的版本信息以及增量更新标志等同步到同步上下文信息中,然后将该同 步上下文信息压缩返回到客户端通过压缩的方式可以有利于降低在网络上的传输数据量, 增强了程序在低带宽下的适应能力。
[0117] 如图3所示,本发明又一实施例提供一种数据缓存同步方法,应用于客户端,该方 法可以包括如下步骤:
[0118] 步骤301 :获取并加载至少一种缓存规则;
[0119] 步骤302 :根据加载的至少一种缓存规则,获取服务器发送的需要更新的数据;
[0120] 步骤303 :利用获取到的需要更新的数据,更新客户端中的缓存数据。
[0121] 在本发明一个实施例中,为了能够便捷的获取到缓存规则,该方法进一步包括:确 定缓存规则的编号与所述缓存规则的映射关系;步骤301的【具体实施方式】:根据所述映射 关系,提供至少一种缓存规则的编号给所述服务器,并获取所述服务器发送的与所述至少 一种缓存规则的编号对应的所述至少一种缓存规则。
[0122] 在本发明一个实施例中,为了提高获取服务器发送的需要更新的数据的效率和准 确性,在步骤301之后,在步骤302之前,进一步包括:确定所述缓存数据的版本以及所述至 少一种缓存规则中的缓存依赖中的第一权限版本和第一缓存依赖项版本中的任意一个或 多个;将所述缓存数据的版本、所述缓存依赖中的第一权限版本和第一缓存依赖项版本和 中的任意一个或多个发送给所述服务器;步骤302的【具体实施方式】:当所述服务器确定出 缓存数据的版本、所述缓存依赖中的第一权限版本和第一缓存依赖项版本和中的任意一个 与所述服务器中对应的版本不同时,获取服务器发送的需要更新的数据。
[0123] 在本发明一个实施例中,为了能够保证缓存规则启用,以顺利完成缓存同步,在步 骤301之后,在步骤302之前,进一步包括:判断所述至少一种缓存规则是否已启用,如果 是,则根据所述至少一种缓存规则中的存储定义和数据类型,在本地数据库构建缓存数据 表,并将缓存数据存储到所述缓存数据表中。
[0124] 在本发明一个实施例中,为了保证更新数据的正确性和准确性,在步骤302之后, 在步骤303之前,进一步包括:接收所述服务器发送的所述缓存数据的更新标志;判断所 述更新标志是All,None或者Increment ;步骤303的【具体实施方式】:当所述缓存数据的 更新标志为All时,清空缓存数据,并插入所述服务器发送的需要更新的数据;当所述当 前缓存数据的更新标志为None时,不修改所述缓存数据;当所述缓存数据的更新标志为 Increment时,则删除需要更新的缓存字段,并在所述删除的需要更新的缓存字段处,插入 对应的所述服务器发送的需要更新的数据。
[0125] 如图4所示,本发明另一实施例提供一种数据缓存同步方法,应用于客户端,该方 法可以包括如下步骤:
[0126] 步骤400 :确定缓存规则的编号与缓存规则的映射关系;
[0127] 在服务器定义缓存规则过程中,各个缓存规则都存在对应的编号,该步骤主要在 客户端存储缓存规则的编号与缓存规则的对应关系,那么,在后续步骤中,客户端仅需要提 供编号,就可以获取到编号对应的缓存规则。
[0128] 步骤401 :根据映射关系,提供至少一种缓存规则的编号给服务器;
[0129] 步骤402 :获取服务器发送的与至少一种缓存规则的编号对应的至少一种缓存规 则;
[0130] 步骤403 :判断至少一种缓存规则是否已启用,如果是,则执行步骤404 ;否则,执 行步骤405 ;
[0131] 由于缓存规则可以根据需求启用或关闭,那么,当客户端想要缓存数据之前,首先 就要通过该步骤察看客户端中缓存规则是否启用,只有启用才能进行后续的缓存同步。
[0132] 步骤404 :根据至少一种缓存规则中的存储定义和数据类型,在本地数据库构建 缓存数据表,并将缓存数据存储到缓存数据表中,并执行步骤406 ;
[0133] 定义的缓存规则包括:取数类型、缓存同步策略、客户端存储方式和缓存依赖中 的任意一种或多种。例如对于功能菜单表GSPFunc,为其定义的缓存规则为:取数类型定 义为表;表名称:GSPFunc ;过滤条件为FormType ='0',其中,FormType表征框架类型, 0表征《inform类型框架;选择时间戳增量同步缓存;存储路径:默认路径;缓存表名称: GSPFunc ;选择字段:选择GSPFunc表的全部字段;数据权限:无;缓存依赖项:无。
[0134] 步骤405 :启用上述至少一种缓存规则;
[0135] 步骤406 :确定缓存数据的版本以及第一权限版本和第一缓存依赖项版本;
[0136] 在该步骤中,第一权限版本和第一缓存依赖项版本来源于缓存依赖中。
[0137] 步骤407 :将缓存数据的版本、第一权限版本和第一缓存依赖项版本发送给服务 器;
[0138] 在该步骤中,客户端将缓存数据的版本、第一权限版本和第一缓存依赖项版本存 储到同步上下文信息,通过将同步上下文信息发送给服务器来实现该步骤。另外还可以将 缓存同步方式如整表更新或者时间戳更新方式也通过同步上下文信息一同发送给服务器。
[0139] 步骤408 :当服务器确定出缓存数据的版本、第一权限版本和第一缓存依赖项版 本中的任意一个与服务器中对应的版本不同时,获取服务器发送的需要更新的数据;
[0140] 在该步骤中,服务器通过将更新的数据加载到同步上下文信息中,并将同步上下 文信息压缩打包发送给客户端,客户端通过解压压缩包获取到同步上下文信息,从中解析 出需要更新的数据。
[0141] 步骤409 :接收服务器发送的缓存数据的更新标志;
[0142] 只有当服务器中的版本和客户端中的版本不同时,才确定缓存数据需要更新。通 过该步骤中的更新标志,客户端判断出是何种更新方式,例如:对于服务器中的权限版本和 缓存依赖项版本与客户端中的权限版本和缓存依赖项版本不同时,数据变化量较大,可以 选择整表更新的方式来更新缓存数据,此时,更新标志设置为All ;对于数据变化量不大的 缓存表来说,可以通过时间戳的方式来更新缓存数据,此时,更新标志设置为
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1