文档介绍:消息传递与过程调用的类似性
1
远程过程调用
send / receive / reply这种通信形式与
大多数传统程序设计语言中的过程
调用非常类似,见图,其中,“调用
者 / 源”先挂起,然后把“参数 / 消息”
传递给“被调用者 / 宿”,让它们去执
行相应的任务;当任务执行完后返
回时,它(们)再把作为结果的“参
数 / 消息”回送给“调用者 / 源”,后
者再继续执行下去。
2
远程过程调用
远程过程调用(Remote Procedure Call 简称RPC),因为,允许存在与利用RPC实现的应用层协议某些混合.
RPC原理原先由Xerox的研究人员所开发.
3
远程过程调用
为了实现NFS,Sun公司的工程师开发了他们自己的RPC技术,通常称为SunRPC或 ONC/RPC. ONC/RPC不仅用于NFS的实现,也用于许多其它网络应用.
存在和ONC/RPC不同的其它RPC技术,例如DEC ,但是它们有不同的内部结构,因此,无互操作性.
4
RPC和本地过程调用的比较
5
远程过程调用
过程调用把“数据”和“控制”这两
者从调用者传递给被调用者。
过程是易于理解的,而且已经广
泛地用作传统程序设计语言的基
本组成成份。基于此原因,人们
自然想起应把这个概念引入分布
式操作系统。
6
远程过程调用
远程过程调用(Remote Procedure
Call)就是把过程调用的概念加以
扩允后引入分析式环境中的一种形
式。远程过程调用的形式和行为与
传统的过程调用的形式和行为类似,
主要差别在于被调用的过程实际运
行在一个与调用者所在场点不同的
场点上,见图。因此,需要设计相
应的软件来实现两者之间的连接和
信息沟通。
7
远程过程调用示意图
8
RPC的通信模型图
9
RPC机制的结构及实现
RPC机制的结构由下列成份组成:
⑴stub:client和server 各一个;
⑵约束(binding):使client能够定位到相应的server;
⑶控制部分:为追踪RPC的调用状态所设;
⑷传送部分:确定如何将信息从一个场点传送到另一个场点。
10