一种数据关系的更新方法及装置与流程

文档序号:13812816阅读:154来源:国知局

本发明涉及信息处理技术领域,特别涉及一种数据关系的更新方法及装置。



背景技术:

大多数企业、组织机构都有一个完整的多层级的人员组织关系即组织架构关系,类似公司->事业群->部门->中心->小组->成员,组织架构是几乎所有企业即时通信(instantmessaging,im)系统都具备的基础功能,所有的企业沟通、办公协作都基于组织架构关系进行。

通常,组织架构关系的原始数据是从服务端下载并存储在本地数据库,对于企业的即可通信客户端比如企业微信和阿里钉钉,它们都具备组织架构关系的展示能力。同时,随着企业或组织机构人员的变动、部门节点的变更,需要有一套更新机制,现有的一般做法是即时通信客户端在启动时检测和下载最新组织架构关系的数据,然后替换掉本地数据库。

这样如果即时通信客户端在更新组织架构关系时,即时通信客户端正执行查看组织架构关系的操作,如查看某个部门节点或查看某个员工的详情,此时需要等更新完毕后才能执行,如果组织架构关系的数据量比较大,可能要等待数秒才能完成更新,给用户带来了体验延迟问题;如果在更新组织架构关系的数据库时,即时通信客户端突然退出,这样可能造成数据库损坏,造成即时通信客户端无法使用等问题。



技术实现要素:

本发明实施例提供一种数据关系的更新方法及装置,实现了客户端在更新数据关系时用更新数据库,在运行数据关系时用运行数据库。

本发明实施例提供一种数据关系的更新方法,包括:

获取客户端储存的数据关系的运行数据库的第一版本号,及服务器储存的所述数据关系的最新版本号;

如果所述第一版本号与最新版本号不一致,从所述服务器获取所述最新版本号对应的最新数据关系;

根据所述最新数据关系更新所述客户端储存的所述数据关系的更新数据库;

将所述更新后的更新数据库设置为所述数据关系的最新运行数据库,将所述运行数据库设置为最新更新数据库。

本发明实施例还提供一种数据关系的更新装置,包括:

版本号获取单元,用于获取客户端储存的数据关系的运行数据库的第一版本号,及服务器储存的所述数据关系的最新版本号;

关系获取单元,用于如果所述第一版本号与最新版本号不一致,从所述服务器获取所述最新版本号对应的最新数据关系;

更新单元,用于根据所述最新数据关系更新所述客户端储存的所述数据关系的更新数据库;

设置单元,用于将所述更新后的更新数据库设置为所述数据关系的最新运行数据库,将所述运行数据库设置为最新更新数据库。

可见,在本实施例的方法中,客户端会储存数据关系的两套数据库,即运行数据库和更新数据库,在需要更新数据关系时,根据获取的最新数据关系更新客户端中储存的更新数据库,并将更新后的更新数据库设置为最新运行数据库。这样运行数据库和更新数据库互不影响,对数据关系的更新操作不会影响到客户端运行数据关系的操作,能有效解决现有的单个数据库读写体验延迟问题,且能有效避免因数据关系更新失败导致的数据损坏风险,进而增强了客户端的健壮性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据关系的更新方法的流程图;

图2是本发明应用实施例提供的一种数据关系的更新方法的流程图;

图3是本发明实施例提供的一种数据关系的更新装置的结构示意图;

图4是本发明实施例提供的另一种数据关系的更新装置的结构示意图;

图5是本发明实施例提供的一种客户端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明实施例提供一种数据关系的更新方法,主要应用于数据关系系统中,在该系统中包括服务器和客户端,一般情况下,数据关系是储存在服务器,且可以由客户端下载到客户端进行储存,其中数据关系可以是企业的组织架构关系等数据关系。本实施例的方法是系统中的客户端所执行的方法,流程图如图1所示,包括:

步骤101,获取客户端储存的数据关系的运行数据库的第一版本号,及服务器储存的数据关系的最新版本号。

在本实施例中,在客户端中储存着数据关系的两套数据库,即运行数据库和更新数据库,每套数据库分别对应一个版本号,且分别对应一个标识符。具体地,可以用0,1来分别作为运行数据库和更新数据库的标识符,这样通过其中一个数据库的标识符flag1可以计算得到另一个数据库的标识符flag2,即flag2=(flag1+1)%2;而在服务器中储存着数据关系的最新数据库。其中,运行数据库是客户端在运行数据关系时所用的数据库,更新数据库是客户端更新数据关系时所用的数据库,两套数据库互不影响。

可以理解,客户端可以在启动时触发执行本实施例的流程,或是按照预置的周期触发执行本实施例的流程。客户端可以向服务器发送请求以获取最新版本号。

步骤102,判断第一版本号与最新版本号是否一致,如果一致,则不会更新客户端储存的该数据关系的更新数据库;如果不一致,则执行步骤103。

步骤103,从服务器获取最新版本号对应的最新数据关系。

步骤104,根据步骤103获取的最新数据关系更新客户端储存的数据关系的更新数据库。

步骤105,将更新后的更新数据库设置为数据关系的最新运行数据库,且可以在客户端不使用运行数据库时,将已有旧的运行数据库设置为数据关系的最新更新数据库。具体地,客户端可以将更新后的更新数据库的标识符设置为运行数据库的标识符,而将已有旧的运行数据库的标识符设置为更新数据库的标识符。

需要说明的是,在一种情况下,客户端在执行上述步骤103之前,还可以从服务器获取数据关系的第一更新方式信息,该第一更新方式信息为全量更新的信息,这样客户端执行步骤103时,从服务器获取的最新数据关系是完整的数据关系;则客户端在执行步骤104时,会用步骤103获取的最新数据关系替换客户端储存的数据关系的更新数据库。

在另一种情况下,客户端在执行上述步骤103之前,还可以从服务器获取数据关系的第二更新方式信息,该第二更新方式信息为增量更新的信息,这样客户端执行步骤103时,从服务器获取的最新数据关系是需要增加的部分数据关系;则客户端在执行步骤104时,会在客户端储存的数据关系的更新数据库中增加步骤103获取的最新数据关系。

进一步地,为了节省客户端的移动数据流量,客户端可以在确定该客户端属于无线网络环境中时,才会执行获取最新数据关系的步骤,即上述步骤103。

可见,在本实施例的方法中,客户端会储存数据关系的两套数据库,即运行数据库和更新数据库,在需要更新数据关系时,根据获取的最新数据关系更新客户端中储存的更新数据库,并将更新后的更新数据库设置为最新运行数据库。这样运行数据库和更新数据库互不影响,对数据关系的更新操作不会影响到客户端运行数据关系的操作,能有效解决现有的单个数据库读写体验延迟问题,且能有效避免因数据关系更新失败导致的数据损坏风险,进而增强了客户端的健壮性。

以下以一个具体的实施例来说明本实施例的数据关系的更新方法,本实施例中的数据关系是企业的组织架构关系,流程图如图2所示,包括:

步骤201,客户端在启动时,获取本地配置表中的标识符flg1,比如为0,该标识符表示组织架构关系的运行数据库的标识符,根据该flg1可以计算得到客户端储存的组织架构关系的更新数据库的标识符为1。

步骤202,客户端根据运行数据库的标识符flg1,查询得到对应运行数据库的第一版本号,并请求服务器下发更新策略。

步骤203,服务器会将服务器储存的组织架构关系的最新版本号及更新方式信息发送给客户端,其中更新方式信息可以为全量更新的信息,比如将状态码(statuscode)发送给客户端,当状态码为501时,表示全量更新组织架构关系。

步骤204,客户端将第一版本号与服务器下发的最新版本号进行比较,如果一致,则不会更新组织架构关系的更新数据库;如果不一致,则从服务器获取最新的组织架构关系。

步骤205,客户端根据从服务器获取的更新方式信息,及最新的组织架构关系,更新组织架构关系的更新数据库。如果是全量更新,直接用最新的组织架构关系替换更新数据库;如果是增量更新,将最新的组织架构关系储存到更新数据库中。

步骤206,客户端设置更新后的更新数据库的标识符和已有旧的运行数据库的标识符,具体地,客户端将更新后的更新数据库的标识符设置为0,将已有就的运行数据库的标识符设置为1,这样更新后的更新数据库就成为新的运行数据库。或者客户端直接将本地配置表中的标识符设置为1。

本发明实施例还提供一种数据关系的更新装置,比如上述的客户端,其结构示意图如图3所示,具体可以包括:

版本号获取单元10,用于获取客户端储存的数据关系的运行数据库的第一版本号,及服务器储存的所述数据关系的最新版本号;

关系获取单元11,用于如果所述版本号获取单元10获取的第一版本号与最新版本号不一致,从所述服务器获取所述最新版本号对应的最新数据关系;

更新单元12,用于根据所述关系获取单元11获取的最新数据关系更新所述客户端储存的所述数据关系的更新数据库;

设置单元13,用于将所述更新单元12更新后的更新数据库设置为所述数据关系的最新运行数据库,将所述运行数据库设置为最新更新数据库。

设置单元13具体用于将所述更新后的更新数据库的标识符设置为运行数据库的标识符,将所述运行数据库的标识符设置为更新数据库的标识符。

可见,在本实施例的装置会储存数据关系的两套数据库,即运行数据库和更新数据库,在需要更新数据关系时,更新单元12根据关系获取单元11获取的最新数据关系更新客户端中储存的更新数据库,并由设置单元13将更新后的更新数据库设置为最新运行数据库。这样运行数据库和更新数据库互不影响,对数据关系的更新操作不会影响到客户端运行数据关系的操作,能有效解决现有的单个数据库读写体验延迟问题,且能有效避免因数据关系更新失败导致的数据损坏风险,进而增强了客户端的健壮性。

参考图4所示,在一个具体的实施例中,数据关系的更新装置除了可以包括如图3所示的结构外,还可以包括方式获取单元14和环境确定单元15,其中:

方式获取单元14,用于从所述服务器获取所述数据关系的第一更新方式信息,所述第一更新方式信息为全量更新的信息;

在这种情况下,上述关系获取单元11从服务器获取的最新数据关系可以是完整的数据关系,则更新单元12具体用于根据方式获取单元14获取的第一更新方式信息,用所述最新数据关系替换所述客户端储存的所述数据关系的更新数据库。

进一步地,该方式获取单元14,还用于从所述服务器获取所述数据关系的第二更新方式信息,所述第二更新方式信息为增量更新的信息;

在这种情况下,上述关系获取单元11从服务器获取的最新数据关系可以是需要增加的部分数据关系,则更新单元12具体用于根据方式获取单元14获取的第二更新方式信息,在所述客户端储存的所述数据关系的更新数据库中增加所述最新数据关系。

环境确定单元15,用于确定所述客户端是否属于无线网络环境中,如果是,则通知所述关系获取单元11执行获取所述最新数据关系的步骤。

本发明实施例还提供一种客户端,其结构示意图如图5所示,该客户端可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)20(例如,一个或一个以上处理器)和存储器21,一个或一个以上存储应用程序221或数据222的存储介质22(例如一个或一个以上海量存储设备)。其中,存储器21和存储介质22可以是短暂存储或持久存储。存储在存储介质22的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对客户端中的一系列指令操作。更进一步地,中央处理器20可以设置为与存储介质22通信,在客户端上执行存储介质22中的一系列指令操作。

客户端还可以包括一个或一个以上电源23,一个或一个以上有线或无线网络接口24,一个或一个以上输入输出接口25,和/或,一个或一个以上操作系统223,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述方法实施例中所述的由客户端所执行的步骤可以基于该图5所示的客户端的结构。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom)、随机存取存储器ram)、磁盘或光盘等。

以上对本发明实施例所提供的数据关系的更新方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1