远程调用处理方法、装置、存储介质及电子装置与流程

文档序号:24066022发布日期:2021-02-26 13:03阅读:44来源:国知局
远程调用处理方法、装置、存储介质及电子装置与流程

[0001]
本发明涉及通信领域,具体而言,涉及一种远程调用处理方法、装置、存储介质及电子装置。


背景技术:

[0002]
目前web应用解决的业务越来越复杂,单个服务难以支撑业务运行。web应用由原先一个服务扩展到几十到几百个不同的服务,服务各司其职协同工作,各自暴露必要的超文本传输协议(hypertext transport protocol,简称为http)接口完成业务数据交换。
[0003]
各服务之间http接口调用非常频繁,同一个http接口可能会被服务a、b、c都调用,而调用http接口的代码逻辑基本相同,需要在服务a、b、c对应的工程都拷贝一份调用逻辑的代码,代码冗余;当http接口的参数、响应发生变化时,需要修改调用代码,同时在多个工程做相同的代码修改;服务上线变更的时候,因为修改代码,需要经过编译、打补丁、重启等多个步骤。
[0004]
针对相关技术中多个服务调用同一个http接口时,需要拷贝多份调用逻辑的代码,代码存在冗余;当http接口发生变化时,需要多个服务同时修改调用代码的问题,尚未提出解决方案。


技术实现要素:

[0005]
本发明实施例提供了一种远程调用处理方法、装置、存储介质及电子装置,以至少解决相关技术中多个服务调用同一个http接口时,需要拷贝多份调用逻辑的代码,代码存在冗余;当http接口发生变化时,需要多个服务同时修改调用代码的问题。
[0006]
根据本发明的一个实施例,提供了一种远程调用处理方法,包括:
[0007]
通过超文本传输协议http接口对应的可扩展标记语言(extensible markup language,简称为xml)配置文件发起远程调用请求,其中,一个所述http接口对应一个xml配置文件;
[0008]
接收远程调用响应,并获取所述远程调用响应中的返回数据。
[0009]
可选地,通过http接口对应的xml配置文件发起远程调用请求包括:
[0010]
根据所述xml配置文件的标识信息从系统内存中获取所述xml配置文件对应的模板对象;
[0011]
根据所述模板对象配置的header的标签内容生成实际的header体数据;
[0012]
根据所述模板对象配置的body的标签内容生成实际的body体数据;
[0013]
通过http接口对应的所述xml配置文件发起远程调用请求,其中,所述xml配置文件包括所述header体数据、所述body体数据。
[0014]
可选地,在通过http接口对应的所述xml配置文件发起远程调用请求之前,所述方法还包括:
[0015]
通过所述模板对象的前置插件,获取调用所述http接口的所述body体数据;
[0016]
按照预设规则对所述body体数据进行签名,并将签名的值设置在所述header或所述body中。
[0017]
可选地,获取所述远程调用响应中的返回数据包括:
[0018]
基于所述远程调用响应,根据所述模板对象配置的响应体的标签内容获取得到返回数据。
[0019]
可选地,基于获取到的远程调用响应,根据所述模板对象配置的响应体的标签内容获取得到返回数据包括:
[0020]
通过所述模板对象的后置插件,根据所述模板对象配置的响应体的标签内容获取加密后的返回数据;
[0021]
解密所述加密后的返回数据得到所述返回数据。
[0022]
可选地,在通过http接口对应的xml配置文件发起远程调用请求之前,所述方法还包括:
[0023]
针对所述http接口设置对应的所述xml配置文件,其中,所述xml配置文件包括请求地址统一资源定位符(uniform resource locator,简称为url)、请求头header、请求体body以及响应体。
[0024]
可选地,在通过http接口对应的xml配置文件发起远程调用请求之前,所述方法还包括:
[0025]
以预定时间周期扫描预设路径下的xml配置文件,生成模板对象;
[0026]
将所述模板对象缓存到系统内存中。
[0027]
根据本发明的另一个实施例,还提供了一种远程调用处理装置,包括:
[0028]
发起模块,用于通过超文本传输协议http接口对应的可扩展标记语言xml配置文件发起远程调用请求,其中,一个所述http接口对应一个xml配置文件;
[0029]
获取模块,用于接收远程调用响应,并获取所述远程调用响应中的返回数据。
[0030]
可选地,所述发起模块包括:
[0031]
获取子模块,用于根据所述xml配置文件的标识信息从系统内存中获取所述xml配置文件对应的模板对象;
[0032]
第一生成子模块,用于根据所述模板对象配置的header的标签内容生成实际的header体数据;
[0033]
第二生成子模块,用于根据所述模板对象配置的body的标签内容生成实际的body体数据;
[0034]
发起子模块,用于通过http接口对应的所述xml配置文件发起远程调用请求,其中,所述xml配置文件包括所述header体数据、所述body体数据。
[0035]
可选地,所述装置还包括:
[0036]
第一获取子模块,用于通过所述模板对象的前置插件,获取调用所述http接口的所述body体数据;
[0037]
设置子模块,用于按照预设规则对所述body体数据进行签名,并将签名的值设置在所述header或所述body中。
[0038]
可选地,所述获取模块,还用于
[0039]
基于所述远程调用响应,根据所述模板对象配置的响应体的标签内容获取得到返
回数据。
[0040]
可选地,所述获取模块包括:
[0041]
第二获取子模块,用于通过所述模板对象的后置插件,根据所述模板对象配置的响应体的标签内容获取加密后的返回数据;
[0042]
解码子模块,用于解密所述加密后的返回数据得到所述返回数据。
[0043]
可选地,所述装置还包括:
[0044]
设置模块,用于针对所述http接口设置对应的所述xml配置文件,其中,所述xml配置文件包括请求地址url、请求头header、请求体body以及响应体。
[0045]
可选地,所述装置还包括:
[0046]
扫描模块,用于以预定时间周期扫描预设路径下的xml配置文件,生成模板对象;
[0047]
缓存模块,用于将所述模板对象缓存到系统内存中。
[0048]
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0049]
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
[0050]
通过本发明,通过超文本传输协议http接口对应的可扩展标记语言xml配置文件发起远程调用请求,其中,一个所述http接口对应一个xml配置文件;接收远程调用响应,并获取所述远程调用响应中的返回数据,可以解决相关技术中多个服务调用同一个http接口时,需要拷贝多份调用逻辑的代码,代码存在冗余;当http接口发生变化时,需要多个服务同时修改调用代码的问题,通过http接口对应的xml配置文件发起调用请求,代码简洁、优雅、方便,多个服务调用相同http接口没有代码冗余,接口变化不涉及修改代码,只需要修改xml配置文件即可。
附图说明
[0051]
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0052]
图1是本发明实施例的远程调用处理方法的移动终端的硬件结构框图;
[0053]
图2是根据本发明实施例的远程调用处理方法的流程图;
[0054]
图3是根据本发明实施例的基于模板技术的http调用的流程图一;
[0055]
图4是根据本发明实施例的基于模板技术的http调用的流程图二;
[0056]
图5是根据本发明实施例的远程调用处理装置的框图;
[0057]
图6是根据本发明优选实施例的远程调用处理装置的框图一;
[0058]
图7是根据本发明优选实施例的远程调用处理装置的框图二;
[0059]
图8是根据本发明优选实施例的远程调用处理装置的框图三;
[0060]
图9是根据本发明优选实施例的远程调用处理装置的框图四;
[0061]
图10是根据本发明优选实施例的远程调用处理装置的框图五。
具体实施方式
[0062]
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0063]
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0064]
实施例1
[0065]
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的远程调用处理方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的部件,或者具有与图1所示不同的配置。
[0066]
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的远程调用处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0067]
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
[0068]
基于上述的移动终端或网络架构,在本实施例中提供了一种远程调用处理方法,图2是根据本发明实施例的远程调用处理方法的流程图,如图2所示,该流程包括如下步骤:
[0069]
步骤s202,通过超文本传输协议http接口对应的可扩展标记语言xml配置文件发起远程调用请求,其中,一个所述http接口对应一个xml配置文件;
[0070]
本发明实例中,上述步骤s202具体可以包括:根据所述xml配置文件的标识信息从系统内存中获取所述xml配置文件对应的模板对象;根据所述模板对象配置的header的标签内容生成实际的header体数据;根据所述模板对象配置的body的标签内容生成实际的body体数据;通过http接口对应的所述xml配置文件发起远程调用请求,其中,所述xml配置文件包括所述header体数据、所述body体数据。
[0071]
步骤s204,接收远程调用响应,并获取所述远程调用响应中的返回数据。
[0072]
通过上述步骤s202至s204,通过超文本传输协议http接口对应的可扩展标记语言xml配置文件发起远程调用请求,其中,一个所述http接口对应一个xml配置文件;接收远程调用响应,并获取所述远程调用响应中的返回数据,可以解决相关技术中多个服务调用同
一个http接口时,需要拷贝多份调用逻辑的代码,代码存在冗余;当http接口发生变化时,需要多个服务同时修改调用代码的问题,通过http接口对应的xml配置文件发起调用请求,代码简洁、优雅、方便,多个服务调用相同http接口没有代码冗余,接口变化不涉及修改代码,只需要修改xml配置文件即可。
[0073]
在一可选的实施例中,在通过http接口对应的所述xml配置文件发起远程调用请求之前,通过所述模板对象的前置插件,获取调用所述http接口的所述body体数据;按照预设规则对所述body体数据进行签名,并将签名的值设置在所述header或所述body中。
[0074]
本发明实施例中,上述步骤s204具体可以包括:基于所述远程调用响应,根据所述模板对象配置的响应体的标签内容获取得到返回数据,进一步的,通过所述模板对象的后置插件,根据所述模板对象配置的响应体的标签内容获取加密后的返回数据;解密所述加密后的返回数据得到所述返回数据。
[0075]
在另一可选的实施例中,在通过http接口对应的xml配置文件发起远程调用请求之前,针对所述http接口设置对应的所述xml配置文件,其中,所述xml配置文件包括请求地址url、请求头header、请求体body以及响应体。
[0076]
在另一可选的实施例中,在通过http接口对应的xml配置文件发起远程调用请求之前,以预定时间周期扫描预设路径下的xml配置文件,生成模板对象,将所述模板对象缓存到系统内存中。
[0077]
本发明实施例案利用模板技术,将拼接url、动态设置header、body、接收响应体、解析响应体这些步骤由原先的手工编码变为程序自动处理。每个接口对应编写一个课扩展标记语言(extensible markup language,简称为xml)配置文件,header body的设置、响应体的解析在xml里利用模板控制语言编写。面对http接口变化,调整修改对应的xml文件即可。
[0078]
各服务依赖xml配置文件就可以实现http接口调用。http接口调用的代码简洁;多个服务调用相同http接口依赖同一个xml配置文件即可;当http接口变化时,修改对应xml配置文件,不需要修改代码;将修改后的xml配置文件替换覆盖到服务器原先的xml配置文件,不需要编译、重启步骤,动态加载,及时生效。
[0079]
线下针对具体的http请求,编写xml配置文件,利用模板语言将请求地址url、请求头header、请求体body以及响应体的解析编写完成;程序调用方本地发起http接口调用,内部依赖xml配置文件组装数据,触发真实远程调用,得到解析处理后响应数据直接使用。图3是根据本发明实施例的基于模板技术的http调用的流程图一,如图3所示,包括:
[0080]
步骤s301,分别针对http接口1、http接口2、http接口3编写xml配置文件;
[0081]
步骤s302,定时加载xml配置文件;
[0082]
步骤s303,发起http接口调用;
[0083]
步骤s304,查找xml配置文件;
[0084]
步骤s305,根据xml配置文件动态生成调用需要的url、header、body;
[0085]
步骤s306,真实触发http调用;
[0086]
步骤s307,通过http接口1、http接口2或http接口3发起调用。
[0087]
图4是根据本发明实施例的基于模板技术的http调用的流程图二,如图4所示,系统定时扫描指定目录下的所有xml配置文件,生成模板对象,缓存到系统内存里;
[0088]
步骤1,模板加载器定时扫描、初始化化xml配置文件(即模板文件),解析xml文件为模板对象并缓存;
[0089]
步骤2,根据模板的定位字符串,从系统缓存获取到模板对象;
[0090]
步骤3,根据resttemplate(即模板对象)配置的header标签内容动态生成实际的header体数据;
[0091]
步骤4,根据resttemplate配置的body标签内容动态生成实际的body体数据;
[0092]
步骤5,执行resttemplate前置插件逻辑,对header体数据于body体数据进行加密,将加密字段放入header或者body中,即重新设置header或者body;例如,http接口定义方要求对接口的body参数做签名校验,校验请求是否合法,防止数据被篡改。a服务调用http接口时,除了在body体里传入具体的参数外,按照双方约定,对整体body参数做签名,将签名后的值放到header里一起传给http接口定义方;http接口定义方收到请求,获取body内的参数,然后自己按照双方约定,重新计算签名,用计算后的签名和header传入的签名比较,如果相等,说明参数没有被篡改,属于合法请求。那么http接口定义方就执行对应逻辑,返回具体的数据给a服务。通过配置前置插件,自动的获取a服务调用http接口的body体数据,按照规则做签名,将签名的值放到header里,这样就将以前需要手工编写代码做签名、设置header的逻辑变成配置方式,公共化的,以后别的http接口有相同诉求,也可以配置前置插件即可。
[0093]
步骤6,模板执行器调用方发起http接口的远程调用;
[0094]
步骤7,模板执行器获取请求的响应,根据resttemplate配置的response标签内容;利用模板方式,动态生成最终返回的数据;
[0095]
步骤8,模板执行器执行resttemplate后置插件逻辑,重新设置最终返回的数据;如果http接口返回的是明文的业务数据,那么调用方就可以直接获取并使用。如果http接口返回的是密文数据,那么通过配置的后置插件,可以对密文做解密,得到明文,将明文数据返回给调用方。通过配置后置插件,将http响应数据的解密过程变成配置方式,公共化的,省去了在程序里手工编写解密的逻辑,以后别的http接口有相同诉求,也可以配置后置插件即可。
[0096]
步骤9,模板执行器通过第三http接口发起远程调用;
[0097]
步骤10,模板执行器通过第三http接口接收响应体;
[0098]
步骤11,模板执行器解析响应结果到指定对象;
[0099]
步骤12,模板执行器请求后置插件处理;
[0100]
步骤13,模板执行器向后台程序调用方返回解析后的结果集。
[0101]
本发明实施例利用模板技术,将http接口的调用步骤尽可能配置化、自动化,避免手工编写冗余代码,调用代码简洁;每个http接口对应一个xml配置文件,各个服务都可以依赖xml配置文件实现http接口调用,避免冗余代码;xml配置文件在系统里定时动态加载,当修改更新xml配置文件后,无需代码编译、重启服务即可生效。模板技术是可以替换的。针对http接口,提前编写对应的xml模板配置文件,xml配置文件中涉及编写模板语言,采用哪种java模板技术,xml配置文件里的模板语言与之相对。可以根据开发人员的技术栈选择freemarker、velocity、beetl等多种模板技术来实现。
[0102]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施
例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0103]
实施例2
[0104]
在本实施例中还提供了一种远程调用处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0105]
图5是根据本发明实施例的远程调用处理装置的框图,如图5所示,包括:
[0106]
发起模块52,用于通过超文本传输协议http接口对应的可扩展标记语言xml配置文件发起远程调用请求,其中,一个所述http接口对应一个xml配置文件;
[0107]
获取模块54,用于接收远程调用响应,并获取所述远程调用响应中的返回数据。
[0108]
图6是根据本发明优选实施例的远程调用处理装置的框图一,如图6所示,所述发起模块52包括:
[0109]
获取子模块62,用于根据所述xml配置文件的标识信息从系统内存中获取所述xml配置文件对应的模板对象;
[0110]
第一生成子模块64,用于根据所述模板对象配置的header的标签内容生成实际的header体数据;
[0111]
第二生成子模块66,用于根据所述模板对象配置的body的标签内容生成实际的body体数据;
[0112]
发起子模块68,用于通过http接口对应的所述xml配置文件发起远程调用请求,其中,所述xml配置文件包括所述header体数据、所述body体数据。
[0113]
图7是根据本发明优选实施例的远程调用处理装置的框图二,如图7所示,所述装置还包括:
[0114]
第一获取子模块72,用于通过所述模板对象的前置插件,获取调用所述http接口的所述body体数据;
[0115]
设置子模块74,用于按照预设规则对所述body体数据进行签名,并将签名的值设置在所述header或所述body中。
[0116]
可选地,所述获取模块54,还用于
[0117]
基于所述远程调用响应,根据所述模板对象配置的响应体的标签内容获取得到返回数据。
[0118]
图8是根据本发明优选实施例的远程调用处理装置的框图三,如图8所示,所述获取模块54包括:
[0119]
第二获取子模块82,用于通过所述模板对象的后置插件,根据所述模板对象配置的响应体的标签内容获取加密后的返回数据;
[0120]
解码子模块84,用于解密所述加密后的返回数据得到所述返回数据。
[0121]
图9是根据本发明优选实施例的远程调用处理装置的框图四,如图9所示,所述装
置还包括:
[0122]
设置模块92,用于针对所述http接口设置对应的所述xml配置文件,其中,所述xml配置文件包括请求地址url、请求头header、请求体body以及响应体。
[0123]
图10是根据本发明优选实施例的远程调用处理装置的框图五,如图10所示,所述装置还包括:
[0124]
扫描模块102,用于以预定时间周期扫描预设路径下的xml配置文件,生成模板对象;
[0125]
缓存模块104,用于将所述模板对象缓存到系统内存中。
[0126]
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0127]
实施例3
[0128]
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0129]
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0130]
s1,通过超文本传输协议http接口对应的可扩展标记语言xml配置文件发起远程调用请求,其中,一个所述http接口对应一个xml配置文件;
[0131]
s2,接收远程调用响应,并获取所述远程调用响应中的返回数据。
[0132]
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0133]
实施例4
[0134]
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0135]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0136]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0137]
s1,通过超文本传输协议http接口对应的可扩展标记语言xml配置文件发起远程调用请求,其中,一个所述http接口对应一个xml配置文件;
[0138]
s2,接收远程调用响应,并获取所述远程调用响应中的返回数据。
[0139]
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0140]
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或
步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0141]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1