846-第四讲远程过程调用.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
846-第四讲远程过程调用

2、 工作原理 (2)编排/还原 指代(Stub)的主要工作包括: (1)建立客户与服务器之间的连接 (2)将客户的高层调用语句打包为一条底层的请求消息 这一过程在RPC中被称为编排(marshal) (3)等待服务器返回应答消息 (4)将来自服务器底层的应答消息解析为可以返回的数据 这一过程在RPC中被称为还原(unmarshal) (5)将返回值传送给客户程序 需要特别处理: 编码、字节序 等问题 (3) 请求分派 服务器端的指代: 除了需要进行编排、还原外 还需要 区分客户所请求的过程名 然后将客户的请求分派(dispatch)给正确的过程 “指代” 目前主要被用于专门代表客户端的代理程序 而服务器端则由新的机制予以支持 在CORBA中专门分离出了对象适配器(OA:Object Adaptor) 在EJB中发展出了构件容器 用于在运行过程中专门管理构件的各种状态 此时的服务器端不仅负责请求分派 还负责向底层机制的注册(以方便请求的定位) 以及过程的激活(以加强系统的灵活性) 等等功能 思 考 题 消息传递、互操作、协同工作之间的关系是什么? RPC是如何工作的? 不同互操作体系的异同点是什么? * 远程过程调用 */50 软件构件与中间件技术 * 从RPC到ORB */11 软件构件与中间件技术 第 四 讲 远程过程调用 1、动因与实例 2、工作原理 3、编排/还原 4、请求分派 内 容 1、动因与实例 开发基于SOCKET的网络软件非常复杂 FTP TELNET 位于不同机器上的软件互操作困难 连接管理 异构 导致RPC(Remote Procedure Calling )的产生 主要实例: SUN公司等提出的ONC(Open Network Computing)RPC 主要由SUN予以实现 OSF(Open Software Foundation)RPC影响最大 主要由DCE(Distributed Computing Environment)实现 DCE是OSF提出的分布计算体系结构 Deposit( 1000 ) 继续运行 启动服务器上的存款过程 int Deposit(number){ return total + number; } 客户端程序 服务器端程序 以对某银行帐户的一个存款过程为例: Network Local Call Client Stub RPC Interface RPC Interface Server Stub Remote Procedure send receive send receive ( 1)调用过程 客户端程序 服务器端程序 1、客户按本地调用的方式 直接调用本地的客户指代 客户指代具有与服务器相同的过程接口 2、客户指代 将客户的调用请求进行加工、打包 向底层通信机制(如套接字)发出请求消息 客户指代 不进行任何逻辑处理 只是一个中介 3、客户端通过底层的通信机制 将消息传送给服务器端的底层通信机制 过程描述: 4、服务器 需要部分地解析消息 找出客户希望调用的服务器程序 5、服务器指代对消息进行解析 从中获得调用者的参数 然后调用服务器程序 6、服务器程序执行相应的过程 7、服务器程序将结果返回给服务器指代 8、服务器指代将结果打包 向底层通信机制发出应答消息 9、服务器端通信机制将消息传送给客户端通信机制 10、客户端节点上也可能有多个调出点 通信机制需要部分地解析返回的消息 找出消息应该返回给哪个客户程序 并将消息发送给对应的客户指代 11、客户指代从消息中解析结果 返回给客户程序 三、基于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、定义并编译接口 仍然结合银行帐号的例子 接口定义文件account.x : program ACCOUN

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档