一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种引用参数的传输方法及远程过程调用方法与流程

2022-03-01 18:09:45 来源:中国专利 TAG:


1.本发明涉及跨操作系统程序进程间的通信技术领域,具体地,涉及一种引用参数的传输方法及远程过程调用方法。


背景技术:

2.远程过程调用,即remote procedure call,简称rpc,是指一种是一台主机上的程序能够调用其他主机上方法的机制。具体来说,一个典型的远程过程调用的具体过程,例如,可以包括:计算机a上的进程,调用另外一台计算机b上的进程,其中计算机a上的调用进程被挂起,而计算机b上的被调用进程开始执行,当值返回给计算机a时,计算机a进程继续执行。其中,调用方(例如前面述及的计算机a)可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息。
3.虽然rpc是需要调用远端主机上的方法/函数等,但是从根本上来说,rpc也是要使远程过程调用具有与本地过程调用相同的形式。稍微不同于本地过程调用的是,rpc并不要求操作系统提供数据,而是在远程过程调用过程中,是将参数打包成消息发送到远端的作为被调用方主机。
4.而要实现远程过程调用,就需要考虑如何传递参数。传递引用参数并不是一个简单的消息传递过程。单纯地传递参数的引用(例如,包括指针)是完全没有意义的,因为仅将引用地址传递给远端主机,其指向的内存位置可能与远程操作系统上的完全不同。若要实现一个有效的引用参数传递,则其过程至少包括:客户端(调用方主机)发送参数的副本到远端,并复制到远程操作系统内存中,以及一系列相关操作,方能实现客户端本地参数被服务端有效地引用。
5.一般来说,上述的引用参数传输过程的实现,是通过tcp协议或基于tcp的相关通信协议/通信框架实现的。然而,传统的基于tcp/ip协议的跨端通信,在数据包处理过程中,往往要经过操作系统及其他软件层,需要占用大量的服务器资源和内存总线带宽,数据在系统内存、处理器缓存和网络控制器缓存之间来回进行复制移动,给服务器的cpu和内存造成了沉重负担。尤其是网络带宽、处理器速度与内存带宽三者的严重"不匹配性",更加剧了网络延迟效应。若是需要传递的引用参数,其通信量不大时,前面述及的通信方案的缺点对rpc效率的限制或并不明显;但引用参数的通信量较大时,无疑将制约整个rpc的效率。


技术实现要素:

6.有鉴于此,本发明提供一种引用参数的传输方法及远程过程调用方法。
7.一方面,本发明实施例提供一种引用参数的传输方法,该方法应用于远程过程调用,即rpc,过程中的引用参数传递。
8.上述的引用参数传输方法,包括:在远程过程调用的过程中,当需要向远程服务端传入客户端的引用参数时,两端生成对应引用参数的rdma通道元信息;其中,所述rdma通道元信息主要包括rdma通道信使元信息和注册内存地址等;通过tcp通道跨端传输所述的
rdma通道信使元信息;所述的rdma通道信使元信息主要包括远程内存识别标志等;其中的远程内存识别标志,被提供给远程主机节点的通道适配器(hca),用来在rdma操作期间允许远程进程访问本地的系统内存;在rdma操作期间,通过注册内存地址和远程内存识别标志形成rdma通道以实现远端内存的读/写;根据所述rdma通道元信息在传输管理层提供额外的rdma通道跨端传输引用参数。
9.在第一方面的各实施例中,其中的一些作为一种可能的实现方式,其所提供的参数传输方法中,当远程服务端的引用参数为多个时,对应引用参数,所述的rdma通道信使元信息,还包括引用参数编号,以便于跨端传输前后识别引用参数及基于此结合两端、特别是远程服务端的需要进行有效地通信管理。
10.在第一方面的各实施例中,其中的一些作为一种可能的实现方式,其所提供的参数传输方法中,在通过所述rdma通道传输完所述引用参数后,还可通过额外的消息经tcp通道通知对端传输结束以提高远程过程调用两端的响应速度。
11.在第一方面的各实施例中,其中的一些作为一种可能的实现方式,考虑到rdma通信的开销及通信收益等,其所提供的参数传输方法中,对于小于预设数据长度的引用参数,可仍通过tcp通道传输。而该预设长度为经验值,可通过多次实验摸索能够得到较高通信效率收益的值。
12.另一方面,本发明实施例提供一种远程过程调用的方法,即rpc,通过使客户端传入本地参数(即引用参数)时使其通过更为高效的rdma通道传输,以期获得更高的效率。
13.结合第一方面,基于其提供的引用参数传输方法,上述的远程过程调用方法包括:客户端本地进程向服务端提出远程调用注册请求,服务端注册并启动;调用远程服务端进程,传入客户端本地参数,也即引用参数;而后通过在远程服务端执行所述进程和打印执行结果;并通过网络传输返回结果;
14.其中,所述的客户端本地参数从客户端到服务端的传输过程,执行第一方面述及的引用参数传输方法。
15.在第二方面的各实施例中,其中的一些作为一种可能的实现方式,其所提供的远程过程调用方法中,若一次rpc过程中远程服务端请求客户端传入多个引用参数参与的远程过程执行,则使所述的rdma通道元信使信息包括引用参数编号,所述引用参数编号一一对应所述引用参数,以识别所述引用参数及基于此结合两端、特别是远程服务端的需要进行有效地通信管理。
16.再一方面,本发明实施例提供一种装置,用于运行远程过程调用的客户端程序。
17.结合上述各方面,上述的装置,包括:处理器、存储器和rdma网卡;其中,所述的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程序时,能够执行第一方面述及的引用参数传输方法或第二方面述及的远程过程调用方法中客户端的操作;所述的rdma网卡则为所述方法中的rdma传输提供物理通道。
18.又一方面,本发明实施例提供一种装置,用于运行远程过程调用的服务端程序。
19.结合上述各方面,上述的装置,包括:处理器、存储器和rdma网卡;其中,所述的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程序时,能够执行第一方面述及的引用参数传输方法或第二方面述及的远程过程调用方法中服务端的操作;所述的rdma网卡则为所述方法中的rdma传输提供物理通道。
20.又一方面,本发明实施例提供一种远程跨进程通信系统,能够通过执行远程过程调用的方式进行远程跨进程通信。
21.结合上述各方面,上述的远程跨进程通信系统,包括:第三方面述及的客户端装置以及与之对应的第四方面述及的服务端装置。
22.又一方面,本发明实施例提供一种计算机可读存储介质。
23.上述的计算机可读存储介质中存储有用于数据通信的代码,其中包括:
24.用于执行第一方面述及的引用参数传输方法或第二方面述及的远程过程调用方法的指令;或,执行第一方面述及的引用参数传输方法或第二方面述及的远程过程调用方法中客户端/服务端的操作的指令。
25.上述诸实施例提供的引用参数的传输方法、以及基于此的远程过程调用的方法和客户端装置、服务器装置、远程跨进程通信系统和相关的计算机可读存储介质,主要是在远程过程调用的执行过程中,使其中的客户端向远程服务端传入本地参数(即引用参数)时,使其通过额外的rdma通道传输,以克服通信瓶颈,提高远程跨端、跨进程通信效率,进而提高整个运行效率。
26.下面通过附图、具体实施例对本发明的技术方案做进一步的描述。
附图说明
27.为更加清楚地说明本发明实施例或现有技术中的技术方案,下面将对本发明中一部分实施例或现有技术描述中涉及的附图做简单介绍。
28.图1为现有技术中远程过程调用的一种实现的架构示意图;
29.图2为本发明一实施例提供的一种远程过程调用方法涉及的架构示意图。
具体实施方式
30.下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.一般来说,远程过程调用的具体实现,无外乎例如图1的一种实现方式所示,除了必要的在调用方主机端的调用代理(即涉及请求调用等)和被调用方主机端的注册管理(即涉及被调用方端的进程唤起等),在消息传输层面,为了便于管理,也可以如图1中所示,内抽象成消息管理层和传输管理层,而实现传输则主要是通过tcp协议或基于tcp的相关通信协议/通信框架实现的。前面提到,虽然上述通信框架面对普遍较小的控制消息时还尚无压力,但随着rpc在远程进程间通信应用的越来越广泛,其间涉及的引用参数数据长度和数据量都越来越大,不免将成为瓶颈。
32.于是,本发明提供一种引用参数的传输方法及远程过程调用方法。
33.以下为本发明的一些优选实施例。其中,
34.本发明的一些优选实施例提供一种引用参数的传输方法,该方法应用于远程过程调用,即rpc,过程中的引用参数传递。该涉及远程过程调用方法中的引用参数传输方法,包括:在远程过程调用的过程中,当需要向远程服务端传入客户端的引用参数时,两端分别调
用注册内存等函数,生成对应引用参数的rdma通道元信息;其中,rdma通道元信息主要包括rdma通道信使元信息(用于沟通两端,保障rdma通道的形成)和注册内存地址等;通过tcp通道跨端传输所述的rdma通道信使元信息;所述的rdma通道信使元信息主要包括远程内存识别标志等;其中的远程内存识别标志,被提供给远程主机节点的通道适配器(hca),用来在rdma操作期间允许远程进程访问本地的系统内存;在rdma操作期间,通过注册内存地址和远程内存识别标志形成rdma通道以实现远端内存的读/写;根据所述rdma通道元信息在传输管理层提供额外的rdma通道跨端传输引用参数。
35.在上述优选实施例中的一些中,还提供一种优选的实现方式,其所提供的参数传输方法中,当远程服务端的引用参数为多个时,对应引用参数,所述的rdma通道信使元信息,还可以包括引用参数编号,以便识别所述引用参数以及在此基础上利用其在两端,特别是远程服务端进行发送/接收、本地传入进程等的管理。
36.在上述优选实施例中的一些中,还提供一种优选的实现方式,其所提供的参数传输方法中,在通过所述rdma通道传输完所述引用参数后,还可通过额外的消息经tcp通道通知对端传输结束以提高远程过程调用两端的响应速度。
37.在上述优选实施例中的一些中,还提供一种优选的实现方式,考虑到rdma通信的开销及通信收益等,其所提供的参数传输方法中,对于小于预设数据长度的引用参数,可仍通过tcp通道传输。而该预设长度为经验值,可通过多次实验摸索能够得到较高通信效率收益的值。当然,不同的场景下,其设定值大小也不同。
38.本发明的另一些优选实施例提供一种远程过程调用的方法,即rpc。该远程过程调用方法包括:客户端本地进程向服务端提出远程调用注册请求,服务端注册并启动;调用远程服务端进程,传入客户端本地参数,也即引用参数;而后通过在远程服务端执行所述进程和打印执行结果;并通过网络传输返回结果;
39.其中,所述的客户端本地参数从客户端到服务端的传输过程,执行上述优选实施例述及的引用参数传输方法。
40.在上述优选实施例中的一些中,还提供一种优选的实现方式,其所提供的远程过程调用方法中,若一次rpc过程中远程服务端请求客户端传入多个引用参数参与的远程过程执行,则使所述的rdma通道元信使信息包括引用参数编号,所述引用参数编号一一对应所述引用参数,以识别所述引用参数及基于此结合两端、特别是远程服务端的需要进行有效地通信管理。
41.通过上述实施例的描述,结合附图,我们不难发现,作为本发明一实施例,图2中展示的远程过程调用的一种实现涉及的架构中,其中传输管理层额外的rdma通道,显然能够大幅提高引用参数的传输效率。
42.本发明的再一些优选实施例提供一种rpc客户端装置,其上运行远程过程调用的客户端程序,该装置,包括:处理器、存储器和rdma网卡;其中,所述的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程序时,能够执行上述实施例中的引用参数传输方法或远程过程调用方法中客户端的操作;所述的rdma网卡则为所述方法中的rdma传输提供物理通道。
43.本发明的又一些优选实施例提供一种rpc服务端装置,其上运行远程过程调用的服务端程序,该装置,包括:处理器、存储器和rdma网卡;其中,所述的存储器存储有可在所
述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程序时,能够执行上述实施例中的引用参数传输方法或远程过程调用方法中服务端的操作;所述的rdma网卡则为所述方法中的rdma传输提供物理通道。
44.本发明的又一些优选实施例提供一种远程跨进程通信系统,能够通过执行远程过程调用的方式进行远程跨进程通信。该远程跨进程通信系统由上述实施例中的客户端装置以及与之对应的服务端装置组成。
45.本发明的又一些优选实施例提供一种计算机可读存储介质。该计算机可读存储介质中存储有用于数据通信的代码,其中包括:用于执行上述实施例述及的引用参数传输方法或远程过程调用方法的指令;或仅包括:用于执行上述实施例述及的引用参数传输方法或远程过程调用方法中客户端或者服务端的操作的指令。
46.以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献