CN116302397A - 远程服务调用方法、***、设备和存储介质 - Google Patents
远程服务调用方法、***、设备和存储介质 Download PDFInfo
- Publication number
- CN116302397A CN116302397A CN202310115125.8A CN202310115125A CN116302397A CN 116302397 A CN116302397 A CN 116302397A CN 202310115125 A CN202310115125 A CN 202310115125A CN 116302397 A CN116302397 A CN 116302397A
- Authority
- CN
- China
- Prior art keywords
- service
- interface
- target
- parameter
- consumer
- 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 74
- 230000008569 process Effects 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 abstract description 8
- 238000013500 data storage Methods 0.000 description 12
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 7
- 244000046052 Phaseolus vulgaris Species 0.000 description 7
- 238000012546 transfer Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 1
- 238000002620 method output Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种远程服务调用方法、***、设备和存储介质,应用于远程服务调用***(包括服务提供方和服务消费方),方法包括:服务消费方和服务提供方建立连接后,根据服务定义信息向服务提供方的统一标准服务接口发送调用请求;调用请求携带提供目标服务的目标模块的名称,目标模块接口的名称,目标模块接口的入参键、入参值和出参键;服务提供方的统一标准服务模块根据调用请求,调用目标模块处理得到出参值,然后将出参值反馈给服务消费方。由于服务消费方通过统一标准服务接口调用服务提供方的服务,当服务提供方的发布新的服务接口时,服务消费方不需要针对新发布的服务接口进行相应变更,提高了远程服务调用***中变更服务接口的效率。
Description
技术领域
本发明涉及远程过程调用技术领域,特别涉及一种远程服务调用方法、***、设备和存储介质。
背景技术
基于远程过程调用(RemoteProcedureCall,RPC)协议实现的远程服务***目前已经广泛应用于包括银行服务在内的多种社会生活场景中。远程服务***将程序分为提供服务的服务提供方和调用服务的服务消费方两类,服务消费方通过预先定义的应用程序接口可以调用服务提供方提供的服务。
现有远程服务***中,服务提供方的每一项服务都对应专门的服务接口,例如转账服务对应转账接口,支付服务对应支付接口,相应的,开发人员在开发服务消费方的程序时,要调用特定的服务就需要在服务消费方的项目代码中写入访问特定接口的代码,例如若开发的服务消费方程序需要调用支付服务,则开发时就需要在代码中写入访问支付接口的代码。
这种现有调用方式,即通过特定接口调用特定服务的方式存在的问题是,当服务提供方发布新服务接口时,需要开发人员在服务消费方的项目代码中添加访问新服务接口的代码,然后重新编译并部署服务消费方的程序,这样服务消费方才能通过新服务接口调用对应服务。可见,应用现有调用方式的远程服务***变更或新增服务接口的效率较低。
发明内容
针对上述现有技术的缺点,本发明提供一种远程服务调用方法、***、设备和存储介质,以便提高在远程服务***中变更或新增服务接口的效率。
本申请第一方面提供一种远程服务调用方法,应用于远程服务调用***,所述远程服务调用***包括服务提供方和服务消费方,所述方法包括:
所述服务消费方确定提供所需的目标服务的服务提供方,并和所述服务提供方建立连接;
所述服务消费方根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求;所述调用请求携带提供所述目标服务的目标模块的名称,所述目标模块接口的名称,所述目标模块接口的入参键、入参值和出参键;
所述服务提供方的统一标准服务模块根据所述调用请求,调用所述目标模块处理所述入参键和入参值,得到出参值;
所述服务提供方的统一标准服务模块将所述出参键和所述出参值反馈给所述服务消费方;
所述服务消费方将根据所述出参键和所述出参值确定的服务调用结果反馈给所述客户端。
可选的,所述服务消费方确定提供所需的目标服务的服务提供方,包括:
服务消费方根据客户端的服务请求确定目标服务;
所述服务消费方在配置文件中查找提供所述目标服务的服务提供方。
可选的,所述服务消费方根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求,包括:
所述服务消费方从配置文件中查询所述目标服务的服务定义信息;所述目标服务的服务定义信息包括提供所述目标服务的目标模块的名称,所述目标模块的接口的名称,所述目标模块的接口的入参键和出参键;
所述服务消费方根据所述服务定义信息生成服务调用请求;
所述服务消费方向所述服务提供方发送所述服务调用请求。
可选的,所述服务消费方根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求之前,还包括:
所述服务提供方在注册中心注册所述统一标准服务接口;
所述服务消费方从注册中心发现所述统一标准服务接口。
本申请第二方面提供一种远程服务调用***,所述远程服务调用***包括服务提供方和服务消费方;
所述服务消费方包括:
连接单元,用于确定提供所需的目标服务的服务提供方,并和所述服务提供方建立连接;
发送单元,用于根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求;所述调用请求携带提供所述目标服务的目标模块的名称,所述目标模块接口的名称,所述目标模块接口的入参键、入参值和出参键;
所述服务提供方包括统一标准服务模块和所述目标模块;
所述统一标准服务模块用于:
根据所述调用请求,调用所述目标模块处理所述入参键和入参值,得到出参值;
将所述出参键和所述出参值反馈给所述服务消费方;
所述服务消费方包括反馈单元,用于将根据所述出参键和所述出参值确定的服务调用结果反馈给所述客户端。
可选的,所述连接单元确定提供所需的目标服务的服务提供方时,具体用于:
根据客户端的服务请求确定目标服务;
在配置文件中查找提供所述目标服务的服务提供方。
可选的,所述发送单元根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求时,具体用于:
从配置文件中查询所述目标服务的服务定义信息;所述目标服务的服务定义信息包括提供所述目标服务的目标模块的名称,所述目标模块的接口的名称,所述目标模块的接口的入参键和出参键;
根据所述服务定义信息生成服务调用请求;
向所述服务提供方发送所述服务调用请求。
可选的,所述服务提供方还包括注册模块,用于在注册中心注册所述统一标准服务接口;
所述服务消费方还包括发现单元,用于从注册中心发现所述统一标准服务接口。
本申请第三方面提供一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现如本申请第一方面任意一项所提供的远程服务调用方法。
本申请第四方面提供一种电子设备,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,具体用于实现如本申请第一方面任意一项所提供的远程服务调用方法。
本申请提供一种远程服务调用方法、***、设备和存储介质,应用于远程服务调用***(包括服务提供方和服务消费方),方法包括:服务消费方和服务提供方建立连接后,根据服务定义信息向服务提供方的统一标准服务接口发送调用请求;调用请求携带提供目标服务的目标模块的名称,目标模块接口的名称,目标模块接口的入参键、入参值和出参键;服务提供方的统一标准服务模块根据调用请求,调用目标模块处理得到出参值,然后将出参值反馈给服务消费方。由于服务消费方通过统一标准服务接口调用服务提供方的服务,当服务提供方的发布新的服务接口时,服务消费方不需要针对新发布的服务接口进行相应变更,提高了远程服务调用***中变更服务接口的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的远程服务调用方法的原理示意图;
图2为本申请实施例提供的远程服务调用方法流程图;
图3为本申请实施例提供的远程服务调用的***的示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本申请提供的方案,首先对可能涉及的部分术语进行说明:
类:类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
对象:对象是类的一个具体,它是一个实实在在存在的东西。对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。
Spring,一种开源的应用程序框架,在Spring框架中,应用程序由一种称为SpirngBean的基本模块组成。SpringBean是任何Spring应用程序的基本构建块,一个SpringBean用于提供一项特定的功能,并且受Sring容器管理,因此SpringBean也可以理解为Spring框架中用于实现不同功能的基本功能模块。
RPC,即RemoteProcedureCall,远程过程调用,通俗说就是两台通过网络连接的计算机设备之间,一台设备通过网络调用另一台设备的应用程序所提供的服务。这类由多台相互连接的设备组成,且其中一部分设备调用另一部分设备提供的服务的***,可以称为远程过程调用***或者远程服务***。建立远程服务***,需要预先在***中各设备上配置RPC协议。目前在计算机领域存在多种RPC协议,本申请对具体应用的RPC协议不做限定。作为一种示例,本申请提供的方案可以应用在基于Dubbo协议的远程服务***上。
远程服务***中的应用程序基本可以分为两类,用于提供具体的某项服务(例如提供向指定国内账户转账服务)的应用程序属于服务提供方;用于接收客户端发来的请求并根据请求调用服务提供方所提供的服务的应用程序,属于服务消费方(也可以称为服务调用方)。
Dubbo协议框架:Dubbo协议框架是一款高性能、轻量级的开源Java服务框架,提供面向接口代理的高性能RPC调用,智能容错和负责均衡,服务自动注册与发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。Dubbo协议框架中定义了组(DubboGroup)概念,使得服务消费方可以在接口不变的情况下可根据不同的组调用不同的服务。
为了解决背景技术中提出的问题,本申请采用的技术方案如下:
本申请实现基于JAVA语言,集成Spring框架与Dubbo框架的基本应用,针对Dubbo服务协议服务提供方和服务消费方需要频繁新增配置的问题,约定一个单一标准服务接口,服务双上通过单一的接口,利用SpringBean可以动态获取、JAVA反射可动态执行的原理,从数据存储中实时增加或修改实际调用接口定义信息,实现服务接口的动态调用。
本申请主要解决,服务消费方配置服务提供方接口时,无需重启服务、在线动态调用的优势,实现开发更快捷、服务上线更便捷的优势。
本申请的技术方案的实现方式如下:
服务提供方提供统一的服务Jar文件包,提供单一标准服务接口;
具体为实现提供统一的标准服务接口,并提供基于方法名称从Spring容器获取SpringBean实例的方法。
方法的具体实现为:
接口定义:本接口主要提供统一的服务调用方案,定义输入参数包含接口SringBean名称、接口方法名称、接口入参的key(键)、接口入参的value(值),输出参数为包含接口方法输出的内容key值。
接口实现:通过Spring的容器类获取对应接口方法名称对应的Spring Bean,通过反射执行SpringBean对应的方法及入参内容,方法执行完成封装返回内容输出。
服务提供方提供一个Dubbo公共服务接口;
具体实现为服务提供方配置单一标准服务接口的Dubbo服务,并根绝group配置参数提供自己的识别参数。
服务消费方在数据存储中定义服务提供方提供的方法入参和出参内容。
具体实现为,服务消费方根据服务提供方提供的类名、方法名、方法入参、方法出参,存储在数据存储中。
服务消费方配置单个服务提供方的Dubbo公共服务接口。
具体实现为,服务消费方配置服务提供方的一个单一标准服务接口,并增加group标识。
服务消费方根据数据存储中定义的接口内容,调用服务提供方的接口。
具体实现为,服务消费方读取数据存储中的接口定义内容,通过单一标准服务接口发送给服务提供方,服务提供方根绝参数内容动态调用实际的执行类,返回执行结果。
服务提供方涉及接口入参、出参变更,同步变更数据存储中定义的接口内容即可。
具体时限为,服务提供方接口变更后,服务消费方调整数据存储中的接口定义内容即可保证接口调用正常。
基于本申请的技术方案,在远程服务***中,服务消费方可以按照图1所示的调用流程来调用服务提供方提供的服务。
S0,服务提供方发生服务变更时,对应变更数据存储模块的服务定义信息。
步骤S0可以由远程服务***的开发和维护人员执行。具体的,当服务提供方新增服务,删除服务或修改服务时,需要对应的新增服务接口,删除服务接口或变更服务接口,在服务提供方的服务接口发生上述变更之后,开发和维护人员就需要根据这些变更对应修改数据存储模块的服务定义信息。
例如,如果服务提供方新增了服务接口,则需要在数据存储模块中添加新增的服务接口的接口定义内容;如果服务提供方删除了原有服务接口,就需要在数据存储模块中删除原有服务接口对应的接口定义内容;如果服务提供方变更原有服务接口入参的格式要求,则需要在数据存储模块中对应调整原有服务接口的接口定义内容。
一个服务接口的接口定义内容,可以包括对该服务接口的入参的格式要求,包括但不限于调用该服务接口时,该接口的入参应当包括哪些键(key),这些键对应的值(value)的类型和取值范围等。例如某服务接口的接口定义内容可以包括,调用该接口时应提供入参text和num,这里的text就是入参的键,对应的值应当为文本类型,num对应的值应当为整数类型(即整型,int),取值范围应当为0至100。
S1,服务提供方在注册中心注册统一标准服务。
S2,服务消费方在注册中心发现统一标准服务。
S3,服务消费方在数据存储模块中查询服务定义信息。
S4,服务消费方调用统一标准服务接口。
在服务消费方对统一标准服务接口的调用请求中,携带有调用目标服务接口所需的入参,目标服务是指服务消费方实际所需调用的服务。
S5,服务提供方统一标准服务调用结果。
在统一标准服务调用结果中,携带有反馈包含提供目标服务的目标服务模块对入参进行处理后得到的目标服务调用结果。
S6,服务消费方向客户端反馈服务调用结果。
本实施例提供一种远程服务调用方法,请参见图2,为该方法的流程图,该方法可以包括如下步骤。
本申请第一方面提供一种远程服务调用方法,应用于远程服务调用***,远程服务调用***包括服务提供方和服务消费方,方法包括:
S201,服务消费方确定提供所需的目标服务的服务提供方,并和服务提供方建立连接。
可选的,服务消费方确定提供所需的目标服务的服务提供方,包括:
服务消费方根据客户端的服务请求确定目标服务;
服务消费方在配置文件中查找提供目标服务的服务提供方。
客户端的服务请求中可以携带有所需服务的名称,服务消费方收到服务请求后,就可以根据名称确定需要调用的服务,也就是确定目标服务。
示例性的,客户端可以向服务消费方发送转账请求,服务消费方收到后,确定转账服务为目标服务。
一个远程服务调用***可以有多个服务提供方。在本实施例中,每一服务提供方都可以提供自身的配置文件,该配置文件可以是jar格式的文件包,也可以是其他格式的文件,本实施例对配置文件的格式不做限定。
服务提供方的配置文件可以包括如下信息:
服务提供方所属的组(group)的标识,服务提供方自身的标识,服务提供方所能提供的服务,服务提供方中提供每一项服务的SpringBean实例的名称,以及服务提供方所提供的每一项服务的服务定义信息。其中,提供某项服务的SpringBean实例,可以理解为服务提供方的一个用于提供该项服务的功能模块。
如图1对应的实施例所述,在远程服务调用***中,服务提供方可以将配置好的配置文件发送给服务消费方,由服务消费方存储在本地的数据存储模块中。
基于上述配置文件中的信息,服务消费方在确定客户端所需调用的目标服务后,就可以从配置文件中找到提供该项目标服务的服务提供方所属组的标识和服务提供方自身的标识,从而确定提供该项目标服务的服务提供方。
服务消费方和服务提供方建立连接的具体方式可以参见相关技术,此处不再赘述。
S202,服务消费方根据预设的服务定义信息向服务提供方的统一标准服务接口发送调用请求。
调用请求携带提供目标服务的目标模块的名称,目标模块接口的名称,目标模块接口的入参键、入参值和出参键。
可选的,步骤S202的具体执行过程可以包括:
A1,服务消费方从配置文件中查询目标服务的服务定义信息;目标服务的服务定义信息包括提供目标服务的目标模块的名称,目标模块的接口的名称,目标模块的接口的入参键和出参键;
A2,服务消费方根据服务定义信息生成服务调用请求;
A3,服务消费方向服务提供方发送服务调用请求。
参见步骤S201,服务消费方可以从配置文件中查询得到服务提供方所提供的目标服务的服务定义信息,进而根据服务定义信息生成调用服务提供方的统一标准服务接口的服务调用请求。
结合一个具体的示例说明根据服务定义信息生成针对统一标准服务接口的服务调用请求的过程:
假设客户端需要调用的服务是支付服务,通过查询配置文件,服务消费方确定服务提供方1负责提供支付服务,在配置文件中,支付服务的服务定义信息如下:
服务提供方1中用于提供支付服务的SpringBean实例(即上述目标模块)的名称为service_pay,目标模块的接口名称为service_pay_api,该接口规定的入参键包括payer,payee,amount,其中payer和payee分别表示付款账户和收款账户,amount表示支付额度,payer和payee对应的入参值规定为账号类型,amount的入参值规定为浮点数,取值范围为大于0,该接口的出参键为result,表示支付结果,取值范围为true(表示支付成功)或false(表示支付失败)。
根据上述服务定义信息以及客户端所发送的服务请求中携带的支付信息,服务提供方生成一条包含如下信息的服务调用请求:
Group_a,service_pay,service_pay_api,payer=100022,payee=100033,amount=35.6,result。
上述服务调用请求中,Group_a表示提供支付服务的服务提供方所属的组,service_pay和service_pay_api用于说明需要该服务调用请求实际要调用的是提供支付服务的目标模块service_pay,该模块的接口是service_pay_api,payer=100022、payee=100033和amount=35.6是调用目标模块的接口时需要输入的入参,用于说明付款账号为100022,收款账号为100033,支付金额为35.6,result表示调用目标模块后需要反馈的结果。
本步骤中,服务消费方向服务提供方的统一标准服务接口发送服务调用请求,相当于服务消费方调用统一标准服务接口。在一些可选的实施例中,服务消费方可以通过反射实现方式来调用统一标准服务接口,当然,也可以通过其他方式调用,本实施例对具体调用方式不做限定。
S203,服务提供方的统一标准服务模块根据调用请求,调用目标模块处理入参键和入参值,得到出参值。
服务提供方的统一标准服务模块通过统一标准服务接口接收服务消费方的服务调用请求,然后,根据服务调用请求中携带的信息,确定该服务调用请求实际需要调用的目标模块以及目标模块的接口,接着利用服务调用请求中携带的目标模块接口的入参,生成针对该目标模块的接口的实际调用请求,通过该实际调用请求调用目标模块的接口。
目标模块的接口被调用中,实际调用请求中携带的来自服务消费方的入参被输入至目标模块,目标模块基于自身的处理逻辑处理入参后,得到相应的处理结果,然后将该处理结果以出参值的形式反馈给统一标准服务模块。
续接S202的示例,示例中的服务调用请求发给服务提供方的统一标准服务模块后,服务提供方的统一标准服务模块生成一条针对service_pay模块的接口service_pay_api的实际调用请求,该实际调用请求中携带S202的示例中来自服务消费方的入参,即payer=100022,payee=100033,amount=35.6,service_pay模块接收该实际调用请求,按照入参中的付款账号,收款账号和支付金额发起支付,支付成功后,将出参键result赋值为true,并将出参键和出参值返回给统一标准服务模块。
S204,服务提供方的统一标准服务模块将出参键和出参值反馈给服务消费方。
服务提供方的统一标准服务模块获得目标模块的反馈后,就可以通过统一标准服务接口,将出参键和出参值返回给服务消费方。
S205,服务消费方将根据出参键和出参值确定的服务调用结果反馈给客户端。
在S205中,服务消费方可以直接将出参键和出参值作为服务调用结果反馈给客户端,也可以根据出参键和出参值确定对应的结果信息,将该结果信息作为服务调用结果反馈给客户端。
续接前述示例,服务消费方获得表示支付成功的result=true之后,可以直接将result=true作为服务调用结果反馈给客户端,也可以根据result=true确定对应的结果信息,例如“本次支付成功”,将该结果信息作为服务调用结果反馈给客户端。
可选的,服务消费方根据预设的服务定义信息向服务提供方的统一标准服务接口发送调用请求之前,还包括:
服务提供方在注册中心注册统一标准服务接口;
服务消费方从注册中心发现统一标准服务接口。
上述统一标准服务接口的具体注册方式和发现方式可以参见相关技术,不再赘述。
本申请提供一种远程服务调用方法,应用于远程服务调用***(包括服务提供方和服务消费方),方法包括:服务消费方和服务提供方建立连接后,根据服务定义信息向服务提供方的统一标准服务接口发送调用请求;调用请求携带提供目标服务的目标模块的名称,目标模块接口的名称,目标模块接口的入参键、入参值和出参键;服务提供方的统一标准服务模块根据调用请求,调用目标模块处理得到出参值,然后将出参值反馈给服务消费方。由于服务消费方通过统一标准服务接口调用服务提供方的服务,当服务提供方的发布新的服务接口时,服务消费方不需要针对新发布的服务接口进行相应变更,提高了远程服务调用***中变更服务接口的效率。
根据本申请实施例提供的远程服务调用方法,本申请实施例还提供一种本申请第二方面提供一种远程服务调用***,请参见图3,为该***的结构示意图。
远程服务调用***包括服务提供方301和服务消费方302;
服务消费方包括:
连接单元311,用于确定提供所需的目标服务的服务提供方,并和服务提供方建立连接;
发送单元312,用于根据预设的服务定义信息向服务提供方的统一标准服务接口发送调用请求;调用请求携带提供目标服务的目标模块的名称,目标模块接口的名称,目标模块接口的入参键、入参值和出参键;
服务提供方包括统一标准服务模块321和目标模块322;
统一标准服务模块用于:
根据调用请求,调用目标模块处理入参键和入参值,得到出参值;
将出参键和出参值反馈给服务消费方;
服务消费方包括反馈单元313,用于将根据出参键和出参值确定的服务调用结果反馈给客户端。
可选的,连接单元确定提供所需的目标服务的服务提供方时,具体用于:
根据客户端的服务请求确定目标服务;
在配置文件中查找提供目标服务的服务提供方。
可选的,发送单元根据预设的服务定义信息向服务提供方的统一标准服务接口发送调用请求时,具体用于:
从配置文件中查询目标服务的服务定义信息;目标服务的服务定义信息包括提供目标服务的目标模块的名称,目标模块的接口的名称,目标模块的接口的入参键和出参键;
根据服务定义信息生成服务调用请求;
向服务提供方发送服务调用请求。
可选的,服务提供方还包括注册模块323,用于在注册中心注册统一标准服务接口;
服务消费方还包括发现单元314,用于从注册中心发现统一标准服务接口。
本实施例提供的远程服务调用***,其具体工作原理可以参见图2对应实施例所提供的远程服务调用方法中相关步骤,此处不再赘述。
本申请提供一种远程服务调用***,应用于远程服务调用***(包括服务提供方和服务消费方),远程服务调用***包括服务提供方301和服务消费方302;服务消费方包括:连接单元311,用于确定提供所需的目标服务的服务提供方,并和服务提供方建立连接;发送单元312,用于根据预设的服务定义信息向服务提供方的统一标准服务接口发送调用请求;调用请求携带提供目标服务的目标模块的名称,目标模块接口的名称,目标模块接口的入参键、入参值和出参键;服务提供方包括统一标准服务模块321和目标模块322;统一标准服务模块用于:根据调用请求,调用目标模块处理入参键和入参值,得到出参值;将出参键和出参值反馈给服务消费方;服务消费方包括反馈单元313,用于将根据出参键和出参值确定的服务调用结果反馈给客户端。由于服务消费方通过统一标准服务接口调用服务提供方的服务,当服务提供方的发布新的服务接口时,服务消费方不需要针对新发布的服务接口进行相应变更,提高了远程服务调用***中变更服务接口的效率。
本申请实施例还提供一种电子设备,请参见图4,包括存储器401和处理器402。
其中,存储器401用于存储计算机程序。
处理器402用于执行计算机程序,计算机程序被执行时,具体用于实现本申请任一实施例所提供的远程服务调用方法。
本申请实施例还提供一种计算机存储介质,用于存储计算机程序,计算机程序被执行时,具体用于实现本申请任一实施例所提供的远程服务调用方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的***、模块或单元进行区分,并非用于限定这些***、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种远程服务调用方法,其特征在于,应用于远程服务调用***,所述远程服务调用***包括服务提供方和服务消费方,所述方法包括:
所述服务消费方确定提供所需的目标服务的服务提供方,并和所述服务提供方建立连接;
所述服务消费方根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求;所述调用请求携带提供所述目标服务的目标模块的名称,所述目标模块接口的名称,所述目标模块接口的入参键、入参值和出参键;
所述服务提供方的统一标准服务模块根据所述调用请求,调用所述目标模块处理所述入参键和入参值,得到出参值;
所述服务提供方的统一标准服务模块将所述出参键和所述出参值反馈给所述服务消费方;
所述服务消费方将根据所述出参键和所述出参值确定的服务调用结果反馈给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述服务消费方确定提供所需的目标服务的服务提供方,包括:
服务消费方根据客户端的服务请求确定目标服务;
所述服务消费方在配置文件中查找提供所述目标服务的服务提供方。
3.根据权利要求1所述的方法,其特征在于,所述服务消费方根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求,包括:
所述服务消费方从配置文件中查询所述目标服务的服务定义信息;所述目标服务的服务定义信息包括提供所述目标服务的目标模块的名称,所述目标模块的接口的名称,所述目标模块的接口的入参键和出参键;
所述服务消费方根据所述服务定义信息生成服务调用请求;
所述服务消费方向所述服务提供方发送所述服务调用请求。
4.根据权利要求1所述的方法,其特征在于,所述服务消费方根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求之前,还包括:
所述服务提供方在注册中心注册所述统一标准服务接口;
所述服务消费方从注册中心发现所述统一标准服务接口。
5.一种远程服务调用***,其特征在于,所述远程服务调用***包括服务提供方和服务消费方;
所述服务消费方包括:
连接单元,用于确定提供所需的目标服务的服务提供方,并和所述服务提供方建立连接;
发送单元,用于根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求;所述调用请求携带提供所述目标服务的目标模块的名称,所述目标模块接口的名称,所述目标模块接口的入参键、入参值和出参键;
所述服务提供方包括统一标准服务模块和所述目标模块;
所述统一标准服务模块用于:
根据所述调用请求,调用所述目标模块处理所述入参键和入参值,得到出参值;
将所述出参键和所述出参值反馈给所述服务消费方;
所述服务消费方包括反馈单元,用于将根据所述出参键和所述出参值确定的服务调用结果反馈给所述客户端。
6.根据权利要求5所述的***,其特征在于,所述连接单元确定提供所需的目标服务的服务提供方时,具体用于:
根据客户端的服务请求确定目标服务;
在配置文件中查找提供所述目标服务的服务提供方。
7.根据权利要求5所述的***,其特征在于,所述发送单元根据预设的服务定义信息向所述服务提供方的统一标准服务接口发送调用请求时,具体用于:
从配置文件中查询所述目标服务的服务定义信息;所述目标服务的服务定义信息包括提供所述目标服务的目标模块的名称,所述目标模块的接口的名称,所述目标模块的接口的入参键和出参键;
根据所述服务定义信息生成服务调用请求;
向所述服务提供方发送所述服务调用请求。
8.根据权利要求5所述的***,其特征在于,所述服务提供方还包括注册模块,用于在注册中心注册所述统一标准服务接口;
所述服务消费方还包括发现单元,用于从注册中心发现所述统一标准服务接口。
9.一种计算机存储介质,其特征在于,用于存储计算机程序,所述计算机程序被执行时,具体用于实现如权利要求1至4任意一项所述的远程服务调用方法。
10.一种电子设备,其特征在于,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,具体用于实现如权利要求1至4任意一项所述的远程服务调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310115125.8A CN116302397A (zh) | 2023-02-15 | 2023-02-15 | 远程服务调用方法、***、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310115125.8A CN116302397A (zh) | 2023-02-15 | 2023-02-15 | 远程服务调用方法、***、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302397A true CN116302397A (zh) | 2023-06-23 |
Family
ID=86795145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310115125.8A Pending CN116302397A (zh) | 2023-02-15 | 2023-02-15 | 远程服务调用方法、***、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302397A (zh) |
-
2023
- 2023-02-15 CN CN202310115125.8A patent/CN116302397A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111741026B (zh) | 一种跨链事务请求处理方法、装置、设备以及存储介质 | |
CN109635019B (zh) | 请求处理方法、装置、设备及存储介质 | |
CN111258565B (zh) | 小程序的生成方法、***、服务器及存储介质 | |
CN113364853B (zh) | 一种业务服务***、业务请求方法及网关设备 | |
CN111708619B (zh) | 基于消息队列和数据库的分布式事务处理方法及*** | |
WO2023142911A1 (zh) | 业务处理方法及装置 | |
KR102426381B1 (ko) | Api 요청 처리 시스템 | |
CN110737425B (zh) | 一种计费平台***的应用程序的建立方法及装置 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN113626128B (zh) | 视听媒体微服务第三方模块接入方法、***、电子设备 | |
US20070118634A1 (en) | Message oriented construction of web services | |
CN114640610B (zh) | 基于云原生的服务治理方法、装置及存储介质 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN113806104A (zh) | 接口访问请求处理方法、api网关、服务器及*** | |
CN103561113A (zh) | Web Service接口的生成方法及装置 | |
CN116302397A (zh) | 远程服务调用方法、***、设备和存储介质 | |
CN112905273A (zh) | 一种服务调用方法和装置 | |
CN101706901B (zh) | 实现屏蔽不同工作流产品的装置及方法 | |
US9479599B2 (en) | Reroute of a web service in a web based application | |
CN102236665A (zh) | 页面加载的方法及装置 | |
CN111652580A (zh) | 一种对节点的数据处理方法及装置 | |
CN112650601B (zh) | 跨宿主打开小程序的方法、装置、设备、存储介质和程序 | |
CN116860353B (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN112883300B (zh) | 功能标签定制方法及其装置、设备与介质 | |
CN117453206A (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 |