Remote Procedure Call编程简介.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Remote Procedure Call编程简介

Sun RPC 编程简介 上海电信 163 杨秋蔚 关键字: RPC Socket TI-RPC TCP UDP C/S ONC 摘要: 本文简单介绍了 RPC(Remote Procedure Call 远程过程调用)的原理结构、特点,及 其开放给编程人员不同层次的编程接口。并且例举实例示范如何通过 Rpcgen 编译工具来快 速开发 RPC应用。 一、概述 在传统的编程概念中,过程是由程序员在本地编译完成,并只能局限在本地运行的一段 代码,也即其主程序和过程之间的运行关系是本地调用关系。因此这种结构在网络日益发展 的今天已无法适应实际需求。总所周知,传统过程调用模式无法充分利用网络上其他主机的 资源(如 CPU、Memory 等),也无法提高代码在实体间的共享程度,使得主机资源大量浪 费。 而本文要介绍的 RPC 编程,正是很好地解决了传统过程所存在的一系列弊端。通过 RPC 我们可以充分利用非共享内存的多处理器环境(例如通过局域汪连接得多台工作站),这样 可以简便地将你的应用分布在多台工作站上,应用程序就像运行在一个多处理器的计算机上 一样。你可以方便的实现过程代码共享,提高系统资源的利用率,也可以将以大量数值处理 的操作放在处理能力较强的系统上运行,从而减轻前端机的负担。 二、RPC 的结构原理及其调用机制 如前所述 RPC 其实也是种 C/S 的编程模式,有点类似C/S Socket 编程模式,但要比它 更高一层。当我们在建立 RPC 服务以后,客户端的调用参数通过底层的 RPC 传输通道,可 以是 UDP ,也可以是 TCP (也即TI-RPC—无关性传输),并根据传输前所提供的目的地址 及 RPC 上层应用程序号转至相应的 RPC Application Porgramme Server ,且此时的客户端处 于等待状态,直至收到应答或 Time Out 超时信号。具体的流程图如 F1 。当服务器端获得了 请求消息,则会根据注册 RPC 时告诉 RPC 系统的例程入口地址,执行相应的操作,并将结 果返回至客户端。 F1 当一次RPC 调用结束后,相应线程发送相应的信号,客户端程序才会继续运行。 当然,一台服务主机上可以有多个远程过程提供服务,那么如何来表示一个唯一存 在的远程过程呢?一个远程过程是有三个要素来唯一确定的:程序号、版本号和过程号。程 序号是用来区别一组相关的并且具有唯一过程好的远程过程。一个程序可以有一个或几个不 同的版本,而每个版本的程序都包含一系列能被远程调用的过程,通过版本的引入,使得不 同版本下的 RPC 能同时提供服务。每个版本都包含有许多可供远程调用的过程,每个过程 则有其唯一标示的过程号。 三、基于 RPC 的应用系统开发 通过以上对 RPC 原理的简介后,我们再来继续讨论如何来开发基于 RPC 的应用系统。 一般而言在开发 RPC 时,我们通常分为三个步骤: a、 定义说明客户/服务器的通信协议。 这里所说的通信协议是指定义服务过程的名称、调用参数的数据类型和返回参 数的数据类型,还包括底层传输类型(可以是 UDP 或 TCP ),当然也可以由 RPC 底层函数自动选择连接类型建立 TI-RPC 。最简单的协议生成的方法是采用协议编 译工具,常用的有 Rpcgen ,我会在后面实例中详细描述其使用方法。 b 、 开发客户端程序。 c、 开发服务器端程序。 开发客户端和服务器端的程序时,RPC 提供了我们不同层次的开发例程调用接口。不 同层次的接口提供了对 RPC 不同程度控制。一般可分为 5 个等级的编程接口,接下来我们 分别讨论一下各层所提供的功能函数。 1、简单层例程 简单层是面向普通 RPC 应用,为了快速开发 RPC 应用服务而设计的,他提供 了如下功能函数。 函数名 功能描述 Rpc_reg( ) 在一特定类型的传输层上注册某个

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档