远程过程调用的处理方法、装置、系统及电子设备制造方法及图纸

技术编号:15080480 阅读:45 留言:0更新日期:2017-04-07 12:37
本申请公开了一种远程过程调用的处理方法和装置、一种远程过程调用的方法和装置以及一种远程过程调用的处理系统和一种电子设备。其中所述远程过程调用的处理方法包括:接收调用进程发送的对应特定服务进程的服务请求;将所述服务请求存储到所述服务进程的待处理请求队列中;当处理到所述服务请求时,操作系统根据所述服务请求,执行所述服务进程,获取进程结果;将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。采用本申请提供的方法,使得实现远程过程调用时,实际的I/O读写请求进程不会发生阻塞,操作系统无需遍历所有的用户进程,只需要将数据拷贝给监听该事件的用户进程即可,从而达到提升远程过程调用的性能的效果。

【技术实现步骤摘要】

本申请涉及网络通讯
,具体涉及一种远程过程调用的处理方法和装置。本申请同时涉及一种远程过程调用的方法和装置,以及一种远程过程调用的处理系统和一种电子设备。
技术介绍
当前分布式计算、WebServices盛行天下,Sun公司提出RPC协议(RemoteProcedureCallProtocol,远程过程调用协议),用于实现远程过程调用。RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP(TransmissionControlProtocol,传输控制协议)或UDP(UserDatagramProtocol,用户数据报协议),为通信程序之间携带信息数据。在OSI(OpenSystemInterconnection,开放式系统互联)网络通信模型中,RPC跨越了传输层和应用层,使得开发包括网络分布式多程序在内的应用程序更加容易。采用RPC协议实现远程过程调用,包括两个角色:RPC客户端和RPC服务器。RPC客户端通过Internet连接到RPC服务器程序并执行远程过程调用。在远程过程调用的过程中,不可避免的涉及到I/O(输入/输出)操作问题。在网络连接的薄弱环节I/O通信方面,要求能够实现无堵塞地、流畅地进行数据读写。在服务器面对几百个甚至更多的客户端同时发出连接信息的情况下,要求其能够保持高性能的并发处理机制,迅速地完成大量并发请求的处理和发送任务。目前,实现远程过程调用最常用的I/O模型是同步I/O模型。同步I/O模型的优点为:调用程序在等待I/O请求完成时不需要使用任何中央处理单元。针对远程过程调用,业界提供两种同步I/O模型:BIO(同步阻塞I/O模型)和NIO(同步非阻塞模型)。然而,同步I/O模型存在以下缺点:1)必然会发生堵塞。I/O操作过程包括两个步骤:发起I/O请求步骤和实际的I/O操作步骤。采用BIO模型,当调用请求发出之后,调用程序就会阻塞,直到请求满足为止。采用NIO模型,在实际的I/O操作时,服务程序发生阻塞,直到请求满足为止。2)存在最大并发数的限制。以Linux为例,最大并发数的限制为1024。存在最大并发数的限制的原因在于:一个进程所打开的文件描述符是有限制的。3)每次有I/O响应时,服务端的操作系统需要遍历所有监听事件的用户进程,监听的用户进程越多,性能越低。综上所述,采用RPC协议实现远程过程调用时,现有技术存在实际的I/O读写请求进程必然发生阻塞的问题。
技术实现思路
本申请提供一种远程过程调用的处理方法和装置,以解决现有技术实现远程过程调用时,存在实际的I/O读写请求进程必然发生阻塞的问题。本申请另外提供一种远程过程调用的方法和装置,以及一种远程过程调用的处理系统和一种电子设备。本申请提供一种远程过程调用的处理方法,包括:接收调用进程发送的对应特定服务进程的服务请求;将所述服务请求存储到所述服务进程的待处理请求队列中;当处理到所述服务请求时,操作系统根据所述服务请求,执行所述服务进程,获取进程结果;将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。可选的,所述服务请求包括读取请求或写入请求。可选的,在所述接收调用进程发送的对应特定服务进程的服务请求之前,还包括:启动所述服务进程。可选的,还包括:通过所述操作系统内核的线程池,按照请求顺序依次处理所述待处理指令队列中的每一个所述服务请求;所述服务请求共享所述线程池资源。可选的,在所述接收调用进程发送的对应特定服务进程的服务请求之前,还包括:建立所述线程池;将所述服务进程绑定到所述线程池。可选的,在所述操作系统根据所述服务请求,执行所述服务进程,获取进程结果之前,还包括:对所述服务请求进行解码。可选的,所述接收调用进程发送的对应特定服务进程的服务请求,采用如下方式:通过预先启动的所述服务进程的监听器,接收所述调用进程发送的所述服务请求。可选的,通过返回的Future模式,将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。可选的,通过预先注册的完成处理器,将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间;相应的,在所述执行所述服务进程,获取进程结果之后,还包括:通过所述操作系统内核的线程池,调用所述完成处理器。可选的,所述操作系统采用Linux系统,通过Epoll模型支持所述远程过程调用的处理方法;或者,所述操作系统采用Windows系统,通过IOCP模型支持所述远程过程调用的处理方法。可选的,所述调用进程基于TCP协议的传输通道向所述服务进程发送所述服务请求。相应的,本申请提供一种远程过程调用的处理装置,包括:接收单元,用于接收调用进程发送的对应特定服务进程的服务请求;第一存储单元,用于将所述服务请求存储到所述服务进程的待处理请求队列中;执行单元,用于当处理到所述服务请求时,操作系统根据所述服务请求,执行所述服务进程,获取进程结果;第二存储单元,用于将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。可选的,还包括:启动单元,用于启动所述服务进程。可选的,还包括:轮询单元,用于通过所述操作系统内核的线程池,按照请求顺序依次处理所述待处理指令队列中的每一个所述服务请求;所述服务请求共享所述线程池资源。可选的,还包括:建立单元,用于建立所述线程池;绑定单元,用于将所述服务进程绑定到所述线程池。可选的,还包括:解码单元,用于对所述服务请求进行解码。可选的,通过预先注册的完成处理器,将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间;相应的,还包括:调用单元,用于通过所述操作系统内核的线程池,调用所述完成处理器。此外,本申请还提供一种远程过程调用的方法,包括:向服务器端发送特定服务进程的服务请求;接收所述服务进程回送的读取服务结果的通知;读取所述服务结果。可选的,在所述向服务器端发送特定服务进程的服务请求之前,还包括:与所述服务进程建立连接。可选的,所述服务请求包括读取请求或写入请求。可选的,基于TCP协议的传输通道向所述服务进程发送所述服务请求。相应的,本申请提供一种远程过程调用的装置,包括:发送单元,用于向服务器端发送特定服务进程的服务请求;接收单元,用于接收所述服务进程回送的读取服务结果的通知;读取单元,用于读取所述服务结果。包括进程参数的调用指令。可选的,还包括:连接单元,用于与所述服务进程建立连接。此外,本申请还提供一种远程过程调用的处理系统,包括:根据上述任一项所述的远程过程调用的处理装置;以及根据上述任一项所述的远程过程调用的装置。此外,本申请还提供一种电子设备,所述电子设备包括:显示器;处理器;以及存储器,用于存储远程过程调用的处理装置,所述远程过程调用的处理装置被所述处理器执行时,包括如下步骤:接收调用进程发送的对应特定服务进程的服务请求;将所述服务请求存储到所述服务进程的待处理请求队列中;当处理到所述服务请求时,操作系统根据所述服务请求,执行所述服务进程,获取进程结果;将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。可选的,所述存储远程过程调用的处理装置包括:接收单元,用于接收本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/201510167370.html" title="远程过程调用的处理方法、装置、系统及电子设备原文来自X技术">远程过程调用的处理方法、装置、系统及电子设备</a>

【技术保护点】
一种远程过程调用的处理方法,其特征在于,包括:接收调用进程发送的对应特定服务进程的服务请求;将所述服务请求存储到所述服务进程的待处理请求队列中;当处理到所述服务请求时,操作系统根据所述服务请求,执行所述服务进程,获取进程结果;将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。

【技术特征摘要】
1.一种远程过程调用的处理方法,其特征在于,包括:接收调用进程发送的对应特定服务进程的服务请求;将所述服务请求存储到所述服务进程的待处理请求队列中;当处理到所述服务请求时,操作系统根据所述服务请求,执行所述服务进程,获取进程结果;将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。2.根据权利要求1所述的远程过程调用的处理方法,其特征在于,所述服务请求包括读取请求或写入请求。3.根据权利要求1所述的远程过程调用的处理方法,其特征在于,在所述接收调用进程发送的对应特定服务进程的服务请求之前,还包括:启动所述服务进程。4.根据权利要求1所述的远程过程调用的处理方法,其特征在于,还包括:通过所述操作系统内核的线程池,按照请求顺序依次处理所述待处理指令队列中的每一个所述服务请求;所述服务请求共享所述线程池资源。5.根据权利要求4所述的远程过程调用的处理方法,其特征在于,在所述接收调用进程发送的对应特定服务进程的服务请求之前,还包括:建立所述线程池;将所述服务进程绑定到所述线程池。6.根据权利要求1所述的远程过程调用的处理方法,其特征在于,在所述操作系统根据所述服务请求,执行所述服务进程,获取进程结果之前,还包括:对所述服务请求进行解码。7.根据权利要求1所述的远程过程调用的处理方法,其特征在于,所述接收调用进程发送的对应特定服务进程的服务请求,采用如下方式:通过预先启动的所述服务进程的监听器,接收所述调用进程发送的所述服务请求。8.根据权利要求1所述的远程过程调用的处理方法,其特征在于,通过返回的Future模式,将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。9.根据权利要求1所述的远程过程调用的处理方法,其特征在于,通过预
\t先注册的完成处理器,将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间;相应的,在所述执行所述服务进程,获取进程结果之后,还包括:通过所述操作系统内核的线程池,调用所述完成处理器。10.根据权利要求1所述的远程过程调用的处理方法,其特征在于,所述操作系统采用Linux系统,通过Epoll模型支持所述远程过程调用的处理方法;或者,所述操作系统采用Windows系统,通过IOCP模型支持所述远程过程调用的处理方法。11.根据权利要求1所述的远程过程调用的处理方法,其特征在于,所述调用进程基于TCP协议的传输通道向所述服务进程发送所述服务请求。12.一种远程过程调用的处理装置,其特征在于,包括:接收单元,用于接收调用进程发送的对应特定服务进程的服务请求;第一存储单元,用于将所述服务请求存储到所述服务进程的待处理请求队列中;执行单元,用于当处理到所述服务请求时,操作系统根据所述服务请求,执行所述服务进程,获取进程结果;第二存储单元,用于将所述进程结果从所述操作系统的内核复制到所述调用进程的存储空间。13.根据权利要求12所述的远程过程调用的处理装置,其特征在于,还包括:启动单元,用于启动所述服...

【专利技术属性】
技术研发人员:何杰
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1