具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如前所述,在目前泛化调用方法中,为了让服务提供端的接口能够支持泛化调用功能,需要配置泛化调用协议。随着接口的不断丰富,泛化调用协议引入使服务提供端的接口配置越来越臃肿,对维护带来极大的不便,且维护成本也随之升高。
有鉴于此,本说明书实施例提出一种不需改变服务提供端的接口配置,就能实现泛化调用的技术方案。
一方面,本说明书实施例提供一种应用于服务消费端的远程过程调用方法,如图1所示,包括:
步骤102,获取服务提供端的目标接口的结构化文件;
针对步骤102而言:
结构化文件是基于目标接口的信息构建得到的,比如基于目标接口的名称和目标接口的配置参数。结构化文件的构建只需要服务提供端暴露自身的目标接口即可,对于目标接口的配置不作任何改动,比如不需要对目标接口的配置中加入远程调用协议。
步骤104,基于本地的远程调用参数和结构化文件,生成目标接口的远程过程调用请求;
针对步骤104而言:
将本地的远程调用参数作为结构化文件的输入参数,使结构化文件对远程调用参数进行转换,输出得到目标接口对应的远程调用过程请求,或者是输出得到用于生成该远程调用过程请求的中间结果。
转换过程可以但不限于是:对本地的远程调用参数进行数据清洗,例如去冗余、无意义的数据;对本地的远程调用参数进行规约,例如转换为能够适用于目标接口的数据格式;对本地的远程调用参数进行数据整理,例如数据排序、数据丰富(加入目标接口的配置信息等);
步骤106,向服务提供端发送远程过程调用请求。
针对步骤106而言:
服务消费端本身不需要配置具体的接口,向服务提供端发送远程过程调用请求即可调用目标接口的服务。对于服务提供端,不需向服务消费端暴露自身元信息,比如现有技术中服务消费端执行远程调用所依赖的服务提供端的应用程序编程接函数以及源代码等。
本实施例的远程过程调用方法中,服务消费端基于结构化文件能够在未获取服务提供端元信息的前提下,向服务提供端的接口发起的远程过程调用请求。对于服务提供端来讲,由于暴露接口即可支持结构化文件的构建,因此不需要在接口的配置中引入泛化调用协议,从而提高了服务提供端的维护效率并降低了维护成本。此外,服务消费端基于结构化文件可以更简单、更便捷地发起远程过程调用请求,实施过程更加友好。
具体地,在上述基础之上,当获取到服务提供端的目标接口的结构化文件后,本实施例的远程过程调用方法还可以将结构化文件和目标接口的名称进行关联存储,以便后续再向目标接口发起远程过程调用请求时,直接基于目标接口的名称,从存储设备中加载出该目标接口的结构化文件以进行使用。
在使用过程中,可能因为一些突发事件(如增加/删除/更新目标接口的服务)导致目标接口的配置参数发生了改变,此时服务消费端原先存储的结构化文件可能失效,无法保证输出的远程过程调用请求还能适用于发生改变的目标接口。为了避免上述情况导致远程过程调用请求失败,本实施例还可以进一步重新获取述目标接口的结构化文件,并将服务消费端原先存储的目标接口的结构化文件更新为重新获取目标接口的结构化文件,从而保证存储的结构化文件能够随目标接口的配置变化而适应性更新。
具体地,本实施例的远程过程调用方法可以根据服务提供端的通知,确定目标接口的配置参数是否发生改变。
其中,服务提供端的通知可以包括以下至少一者:
服务提供端发送的用于指示目标接口的版本信息的通知;
以及,服务提供端发送的用于指示不支持上述远程过程调用请求的通知。
作为示例性介绍:
用于指示目标接口的版本信息的通知可以是服务提供端在确定目标接口的配置参数发生改变时,或者服务消费端向服务提供端请求目标接口的版本信息时所发送的。本实施例的远程过程调用方法基于该通知中的版本信息即可确定出目标接口是否发生更新,若目标接口发生更新则表示其配置信息发生了改变。
用于指示不支持上述远程过程调用请求的通知是服务提供端在接收到服务消费端发送的上述远程过程调用请求时,若确定不支持该远程过程调用请求所发送的。本实施例的远程过程调用方法该基于改通知,即可确定结构化文件已不适用于当前的目标接口,进而确定目标接口的配置信息发生了改变。
以上是对应用于服务消费端的远程过程调用方法的示例介绍。与之对应地,本说明实施例还提供一种应用于服务提供端或中间平台的远程过程调用方法,如图2所示,包括:
步骤202,获取服务提供端的目标接口的信息;
针对步骤202而言:
若远程过程调用方法应用于服务提供端,则获取本地记录的目标接口的信息;若远程过程调用方法应用于中间平台,则由中间平台向服务提供端获取目标接口的信息。
步骤204,基于目标接口的信息,构建结构化文件,结构化文件用于将远程调用参数转换为适用于目标接口的远程过程调用请求;
针对步骤204而言:
可以基于目标接口的名称和目标接口的配置参数构建结构化文件,结构化文可以将服务消费端侧的远程调用参数结合目标接口的配置参数,生成目标接口所适用的远程过程调用请求。
步骤206,向服务消费端发送结构化文件。
针对步骤206而言:
在确定出服务消费端的情况下,可以将结构化文件直接发送至服务消费端。在不确定服务消费端的情况下,可以将结构化文件上传到指云端,通过云端以间接方式将结构化文件发送至服务消费端。
本实施例中,根据服务消费端的接口的信息来配置结构化文件,并发送给服务消费端使用,使得服务消费端在未获取服务提供端元信息的前提下,基于结构化文件即可向服务提供端发起远程过程调用请求。显然,应用于服务提供端或中间平台的远程过程调用方法与本说明书上述提供的应用于服务消费端的远程过程调用方法相对应,两者均能够实现相同的技术效果。
进一步地,当目标接口的配置参数发生改变时,本实施例的远程过程调用方法还可以重新获取目标接口的信息;并基于重新获取的目标接口的信息,重新构建目标接口的结构化文件;之后将重新构建的结构化文件发送至服务消费端,以保证服务消费端能够及时更新结构化文件。
具体地,服务提供端可以采用长轮询方式、拉方式以及推方式中的至少一种交互方法,将重新构建的结构化文件发送至服务消费端。
其中,
长轮询方式和推方式的交互方法是指服务消费端与服务提供端,或服务消费端与中间平台建立长连接,服务提供端或中间平台在目标接口的配置信息发生改变后,通过建立的长连接主动向服务消费端发送重新构建的结构化文件。长轮询方式和推方式下,目标接口的配置参数一旦发生变化,就可以迅速向服务消费端响应,保证了结构化文件更新的及时性。
拉模式的交互方法是指服务消费端与服务提供端,或服务消费端与中间平台建立一问一答机制,由服务消费端向服务提供端或中间平台发送通信请求后,服务提供端或中间平台基于该通信请求,向服务消费端返回携带有重新构建的结构化文件的通信响应。拉模式下,服务提供端或中间平台不用维持与服务消费端的长连接,因此资源消耗更小,可避免服务提供端因资源耗尽而发生系统崩溃的现象。
此外,若本实施例的远程过程调用方法应用于服务提供端,则服务提供端在接收到服务消费端基于结构化文件所生成的远程过程调用请求后,如果是因为该远程过程调用请求而无法正常响应调用,也可以重新构建目标接口的结构化文件,并将重新构建的结构化文件发送至服务消费端。
下面结合实际应用,对本说明书实施例的远程过程调用方法进行详细介绍。
实际应用一
假设实际应用一的场景包括服务消费端、中间平台和服务提供端,则远程过程调用方法的流程包括:
步骤A1,中间平台获取服务提供端上的各个接口的名称和配置信息;
本步骤中,也可以是服务提供端主动向中间平台提供接口的名称和配置信息。
步骤A2,中间平台基于获取到的接口的名称和配置信息,为所有接口配置结构化文件;
本步骤中,结构化文件可以与服务提供端一一对应,即,通过一个结构化文件负责转换服务提供端的所有接口的远程过程调用请求;或者结构化文件也可以与服务提供端的接口一一对应,即一个结构化文件负责转换一个接口的远程过程调用请求。
步骤A3,中间平台将配置到的结构化文件发送至服务消费端。
本步骤中,也可以是服务消费端主动向中间平台获取结构化文件。
步骤A4,服务消费端在需要调用服务提供端的目标接口的服务时,使用目标接口的结构化文件将远程调用参数转换为适用于目标接口的远程过程调用请求。
步骤A5,服务消费端向服务提供端发送远程过程调用请求。
步骤A6,服务提供端基于远程过程调用请求,执行远程过程调用流程。
在后续过程中,若服务提供端的目标接口的配置参数发生改变,则本实际应用一还可以进一步包括:
步骤A7,中间平台向服务提供端获取改变后的目标接口的名称以及目标接口的配置参数。
步骤A8,中间平台基于改变后的目标接口的名称以及目标接口的配置参数构建结构化文件。
步骤A9,中间平台将重新构建的目标接口的结构化文件发送至服务消费端。
步骤A10,服务消费端将本地在先存储的目标接口的结构化文更换为重新构建的目标接口的结构化文件。
实际应用二
假设实际应用二的场景包括服务消费端和服务提供端,则远程过程调用方法的流程包括:
步骤B1,服务提供端根据本地接口的信息,为构建结构化文件;
本步骤中,结构化文件可以与服务提供端一一对应,即,通过一个结构化文件负责转换服务提供端的所有接口的远程过程调用请求;或者结构化文件也可以与服务提供端的接口一一对应,即一个结构化文件即负责转换一个接口的远程过程调用请求。
步骤B2,服务提供端将配置到的结构化文件发送至服务消费端。
本步骤中,也可以是服务消费端主动向中间平台获取结构化文件。
步骤B3,服务消费端在需要调用服务提供端的目标接口的服务时,使用目标接口的结构化文件将远程调用参数转换为适用于目标接口的远程过程调用请求。
步骤B4,服务消费端向服务提供端发送远程过程调用请求。
步骤B5,服务提供端基于远程过程调用请求,执行远程过程调用流程。
本步骤中,服务提供端若无法基于远程过程调用请求存执行远程过程调用流程,则重新回到步骤B1。
在后续过程中,若目标接口的配置参数发生改变,则本实际应用二还可以进一步包括:
步骤B6,服务提供端基于改变后的目标接口的名称以及目标接口的配置参数构建结构化文件。
步骤B7,服务提供端将重新构建的目标接口的结构化文件发送至服务消费端。
步骤B8,服务消费端将本地在先存储的目标接口的结构化文更换为重新构建的目标接口的结构化文件。
此外,本说明实施例还提供一种终端设备,如图5所示,包括:
文件获取模块51,获取服务提供端的目标接口的结构化文件,所述结构化文件是基于目标接口的信息构建得到的;
处理模块52,基于目标接口的远程调用参数和结构化文件生成目标接口的远程过程调用请求;
请求发送模块53,向服务提供端发送远程过程调用请求。
显然,本说明实施例的终端设备可以是上文所述的服务消费端,作为本说明实施例上述提供的应用于服务消费端的远程过程调用方法的执行主体,因此该远程过程调用方法所能实现的技术效果,本说明实施例的终端设备也同样能够实现。
可选地,所述目标接口的信息包括所述目标接口的名称和所述目标接口的配置参数。
可选地,本说明实施例的终端设备还包括:
存储模块,用于在获取服务提供端的目标接口的结构化文件后,将所述结构化文件和所述目标接口的名称进行关联存储。
可选地,本说明实施例的获取模块51当确定所述目标接口的配置参数发生改变,重新获取所述目标接口的结构化文件;对应地,存储模块将服务消费端原先存储的所述目标接口的结构化文件更新为重新获取所述目标接口的结构化文件。
其中,获取模块51根据所述服务提供端的通知,确定所述目标接口的配置参数是否发生改变;和/或,获取模块51在预设条件下,向所述服务提供端获取目标接口的版本信息,根据所述版本信息,确定所述目标接口的配置参数是否发生改变。
此外,本说明实施例还提供一种网络设备,如图6所示,包括:
接口信息获取模块61,获取服务提供端的目标接口的信息;
构建模块62,基于目标接口的信息,构建结构化文件,所述结构化文件用于服务消费端生成所述目标接口的远程过程调用请求;
文件发送模块63,向服务消费端发送结构化文件。
显然,本说明实施例的网络设备具体可以作为服务提供端或者中间平台,作为本说明实施例上述提供的应用于服务提供端或中间平台的远程过程调用方法的执行主体,因此该远程过程调用方法所能实现的技术效果,本说明实施例的网络设备也同样能够实现。
可选地,所述目标接口的信息包括:所述目标接口的名称和所述目标接口的配置参数。
可选地,当所述目标接口的配置参数发生改变,本实施例的接口信息获取模块62重新获取所述目标接口的信息;对应地,构建模块62基于重新获取的所述目标接口的信息,重新构建所述目标接口的结构化文件;文件发送模块63将重新构建所述目标接口的结构化文件发送至所述服务消费端。
此外,本说明实施例还提供一种终端设备,如图7所示,包括:
至少一个处理器701、存储器702、至少一个网络接口704和用户接口703。终端700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统705。
其中,用户接口703可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本说明书实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read-Only Memory)、可编程只读存储器(PROM,Programmable)、可擦除可编程只读存储器(EPROM,Erasable PROM)、电可擦除可编程只读存储器(EEPROM,Electrically EPROM)或闪存。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static RAM)、动态随机存取存储器(DRAM,Dynamic RAM)、同步动态随机存取存储器(SDRAM,Synchronous DRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,DoubleData Rate SDRAM)、增强型同步动态随机存取存储器(ESDRAM,Enhanced SDRAM)、同步连接动态随机存取存储器(SLDRAM,Synchlink DRAM)和直接内存总线随机存取存储器(DRRAM,Direct Rambus RAM)。本说明书实施例描述的系统和方法的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器702存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统7021和应用程序7022。
其中,操作系统7021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本说明书实施例方法的程序可以包含在应用程序7022中。
在本说明书实施例中,终端设备700还包括:存储在存储器上702并可在处理器701上运行的计算机程序,计算机程序被处理器701执行时实现如下的步骤:
获取服务提供端的目标接口的结构化文件,所述结构化文件是基于所述目标接口的信息构建得到的;
基于所述结构化文件生成所述目标接口的远程过程调用请求;向所述服务提供端发送所述远程过程调用请求。
可选地,所述目标接口的信息包括所述目标接口的名称和所述目标接口的配置参数。
可选地,计算机程序被处理器701执行时还实现如下的步骤:
在获取服务提供端的目标接口的结构化文件后,将所述结构化文件和所述目标接口的名称进行关联存储。
可选地,计算机程序被处理器701执行时还实现如下的步骤:
当确定所述目标接口的配置参数发生改变,重新获取所述目标接口的结构化文件;
将服务消费端原先存储的所述目标接口的结构化文件更新为重新获取所述目标接口的结构化文件。
可选地,计算机程序被处理器701执行时还实现如下的步骤:
根据所述服务提供端的通知,确定所述目标接口的配置参数是否发生改变;
和/或,
在预设条件下,向所述服务提供端获取目标接口的版本信息,根据所述版本信息,确定所述目标接口的配置参数是否发生改变。
此外,本说明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
获取服务提供端的目标接口的结构化文件,所述结构化文件是基于所述目标接口的信息构建得到的;
基于本地的远程调用参数和所述结构化文件生成所述目标接口的远程过程调用请求;向所述服务提供端发送所述远程过程调用请求。
可选地,所述目标接口的信息包括所述目标接口的名称和所述目标接口的配置参数。
可选地,计算机程序被处理器执行时还实现如下的步骤:
在获取服务提供端的目标接口的结构化文件后,将所述结构化文件和所述目标接口的名称进行关联存储。
可选地,计算机程序被处理器执行时还实现如下的步骤:
当确定所述目标接口的配置参数发生改变,重新获取所述目标接口的结构化文件;
将服务消费端原先存储的所述目标接口的结构化文件更新为重新获取所述目标接口的结构化文件。
可选地,计算机程序被处理器执行时还实现如下的步骤:
根据所述服务提供端的通知,确定所述目标接口的配置参数是否发生改变;
和/或,
在预设条件下,向所述服务提供端获取目标接口的版本信息,根据所述版本信息,确定所述目标接口的配置参数是否发生改变。
此外,本说明实施例还提供一种网络设备,如图8所示,包括:
至少一个处理器801、存储器802、至少一个网络接口804和用户接口803。终端800中的各个组件通过总线系统805耦合在一起。可理解,总线系统805用于实现这些组件之间的连接通信。总线系统805除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统805。
其中,用户接口803可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本说明书实施例中的存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read-Only Memory)、可编程只读存储器(PROM,Programmable)、可擦除可编程只读存储器(EPROM,Erasable PROM)、电可擦除可编程只读存储器(EEPROM,Electrically EPROM)或闪存。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static RAM)、动态随机存取存储器(DRAM,Dynamic RAM)、同步动态随机存取存储器(SDRAM,Synchronous DRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,DoubleData Rate SDRAM)、增强型同步动态随机存取存储器(ESDRAM,Enhanced SDRAM)、同步连接动态随机存取存储器(SLDRAM,Synchlink DRAM)和直接内存总线随机存取存储器(DRRAM,Direct Rambus RAM)。本说明书实施例描述的系统和方法的存储器802旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器802存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统8021和应用程序8022。
其中,操作系统8021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序8022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本说明书实施例方法的程序可以包含在应用程序8022中。
在本说明书实施例中,网络设备800还包括:存储在存储器上802并可在处理器801上运行的计算机程序,计算机程序被处理器801执行时实现如下的步骤:
获取服务提供端的目标接口的信息;
基于所述目标接口的信息,构建结构化文件,所述结构化文件用于服务消费端生成所述目标接口的远程过程调用请求;
向服务消费端发送所述结构化文件。
可选地,所述目标接口的信息包括:所述目标接口的名称和所述目标接口的配置参数。
可选地,计算机程序被处理器801执行时还实现如下的步骤:
当所述目标接口的配置参数发生改变,重新获取所述目标接口的信息;
基于重新获取的所述目标接口的信息,重新构建所述目标接口的结构化文件;
将重新构建所述目标接口的结构化文件发送至所述服务消费端。
此外,本说明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
获取服务提供端的目标接口的信息;
基于所述目标接口的信息,构建结构化文件,所述结构化文件用于服务消费端生成所述目标接口的远程过程调用请求;
向服务消费端发送所述结构化文件。
可选地,所述目标接口的信息包括:所述目标接口的名称和所述目标接口的配置参数。
可选地,计算机程序被处理器执行时还实现如下的步骤:
当所述目标接口的配置参数发生改变,重新获取所述目标接口的信息;
基于重新获取的所述目标接口的信息,重新构建所述目标接口的结构化文件;
将重新构建所述目标接口的结构化文件发送至所述服务消费端。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。