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

文档序号:9547277阅读:541来源:国知局
一种数据缓存同步方法、服务器和客户端的制作方法
【技术领域】
[0001] 本发明涉及数据缓存技术领域,特别涉及一种数据缓存同步方法、服务器和客户 端。
【背景技术】
[0002] 智能客户端(Smart Client)技术是一种基于互联网(Internet)的富客户端技 术。由于其可充分利用客户端机器的本地资源,满足用户界面交互的各种个性化需求,并且 可提供本地数据缓存、离线应用等强大功能,使得智能客户端在企业管理软件领域应用越 来越广泛。
[0003] 目前,智能客户端的数据缓存方式主要是,服务器将所有数据发送到客户端的隔 离存储空间进行存储,针对每一个客户端单独设置对应的缓存规则,客户端从隔离存储空 间获取所有数据,其中,这所有数据包含了更新的数据和未更新的数据,根据客户端存在的 缓存规则如权限规则等,客户端进行数据筛选和比较,仅将更新的数据替换掉对应的缓存 数据。在现有的这种技术中,客户端获取的所有数据的数据量可以达到几兆、数十兆,而更 新的数据的数据量很小,也就是说,客户端每次获取较大数据量的数据,而仅需要很小一部 分数据进行更新缓存数据,造成了客户端缓存效率较低。

【发明内容】

[0004] 本发明提供一种数据缓存同步方法、服务器和客户端,从而提高客户端的缓存效 率。
[0005] -种数据缓存同步方法,应用于服务器中,在所述服务器中保存每一个客户端对 应的缓存规则;还包括:
[0006] 确定目标客户端,并将所述目标客户端对应的至少一种缓存规则发送给所述目标 客户端;
[0007] 确定所述目标客户端需要更新的数据;
[0008] 根据所述目标客户端对应的至少一种缓存规则,将确定出的目标客户端需要更新 的数据发送给所述目标客户端。
[0009] 优选地,所述在所述服务器中保存每一个客户端对应的缓存规则,包括:
[0010] 定义取数类型、缓存同步策略、客户端存储方式和缓存依赖中的任意一种或多 种;
[0011] 将所述定义封装为缓存元数据;
[0012] 将所述缓存元数据加载到服务器。
[0013] 优选地,所述确定所述目标客户端需要更新的数据,包括:
[0014] 确定缓存数据的版本;
[0015] 将所述缓存数据版本与服务器中对应的数据版本进行对比;
[0016] 当所述缓存数据版本与服务器中对应的数据版本不同时,确定所述服务器中对应 的数据版本对应的数据为所述目标客户端需要更新的数据。
[0017] 优选地,所述确定所述目标客户端需要更新的数据,包括:
[0018] 确定所述目标客户端的取数类型、缓存依赖中的第一权限版本和第一缓存依赖项 版本;
[0019] 根据所述目标客户端的取数类型,实例化对应的同步提供程序;
[0020] 控制所述同步提供程序获取服务器中对应的第二权限版本和第二缓存依赖项版 本;
[0021] 判断所述第一权限版本和第一缓存依赖项版本分别与所述对应的第二权限版本 和所述第二缓存依赖项版本是否完全相同,如果是,则确定所述目标客户端的缓存数据的 版本,并根据所述目标客户端的缓存数据的版本,确定所述目标客户端需要更新的数据;否 贝1J,发送所述对应的第二权限版本和所述第二缓存依赖项版本对应的数据给所述目标客户 端。
[0022] 优选地,所述根据所述目标客户端对应的至少一种缓存规则,将确定出的目标客 户端需要更新的数据发送给所述目标客户端,包括:
[0023] 根据所述定义的缓存同步策略,设置缓存数据更新标志为All,发送所述缓存数据 对应的所有数据给所述目标客户端。
[0024] 优选地,根据所述定义的缓存同步策略,确定所述缓存数据中各个缓存字段的时 间戳;设置缓存数据更新标志为Increment,将所述对应的数据字段的时间戳与所述缓存 数据中各个缓存字段的时间戳进行对比,确定所述对应的数据字段的时间戳增量;
[0025] 利用所述时间戳增量,确定更新数据字段和删除数据字段,并提供所述更新数据 字段和删除数据字段给所述目标客户端。
[0026] -种数据缓存同步方法,应用于客户端,获取并加载至少一种缓存规则;还包括:
[0027] 根据所述加载的至少一种缓存规则,获取服务器发送的需要更新的数据;
[0028] 利用所述获取到的需要更新的数据,更新所述客户端中的缓存数据。
[0029] 优选地,上述方法进一步包括:确定缓存规则的编号与所述缓存规则的映射关 系;
[0030] 所述获取至少一种缓存规则,包括:根据所述映射关系,提供至少一种缓存规则的 编号给所述服务器,并获取所述服务器发送的与所述至少一种缓存规则的编号对应的所述 至少一种缓存规则。
[0031] 优选地,在所述获取并加载至少一种缓存规则之后,在所述获取服务器发送的需 要更新的数据之前,进一步包括:
[0032] 确定所述缓存数据的版本以及所述至少一种缓存规则中的缓存依赖中的第一权 限版本和第一缓存依赖项版本中的任意一个或多个;
[0033] 将所述缓存数据的版本、所述缓存依赖中的第一权限版本和第一缓存依赖项版本 和中的任意一个或多个发送给所述服务器;
[0034] 所述获取服务器发送的需要更新的数据,包括:当所述服务器确定出缓存数据的 版本、所述缓存依赖中的第一权限版本和第一缓存依赖项版本中的任意一个与所述服务器 中对应的版本不同时,获取服务器发送的需要更新的数据。
[0035] 优选地,在所述获取并加载至少一种缓存规则之后,在所述获取服务器发送的需 要更新的数据之前,进一步包括:
[0036] 判断所述至少一种缓存规则是否已启用,如果是,则根据所述至少一种缓存规则 中的存储定义和数据类型,在本地数据库构建缓存数据表,并将缓存数据存储到所述缓存 数据表中。
[0037] 优选地,在所述获取服务器发送的需要更新的数据之后,在所述更新所述客户端 中的缓存数据之前,进一步包括:
[0038] 接收所述服务器发送的所述缓存数据的更新标志;
[0039] 判断所述更新标志是All,None或者Increment ;
[0040] 所述更新所述缓存数据,包括:当所述缓存数据的更新标志为All时,清空缓存 数据,并插入所述服务器发送的需要更新的数据;当所述当前缓存数据的更新标志为None 时,不修改所述缓存数据;当所述缓存数据的更新标志为Increment时,则删除需要更新的 缓存字段,并在所述删除的需要更新的缓存字段处,插入对应的所述服务器发送的需要更 新的数据。
[0041] 一种服务器,包括:
[0042] 缓存组件单元,用于保存外设的每一个客户端对应的缓存规则;
[0043] 第一发送单元,用于确定外设的目标客户端,并将所述缓存组件单元保存的所述 外设的目标客户端对应的至少一种缓存规则发送给所述外设的目标客户端;
[0044] 确定单元,用于确定所述外设的目标客户端需要更新的数据;
[0045] 第二发送单元,用于根据所述第一发送单元发送的所述外设的目标客户端对应的 至少一种缓存规则,将所述确定单元确定出的外设的目标客户端需要更新的数据发送给所 述外设的目标客户端。
[0046] 优选地,所述缓存组件单元,用于定义取数类型、缓存同步策略、客户端存储方式 和缓存依赖中的任意一种或多种;将所述定义封装为缓存元数据;并将所述缓存元数据加 载到服务器。
[0047] 优选地,所述确定单元,用于确定缓存数据的版本;将所述缓存数据版本与服务器 中对应的数据版本进行对比;当所述缓存数据版本与服务器中对应的数据版本不同时,确 定所述服务器中对应的数据版本对应的数据为所述目标客户端需要更新的数据。
[0048] 优选地,所述确定单元,用于确定所述目标客户端的取数类型、缓存依赖中的第一 权限版本和第一缓存依赖项版本;根据所述目标客户端的取数类型,实例化对应的同步提 供程序;控制所述同步提供程序获取服务器中对应的第二权限版本和第二缓存依赖项版 本;判断所述第一权限版本和第一缓存依赖项版本分别与所述对应的第二权限版本和所述 第二缓存依赖项版本是否相同,如果是,则确定所述目标客户端的缓存数据的版本,并根据 所述目标客户端的缓存数据的版本,确定所述目标客户端需要更新的数据;否则,发送所述 对应的第二权限版本和所述第二缓存依赖项版本对应的数据给所述目标客户端。
[0049] 优选地,所述第二发送单元,用于根据所述定义的缓存同步策略,设置缓存数据更 新标志为All,发送缓存数据对应的所有数据给所述外设的目标客户端;或者,根据所述定 义的缓存同步策略,确定所述缓存数据中各个缓存字段的时间戳;设置缓存数据更新标志 为Increment,将所述对应的数据字段的时间戳与所述缓存数据中各个缓存字段的时间戳 进行对比,确定所述对应的数据字段的时间戳增量;利用所述时间戳增量,提供更新数据字 段和删除数据字段给所述外设的目标客户端。
[0050] 一种客户端,包括:
[0051] 加载单元,用于获取并加载至少一种缓存规则;
[0052] 获取单元,用于根据所述加载单元加载的至少一种缓存规则,获取外设的服务器 发送的需要更新的数据;
[0053] 更新单元,用于利用所述获取单元获取到的需要更新的数据,更新所述客户端中 的缓存数据。
[0054] 优选地,上述客户端,进一步包括:第一确定单元,其中,
[0055] 所述第一确定单元,用于确定缓存规则的编号与所述缓存规则的映射关系;
[0056] 所述加载单元,用于根据所述第一确定单元确定的映射关系,提供至少一种缓存 规则的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1