CN115577040A - 层级数据同步方法、装置、电子设备和可读介质 - Google Patents
层级数据同步方法、装置、电子设备和可读介质 Download PDFInfo
- Publication number
- CN115577040A CN115577040A CN202110764379.3A CN202110764379A CN115577040A CN 115577040 A CN115577040 A CN 115577040A CN 202110764379 A CN202110764379 A CN 202110764379A CN 115577040 A CN115577040 A CN 115577040A
- Authority
- CN
- China
- Prior art keywords
- information
- server
- data
- synchronization
- level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种层级数据同步的方法、装置、电子设备和可读介质。该方法包括:获取针对多层级数据中指定层级的目标对象的数据加载指令,数据加载指令包括目标对象的对象标识;根据目标对象的对象标识,从本地信息中读取目标对象的对象信息,对象信息中包括目标对象的同步识别码;向服务器发送针对于目标对象的信息同步请求,信息同步请求中包括目标对象的同步识别码;接收服务器发送的针对信息同步请求的响应信息,响应信息包括服务器根据同步识别码确定的差异数据;根据响应信息中的差异数据,更新本地信息中目标对象的对象信息,以便展示更新后的目标对象。该方法能够降低对终端计算资源的消耗,提高客户端的工作效率和可用性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种层级数据同步的方法、装置、电子设备和可读介质。
背景技术
随着计算机和移动互联网的发展,众多企业开始通过手机等终端上的企业管理应用来进行企业办公管理。用户通过终端可以查询到企业的信息和架构,并且可以通过终端进行企业的内部流程管理。
目前,在企业管理应用中,当企业和企业内部的数据发生变动时,通常会采用增量更新的方式将更新的内容同步给各个客户端,从而确保客户端的数据正确。
然而,对于拥有多个企业的大型集团,集团架构比较复杂,数据变动相对更加频繁,各个企业内部的变动将会导致客户端频繁发起同步请求,从而占用客户端的计算资源,降低客户端的使用效率和可用性。
发明内容
基于上述技术问题,本申请提供一种层级数据同步方法、装置、电子设备和可读介质,以使得用户终端不会由于架构中的相对频繁的数据更新而与服务器进行频繁的数据同步,而是按照用户的需求来更新相关联的数据,从而能够降低对用户终端的计算资源的消耗,提高客户端的工作效率和可用性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种层级数据同步的方法,包括:
获取针对多层级数据中指定层级的目标对象的数据加载指令,所述数据加载指令包括所述目标对象的对象标识;
根据所述目标对象的对象标识,从本地信息中读取所述目标对象的对象信息,所述对象信息中包括所述目标对象的同步识别码;
向服务器发送针对于所述目标对象的信息同步请求,所述信息同步请求中包括所述目标对象的同步识别码,以使所述服务器根据所述同步识别码确定所述目标对象与所述服务器中保存的对象数据之间的差异数据;
接收所述服务器发送的针对所述信息同步请求的响应信息,所述响应信息包括所述服务器根据所述同步识别码确定的差异数据;
根据所述响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象。
根据本申请实施例的另一个方面,提供一种层级数据同步装置,包括:
指令获取模块,用于获取针对多层级数据中指定层级的目标对象的数据加载指令,所述数据加载指令包括所述指定层级的对象标识;
信息读取模块,用于根据所述目标对象的对象标识,从本地信息中读取所述目标对象的对象信息,所述对象信息中包括所述目标对象的同步识别码;
请求发送模块,用于向服务器发送针对于所述目标对象的信息同步请求,所述信息同步请求中包括所述目标对象的同步识别码,以使所述服务器根据所述同步识别码确定所述目标对象与所述服务器中保存的对象数据之间的差异数据;
信息接收模块,用于接收所述服务器发送的针对所述信息同步请求的响应信息,所述响应信息包括所述服务器根据所述同步识别码确定的差异数据;
信息更新模块,用于根据所述响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置还包括:
拉取请求模块,用于向所述服务器发送数据拉取请求,所述数据拉取请求中包括用户标识,所述用户标识与所述指定层级的指定层级对象和所述指定层级的上一层级的上一层级对象相关联,每个上一层级对象对应于一个或多个指定层级对象;
索引接收模块,用于接收所述服务器发送的指定层级索引,其中,所述指定层级索引用于索引与所述用户标识相关联的上一层级对象所对应的指定层级对象;
信息获取模块,用于根据所述指定层级索引,从所述服务器获取所述指定层级索引对应的各个指定层级对象的对象信息,其中,所述指定层级对象的对象信息包括所述指定层级的下一层级的层级信息。
在本申请的一些实施例中,基于以上技术方案,信息获取模块包括:
同步识别码获取单元,用于根据所述指定层级索引,从所述服务器获取所述指定层级的各个指定层级对象所对应的同步识别码;
第一查询请求单元,用于根据所述指定层级索引,向所述服务器发送对应于指定层级对象的第一查询请求,其中,所述第一查询请求包含指定层级对象的同步识别码;
第一响应接收单元,用于接收并存储所述服务器发送针对所述第一查询请求的第一查询响应消息,其中,所述第一查询响应消息包括所述同步识别码对应的对象信息。
在本申请的一些实施例中,基于以上技术方案,信息获取模块包括:
版本标识值获取单元,用于根据所述指定层级索引,从所述服务器获取所述指定层级的各个指定层级对象所对应的同步识别码;
第二查询请求单元,用于向所述服务器发送第二查询请求,其中,所述第二查询请求包括所述用户标识所关联的指定层级对象的同步识别码;
第二响应接收单元,用于接收所述服务器发送针对所述第二查询请求的第二查询响应消息,其中,所述第二查询响应消息包括与所述用户标识相关联的指定层级对象的对象信息。
在本申请的一些实施例中,基于以上技术方案,信息更新模块包括:
对象更新单元,用于若差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息更新时间晚,则将根据所述相应信息更新所述目标对象的对象信息;
对象发送单元,用于若差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息的更新时间早,则将所述目标对象的对象信息发送给所述服务器,以使所述服务器根据所述目标对象的对象信息进行更新。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置还包括:
变更消息接收模块,用于接收所述服务器发送的对象变更消息,其中,所述对象变更消息包括所述指定层级的上一层级的上一层级对象的对象标识;
变更索引获取模块,用于根据所述对象变更消息,从所述服务器获取对象变更索引,其中,所述对象变更索引用于索引所述上一层级对象所对应的指定层级对象;
变更更新模块,用于根据所述对象变更索引以及所述本地信息中的指定层级索引,更新所述本地信息中的指定层级对象和对象信息。
在本申请的一些实施例中,基于以上技术方案,变更更新模块包括:
新增对象确定单元,用于对所述对象变更索引与所述本地信息中的指定层级索引进行差异计算,得到新增对象;
新增对象获取单元,用于根据所述新增对象的对象标识,从所述服务器获取所述新增对象的新增对象信息;
新增对象添加单元,用于将所述对象变更索引和所述新增对象信息添加到所述本地信息中。
在本申请的一些实施例中,基于以上技术方案,变更更新模块包括:
待删除对象确定单元,用于对所述对象变更索引与所述本地信息中的指定层级索引进行差异计算,确定待删除对象;
信息删除单元,用于从所述指定层级索引删除所述待删除对象的索引并且从所述本地信息中删除所述待删除对象的对象信息。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置还包括:
选择触发模块,用于在对象选择界面上触发针对所述目标对象的对象选择操作;
标识获取模块,用于根据所述对象选择操作,获取所述目标对象的对象标识;
指令生成模块,用于根据所述目标对象的对象标识,生成所述数据加载指令。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置还包括:
对象加载模块,用于在对象浏览界面上加载多个对象选项;
对象展示模块,用于响应于针对所述目标对象的点选操作,展示所述目标对象的对象信息;
信息刷新模块,用于根据所述响应信息刷新所展示的所述目标对象的对象信息。
根据本申请实施例的另一个方面,提供一种层级数据同步的方法,包括:
接收第一客户端发送的信息同步请求,所述信息同步请求包括指定层级中目标对象的同步识别码;
根据所述同步识别码,确定所述服务器中待更新对象的数据与所述同步识别码所对应的数据之间的差异数据,并且根据所述差异数据生成针对所述信息同步请求的响应信息;
向所述第一客户端发送所述响应信息。
根据本申请实施例的另一个方面,提供一种层级数据同步装置,包括:
消息接收模块,用于接收第一客户端发送的信息同步请求,所述信息同步请求包括指定层级中目标对象的同步识别码;
信息获取模块,用于根据所述同步识别码,确定所述服务器中待更新对象的数据与所述同步识别码所对应的数据之间的差异数据,并且根据所述差异数据生成针对所述信息同步请求的响应信息;
消息发送模块,用于向所述第一客户端发送所述响应信息。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置还包括:
控制信息接收模块,用于接收第二客户端发送的对象控制信息,其中,所述对象控制信息中包括所述指定层级的上一层级的上一层级对象的对象标识以及针对于所述指定层级的对象控制操作,所述对象控制操作包括在所述指定层级中创建或者删除目标对象的操作,每个上一层级对象对应于一个或多个指定层级对象;
操作执行模块,用于根据所述对象控制信息,执行所述对象控制操作;
变更消息生成模块,用于根据所述对象控制操作的执行结果,生成对象变更消息,其中,所述对象变更消息包括所述上一层级对象的对象标识;
变更发送模块,用于向所述第一客户端发送所述对象变更消息。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,该处理器配置为经由执行可执行指令来执行如以上技术方案中的层级数据同步的方法。
根据本申请实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时实现如以上技术方案中的层级数据同步的方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供层级数据同步的方法。
在本申请的实施例中,根据数据加载指令,从服务器获取数据加载索指令所针对的指定层级的层级对象的信息,并且对本地信息进行更新,以便向用户显示更新后的信息。由于在数据同步的过程中,在获取到数据加载指令时,才会针对用户当前浏览层级的层级对象进行更新,因此,面对组织架构相对复杂的情况,用户终端不会由于架构中的相对频繁的数据更新而与服务器进行频繁的数据同步,而是按照用户的需求来更新相关联的数据,从而能够降低对用户终端的计算资源的消耗,提高客户端的工作效率和可用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在附图中:
图1示出了本申请实施例中的示例性物理架构示意图;
图2为本申请实施例中的总体同步流程的示意图;
图3示出了本申请实施例中的一种层级数据同步的方法的流程示意图;
图4为本申请实施例中的存储结构的示意图;
图5示出了本申请实施例中的进行首次同步的流程示意图;
图6为本申请实施例中对象选择界面的示意图;
图7是本申请实施例中的对象浏览界面的示意图;
图8为本申请实施例中总体同步流程的数据交互图;
图9示出了本申请实施例中的一种层级数据同步的方法的流程示意图;
图10示意性地示出了本申请实施例中层级数据同步装置的组成框图;
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,在本申请的方案可以应用在大型集团的企业层级数据中,或者应用在对于多个企业或者组织进行统一管理的层级数据中。在此类场景中,多个不同企业、部门、公司或者组织等单位被统一管理在一个统一的总体架构中,架构中的各个用户均可以通过终端浏览整个架构中各个单位的信息。用户可以根据层级数据来来办公或者办理各类流程。
可以理解,在统一的总体架构中进行管理并不代表各个单位之间具有业务上的关联关系或者具有管理层次上的关联关系。例如,在一个场景中,本申请的方案可以应用于教育管理部门的层级数据中,教育管理部门将其管辖的所有学校都管理在统一的总体结构中,具体而言,即教育管理部门下包括其管辖的各个学校,每个学校中则包括学校内部的各个部门,每个部门则包括所属的教职员工。在此场景中,一个教育管理部门的辖区范围内可能存在上百所学校,教职员工数量则更加庞大。在另一个场景中,本申请的方案可以应用在集团公司或者连锁企业的层级数据中,此类组织架构中包括多个企业,每个企业可能具有不同的品牌、职能、结构或者从属级别,例如,集团的每个企业还可能包括更下一级的分公司或者办事处等二级单位,因此架构更加复杂,所涉及的人员也可能更多。在上述的实施例中,由于所涉及的单位和人员众多,其中部门或者人员会频繁发生变动,从而会引起其他用户的终端与服务器进行数据同步来获取最新的信息,消耗用户终端的处理能力。本申请的方案在上述的场景中,可以在及时更新用户终端的数据的前提下,避免用户终端频繁进行数据同步,从而避免过度消耗用户终端的处理能力,同时还能节省用于数据同步的流量。
本申请的应用场景通常为用于进行企业管理的企业层级数据。该系统通常由服务器以及各类用户终端组成。用户终端通过应用软件、浏览器或者移动应用与服务器通信,来访问企业层级数据。为了便于介绍,请参阅图1,图1示出了本申请实施例中的示例性物理架构示意图。
由图1可以看出,该物理架构中包括服务器以及电脑、手机等各类终端设备。终端设备通过可以通过有线或者无线网络与服务器通信。终端在需要登录企业管理系统时,可以通过终端上安装的应用或者浏览器等程序来连接到服务器来与服务器进行数据同步以及使用系统的各类功能。具体地,在一个实施例中,企业管理系统可以是一种用于即时通信服务的系统,用户终端上安装对应的通信软件,用户按照实际情况加入到对应的所述单位中,并且可以在通信软件中浏览所加入组织的组织结构、人员以及办理各类申请、办公或者业务审批等操作。
图1中所示出的服务器具体可以是一台服务器、包括多台服务器的服务器集群或者云服务器。服务器上运行有用于支持管理系统运行的各类服务,例如数据同步服务、流程服务或者即时消息服务等。终端设备通过向各类服务发送相应的请求来获取所需要的数据或者服务。下面结合图1中所示出的架构介绍本申请的层级数据同步的运行方式。以手机等移动终端为例,首先,用户在终端上安装相应的软件应用并且注册用户账号,或者由系统管理员为用户创建账号并分配给特定用户。管理系统中存储有对应于实际企业实体的企业结构,用户的账号可以按照实际的情况添加到系统中的各个单位中,例如,加入到所属公司的所述部门中。用户在用户终端上启动软件程序,并且登录用户账号,软件程序在启动的过程中,将会与服务器进行同步来获取软件程序所需要的信息,例如组织结构信息、成员信息、各类通知以及与用户账号相关联的业务信息。用户在使用软件程序的过程中,可以浏览所在集团的组织结构,当用户点击某个企业时,应用程序将会向服务器发起数据同步。服务器根据应用程序的请求向终端发送该企业的最新数据。终端在接收到服务器发送的最新数据后,将显示的数据刷新成最新数据,以完成数据同步和显示的过程。
可以理解的是,图1中所示出的场景仅为本申请的方案所应用的场景示例,实际的应用场景可以采用其他适合网络结构,例如加入代理服务器和多级网络等,本申请对此不作限制。
下面对本申请的方案的总体同步流程进行介绍。为了便于介绍,请参阅图2,图2为本申请实施例中的总体同步流程的示意图。具体地,在步骤201中,对于多层级数据的同步过程从客户端向服务器发起数据同步开始。开始同步后,在步骤202中,客户端首先会根据需要同步的数据层级,从服务器获取该数据层级的层级对象索引,层级对象索引用于索引该数据层级中的多个层级对象。随后,在步骤203中,客户端根据所获得的层级对象索引和本地存储的层级对象索引来确定是否存在增量索引,如果不存在,则流程直接在步骤207中结束。若在步骤203中确定存在增量索引,则客户端在步骤204中确定是否需要进行数据预加载。数据预加载指的是该数据是否需要马上同步到客户端本地。在一些情况下,虽然存在增量索引,但是修改内容与客户端的关联不密切,因此可以等到用户需要使用相关数据时再进行数据同步,而不需要马上进行同步,因此可以不进行数据预加载,而另一些与客户端的运行或者用户的日常使用紧密相关的数据则需要进行数据预加载,从而确保客户端的正常使用。在客户端判断需要进行数据预加载的情况下,客户端在步骤205中与服务器进行数据同步,从而获得增量索引所对应的实际修改数据。若不需要进行预加载,或者在同步完成后,客户端根据层级对象索引确定是否还存在更多索引,例如相同层级的其他索引或者更下一级的索引。若存在,则客户端返回步骤202,对更多索引进行索引同步,若不存在,则客户端进入步骤207,结束本次同步过程。
下面结合具体实施方式对本申请提供的技术方案做出详细说明。
请参阅图3,图3示出了本申请实施例中的一种层级数据同步的方法的流程示意图,本实施例的方法可以应用于如上文所描述的用户终端中,由用户终端上的客户端来执行。本实施例的方法可以包括如下步骤S301至步骤S305:
步骤S301,获取针对多层级数据中指定层级的目标对象的数据加载指令,数据加载指令包括目标对象的对象标识。
在本申请中,将以教育管理部门以及其管辖的多所学校所组成的架构为例进行对本申请的方案介绍。在本实施例中,
多层级数据指的是所包括的数据对象按照多个层级进行组织,并且各个层级之间存在对应关系的数据。例如,多层级数据可以包括教育管理部门、学校、学校内部的部门以及各个部门的教职员工所对应的系统数据,系统数据中对于每个层级的每个单位均有对应的数据对象,例如,每个学校均对应存在学校对象,而每个学校的各个部门也对应存在部门对象,其他层级也类似。客户端获取针对多层级数据中指定层级的目标对象的数据加载指令。数据加载指令可以通过用户的操作触发,例如用户想要浏览某个学校的信息所进行的操作,也可以通过系统预设的事件触发,例如周期性触发或者在某个功能中需要层级数据作为支持时,诸如在选择审批人员之前触发。数据加载指令包括目标对象的对象标识。目标对象即需要加载数据的目标,例如某个特定的学校。在数据加载指令被触发时,客户端可以确认需要加载指令的目标对象,例如,用户想要浏览的学校或者需要显示人员的部门等。对象标识是用于唯一标识指定层级中某个层级对象,具体在本实施例中,是用于表示学校或者部门等对象的标识,例如,学校名称或者系统中赋予的编号等信息。
多层级数据在数据库中的存储方式采用分表的形式进行存储。为了便于介绍,请参阅图4,图4为本申请实施例中的存储结构的示意图。如图4所示,以教育系统为例,在数据库中,按照数据的层级进行了分表,图中的虚线表示各个表格对于下个层级的数据的覆盖范围,即教育管理部门表中含有各个教育管理部门的信息,可以存在多个教育管理部门,每个教育管理部门管理多个学校。教育管理部门的层级数据量相对较少,因此直接用一张表进行存储。在教育管理部门的下一层级,即学校层级中,则为各个教育管理部门建立一张教育管理部门所管辖学校的学校表,并且学校表与相对应的教育管理部门层级的版本标识值一并进行存储。版本标识值即用于进行数据同步的标识码,其随着服务器对相应学校表的修改而不断递增。在学校的下一个层级,会对每个学校的内部部门建立部门表,并且为成员建立成员表,部门表和成员表共同对应于同一个学校层级的版本标识值,并且与该版本标识值一并进行存储。客户端可以根据各个版本标识值来单独同步版本标识值所对应的数据表,而不同步其他的数据表。可以理解的是,教育管理部门、学校和学校部门也可以替换为其他的层级数据,例如企业层级或者代理商层级等等。
步骤S302,根据目标对象的对象标识,读取本地信息中目标对象的对象信息,所述对象信息中包括所述目标对象的同步识别码。
本地信息是客户端存储在终端设备的存储器中的信息,本地信息是终端设备之前与服务器进行数据同步得到的。本地信息中的内容可能不是最新的数据,并且可能与最新的数据有所差异,不同层级对象的数据新旧程度也可能有所差异。例如,客户端在某月的15日针对学校A与服务器进行数据同步,并且在16日针对学校B与服务器进行数据同步,则在终端设备上的本地信息中,学校A和学校B的数据的日期版本是不同的。假设学校A的数据在16日发生过改动,在对于终端设备的本地信息而言,学校A的数据仍是15日同步得到的数据。同步识别码是用于对某个对象的更新版本进行标识的信息,其具体可以是递增序列中的一个元素,并且对应于对象的修改内容。每个对象具有各自的递增序列。在服务器对某个对象进行更新时,会生成新的版本标识值,并且记录版本标识值所对应的修改内容,而客户端在与服务器进行数据同步时,会将所获得的版本标识值作为同步识别码来同时指示要更新的对象以及该对象的更新状态。例如,某个学校的数学组的版本标识值为SX100,若该数学组新增了一名教师A,服务器对数学组所对应的数据对象进行更新后,生成新的版本标识值SX101,之后,该数学组又离开了一名教师B,服务器对数学组所对应的数据对象进行更新后,生成新的版本标识值SX102,则SX101对应于新增教师A的数据内容,而SX102对应于删除教师B的数据内容,也就是说,若客户端在SX100的基础上仅接收到SX102对应的数而未得到SX101对应的数据,则仅会删除教师B的信息而不会新增教师A的信息。
在本实施例中,所读取到的本地信息中目标对象的对象信息可以用于向用户进行展示,以便对用户的操作进行快速的相应,而不必等待数据同步的过程完成。
步骤S303,向服务器发送针对于所述目标对象的信息同步请求,所述信息同步请求中包括所述目标对象的同步识别码,以使所述服务器根据所述同步识别码确定所述目标对象与所述服务器中保存的对象数据之间的差异数据。
在本实施例中,客户端通过有线或者无线网络向管理企业层级数据的服务器发送信息同步请求,该信息同步请求中包括之前读取到的目标对象的同步识别码。服务器根据同步识别码可以确定客户端所存储的目标对象的更新情况。例如,根据同步识别码,服务器可以确定客户端所存储的目标对象的数据为2月10号日的更新的数据,而服务器所存储的目标对象在2月10日之后还进行过更新,则服务器可以将2月10日之后更新的数据作为差异数据。
步骤S304,接收服务器发送的针对信息同步请求的响应信息,响应信息包括所述服务器根据所述同步识别码确定的差异数据。
客户端接收服务器发送的针对信息同步请求的响应信息,响应信息包括所述服务器根据所述同步识别码确定的差异数据。具体地,差异数据是服务器根据同步识别码和服务器中的目标对象的版本标识值生成的。其中,响应信息中将会包括目标对象的增量更新信息以及目标对象的最新的版本标识值。具体地,服务器在接收到客户端发送的信息同步请求后,将会根据同步识别码,在数据库中检索到目标对象,并且获取目标对象在同步识别码之后的所有更新信息作为差异数据,以及最新的版本标识值,并且根据所获得内容生成响应信息。例如,服务器接收到的同步识别码为100SX100,服务器根据该值检索到目标对象在同步识别码之后的进行过3次更新,分别为100SX101、100SX102和100SX103,则服务器将获取三次更新的更新信息,并且将最后一次更新的版本标识值100SX103作为版本标识值。
步骤S305,根据所述响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象。
客户端根据响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象。具体地,首先客户端根据同步识别码和版本标识值确定是否本地信息是否需要进行更新。在需要更新的情况下,则根据响应信息中的更新内容,对本地信息进行更新,以便向用户展示更新后的内容。在不需要更新情况下,由于已经向用户展示了本地信息的内容,因此可以不进行额外操作,直接结束数据同步过程。在一个实施例中,响应信息中不包含版本标识值,而使包含服务器根据同步识别码确定的关于目标对象的指示信息,例如,服务器根据同步识别码确定客户端的本地存储的目标对象的对象信息为最新信息而不需要进行后续的同步过程,则可以在响应消息中发送不通知指示,以便停止正在进行的同步。
在本申请的实施例中,根据数据加载指令,从服务器获取数据加载索指令所针对的指定层级的层级对象的信息,并且对本地信息进行更新,以便向用户显示更新后的信息。由于在数据同步的过程中,在获取到数据加载指令时,才针对用户当前浏览层级的层级对象进行更新,因此,面对组织架构相对复杂的情况,客户端不会由于架构中的相对频繁的数据更新而与服务器进行频繁的数据同步,而是按照用户的需求来更新相关联的数据,从而能够降低对用户终端的计算资源的消耗,提高客户端的工作效率和可用性。
在本申请的一个实施例中,在新用户登录、软件应用重新安装或重新启动或者在一定时间内未进行任何数据同步操作时,可以直接对组织架构所涉及到的所有信息进行整体获取或者更新,以作为后续提供服务的基础信息,该过程可以被称为首次同步。上述步骤S303获取针对多层级数据中指定层级的目标对象的数据加载指令之前,方法还包括:
向服务器发送数据拉取请求,数据拉取请求中包括用户标识,用户标识与指定层级的指定层级对象和指定层级的上一层级的上一层级对象相关联,每个上一层级对象对应于一个或多个指定层级对象;
接收服务器发送的指定层级索引,其中,指定层级索引用于索引与用户标识相关联的上一层级对象所对应的指定层级对象;
根据指定层级索引,从服务器获取指定层级索引对应的各个指定层级对象的对象信息,其中,指定层级对象的对象信息包括指定层级的下一层级的层级信息。
当用户终端上的客户端在一定时间后首次启动、初次加入到新的层级或者用户进行登录等长时间未进行同步或者客户端确定本地信息为空(例如本地信息被删除)时,客户端会向服务器发送数据拉取请求,数据拉取请求用于从服务器获取相对应的组织的信息,用户标识与指定层级的指定层级对象和指定层级的上一层级的上一层级对象相关联,每个上一层级对象对应于一个或多个指定层级对象。具体地,服务器通过用户标识可以确定用户所属于的组织的指定层级,并且确定其上一层级的上一层级对象。例如,服务器可以通过用户标识确定用户所属于的企业和企业所属于的集团。服务器在根据数据拉取请求获取到用户关联的上一层级对象后,会将与上一层级对象的指定层级索引发送给客户端。客户端则接收服务器发送的指定层级索引,其中,指定层级索引用于索引与用户标识相关联的上一层级对象所对应的指定层级对象。指定层级索引包括上一层级对象与指令层级对象之间的关联关系。可以理解的是,在客户端获取指定层级索引的过程中,自然也可以获取到与上一层级对象本身相关的信息,由于与用户相关的上一层级对象通常为一个或少数的几个,因此可以在获取指定层级索引的过程中,一并获取到与上一层级对象相关的信息。以企业管理场景为例,为了便于介绍,请参阅图5,图5示出了本申请实施例中的进行首次同步的流程示意图。在企业层级数据的场景中,假定指定层级为企业层级,客户端401向服务器403发送集团数据拉取请求,服务器根据集团数据拉取请求中的用户标识确定用户所述的集团,然后获取集团对应的企业层级索引并发送给客户端401,其中包括了集团与集团下设的所有企业之间的关联关系,其中也包括用户所属于的企业,客户端401将所接收到的信息存储到本地的数据库402中。
获取到指定层级索引后,客户端根据指定层级索引,从服务器获取指定层级索引对应的各个指定层级对象的对象信息,其中,指定层级对象的对象信息包括指定层级的下一层级的层级信息。具体地,客户端进行数据同步的方式可以是按照指定层级索引,对于每个指定层级对象向服务器发送同步请求,并且接收服务器的反馈。如图5所示出的,客户端401根据所获得的企业对象索引,对于每个企业向服务器403发起数据同步,获得每个企业对象的企业信息。企业信息和企业层级索引被存储到数据库402中,从而得到整个企业层级的企业信息。例如,指定层级索引包括集团下设20个企业,则客户端根据指定层级索引,向服务器发起20次数据同步,对应地获得这20个企业的信息。在一个实施例中,也可以在一次请求中获取多个企业的信息或者获取所有企业的信息,例如,将20个企业划分为5组,每组4个企业,并且针对每组信息进行一次同步,或者直接一次性获取20个企业的信息。
所获取的各个指定层级对象的对象信息中还包括指定层级的下一层级的层级信息。具体地,层级信息包括下一层级的层级索引的信息。还可以包括下一层级的层级对象的信息。例如,在获取到的企业信息中还包括企业的各个部门的部门层级索引。客户端根据部门层级索引,可以获取到部门对象信息,从而获取到集团的更详细的架构。请再次参阅图5,客户端401在获取到企业信息后,根据企业信息中所包括的部门层级索引,与服务器403进行数据同步,从而获取部门层级的部门信息以及部门内部的成员信息,并且存储到本地的数据库402中。
对于下一层级对象的数据同步过程,与指定层级对象的同步过程是类似的,即对于每个对象进行一次同步、分组同步或者一次性同步所有信息。对于层级数据中包括更多层级的情况,所获得的下一层级的层级信息中将会包括更下一层的层级信息,可以采用上述类似的方式对各个层级进行循环处理。例如,部门层级的下一级还包括小组层级,则部门层级对象的对象中将包括小组层级的层级信息,其中包括小组层级的小组层级索引。根据小组层级索引,客户端可以进一步获取到小组层级的小组层级对象的对象信息,对于小组内的员工层级,以此类推进行处理。
在本申请的实施例中,在对于用户的操作进行响应之前,先对指定层级进行整体数据同步并存储到客户端本地,因此,客户端在后续对用户操作进行响应时可以优先使用本地信息进行响应,而不必等待数据同步过程,加快了客户端的响应速度,提高运行效率。
在本申请的一个实施例中,基于上述的各个实施例,在进行首次同步时要获取指定层级的全部数据。对此,上述步骤,根据指定层级索引,从服务器获取指定层级索引对应的各个指定层级对象的对象信息,包括:
根据指定层级索引,从服务器获取指定层级的各个指定层级对象所对应的同步识别码;
根据指定层级索引,向服务器发送对应于指定层级对象的第一查询请求,其中,第一查询请求包含指定层级对象的同步识别码;
接收并存储服务器发送针对第一查询请求的第一查询响应消息,其中,第一查询响应消息包括同步识别码对应的对象信息。
在本实施例中,各个指定层级对象所对应的同步识别码可以是在进行首次同步的当前时刻,指定层级对象的最新的版本标识值,也可以是在之前更新的历史版本的版本标识值。客户端首先根据指定层级索引,从服务器获取指定层级的各个指定层级对象所对应的同步识别码。其中,同步识别码可以由服务器一次性向客户端发送指定层级索引中所有指定层级对象的同步识别码。具体地,客户端可以根据指定层级索引中包括的指定层级对象的对象标识,向服务器发送请求,服务器则根据对象标识,按照预定的规则获取指定层级对象的同步识别码发送给客户端。预定的规则可以例如是,对于某些特定的指定层级对象,获取最早的版本标识值作为同步识别码,或者获取最新的版本标识值作为同步识别码,或者获取一定时间段内最早的版本标识值作为同步识别码(例如,三个月内最早一次更新的版本标识值)。
在获取到第一版本标识后,客户端则根据指定层级索引,向服务器发送对应于指定层级对象的第一查询请求,其中,第一查询请求包含指定层级对象的同步识别码。具体地,客户端可以针对每个指定层级对象发送一个第一查询请求,也可以根据向服务器发送一个第一查询请求,其中包括所有的同步识别码。
服务器在接收到客户端发送的第一查询请求后,将根据其中包括的同步识别码来查询对应的对象信息,然后生成并发送第一查询响应消息。相对应地,客户端接收并存储服务器发送针对第一查询请求的第一查询响应消息,其中,第一查询响应消息包括同步识别码对应的对象信息。具体地,同步识别码对应的对象信息中包括所涉及的指定层级对象在同步识别码之前所有更新信息。例如,一个企业对象在创建之后更新过3次,其同步识别码可以是第三次更新时产生的版本标识值,服务器在接收到同步识别码时,则会将企业对象创建时的信息以及后续的三次更新的信息发送给客户端,客户端接收后在本地进行相同的数据更新,以便完成数据同步。在另一个实施例中,同步识别码对应的对象信息仅包括同步识别码所对应的当前信息。例如,一个企业对象在创建之后更新过3次,其同步识别码可以是第二次更新时产生的版本标识值,服务器在接收到同步识别码时,会将同步识别码对应的企业对象在第二次更新后的对象信息发送给客户端,而不会将企业对象在创建时的状态以及之前两次更新的内容发送给客户端。
在本申请的实施例中,客户端根据指定层级索引来从服务器获取各个指定层级对象的对象信息,由于在同步过程中使用版本标识值作为同步识别,因此,可以获取到指定层级对象在特定的更新之后的对象信息,从而使得客户端可以得到指定层级对象的历史信息,提升了客户端侧数据的数据完整性以及提供服务的灵活性。
在本申请的一个实施例中,基于上述的各个实施例,在进行首次同步时可以仅获取与用户所述的指定层级对象相关的数据。对此,上述步骤,根据指定层级索引,从服务器获取指定层级索引对应的各个指定层级对象的对象信息,包括:
根据指定层级索引,从服务器获取各个指定层级对象所对应的同步识别码;
向服务器发送第二查询请求,其中,第二查询请求包括用户标识所关联的指定层级对象的同步识别码;
接收服务器发送针对第二查询请求的第二查询响应消息,其中,第二查询响应消息包括与用户标识相关联的指定层级对象的对象信息。
在本实施例中,各个指定层级对象所对应的同步识别码可以是在进行首次同步的当前时刻,指定层级对象的最新的版本标识值,也可以是在之前更新的历史版本的版本标识值。客户端首先根据指定层级索引,从服务器获取指定层级的各个指定层级对象所对应的同步识别码。其中,同步识别码可以由服务器一次性向客户端发送指定层级索引中所有指定层级对象的同步识别码。具体地,客户端可以根据指定层级索引中包括的指定层级对象的对象标识,向服务器发送请求,服务器则根据对象标识,按照预定的规则获取指定层级对象的同步识别码发送给客户端。预定的规则可以例如是,对于某些特定的指定层级对象,获取最早的版本标识值作为同步识别码,或者获取最新的版本标识值作为同步识别码,或者获取一定时间段内最早的版本标识值作为同步识别码(例如,三个月内最早一次更新的版本标识值)。
随后,在获取到第一版本标识后,客户端向服务器发送第二查询请求,其中,第二查询请求包括用户标识所关联的指定层级对象的同步识别码。其中,用户标识与指定层级对象的关联关系可以在接收数据拉取请求的响应时一起接收。在一个实施例中,一个用户标识可以关联多个指定层级对象,在此情况下,可以针对每个指定层级对象发送一个第二查询请求,每个第二查询请求中包括不同指定层级对象的同步识别码,也可以仅发送一个第二查询请求,其中包括用户标识关联的所有指定层级对象的同步识别码。
服务器在接收到客户端发送的第二查询请求后,将根据其中包括的同步识别码来查询对应的对象信息,然后生成并发送第二查询响应消息。相对应地,客户端接收服务器发送针对第二查询请求的第二查询响应消息,其中,第二查询响应消息包括与用户标识相关联的指定层级对象的对象信息。第二查询响应信息中所包括的对象信息的具体内容与上述的第一查询响应信息的内容相似,此处不再赘述。二者区别之处仅在于,第一查询请求和第二查询请求的目的不同,而导致第一查询响应消息和第二查询响应消息所覆盖的结果范围不同,第一查询响应消息会覆盖指定层级的所有指定层级对象,而第二查询响应消息仅覆盖与用户标识相关联的指定层级对象。例如,用户A属于一个集团下的H公司,而该集团包括20个公司,第二查询响应消息会包括H公司的对象信息,而上述的第一查询响应信息则会覆盖20个公司。
可以理解的是,在本实施例中,首次同步是仅同步了与用户相关联的指定层级对象的内容。在实际的应用场合中,用户在于自身相关的层级对象内进行操作的概率相对较大,而其他的层级对象由于指定层级索引的存在,用户仍可以查看到相关的对象,并且在需要浏览具体内容时同步对象相关的信息。
在本申请的实施例中,客户端根据指定层级索引来从服务器获取与用户标识相关联的指定层级对象的对象信息,由于使用用户标识来筛选指定层级对象,因此,同步过程中所涉及到的数据量大大降低,从而能够降低客户端本地所需要保存的信息量,节约存储空间,并且加快客户端在首次使用时的响应速度,提高可用性。
在本申请的一个实施例中,基于上述的各个实施例,在客户端在进行本地信息的更新时,需要考虑同步识别码和版本标识值的顺序情况。对此,上述步骤S305,根据所述响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象,包括:
若差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息更新时间晚,则根据响应信息对目标对象的对象信息进行更新;
若差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息的更新时间早,则将目标对象的对象信息发送给服务器,以使服务器根据目标对象的对象信息进行更新。
具体地,在特定情况下,服务器所发送的差异数据可能会指示服务器存储的目标对象的对象信息比所述本地信息更新时间早,即版本标识值可能小于客户端本地的同步识别码。由于同一个层级对象的版本标识值是随着数据更新而单向递增的,因此,版本标识值小于同步识别码的情况通常是异常情况或者数据异步导致的。例如,在跨地域的分布式服务器的场景中,由于数据同步不一定是实时发生的,各个地区的数据同步可能有差异,某个企业X的信息在A地区已经更新到了X10,而在B地区还在X9。此时,若某个用户从地区A到达了地区B,并且浏览企业X的信息,则客户端在与服务器进行企业X的数据同步时,会检查到服务器发送的版本标识X9小于本地信息中的第一版本标识X10。因此,客户端若发现差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息的更新时间早,即版本标识值大于同步识别码,则表示服务器所发送的信息相较于本地信息为更新的信息,将根据响应信息对目标对象的对象信息进行更新。客户端若版本标识值小于或等于同步识别码,则将本地信息中的目标对象的对象信息发送给服务器。服务器在接收到客户端发送的目标对象的对象信息后,对服务器中保存的对象信息进行更新,从而得到最新版本的信息。在一个实施例中,客户端还可以向服务器发送服务器同步指令,其中包括目标对象的对象标识,服务器则根据服务器同步指令,针对目标对象发起与其他服务器之间的数据同步,从而获得待更新的最新对象信息。
在本申请的实施例中,通过比较两个版本标识值之间的大小,来判断是否需要更新本地数据,从而能够确保数据的准确性,避免被错误数据或者旧数据覆盖正确数据,提升方案准确性。
在本申请的一个实施例中,基于上述的各个实施例,可以通过客户端对服务器上层级架构中的层级对象进行更改,例如新增或删除,并且在更改后,服务器需要通知客户端进行数据同步。对此,该方法还包括:
接收服务器发送的对象变更消息,其中,对象变更消息包括指定层级的上一层级的上一层级对象的对象标识;
根据对象变更消息,从服务器获取对象变更索引,其中,对象变更索引用于索引上一层级对象所对应的指定层级对象;
根据对象变更索引以及本地信息中的指定层级索引,更新本地信息中的指定层级对象和对象信息。
在本实施例中,服务器在根据客户端对于指定层级的层级对象的变更对服务器中保存的数据进行修改后,会向客户端发送对象变更消息。相对应地,客户端则接收服务器发送的对象变更消息,其中,对象变更消息包括指定层级的上一层级的上一层级对象的对象标识。例如,对于企业层级数据,若用户通过客户端添加或者删除了某个企业,则服务器在完成对应的操作后,会向其他客户端发送对象变更消息,对象变更消息中则会包括企业所属于集团的集团标识。
客户端在接收到对象变更消息后,会根据上一层级对象的对象标识,从服务器获得与上一层级对象关联的对象变更索引,对象变更索引用于索引上一层级对象所对应的指定层级对象。具体地,客户端会根据集团标识,从服务器获得与集团管理关联的所有企业相关的企业变更索引,企业变更索引会含有新增企业或者删除企业的相关信息。对象变更索引可以是指定层级的完整索引结构,也可以是仅涉及到修改内容的部分索引结构。例如,在新增企业的情况下,仅包括集团和新增企业,或者在删除企业的情况下,仅包括集团和被删除企业所在地区的全部企业等。
根据对象变更索引以及本地信息中的指定层级索引,客户端可以确定指定层级所发生的具体变更,并且根据该变更来更新本地信息中的指定层级对象和对象信息。具体地,对于新增企业,客户端可以从服务器获得新增企业的对象和对象信息保存到本地,并且更新本地的指定层级索引。对于删除企业,客户端则可以从本地信息中删除对应的企业对象和对象信息。
在本申请的实施例中,在指定层级发生变更时,客户端能够响应服务器的主动信息,对本地的指定层级数据进行修改,从而避免由于用户未触发指定层级的数据更新而导致无法及时获得对指定层级对象的变更,从而提升方案的准确性。
在本申请的一个实施例中,基于上述的各个实施例,在服务器的指定层级中新增指定层级对象时,会触发对客户端的本地信息的更新。对此,上述步骤,根据对象变更索引以及本地指定层级索引,更新本地信息中的指定层级对象和对象信息,包括:
对对象变更索引与本地信息中的指定层级索引进行差异计算,得到新增对象;
根据新增对象的对象标识,从服务器获取新增对象的新增对象信息;
将对象变更索引和新增对象信息添加到本地信息中。
具体地,客户端对对象变更索引与本地信息中的指定层级索引进行差异计算,得到新增对象。差异计算可以通过将对应层级的对象的版本标识值或对象标识进行比较来进行,对象变更索引中包括的对象若在指定层级索引中不存在,则表示对象为新增对象,而若版本标识值不一致,则表示对象为更新对象。对于新增的对象,客户端根据新增对象的对象标识,从服务器获取新增对象的新增对象信息。新增对象的对象标识可以从对象变更索引获得,或者服务器在发送对象变更索引时,也发送对象变更索引中所涉及对象的对象标识。从服务器获取新增对象的新增对象信息也可以采用请求响应的方式,通过将对象标识发送给服务器,来从服务器获取新增对象的最新对象信息。随后,客户端将对象变更索引和新增对象信息添加到本地信息中。具体地,客户端按照对象变更索引来修改本地信息中的指定层级索引,或者,若对象变更索引是完整的索引结构,则可以直接利用对象变更索引替换本地的指定层级索引。
在本申请的实施例中,根据对象变更索引与指定层级索引的差异确定新增对象,并且更新新增对象的信息,由于通过比较的方式来进行确定,从而能够避免多个服务器发布的重复指令导致客户端本地的数据错误,提升方案的稳定性。
在本申请的一个实施例中,基于上述的各个实施例,在服务器的指定层级中删除指定层级对象时,会触发对客户端的本地信息的更新。对此,上述步骤,根据对象变更索引以及本地指定层级索引,更新本地信息中的指定层级对象和对象信息,包括:
对对象变更索引与本地信息中的指定层级索引进行差异计算,确定待删除对象;
从指定层级索引删除待删除对象的索引并且从本地信息中删除待删除对象的对象信息。
具体地,进行差异计算的过程与上述新增过程采用类似方式。若有指定层级对象在对象变更索引中不存在而在指定层级索引存在,则可以将该指定层级对象确定为待删除对象。可以理解的是,在进行比较时,可以按照分组的方式进行比较,例如,可以根据按照首字母对两个索引所涉及的对象分别进行排序,然后比较两个索引的相同首字母的指定层级对象的差异。
在确定待删除对象后,则可以从指定层级索引中删除与待删除对象相关联的索引信息,并且从本地信息中删除待删除对象的对象信息。在一个实施例中,若客户端所接收到的对象变更索引包括完整的指定层级的索引,则可以用对象变更索引直接替换指定层级索引。在另一个实施例中,可以不删除待删除对象的对象信息,而是将其修改成对用户不可见的状态,以确保与该待删除对象相关的其他数据不会因数据不完整影响系统稳定。
在本申请的实施例中,根据对象变更索引与指定层级索引的差异确定待删除对象,提供了删除的具体方式,提升方案的可行性。
在本申请的一个实施例中,基于上述的各个实施例,用户在终端上进行操作可以触发数据加载指令。对此,上述步骤S301,获取针对多层级数据中指定层级的目标对象的数据加载指令之前,该方法还包括:
在对象选择界面上触发针对目标对象的对象选择操作;
根据对象选择操作,获取目标对象的对象标识;
根据目标对象的对象标识,生成数据加载指令。
具体地,触发动作可以通过触摸屏点击、指针操控设备的点选或者确定按键等方式来触发。对象选择操作通常是用户确认想要浏览的对象的操作。以企业为例进行介绍。为了便于介绍,请参阅图6,图6为本申请实施例中对象选择界面的示意图。如图6所示,用户在进入对象选择界面后,在对象选择界面上会显示出若干企业。用户可以点击想要浏览的企业,例如点击第二企业。此时,客户端会根据用户的点击操作,从本地信息中读取用户点击的第二企业的企业标识。然后,根据第二企业的企业标识生成数据加载指令。随后,数据加载指令被发送给服务器以便同步第二企业的下一层级信息。如图6所示,客户端在用户点击操作后,将会向用户展示该企业进一步的部门信息。
在本申请的实施例中,通过用户在界面上的选择操作来触发生成数据加载指令,从而能够针对用户想要浏览的信息进行数据同步,避免同步不必要的信息,节约网络资源的消耗。
在本申请的一个实施例中,基于上述的各个实施例,客户端对于用户的浏览的相应可以先展示本地信息并且在更新后在进行刷新。对此,上述方法还包括:
在对象浏览界面上加载多个对象选项;
响应于针对目标对象的点选操作,展示目标对象的对象信息;
根据响应信息刷新所展示的目标对象的对象信息。
具体地,为了便于介绍,请参阅图7,图7是本申请实施例中的对象浏览界面的示意图。客户端首先在对象浏览界面上展示出可以浏览的多个企业对象。在用户确定想要浏览的第二企业后,客户端先根据本地信息,在对象浏览界面上显示第二企业的内部部门。然后,根据用户的选择向服务器发起数据同步,获得相对应的响应信息,该响应信息中包括第二企业的更新信息,例如部门的变化以及部门人员的变化等。随后,客户端根据所得到的响应信息刷新已经展示的目标对象的对象信息。如图7所示,客户端刷新了所显示出的部门列表,新增了部门,并且更改了其中一个部门的名称。
可以理解的是,对象浏览界面和上述实施例中的对象选择界面可以是相同界面,也可以是不同界面,例如在对象选择界面中选择对象后跳转到推向浏览界面进行浏览,或者在对象选择界面上直接显示对象信息。
在本申请的实施例中,当用户在浏览层级对象时,客户端首先根据本地信息展示对象信息,随后再根据数据同步的结果刷新显示的信息,从而能够缩短客户端的响应时间,避免用户等待同步过程,提升使用效率。
下面,以企业层级为例,对本申请的总体同步流程进行介绍。为了便于介绍,请参阅图8,图8为本申请实施例中总体同步流程的数据交互图。如图8所示,客户端在首次使用时,会与服务器进行首次同步过程510。在首次同步过程中,客户端的同步模块首先会向服务器的同步服务发起集团索引获取请求,服务器的同步服务则将集团索引发送给客户端,客户端完成集团索引拉取过程511。然后,客户端在步骤512中将集团索引存储到本地数据库中。随后,根据步骤511中获取到的集团索引,客户端针对每个集团向服务器发起企业索引获取请求,服务器则将每个集团下的企业索引发送给客户端,完成企业索引拉取过程513。随后,客户端在步骤514中将企业索引也存储到本地数据库中。接下来,客户端根据企业索引,针对每个企业向服务器发起部门及成员信息同步请求,服务器则将各个企业的部门及成员信息发送给客户端,完成部门及成员信息同步过程515。最后,客户端将在步骤516中部门及成员信息存储到数据库中。至此,客户端已经从服务器获取到了集团信息、企业信息和部门及成员信息,从而完成了首次同步过程510。
之后,在步骤520中,用户在使用客户端过程中在客户端的UI界面上点击浏览某个企业。客户端在接收到用户点击触发的指令后,会在步骤521中从本地数据库读取企业数据和该企业对应的版本标识值。并且在步骤522中将企业数据发送给UI界面向用户展示。与此同时,客户端还会向服务器发起同步请求,以便获取该企业下的部门及成员数据,服务器则将客户端所要求的部门及成员数据发送给客户端,完成部门及成员数据同步过程523。随后,在步骤524中,客户端将所获取到的部门及成员数据存储到数据库中,并且在步骤525中,将部门及成员数据发送给UI模块,以便向用户展示最新的部门及成员数据。
在上述的过程中,部门及成员信息是按照用户浏览企业时触发的,而在部门和成员层级的数据变动时不会触发数据同步,从而有利于节约用户终端的资源消耗。
本申请还提供了一种层级数据同步的方法。请参阅图9,图9示出了本申请实施例中的一种层级数据同步的方法的流程示意图,本实施例的方法可以应用于如上文所描述的服务器中,由服务器上的后台服务来执行。本实施例的方法可以包括如下步骤S601至步骤S603:
步骤S601,接收第一客户端发送的信息同步请求,信息同步请求包括指定层级中目标对象的同步识别码;
步骤S602,根据所述同步识别码,确定所述服务器中待更新对象的数据与所述同步识别码所对应的数据之间的差异数据,并且根据所述差异数据生成针对所述信息同步请求的响应信息;
步骤S603,向第一客户端发送响应信息。
在本申请的实施例中,服务器从第一客户端接收信息同步请求,该信息同步请求中包括指定层级的目标对象的同步识别码。第一客户端可以是上述实施例中的用户所使用的客户端。例如,在企业层级数据中,第一客户端可以是企业员工所使用的客户端。第一客户端在浏览企业信息时触发向服务器发送信息同步请求。
服务器根据第一客户端发送来的同步识别码,确定服务器中待更新对象的数据与同步识别码所对应的数据之间的差异数据,并且根据差异数据生成针对信息同步请求的响应信息。具体地,服务器根据同步识别码,可以确定第一客户端要浏览的目标对象。例如,同步识别码中可以包含有用于识别各个层级的对象的信息,如采用唯一ID+流水号的形式。或者,信息同步请求中可以包含目标对象的对象标识,则服务器可以直接根据对象标识确定目标对象。在确定目标对象后,服务器可以确定同步识别码在目标对象的版本标识值序列中的序列位置,并且根据序列位置,可确定目标对象的版本标识值。
具体地,若同步识别码排在版本标识值序列的最后一个,则表示该版本标识值是目标对象的最新版本标识值。在此情况下,服务器可以将同步识别码本身作为版本标识值,并且生成的响应信息中仅包括此版本标识值而不包括目标对象的具体信息。或者,服务器可在响应信息中仅包括对第一客户端的通知消息,通过通知消息告知第一客户端该目标对象不需要进行信息同步。
若同步识别码排在版本标识值序列的中间位置,则表示在该版本标识值所对应的那次更新后,目标对象还发生过其他的更新。此时,版本标识值可以被确定为版本标识值序列中的最后一个版本标识值,即目标对象最近一次更新所对应的标识值。随后,服务器将同步识别码与版本标识值之间的进行过的对象更新操作的更新信息打包,与版本标识值一并打包生成响应信息。例如,同步识别码为5,版本标识值为10,则服务器将版本标识值6、7、8、9和10对应的更新信息均放入响应信息中。可以理解的是,每个版本标识值对应的更新信息通常是不同的,客户端在获取所有的更新信息后,才能将本地的内容更新为与服务器一致。
在生成响应信息后,服务器向发起同步请求的第一客户端发送该响应信息,以使其更新本地的对象信息,以便向客户展示更新后的内容。
在本申请的实施例中,在与客户端进行数据同步时,根据客户端发送的版本标识值,获取针对于目标对象的更新内容并发送给客户端。由于在数据同步的过程中,在获取到信息同步指令时,才会针对用户当前浏览层级的层级对象向客户端发送更新内容,因此,面对组织架构相对复杂的情况,服务器不会犹豫由于架构中的相对频繁的数据更新而向客户端频繁推送更新数据,而是按照用户的需求来更新相关联的数据,从而能够降低对用户终端的计算资源的消耗,提高客户端的工作效率和可用性。
在本申请的一个实施例中,基于上述的各个实施例,客户端可以修改服务器上保存的对象信息,而若进行的修改是对指定层级的对象进行新增或者删除,则服务器会将修改结果通知给其他客户端,以便客户端进行及时更新。
对此,上述方法还包括:
接收第二客户端发送的对象控制信息,其中,对象控制信息中包括指定层级的上一层级的上一层级对象的对象标识以及针对于指定层级的对象控制操作,对象控制操作包括在指定层级中创建或者删除目标对象的操作,每个上一层级对象对应于一个或多个指定层级对象;
根据对象控制信息,执行对象控制操作;
根据对象控制操作的执行结果,生成对象变更消息,其中,对象变更消息包括上一层级对象的对象标识;
向第一客户端发送对象变更消息。
具体地,服务器接收第二客户端发送的对象控制信息。第二客户端可以是与普通用户的客户端相同,根据所登录的权限的不同来确定用户对于层级数据的操作权限,例如,管理员或者具有管理权限的用户使用其账号登录后,可以通过客户端对相对应层级的层级数据进行管理操作,例如新增和删除等。以企业为例,企业数据的管理员或者企业管理人员在客户端登录其账户后,可以对企业层级以及企业内部的层级的数据进行管理操作,而对于集团和不负责管理的其他企业不具有管理操作的权限。第二客户端也可以是特定的客户端,例如管理员通过终端设备登录到服务器的后台或者管理系统的后台进行修改。对象控制信息中包括指定层级的上一层级的上一层级对象的对象标识以及针对于指定层级的对象控制操作,对象控制操作包括在指定层级中创建或者删除目标对象的操作,每个上一层级对象对应于一个或多个指定层级对象。具体地,例如,指定层级为企业,而其上一层级为集团,集团下通常对应设置有多个企业,企业层级数据的管理员在客户端登录后,可以在其所在的集团下创建或者删除企业层级的层级对象。
服务器在接收对象控制信息后,会根据对象控制信息,执行对象控制操作。可以立即的是,对象控制信息中会包括进行相应操作所需要的信息。具体地,若对象控制信息用于创建新层级对象,则服务器会根据对象控制信息中所包括的层级对象信息,例如对象的名称、对象下一层级的内部结构等内容。在若对象控制信息用于删除层级对象,则对象控制信息会包括需要删除对象的对象标识,对于删除操作的具体要求,例如完全删除或者仅删除指定的更新内容等。服务器会根据对象控制信息,执行对应的新增操作或者删除操作,从而产生相应的执行结果,例如新增的层级对象的对象标识等信息,或者删除成功或失败的通知信息等。
在执行对象控制信息要求的操作后,服务器将会根据对象控制操作的执行结果,生成对象变更消息其中,对象变更消息包括上一层级对象的对象标识,然后,服务器向第一客户端发送对象变更消息。对象变更消息用于通知客户端对指定层级的对象信息进行数据同步,以便将服务器进行的数据修改同步到客户端的本地信息。例如,服务器根据客户端的指示添加了新企业或者删除了企业,则服务器在完成相关操作后生成对象变更消息,其中包括新企业或者被删除的企业所在集团的集团标识,以便客户端根据集团标识来发起数据同步,从而将新添加的企业的信息同步到客户端本地或者将客户端本地信息中的待删除的企业删除。
可以理解的是,上述过程针对于新增层级对象和删除层级对象等对于层级数据产生较大影响的操作,若进行的操作时除了新增和删除之外的其他操作,例如更新对象信息或者变更对象在层级数据中的层级关系等操作,服务器可以选择性地不通知向所有用户发送对象变更消息,而仅向受影响的账户发送对象变更消息,例如像变更对象所涉及的账户,或者完全不发送对象变更消息,而是等待相关用户通过客户端发起数据同步时再进行数据同步。
在本申请的实施例中,服务器在指定层级中创建或者删除对象后,会通知客户端对创建和删除的结果进行同步,从而能够确保多层级数据在发生较大变动时,能够将变动结果及时同步到客户端,从而确保客户端的数据准确性,降低由于层级对象数据不同步而造成的故障,提升方案稳定性。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施,可以用于执行本申请上述实施例中的层级数据同步的方法。图10示意性地示出了本申请实施例中层级数据同步装置的组成框图。如图10所示,层级数据同步装置700主要可以包括:
指令获取模块710,用于获取针对多层级数据中指定层级的目标对象的数据加载指令,所述数据加载指令包括所述目标对象的对象标识;
信息读取模块720,用于根据所述目标对象的对象标识,从本地信息中读取所述目标对象的对象信息,所述对象信息中包括所述目标对象的同步识别码;
请求发送模块730,用于向服务器发送针对于所述目标对象的信息同步请求,所述信息同步请求中包括所述目标对象的同步识别码,以使所述服务器根据所述同步识别码确定所述目标对象与所述服务器中保存的对象数据之间的差异数据;
信息接收模块740,用于接收所述服务器发送的针对所述信息同步请求的响应信息,所述响应信息包括所述服务器根据所述同步识别码确定的差异数据;
信息更新模块750,用于根据所述响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置700还包括:
拉取请求模块,用于向所述服务器发送数据拉取请求,所述数据拉取请求中包括用户标识,所述用户标识与所述指定层级的指定层级对象和所述指定层级的上一层级的上一层级对象相关联,每个上一层级对象对应于一个或多个指定层级对象;
索引接收模块,用于接收所述服务器发送的指定层级索引,其中,所述指定层级索引用于索引与所述用户标识相关联的上一层级对象所对应的指定层级对象;
信息获取模块,用于根据所述指定层级索引,从所述服务器获取所述指定层级索引对应的各个指定层级对象的对象信息,其中,所述指定层级对象的对象信息包括所述指定层级的下一层级的层级信息。
在本申请的一些实施例中,基于以上技术方案,信息获取模块包括:
同步识别码获取单元,用于根据所述指定层级索引,从所述服务器获取所述指定层级的各个指定层级对象所对应的同步识别码;
第一查询请求单元,用于根据所述指定层级索引,向所述服务器发送对应于指定层级对象的第一查询请求,其中,所述第一查询请求包含指定层级对象的同步识别码;
第一响应接收单元,用于接收并存储所述服务器发送针对所述第一查询请求的第一查询响应消息,其中,所述第一查询响应消息包括所述同步识别码对应的对象信息。
在本申请的一些实施例中,基于以上技术方案,信息获取模块包括:
版本标识值获取单元,用于根据所述指定层级索引,从所述服务器获取所述指定层级的各个指定层级对象所对应的同步识别码;
第二查询请求单元,用于向所述服务器发送第二查询请求,其中,所述第二查询请求包括所述用户标识所关联的指定层级对象的同步识别码;
第二响应接收单元,用于接收所述服务器发送针对所述第二查询请求的第二查询响应消息,其中,所述第二查询响应消息包括与所述用户标识相关联的指定层级对象的对象信息。
在本申请的一些实施例中,基于以上技术方案,信息更新模块750包括:
对象更新单元,用于若差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息更新时间晚,则将根据所述相应信息更新所述目标对象的对象信息;
对象发送单元,用于差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息的更新时间早,则将所述目标对象的对象信息发送给所述服务器,以使所述服务器根据所述目标对象的对象信息进行更新。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置700还包括:
变更消息接收模块,用于接收所述服务器发送的对象变更消息,其中,所述对象变更消息包括所述指定层级的上一层级的上一层级对象的对象标识;
变更索引获取模块,用于根据所述对象变更消息,从所述服务器获取对象变更索引,其中,所述对象变更索引用于索引所述上一层级对象所对应的指定层级对象;
变更更新模块,用于根据所述对象变更索引以及所述本地信息中的指定层级索引,更新所述本地信息中的指定层级对象和对象信息。
在本申请的一些实施例中,基于以上技术方案,变更更新模块包括:
新增对象确定单元,用于对所述对象变更索引与所述本地信息中的指定层级索引进行差异计算,得到新增对象;
新增对象获取单元,用于根据所述新增对象的对象标识,从所述服务器获取所述新增对象的新增对象信息;
新增对象添加单元,用于将所述对象变更索引和所述新增对象信息添加到所述本地信息中。
在本申请的一些实施例中,基于以上技术方案,变更更新模块包括:
待删除对象确定单元,用于对所述对象变更索引与所述本地信息中的指定层级索引进行差异计算,确定待删除对象;
信息删除单元,用于从所述指定层级索引删除所述待删除对象的索引并且从所述本地信息中删除所述待删除对象的对象信息。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置700还包括:
选择触发模块,用于在对象选择界面上触发针对所述目标对象的对象选择操作;
标识获取模块,用于根据所述对象选择操作,获取所述目标对象的对象标识;
指令生成模块,用于根据所述目标对象的对象标识,生成所述数据加载指令。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置700还包括:
对象加载模块,用于在对象浏览界面上加载多个对象选项;
对象展示模块,用于响应于针对所述目标对象的点选操作,展示所述目标对象的对象信息;
信息刷新模块,用于根据所述响应信息刷新所展示的所述目标对象的对象信息。
根据本申请实施例的另一个方面,提供一种层级数据同步装置,包括:
消息接收模块,用于接收第一客户端发送的信息同步请求,所述信息同步请求包括指定层级中目标对象的同步识别码;
信息获取模块,用于根根据所述同步识别码,确定所述服务器中待更新对象的数据与所述同步识别码所对应的数据之间的差异数据,并且根据所述差异数据生成针对所述信息同步请求的响应信息;
消息发送模块,用于向所述第一客户端发送所述响应信息。
在本申请的一些实施例中,基于以上技术方案,层级数据同步装置还包括:
控制信息接收模块,用于接收第二客户端发送的对象控制信息,其中,所述对象控制信息中包括所述指定层级的上一层级的上一层级对象的对象标识以及针对于所述指定层级的对象控制操作,所述对象控制操作包括在所述指定层级中创建或者删除目标对象的操作,每个上一层级对象对应于一个或多个指定层级对象;
操作执行模块,用于根据所述对象控制信息,执行所述对象控制操作;
变更消息生成模块,用于根据所述对象控制操作的执行结果,生成对象变更消息,其中,所述对象变更消息包括所述上一层级对象的对象标识;
变更发送模块,用于向所述第一客户端发送所述对象变更消息。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图11示出的电子设备的计算机系统800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统800包括中央处理单元(Central Processing Unit,CPU)801,其可以根据存储在只读存储器(Read-Only Memory,ROM)802中的程序或者从储存部分808加载到随机访问存储器(Random Access Memory,RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(Input/Output,I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分807;包括硬盘等的储存部分808;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入储存部分808。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (16)
1.一种层级数据同步的方法,其特征在于,包括:
获取针对多层级数据中指定层级的目标对象的数据加载指令,所述数据加载指令包括所述目标对象的对象标识;
根据所述目标对象的对象标识,从本地信息中读取所述目标对象的对象信息,所述对象信息中包括所述目标对象的同步识别码;
向服务器发送针对于所述目标对象的信息同步请求,所述信息同步请求中包括所述目标对象的同步识别码,以使所述服务器根据所述同步识别码确定所述目标对象与所述服务器中保存的对象数据之间的差异数据;
接收所述服务器发送的针对所述信息同步请求的响应信息,所述响应信息包括所述服务器根据所述同步识别码确定的差异数据;
根据所述响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象。
2.根据权利要求1所述的方法,其特征在于,所述获取针对多层级数据中指定层级的目标对象的数据加载指令之前,所述方法还包括:
向所述服务器发送数据拉取请求,所述数据拉取请求中包括用户标识,所述用户标识与所述指定层级的指定层级对象和所述指定层级的上一层级的上一层级对象相关联,每个上一层级对象对应于一个或多个指定层级对象;
接收所述服务器发送的指定层级索引,其中,所述指定层级索引用于索引与所述用户标识相关联的上一层级对象所对应的指定层级对象;
根据所述指定层级索引,从所述服务器获取所述指定层级索引对应的各个指定层级对象的对象信息,其中,所述指定层级对象的对象信息包括所述指定层级的下一层级的层级信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述指定层级索引,从所述服务器获取所述指定层级索引对应的各个指定层级对象的对象信息,包括:
根据所述指定层级索引,从所述服务器获取所述指定层级的各个指定层级对象所对应的同步识别码;
根据所述指定层级索引,向所述服务器发送对应于指定层级对象的第一查询请求,其中,所述第一查询请求包含指定层级对象的同步识别码;
接收并存储所述服务器发送针对所述第一查询请求的第一查询响应消息,其中,所述第一查询响应消息包括所述同步识别码对应的对象信息。
4.根据权利要求2所述的方法,其特征在于,所述根据所述指定层级索引,从所述服务器获取所述指定层级索引对应的各个指定层级对象的对象信息,包括:
根据所述指定层级索引,从所述服务器获取所述指定层级的各个指定层级对象所对应的同步识别码;
向所述服务器发送第二查询请求,其中,所述第二查询请求包括所述用户标识所关联的指定层级对象的同步识别码;
接收所述服务器发送针对所述第二查询请求的第二查询响应消息,其中,所述第二查询响应消息包括与所述用户标识相关联的指定层级对象的对象信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象,包括:
若所述差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息更新时间晚,则将根据所述差异数据更新所述目标对象的对象信息;
若所述差异数据指示所述服务器存储的目标对象的对象信息比所述本地信息的更新时间早,则将所述目标对象的对象信息发送给所述服务器,以使所述服务器根据所述目标对象的对象信息进行更新。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述服务器发送的对象变更消息,其中,所述对象变更消息包括所述指定层级的上一层级的上一层级对象的对象标识;
根据所述对象变更消息,从所述服务器获取对象变更索引,其中,所述对象变更索引用于索引所述上一层级对象所对应的指定层级对象;
根据所述对象变更索引以及所述本地信息中的指定层级索引,更新所述本地信息中的指定层级对象和对象信息。
7.根据权利要求6所述的方法,其特征在于,所述根据所述对象变更索引以及所述本地信息中的指定层级索引,更新所述本地信息中的指定层级对象和对象信息,包括:
对所述对象变更索引与所述本地信息中的指定层级索引进行差异计算,得到新增对象;
根据所述新增对象的对象标识,从所述服务器获取所述新增对象的新增对象信息;
将所述对象变更索引和所述新增对象信息添加到所述本地信息中。
8.根据权利要求6所述的方法,其特征在于,所述根据所述对象变更索引以及所述本地信息中的指定层级索引,更新所述本地信息中的指定层级对象和对象信息,包括:
对所述对象变更索引与所述本地信息中的指定层级索引进行差异计算,确定待删除对象;
从所述指定层级索引删除所述待删除对象的索引并且从所述本地信息中删除所述待删除对象的对象信息。
9.根据权利要求1所述的方法,其特征在于,所述获取针对多层级数据中指定层级的目标对象的数据加载指令之前,所述方法还包括:
在对象选择界面上触发针对所述目标对象的对象选择操作;
根据所述对象选择操作,获取所述目标对象的对象标识;
根据所述目标对象的对象标识,生成所述数据加载指令。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:
在对象浏览界面上加载多个对象选项;
响应于针对所述目标对象的点选操作,展示所述目标对象的对象信息;
根据所述响应信息刷新所展示的所述目标对象的对象信息。
11.一种层级数据同步的方法,其特征在于,包括:
接收第一客户端发送的信息同步请求,所述信息同步请求包括指定层级中目标对象的同步识别码;
根据所述同步识别码,确定所述服务器中待更新对象的数据与所述同步识别码所对应的数据之间的差异数据,并且根据所述差异数据生成针对所述信息同步请求的响应信息;
向所述第一客户端发送所述响应信息。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
接收第二客户端发送的对象控制信息,其中,所述对象控制信息中包括所述指定层级的上一层级的上一层级对象的对象标识以及针对于所述指定层级的对象控制操作,所述对象控制操作包括在所述指定层级中创建或者删除目标对象的操作,每个上一层级对象对应于一个或多个指定层级对象;
根据所述对象控制信息,执行所述对象控制操作;
根据所述对象控制操作的执行结果,生成对象变更消息,其中,所述对象变更消息包括所述上一层级对象的对象标识;
向所述第一客户端发送所述对象变更消息。
13.一种层级数据同步装置,其特征在于,包括:
指令获取模块,用于获取针对多层级数据中指定层级的目标对象的数据加载指令,所述数据加载指令包括所述目标对象的对象标识;
信息读取模块,用于根据所述目标对象的对象标识,从本地信息中读取所述目标对象的对象信息,所述对象信息中包括所述目标对象的同步识别码;
请求发送模块,用于向服务器发送针对于所述目标对象的信息同步请求,所述信息同步请求中包括所述目标对象的同步识别码,以使所述服务器根据所述同步识别码确定所述目标对象与所述服务器中保存的对象数据之间的差异数据;
信息接收模块,用于接收所述服务器发送的针对所述信息同步请求的响应信息,所述响应信息包括所述服务器根据所述同步识别码确定的差异数据;
信息更新模块,用于根据所述响应信息中的差异数据,更新所述本地信息中所述目标对象的对象信息,以便展示更新后的所述目标对象。
14.一种层级数据同步装置,其特征在于,包括:
消息接收模块,用于接收第一客户端发送的信息同步请求,所述信息同步请求包括指定层级中目标对象的同步识别码;
信息获取模块,用于根据所述同步识别码,确定所述服务器中待更新对象的数据与所述同步识别码所对应的数据之间的差异数据,并且根据所述差异数据生成针对所述信息同步请求的响应信息;
消息发送模块,用于向所述第一客户端发送所述响应信息。
15.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12中任意一项所述的层级数据同步方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的层级数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110764379.3A CN115577040A (zh) | 2021-07-06 | 2021-07-06 | 层级数据同步方法、装置、电子设备和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110764379.3A CN115577040A (zh) | 2021-07-06 | 2021-07-06 | 层级数据同步方法、装置、电子设备和可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115577040A true CN115577040A (zh) | 2023-01-06 |
Family
ID=84579864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110764379.3A Pending CN115577040A (zh) | 2021-07-06 | 2021-07-06 | 层级数据同步方法、装置、电子设备和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115577040A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117236236A (zh) * | 2023-11-10 | 2023-12-15 | 杭州行芯科技有限公司 | 一种芯片设计数据管理方法、装置、电子设备及存储介质 |
CN117473021A (zh) * | 2023-12-28 | 2024-01-30 | 广州睿帆科技有限公司 | 一种基于cdc方式的达梦数据库增量同步实现方法 |
CN118377833A (zh) * | 2024-06-19 | 2024-07-23 | 霖久智慧(广东)科技有限公司 | 基于差异检测的数据库同步方法、装置、设备、存储介质 |
-
2021
- 2021-07-06 CN CN202110764379.3A patent/CN115577040A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117236236A (zh) * | 2023-11-10 | 2023-12-15 | 杭州行芯科技有限公司 | 一种芯片设计数据管理方法、装置、电子设备及存储介质 |
CN117236236B (zh) * | 2023-11-10 | 2024-04-16 | 杭州行芯科技有限公司 | 一种芯片设计数据管理方法、装置、电子设备及存储介质 |
CN117473021A (zh) * | 2023-12-28 | 2024-01-30 | 广州睿帆科技有限公司 | 一种基于cdc方式的达梦数据库增量同步实现方法 |
CN117473021B (zh) * | 2023-12-28 | 2024-03-12 | 广州睿帆科技有限公司 | 一种基于cdc方式的达梦数据库增量同步实现方法 |
CN118377833A (zh) * | 2024-06-19 | 2024-07-23 | 霖久智慧(广东)科技有限公司 | 基于差异检测的数据库同步方法、装置、设备、存储介质 |
CN118377833B (zh) * | 2024-06-19 | 2024-09-03 | 霖久智慧(广东)科技有限公司 | 基于差异检测的数据库同步方法、装置、设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520574B2 (en) | Systems and methods for promoting a source code revision for deployment in a target environment | |
US11989396B2 (en) | Integrated data authentication system with an interactive user interface | |
US11036754B2 (en) | Database table conversion | |
CN115577040A (zh) | 层级数据同步方法、装置、电子设备和可读介质 | |
US11379222B2 (en) | Issue tracking system | |
US9235636B2 (en) | Presenting data in response to an incomplete query | |
US20170161291A1 (en) | Database table conversion | |
CN112417051A (zh) | 容器编排引擎资源管理方法及装置、可读介质及电子设备 | |
CN108108986B (zh) | 一种客户关系管理系统的设计方法、装置及电子设备 | |
US20220232061A1 (en) | Asynchronous distributed modular function calling | |
US11016756B1 (en) | Application repository protocol for disparate entity applications | |
CN113190517B (zh) | 数据集成方法、装置、电子设备和计算机可读介质 | |
US11704322B2 (en) | Rapid importation of data including temporally tracked object recognition | |
CN112241367B (zh) | 一种数据线测试方法和装置 | |
US8495104B2 (en) | Database child object wizard | |
CN111143408B (zh) | 一种基于业务规则的事件处理方法和装置 | |
CN111984686A (zh) | 一种数据处理的方法和装置 | |
US20200097485A1 (en) | Selective synchronization of linked records | |
CN112000816B (zh) | 数据处理方法和装置 | |
US20220100740A1 (en) | Systems and methods for automatically creating and/or managing electronic data tables | |
US11816090B2 (en) | Selectively processing an event published responsive to an operation on a database record that relates to consent | |
US10496557B1 (en) | Transport protocol for disparate entity applications | |
CN115079873A (zh) | 信息显示方法、装置、电子设备和存储介质 | |
US11611519B1 (en) | Event trigger visibility within a group-based communication system | |
US11294925B2 (en) | Methods for implementing and using a database actuator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |