For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,学习计算机编程开发技术的人也越来越多,而本文我们就来了解一下,零基础学习计算机编程需要掌握哪些知识点。
什么是RPC?
RPC(RemoteProcedureCall)远程过程调用协议是一个用于建立适当框架的协议。从本质上讲,它使一台机器上的程序能够调用另一台机器上的子程序,而不会意识到它是远程的。
RPC是一种软件通信协议,一个程序可以用来向位于网络上另一台计算机的程序请求服务,而不必了解网络的细节。RPC被用来像本地系统一样调用远程系统上的其他进程。过程调用有时也被称为函数调用或子程序调用。
RPC的通常实现方式
有两种常见的实现RPC的方式:利用服务规范和自定义API。
一种是Sun的RPC/ONC和CORBA的代表。在这种情况下,服务的规范是用一些抽象语言给出的,如CORBAIDL(接口定义语言)。然后,这被编译成客户端和服务器的代码。然后,客户写一个正常的程序,其中包含对过程/函数/方法的调用,该程序被链接到生成的客户方代码。服务器端的代码实际上是一个服务器本身,它被链接到你所写的过程实现上。这样一来,客户端的代码在外观上与普通的过程调用几乎是一样的。一般来说,会有有一点额外的代码来定位服务器。在Sun的ONC中,必须知道服务器的地址;在CORBA中,要调用命名服务来查找服务器的地址。命名服务来查找服务器的地址;在JavaRMI中,IDL是Java本身,命名服务被用来查找服务器的地址。
服务来寻找服务的地址。
二种方式,你必须利用一个特殊的客户端API。你在客户端把函数名和它的参数交给这个库。在服务器端,你必须自己明确地编写服务器,以及远程过程的实现。这种方法被许多RPC系统所使用,如Web服务。
RPC与REST的区别?
RPC与REST大的区别就在于RPC提供了更好的抽象,RPC甚至将网络传输细节彻底隐藏了,而REST没有。具体来说,REST至少要求用于提供URL以及请求参数,而RPC隐藏了与网络传输的相关实现细节。另一方面,RPC可以基于任何网络通信协议,而REST通常基于HTTP(或者HTTPS)协议。RPC调用者并不会关心具体的协议是:HTTP、TCP还是其他任何自定义协议。
RPC的优缺点
以下是RPC为开发人员和应用程序管理员提供的一些优势:
帮助客户端通过传统使用高级语言的过程调用与服务器进行通信。
可以在分布式环境以及本地环境中使用。
支持面向进程和面向线程的模型。
对用户隐藏内部消息传递机制。
只需极少的努力即可重写和重新开发代码。
提供抽象,即对用户隐藏网络通信的消息传递性质。
省略许多协议层以提高性能。