《远程过程调用》PPT课件.ppt
《《远程过程调用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《远程过程调用》PPT课件.ppt(24页珍藏版)》请在三一办公上搜索。
1、第 四 讲远程过程调用,1、动因与实例2、工作原理3、编排/还原4、请求分派,内 容,1、动因与实例,开发基于SOCKET的网络软件非常复杂FTPTELNET位于不同机器上的软件互操作困难连接管理异构导致RPC(Remote Procedure Calling)的产生主要实例:SUN公司等提出的ONC(Open Network Computing)RPC主要由SUN予以实现OSF(Open Software Foundation)RPC影响最大主要由DCE(Distributed Computing Environment)实现 DCE是OSF提出的分布计算体系结构,2、工作原理,Deposi
2、t(,1000,),继续运行,启动服务器上的存款过程,int Deposit(number),return total+number;,客户端程序,服务器端程序,以对某银行帐户的一个存款过程为例:,Network,Local Call,send,receive,send,receive,(1)调用过程,客户端程序,服务器端程序,1、客户按本地调用的方式 直接调用本地的客户指代客户指代具有与服务器相同的过程接口2、客户指代 将客户的调用请求进行加工、打包向底层通信机制(如套接字)发出请求消息客户指代不进行任何逻辑处理只是一个中介3、客户端通过底层的通信机制将消息传送给服务器端的底层通信机制,过程
3、描述:,4、服务器 需要部分地解析消息找出客户希望调用的服务器程序5、服务器指代对消息进行解析从中获得调用者的参数然后调用服务器程序6、服务器程序执行相应的过程7、服务器程序将结果返回给服务器指代8、服务器指代将结果打包向底层通信机制发出应答消息9、服务器端通信机制将消息传送给客户端通信机制,10、客户端节点上也可能有多个调出点通信机制需要部分地解析返回的消息找出消息应该返回给哪个客户程序并将消息发送给对应的客户指代 11、客户指代从消息中解析结果返回给客户程序,(2)编排/还原,指代(Stub)的主要工作包括:(1)建立客户与服务器之间的连接(2)将客户的高层调用语句打包为一条底层的请求消息
4、 这一过程在RPC中被称为编排(marshal)(3)等待服务器返回应答消息(4)将来自服务器底层的应答消息解析为可以返回的数据 这一过程在RPC中被称为还原(unmarshal)(5)将返回值传送给客户程序 需要特别处理:编码、字节序 等问题,(3)请求分派,服务器端的指代:除了需要进行编排、还原外还需要区分客户所请求的过程名然后将客户的请求分派(dispatch)给正确的过程“指代”目前主要被用于专门代表客户端的代理程序而服务器端则由新的机制予以支持在CORBA中专门分离出了对象适配器(OA:Object Adaptor)在EJB中发展出了构件容器用于在运行过程中专门管理构件的各种状态此时
5、的服务器端不仅负责请求分派还负责向底层机制的注册(以方便请求的定位)以及过程的激活(以加强系统的灵活性)等等功能,三、基于RPC的开发过程,1、定义并编译接口 2、编写实现具体服务功能的代码3、编译、连接,产生可执行的服务器程序4、编写客户端代码5、编译、连接,产生客户程序6、运行服务器端程序7、运行客户端程序,客户端开发过程,服务器端开发过程,服务器端程序,IDL编译器(rpcgen),客户端程序,IDL,account.h,account_clnt.c,account _svc.c,server.c,client.c,rpclib.o,1、定义并编译接口,仍然结合银行帐号的例子 接口定义文
6、件account.x:,program ACCOUNT version ACCOUNT_VER int deposit(int)=2;int withdraw(int)=1;=1;=0 x20010929;,编译后生成三个主要文件:account.h account_clnt.c account_svc.c,extern C#define ACCOUNT 0 x20010929#define ACCOUNT_VER 1#define deposit 2extern int*deposit_1(int*,CLIENT*);extern int*deposit_1_svc(int*,struct
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 远程过程调用 远程 过程 调用 PPT 课件
链接地址:https://www.31ppt.com/p-5611356.html