1 / 10
文档名称:

远程过程调用rpc.ppt

格式:ppt   大小:366KB   页数:10页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

远程过程调用rpc.ppt

上传人:卓小妹 2022/7/12 文件大小:366 KB

下载得到文件列表

远程过程调用rpc.ppt

文档介绍

文档介绍:关于远程过程调用RPC
第一张,共十张,创建于2022年,星期一
2009-9-9
*
RPC背景
在传统的编程概念中,过程是由程序员在本地编译完成,并只能局限在本地运行的一段代码,也就是说主程序和过程之间的运行关系是本地关于远程过程调用RPC
第一张,共十张,创建于2022年,星期一
2009-9-9
*
RPC背景
在传统的编程概念中,过程是由程序员在本地编译完成,并只能局限在本地运行的一段代码,也就是说主程序和过程之间的运行关系是本地调用关系。
这种结构在网络日益发展的今天已无法适应实际需求。其调用模式无法充分利用网络上其他主机的资源(如计算资源、存储资源、数据资源、显示资源等),也无法提高代码在实体间的共享程度,使得主机资源大量浪费。
第二张,共十张,创建于2022年,星期一
2009-9-9
*
RPC数据表示
机器数据表示问题:字节顺序、类型大小
解决方法:网络标准字节顺序(也称为外部数据表示,XDR)
XDR机制:
(1)创建一个XDR缓存;
#define BUFFERSIZE 4000
XDR *xdrs;
char buf[BUFFERSIZE];
xdrmem_create(xdrs,buf, BUFFERSIZE,XDR_ENCODE);
(2) 使用类型转换例程将本地数据对象转换成外部数据表示;
int i=200;
xdr_int(xdrs,&i);
第四张,共十张,创建于2022年,星期一
2009-9-9
*
RPC数据表示
常规类型转换例程
xdr_bool,xdr_int,xdr_float,xdr_string,……
复合类型转换
struct Vector
{
int a1;
int a2;
};
第五张,共十张,创建于2022年,星期一
2009-9-9
*
RPC数据表示
bool_t
xdr_Vector(xdrs, objp)
XDR *xdrs;
Vector *objp;
{
if (!xdr_int(xdrs, &objp->a1))
return (FALSE);
if (!xdr_int(xdrs, &objp->a2))
return (FALSE);
return (TRUE);
}
第六张,共十张,创建于2022年,星期一
2009-9-9
*
远程控制技术
单个远程程序一次只能支持一个远程过程调用,当前远程过程调用完成之前会自动阻塞其他远程过程调用,程序员设计分布式程序时不需要考虑这种互斥。
第七张,共十张,创建于2022年,星期一
2009-9-9
*
远程控制技术
静态端口映射:如portmap/111,nfs/2049
动态端口映射:32