开云优惠体育网页版入口

开云优惠体育网页版入口:服务调用系统、方法、设备及存储介质实用新型专利

更新时间:2026-09-01
服务调用系统、方法、设备及存储介质实用新型专利 专利申请类型:实用新型专利;
地区:广东-东莞;
源自:东莞高价值专利检索信息库;

专利名称:服务调用系统、方法、设备及存储介质

专利类型:实用新型专利

专利申请号:CN202210239349.5

专利申请(专利权)人:OPPO广东移动通信有限公司
权利人地址:广东省东莞市长安镇乌沙海滨路18号

专利发明(设计)人:杨俊拯,郝赟

专利摘要:本申请涉及一种服务调用系统、方法、设备及存储介质,属于终端技术领域。该方法包括:响应于服务调用请求,向服务管理器发送获取请求,所述服务调用请求用于请求调用目标服务;接收所述服务管理器发送的所述目标服务的安装包;基于缓存资源,解析所述安装包,得到可执行文件;基于所述虚拟机执行所述可执行文件,以调用所述目标服务。通过上述方法,实现了通过虚拟机实现调用目标服务,这样目标服务无需下载到终端上,进而节省了终端内存资源的占用,解决了终端内存不足的问题。

主权利要求:
1.一种第一电子设备,其特征在于,所述第一电子设备运行有虚拟机,所述第一电子设备包括服务代理组件、动态服务缓存组件和动态服务管理组件;
所述第一电子设备为设备网关响应于第二电子设备发送的服务调用请求,从多个第一电子设备中确定的用于调用目标服务的第一电子设备,所述设备网关用于向所述用于调用目标服务的第一电子设备转发所述服务调用请求,所述用于调用目标服务的第一电子设备为满足已订阅所述目标服务、当前资源占用最少中至少一项的第一电子设备;
所述服务代理组件用于响应于所述服务调用请求,基于所述服务调用请求确定目标服务的服务标识,将所述目标服务的服务标识发送给所述动态服务缓存组件;
所述动态服务缓存组件用于基于所述服务标识,从本地缓存中查询是否缓存有所述目标服务的安装包;
在所述本地缓存中缓存有所述目标服务的安装包的情况下,所述动态服务管理组件用于基于所述服务标识,调用所述本地缓存中的目标服务的安装包进行动态加载;
在所述本地缓存中未缓存有所述目标服务的安装包的情况下,所述动态服务缓存组件用于基于所述服务标识,确定所述目标服务的服务类型,若所述目标服务的服务类型为动态服务,基于所述服务标识向服务管理器发送所述服务调用请求,以获取所述目标服务的安装包;
所述动态服务管理组件用于基于缓存资源,解析所述安装包,得到可执行文件,以便触发所述虚拟机执行所述可执行文件,以调用所述目标服务。
2.根据权利要求1所述的第一电子设备,其特征在于,所述动态服务管理组件用于响应于目标服务满足卸载条件,向所述动态服务缓存组件发送卸载指令;
所述动态服务缓存组件用于响应于所述卸载指令,卸载所述目标服务。
3.根据权利要求2所述的第一电子设备,其特征在于,所述满足卸载条件包括:所述目标服务已被调用;或者,
所述目标服务在预设时长内未被调用;或者,
接收到针对所述目标服务的卸载操作。
4.一种服务调用系统,其特征在于,所述系统包括:服务管理器、第一电子设备、第二电子设备以及设备网关,所述第一电子设备的数量为多个,所述第一电子设备为权利要求1?3任一项所述的第一电子设备;
所述第二电子设备用于向所述设备网关发送服务调用请求;
所述设备网关用于响应于所述服务调用请求,从多个第一电子设备中确定用于调用目标服务的第一电子设备,向所述用于调用目标服务的第一电子设备转发所述服务调用请求,所述用于调用目标服务的第一电子设备为满足已订阅所述目标服务、当前资源占用最少中至少一项的第一电子设备;
所述服务管理器用于响应于获取请求,基于所述获取请求携带的目标服务的服务标识,确定目标服务的安装包,向所述用于调用目标服务的第一电子设备发送所述目标服务的安装包;
所述用于调用目标服务的第一电子设备用于响应于所述服务调用请求,确定所述服务调用请求携带的目标服务的服务标识,基于所述服务标识,从本地缓存中查询是否缓存有所述目标服务的可执行文件,在所述本地缓存中缓存有所述目标服务的可执行文件的情况下,获取所述可执行文件,在所述本地缓存中未缓存有所述目标服务的可执行文件的情况下,向所述服务管理器发送获取请求,接收所述服务管理器发送的所述目标服务的安装包,基于缓存资源,解析所述安装包,得到可执行文件,基于所述虚拟机执行所述可执行文件,以调用所述目标服务。
5.一种服务调用方法,其特征在于,所述方法由第一电子设备执行,所述第一电子设备运行有虚拟机,所述第一电子设备为设备网关响应于第二电子设备发送的服务调用请求,从多个第一电子设备中确定的用于调用目标服务的第一电子设备,所述设备网关用于向所述用于调用目标服务的第一电子设备转发所述服务调用请求,所述用于调用目标服务的第一电子设备为满足已订阅所述目标服务、当前资源占用最少中至少一项的第一电子设备,所述方法包括:响应于所述服务调用请求,确定所述服务调用请求携带的目标服务的服务标识;
基于所述服务标识,从本地缓存中查询是否缓存有所述目标服务的可执行文件;
在所述本地缓存中缓存有所述目标服务的可执行文件的情况下,获取所述可执行文件;
在所述本地缓存中未缓存有所述目标服务的可执行文件的情况下,向服务管理器发送获取请求,所述服务调用请求用于请求调用所述目标服务;
接收所述服务管理器发送的所述目标服务的安装包;
基于缓存资源,解析所述安装包,得到可执行文件;
基于所述虚拟机执行所述可执行文件,以调用所述目标服务。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于所述服务调用请求,确定所述服务调用请求携带的所述目标服务的服务标识;
基于所述服务标识,确定所述目标服务的服务类型;
若所述目标服务的服务类型为动态服务,执行所述向服务管理器发送获取请求的步骤。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于所述目标服务满足卸载条件,卸载所述目标服务。
8.根据权利要求7所述的方法,其特征在于,所述满足卸载条件包括:所述目标服务已被调用;或者,
所述目标服务在预设时长内未被调用;或者,
接收到针对所述目标服务的卸载操作。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;所述存储器存储有至少一条程序代码,所述至少一条程序代码用于被所述处理器执行以实现如权利要求5至8任一项所述的服务调用方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一条程序代码,所述至少一条程序代码用于被处理器执行以实现如权利要求5至8任一项所述的服务调用方法。 说明书 : 服务调用系统、方法、设备及存储介质技术领域[0001] 本申请实施例涉及终端技术领域,特别涉及一种服务调用系统、方法、设备及存储介质。背景技术[0002] 随着终端技术的发展,通过终端实现的服务的类型越来越丰富。例如,通过终端播放视频、播放音频等。[0003] 相关技术中,一般在终端上实现目标服务时,需要先在设备上下载用于提供目标服务的应用程序,从而通过运行该应用程序实现调用该目标服务。[0004] 上述相关技术中,需要先在终端上安装应用程序,再访问服务,因此会占用终端的大量内存,导致终端内存资源不足。发明内容[0005] 本申请实施例提供了一种服务调用系统、方法、设备及存储介质,减少应用程序占用的内存资源。所述技术方案如下:[0006] 一方面,提供了一种第一电子设备,所述第一电子设备运行有虚拟机,所述第一电子设备包括服务代理组件、动态服务缓存组件和动态服务管理组件;[0007] 所述服务代理组件用于响应于服务调用请求,基于所述服务调用请求确定所述目标服务的服务标识,将所述目标服务的服务标识发送给所述动态服务缓存组件;[0008] 所述动态服务缓存组件用于基于所述服务标识,确定所述目标服务的服务类型,若所述目标服务的服务类型为动态服务,基于所述服务标识向所述服务管理器发送所述服务调用请求,以获取所述目标服务的安装包;[0009] 所述动态服务管理组件用于基于缓存资源,解析所述安装包,得到所述可执行文件,以便触发所述虚拟机执行所述可执行文件,以调用所述目标服务。[0010] 另一方面,提供了一种服务调用系统,其特征在于,所述系统包括:服务管理器和第一电子设备,所述第一电子设备为上述实施例所述的第一电子设备,所述服务管理器为上述实施例所述的服务管理器;[0011] 所述服务管理器用于响应于获取请求,基于所述获取请求携带的目标服务的服务标识,确定目标服务的安装包,向所述第一电子设备发送所述目标服务的安装包;[0012] 所述第一电子设备用于响应于服务调用请求,向所述服务管理器发送获取请求,接收所述服务管理器发送的所述目标服务的安装包,基于缓存资源,解析所述安装包,得到可执行文件,基于所述虚拟机执行所述可执行文件,以调用所述目标服务。[0013] 另一方面,提供了一种服务调用方法,所述方法由第一电子设备执行,所述第一电子设备运行有虚拟机,所述方法包括:[0014] 响应于服务调用请求,向服务管理器发送获取请求,所述服务调用请求用于请求调用目标服务;[0015] 接收所述服务管理器发送的所述目标服务的安装包;[0016] 基于缓存资源,解析所述安装包,得到可执行文件;[0017] 基于所述虚拟机执行所述可执行文件,以调用所述目标服务。[0018] 另一方面,提供了一种服务调用方法,所述方法由服务管理器执行,所述方法包括:[0019] 响应于获取请求,基于所述获取请求携带的目标服务的服务标识,确定目标服务的安装包;[0020] 向第一电子设备发送所述目标服务的安装包,以便所述第一电子设备动态加载所述安装包,以调用所述目标服务。[0021] 另一方面,提供了一种设备,所述设备包括处理器和存储器;所述存储器存储有至少一条程序代码,所述至少一条程序代码用于被所述处理器执行以实现如上述方面所述的服务调用方法。[0022] 另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一条程序代码,所述至少一条程序代码用于被处理器执行以实现如上述方面所述的服务调用方法。[0023] 另一方面,提供了一种计算机程序产品,所述计算机程序产品存储有至少一条程序代码,所述至少一条程序代码用于被处理器执行以实现如上述方面所述的服务调用方法。[0024] 在本申请实施例中,将服务的安装包存储在服务管理器中,在第一电子设备需要调用目标服务时,从服务管理器中获取目标服务的安装包,基于虚拟机技术,动态加载该安装包,从而实现了通过缓存资源对安装包进行解析,进而通过虚拟机实现调用目标服务,这样目标服务无需下载到终端上,进而节省了终端内存资源的占用,解决了终端内存不足的问题。附图说明[0025] 图1示出了本申请一个示例性实施例所提供的服务调用方法所涉及的实施环境的示意图;[0026] 图2示出了本申请一个示例性实施例所提供的服务调用方法所涉及的实施环境的示意图;[0027] 图3示出了本申请一个示例性实施例示出的服务调用方法的流程图;[0028] 图4示出了本申请一个示例性实施例示出的服务调用方法的流程图;[0029] 图5示出了本申请一个示例性实施例示出的服务调用方法的流程图;[0030] 图6示出了本申请一个示例性实施例示出的服务调用方法的流程图;[0031] 图7示出了本申请一个示例性实施例所提供的服务调用方法所涉及的实施环境的示意图;[0032] 图8示出了本申请一个示例性实施例所提供的服务调用方法所涉及的实施环境的示意图;[0033] 图9示出了本申请一个示例性实施例所提供的服务调用方法所涉及的实施环境的示意图;[0034] 图10示出了本申请一个示例性实施例示出的电子设备的结构框图;[0035] 图11示出了本申请一个示例性实施例示出的服务管理器的结构框图。具体实施方式[0036] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。[0037] 在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。[0038] 需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的安装包等都是在充分授权的情况下获取的。[0039] 下面对本申请涉及的技术进行介绍。[0040] 虚拟机(VirtualMachine):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体电子设备中能够完成的工作在虚拟机中都能够实现。在电子设备中创建虚拟机时,需要将实体电子设备的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体电子设备一样对虚拟机进行操作。[0041] 服务:用于被电子设备调用以实现目标功能。为了方便描述,在本申请实施例中,将服务区分为动态服务和普通服务。其中,动态服务指通过虚拟机在用户调用时在进行动态的加载、执行以及卸载的服务。普通服务指传统的先安装程序包,在启动程序后加载起来的服务。需要说明的一点是,动态服务和普通服务,两者没有本质区别,只是加载的时机及方式不同。[0042] 请参考图1,其示出了本申请一个示例性实施例示出的服务调用方法所涉及的实施环境。该实施环境包括:服务管理器和第一电子设备。服务管理器和第一电子设备之间通过网络进行数据交互。[0043] 服务管理器中存储有多个服务的安装包,用于为第一电子设备提供动态加载服务的安装包。第一电子设备运行有虚拟机,通过虚拟机能够动态加载目标服务。在一些实施例中,该虚拟机为支持动态加载服务安装包的虚拟机。例如,该虚拟机可以为JVM虚拟机(JavaVirtualMachine,一种Java虚拟机)或Dalvik虚拟机(一种用于手机平台的虚拟机)。[0044] 在一些实施例中,参见图2,该第一电子设备的数量为多个,该实施环境还包括第二电子设备和设备网关。第二电子设备和多个第一电子设备分别通过网络与设备网关进行数据交互。在一些实施例中,该第二电子设备和多个第一电子设备为与同一设备网关建立网络连接的电子设备。在一些实施例中,该第二电子设备和多个第一电子设备为使用同一账号登录的电子设备。在本申请实施例中,对此不作具体限定。[0045] 在一些实施例中,该第一电子设备和第二电子设备均可以是诸如智能手机、平板电脑、笔记本电脑、台式计算机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(PersonalComputer,个人计算机)、智能家电、车载终端、智能语音交互设备中的任一电子设备。设备网关可以为路由器、中继器等。该服务管理器可以为独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDeliveryNetwork,内容分发网络)、大数据和人工智能平台中至少一种基础云计算服务的云服务器。[0046] 请参考图3,其示出了本其示出了本申请一个示例性实施例示出的服务调用方法的流程图。该方法包括:[0047] 步骤S301:响应于服务调用请求,第一电子设备向服务管理器发送获取请求,该服务调用请求用于请求调用目标服务。[0048] 在一些实施例中,第一电子设备接收服务调用请求,基于该服务调用请求向服务管理器发送获取请求。相应地,响应于服务调用请求,确定该服务调用请求携带的该目标服务的服务标识;基于该服务标识,确定该目标服务的服务类型;若该目标服务的服务类型为动态服务,执行步骤S301。[0049] 在一些实施例中,该服务调用请求为用户通过第一电子设备触发的。例如,该第一电子设备提供多个服务的调用接口,响应于目标服务的调用接口被触发,确定接收到服务调用请求。在一些实施例中,该服务调用请求为用户通过其他电子设备触发的。例如,继续参见图2,该第一电子设备的数量为多个,该系统还包括:第二电子设备和设备网关;该第二电子设备用于向设备网关发送服务调用请求;该设备网关用于响应于该服务调用请求,从该多个第一电子设备中确定用于调用目标服务的第一电子设备,向该用于调用目标服务第一电子设备转发该服务调用请求。[0050] 在一些实施例中,设备网关基于第二电子设备的服务调用请求,确定多个第一电子设备中已订阅该目标服务的第一电子设备,向已订阅该目标服务的第一电子设备转发该服务调用请求。在一些实施例中,设备网关基于多个第一电子设备的资源占用情况,从该多个第一电子设备中,确定当前资源占用最少的第一电子设备,向该第一电子设备转发该服务调用请求。在一些实施例中,用于通过第二电子设备指定用于调用该目标服务的第一电子设备,相应地,服务网关基于该服务调用请求,确定被指定的第一电子设备,向该第一电子设备转发该服务调用请求。在本申请实施例中,通过第二电子设备控制第一电子设备调用目标服务,以分布式的服务调用,实现了目标服务的跨设备访问。[0051] 在本申请实施例中,第一电子设备确定该目标服务是否为动态服务,从而在该目标服务为动态服务的情况下,获取该目标服务的安装包,这样目标服务无需下载到第一电子设备上,进而节省了终端内存资源的占用,解决了第一电子设备内存不足的问题。[0052] 在一些实施例中,第一电子设备基于该服务标识,从服务管理器中查询该目标服务的服务类型。其中,服务管理器中存储有动态服务的服务标识。相应地,第一电子设备件基于该服务标识,在服务管理器中进行查询,若服务管理器中存在该服务标识,则确定该目标服务的服务类型为动态服务,若服务管理器中不存在该服务标识,则确定该目标服务的服务类型为普通服务,调用本地的已下载的安装包实现该服务。在本申请实施例中,通过本地服务实现非动态加载的服务,实现了同时支持动态服务和普通服务,保证了任一服务能够在第一电子设备中实现。[0053] 在一些实施例中,该第一电子设备向服务管理器发送该服务调用请求之前,从本地缓存中查询是否缓存有该目标服务的可执行文件,若本地缓存中缓存有该目标服务的可执行文件,则调用本地缓存的目标服务的可执行文件进行动态加载,若本地缓存中未缓存该目标服务的安装包,则执行步骤S301。[0054] 在本申请实施例中,在目标服务已被调用过的情况下,目标服务的可执行文件可以暂时缓存在缓存资源中,通过查询缓存资源中是否缓存有该目标服务的可执行文件,从而缓存有该目标服务的可执行文件的情况下,无需再向服务管理器获取该目标服务的安装包,进而提高了调用目标服务的效率。[0055] 步骤S302:第一电子设备接收该服务管理器发送的该目标服务的安装包。[0056] 步骤S303:第一电子设备基于缓存资源,解析该安装包,得到可执行文件。[0057] 该可执行文件为支持第一电子设备的虚拟机调用执行的可执行文件。在本步骤中,第一电子设备基于系统的缓存资源,对安装包进行解析,得到该可执行文件。[0058] 步骤S304:第一电子设备基于该虚拟机执行该可执行文件,以调用该目标服务。[0059] 第一电子设备触发虚拟机执行该可执行文件。[0060] 在本申请实施例中,将服务的安装包存储在服务管理器中,在第一电子设备需要调用目标服务时,从服务管理器中获取目标服务的安装包,基于虚拟机技术,动态加载该安装包,从而实现了通过缓存资源对安装包进行解析,进而通过虚拟机实现调用目标服务,这样目标服务无需下载到终端上,进而节省了终端内存资源的占用,解决了终端内存不足的问题。[0061] 在一些实施例中,第一电子设备还对已加载的目标服务进行管理。相应地,响应于该目标服务满足卸载条件,卸载该目标服务。[0062] 卸载该目标服务指删除缓存资源中该目标服务的安装包,若缓存资源中还存在该目标服务的可执行文件,则删除该可执行文件。在本申请实施例中,第一电子设备通过动态服务管理组件对已缓存的目标服务进行管理,及时删除缓存中的安装包,从而节约了系统资源。[0063] 在一些实施例中,该满足卸载条件包括:该目标服务已实现。相应地,响应于态服务管理组件在完成对该目标服务的一次调用后,动立即卸载该目标服务的安装包。这样调用完目标服务即卸载,防止了目标服务的安装包占用内存资源。[0064] 在一些实施例中,该满足卸载条件包括:该目标服务在预设时长内未被调用。相应地,动态服务管理组件监控该目标服务在预设时长内是否被调用,若目标服务在预设时长内未被调用,则确定该目标服务满足卸载条件,卸载该目标服务的安装包;若该目标服务在预设时长内被调用,则确定该目标服务不满足卸载条件,保留该目标服务的安装包。其中,该预设时长根据需要进行设置,在本申请实施例中,对该预设时长不作具体限定。例如,该预设时长为2小时、2.5小时等。这样将目标服务的安装包在缓存中保留预设时长,以便目标服务被重复调用时,无需再从服务管理器中获取该安装包,提高了服务加载效率。[0065] 在一些实施例中,该满足卸载条件包括:接收到针对该目标服务的卸载操作。相应地,动态服务管理组件监控是否有针对该目标服务的卸载操作,若检测到针对目标服务的卸载操作,删除该目标服务的安装包。[0066] 在本申请实施例中,将服务的安装包存储在服务管理器中,在第一电子设备需要调用目标服务时,从服务管理器中获取目标服务的安装包,基于虚拟机技术,动态加载该安装包,从而实现了通过缓存资源对安装包进行解析,进而通过虚拟机实现调用目标服务,这样目标服务无需下载到终端上,进而节省了终端内存资源的占用,解决了终端内存不足的问题。[0067] 请参考图4,其示出了本申请一个示例性实施例示出的服务调用方法的流程图。该方法包括:[0068] 步骤S401:响应于获取请求,服务管理器基于该获取请求携带的目标服务的服务标识,确定目标服务的安装包。[0069] 该获取请求为第一电子设备向服务管理器发送的,用于请求获取服务管理器中的目标服务。该获取请求中携带目标服务的服务标识。该服务标识为用于唯一表示该目标服务的标识。例如,该服务标识为目标服务的名称、序号等。[0070] 在一些实施例中,第一电子设备接收服务调用请求,基于该服务调用请求向服务管理器发送获取请求。相应地,服务管理器基于该服务标识获取该目标服务的动态服务定义信息;基于动态服务定义信息和安装包的对应关系,确定该动态服务定义信息对应的目标服务的安装包。[0071] 服务管理器中存储有服务标识与动态服务定义信息的对应关系。响应于获取请求,服务网关基于所述获取请求携带的服务标识,调用动态服务定义组件的数据接口,从而查询该服务标识对应的动态服务定义信息,基于该动态服务定义信息,调用资源文件包管理组件的数据接口,从而确定该动态服务定义信息对应的安装包。[0072] 在本申请实施例中,通过服务管理器侧对服务进行管理,这样实现了终端侧服务与云端侧服务一体化,用户无感知服务的具体部署位置,为服务在不同电子设备之间实现流转提供支持。[0073] 步骤S402:服务管理器向第一电子设备发送该目标服务的安装包,以便该第一电子设备动态加载该安装包,以调用该目标服务。[0074] 该资源文件管理组件中存储多个服务的安装包。该安装包为开发者实现的程序安装包,该安装包可以为任一类型的安装包。例如,该安装包为jar包或arr包。在一些实施例中,服务管理器基于上传接口接收开发者上传的安装包;生成该安装包的文件包标识信息;存储该安装包以及该安装包与文件包标识信息的对应关系;基于该文件包标识信息生成该安装包的动态服务定义信息。[0075] 在一些实施例中,服务管理设备还存储已订阅动态服务的设备的设备标识。其中,一个动态服务可以被多个电子设备订阅,同时一个电子设备也可以订阅多个动态服务,动态服务与电子设备之间是N:N的关系。[0076] 在一些实施例中,服务管理设备还用于动态服务安装包的同步,当服务管理器更新了动态服务的安装包后,该动态服务订阅管理组件会根据订阅关系获取到订阅了该动态服务的电子设备,将更新后的动态服务源文件包推送给订阅了该动态服务的电子设备。相应地,响应于接收到已存储的任一服务的安装包的更新包,服务管理器确定订阅该服务的至少一个第一电子设备;向该至少一个第一电子设备发送该更新包,以使该至少一个第一电子设备更新该服务的安装包。在本申请实施例中,通过动态服务与设备之间的订阅关系,向订阅目标服务的第一电子设备中推送更新的安装包,从而保证了至少一个第一电子设备中安装包能够及时更新。[0077] 在本申请实施例中,将服务的安装包存储在服务管理器中,在第一电子设备需要调用目标服务时,从服务管理器中获取目标服务的安装包,基于虚拟机技术,动态加载该安装包,从而实现了通过缓存资源对安装包进行解析,进而通过虚拟机实现调用目标服务,这样目标服务无需下载到终端上,进而节省了终端内存资源的占用,解决了终端内存不足的问题。[0078] 请参考图5,其示出了本申请一个示例性实施例示出的服务调用方法的流程图。该方法包括:[0079] 步骤S501:响应于服务调用请求,第一电子设备向服务管理器发送获取请求,该服务调用请求用于请求调用目标服务。[0080] 本步骤与步骤S301的原理相同,在此不再赘述。[0081] 步骤S502:响应于获取请求,服务管理器基于该获取请求携带的目标服务的服务标识,确定目标服务的安装包。[0082] 本步骤与步骤S401的原理相同,在此不再赘述。[0083] 步骤S503:服务管理器向第一电子设备发送该目标服务的安装包,以便该第一电子设备动态加载该安装包,以调用该目标服务。[0084] 本步骤与步骤S402的原理相同,在此不再赘述。[0085] 步骤S504:第一电子设备接收该服务管理器发送的该目标服务的安装包。[0086] 步骤S505:第一电子设备基于缓存资源,解析该安装包,得到可执行文件。[0087] 本步骤与步骤S303的原理相同,在此不再赘述。[0088] 步骤S506:第一电子设备基于该虚拟机执行该可执行文件,以调用该目标服务。[0089] 本步骤与步骤S304的原理相同,在此不再赘述。[0090] 在本申请实施例中,将服务的安装包存储在服务管理器中,在第一电子设备需要调用目标服务时,从服务管理器中获取目标服务的安装包,基于虚拟机技术,动态加载该安装包,从而实现了通过缓存资源对安装包进行解析,进而通过虚拟机实现调用目标服务,这样目标服务无需下载到终端上,进而节省了终端内存资源的占用,解决了终端内存不足的问题。[0091] 请参考图6,其示出了本申请一个示例性实施例示出的服务调用系统,该系统包括:服务管理器和第一电子设备;该服务管理器用于响应于获取请求,基于该获取请求携带的目标服务的服务标识,确定目标服务的安装包,向该第一电子设备发送该目标服务的安装包;该第一电子设备用于响应于服务调用请求,向该服务管理器发送获取请求,接收该服务管理器发送的该目标服务的安装包,基于缓存资源,解析该安装包,得到该第一电子设备中安装的虚拟机的可执行文件,基于该虚拟机执行该可执行文件,以调用该目标服务。[0092] 在本申请实施例中,将服务的安装包存储在服务管理器中,在第一电子设备需要调用目标服务时,从服务管理器中获取目标服务的安装包,基于虚拟机技术,动态加载该安装包,从而实现了通过缓存资源对安装包进行解析,进而通过虚拟机实现调用目标服务,这样目标服务无需下载到第一电子设备上,进而节省了第一电子设备内存资源的占用,解决了终端内存不足的问题。[0093] 在一些实施例中,第一电子设备接收服务调用请求,基于该服务调用请求向服务管理器发送获取请求。相应地,参见图6,述第一电子设备包括服务代理组件、动态服务缓存组件和动态服务管理组件;该服务代理组件用于响应于服务调用请求,基于该服务调用请求确定该目标服务的服务标识,将该目标服务的服务标识发送给该动态服务缓存组件;该动态服务缓存组件用于基于该服务标识,确定该目标服务的服务类型,若该目标服务的服务类型为动态服务,基于该服务标识向该服务管理器发送该服务调用请求,以获取该目标服务的安装包;该动态服务管理组件用于基于缓存资源,解析该安装包,得到该第一电子设备中安装的虚拟机的可执行文件,基于该虚拟机执行该可执行文件,以调用该目标服务。[0094] 在本申请实施例中,通过动态服务缓存组件确定该目标服务是否为动态服务,从而在该目标服务为动态服务的情况下,获取该目标服务的安装包,从而通过动态服务管理组件动态加载和执行该目标服务,这样目标服务无需下载到第一电子设备上,进而节省了终端内存资源的占用,解决了第一电子设备内存不足的问题。[0095] 在一些实施例中,动态服务缓存组件基于该服务标识,从服务管理器中查询该目标服务的服务类型。其中,服务管理器包括动态服务定义组件,动态服务定义组件中存储有动态服务的服务标识。相应地,动态服务缓存组件基于该服务标识,在动态服务定义组件中进行查询,若动态服务定义组件中存在该服务标识,则确定该目标服务的服务类型为动态服务,若动态服务定义组件中不存在该服务标识,则确定该目标服务的服务类型为普通服务。[0096] 在一些实施例中,请继续参见图6,该第一电子设备还包括普通服务管理组件,相应地,若该目标服务的服务类型为普通服务,动态服务缓存组件向服务代理组件发送消息通知,该消息通知表示该目标服务为普通服务,则服务代理组件向该普通服务管理组件发送服务调用请求,普通服务管理组件基于该服务调用请求,启动该目标服务对应的应用程序,实现调用该目标服务。[0097] 在一些实施例中,该动态服务缓存组件向服务管理器发送该服务调用请求之前,从本地缓存中查询是否缓存有该目标服务的安装包,若本地缓存中缓存有该目标服务的安装包,则由动态服务管理组件调用本地缓存的目标服务的安装包进行动态加载,若本地缓存中未缓存该目标服务的安装包,则动态服务缓存组件向服务管理器发送该服务调用请求。[0098] 在本申请实施例中,在目标服务已被调用过的情况下,目标服务的安装包可以暂时缓存在缓存资源中,通过查询缓存资源中是否缓存有该目标服务的安装包,从而缓存有该目标服务的安装包的情况下,无需再向服务管理器获取该目标服务的安装包,进而提高了调用目标服务的效率。[0099] 该动态服务管理组件用于对缓存的服务的安装包进行管理。在一些实施例中,该动态服务管理组件用于响应于目标服务满足卸载条件,向该动态服务缓存组件发送卸载指令;该动态服务缓存组件用于响应于该卸载指令,卸载该目标服务。第一电子设备通过动态服务管理组件对已缓存的目标服务进行管理,及时删除缓存中的安装包,从而节约了系统资源。[0100] 在一些实施例中,该服务调用请求为用户通过其他电子设备触发的,相应地,参见图7,该第一电子设备的数量为多个,该系统还包括:第二电子设备和设备网关;该第二电子设备用于向设备网关发送服务调用请求;该设备网关用于响应于该服务调用请求,从该多个第一电子设备中确定用于调用目标服务的第一电子设备,向该用于调用目标服务第一电子设备转发该服务调用请求。在本申请实施例中,通过第二电子设备控制第一电子设备调用目标服务,以分布式的服务调用,实现了目标服务的跨设备访问。[0101] 参见图8,在一些实施例中,该服务管理器包括服务网关、动态服务定义管理组件、资源文件包管理组件;该服务网关用于接收该第一电子设备发送的获取请求,基于该获取请求从该动态服务定义管理组件中,获取该目标服务的动态服务定义信息,基于该动态服务定义信息从该资源文件包管理组件中获取目标服务的安装包,将该目标服务的安装包发送给该第一电子设备;该动态服务管理组件用于基于该服务网关发送的目标服务的服务标识,确定该目标服务的动态服务定义信息,将该动态服务定义信息发送给该服务网关;该资源文件包管理组件用于基于该服务网关发送的动态服务定义信息获取该目标服务的安装包,将该安装包发送给该服务网关。[0102] 该动态服务定义组件中存储有服务标识与动态服务定义信息的对应关系。响应于获取请求,服务网关基于所述获取请求携带的服务标识,调用动态服务定义组件的数据接口,从而查询该服务标识对应的动态服务定义信息,基于该动态服务定义信息,调用资源文件包管理组件的数据接口,从而确定该动态服务定义信息对应的安装包,将该安装包发送给第一电子设备。[0103] 在本申请实施例中,通过服务管理器侧对服务进行管理,这样实现了终端侧服务与云端侧服务一体化,用户无感知服务的具体部署位置,为服务在不同电子设备之间实现流转提供支持。[0104] 在一些实施例中,该服务网关还用于调用该资源文件管理组件的上传接口,基于该上传接口向该资源文件管理组件上传开发者上传的安装包,接收该资源文件管理组件基于该安装包生成的文件包标识信息,将该文件包标识信息发送给该动态服务定义管理组件;该资源文件管理组件用于基于开发者上传的安装包,生成该安装包的文件包标识信息,存储该安装包以及该安装包与文件包标识信息的对应关系,将该文件包标识信息发送给该服务网关;该动态服务定义管理组件用于基于该文件包标识信息生成该安装包的动态服务定义信息。[0105] 该资源文件管理组件中存储多个服务的安装包。该安装包为开发者实现的程序安装包,该安装包可以为任一类型的安装包。例如,该安装包为jar包或arr包。在一些实施例中,开发人员通过服务网关调用资源文件管理组件的上传接口,将动态服务的安装包上传到资源文件管理组件并进行存储,资源文件管理组件在接收到安装包后,生成该安装包的唯一的标识信息,将该标识信息发送给服务网关,服务网关将该标识信息存储到动态服务定义组件中。[0106] 在一些实施例中,参见图8,该服务管理器还包括动态服务订阅管理组件;该资源文件包管理组件用于响应于接收到已存储的任一服务的安装包的更新包;该动态服务管理组件用于响应于资源文件包管理组件中任一服务的安装包更新,确定订阅该服务的至少一个第一电子设备,向该至少一个第一电子设备发送该更新包,以使该至少一个第一电子设备更新该服务的安装包。[0107] 在一些实施例中,该订阅组件用于存储已订阅动态服务的设备的设备标识。其中,一个动态服务可以被多个电子设备订阅,同时一个电子设备也可以订阅多个动态服务,动态服务与电子设备之间是N:N的关系。[0108] 在一些实施例中,参见图9,该动态服务订阅管理组件还用于动态服务安装包的同步,当服务管理器更新了动态服务的安装包后,该动态服务订阅管理组件会根据订阅关系获取到订阅了该动态服务的电子设备,将更新后的动态服务源文件包推送给订阅了该动态服务的电子设备。在本申请实施例中,发电子设备基于订阅关系,在目标服务的安装包更新后,自动将该目标服务的安装包推送至订阅了该目标服务的第一电子设备上,从而保证了订阅了该目标服务的第一电子设备能够以最新的安装包来实现目标服务。[0109] 在本申请实施例中,该第一电子设备或第二电子设备可以提供为终端。请参考图10,其示出了本申请一个示例性实施例提供的终端900的结构方框图。终端1000可以是智能手机、平板电脑等终端。本申请中的终端1000可以包括一个或多个如下部件:处理器1010、存储器1020。[0110] 可选地,处理器1010包括一个或者多个处理核心。处理器1010利用各种接口和线路连接整个终端1000内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行终端1000的各种功能和处理数据。可选地,处理器1010采用数字信号处理(DigitalSignalProcessing,DSP)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、可编程逻辑阵列(ProgrammableLogicArray,PLA)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(CentralProcessingUnit,CPU)、图像处理器(GraphicsProcessingUnit,GPU)、神经网络处理器(Neural?networkProcessingUnit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏1030所需要显示的内容的渲染和绘制;NPU用于实现人工智能(ArtificialIntelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块芯片进行实现。[0111] 可选地,存储器1020包括随机存储器(RandomAccessMemory,RAM),也可以包括只读存储器(Read?OnlyMemory)。可选地,该存储器1020包括非瞬时性计算机可读介质(non?transitorycomputer?readablestoragemedium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据终端1000的使用所创建的数据(比如音频数据、电话本)等。[0112] 在一些实施例中,终端1000还包括显示屏。显示屏是用于显示用户界面的显示组件。可选的,该显示屏为具有触控功能的显示屏,通过触控功能,用户可以使用手指、触摸笔等任何适合的物体在显示屏1030上进行触控操作。[0113] 显示屏通常设置在终端1000的前面板。显示屏可被设计成为全面屏、曲面屏、异型屏、双面屏或折叠屏。显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合等,本实施例对此不加以限定。[0114] 除此之外,本领域技术人员可以理解,上述附图所示出的终端1000的结构并不构成对终端1000的限定,终端1000可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端1000中还包括麦克风、扬声器、射频电路、输入单元、传感器、音频电路、无线保真(WirelessFidelity,Wi?Fi)模块、电源、蓝牙模块等部件,在此不再赘述。[0115] 在该服务管理器可以供为服务器,请参考图11,其示出了本申请一个示例性实施例提供的服务器1100的结构方框图。该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(CentralProcessingUnits,CPU)1110和一个或一个以上的存储器1120,其中,所述存储器1120中存储有至少一条指令,所述至少一条指令由所述处理器1110加载并执行以实现上述各个方法实施例提供的服务调用方法。当然,该服务器1100还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1100还可以包括其他用于实现设备功能的部件,在此不做赘述。[0116] 本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,该至少一条指令由该处理器加载并执行以实现如上各个实施例示出的服务调用方法。[0117] 本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,该至少一条指令由该处理器加载并执行以实现如上各个实施例示出的服务调用方法。[0118] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。[0119] 以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

专利地区:广东

专利申请日期:2022-03-11

专利公开日期:2024-11-29

专利公告号:CN114595010B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部
开云优惠体育(中国)官网 — 开云优惠体育app下载