什么是RPC?
远程过程调用(RPC)是一种进程间通信技术。它用于客户端-服务器应用程序。当计算机程序使过程或子例程在不同的地址空间中执行时,将使用RPC机制,这被编码为常规过程调用,而程序员无需专门为远程交互编码细节。该过程调用还管理低级传输协议,例如用户数据报协议,传输控制协议/ Internet协议等。它用于在程序之间传送消息数据。RPC的完整形式是“远程过程调用”。
RPC的类型
三种类型的RPC是:
- 回调RPC
- 广播RPC
- 批处理模式RPC
回调RPC
这种类型的RPC支持在参与进程之间建立P2P范例。它有助于使流程成为客户端和服务器服务。
回调RPC的功能:
- 远程处理的交互式应用程序问题
- 提供带有客户端句柄的服务器
- 回调使客户端进程等待
- 管理回调死锁
- 它促进了参与过程之间的点对点范例。
广播RPC
广播RPC是客户端的请求,在网络上广播,由具有处理该请求方法的所有服务器处理。
广播RPC的功能:
- 允许您指定必须广播客户端的请求消息。
- 您可以声明广播端口。
- 它有助于减少物理网络上的负载
批处理模式RPC
批处理模式RPC有助于在客户端的传输缓冲区中将单独的RPC请求排入队列,然后将它们在网络上成批发送到服务器。
批处理模式RPC的功能:
- 当它通过网络将请求批量发送到服务器时,它将发送请求所涉及的开销降至最低。
- 此类RPC协议仅对需要较低呼叫率的应用程序有效。
- 它需要可靠的传输协议。
RPC如何工作?
RPC体系结构主要包含该程序的五个组件:
- Client
- Client Stub
- RPC Runtime
- Server Stub
- Server
在RPC过程中,将执行以下步骤:
步骤1)客户端,客户端存根和RPC运行时实例在客户端计算机上执行。
步骤2)客户端通过以常规方式传递参数来启动客户端存根过程。客户端存根存储在客户端自己的地址空间内。它还要求本地RPC运行时发送回服务器存根。
步骤3)在此阶段,用户通过进行常规的本地过程校准来访问RPC。RPC运行时管理客户端和服务器之间网络之间的消息传输。它还执行重传,确认,路由和加密的工作。
步骤4)完成服务器过程后,它返回到服务器存根,该存根将返回值打包(编组)为消息。然后,服务器存根将消息发送回传输层。
步骤5)在此步骤中,传输层将结果消息发送回客户端传输层,客户端传输层将消息返回给客户端存根。
步骤6)在此阶段,客户端存根在结果数据包中对返回参数进行分组(解包),执行过程返回到调用方。
RPC的特征
这是RPC的基本特征:
- 被调用的过程在另一个进程中,该进程可能驻留在另一台机器中。
- 进程不共享地址空间。
- 参数仅按值传递。
- RPC在服务器进程的环境中执行。
- 它不提供对调用过程环境的访问。
RPC的功能
这是RPC的一些重要功能
- 简单调用语法
- 提供已知的语义
- 提供定义明确的界面
- 它可以在相同或不同机器上的进程之间进行通信
RPC的优点
这是RPC的优点/优点
- RPC方法通过使用高级语言的常规过程调用来帮助客户端与服务器进行通信。
- RPC方法是在本地过程调用上建模的,但是被调用过程最有可能在不同的进程(通常是不同的计算机)中执行。
- RPC支持面向流程和面向线程的模型。
- RPC使内部消息传递机制对用户隐藏。
- 重写和重新开发代码所需的工作最少。
- 远程过程调用可用于分布式环境和本地环境。
- 它承诺许多协议层以提高性能。
- RPC提供抽象。例如,网络通信的消息传递特性对用户而言仍然是隐藏的。
- RPC允许在不仅本地环境中的分布式环境中使用应用程序。
- 使用RPC代码,可以最大程度地减少重写和重新开发的工作量。
- RPC支持面向过程和面向线程的模型。
RPC的缺点
这是使用RPC的缺点/缺点:
- 远程过程调用仅通过值和指针值传递参数,这是不允许的。
- 远程过程的调用(和返回)时间(即开销)可以大大低于本地过程的时间。
- 由于涉及通信系统,另一台机器和另一进程,因此该机制极易发生故障。
- RPC概念可以以不同的方式实现,这是不标准的。
- 由于主要基于交互,因此无法在RPC中为硬件体系结构提供任何灵活性。
- 由于远程过程调用,该过程的成本增加了。
概要:
- 远程过程调用是一种进程间通信技术。
- 三种类型的RPC:1)回调RPC 2)广播RPC,以及3)批处理模式RPC
- RPC体系结构主要包含该程序的五个组件:1)客户端2)客户端存根3)RPC运行时4)服务器存根,和5)服务器
- 在RPC方法中,进程不共享地址空间
- RPC提供简单的调用语法和已知语义
- RPC方法通过使用高级语言的常规过程调用来帮助客户端与服务器进行通信。
- RPC方法的最大缺点是,它涉及通信系统,另一台计算机和另一个进程,因此很容易发生故障。