CN117692428A - 同步通信录的方法、更新通信录的方法、客户端和服务器 - Google Patents
同步通信录的方法、更新通信录的方法、客户端和服务器 Download PDFInfo
- Publication number
- CN117692428A CN117692428A CN202211073895.2A CN202211073895A CN117692428A CN 117692428 A CN117692428 A CN 117692428A CN 202211073895 A CN202211073895 A CN 202211073895A CN 117692428 A CN117692428 A CN 117692428A
- Authority
- CN
- China
- Prior art keywords
- node
- unit
- target
- employee
- nodes
- 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
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000004364 calculation method Methods 0.000 claims description 50
- 230000008859 change Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008520 organization Effects 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 description 33
- 238000012545 processing Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种同步通信录的方法、更新通信录的方法、客户端和服务器,该同步通信录的方法包括:确定目标员工节点所属的目标单位节点;通过从服务器加载单位节点架构以及该目标单位节点下各个员工节点的方式,同步该目标员工节点的通信录;其中,该单位节点架构为多个单位节点形成的、且用于表征该多个单位节点中各个单位节点之间的层级关系的架构,该多个单位节点包括该目标单位节点。本申请实施例提供的同步通信录的方法能够在保证通信录的实用性的基础上,减少客户端同步通信录时的同步时长并提升客户端同步通信录时的同步成功率。
Description
技术领域
本申请实施例涉及即时通信领域中的通信录同步领域以及通信录更新领域,并且更具体地,涉及同步通信录的方法、更新通信录的方法、客户端和服务器。
背景技术
截止目前,很多企业的即时通讯平台在服务大型机构,尤其是超大型单位架构的企业时,通讯录中员工数量一旦达到百万级别,客户端每次加载通讯录时直接加载服务器存储的通信录,这种加载方式会导致同步通信录时的耗时很长且加载的数据量很大,进而导致客户端卡死崩溃甚至出现加载失败和白屏的情况。
发明内容
本申请实施例提供了一种同步通信录的方法、更新通信录的方法、客户端和服务器,能够在保证通信录的实用性的基础上,减少客户端同步通信录时的同步时长并提升客户端同步通信录时的同步成功率。
第一方面,本申请实施例提供了一种同步通信录的方法,包括:
确定目标员工节点所属的目标单位节点;
通过从服务器加载单位节点架构以及该目标单位节点下各个员工节点的方式,同步该目标员工节点的通信录;
其中,该单位节点架构为多个单位节点形成的、且用于表征该多个单位节点中各个单位节点之间的层级关系的架构,该多个单位节点包括该目标单位节点。
第二方面,本申请实施例提供了一种更新通信录的方法,包括:
确定单位节点架构下的目标员工节点采用的目标更新方式;
其中,该单位节点架构为多个单位节点形成的、且用于表征该多个单位节点中各个单位节点之间的层级关系的架构;该目标更新方式包括全量更新方式和增量更新方式,该全量更新方式指相对该单位节点架构下的各个节点更新该目标员工节点的可见节点列表,该增量更新方式指相对该单位节点下的变更节点更新该目标员工节点的可见节点列表;
基于该目标更新方式,更新该目标员工节点的可见节点列表;
基于该目标员工节点的可见节点列表,更新该服务器存储的通信录。
第三方面,本申请实施例提供了一种客户端,用于执行上述第一方面或其各实现方式中的方法。
具体地,该电子设备包括用于执行上述第一方面或其各实现方式中的方法的功能模块。
在一种实现方式中,该客户端可包括处理单元,该处理单元用于执行与信息处理相关的功能。例如,该处理单元可以为处理器。在另一种实现方式中,该客户端可包括发送单元和/或接收单元。该发送单元用于执行与发送相关的功能,该接收单元用于执行与接收相关的功能。例如,该发送单元可以为发射机或发射器,该接收单元可以为接收机或接收器。再如,该电子设备为通信芯片,该发送单元可以为该通信芯片的输入电路或者接口,该发送单元可以为该通信芯片的输出电路或者接口。
第四方面,本申请实施例提供了一种服务器,用于执行上述第二方面或其各实现方式中的方法。
具体地,该电子设备包括用于执行上述第二方面或其各实现方式中的方法的功能模块。
在一种实现方式中,该服务器可包括处理单元,该处理单元用于执行与信息处理相关的功能。例如,该处理单元可以为处理器。在另一种实现方式中,该服务器可包括发送单元和/或接收单元。该发送单元用于执行与发送相关的功能,该接收单元用于执行与接收相关的功能。例如,该发送单元可以为发射机或发射器,该接收单元可以为接收机或接收器。再如,该电子设备为通信芯片,该发送单元可以为该通信芯片的输入电路或者接口,该发送单元可以为该通信芯片的输出电路或者接口。
第五方面,本申请实施例提供了一种电子设备,包括:
处理器,适于实现计算机指令;以及,
计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令适于由处理器加载并执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第七方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
本申请实施例中,在确定出目标员工节点所属的目标单位节点后,可通过从服务器加载单位节点架构以及目标单位节点下各个员工节点的方式,同步目标员工节点的通信录,避免了直接加载单位节点架构下的所有节点,能够降低客户端同步通信录时客户端需要加载的数据量以及同步复杂度,缓解了通信录的同步对客户端的压力,进而能够减少通信录的同步时长并提升通信录的同步成功率。尤其是,当服务器存储的通讯录的管理规则发生变更时,或客户端首次进行通信录同步时,以单位节点为粒度只加载单位节点架构以及目标单位节点下各个员工节点的方式,可以有效降低客户端同步通信录时客户端需要加载的数据量以及同步复杂度。此外,考虑到用户的常用联系人通常是在用户的所属单位内部(通讯录属性为单位)的联系人,本申请实施例通过从服务器加载单位节点架构以及目标单位节点下各个员工节点的方式同步目标员工节点的通信录,能够保证目标单位节点的通信录包括用户常用的联系人,进而保证通信录的实用性。综上可知,本申请实施例提供的方案能够在保证通信录的实用性的基础上,减少客户端同步通信录时的同步时长并提升客户端同步通信录时的同步成功率。
附图说明
图1是本申请实施例提供的系统框架的示例。
图2是本申请实施例提供的同步通信录的方法的示意性流程图。
图3是本申请实施例提供的单位节点架构的示意性结构图。
图4是本申请实施例提供的基于增量加载方式进行通信录同步的方法的示意性流程图。
图5是本申请实施例提供的更新通信录的方法的示意性流程图。
图6是本申请实施例提供的确定目标更新方式的另一示意性流程图。
图7是本申请实施例提供的基于全量更新方式进行通信录更新的方法的示意性流程图。
图8是本申请实施例提供的基于增量更新方式进行通信录更新的方法的示意性流程图。
图9是本申请实施例提供的客户端的示意性框图。
图10是本申请实施例提供的服务器的示意性框图。
图11是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请提供的实施例对本申请实施例中的技术方案进行清楚完整地描述。
本申请提供的方案可涉及区块链技术领域。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、检测网络情况、检测节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
更具体的,本申请实施例提供的方案适用于区块链的应用服务技术领域。
本申请提供的方案可涉及云技术。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
图1是本申请实施例提供的系统框架100的示例。
该系统框架100可以是一个应用程序系统,本申请实施例对该应用程序的具体类型不加以限定。该系统框架100包括:终端131、终端132和服务器集群110。终端131和终端132均可通过无线或有线网络120与服务器集群110相连。
终端131和终端132可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、MP4播放器、MP4播放器和膝上型便携计算机中的至少一种。终端131和终端132可以是客户端,其安装和运行有应用程序。该应用程序可以是在线视频程序、短视频程序、图片分享程序、声音社交程序、动漫程序、壁纸程序、新闻推送程序、供求信息推送程序、学术交流程序、技术交流程序、政策交流程序、包含评论机制的程序、包含观点发布机制的程序、知识分享程序中的任意一种。终端131和终端132可以分别是用户141、用户142使用的终端,终端131和终端132中运行的应用程序内登录有用户的帐号。
服务器集群110包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器集群110用于为应用程序(例如终端131和终端132上的应用程序)提供后台服务。可选地,服务器集群110承担主要计算工作,终端131和终端132承担次要计算工作;或者,服务器集群110承担次要计算工作,终端131和终端132承担主要计算工作;或者,终端131和终端132和服务器集群110之间采用分布式计算架构进行协同计算。
作为一种应用场景,服务器集群110可以是存储有企业通信录的服务器,终端131和终端132可以需要将服务器集群110存储的通信录同步至本地的终端。例如,终端131和终端132可以是企业的即时通讯平台或即时通讯客户端,或者说,终端131和终端132可以是安装有即时通讯应用程序的通讯平台或终端。通常情况下,服务器集群110存储的通讯录中员工数量一旦达到百万级别,终端131和终端132每次加载通讯录时直接加载服务器集群110存储的通信录,这种加载方式会导致同步通信录时的耗时很长且加载的数据量很大,进而有可能导致服务器集群110卡死崩溃甚至出现加载失败和白屏的情况。
有鉴于此,本申请实施例提供了一种同步通信录的方法、更新通信录的方法、客户端和服务器,能够在保证通信录的实用性的基础上,减少客户端同步通信录时的同步时长并提升客户端同步通信录时的同步成功率。
为了便于理解本申请提供的技术方案,下面对本申请实施例涉及的相关术语进行说明。
单位节点架构:多个单位节点形成的、且用于表征该多个单位节点中各个单位节点之间的层级关系的架构。
单位节点:能够用于表征单位的节点。
员工节点:能够用户表征员工、或员工在应用程序中注册的账号或员工使用的终端的节点。
全量加载方式:客户端通过加载所有待加载节点的方式加载服务器的通信录。即服务端下发单位节点架构下的节点,客户端通过对比收到的服务器的通信录和客户端的通信录找出变更节点,并基于变更节点更新客户端的通信录。服务器的通信录指服务器更新或存储的通信录,客户端的通信录指客户端同步的通信录。
增量加载方式:客户端通过加载所有待加载节点中的变更节点的方式加载服务器的通信录。即服务端下发单位节点架构下的变更节点,客户端通过从服务器收到的变更节点更新客户端的通信录。换言之,服务端记录单位节点架构下节点的修改历史,并将修改历史同步至客户端,以便客户端通过修改历史来同步服务器的通信录。
分片:单位节点架构中的部分架构下的节点,可以通过该部分架构的接口来加载该部分架构下的节点。例如,可以通过不同的阈值加载不同的部分架构下的节点。该部分架构下的节点可以是该部分架构下的所有节点,例如包括单位节点或员工节点。
哈希节点(Hashnode):根据给定关键字(Key)来计算出该关键字在哈希表中节点。
哈希(hash)表:哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过在关键码映射的位置寻找存放值。举例来说,假设需要获取“按”字的详细信息,通常需要查“安”的拼音或笔画在字典的位置并得到“安”字的详细信息,哈希表中存放值的查找方式与其类似,就是通过关键字(key)去查找关键字对应的值f(key)。其中,哈希表即是字典,关键字(key)即是“安”的拼音或笔画,关键字对应的值f(key)就是“按”字的详细信息。
图2示出了根据本申请实施例的同步通信录的方法200的示意性流程图,该方法200可以由任何具有数据处理能力的电子设备执行。例如,该电子设备可实施为客户端或终端。
如图2所示,该方法200可包括:
S210,客户端确定目标员工节点所属的目标单位节点;
示例性地,客户端可以通过用户的注册信息获取该目标单位节点。
示例性地,客户端可以先基于该目标员工节点的注册信息,确定该目标员工节点所在的部门的标识,然后基于该目标员工节点所在的部门的标识确定该目标单位节点。例如,客户端可以将第一映射关系中与该目标员工节点所在的部门的标识对应的单位节点,确定为该目标单位节点。其中,该第一映射关系可以包括该目标单位节点的标识和至少一个部门节点的标识,该至少一个部分节点的标识包括该目标员工节点所在的部门的标识。可选的,该第一映射关系可以实现为数数据列表文件(treedata.cpp),基于此,客户端可以通过异步计算的方式,确定第一映射关系中与该目标员工节点所在的部门的标识对应的单位节点。其中,异步计算是分布式计算的一种实现方式,开发人员不必花费太多的硬件成本,即可通过软件方式以更低的成本实现大规模运算需要的处理能力。分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果,分布式计算是利用互联网上的计算机的中央处理器的闲置处理能力来解决大型计算问题的一种计算科学。
值得注意的是,该目标员工节点为该目标单位节点下的某一部门下的员工节点时,由于客户端是按照不同的单位节点同步通信录的,因此,在确定该目标单位节点时,需要基于该目标员工节点所在的部门的最新信息,确定该目标单位节点,以保证在客户端和服务器对该单位目标节点的认知的一致性。
S220,该客户端通过从服务器加载单位节点架构以及该目标单位节点下各个员工节点的方式,同步该目标员工节点的通信录;其中,该单位节点架构为多个单位节点形成的、且用于表征该多个单位节点中各个单位节点之间的层级关系的架构,该多个单位节点包括该目标单位节点。
换言之,客户端加载服务器存储的通信录时,在记载单位节点架构的同时以单位节点为粒度加载员工节点。或者说,服务器存储的通信录以单位节点为粒度进行拆分,每个用户只加载自己所在单位下的员工的联系方式,而不是每次都加载整个通讯录的所有人员的联系方式。
示例性地,该客户端通过从服务器加载单位节点架构以及该目标单位节点下各个员工节点的通信信息的方式,同步该目标员工节点的通信录。换言之,该客户端加载该各个员工节点可以指该客户端加载该各个员工节点的通信信息。可选的,该各个员工节点的通信信息包括但不限于:联系方式和住址信息。联系方式包括但不限于:即时通信平台的联系方式、电话联系方式或邮件联系方式等。
示例性地,用户在首次安装即时通讯应用程序后,可以在注册过程中、打开该即时通讯应用程序、或是在点击即时通讯应用程序的通讯录时均会触发客户端加载通讯录。
本申请实施例中,在确定出目标员工节点所属的目标单位节点后,可通过从服务器加载单位节点架构以及目标单位节点下各个员工节点的方式,同步目标员工节点的通信录,避免了直接加载单位节点架构下的所有节点,能够降低客户端同步通信录时客户端需要加载的数据量以及同步复杂度,缓解了通信录的同步对客户端的压力,进而能够减少通信录的同步时长并提升通信录的同步成功率。尤其是,当服务器存储的通讯录的管理规则发生变更时,或客户端首次进行通信录同步时,以单位节点为粒度只加载单位节点架构以及目标单位节点下各个员工节点的方式,可以有效降低客户端同步通信录时客户端需要加载的数据量以及同步复杂度。此外,考虑到用户的常用联系人通常是在用户的所属单位内部(通讯录属性为单位)的联系人,本申请实施例通过从服务器加载单位节点架构以及目标单位节点下各个员工节点的方式同步目标员工节点的通信录,能够保证目标单位节点的通信录包括用户常用的联系人,进而保证通信录的实用性。
换言之,本申请实施例考虑到大型企业/政府内人员的常用联系人为本单位内的工作人员的日常办公的习惯,将通讯录中的节点以单位节点进行拆分,优先同步单位节点架构以及与目标用户节点相关的目标单位节点下的员工节点,通过优化通讯录的加载逻辑来降低客户端的同步工作量,以分解通讯录加载对客户端的压力,由此,解决了通讯录同步内容过多时客户端容易卡死、耗时耗力、数据量大的问题,提升大型企业/政府日常办公查找其他同事的联系方式的体验。简言之,申请实施例提供的方案能够在保证通信录的实用性的基础上,减少客户端同步通信录时的同步时长并提升客户端同步通信录时的同步成功率。
在一些实施例中,该方法200还可包括:
客户端响应于用户针对该单位节点架构中除该目标单位节点之外的其他单元节点执行的触发操作,触发该客户端通过从该服务器加载该其他单位节点下各个员工节点的方式,同步该目标员工节点的通信录。
换言之,客户端在加载用户所在部门之外的部门下的员工的联系方式时,可以通过用户执行的触发操作,通过触发的方式加载用户所在部门之外的部门下的员工的联系方式。即对于用户所在部门之外的部门下的员工的联系方式,可以通过实时加载的方式进行加载。本实施例中,可以在降低客户端的加载数据的基础上,保证客户端同步服务器的通信录时的同步效果。
在一些实施例中,该触发操作为用户针对该其他单位节点的展示位置执行的点击操作。
示例性地,客户端响应于用户针对该单位节点架构中除该目标单位节点之外的其他单元节点的展示位置执行的点击操作,触发该客户端通过从该服务器加载该其他单位节点下各个员工节点的方式,同步该目标员工节点的通信录。可选的,该展示位置可以是该节点在展示界面中所在的位置,例如图标所在的位置。
当然,在其他可替代实施例中,该触发操作也可以是其他操作。例如,也可以是输入该其他单位节点的标识的输入操作。可选的,该其他单位节点的标识可以是该其他单位节点对应的单位的名称或简称。本申请实施例对此不作具体限定。
图3是本申请实施例提供的单位节点架构的示意性结构图。
如图3所示,假设单位节点架构中的单位节点包括P1~P5,其中,用户所在的节点(即目标员工节点)为U1,此时,客户端可以优先加载节点P1~P5以及P2下的所有员工节点,例如还可以包括P5和P6下的员工节点。进一步的,当用户需要查看P4下的员工的联系方式时,可以通过点击P4节点触发客户端加载P4下的所有员工节点,例如包括P5下的员工节点,进而实现实时加载其他部门或单位下的员工的联系方式。
在一些实施例中,该S220可包括:
客户端通过从该服务器加载该单位节点架构、以及该目标单位节点下位于该目标员工节点的可见节点列表中各个员工节点的方式,同步该目标员工节点的通信录;其中,该目标员工节点的可见节点列表包括该目标用户可见的所有节点。
示例性地,该目标员工节点的可见节点列表可以包括该单位节点架构下该目标员工节点可见的单位节点以及该目标员工节点可见的单位节点下的所有员工节点。
本申请实施例中,通过从服务器加载该目标单位节点下位于该目标员工节点的可见节点列表中的各个员工节点,可以在提升保密性的基础上进行通信录同步。此外,基于单位节点架构中的员工节点的可见节点列表对单位节点架构下的通讯录进行优化,能够避免数据的重复计算,尤其是当通讯录管理规则变更时,只需要优先同步该目标单位节点下的该目标员工节点可见的员工节点,能够减少初次同步通讯录时下发的数据量,进而减少客户端同步通信录时的同步时长并提升客户端同步通信录时的同步成功率。
当然,在其他可替代实施例中,该目标员工节点的可见节点列表也可以是以单位为粒度的。换言之,某一个单位节点为该目标员工节点的可见的单位节点时,该可见的单位节点下的所有员工节点均为该目标员工节点的可见节点。例如,客户端通过从该服务器加载该单位节点架构、该目标单位节点下各个员工节点、以及位于该目标员工节点的可见单位节点列表中各个单位节点下的各个员工节点的方式,同步该目标员工节点的通信录;其中,该目标员工节点的可见单位节点列表包括该目标用户可见的所有单位节点。
在一些实施例中,该S220可包括:
客户端通过从该服务器加载该目标单位节点下的各个员工节点以及该目标单位节点下的已移除子节点下的各个子节点的方式,同步该目标员工节点的通信录;其中,该已移除子节点下的各个子节点包括以下中的至少一项:从该目标单位节点离职或调离的员工节点、从该目标单位节点移除的子单元节点、以及从该目标单位节点移除的子单元节点下的子节点。
示例性地,如果该目标员工节点从单位节点1调动到了单位节点2中,这种情况下,单位节点1下的员工节点会收到一条删除了该目标员工节点的消息。此时,单位节点1下的其他员工节点在加载该单位节点1下的各个员工节点时,可以同时加载该单位节点1下的已移除子节点,该单位节点1下的已移除子节点可包括该目标员工节点。
示例性地,如果子单元节点为用于表示一个部门的部门节点,即目标单位节点下的某一个部门节点被删除时,如果这个部门节点下有子部门节点,则需要将这个部门节点、这个部门节点下的所有子部门节点、以及各个子部门节点下的所有员工节点也一起删除。此时,目标单位节点下的员工节点在加载该目标单位节点下的各个员工节点时,可以同时加载该目标单位节点下的已移除子节点,该目标单位节点下的已移除子节点可包括这个部门节点、这个部门节点下的所有子部门节点、以及各个子部门节点下的所有员工节点。由此,能够使得客户端同步的通信录避免会出现很多孤立的节点,影响用户体验。
示例性地,该目标单位节点下的已移除子节点的添加可由服务器利用插入节点的方式更新单位节点架构下目标单位节点下的节点。
本实施例中,针对目标单位节点,服务器通过在目标单位节点下建立已移除子节点,不仅能够使得目标单位节点下的员工节点加载到服务器建立的已移除子节点,还是避免其他单位节点下的员工节点加载服务器在该目标单位节点下建立的已移除子节点,由此,可以保证各个员工都只加载当前部门的已移除子节点,能够减少客户端加载的数据量。举例来说,客户端A在同步通信录时,加载客户端A所属的单位节点A下的已移除子节点,客户端B在同步通信录时,加载客户端B所属的单位节点A下的已移除子节点,以减少客户端加载的数据量。
在一些实施例中,该S210可包括:
若该单位节点架构中单位节点的数量大于或等于预设数量,则客户端确定该目标单位节点。
本申请实施例中,若该单位节点架构中单位节点的数量大于或等于预设数量,说明该单位节点架构中的单位节点的数量较多,而对于单位节点的数量较多的单位节点架构而言,通常用户与本单位内的员工进行沟通的情况更多,而且,考虑到整个单位节点架构的数据量过大,因此,客户端可以通过先确定该目标单位节点,然后通过加载该单位节点架构以及该目标单位节点下的各个员工节点的方式同步通信录。换言之,客户端通过加载该单位节点架构以及该目标单位节点下的各个员工节点的方式同步通信录时,其应用场景为单位节点数量较多的单位节点架构。
在一些实施例中,该方法200还可包括:
若该单位节点架构中单位节点的数量小于所述预设数量,则客户端通过从服务器加载单位节点架构以及该单位节点架构下各个员工节点的方式,同步该目标员工节点的通信录。
本申请实施例中,若该单位节点架构中单位节点的数量小于预设数量,说明该单位节点架构中的单位节点的数量较少,而对于单位节点的数量较少的单位节点架构而言,通常用户的沟通不限于本单位内,且横跨多单位找人沟通的情况较多,而且,考虑到整个单位节点架构的数据量也不多,因此,客户端可以通过从服务器加载单位节点架构以及该单位节点架构下各个员工节点的方式,同步该目标员工节点的通信录。换言之,客户端通过从服务器加载单位节点架构以及该单位节点架构下各个员工节点的方式,同步该目标员工节点的通信录时,其应用场景为单位节点数量较少的单位节点架构。
在一些实施例中,该S220可包括:
客户端利用全量加载方式或增量加载方式,从该服务器加载单位节点架构以及该目标单位节点下各个员工节点;其中,该全量加载方式指该客户端通过加载所有待加载节点的方式加载该单位节点架构以及该目标单位节点下各个员工节点,该增量加载方式指该客户端通过加载所有待加载节点中的变更节点的方式加载该单位节点架构以及该目标单位节点下各个员工节点;基于该单位节点架构以及该目标单位节点下各个员工节点,构建该目标员工节点的通信录。
示例性地,客户端可以利用全量加载方式或增量加载方式,从该服务器加载单位节点架构下的单位节点以及该目标单位节点下各个员工节点。
对于全量加载方式,可以分为首次同步和非首次同步。
对于首次同步,客户端加载服务器下发的压缩包,该压缩包可以包括单位节点架构和目标单位节点下各个节点的信息,客户端收到该压缩包括后,通过解压得到该单位节点架构和该目标单位节点下各个节点的信息,并基于该单位节点架构和该目标单位节点下各个节点的信息构建通信录,以实现通信录的同步过程。
对于非首次同步,服务器可以向客户端下发目标单位节点下各个节点的哈希值,客户端基于服务器下发的各个节点的哈希值与本地通信录进行对比,确定删除的节点以及新增的节点;然后,客户端向服务器请求新增的节点的具体信息,并在接收到新增的节点的具体信息后,再基于删除的节点和新增的节点的具体信息对本地数据库的中的本地通信录进行更新处理,进而实现通信录的同步过程。可选的,客户端需要在获取新增的节点的具体信息后,再对本地通信录进行更新,以保证同步流程的原子性,原子性指完整的执行程序或完全不执行程序。
对于增量加载方式,客户端可以加载服务器下发的单位节点下的所有变更的节点,并基于收到的所有变更的节点更新客户端的本地通信录,进而实现通信录的同步过程。
当然,在其他可替代实施例中,客户端从服务器加载单位节点架构以及该单位节点架构下各个员工节点时,也可以采用全量加载方式或采用增量加载方式,从服务器加载单位节点架构以及该单位节点架构下各个员工节点。例如,可以采用全量加载方式或采用增量加载方式,从服务器加载单位节点架构下的各个单位节点以及该单位节点架构下各个员工节点。
类似的,对于全量加载方式,可以分为首次同步和非首次同步。
对于首次同步,客户端加载服务器下发的压缩包,该压缩包可以包括单位节点架构和该单位节点架构下各个节点的信息,客户端收到该压缩包括后,通过解压得到该单位节点架构和该单位节点架构下各个节点的信息,并基于该单位节点架构和该单位节点架构下各个节点的信息构建通信录,以实现通信录的同步过程。
对于非首次同步,服务器可以向客户端下发该单位节点架构下各个节点的哈希值,客户端基于服务器下发的各个节点的哈希值与本地通信录进行对比,确定删除的节点以及新增的节点;然后,客户端向服务器请求新增的节点的具体信息,并在接收到新增的节点的具体信息后,再基于删除的节点和新增的节点的具体信息对本地数据库的中的本地通信录进行更新处理,进而实现通信录的同步过程。可选的,客户端需要在获取新增的节点的具体信息后,再对本地通信录进行更新,以保证同步流程的原子性,原子性指完整的执行程序或完全不执行程序。
对于增量加载方式,客户端可以加载服务器下发的该单位节点架构下的所有变更的节点,并基于收到的所有变更的节点更新客户端的本地通信录,进而实现通信录的同步过程。
示例性地,用户在首次安装即时通讯应用程序后,可以在注册过程中、打开该即时通讯应用程序、或是在点击即时通讯应用程序的通讯录时均会触发客户端采用全量加载的方式,从服务器加载单位节点架构以及目标单位节点下各个员工节点,或从服务器加载单位节点架构以及该单位节点架构下各个员工节点。当然,在其他可替代实施例中,也可以在采用全量加载方式加载一段时间失败后,切换为采用增量加载方式进行加载,本申请实施例对此不作具体限定。
值得注意的是,本申请实施例中,不管采用增量更新方式从服务器加载单位节点架构以及目标单位节点下各个员工节点,还是采用增量更新方式从从服务器加载单位节点架构以及该单位节点架构下各个员工节点,客户端都可以基于该客户端的通信录是否有更新版本,确定是否触发客户端基于增量加载方式进行通信录同步。
图4是本申请实施例提供的基于增量加载方式进行通信录同步的方法310的示意性流程图。
如图4所示,该方法310可包括:
S311,开始同步。
客户端开始同步通信录,例如可以通过用户的操作或定期的方式触发客户端同步通信录。
S312,确定通信录的当前版本是否有更新版本。
客户端确定客户端同步的通信录的当前版本是否有更新版本。例如,客户端可以通过向服务器查询的方式,查询服务器存储的通信录是否有更新版本,若服务器存储的通信录没有更新版本,则确定客户端的通信录为最新版本,若服务器存储的通信录有更新版本,则确定客户端同步的通信录的当前版本不是最新版本。服务器也可以通过主动下发的方式,在服务器存储的通信录的版本发生更新后,向客户端通知服务器存储的通信录有更新版本,相应的,客户端可以确定客户端同步的通信录的当前版本不是最新版本。
S313,获取更新版本。
客户端确定客户端同步的通信录的当前版本有更新版本时,获取更新版本。
S314,确定当前版本为最新版本。
客户端确定客户端同步的通信录的当前版本没有更新版本时,直接确定当前版本为最新版本。
S315,基于最新版本获取变更节点。
客户端在确定当前版本为最新版本后,确定更新版本相对的同步的通信录的版本存在的所有变更节点。例如,客户端每次获取的更新版本可以包括相对上一版本发生变更的节点。
S316,基于变更节点同步通信录。
客户端基于更新版本相对的同步的通信录的版本存在的所有变更节点,修改客户端同步的通信录,以实现利用服务器存储的通信录同步客户端的本地通信录。
S317,暂停第一时长。
客户端在确定客户端同步的通信录的当前版本是否为最新版本的过程中,如果服务器没有响应或拒绝响应时,客户端可以暂停第一时长后重新确定客户端同步的通信录的当前版本是否为最新版本。可选的,该第一时长可以是预定义或用户设置的时长。
由图4所示的流程上可知,对于增量加载方式,客户端在获取更新版本后,可以基于上一版本加载变更节点,并基于找到的变更节点加载变更节点的具体信息,并基于变更节点的具体信息更新客户端同步的通信录的版本号。当然,客户端在更新一次版本后,发现还存在更新版本,还可以重新获取更新版本后,并基于更新版本相对上一版本的变更节点,并更新客户端同步的通信录的版本号;直至客户端同步的通信录的当前版本为最新版本。
换言之,对于增量加载方式,客户端同步通信录的过程本质上可以理解为客户端更新客户端同步的通讯录的版本的过程,即基于客户端同步的通信录的当前版本,从服务器请求相对当前版本更新的版本,直至客户端同步的通信录的当前版本为最新版本;由此,客户端可基于所有已更新的版本获取变更节点,并通过从服务器加载变更节点的具体信息的方式,同步客户端的通信录。
示例性地,在服务器存储的通信录中,该单位节点架构下各个节点的信息可包括该各个节点的员工标识、部门标识、更新时间以及是否为删除节点的标识。其中,员工标识用于唯一性的标识员工,部门标识用于唯一性的标识部门。可选的,该单位节点架构下的各个节点的信息可实现为表格的形式或其他形式,下面结合表1对该单位节点架构下的各个节点的信息进行示例性地说明。
表1
如表1所示,在服务器存储的通信录中,该单位节点架构下的节点为员工节点时,其可以包括第二行至第四行中任一行包括的信息,该单位节点架构下的节点为单位节点时,其可以包括第五行包括的信息。值得注意的是,员工标识为0可以表征员工标识为空,是否为删除节点的标识为表示该节点是否已被删除:若节点被删除了,服务端不会真正的删除该节点,而将是否为删除节点的标识设置为“真”,否则,将其设置为“假”。此外,若单位节点架构中节点被更新了,服务端会增大记录的版本号,下次客户端来进行同步便能同步到。
在一些实施例中,该方法200还可包括:
若该目标单位节点从第一单位节点切换至第二单位节点,则通过重新从该服务器加载该第二单位节点下的各个员工节点的方式,同步该目标员工节点的通信录。
示例性地,如果该目标员工节点从单位节点1调动到了单位节点2中,这种情况下,该目标员工节点可重新加载单位节点2下的各个员工节点,以提升加载效率。
本实施例中,如果目标单位节点发送变更,例如,目标员工节点的原单位被裁掉或用户所在的部门发生变更,本申请实施例采用的策略是如果客户端检测目标员工节点所属的单位节点发生变更,则可以出发客户端直接重新加载变更后的单位节点下的各个员工节点。
图5示出了根据本申请实施例的更新通信录的方法400的示意性流程图,该方法400可以由任何具有数据处理能力的电子设备执行。例如,该电子设备可实施为服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器,服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
如图5所示,该方法400可包括:
S410,服务器确定单位节点架构下的目标员工节点采用的目标更新方式;其中,该单位节点架构为多个单位节点形成的、且用于表征该多个单位节点中各个单位节点之间的层级关系的架构;该目标更新方式包括全量更新方式和增量更新方式,该全量更新方式指相对该单位节点架构下的各个节点更新该目标员工节点的可见节点列表,该增量更新方式指相对该单位节点下的变更节点更新该目标员工节点的可见节点列表。
对于全量更新方式,服务器通过遍历单位节点框架中每一个节点的方式,更新该目标员工节点的可见节点列表。对于增量更新方式,服务器通过遍历单位节点框架中每一个变更节点的方式,更新该目标员工节点的可见节点列表。当然,在其他可替代实施例中,服务器也可以通过遍历单位节点的方式更新该目标员工节点的可见节点列表。
S420,服务器基于该目标更新方式,更新该目标员工节点的可见节点列表。
S430,服务器基于该目标员工节点的可见节点列表,更新该服务器存储的通信录。
本申请实施例中,服务器通过更新目标员工节点的可见节点列表,有利于客户端通过从该服务器加载该单位节点架构、以及该目标单位节点下位于该目标员工节点的可见节点列表中各个员工节点的方式,同步该目标员工节点的通信录。
在一些实施例中,该S410可包括:
若该服务器的处理器未处于过载状态,或该处理器处于过载状态的情况下该目标员工节点的可见节点列表为首次更新,则在该单位节点架构的可见性规则发生变化或该单位节点架构中员工节点的可见性规则发生变化时,服务器将该全量更新方式确定为该目标更新方式;否则,服务器将该增量更新方式确定为该目标更新方式。
示例性地,该服务器可根据该处理器的待计算任务的数量或待计算量确定该服务器的处理器是否处于过载状态。例如,该处理器的待计算任务的数量或待计算量超过某一阈值时,确定其处于过载状态,否则可以确定其未处于过载状态。
示例性地,该服务器可基于是否存在目标员工节点的可见节点列表,确定是否为首次更新。例如,若该服务器存储有目标员工节点的可见节点列表,则确定为非首次更新,否则确定为首次更新。
当然,在其他可替代实施例中,也可以通过其他方式确定该目标更新方式,本申请实施例对此不作具体限定。例如,若服务器支持该全量更新方式,则可以将该全量更新方式确定为该目标更新方式;否则,将该增量更新方式确定为该目标更新方式。再如,可以根据该处理器的处理能力确定该目标更新方式,例如,该处理器的处理能力较高(例如其型号为最新型号)时,可以将该全量更新方式确定为该目标更新方式;否则,将该增量更新方式确定为该目标更新方式。
在一些实施例中,该方法200还可包括:
若该处理器处于过载状态,则服务器在预设时长内尝试更新该单位节点架构下的部分通信录。
示例性地,该预设时长可以是用户设置或预定义的时长,甚至可以是随机时长。
示例性地,该部分通信录可以是用户设置或预定义的,甚至可以是通过随机的方式选取的。
本实施例中,若该处理器处于过载状态,通过在预设时长内尝试更新该单位节点架构下的部分通信录,相当于,通过减小工作量或工作量回退的方式尽可能的实现对通信录的更新。此外,通过减小工作量或工作量回退的方式还可以对处理器是否处于正常状态进行验证,例如,若减小工作量或工作量回退的方式还无法对部分通信录进行更新,说明处理器有可能处于非工作状态。
图6是本申请实施例提供的更新通信录的方法510的示意性流程图。
如图6所示,该方法510可包括:
S511,开始更新。
服务器开始更新通信录。例如,例如可以通过用户的操作或定期的方式触发服务器开始更新通信录。再如,若该单位节点架构的可见性规则发生变化、该单位节点架构中节点的可见性规则发生变化、或该单位节点架构中的节点发生变化,则触发服务器开始更新通信录。
S512,确定CPU是否过载是否为首次更新。
服务器可根据该处理器的待计算任务的数量或待计算量确定该服务器的处理器是否处于过载状态。例如,该处理器的待计算任务的数量或待计算量超过某一阈值时,确定其处于过载状态,否则可以确定其未处于过载状态。此外,该服务器可基于是否存在目标员工节点的可见节点列表,确定是否为首次更新。例如,若该服务器存储有目标员工节点的可见节点列表,则确定为非首次更新,否则确定为首次更新。
S513,过载第二时长后更新部分通信录。
若该处理器处于过载状态,则服务器在预设时长内尝试更新该单位节点架构下的部分通信录。可选的,该第二时长可以是用户设置或预定义的时长,甚至可以是随机时长。可选的,该部分通信录可以是用户设置或预定义的,甚至可以是通过随机的方式选取的。
本实施例中,若该处理器处于过载状态,通过在预设时长内尝试更新该单位节点架构下的部分通信录,相当于,通过减小工作量或工作量回退的方式尽可能的实现对通信录的更新。此外,通过减小工作量或工作量回退的方式还可以对处理器是否处于正常状态进行验证,例如,若减小工作量或工作量回退的方式还无法对部分通信录进行更新,说明处理器有可能处于非工作状态。
S514,确定是否采用全量更新方式。
若该服务器的处理器未处于过载状态,或该处理器处于过载状态的情况下该目标员工节点的可见节点列表为首次更新,则在该单位节点架构的可见性规则发生变化或该单位节点架构中员工节点的可见性规则发生变化时,服务器将该全量更新方式确定为该目标更新方式;否则,服务器将该增量更新方式确定为该目标更新方式。
S515,采用全量更新方式更新通信录。
服务器相对该单位节点架构下的各个节点更新该目标员工节点的可见节点列表。
S516,采用增量更新方式更新通信录。
服务器相对该单位节点架构下的各个变更节点更新该目标员工节点的可见节点列表。
简言之,服务器检查CPU是否过载或者为首次更新通讯录:若判断CPU过载,则在预设时长内尝试更新该单位节点架构下的部分通信录;若判断CPU没过载,或是过载了但是为首次更新,则判断服务器版本号是否采用全量更新方式更新该目标员工节点的可见节点列表,若是,则服务器采用全量更新方式,更新该目标员工节点的可见节点列表,否则采用增量更新方式,更新该目标员工节点的可见节点列表。
在一些实施例中,若该目标更新方式为该全量更新方式,则该S420可包括:
服务器确定该目标员工节点的可见节点列表的累计计算时间是否超过预设阈值;若该累计计算时间超过该预设阈值,则返回该目标员工节点的已经计算的节点是否为该目标员工节点的可见节点的计算结果和时间戳;否则,从该单位节点架构中获取当前节点,并计算该当前节点是否为该目标员工节点的可见节点,直至该累计计算时间超过该预设阈值,或直至完成该单位节点架构下的各个节点是否为该目标员工节点的可见节点的计算。
示例性地,该预设阈值可以是1s或其他数值。
示例性地,服务器可以基于已计算节点中为目标员工节点的可见节点,添加至该目标节点的可见节点列表。此外,由于单位节点架构下该目标员工节点的可见节点越多,则该目标员工节点的可见节点列表的计算时间越长,因此,该若该累计计算时间超过该预设阈值,说明该单位节点框架下的大部分节点为该目标员工的可见节点,此时,可以直接将剩余的节点直接确定为该目标员工节点的可见节点,以减少计算量以及提升更新效率。
图7是本申请实施例提供的基于全量更新方式进行通信录更新的方法520的示意性流程图。
如图7所示,该方法520可包括:
S521,开始更新。
服务器开始更新通信录。例如,例如可以通过用户的操作或定期的方式触发服务器开始更新通信录。再如,若该单位节点架构的可见性规则发生变化、该单位节点架构中节点的可见性规则发生变化、或该单位节点架构中的节点发生变化,则触发服务器开始更新通信录。
S522,目标员工节点的可见节点的计算时间是否超过预设阈值。
服务器确定目标员工节点的可见节点的计算时间是否超过预设阈值。可选的,该预设阈值可以是1s或其他数值。
S523,将剩余节点加至目标员工节点的可见节点列表,并返回已计算节点是否为目标员工节点的可见节点的计算结果以及时间戳。
在目标员工节点的可见节点的计算时间超过预设阈值时,服务器可以基于已计算节点中为目标员工节点的可见节点,添加至该目标节点的可见节点列表。此外,由于单位节点架构下该目标员工节点的可见节点越多,则该目标员工节点的可见节点列表的计算时间越长,因此,该若该累计计算时间超过该预设阈值,说明该单位节点框架下的大部分节点为该目标员工的可见节点,此时,可以直接将剩余的节点直接确定为该目标员工节点的可见节点,以减少计算量以及提升更新效率。
S524,获取当前节点并确定其是否为目标员工节点的可见节点。
服务器确定目标员工节点的可见节点的计算时间没有超过预设阈值时,可以从单位节点框架中选择一个没有被遍历的节点作为当前节点,并确定其是否为目标员工节点的可见节点。
S525,将当前节点添加至目标员工节点的可见节点列表。
服务器确定当前节点为目标员工节点的可见节点时,将其添加至目标员工节点的可见节点列表。
S526,将下一个节点作为当前节点。
服务器将当前节点添加至目标员工节点的可见节点列表后,或者服务器确定当前节点不为目标员工节点的可见节点时,可以从单位节点框架中选择下一个没有被遍历的节点作为当前节点,继续执行S522,直至该累计计算时间超过该预设阈值,或直至完成该单位节点架构下的各个节点是否为该目标员工节点的可见节点的计算。
在一些实施例中,若该目标更新方式为该增量更新方式,则该S420可包括:
确定该目标员工节点的可见节点列表的累计计算时间是否超过预设阈值;若该累计计算时间超过该预设阈值,则返回该目标员工节点的已经计算的节点是否为该目标员工节点的可见节点的计算结果和时间戳;否则,从该单位节点架构中获取当前节点并确定该当前节点是否为更新节点;若该当前节点为更新节点,则计算该当前节点是否为该目标员工节点的可见节点,直至该累计计算时间超过该预设阈值,或直至完成该单位节点架构下的各个节点是否为该目标员工节点的可见节点的计算。
图8是本申请实施例提供的基于增量更新方式进行通信录更新的方法的示意性流程图。
如图8所示,该方法530可包括:
S531,开始更新。
服务器开始更新通信录。例如,例如可以通过用户的操作或定期的方式触发服务器开始更新通信录。再如,若该单位节点架构的可见性规则发生变化、该单位节点架构中节点的可见性规则发生变化、或该单位节点架构中的节点发生变化,则触发服务器开始更新通信录。
S532,目标员工节点的可见节点的计算时间是否超过预设阈值。
服务器确定目标员工节点的可见节点的计算时间是否超过预设阈值。可选的,该预设阈值可以是1s或其他数值。
S533,将剩余节点加至目标员工节点的可见节点列表,并返回已计算节点是否为目标员工节点的可见节点的计算结果以及时间戳。
在目标员工节点的可见节点的计算时间超过预设阈值时,服务器可以基于已计算节点中为目标员工节点的可见节点,添加至该目标节点的可见节点列表。此外,由于单位节点架构下该目标员工节点的可见节点越多,则该目标员工节点的可见节点列表的计算时间越长,因此,该若该累计计算时间超过该预设阈值,说明该单位节点框架下的大部分节点为该目标员工的可见节点,此时,可以直接将剩余的节点直接确定为该目标员工节点的可见节点,以减少计算量以及提升更新效率。
S534,获取当前节点并确定其是否为变更节点。
服务器确定目标员工节点的可见节点的计算时间没有超过预设阈值时,可以从单位节点框架中选择一个没有被遍历的节点作为当前节点,并确定其是否为变更节点。
S535,确定当前节点是否为目标员工节点的可见节点。
服务器确定当前节点为变更节点时,确定其是否为目标员工节点的可见节点
S536,将当前节点添加至目标员工节点的可见节点列表。
服务器确定当前节点为目标员工节点的可见节点时,将其添加至目标员工节点的可见节点列表。
S537,将下一个节点作为当前节点。
服务器将当前节点添加至目标员工节点的可见节点列表后,或者服务器确定当前节点不为变更节点时,可以从单位节点框架中选择下一个没有被遍历的节点作为当前节点,继续执行S532,直至该累计计算时间超过该预设阈值,或直至完成该单位节点架构下的各个节点是否为该目标员工节点的可见节点的计算。
在一些实施例中,该方法400还可包括:
确定该目标员工节点所属的目标单位节点下的待移除子节点;其中,该待移除子节点包括以下中的至少一项:从该目标单位节点离职或调离的员工节点、从该目标单位节点移除的子单元节点、以及从该目标单位节点移除的子单元节点下的子节点;通过在该目标单位节点下添加已移除子节点,并将该待移除子节点调整为该已移除子节点下的子节点的方式,更新该服务器存储的通信录。
本实施例中,针对目标单位节点,服务器通过在目标单位节点下建立已移除子节点,不仅能够使得目标单位节点下的员工节点加载到服务器建立的已移除子节点,还是避免其他单位节点下的员工节点加载服务器在该目标单位节点下建立的已移除子节点,由此,可以保证各个员工都只加载当前部门的已移除子节点,能够减少客户端加载的数据量。举例来说,客户端A在同步通信录时,加载客户端A所属的单位节点A下的已移除子节点,客户端B在同步通信录时,加载客户端B所属的单位节点A下的已移除子节点,以减少客户端加载的数据量。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文对本申请实施例提供的方法进行了说明,下面对本申请实施例提供的装置进行说明。
图8是本申请实施例提供的客户端600的示意性框图。
如图8所示,该客户端600可包括:
确定单元610,用于确定目标员工节点所属的目标单位节点;
同步单元620,用于通过从服务器加载单位节点架构以及该目标单位节点下各个员工节点的方式,同步该目标员工节点的通信录;
其中,该单位节点架构为多个单位节点形成的、且用于表征该多个单位节点中各个单位节点之间的层级关系的架构,该多个单位节点包括该目标单位节点。
在一些实施例中,该同步单元620还用于:
响应于用户针对该单位节点架构中除该目标单位节点之外的其他单元节点执行的触发操作,触发该客户端通过从该服务器加载该其他单位节点下各个员工节点的方式,同步该目标员工节点的通信录。
在一些实施例中,该触发操作为用户针对该其他单位节点的展示位置执行的点击操作。
在一些实施例中,该同步单元620具体用于:
通过从该服务器加载该单位节点架构、以及该目标单位节点下位于该目标员工节点的可见节点列表中各个员工节点的方式,同步该目标员工节点的通信录;
其中,该目标员工节点的可见节点列表包括该目标用户可见的所有节点。
在一些实施例中,该同步单元620具体用于:
通过从该服务器加载该目标单位节点下的各个员工节点以及该目标单位节点下的已移除子节点下的各个子节点的方式,同步该目标员工节点的通信录;
其中,该已移除子节点下的各个子节点包括以下中的至少一项:从该目标单位节点离职或调离的员工节点、从该目标单位节点移除的子单元节点、以及从该目标单位节点移除的子单元节点下的子节点。
在一些实施例中,该确定单元610具体用于:
若该单位节点架构中单位节点的数量大于或等于预设数量,则确定该目标单位节点;
该同步单元620还用于:
若该单位节点架构中单位节点的数量小于所述预设数量,则通过从服务器加载单位节点架构以及该单位节点架构下各个员工节点的方式,同步该目标员工节点的通信录。
在一些实施例中,该同步单元620具体用于:
利用全量加载方式或增量加载方式,从该服务器加载单位节点架构以及该目标单位节点下各个员工节点;
其中,该全量加载方式指该客户端通过加载所有待加载节点的方式加载该单位节点架构以及该目标单位节点下各个员工节点,该增量加载方式指该客户端通过加载所有待加载节点中的变更节点的方式加载该单位节点架构以及该目标单位节点下各个员工节点;
基于该单位节点架构以及该目标单位节点下各个员工节点,构建该目标员工节点的通信录。
在一些实施例中,该同步单元620还用于:
若该目标单位节点从第一单位节点切换至第二单位节点,则通过重新从该服务器加载该第二单位节点下的各个员工节点的方式,同步该目标员工节点的通信录。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,客户端600可以对应于执行本申请实施例的方法200中的相应主体,并且客户端600中的各个单元分别为了实现方法200中的相应流程,为了简洁,在此不再赘述。
图9是本申请实施例提供的服务器700的示意性框图。
如图9所示,该服务器700可包括:
确定单元710,用于确定单位节点架构下的目标员工节点采用的目标更新方式;
其中,该单位节点架构为多个单位节点形成的、且用于表征该多个单位节点中各个单位节点之间的层级关系的架构;该目标更新方式包括全量更新方式和增量更新方式,该全量更新方式指相对该单位节点架构下的各个节点更新该目标员工节点的可见节点列表,该增量更新方式指相对该单位节点下的变更节点更新该目标员工节点的可见节点列表;
第一更新单元720,用于基于该目标更新方式,更新该目标员工节点的可见节点列表;
第二更新单元730,用于基于该目标员工节点的可见节点列表,更新该服务器存储的通信录。
在一些实施例中,该确定单元710具体用于:
若该服务器的处理器未处于过载状态,或该处理器处于过载状态的情况下该目标员工节点的可见节点列表为首次更新,则在该单位节点架构的可见性规则发生变化或该单位节点架构中员工节点的可见性规则发生变化时,将该全量更新方式确定为该目标更新方式;否则,将该增量更新方式确定为该目标更新方式;
该第一更新单元720还用于:
若该处理器处于过载状态,则在预设时长内尝试更新该单位节点架构下的部分通信录。
在一些实施例中,若该目标更新方式为该全量更新方式,则该第一更新单元720具有用于:
该基于该目标更新方式,更新该目标员工节点的可见节点列表,包括:
确定该目标员工节点的可见节点列表的累计计算时间是否超过预设阈值;
若该累计计算时间超过该预设阈值,则返回该目标员工节点的已经计算的节点是否为该目标员工节点的可见节点的计算结果和时间戳;否则,从该单位节点架构中获取当前节点,并计算该当前节点是否为该目标员工节点的可见节点,直至该累计计算时间超过该预设阈值,或直至完成该单位节点架构下的各个节点是否为该目标员工节点的可见节点的计算。
在一些实施例中,若该目标更新方式为该增量更新方式,则该第一更新单元720具有用于:
该基于该目标更新方式,更新该目标员工节点的可见节点列表,包括:
确定该目标员工节点的可见节点列表的累计计算时间是否超过预设阈值;
若该累计计算时间超过该预设阈值,则返回该目标员工节点的已经计算的节点是否为该目标员工节点的可见节点的计算结果和时间戳;否则,从该单位节点架构中获取当前节点并确定该当前节点是否为更新节点;
若该当前节点为更新节点,则计算该当前节点是否为该目标员工节点的可见节点,直至该累计计算时间超过该预设阈值,或直至完成该单位节点架构下的各个节点是否为该目标员工节点的可见节点的计算。
在一些实施例中,该第一更新单元720还用于:
确定该目标员工节点所属的目标单位节点下的待移除子节点;
其中,该待移除子节点包括以下中的至少一项:从该目标单位节点离职或调离的员工节点、从该目标单位节点移除的子单元节点、以及从该目标单位节点移除的子单元节点下的子节点;
通过在该目标单位节点下添加已移除子节点,并将该待移除子节点调整为该已移除子节点下的子节点的方式,更新该服务器存储的通信录。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,服务器700可以对应于执行本申请实施例的方法400中的相应主体,并且服务器700中的各个单元分别为了实现方法400中的相应流程,为了简洁,在此不再赘述。
还应当理解,本申请实施例涉及的客户端600和服务器700中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该客户端600和服务器700也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括例如中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造本申请实施例涉及的客户端600和服务器700,以及来实现本申请实施例提供的方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于电子设备中,并在其中运行,来实现本申请实施例的相应方法。
换言之,上文涉及的单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过软硬件结合的形式实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件组合执行完成。可选地,软件可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图10是本申请实施例提供的电子设备800的示意结构图。
如图10所示,该电子设备800至少包括处理器810以及计算机可读存储介质820。其中,处理器810以及计算机可读存储介质820可通过总线或者其它方式连接。计算机可读存储介质820用于存储计算机程序821,计算机程序821包括计算机指令,处理器810用于执行计算机可读存储介质820存储的计算机指令。处理器810是电子设备800的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
作为示例,处理器810也可称为中央处理器(Central Processing Unit,CPU)。处理器810可以包括但不限于:通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
作为示例,计算机可读存储介质820可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器810的计算机可读存储介质。具体而言,计算机可读存储介质820包括但不限于:易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
如图10所示,该电子设备800还可以包括收发器830。
其中,处理器810可以控制该收发器830与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器830可以包括发射机和接收机。收发器830还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该通信设备800中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。值得注意的是,该电子设备800可以是任一种具有数据处理能力的电子设备;该计算机可读存储介质820中存储有第一计算机指令;由处理器810加载并执行计算机可读存储介质820中存放的第一计算机指令,以实现本申请实施例提供的同步通信录的方法中的相应步骤;具体实现中,计算机可读存储介质820中的第一计算机指令由处理器810加载并执行相应步骤,为避免重复,此处不再赘述。该计算机可读存储介质820中存储有第二计算机指令;由处理器810加载并执行计算机可读存储介质820中存放的第二计算机指令,以实现本申请实施例提供的更新通信录的方法中的相应步骤;具体实现中,计算机可读存储介质820中的第二计算机指令由处理器810加载并执行相应步骤,为避免重复,此处不再赘述。
根据本申请的另一方面,本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是电子设备800中的记忆设备,用于存放程序和数据。例如,计算机可读存储介质820。可以理解的是,此处的计算机可读存储介质820既可以包括电子设备800中的内置存储介质,当然也可以包括电子设备800所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了电子设备800的操作系统。并且,在该存储空间中还存放了适于被处理器810加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或多个的计算机程序821(包括程序代码)。
根据本申请的另一方面,本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。例如,计算机程序821。此时,数据处理设备800可以是计算机,处理器810从计算机可读存储介质820读取该计算机指令,处理器810执行该计算机指令,使得该计算机执行上述各种可选方式中提供的各种方法。换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地运行本申请实施例的流程或实现本申请实施例的功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质进行传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元以及流程步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
最后需要说明的是,以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种同步通信录的方法,其特征在于,所述方法适用于客户端,所述方法包括:
确定目标员工节点所属的目标单位节点;
通过从服务器加载单位节点架构以及所述目标单位节点下各个员工节点的方式,同步所述目标员工节点的通信录;
其中,所述单位节点架构为多个单位节点形成的、且用于表征所述多个单位节点中各个单位节点之间的层级关系的架构,所述多个单位节点包括所述目标单位节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于用户针对所述单位节点架构中除所述目标单位节点之外的其他单元节点执行的触发操作,触发所述客户端通过从所述服务器加载所述其他单位节点下各个员工节点的方式,同步所述目标员工节点的通信录。
3.根据权利要求1或2所述的方法,其特征在于,所述通过从服务器加载单位节点架构以及所述目标单位节点下各个员工节点的方式,同步所述目标员工节点的通信录,包括:
通过从所述服务器加载所述单位节点架构、以及所述目标单位节点下位于所述目标员工节点的可见节点列表中各个员工节点的方式,同步所述目标员工节点的通信录;
其中,所述目标员工节点的可见节点列表包括所述目标用户可见的所有节点。
4.根据权利要求1或2所述的方法,其特征在于,所述通过从服务器加载单位节点架构以及所述目标单位节点下各个员工节点的方式,同步所述目标员工节点的通信录,包括:
通过从所述服务器加载所述目标单位节点下的各个员工节点以及所述目标单位节点下的已移除子节点下的各个子节点的方式,同步所述目标员工节点的通信录;
其中,所述已移除子节点下的各个子节点包括以下中的至少一项:从所述目标单位节点离职或调离的员工节点、从所述目标单位节点移除的子单元节点、以及从所述目标单位节点移除的子单元节点下的子节点。
5.根据权利要求1或2所述的方法,其特征在于,所述确定目标员工节点所属的目标单位节点,包括:
若所述单位节点架构中单位节点的数量大于或等于预设数量,则确定所述目标单位节点;
所述方法还包括:
若所述单位节点架构中单位节点的数量小于所述预设数量,则通过从服务器加载单位节点架构以及所述单位节点架构下各个员工节点的方式,同步所述目标员工节点的通信录。
6.一种更新通信录的方法,其特征在于,所述方法适用于服务器,所述方法包括:
确定单位节点架构下的目标员工节点采用的目标更新方式;
其中,所述单位节点架构为多个单位节点形成的、且用于表征所述多个单位节点中各个单位节点之间的层级关系的架构;所述目标更新方式包括全量更新方式和增量更新方式,所述全量更新方式指相对所述单位节点架构下的各个节点更新所述目标员工节点的可见节点列表,所述增量更新方式指相对所述单位节点下的变更节点更新所述目标员工节点的可见节点列表;
基于所述目标更新方式,更新所述目标员工节点的可见节点列表;
基于所述目标员工节点的可见节点列表,更新所述服务器存储的通信录。
7.根据权利要求6所述的方法,其特征在于,所述确定单位节点架构下的目标员工节点采用的目标更新方式,包括:
若所述服务器的处理器未处于过载状态,或所述处理器处于过载状态的情况下所述目标员工节点的可见节点列表为首次更新,则在所述单位节点架构的可见性规则发生变化或所述单位节点架构中员工节点的可见性规则发生变化时,将所述全量更新方式确定为所述目标更新方式;否则,将所述增量更新方式确定为所述目标更新方式;
所述方法还包括:
若所述处理器处于过载状态,则在预设时长内尝试更新所述单位节点架构下的部分通信录。
8.根据权利要求6所述的方法,其特征在于,若所述目标更新方式为所述全量更新方式,则:
所述基于所述目标更新方式,更新所述目标员工节点的可见节点列表,包括:
确定所述目标员工节点的可见节点列表的累计计算时间是否超过预设阈值;
若所述累计计算时间超过所述预设阈值,则返回所述目标员工节点的已经计算的节点是否为所述目标员工节点的可见节点的计算结果和时间戳;否则,从所述单位节点架构中获取当前节点,并计算所述当前节点是否为所述目标员工节点的可见节点,直至所述累计计算时间超过所述预设阈值,或直至完成所述单位节点架构下的各个节点是否为所述目标员工节点的可见节点的计算。
9.根据权利要求6所述的方法,其特征在于,若所述目标更新方式为所述增量更新方式,则:
所述基于所述目标更新方式,更新所述目标员工节点的可见节点列表,包括:
确定所述目标员工节点的可见节点列表的累计计算时间是否超过预设阈值;
若所述累计计算时间超过所述预设阈值,则返回所述目标员工节点的已经计算的节点是否为所述目标员工节点的可见节点的计算结果和时间戳;否则,从所述单位节点架构中获取当前节点并确定所述当前节点是否为更新节点;
若所述当前节点为更新节点,则计算所述当前节点是否为所述目标员工节点的可见节点,直至所述累计计算时间超过所述预设阈值,或直至完成所述单位节点架构下的各个节点是否为所述目标员工节点的可见节点的计算。
10.根据权利要求6至9中任一项所述的方法,其特征在于,所述方法还包括:
确定所述目标员工节点所属的目标单位节点下的待移除子节点;
其中,所述待移除子节点包括以下中的至少一项:从所述目标单位节点离职或调离的员工节点、从所述目标单位节点移除的子单元节点、以及从所述目标单位节点移除的子单元节点下的子节点;
通过在所述目标单位节点下添加已移除子节点,并将所述待移除子节点调整为所述已移除子节点下的子节点的方式,更新所述服务器存储的通信录。
11.一种客户端,其特征在于,包括:
确定单元,用于确定目标员工节点所属的目标单位节点;
同步单元,用于通过从服务器加载单位节点架构以及所述目标单位节点下各个员工节点的方式,同步所述目标员工节点的通信录;
其中,所述单位节点架构为多个单位节点形成的、且用于表征所述多个单位节点中各个单位节点之间的层级关系的架构,所述多个单位节点包括所述目标单位节点。
12.一种服务器,其特征在于,包括:
确定单元,用于确定单位节点架构下的目标员工节点采用的目标更新方式;
其中,所述单位节点架构为多个单位节点形成的、且用于表征所述多个单位节点中各个单位节点之间的层级关系的架构;所述目标更新方式包括全量更新方式和增量更新方式,所述全量更新方式指相对所述单位节点架构下的各个节点更新所述目标员工节点的可见节点列表,所述增量更新方式指相对所述单位节点下的变更节点更新所述目标员工节点的可见节点列表;
第一更新单元,用于基于所述目标更新方式,更新所述目标员工节点的可见节点列表;
第二更新单元,用于基于所述目标员工节点的可见节点列表,更新所述服务器存储的通信录。
13.一种电子设备,其特征在于,包括:
处理器,适于执行计算机程序;
计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至5中任一项所述的方法或如权利要求6至10中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至5中任一项所述的方法或如权利要求6至10中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现如权利要求1至5中任一项所述的方法或如权利要求6至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211073895.2A CN117692428A (zh) | 2022-09-02 | 2022-09-02 | 同步通信录的方法、更新通信录的方法、客户端和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211073895.2A CN117692428A (zh) | 2022-09-02 | 2022-09-02 | 同步通信录的方法、更新通信录的方法、客户端和服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117692428A true CN117692428A (zh) | 2024-03-12 |
Family
ID=90133948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211073895.2A Pending CN117692428A (zh) | 2022-09-02 | 2022-09-02 | 同步通信录的方法、更新通信录的方法、客户端和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117692428A (zh) |
-
2022
- 2022-09-02 CN CN202211073895.2A patent/CN117692428A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8250102B2 (en) | Remote storage and management of binary object data | |
CN107220142B (zh) | 执行数据恢复操作的方法及装置 | |
US9020949B2 (en) | Method and system for centralized issue tracking | |
US7840546B2 (en) | Method and apparatus for conducting data queries using consolidation strings and inter-node consolidation | |
CN110730225A (zh) | 基于区块链的物联网的数据处理方法、物联网及存储介质 | |
TW200400444A (en) | System and method for accessing different types of back end data stores | |
US11720545B2 (en) | Optimization of chaincode statements | |
EP4379556A1 (en) | Blockchain-based data processing method, and device and computer-readable storage medium | |
KR102475435B1 (ko) | 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법 | |
CN102332016A (zh) | 目录机会锁 | |
US20230370285A1 (en) | Block-chain-based data processing method, computer device, computer-readable storage medium | |
WO2022057525A1 (zh) | 一种数据找回方法、装置、电子设备及存储介质 | |
CN113162971B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN114584326B (zh) | 区块链数据处理方法、装置、电子设备及存储介质 | |
CN117692428A (zh) | 同步通信录的方法、更新通信录的方法、客户端和服务器 | |
CN111782262B (zh) | 数据动态发布方法、装置、系统、设备及存储介质 | |
US20140372375A1 (en) | Contact data sharing | |
CN114925044A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN116095081A (zh) | 基于区块链系统的事件处理方法及装置、设备、介质 | |
US11348101B2 (en) | Post-settlement processes | |
CN109376193B (zh) | 基于自适应规则的数据交换系统 | |
CN112989404A (zh) | 基于区块链的日志管理方法及相关设备 | |
US20120016900A1 (en) | Identification of third party pim repositories storing a user's contact information | |
CN112883038B (zh) | 一种基于区块链的数据管理方法、计算机及可读存储介质 | |
CN115242499B (zh) | 网络请求方法、网络请求装置、电子设备、存储介质 |
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 |