远程过程调用课件.pptVIP

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
消息传递与过程调用的类似性 远程过程调用 send / receive / reply这种通信形式与 大多数传统程序设计语言中的过程 调用非常类似,见图,其中,“调用 者 / 源”先挂起,然后把“参数 / 消息” 传递给“被调用者 / 宿”,让它们去执 行相应的任务;当任务执行完后返 回时,它(们)再把作为结果的“参 数 / 消息”回送给“调用者 / 源”,后 者再继续执行下去。 远程过程调用 远程过程调用(Remote Procedure Call 简称RPC)是一个会晤层协议.虽然这种描述不完全对,因为,允许存在与利用RPC实现的应用层协议某些混合. RPC原理原先由Xerox的研究人员所开发. 远程过程调用 为了实现NFS,Sun公司的工程师开发了他们自己的RPC技术,通常称为SunRPC或 ONC/RPC. ONC/RPC不仅用于NFS的实现,也用于许多其它网络应用. 存在和ONC/RPC不同的其它RPC技术,例如DEC RPC.虽然它们都遵从同样的概念途径,但是它们有不同的内部结构,因此,无互操作性. RPC和本地过程调用的比较 远程过程调用 过程调用把“数据”和“控制”这两 者从调用者传递给被调用者。 过程是易于理解的,而且已经广 泛地用作传统程序设计语言的基 本组成成份。基于此原因,人们 自然想起应把这个概念引入分布 式操作系统。 远程过程调用 远程过程调用(Remote Procedure Call)就是把过程调用的概念加以 扩允后引入分析式环境中的一种形 式。远程过程调用的形式和行为与 传统的过程调用的形式和行为类似, 主要差别在于被调用的过程实际运 行在一个与调用者所在场点不同的 场点上,见图。因此,需要设计相 应的软件来实现两者之间的连接和 信息沟通。 远程过程调用示意图 RPC的通信模型图 RPC机制的结构及实现 RPC机制的结构由下列成份组成: ⑴stub:client和server 各一个; ⑵约束(binding):使client能够定位到相应的server; ⑶控制部分:为追踪RPC的调用状态所设; ⑷传送部分:确定如何将信息从一个场点传送到另一个场点。 实现RPC的一般过程图 实现RPC的一般过程 实现RPC的一般过程实现RPC的一 般过程可概括如图所示: 其中,客户的stub与一个客户连接, 它对于该客户就像一个“服务器”。 在调用时,它截取客户的远程过程 调用命令后,利用通信网络向服务 器发送“请求服务”的信息。在返回 时,它获取返回消息,并带返回结 果返回到客户,然后客户继续执行。 实现RPC的一般过程 Server’s stub与一个server连接,它 对于该server就像一个“client”。在 调用时,它收到远程调用请求后, 产生一个本地调用,去执行被请求 的远程过程。在返回时,它截取远 程过程的返回结果,并形成返回消 息发送出去。 实现RPC的一般过程 总之,stub包含了一组RPC机制的 操作原话,这些原语构成了RPC调 用的实现细节,它可独立于client和 server编程,在编译时再连接起来。 实现RPC的一般过程 RPC的实现要考虑两个方面的问题: 第一,当进行远程过程调用时,调 用场点必须能定位出被调用的过程 实际上运行在哪个场点上; 第二,相关的两个场点必须能协同合 作交换信息。所有这些对用户都是透 明的,这些的工作是依次进行的。 下面介绍一种实现RPC的方法.其实 现思想已概括在图中。 RPC的实现概况图 RPC的实现概况 如上所述,每个远程过程由若干成 分组成:调用者(caller)或用户(user), 调用代码段,以及被调用者(callee)或 服务器,被调用代码段。这些都可用 常规的程序设计语言编写,不需要利 用特别的设施,就象它们在同一场点 上执行一样。另一些成分是与调用者 相关的stub,与被调用者相关的stub 以及RPC runtime子程序,后者可在 系统中所有场点上运行。 RPC的实现概况 stub程序的功能是把这种过程调用 中所带的参数组装和拆卸成消息形 式,并进行相应的类型检查,然后 把这些消息传递给RPC runtime子 程序,后者再把它们发送到系统中 的其它场点。 事实上,程序设计者定义了过程并 写好了过程体,而系统生成了对应 的stub。 主要工作环节 实现一个远程过程调用的主要工作 环节如下: ⑴调用者用通常方式调用对应stub 中的一个过程; ⑵这个stub过程把有关的参数组装 成一个消息包或一组消息包,以形 成一条消息。运行此过程的那个场 点的“地址”和那个场点上指称此过 程的“标识符”都应包含在这条消息 中; 主要工作环节 ⑶将这条消息发送给对应的RPC runtme子程序,该子程序再把它 发送给指定的场点。 ⑷在

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档