CN114257576A - 一种基于支持多种通讯协议的rpc服务端实现方法 - Google Patents

一种基于支持多种通讯协议的rpc服务端实现方法 Download PDF

Info

Publication number
CN114257576A
CN114257576A CN202111506725.4A CN202111506725A CN114257576A CN 114257576 A CN114257576 A CN 114257576A CN 202111506725 A CN202111506725 A CN 202111506725A CN 114257576 A CN114257576 A CN 114257576A
Authority
CN
China
Prior art keywords
rpc
xml
client
interface
server
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
Application number
CN202111506725.4A
Other languages
English (en)
Inventor
兰鑫玥
马融
李春兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Citic Bank Corp Ltd
Original Assignee
China Citic Bank Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Citic Bank Corp Ltd filed Critical China Citic Bank Corp Ltd
Priority to CN202111506725.4A priority Critical patent/CN114257576A/zh
Publication of CN114257576A publication Critical patent/CN114257576A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

本发明提供了一种基于支持多种通讯协议的RPC服务端实现方法,其中,该方法包括:客户端发起远程过程服务调用,采用HTTP通讯协议,发送XML/JSON类型报文给RPC服务端;RPC服务端复用RPC通讯组件的逻辑,调用服务接口,接收客户端发送的XML/JSON类型报文;RPC服务端对XML/JSON类型报文进行转换处理,获得第一请求对象;根据第一请求对象调用与第一请求对象对应的第一接口方法;根据第一接口方法获得第一响应对象;对第一响应对象进行处理后反馈至客户端。解决了现有技术中对于同一个服务端,无法针对不同协议类型的报文进行处理的技术问题。

Description

一种基于支持多种通讯协议的RPC服务端实现方法
技术领域
本发明涉及计算机应用系统通讯相关技术领域,具体涉及一种基于支持多种通讯协议的RPC服务端实现方法。
背景技术
RPC(Remote Procedure Call Protocol)通信协议为远程过程调用协议,可以使服务调用者可以像调用本地方法一样调用远程服务,且调用过程对调用者是完全透明的。通过RPC协议,客户端可调用存在于传承计算机上的某个对象,就行调用本地程序中的对象一样。
企业中不同的系统之间采用的通讯协议以及报文类型各不相同,例如部分系统采用RPC协议,部分系统采用HTTP(Hypertext Transfer Prtcl)协议。目前服务方在开发通讯方式时需要根据服务端的应用系统的通信协议进行针对性的开发。
但本申请发明人在实现本申请实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
现有技术中由于企业中不同系统之间采用的通讯协议以及报文类型各不相同,现有的RPC开源框架使用的RPC通讯协议,比如dubbo协议,thrift协议等,不能同时支持不同的通讯报文协议规则,对于同一个服务端,无法针对不同协议类型的报文进行处理,存在着同一服务端无法满足不同通讯协议调用的技术问题。
发明内容
本申请实施例通过提供了一种基于支持多种通讯协议的RPC服务端实现方法,用于针对解决现有技术中由于企业中不同系统之间采用的通讯协议以及报文类型各不相同,现有的RPC开源框架使用的RPC通讯协议,比如dubbo协议,thrift协议等,不能同时支持不同的通讯报文协议规则,对于同一个服务端,无法针对不同协议类型的报文进行处理,存在着同一服务端无法满足不同通讯协议调用的技术问题。
鉴于上述问题,本申请实施例提供了一种基于支持多种通讯协议的RPC服务端实现方法。
本申请实施例的第一个方面,提供了一种基于支持多种通讯协议的RPC服务端实现方法,所述方法应用于一种支持多种通讯协议的RPC服务端实现系统,所述系统包括RPC服务端和客户端,所述方法包括:所述客户端发起远程过程服务调用,采用HTTP通讯协议,发送XML/JSON类型报文给所述RPC服务端;所述RPC服务端复用RPC通讯组件的逻辑,调用服务接口,接收所述客户端发送的XML/JSON类型报文;所述RPC服务端对所述XML/JSON类型报文进行转换处理,获得第一请求对象;根据所述第一请求对象调用与所述第一请求对象对应的第一接口方法;根据所述第一接口方法获得第一响应对象;对所述第一响应对象进行处理后反馈至所述客户端。
本申请实施例的第二个方面,提供了一种基于支持多种通讯协议的RPC服务端实现系统,所述系统包括:第一发送单元,所述第一发送单元用于客户端发起远程过程服务调用,采用HTTP通讯协议,发送XML/JSON类型报文给RPC服务端;第一处理单元,所述第一处理单元用于所述RPC服务端复用RPC通讯组件的逻辑,调用服务接口,接收所述客户端发送的XML/JSON类型报文;第二处理单元,所述第二处理单元用于所述RPC服务端对所述XML/JSON类型报文进行转换处理,获得第一请求对象;第三处理单元,所述第三处理单元用于根据所述第一请求对象调用与所述第一请求对象对应的第一接口方法;第一获得单元,所述第一获得单元用于根据所述第一接口方法获得第一响应对象;第二发送单元,所述第二发送单元用于对所述第一响应对象进行处理后反馈至所述客户端。
本申请实施例的第三个方面,提供了一种基于支持多种通讯协议的RPC服务端实现系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序,当所述程序被所述处理器执行时,使系统以执行如第一方面所述方法的步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的方法在客户端发起远程过程服务调用时,若采用HTTP发起调用请求,则向RPC服务端发送XML/JSON类型报文,RPC服务端接收客户端发送的HTTP请求,解析出HTTP请求中的URL,然后对报文中标识每笔业务的业务码与服务端应用接口方法的URL做映射,进而根据映射对XML/JSON报文进行反序列化转换为请求对象,根据请求对象调用服务方对应的接口方法,根据接口方法将响应对象序列化为XML/JSON响应报文返回给客户端,完成调用。本申请实施例在RPC服务端增加接口适配模块,然后复用RPC通讯组件的逻辑,可以兼容各企业原有的通讯报文协议规则,支持HTTP通讯协议和RPC通讯协议,在进行开发通讯方式的过程中,RPC服务端只需开发一种逻辑即可,使得服务方应用一次开发便可支持客户端采用不同通讯协议的调用方式,减少服务端开发成本,达到同一RPC服务端可满足不同通讯协议远程调用请求、减少开发成本的技术效果。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
图1为本申请实施例提供的一种基于支持多种通讯协议的RPC服务端实现方法流程示意图之一;
图2为本申请实施例提供的一种基于支持多种通讯协议的RPC服务端实现方法流程示意图之二;
图3为本申请实施例提供的一种基于支持多种通讯协议的RPC服务端实现方法的逻辑框图;
图4本申请实施例提供的一种基于支持多种通讯协议的RPC服务端实现系统结构示意图;
图5为本申请实施例示例性电子设备的结构示意图。
附图标记说明:第一发送单元11,第一处理单元12,第二处理单元13,第三处理单元14,第一获得单元15,第二发送单元16,电子设备300,存储器301,处理器302,通信接口303,总线架构304。
具体实施方式
本申请实施例通过提供了一种基于支持多种通讯协议的RPC服务端实现方法,用于针对解决现有技术中由于企业中不同系统之间采用的通讯协议以及报文类型各不相同,现有的RPC开源框架使用的RPC通讯协议,比如dubbo协议,thrift协议等,不能同时支持不同的通讯报文协议规则,对于同一个服务端,无法针对不同协议类型的报文进行处理,存在着同一服务端无法满足不同通讯协议调用的技术问题。
申请概述
RPC通信协议为远程过程调用协议,可以使服务调用者可以像调用本地方法一样调用远程服务,且调用过程对调用者是完全透明的。通过RPC协议,客户端可调用存在于传承计算机上的某个对象,就行调用本地程序中的对象一样。企业中不同的系统之间采用的通讯协议以及报文类型各不相同,例如部分系统采用RPC协议,部分系统采用HTTP协议。目前服务方在开发通讯方式时需要根据服务端的应用系统的通信协议进行针对性的开发。现有技术中由于企业中不同系统之间采用的通讯协议以及报文类型各不相同,现有的RPC开源框架使用的RPC通讯协议,比如dubbo协议,thrift协议等,不能同时支持不同的通讯报文协议规则,对于同一个服务端,无法针对不同协议类型的报文进行处理,存在着同一服务端无法满足不同通讯协议调用的技术问题。
针对上述技术问题,本申请提供的技术方案总体思路如下:
本申请实施例提供了一种基于支持多种通讯协议的RPC服务端实现方法,所述方法包括:客户端发起远程过程服务调用,采用HTTP通讯协议,发送XML/JSON类型报文给RPC服务端;所述RPC服务端复用RPC通讯组件的逻辑,调用服务接口,接收所述客户端发送的XML/JSON类型报文;所述RPC服务端对所述XML/JSON类型报文进行转换处理,获得第一请求对象;根据所述第一请求对象调用与所述第一请求对象对应的第一接口方法;根据所述第一接口方法获得第一响应对象;对所述第一响应对象进行处理后反馈至所述客户端。
在介绍了本申请基本原理后,下面,将参考附图对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。基于本申请的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部。
实施例一
如图1所示,本申请实施例提供了一种基于支持多种通讯协议的RPC服务端实现方法,所述方法应用于一种支持多种通讯协议的RPC服务端实现系统,所述系统包括RPC服务端和客户端,所述方法包括:
S100:所述客户端发起远程过程服务调用,采用HTTP通讯协议,发送XML/JSON类型报文给所述RPC服务端;
图2示出了本申请实施例提供的方法一种可能的流程示意图。具体而言,通讯协议是两个网络实体进行通信的基础,数据在网络上从一个实体传输到另一个实体,以字节流的形式传递到对端。协议就是通讯双方约定的交流语法、语义以及通信上的同步操作。应用层协议一般的形式有三种:定长协议、特殊结束符和协议头+payload模式。
在现有的RPC框架下,客户端一般采用HTTP协议和RPC协议向RPC服务提出远程服务调用请求。若客户端采用RPC通讯协议则直接调用RPC通讯组件进行服务。
若客户端采用HTTP通讯协议发起远程过程服务调用,则与RPC服务端的通信协议不同,则需要采用本申请实施例提供的方法,具体采用HTTP通讯协议,发送XML/JSON类型报文给所述RPC服务端发起远程服务调用请求。其中,XML/JSON类型报文均为通信传输中的报文格式,xml报文不但支持结构化数据的描述,还支持各类附加属性的定义,非常适合在网络中传输信息。json报文的数据格式完全独立于编程语言,不但能够表达寻常的键值对信息,还支持表达数组形式的各类参数,从而满足了复杂参数的传输要求。RPC服务端接收该XML/JSON类型报文后,对HTTP协议的远程调用请求进行处理。
S200:所述RPC服务端复用RPC通讯组件的逻辑,调用服务接口,接收所述客户端发送的XML/JSON类型报文;
具体而言,RPC服务端复用其内RPC通讯组件的逻辑,接收客户端发出的HTTP远程调用请求,并接收该HTTP远程调用请求内的XML/JSON类型报文。
S300:所述RPC服务端对所述XML/JSON类型报文进行转换处理,获得第一请求对象;
本申请实施例提供的方法中的步骤S300包括:
S310:所述RPC服务端接收所述客户端发送的XML/JSON类型报文,解析出所述XML/JSON类型报文中的URL;
S320:对所述XML/JSON类型报文中标识每笔业务的业务码与所述RPC服务端应用接口方法的URL做映射,获得第一映射关系;
S330:所述RPC服务端根据所述第一映射关系进行报文转换,将所述XML/JSON报文反序列化为所述第一请求对象。
具体而言,RPC服务端接收客户端发送的XML/JSON类型报文,对其进行解析,解析获得该HTTP远程调用请求中的统一资源定位器(Uniform Resource Locator,URL),URL是WWW的统一资源定位标志,即为指网络地址。
其中,PRC服务端在进行远程调用服务时,发布URL,每个URL对应一只交易,URL映射到每个服务的接口名及方法名上,完整的URL由HTTP请求中的协议+端口+请求URL构成,对应PRC服务端接口方法的Controller的URL。因此,每个URL与PRC服务端接口方法内的Controller的URL一一对应,形成上述的第一映射关系。
通过解析上述HTTP远程调用要求的URL得到XML/JSON类型报文中标识每笔业务的业务码,根据该第一映射关系,能够得到相应的PRC服务端的应用接口方法的URL。然后进行报文转换,通过将该HTTP远程调用要求的XML/JSON类型报文进行反序列化,转换为第一请求对象。
其中,序列化是将对象转换为字节序列的过程,而反序列化则相反,反序列化根据字节流中保存的对象状态及描述信息,重建对象,进而根据HTTP远程调用要求的XML/JSON类型报文得到转换前的第一请求对象。
本申请实施例通过采用RPC服务端应用接口方法的URL和业务进行一一对应构建第一映射关系,进而根据现有技术中RPC服务端无法处理的HTTP远程调用要求进行转换得到请求对象,进而使RPC服务端能够处理基于HTTP通信协议的远程调用要求。
S400:根据所述第一请求对象调用与所述第一请求对象对应的第一接口方法;
具体而言,获得第一请求对象后,即可根据第一请求对象调用RPC服务端内的与该第一请求对象对应的接口方法,对该请求进行处理。
S500:根据所述第一接口方法获得第一响应对象;
S600:对所述第一响应对象进行处理后反馈至所述客户端。
图3示出了本申请实施例提供的方法的一种可能的逻辑框图,具体而言,如图1-3所示,RPC服务端根据第一请求对象调用相应的接口方法后,对该第一请求对象进行处理,处理完成后得到第一响应对象,将该第一响应对象反馈至客户端,完成该HTTP远程调用请求的处理。
本申请实施例在RPC服务端增加接口适配模块,然后复用RPC通讯组件的逻辑,可以兼容各企业原有的通讯报文协议规则,支持HTTP通讯协议和RPC通讯协议,在进行开发通讯方式的过程中,RPC服务端只需开发一种逻辑即可,使得服务方应用一次开发便可支持客户端采用不同通讯协议的调用方式,减少服务端开发成本,达到同一RPC服务端可满足不同通讯协议远程调用请求、减少开发成本的技术效果。
本申请实施例提供的方法中的步骤S600包括:
S610:所述RPC服务端将所述第一响应对象序列化为XML/JSON响应报文;
S620:将所述XML/JSON响应报文返回给客户端。
具体而言,在对第一请求对象采用对应接口方法进行处理获得第一响应对象后,通过序列化的方法将第一响应对象转换为XML/JSON响应报文,然后返回给客户端,完成该HTTP远程调用请求的处理。
本申请实施例提供的方法还包括步骤S700,步骤S700包括:
S710:所述客户端发起远程过程服务调用,采用RPC通讯协议,发送RPC类型报文给所述RPC服务端;
S720:所述RPC服务端调用RPC服务接口,接收所述RPC类型报文,获得第二请求对象;
S730:根据所述第二请求对象调用与所述第二请求对象对应的第二接口方法;
S740:根据所述第二接口方法获得第二响应对象;
S750:对所述第二响应对象直接反馈至所述客户端。
如上述内容,若客户端采用RPC通讯协议则直接调用RPC通讯组件进行服务。具体而言,客户端采用RPC通讯协议发起远程过程服务调用,则其与PRC服务端的通讯协议相同,RPC服务端可直接调用RPC服务接口,接收所述RPC类型报文,进行反序列化,获得第二请求对象。然后即可根据第二请求对象调用PRC客户端内与其对应的第二接口方法,对第二请求对象进行处理,得到第二响应对象,然后将第二响应对象直接反馈至所述客户端,完成该PRC远程调用请求的处理。
本申请实施例中,通过对RPC服务端设置接口适配模块,在可处理不同通讯协议客户端发起的远程调用请求的前提下,也可对同为RPC通讯协议的客户端的请求进行处理,达到满足不同通讯协议远程调用请求、减少开发成本的技术效果。
本申请实施例提供的方法还包括步骤S800,步骤S800包括:
S810:所述RPC服务端构建第一接口和第二接口,其中,所述第一接口支持RPC通讯协议,所述第二接口支持HTTP协议;
S820:当所述客户端发起XML/JSON类型报文时,调用所述第二接口;
S830:当所述客户端发起RPC类型报文时,调用所述第一接口。
具体而言,在上述内容中,RPC服务端增加接口适配模块,当客户端使用HTTP通讯协议时,无需增加HTTP接口,直接复用RPC通讯组件的逻辑,调用服务接口。进一步地,本申请实施例直接在PC服务端直接开发两个接口分别支持不同通讯协议,一种接口支持RPC通讯协议,另一种支持HTTP协议,然后再分别调用服务接口。
当客户端发起HTTP协议的请求,发送XML/JSON类型报文时,调用所述第二接口。当客户端基于RPC协议发起请求时,调用所述第一接口,无需对RPC通讯组件的逻辑进行复用,可直接对两种不同通信协议客户端发起的请求进行响应处理,达到满足不同通讯协议客户端远程调用请求的技术效果。
综上所述,本申请实施例提供的方法在客户端发起远程过程服务调用时,若采用HTTP发起调用请求,则向RPC服务端发送XML/JSON类型报文,RPC服务端接收客户端发送的HTTP请求,解析出HTTP请求中的URL,然后对报文中标识每笔业务的业务码与服务端应用接口方法的URL做映射,进而根据映射对XML/JSON报文进行反序列化转换为请求对象,根据请求对象调用服务方对应的接口方法,根据接口方法将响应对象序列化为XML/JSON响应报文返回给客户端,完成调用。本申请实施例在RPC服务端增加接口适配模块,然后复用RPC通讯组件的逻辑,可以兼容各企业原有的通讯报文协议规则,支持HTTP通讯协议和RPC通讯协议,在进行开发通讯方式的过程中,RPC服务端只需开发一种逻辑即可,使得服务方应用一次开发便可支持客户端采用不同通讯协议的调用方式,减少服务端开发成本,还可在RPC服务端开发两个接口分别支持不同通讯协议,达到同一RPC服务端可满足不同通讯协议远程调用请求、减少开发成本的技术效果。
实施例二
基于与前述实施例中一种基于支持多种通讯协议的RPC服务端实现方法相同的发明构思,如图4所示,本申请实施例提供了一种基于支持多种通讯协议的RPC服务端实现系统,其中,所述系统包括:
第一发送单元11,所述第一发送单元11用于客户端发起远程过程服务调用,采用HTTP通讯协议,发送XML/JSON类型报文给RPC服务端;
第一处理单元12,所述第一处理单元12用于所述RPC服务端复用RPC通讯组件的逻辑,调用服务接口,接收所述客户端发送的XML/JSON类型报文;
第二处理单元13,所述第二处理单元13用于所述RPC服务端对所述XML/JSON类型报文进行转换处理,获得第一请求对象;
第三处理单元14,所述第三处理单元14用于根据所述第一请求对象调用与所述第一请求对象对应的第一接口方法;
第一获得单元15,所述第一获得单元15用于根据所述第一接口方法获得第一响应对象;
第二发送单元16,所述第二发送单元16用于对所述第一响应对象进行处理后反馈至所述客户端。
进一步的,所述系统还包括:
第三发送单元,所述第三发送单元用于所述客户端发起远程过程服务调用,采用RPC通讯协议,发送RPC类型报文给所述RPC服务端;
第四处理单元,所述第四处理单元用于所述RPC服务端调用RPC服务接口,接收所述RPC类型报文,获得第二请求对象;
第五处理单元,所述第五处理单元用于根据所述第二请求对象调用与所述第二请求对象对应的第二接口方法;
第六处理单元,所述第六处理单元用于根据所述第二接口方法获得第二响应对象;
第四发送单元,所述第四发送单元用于对所述第二响应对象直接反馈至所述客户端。
进一步的,所述系统还包括:
第一构建单元,所述第一构建单元用于所述RPC服务端构建第一接口和第二接口,其中,所述第一接口支持RPC通讯协议,所述第二接口支持HTTP协议;
第七处理单元,所述第七处理单元用于当所述客户端发起XML/JSON类型报文时,调用所述第二接口;
第八处理单元,所述第八处理单元用于当所述客户端发起RPC类型报文时,调用所述第一接口。
进一步的,所述系统还包括:
第九处理单元,所述第九处理单元用于所述RPC服务端接收所述客户端发送的XML/JSON类型报文,解析出所述XML/JSON类型报文中的URL;
第十处理单元,所述第十处理单元用于对所述XML/JSON类型报文中标识每笔业务的业务码与所述RPC服务端应用接口方法的URL做映射,获得第一映射关系;
第十一处理单元,所述第十一处理单元用于所述RPC服务端根据所述第一映射关系进行报文转换,将所述XML/JSON报文反序列化为所述第一请求对象。
进一步的,所述系统还包括:
第十二处理单元,所述第十二处理单元用于所述RPC服务端将所述第一响应对象序列化为XML/JSON响应报文;
第五发送单元,所述第五发送单元用于将所述XML/JSON响应报文返回给客户端。
示例性电子设备
下面参考图5来描述本申请实施例的电子设备,
基于与前述实施例中一种基于支持多种通讯协议的RPC服务端实现方法相同的发明构思,本申请实施例还提供了一种基于支持多种通讯协议的RPC服务端实现系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序,当所述程序被所述处理器执行时,使得系统以执行实施例一所述方法的步骤。
该电子设备300包括:处理器302、通信接口303、存储器301。可选的,电子设备300还可以包括总线架构304。其中,通信接口303、处理器302以及存储器301可以通过总线架构304相互连接;总线架构304可以是外设部件互连标(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry Standardarchitecture,简称EISA)总线等。所述总线架构304可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器302可以是一个CPU,微处理器,ASIC,或一个或多个用于控制本申请方案程序执行的集成电路。
通信接口303,使用任何收发器一类的系统,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN),有线接入网等。
存储器301可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable Programmable read-only memory,EEPROM)、只读光盘(compactdiscread-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线架构304与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器301用于存储执行本申请方案的计算机执行指令,并由处理器302来控制执行。处理器302用于执行存储器301中存储的计算机执行指令,从而实现本申请上述实施例提供的一种基于支持多种通讯协议的RPC服务端实现方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
本申请实施例提供的方法在客户端发起远程过程服务调用时,若采用HTTP发起调用请求,则向RPC服务端发送XML/JSON类型报文,RPC服务端接收客户端发送的HTTP请求,解析出HTTP请求中的URL,然后对报文中标识每笔业务的业务码与服务端应用接口方法的URL做映射,进而根据映射对XML/JSON报文进行反序列化转换为请求对象,根据请求对象调用服务方对应的接口方法,根据接口方法将响应对象序列化为XML/JSON响应报文返回给客户端,完成调用。本申请实施例在RPC服务端增加接口适配模块,然后复用RPC通讯组件的逻辑,可以兼容各企业原有的通讯报文协议规则,支持HTTP通讯协议和RPC通讯协议,在进行开发通讯方式的过程中,RPC服务端只需开发一种逻辑即可,使得服务方应用一次开发便可支持客户端采用不同通讯协议的调用方式,减少服务端开发成本,达到同一RPC服务端可满足不同通讯协议远程调用请求、减少开发成本的技术效果。
本领域普通技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也不表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个、种),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程系统。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑系统,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算系统的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于终端中。可选地,处理器和存储媒介也可以设置于终端中的不同的部件中。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请意图包括这些改动和变型在内。

Claims (7)

1.一种支持多种通讯协议的RPC服务端实现方法,其中,所述方法应用于一种支持多种通讯协议的RPC服务端实现系统,所述系统包括RPC服务端和客户端,所述方法包括:
所述客户端发起远程过程服务调用,采用HTTP通讯协议,发送XML/JSON类型报文给所述RPC服务端;
所述RPC服务端复用RPC通讯组件的逻辑,调用服务接口,接收所述客户端发送的XML/JSON类型报文;
所述RPC服务端对所述XML/JSON类型报文进行转换处理,获得第一请求对象;
根据所述第一请求对象调用与所述第一请求对象对应的第一接口方法;
根据所述第一接口方法获得第一响应对象;
对所述第一响应对象进行处理后反馈至所述客户端。
2.如权利要求1所述的方法,其中,所述客户端发起远程过程服务调用后,还包括:
所述客户端发起远程过程服务调用,采用RPC通讯协议,发送RPC类型报文给所述RPC服务端;
所述RPC服务端调用RPC服务接口,接收所述RPC类型报文,获得第二请求对象;
根据所述第二请求对象调用与所述第二请求对象对应的第二接口方法;
根据所述第二接口方法获得第二响应对象;
对所述第二响应对象直接反馈至所述客户端。
3.如权利要求2所述的方法,其中,所述方法还包括:
所述RPC服务端构建第一接口和第二接口,其中,所述第一接口支持RPC通讯协议,所述第二接口支持HTTP协议;
当所述客户端发起XML/JSON类型报文时,调用所述第二接口;
当所述客户端发起RPC类型报文时,调用所述第一接口。
4.如权利要求1所述的方法,其中,所述RPC服务端对所述XML/JSON类型报文进行转换处理,获得第一请求对象,包括:
所述RPC服务端接收所述客户端发送的XML/JSON类型报文,解析出所述XML/JSON类型报文中的URL;
对所述XML/JSON类型报文中标识每笔业务的业务码与所述RPC服务端应用接口方法的URL做映射,获得第一映射关系;
所述RPC服务端根据所述第一映射关系进行报文转换,将所述XML/JSON报文反序列化为所述第一请求对象。
5.如权利要求1所述的方法,其中,所述对所述第一响应对象进行处理后反馈至所述客户端,包括:
所述RPC服务端将所述第一响应对象序列化为XML/JSON响应报文;
将所述XML/JSON响应报文返回给客户端。
6.一种基于支持多种通讯协议的RPC服务端实现系统,其中,所述系统包括:
第一发送单元,所述第一发送单元用于客户端发起远程过程服务调用,采用HTTP通讯协议,发送XML/JSON类型报文给RPC服务端;
第一处理单元,所述第一处理单元用于所述RPC服务端复用RPC通讯组件的逻辑,调用服务接口,接收所述客户端发送的XML/JSON类型报文;
第二处理单元,所述第二处理单元用于所述RPC服务端对所述XML/JSON类型报文进行转换处理,获得第一请求对象;
第三处理单元,所述第三处理单元用于根据所述第一请求对象调用与所述第一请求对象对应的第一接口方法;
第一获得单元,所述第一获得单元用于根据所述第一接口方法获得第一响应对象;
第二发送单元,所述第二发送单元用于对所述第一响应对象进行处理后反馈至所述客户端。
7.一种基于支持多种通讯协议的RPC服务端实现系统,其中,所述系统包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序,当所述程序被所述处理器执行时,使系统以执行如权利要求1-5任一项所述方法的步骤。
CN202111506725.4A 2021-12-10 2021-12-10 一种基于支持多种通讯协议的rpc服务端实现方法 Pending CN114257576A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111506725.4A CN114257576A (zh) 2021-12-10 2021-12-10 一种基于支持多种通讯协议的rpc服务端实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111506725.4A CN114257576A (zh) 2021-12-10 2021-12-10 一种基于支持多种通讯协议的rpc服务端实现方法

Publications (1)

Publication Number Publication Date
CN114257576A true CN114257576A (zh) 2022-03-29

Family

ID=80794614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111506725.4A Pending CN114257576A (zh) 2021-12-10 2021-12-10 一种基于支持多种通讯协议的rpc服务端实现方法

Country Status (1)

Country Link
CN (1) CN114257576A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174649A (zh) * 2022-06-20 2022-10-11 浪潮卓数大数据产业发展有限公司 一种跨机房rpc调用方法、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107835178A (zh) * 2017-11-13 2018-03-23 北京奇艺世纪科技有限公司 一种多协议服务通信方法、装置以及电子设备
CN110191164A (zh) * 2019-05-20 2019-08-30 中国工商银行股份有限公司 分布式服务接入系统及方法
CN110430275A (zh) * 2019-08-09 2019-11-08 中国工商银行股份有限公司 数据处理方法、装置、系统、计算设备以及介质
CN113407366A (zh) * 2021-07-15 2021-09-17 北京字节跳动网络技术有限公司 一种远程调用方法及装置以及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107835178A (zh) * 2017-11-13 2018-03-23 北京奇艺世纪科技有限公司 一种多协议服务通信方法、装置以及电子设备
CN110191164A (zh) * 2019-05-20 2019-08-30 中国工商银行股份有限公司 分布式服务接入系统及方法
CN110430275A (zh) * 2019-08-09 2019-11-08 中国工商银行股份有限公司 数据处理方法、装置、系统、计算设备以及介质
CN113407366A (zh) * 2021-07-15 2021-09-17 北京字节跳动网络技术有限公司 一种远程调用方法及装置以及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174649A (zh) * 2022-06-20 2022-10-11 浪潮卓数大数据产业发展有限公司 一种跨机房rpc调用方法、设备及介质

Similar Documents

Publication Publication Date Title
CN108021710B (zh) 一种动态接口转换方法、装置、终端设备及存储介质
US9270730B2 (en) Providing an interface to multiple cloud computing systems
WO2019047911A1 (zh) 一种物联网资源订阅的方法、设备和系统
US7904111B2 (en) Mobile exchange infrastructure
CN105763619B (zh) 客户端与服务端进行通讯的方法及装置
CN110413418B (zh) 缓存同步装置及方法,缓存同步系统、电子设备
JP2003525492A (ja) 高速文書変換のためのシステムおよび方法
KR101602099B1 (ko) 사물인터넷에서 레스트 기반의 서비스 연동 시스템 및 그 방법
Aijaz et al. Enabling high performance mobile web services provisioning
CN110704200A (zh) 转换调用接口的方法和装置
CN107332854B (zh) 一种报文序列化协商方法及服务提供设备
CN114257576A (zh) 一种基于支持多种通讯协议的rpc服务端实现方法
US20070156839A1 (en) Web services for wireless pervasive devices
US7818431B2 (en) Efficient exchange of service requests and responses
US7908397B1 (en) Application server gateway technology
CN112732457B (zh) 图像传输方法、装置、电子设备和计算机可读介质
CN113992641A (zh) 一种数据处理方法、装置、设备及存储介质
CN109669793B (zh) 中间件进程内对象调用方法
CN113918245A (zh) 一种数据调用方法、装置、设备及计算机可读存储介质
CN113722115A (zh) 调用接口的方法、装置、设备和计算机可读介质
Jin Research on the model of enterprise application integration with web services
CN112214333B (zh) 一种应用基于http协议的网页与本地应用通信协议的方法
US20230412466A1 (en) Managing cloud-native virtual network functions
JP5548433B2 (ja) Webサービス基盤システム
EP1715646B1 (en) System and method for connecting applications to heterogeneous backend servers via a gateway server

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