[发明专利]远程过程调用方法和系统、客户端及服务器有效
申请号: | 201110351237.0 | 申请日: | 2011-11-08 |
公开(公告)号: | CN103095785A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 连博识 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 远程 过程 调用 方法 系统 客户端 服务器 | ||
技术领域
本申请涉及网络技术领域,特别是涉及一种远程过程调用方法和系统、一种客户端和一种服务器。
背景技术
RPC(Remote Procedure Call,远程过程调用)是一种使用RPC协议,通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的技术。其中,RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
通常,RPC采用客户机/服务器模式,请求程序就是一个客户机,而服务提供程序就是一个服务器。在进行RPC时,首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息;在服务器端,进程保持睡眠状态直到调用信息到达为止,当一个调用信息到达时,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息;最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
运行时,一次客户机对服务器的RPC调用,其内部操作大致包括如下步骤:调用客户端句柄,执行传送参数;调用本地系统内核发送网络消息;消息传送到远程主机;服务器句柄得到消息并取得参数;执行远程过程;将执行结果返回服务器句柄;服务器句柄返回结果,调用远程系统内核;消息传回本地主机;客户句柄由内核接收消息;客户接收句柄返回的数据。
上述RPC过程中,因为接收返回数据的接口设计实现问题,针对一次请求,服务端会全量返回调用数据。然而,全量返回的数据,经常只有部分被使用,从而造成调用数据传输和利用的极大浪费。
发明内容
本申请提供一种远程过程调用方法和系统、一种客户端和一种服务器,以解决RPC过程中,数据传输和利用浪费的问题。
为了解决上述问题,本申请公开了一种远程过程调用方法包括:客户端向服务器端发送RPC的调用信息,所述调用信息中携带有标量参数;所述客户端接收所述服务器端返回的答复信息,所述答复信息中包括:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定并返回的所述调用信息所调用的数据。
优选地,所述标量参数通过以下方式获得:所述客户端对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;对进行了所述标量替换操作后的所述信息的内容进行分析,获取所述本次RPC需要调用的标量和不需要调用的标量;将所述需要调用的标量或不需要调用的标量设置为所述调用信息的标量参数。
优选地,当将所述不需要调用的标量作为所述调用信息的标量参数时,所述客户端接收的所述答复信息为:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为不需要返回的标量数据后,对所述答复信息中不需要返回的标量数据进行有损压缩或删除处理后的答复信息。
优选地,当将所述需要调用的标量作为所述调用信息的标量参数时,所述客户端接收的所述答复信息为:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定所述标量参数所指示的标量数据为需要返回的标量数据后,对所述答复信息中包含的除所述需要返回的标量数据外的,其它不需要返回的标量数据进行有损压缩或删除处理后的答复信息。
优选地,所述标量参数设置于所述调用信息的信息头。
为了解决上述问题,本申请还公开了一种客户端,包括:发送模块,用于向服务器端发送远程过程调用RPC的调用信息,所述调用信息中携带有标量参数;接收模块,用于接收所述服务器端返回的答复信息,所述答复信息中包括:由所述服务器端根据接收的所述调用信息中的所述标量参数,确定并返回的所述调用信息所调用的数据。
优选地,所述客户端还包括:标量替换模块,用于对本次RPC的请求信息所要求返回的信息的内容进行标量替换操作;获取模块,用于对进行了所述标量替换操作后的所述信息的内容进行分析,获取所述本次RPC需要调用的标量和不需要调用的标量;设置模块,用于将所述需要调用的标量或不需要调用的标量设置为所述调用信息的标量参数。
优选地,所述标量参数位于所述调用信息的信息头。
相应地,本申请还提供了对应于上述客户端的服务器,包括:接收模块,用于接收客户端发送的远程过程调用RPC的调用信息,所述调用信息中携带有标量参数;确定模块,用于根据接收的所述调用信息中的所述标量参数,确定所述调用信息所调用的数据;返回模块,用于向所述客户端返回答复信息,所述答复信息中包括所述确定模块确定的所述调用信息所调用的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110351237.0/2.html,转载请声明来源钻瓜专利网。