版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
远程过程调用协议
(RemoteProcedureCallProtocolfRPC)
分类:java2012-03-1621:58281人阅读评论(0)收藏举报
服务器microsoftinternet分布式计算中间件sun
目录(?乂+]
基本简介
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服
务器。首先,客户机调用进程发送一个有进程参数的调月信息到服务进程,然后等待应答信
息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务
器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用
进程接收答复信息,获得进程结果,然后调用执行继续进行。
目前,有多种RPC模式和执行。最初由Sun公司提出。IETFONC宪章重新修订了
Sun版本,使得ONCRPC协议成为IETF标准协议。现在使用最普遍的模式和执行是开
放式软件基础的分布式计算环境(DCE)。
协议结构
远程过程调用(RPC)信息协议由两个不同结构组成:调用信息和答复信息。信息流程如下
所示:
客户进程务器进程
远程过程调用流程图
RPC:远程过程调用流程
RPC调用信息:每条远程过程调用信息包括以下无符号整数字段,以独立识别
远程过程:
程序号(Programnumber)
程序版本号(Programversionnumber)
过程号(Procedurenumber)
RPC调用信息主体形式如下:
[plain]viewplaincopyprint?
1.structcall_body{
2.unsignedintrpcvers;
3.unsignedintprog;
4.unsignedintvers;
5.unsignedintproc;
6.opaque_authcred;
7.opaque_authverf;
8.1parameter
9.2parameter...
10.):
RPC答复信息:
RPC协议的答复信息的改变取决于网络服务器对调用信息是接收还是拒绝。答复信息请求
包括区别以下情形的各种信息:
RPC成功执行调用信息。.
RPC的远程实现不是协议第二版,返回RPC支持的最低和最高版本号。
在远程系统中,远程程序不可用。
沅程程序不支持被请求的版本号。返回沅程程序所支持的最低和最高版本号。
请求的过程号不存在。通常是呼叫方协议或程序差错。
RPC答复信息形式如下:
[plain]viewplaincopyprint?
1.enumreply_statstat
2.{
3.MSG_ACCEPTED=0,
4.MSGDENIED=1
5.);
工作原理
运行时,一次客户机对服务器的RPC调用,其内部操作大致有如下十步:
1.调用客户端句柄;执行传送参数
2.调用本地系统内核发送网络消息
3.消息传送到远程主机
4.服务器句柄得到消息并取得参数
5.执行远程过程
6.执行的过程将结果返回服务器句柄
7.服务器句柄返回结果,调用远程系统内核
8.消息传回本地主机
9.客户句柄山内核接攻消息
10.客户接收句柄返回的数据
RPCOVERHTTP
MicrosoftRPC-over-HTTP部署(RPCoverHTTP)允许RPC客户端安全和有效地通
过Internet连接到RPC服务器程序并执行远程过程调用。这是在一个名称为
RPC-over-HTTP代理,或简称为RPC代理的中间件的帮助下完成的。
RPC代理运行在IIS计算机上。它接受来自Internet的RPC请求,在这些请求上执
行认证,检验和访问检查,如果请求通过所有的测试,RPC代理将请求转发给执行真正处
理的RPC服务器。RPCoverHTTP,RPC客户端不和服务器直接通信,它们使用
RPC代理作为中间件。
RPC(RemoteProcedureCallProtocol),远程过程调用
协议,一种通过网络从远程计算机程序上请求服务,而不需
要了解底层网络技术的协议。它是一项广泛用于支持分布式
应用程序(不同组件分布在不同计算机上的应用程序)的
技术。
目录
RPC的概述
RPC的产生
RPC的结构原理
RPC的目的
RPC的应用
RPC的概述
远程过程调用(RPC)是一个协议,程序可以使用这个协议请求网络中另一台计算机上
某程序的服务而不需知道网络细节。(过程调用有时也称作函数调用,或子例行程序调用。)
RPC使用client/server模型。请求程序是client,而服务提供程序则为server。就像•
般的本地过程调用一样,RPC是一个同步操作,直到远程过程结果返回请求程序才可以挂
起。尽管如此,使用轻质进程或线程时,它们共享同一地址空间,是允许多个RPC并发执
行的。
当使用RPC的程序语句被编译成可•执行程序时,一个存根将会被包括在编译的代码中,
它相当于远程过程代码的代表。
当程序运行,过程调用发生,存根收到请求并将其转发给本地计算机中的一个客户端
运行时刻程序。这个客户端运行时刻程序知道如何访问远程计算机及服务器口应用程序,它
将向网络发送请求远程过程的消息、。类似地,服务器也包括一个运行时刻程序及与远程过程
连接的存根程序。结果将以相同方式返回。
有多种RPC的模型与实现。一种较流行的模型与实现是开放软件基金会(Open
SoftwareFoundation)的分布式计算环境(DCE)。电子和电气工程师协会IEEE在它
1991年11月的ISORemoteProcedureCallSpecification,ISO/IECCD11578
N6561,ISO/IEC中定义了RPCo
RPC跨越了网络通信的开放系统互联(QSI)模型中的传输层与应用层。RPC使得一
个包括网络中分布的多个程序的应用程序的开发变得更容易。
不同的client/server的通信方法还有消息队列及IBM的高级程序对程序通信
(APPC)。
RPC的产生
RPC的概念与技术早在1981年由Nelson提出1984年,Birrell和Nelson把其用于
支持异构型分布式系统间的通讯…Birrel的RPC模型引入存根进程(stub)作为远程过程的
本地代理,调用RPC运行时库(RPCruntime)来传输网络中的调用,Stub和RPCruntime
屏蔽了网络调用所涉及的许多细节,特别是,参数的编码/译码及网络通讯是由stub和
RPCruntime完成的因此这■模式被各类RPC所采用由于分布式系统的异构性及分布式计
算模式与计算任务的多样性,RPC作为网络通讯与委托计算的实现机制,在方法、协议、语
义实现上不断发展,种类繁多,其中SUN公司和开放软件基金会(OSF)在其分布式产品中
所建立和使用的RPC较为典型。
在SUN公司的网络文件系统NFS及开放网络计算环境ONC中,RPC是基本实现技术。
OSF酝酿和发展的另一个重要的分布式计算软件环境DCE也是基于RPC的。在这两个系
统中,RPC既是其自身的实现机制,又是提供给用户设计分布式应用程序的高级工具。由于
对分布式计算的广泛需求,ONC和DCE成为Client/Server模式分布式计算环境的主流
产品,而RPC也成为实现分布式订算的事实标准之一。
RPC的结构原理
如前所述RPC其实也是一种C/S的编程模式,有点类似C/SSocket编程模式,但要
比它更高一层。当我们在建立RPC服务以后,客户端的调用参数通过底层的RPC传输通道,
可以是UDP,也可以是TCP(也即TI-RPC一无关性传输),并根据传输前所提供的目的地
址及RPC上层应用程序号转至相应的RPCApplicationPorgrammeServer,且此时的
客户端处于等待状态,直至收到应答或TimeOut超时信号。当服务器端获得了请求消息,
则会根据注册RPC时告诉RPC系统的例程入口地址,执行相应的操作,并将结果返回至客
户端。
当一次RPC调用结束后,相应线程发送相应的信号,客户端程序才会继续运行。当然,
一台服务主机上可以有多个远程过程提供服务,那么如何来表示一个唯一存在的远程过程
呢?一个远程过程是有三个要素来唯一确定的:程序号、版本号和过程号。程序号是用来区
别一组相关的并且具有唯一过程号的远程过程。一个程序可以有一个或几个不同的版本,而
每个版本的程序都包含一系列能被远程调用的过程,通过版本的引入,使得不同版本下的
RPC能同时提供服务。每个版本都包含有许多可供远程调用的过程,每个过程则有其唯一
标示的过程号。
RPC的目的
RPC的主要目的是为组件提供一种相互通信的方式,使这些组件之间能够相互发出
请求并传递这些请求的结果。
RPC的应用
RPC在分布式系统中的系统环境建设和应用程序设计中有着广泛韵应用,应用包括如
下方面:
1.分布式操作系统的
进程间通讯进程间通讯是操作系统必须提供的基本设施之一,分布式操作系统必须提
供分布于异构的结点机上进程间的通讯机制,RPC是实现消息传送模式的分布式进程间通
讯的手段之一。
2.构造分布式计算的软件环境
由于分布式软件环境本身地理上的分布性它的各个组成成份之间存在大量的交互和通
讯,RPC是其基本的实现方法之一。ONC+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 21326-2026黑鲷亲鱼和苗种
- 2026年安全施工系列培训内容详细教程
- 2026年小厂安全管理培训内容实操要点
- 2026年安全培训概括内容避坑指南
- 2026年虚拟世界开发者协议
- 2026年租赁行业安全培训内容核心要点
- 西双版纳傣族自治州勐腊县2025-2026学年第二学期三年级语文期中考试卷(部编版含答案)
- 晋城市高平市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 济源市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 海西蒙古族藏族自治州德令哈市2025-2026学年第二学期二年级语文第六单元测试卷(部编版含答案)
- 《PLC控制技术及应用》课件-4.1 S7-1200数据类型
- 上海中国极地研究中心(中国极地研究所)2025年招聘20人笔试历年参考题库附带答案详解(5卷)
- (新教材)2026人教版三年级下册数学 第2课时 周长 课件
- 2025-2026学年人教版四年级年级数学下册第三单元《运算律》素养测评卷(含答案)
- 电厂环保管理责任制度
- 2025年高考贵州卷物理真题(试卷+解析)
- 特殊作业奖惩制度范本
- 医务人员薪酬待遇制度
- 2026年及未来5年中国浙江省乡村旅游行业市场调查研究及发展战略研究报告
- 2026年内蒙古自治区高职单招语文试题题库(答案+解析)
- 旅行社安全风险分级管控制度
评论
0/150
提交评论