H04L67/1095 H04L67/133 H04L67/63
1.一种数据同步方法,所述数据同步方法应用于服务端,包括:
基于服务端与接收方终端之间的长连接,将所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端;
获取针对在所述服务端存储的服务数据的远程过程调用的申请调用请求,所述申请调用请求包括至少一个目标服务类别,所述目标服务类别是所述接收方终端基于所述更新通知,筛选的无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别;
基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端;
其中,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
2.根据权利要求1所述的数据同步方法,其中,所述基于服务端与接收方终端之间的长连接,将所述服务端存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端之前,所述数据同步方法还包括:
接收发送方终端运行的所述服务应用所更新的服务数据;
更新所述服务端中存储的服务数据以及服务数据的数据版本信息和/或数据生效时间。
3.根据权利要求1所述的数据同步方法,其中,所述申请调用请求还包括所述接收方终端中运行的所述服务应用的场景数据,所述基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端包括:
利用远程过程调用协议,将所述服务端存储的所述目标服务类别对应的且与所述场景数据匹配的目标服务数据远程过程调用到所述接收方终端。
4.一种数据同步方法,所述数据同步方法应用于接收方终端,包括:
基于服务端与接收方终端之间的长连接,接收所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知;
基于所述更新通知,筛选所述接收方终端中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别;
将针对在所述服务端存储的服务数据的远程过程调用的申请调用请求发送至所述服务端,所述申请调用请求包括至少一个所述目标服务类别;
接收所述服务端存储的所述目标服务类别对应的目标服务数据;
其中,所述目标服务数据是所述服务端基于服务类别和服务数据的一一对应关系,利用远程过程调用协议远程过程调用到所述接收方终端的,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
5.根据权利要求4所述的数据同步方法,其中,所述基于所述更新通知,筛选所述接收方终端中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别包括:
获取所述接收方终端中存储的服务数据;
针对每个服务类别,基于所述更新通知,分别校验所述接收方终端中存储的服务数据的数据版本信息和数据生效时间,从中筛选出无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别,将筛选出的服务类别作为所述目标服务类别。
6.根据权利要求4所述的数据同步方法,其中,所述接收所述服务端存储的所述目标服务类别对应的目标服务数据包括:
比较所述目标服务数据和所述接收方终端中存储的服务数据以确定所述目标服务数据中的数据更新部分;
将所述目标服务数据中的数据更新部分存储到所述接收方终端。
7.一种数据同步装置,包括:
更新通知发送单元,用于基于服务端与接收方终端之间的长连接,将所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端;
申请调用请求获取单元,用于获取针对在所述服务端存储的服务数据的远程过程调用的申请调用请求,所述申请调用请求包括至少一个目标服务类别,所述目标服务类别是所述接收方终端基于所述更新通知,筛选的无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别;
远程过程调用单元,用于基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端;
其中,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
8.一种数据同步装置,包括:
更新通知接收单元,用于基于服务端与接收方终端之间的长连接,接收所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知;
目标服务类别确定单元,用于基于所述更新通知,筛选所述接收方终端中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别;
申请调用请求发送单元,用于将针对在所述服务端存储的服务数据的远程过程调用的申请调用请求发送至所述服务端,所述申请调用请求包括至少一个所述目标服务类别;
目标服务数据接收单元,用于接收所述服务端存储的所述目标服务类别对应的目标服务数据;
其中,所述目标服务数据是所述服务端基于服务类别和服务数据的一一对应关系,利用远程过程调用协议远程过程调用到所述接收方终端的,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
9.一种计算设备,包括:
存储器,用于存储计算机可执行代码;
处理器,用于执行所述计算机可执行代码,使得所述处理器执行上述权利要求1-6中任一个所述的数据同步方法。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机可执行代码,所述计算机可执行代码被处理器执行时实现上述权利要求1-6中任一项所述的数据同步方法。
本公开涉及数据同步技术领域,具体而言,涉及一种数据同步方法、相关装置和介质。
越来越多的应用程序(APP,也可称为应用软件)需要与部署在云端的服务器进行交互以便给用户提供各种计算服务,在客户端(client)和服务器(server)架构(简称“C/S”架构)中,服务器需要把相关服务数据实时通知到客户端。通常,可以基于SOCKET(套接字)协议建立客户端与对应的服务器之间的通信长连接,从而通过长连接实现客户端和服务器之间的数据通信。然而,客户端的网络情况不稳定,经常会出现断网、重新联网或网络切换等问题使得客户端无法实时接收数据,服务器需要保存大量的离线数据,待客户端重新上线后,通过长连接将离线数据发送给客户端。服务器短时间内下发大量的离线数据,在传输数据过程中易丢失数据,这降低了服务器向客户端同步数据的可靠性。
有鉴于此,本公开的一个目的是提高服务端向接收方终端同步数据的实时性和可靠性。
第一方面,本公开实施例提供一种数据同步方法,所述数据同步方法应用于服务端,包括:
基于服务端与接收方终端之间的长连接,将所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端;
获取针对在所述服务端存储的服务数据的远程过程调用的申请调用请求,所述申请调用请求包括至少一个目标服务类别,所述目标服务类别是所述接收方终端基于所述更新通知,筛选的无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别;
基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端;
其中,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
可选地,所述基于服务端与接收方终端之间的长连接,将所述服务端存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端之前,所述数据同步方法还包括:
接收发送方终端运行的所述服务应用所更新的服务数据;
更新所述服务端中存储的服务数据以及服务数据的数据版本信息和/或数据生效时间。
可选地,所述申请调用请求还包括所述接收方终端中运行的所述服务应用的场景数据,所述基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端包括:
利用远程过程调用协议,将所述服务端存储的所述目标服务类别对应的且与所述场景数据匹配的目标服务数据远程过程调用到所述接收方终端。
第二方面,本公开实施例提供一种数据同步方法,所述数据同步方法应用于接收方终端,包括:
基于服务端与接收方终端之间的长连接,接收所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知;
基于所述更新通知,筛选所述接收方终端中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别;
将针对在所述服务端存储的服务数据的远程过程调用的申请调用请求发送至所述服务端,所述申请调用请求包括至少一个所述目标服务类别;
接收所述服务端存储的所述目标服务类别对应的目标服务数据;
其中,所述目标服务数据是所述服务端基于服务类别和服务数据的一一对应关系,利用远程过程调用协议远程过程调用到所述接收方终端的,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
可选地,所述基于所述更新通知,筛选所述接收方终端中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别包括:
获取所述接收方终端中存储的服务数据;
针对每个服务类别,基于所述更新通知,分别校验所述接收方终端中存储的服务数据的数据版本信息和数据生效时间,从中筛选出无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别,将筛选出的服务类别作为所述目标服务类别。
可选地,所述接收所述服务端存储的所述目标服务类别对应的目标服务数据包括:
比较所述目标服务数据和所述接收方终端中存储的服务数据以确定所述目标服务数据中的数据更新部分;
将所述目标服务数据中的数据更新部分存储到所述接收方终端。
第三方面,本公开实施例提供一种数据同步装置,包括:
更新通知发送单元,用于基于服务端与接收方终端之间的长连接,将所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端;
申请调用请求获取单元,用于获取针对在所述服务端存储的服务数据的远程过程调用的申请调用请求,所述申请调用请求包括至少一个目标服务类别,所述目标服务类别是所述接收方终端基于所述更新通知,筛选的无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别;
远程过程调用单元,用于基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端;
其中,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
第四方面,本公开实施例提供一种数据同步装置,包括:
更新通知接收单元,用于基于服务端与接收方终端之间的长连接,接收所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知;
目标服务类别确定单元,用于基于所述更新通知,筛选所述接收方终端中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别;
申请调用请求发送单元,用于将针对在所述服务端存储的服务数据的远程过程调用的申请调用请求发送至所述服务端,所述申请调用请求包括至少一个所述目标服务类别;
目标服务数据接收单元,用于接收所述服务端存储的所述目标服务类别对应的目标服务数据;
其中,所述目标服务数据是所述服务端基于服务类别和服务数据的一一对应关系,利用远程过程调用协议远程过程调用到所述接收方终端的,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
第五方面,本公开实施例提供一种计算设备,包括:
存储器,用于存储计算机可执行代码;
处理器,用于执行所述计算机可执行代码,使得所述处理器执行上述任一个所述的数据同步方法。
第六方面,本公开实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行代码,所述计算机可执行代码被处理器执行时实现上述任一项所述的数据同步方法。
本公开实施例中,服务端可以基于服务端与接收方终端之间的长连接,将服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至接收方终端,接着,接收方终端可以将针对在服务端存储的服务数据的远程过程调用的申请调用请求发生至服务端,申请调用请求包括至少一个目标服务类别,这样,在获取该申请调用请求后,服务端可以基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将服务端存储的目标服务类别对应的目标服务数据及时地远程过程调用到接收方终端,这样接收方终端中运行的服务应用可以对其本地存储的服务数据进行计算以提供相应服务类别的服务功能,这样,在服务端存储的服务数据发生更新时,接收方终端可以通过发送远程过程调用的申请调用请求,巧妙的利用远程过程调用请求可以携带目标服务类别这一特点,获取服务端存储的目标服务类别对应的目标服务数据,提高了服务端向接收方终端同步数据的实时性,也避免了服务端向接收方终端发送不需要的数据,从而减少了服务端向接收方终端同步数据的数据传输量,提高了服务器向接收方终端同步数据的可靠性。
通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本公开一个实施例所应用的数据同步系统的结构图;
图2是本公开一个实施例所应用的数据同步系统的结构图;
图3是根据本公开一个实施例的数据同步方法的流程示意图;
图4是根据本公开一个实施例的数据同步方法的流程示意图;
图5是根据本公开一个实施例的接收方终端和服务端的交互图;
图6是根据本公开一个实施例的接收方终端和服务端的交互图;
图7是根据本公开一个实施例的接收方终端和服务端的交互图;
图8示出了本公开一个实施例的数据同步装置的结构示意图;
图9示出了本公开一个实施例的数据同步装置的结构示意图。
以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
在本文中使用以下术语:
长连接:是指在一个连接上可以连续发送多个数据包,且如果在连接保持期间没有数据包发送,需要连接双方发送用于检测连接的数据包。长连接多用于操作频繁(读写)的场景中,当服务端与终端需要及时频繁进行通信与交互时,通常会在服务端与终端间(例如,基于SOCKET(套接字)协议)建立长连接,以提升通信交互的效率与速度。
远程过程调用(Remote Procedure Call,RPC):是指服务应用通过网络从目标服务请求获得针对调用请求信息的服务数据的过程调用,即服务应用像调用本地服务一样调用远程服务,而不感知RPC底层通信协议。在RPC调用过程中,使用的数据交互协议为RPC协议。服务应用作为远程过程调用的调用发起方,目标服务作为远程过程调用的服务提供方。在本公开实施例中,接收方终端中安装和运行的服务应用为远程过程调用的调用发起方,服务端作为远程过程调用的服务提供方。
本公开的应用环境
本公开实施例提出了一种数据同步方案。整个数据同步方案相对较为通用,可以用于需要进行数据同步的各种硬件设备,例如,用于数据中心、用于AI(人工智能)加速单元,用于GPU(图形处理单元),用于能执行深度学习模型的IOT(物联网)设备,嵌入式设备等。数据同步方案与执行该方案的硬件装置最终部署在的硬件无关。但为了示例性描述,下文中将主要以客户端和服务器架构的数据同步系统为应用场景进行描述。本领域技术人员应当理解,本公开实施例还可以适用于其它的应用场景。
数据同步系统
图1是本公开一个实施例所应用的数据同步系统的结构图。如图1所示,数据同步系统100包括:发送方终端13、至少一个接收方终端11和服务端12。发送方终端13、接收方终端11和服务端12通过网络可以相互访问。
在一些实施例中,发送方终端13和接收方终端11是指用户使用的,具有用户所需计算、上网、通信等功能的计算机设备,例如可以是智能手机、平板电脑、个人电脑、穿戴设备等。发送方终端13和接收方终端11上可以分别安装并运行一个或多个服务应用A,服务应用A是指可实现用户所需服务功能的应用程序(APP)。服务应用A可以是即时通信类应用、邮件类应用、视频播放类应用、购物类应用、电子商务类应用、社交类应用等。应当理解的是,在实现上,服务应用A还可为客户端、网页、软件开发工具包(SDK)和小程序等。相应地,在一些实施例中,服务端12是服务应用A的服务提供方的服务平台的服务端设备,可响应发送方终端13和接收方终端11上运行的服务应用A的各种请求进行相应处理,并向发送方终端13和接收方终端11返回处理结果,以及向发送方终端13和接收方终端11上运行的服务应用A提供资源、存储发送方终端13和接收方终端11上运行的服务应用A的数据等等。应当理解的是,服务端12可以是任何能够面向各种场景中的终端用户提供计算服务,响应发送方终端13和接收方终端11的服务请求,并进行处理的设备。在物理实现上,这里的服务端12可以是单一服务器设备,也可指数据中心,或也可以是云化的数据中心中运行的虚拟机(virtualmachine,VM)。
在一些实施例中,服务应用A可以支持多终端同时登录,在发送方终端13上运行的服务应用A的相关服务数据可通过服务端12同步到至少一个接收方终端11。在一些实施例中,发送方终端13和接收方终端11上运行的服务应用A可以是同一用户登录的不同应用版本的服务应用A,例如,Android版、PC版、iOS版等分别适应各个不同操作系统的应用版本的服务应用A。在一些实施例中,发送方终端13可以将其上运行的服务应用A的相关服务数据存储到服务端12,服务端12可以将相应的服务数据同步到至少一个接收方终端11中,以便于接收方终端11上运行的服务应用A能够对该相应的服务数据进行计算以提供相应服务类别的服务功能。在一个示例中,服务应用A是即时通信类应用(例如,钉钉),用户在发送方终端13对Android版的服务应用A的相关服务数据进行更新,如将即时通信类应用的聊天记录中一个文字、图片、音视频等文件加入收藏夹、将某个聊天对象的对话框置顶操作等,则可以将发送方终端13上运行的服务应用A的这些相关服务数据存储到服务端12,以便于服务端12将该相关服务数据同步到PC版、iOS版等分别适应各个不同操作系统的其他应用版本的服务应用A的接收方终端11。应当理解,服务应用A相关的服务数据可以是服务应用A的任何需要在多个终端(包括发送方终端13和接收方终端11)和服务端12之间进行数据同步的数据。由于将在服务端12存储的服务应用A的相关服务数据同步到接收方终端11的具体过程将在下文中详述,故这里不再赘述。
在一些实施例中,服务端12、发送方终端13和接收方终端11之间可以是无线或有线连接。可选地,服务端12可以通过移动网络与发送方终端13和接收方终端11通信连接,相应地,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。可选地,服务端12也可以通过蓝牙、WiFi、红外线等方式与发送方终端13和接收方终端11通信连接。
图2示出了本公开一个实施例的数据同步系统的结构图。如图2所示,数据同步系统包括接收方终端11和服务端12。
在一些实施例中,如图2所示,接收方终端11上可以安装并运行服务应用A和数据同步应用B。数据同步应用B可以是指用于协助服务端12以将服务端12存储的服务应用A相关的服务数据远程过程调用到接收方终端11的应用程序。在一些实施例中,服务应用A和数据同步应用B可以为不同的应用程序,也可为同一应用程序中不同的功能模块。服务应用A和数据同步应用B可实现为2个独立的进程。应当理解的是,在实现上,数据同步应用B还可为客户端、网页、软件开发工具包(SDK)和小程序等。在一些实施例中,服务应用A和数据同步应用B可以安装于同一个接收方终端11上。例如,对于服务应用A为即时通信类应用(如钉钉)的情况,数据同步应用B为用于将服务端12存储的服务应用A的服务数据同步到接收方终端11的软件开发工具包(SDK),服务应用A和数据同步应用B可以安装于同一个智能移动终端上。
在一些实施例中,如图2所示,数据同步应用B包括事件中心(event center)模块111、数据中心(data center)模块114和更新数据同步服务模块118。在一些实施例中,事件中心模块111可以负责处理服务应用A的相关事件的注册和通知等功能。事件中心模块111可以包括服务应用监测管理单元112和更新数据分发单元113。在一些实施例中,服务应用监测管理单元112可以监测接收方终端11上安装并运行的服务应用A,将服务应用A注册到数据同步应用B。更新数据分发单元113可以根据服务数据的服务类别与服务应用A的一一对应关系,将接收方终端11中存储的服务应用A的相关服务类别的更新服务数据分发给对应的服务应用A,以便于服务应用A能够对该更新服务数据进行计算来提供相应服务类别的服务功能。在一些实施例中,数据中心模块114可以负责将在服务端12存储的服务数据远程过程调用至接收方终端11。数据中心模块114可以包括数据检测单元117、存储服务单元115和网络服务单元116。在一些实施例中,存储服务单元115可以从接收方终端11获取本地存储的服务数据,其中每个服务类别对应的服务数据具有数据版本信息和数据生效时间。应当理解,数据版本信息和数据生效时间是服务数据的基本属性。数据版本信息可以是服务数据的版本号,版本号可以随着服务数据的变更而更新,对于更新的数据版本信息,更新前的数据版本信息是无效的。数据生效时间可以是服务数据的数据生命周期,当服务数据的保留时间超过设置的数据生效时间时,该数据生效时间失效,可以自动清理超过该数据生效时间的数据。在一些实施例中,数据检测单元117可以针对每个服务类别,分别校验接收方终端11中存储的服务应用A的服务数据的数据版本信息和数据生效时间,从中筛选出无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别,将筛选出的服务类别作为目标服务类别。在一些实施例中,网络服务单元116可以向服务端12发送针对在服务端12存储的服务数据的远程过程调用的申请调用请求,申请调用请求中可以包括至少一个目标服务类别。网络服务单元116还可以接收基于服务类别和服务数据的一一对应关系,利用远程过程调用协议远程过程调用到接收方终端11的目标服务数据,该目标服务数据是服务端12中存储的目标服务类别对应的服务数据。在一些实施例中,更新数据同步服务模块118可以基于服务端12和接收方终端11之间的长连接,获取服务端12存储的服务应用A的服务数据的数据版本信息和/或数据生效时间的更新通知,将该更新通知发送给数据检测单元117,这样,数据检测单元117可以基于该更新通知,针对每个服务类别,分别校验接收方终端11中存储的服务数据的数据版本信息和数据生效时间。
在一些实施例中,服务端12是服务应用A的服务提供方的服务平台的服务端设备。服务端12可以设置有数据同步装置121。在一些实施例中,数据同步装置121是服务端12中的功能模块,在实现上,数据同步装置121可以是软件的程序模块,也可以是硬件的,例如基于FPGA或CPLD等实现。在一些实施例中,数据同步装置121包括远程过程调用(remoteprocedure call,RPC)模块122、长连接通信模块123、场景数据处理模块124和业务对接模块125。在一些实施例中,远程过程调用模块122可以获取针对在服务端12存储的服务应用A的服务数据的远程过程调用的申请调用请求,申请调用请求包括至少一个目标服务类别,还可以基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将服务端12存储的目标服务类别对应的目标服务数据远程过程调用到接收方终端11。在一些实施例中,远程过程调用模块122还可以利用远程过程调用协议,将发送方终端13中运行的服务应用A所更新的服务数据远程过程调用到服务端12。在一些实施例中,长连接通信模块123可以在接收方终端11和服务端12之间建立长连接,利用长连接将服务端12存储的服务应用A的服务数据的数据版本信息和/或数据生效时间的更新通知发送到接收方终端11。在一些实施例中,场景数据处理模块124可以在将发送方终端13中运行的服务应用A所更新的服务数据远程过程调用到服务端12的情况下,将该服务应用A所更新的服务数据存储到服务端12,更新在服务端12存储的服务数据的数据版本信息和/或数据生效时间。在一些实施例中,业务对接模块125可以与服务端12中服务应用A所对应的服务提供方服务器通信,服务提供方服务器可以为服务应用A提供各种服务类别的服务数据,使得服务应用A对服务数据进行计算以提供相应服务类别的服务功能。在一些实施例中,场景数据处理模块124可以通过业务对接模块125,获取服务端12存储的目标服务类别对应的目标服务数据,这样,远程过程调用模块122可以利用远程过程调用协议,将服务端12存储的目标服务类别对应的目标服务数据远程过程调用到接收方终端11。由于将在服务端12存储的服务应用A的相关服务数据同步到接收方终端11的具体过程将在下文中详述,故这里不再赘述。
根据本公开实施例的数据同步方法
在一些实施例中,如图3所示,提供了一种数据同步方法。该方法可以由数据同步装置121执行。在服务端12为单台计算机的情况下,数据同步装置121是单台计算机的一部分,该数据同步方法由单台计算机的一部分执行。在服务端12为多台计算机构成的集合的情况下,数据同步装置121是单台计算机,该数据同步方法由单台计算机执行。在服务端12为云的形式的情况下,数据同步装置121是云端的一系列计算机或计算机上的部分,该数据同步方法由云端的一系列计算机或计算机上的部分执行。
如图3所示,根据本公开一个实施例的数据同步方法包括:步骤S310、基于服务端与接收方终端之间的长连接,将所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端;步骤S320、获取针对在所述服务端存储的服务数据的远程过程调用的申请调用请求,所述申请调用请求包括至少一个目标服务类别,所述目标服务类别是所述接收方终端基于所述更新通知,筛选的无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别;步骤S330、基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端;其中,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
下面分别对以上步骤进行详细描述。
在步骤S310中,基于服务端与接收方终端之间的长连接,将所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端。
在一些实施例中,服务应用A可以支持在多终端同时登录,发送方终端13和接收方终端11上安装并运行同一用户登录的服务应用A。在一些实施例中,发送方终端13可以将其上运行的服务应用A所更新的相关服务数据存储到服务端12,服务端12可以将相应的服务数据同步到接收方终端11中,以便于接收方终端11上安装并运行的服务应用A能够对该相应的服务数据进行计算以提供相应服务类别的服务功能。在一些实施例中,在发送方终端13上运行的服务应用A的相关服务数据发生数据变更的情况下,发送方终端13可以通过远程过程调用,将更新的服务数据远程过程调用到服务端12。这样,服务端12可以存储发送方终端13更新的服务数据,并且更新其存储的服务数据的数据版本信息和/或数据生效时间。在一些实施例中,为了能够及时地将发送方终端13更新的服务应用A的服务数据同步到接收方终端13,在服务端12更新其存储的服务数据的数据版本信息和/或数据生效时间时,可以基于SOCKET(套接字)协议,在服务端12与接收方终端11之间建立长连接,由于建立长连接的技术为现有技术,故这里不再赘述。还可以基于服务端12与接收方终端11之间的长连接,将服务端12中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至接收方终端11。
在步骤S320中,获取针对在所述服务端存储的服务数据的远程过程调用的申请调用请求,所述申请调用请求包括至少一个目标服务类别,所述目标服务类别是所述接收方终端基于所述更新通知,筛选的无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别。
在一些实施例中,接收方终端11的存储服务单元115可以读取接收方终端11中本地存储的服务数据。数据检测单元117可以基于服务端12中存储的服务数据的数据版本信息和/或数据生效时间的更新通知,筛选接收方终端11中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别。在一些实施例中,数据检测单元117可以针对每个服务类别,基于服务端12中存储的服务数据的数据版本信息和/或数据生效时间的更新通知,分别校验接收方终端11中存储的服务数据的数据版本信息和数据生效时间。在一些实施例中,更新通知可以包括服务端12中存储的服务数据的更新后的数据版本信息(可以是更新的版本号),数据检测单元117可以针对服务数据,将不同于该更新通知中的数据版本信息校验为无效的数据版本信息。在一些实施例中,更新通知还可以包括服务端12中存储的服务数据的更新后的数据生效时间,数据检测单元117可以针对服务数据,按照更新通知中服务数据的数据生效时间,当服务数据的保留时间超过设置的该数据生效时间时,该数据生效时间失效。这样,数据检测单元117可以将筛选出的无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别作为目标服务类别。
在一些实施例中,网络服务单元116可以将包括至少一个目标服务类别且用于远程过程调用在服务端12存储的目标服务类别对应的目标服务数据的申请调用请求发送到服务端12的远程过程调用模块122。在一些实施例中,服务端12的远程过程调用模块122可以获取针对在服务端12存储的服务数据的远程过程调用的申请调用请求,通过解析申请调用请求可以获取申请调用请求中的目标服务类别。
在步骤S330中,基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端;其中,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
在一些实施例中,服务类别和服务数据之间存在一一对应关系,接收方终端11中运行的服务应用A对相应服务类别的服务数据进行计算以提供该相应服务类别的服务功能。例如,对于地图服务类应用来说,服务应用所能提供的服务功能的服务类别可以包括搜索业务、定位业务、路线规划业务、导航业务、定位服务、渲染业务等。又例如,对于在线购物类应用来说,服务应用所能提供的服务功能的服务类别可以包括搜索业务、下单业务、物流查询业务、客服请求业务等。又例如,对于及时通信类应用来说,服务应用所能提供的服务功能的服务类别可以包括消息置顶业务、消息发送业务、聊天记录查询业务、聊业务等。应当理解,随着服务应用的不同,服务应用所能提供的服务功能的服务类别不同。在接收到针对在服务端12存储的服务数据的远程过程调用的申请调用请求的情况下,服务端12的远程过程调用模块122可以基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将服务端12存储的目标服务类别对应的目标服务数据远程过程调用到接收方终端11。由于远程过程调用技术为现有技术,故这里不再赘述。这样,接收方终端11可以获取并存储目标服务数据,接收方终端11中运行的服务应用A可以对接收方终端11本地存储的服务数据进行计算以提供相应服务类别的服务功能。在一些实施例中,接收方终端11可以比较目标服务数据和接收方终端11中本地存储的服务数据以确定目标服务数据中的数据更新部分,将目标服务数据中的数据更新部分存储到接收方终端11。
在一些实施例中,针对在服务端12存储的服务数据的远程过程调用的申请调用请求还可以包括接收方终端11中运行的服务应用A的场景数据。在一些实施例中,服务应用A的场景数据包括接收方终端11的型号、接收方终端11所支持的操作系统、接收方终端11所处网络环境等。在一些实施例中,服务端12的远程过程调用模块122可以获取针对在服务端12存储的服务数据的远程过程调用的申请调用请求,通过解析申请调用请求可以获取申请调用请求中的目标服务类别和接收方终端11中运行的服务应用A的场景数据。服务端12的远程过程调用模块122可以基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将服务端12存储的目标服务类别对应的且与该场景数据匹配的目标服务数据远程过程调用到接收方终端11。例如,远程过程调用模块122可以利用远程过程调用协议,将服务端12存储的目标服务类别对应的且支持Android版操作系统的目标服务数据远程过程调用到接收方终端11,避免将PC版、iOS版等适应其他操作系统的应用版本的服务数据远程过程调用到接收方终端11。
在一些实施例中,如图4所示,提供了一种数据同步方法。该方法可以由数据同步应用B执行。数据同步应用B可以是接收方终端11上安装并运行的应用程序、客户端、网页、软件开发工具包(SDK)和小程序等。
如图4所示,根据本公开一个实施例的数据同步方法包括:步骤S410、基于服务端与接收方终端之间的长连接,接收所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知;步骤S420、基于所述更新通知,筛选所述接收方终端中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别;步骤S430、将针对在所述服务端存储的服务数据的远程过程调用的申请调用请求发送至所述服务端,所述申请调用请求包括至少一个所述目标服务类别;步骤S440、接收所述服务端存储的所述目标服务类别对应的目标服务数据;其中,所述目标服务数据是所述服务端基于服务类别和服务数据的一一对应关系,利用远程过程调用协议远程过程调用到所述接收方终端的,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
由于将在服务端存储的服务应用的相关服务数据同步到接收方终端的具体过程在上文中已经详述,故这里不再赘述。
图5是根据本公开一个实施例的接收方终端和服务端的交互图。在一些实施例中,如图5所示,接收方终端11和服务端12的交互过程具体包括以下步骤:
在步骤S501中,利用接收方终端11中数据同步应用B获取接收方终端11中运行的服务应用A的数据获取请求,该数据获取请求中可以包括服务应用A所请求的服务数据对应的服务类别。
在步骤S502中,利用接收方终端11中数据同步应用B获取接收方终端11中存储的服务数据,且针对每个服务类别,分别校验接收方终端11中存储的服务数据的数据版本信息和数据生效时间,从中筛选出无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别,将筛选出的服务类别作为目标服务类别。
在步骤S503中,利用接收方终端11中数据同步应用B向服务端12发送针对在服务端12存储的服务数据的远程过程调用的申请调用请求,申请调用请求包括至少一个目标服务类别。
在步骤S504中,利用服务端12中远程过程调用模块122接收针对在服务端12存储的服务数据的远程过程调用的申请调用请求,解析申请调用请求获取其中包括的至少一个目标服务类别。接着,可以利用服务端12中远程过程调用模块122,基于服务类别和服务数据的一一对应关系,获取服务端12存储的目标服务类别对应的目标服务数据,利用远程过程调用协议将服务端12存储的目标服务类别对应的目标服务数据远程过程调用到接收方终端11。
在一些实施例中,针对在服务端12存储的服务数据的远程过程调用的申请调用请求还可以包括接收方终端11中运行的服务应用A的场景数据。在利用服务端12中远程过程调用模块122解析申请调用请求获取其中包括的至少一个目标服务类别之外,还获取到接收方终端11中运行的服务应用A的场景数据。接着,可以利用服务端12中远程过程调用模块122,基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将服务端12存储的目标服务类别对应的且与接收方终端11中运行的服务应用A的场景数据匹配的目标服务数据远程过程调用到接收方终端11。
在步骤S505中,利用接收方终端11中数据同步应用B,获取并存储服务端12所存储的目标服务类别对应的目标服务数据。在一些实施例中,利用接收方终端11中数据同步应用B,比较目标服务数据和接收方终端11中本地存储的服务数据以确定目标服务数据中的数据更新部分,将目标服务数据中的数据更新部分存储到接收方终端11。
在步骤S506中,利用接收方终端11中数据同步应用B,通过数据同步应用B和服务应用A之间的传输通道,将服务应用A所请求的服务数据发送给服务应用A,这样,接收方终端11中运行的服务应用A可以对接收方终端11本地存储的服务数据进行计算以提供相应服务类别的服务功能。其中,服务应用A所请求的服务类别的服务数据可以包括接收方终端11本地存储的且数据版本信息和数据生效时间均有效的服务数据以及从服务端12远程过程调用的目标服务类别的服务数据。
图6是根据本公开一个实施例的接收方终端和服务端的交互图。在一些实施例中,如图6所示,接收方终端11和服务端12的交互过程具体包括以下步骤:
在步骤S601中,利用服务端12中的长连接通信模块123获取服务端12存储的服务数据的数据版本信息和/或数据生效时间的更新通知,并利用服务端12和接收方终端11之间的长连接,将该更新通知发送给接收方终端11的数据同步应用B。
在步骤S602中,利用接收方终端11中数据同步应用B获取接收方终端11中本地存储的服务数据,且针对每个服务类别,分别校验接收方终端11中存储的服务数据的数据版本信息和数据生效时间,从中筛选出无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别,将筛选出的服务类别作为目标服务类别。
在步骤S603中,利用接收方终端11中数据同步应用B向服务端12发送针对在服务端12存储的服务数据的远程过程调用的申请调用请求,申请调用请求包括至少一个目标服务类别。
在步骤S604中,利用服务端12中远程过程调用模块122接收针对在服务端12存储的服务数据的远程过程调用的申请调用请求,解析申请调用请求获取其中包括的至少一个目标服务类别。接着,可以利用服务端12中远程过程调用模块122,基于服务类别和服务数据的一一对应关系,获取服务端12存储的目标服务类别对应的目标服务数据,利用远程过程调用协议将服务端12存储的目标服务类别对应的目标服务数据远程过程调用到接收方终端11。
在一些实施例中,针对在服务端12存储的服务数据的远程过程调用的申请调用请求还可以包括接收方终端11中运行的服务应用A的场景数据。在利用服务端12中远程过程调用模块122解析申请调用请求获取其中包括的至少一个目标服务类别之外,还获取到接收方终端11中运行的服务应用A的场景数据。接着,可以利用服务端12中远程过程调用模块122,基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将服务端12存储的目标服务类别对应的且与接收方终端11中运行的服务应用A的场景数据匹配的目标服务数据远程过程调用到接收方终端11。
在步骤S605中,利用接收方终端11中数据同步应用B,获取并存储服务端12所存储的目标服务类别对应的目标服务数据。在一些实施例中,利用接收方终端11中数据同步应用B,比较目标服务数据和接收方终端11中本地存储的服务数据以确定目标服务数据中的数据更新部分,将目标服务数据中的数据更新部分存储到接收方终端11。
在步骤S606中,利用接收方终端11中数据同步应用B,通过数据同步应用B和服务应用A之间的传输通道,将目标服务数据中的数据更新部分通知给服务应用A,这样,接收方终端11中运行的服务应用A可以对接收方终端11本地存储的服务数据进行计算以提供相应服务类别的服务功能。
图7是根据本公开一个实施例的接收方终端和服务端的交互图。在一些实施例中,如图7所示,接收方终端11和服务端12的交互过程具体包括以下步骤:
在步骤S701中,利用服务端12中的远程过程调用模块122,通过远过程调用协议,将发送方终端13中运行的服务应用A所更新的服务数据远程过程调用到服务端12。
在步骤S702中,利用服务端12中远程过程调用模块122将发送方终端13中运行的服务应用A所更新的服务数据发送给场景数据处理模块124,由场景数据处理模块124将该服务应用A所更新的服务数据存储到服务端12,更新在服务端12存储的服务数据的数据版本信息和/或数据生效时间。
在步骤S703中,利用服务端12中的长连接通信模块123,将服务端12存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送给接收方终端11中数据同步应用B。
在步骤S704中,利用接收方终端11中数据同步应用B获取接收方终端11中存储的服务数据,且针对每个服务类别,分别校验接收方终端11中存储的服务数据的数据版本信息和数据生效时间,从中筛选出无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别,将筛选出的服务类别作为目标服务类别。
在步骤S705中,利用接收方终端11中数据同步应用B向服务端12发送针对在服务端12存储的服务数据的远程过程调用的申请调用请求,申请调用请求包括至少一个目标服务类别。
在步骤S706中,利用服务端12中远程过程调用模块122接收针对在服务端12存储的服务数据的远程过程调用的申请调用请求,解析申请调用请求获取其中包括的至少一个目标服务类别。接着,还利用服务端12中远程过程调用模块122,基于服务类别和服务数据的一一对应关系,获取服务端12存储的目标服务类别对应的目标服务数据,利用远程过程调用协议将服务端12存储的目标服务类别对应的目标服务数据远程过程调用到接收方终端11。
在一些实施例中,针对在服务端12存储的服务数据的远程过程调用的申请调用请求还可以包括接收方终端11中运行的服务应用A的场景数据。在利用服务端12中远程过程调用模块122解析申请调用请求获取其中包括的至少一个目标服务类别之外,还获取到接收方终端11中运行的服务应用A的场景数据。接着,可以利用服务端12中远程过程调用模块122,基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将服务端12存储的目标服务类别对应的且与接收方终端11中运行的服务应用A的场景数据匹配的目标服务数据远程过程调用到接收方终端11。
在步骤S707中,利用接收方终端11中数据同步应用B,获取并存储服务端12所存储的目标服务类别对应的目标服务数据。在一些实施例中,利用接收方终端11中数据同步应用B,比较目标服务数据和接收方终端11中本地存储的服务数据以确定目标服务数据中的数据更新部分,将目标服务数据中的数据更新部分存储到接收方终端11。
在步骤S708中,利用接收方终端11中数据同步应用B,通过数据同步应用B和服务应用A之间的传输通道,将目标服务数据中的数据更新部分通知给服务应用A,这样,接收方终端11中运行的服务应用A可以对接收方终端11本地存储的服务数据进行计算以提供相应服务类别的服务功能。
图8是根据本公开一个实施例的数据同步装置的结构图。如图8所示,数据同步装置包括:更新通知发送单元810、申请调用请求获取单元820、和远程过程调用单元830。
更新通知发送单元810,用于基于服务端与接收方终端之间的长连接,将所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知发送至所述接收方终端。申请调用请求获取单元820,用于获取针对在所述服务端存储的服务数据的远程过程调用的申请调用请求,所述申请调用请求包括至少一个目标服务类别,所述目标服务类别是所述接收方终端基于所述更新通知,筛选的无效的数据版本信息和/或数据生效时间所对应的服务数据的服务类别。远程过程调用单元830,用于基于服务类别和服务数据的一一对应关系,利用远程过程调用协议将所述服务端存储的所述目标服务类别对应的目标服务数据远程过程调用到所述接收方终端;其中,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
由于将在服务端存储的服务应用的相关服务数据同步到接收方终端的具体过程在上文中已经详述,故这里不再赘述。
图9是根据本公开一个实施例的数据同步装置的结构图。如图9所示,数据同步装置包括:更新通知接收单元910、目标服务类别确定单元920、申请调用请求发送单元930和目标服务数据接收单元940。
更新通知接收单元910,用于基于服务端与接收方终端之间的长连接,接收所述服务端中存储的服务数据的数据版本信息和/或数据生效时间的更新通知。目标服务类别确定单元920,用于基于所述更新通知,筛选所述接收方终端中存储的无效的数据版本信息和/或数据生效时间所对应的服务数据,将筛选的服务数据的服务类别作为目标服务类别。申请调用请求发送单元930,用于将针对在所述服务端存储的服务数据的远程过程调用的申请调用请求发送至所述服务端,所述申请调用请求包括至少一个所述目标服务类别。目标服务数据接收单元940,用于接收所述服务端存储的所述目标服务类别对应的目标服务数据;其中,所述目标服务数据是所述服务端基于服务类别和服务数据的一一对应关系,利用远程过程调用协议远程过程调用到所述接收方终端的,所述接收方终端中运行的服务应用对所述目标服务数据进行计算以提供相应服务类别的服务功能。
由于将在服务端存储的服务应用的相关服务数据同步到接收方终端的具体过程在上文中已经详述,故这里不再赘述。
本公开实施例的商业价值
本公开实施例提供的数据同步系统中,服务端可以利用远程过程调用协议将服务端存储的目标服务类别对应的目标服务数据远程过程调用到接收方终端,这样,接收方终端通过向服务端发送远程过程调用的申请调用请求,巧妙的利用远程过程调用获取服务端存储的目标服务类别对应的目标服务数据,这减少了服务端向接收方终端同步数据的数据传输量。在此场景下,通过减少服务端向接收方终端同步数据的数据传输量,从而降低服务端和接收方终端之间的数据传输成本。本公开实施例使服务端和接收方终端之间的数据传输成本降低,因而具备了良好的商业价值和经济价值。
本领域的技术人员能够理解,本公开可以实现为系统、方法和计算机程序产品。因此,本公开可以具体实现为以下形式,即完全的硬件、完全的软件(包括固件、驻留软件、微代码),还可以实现为软件和硬件结合的形式。此外,在一些实施例中,本公开还可以实现为一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如但不限于为电、磁、光、电磁、红外线或半导体的系统、装置或器件,或其他任意以上的组合。计算机可读存储介质的更具体的例子包括:具体一个或多个导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器、磁存储器或者上述任意合适的组合。在本文中,计算机可读的存储介质可以是任意包含或存储程序的有形介质,该程序可以被处理单元、装置或者器件使用,或者与其结合使用。
计算机可读信号介质可以包括在基带中或者作为截波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或者其他任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质之外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令系统、装置或器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,以及上述任意合适的组合。
可以以一种或者多种程序设计语言或者组合来编写用于执行本公开实施例的计算机程序代码。所述程序设计语言包括面向对象的程序设计语言,例如JAVA、C++,还可以包括常规的过程式程序设计语言,例如C。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAn)或广域网(WAn)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
本文发布于:2023-04-14 19:42:49,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/87358.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |