




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
远程过程调用协议(Remote Procedure Call Protocol,RPC) 分类: java 2012-03-16 21:58 281人阅读 评论(0) 收藏 举报 服务器microsoftinternet分布式计算中间件sun目录(?)+1. 基本简介2. 协议结构3. RPC远程过程调用流程1. RPC 调用信息每条远程过程调用信息包括以下无符号整数字段以独立识别远程过程2. RPC 调用信息主体形式如下3. RPC 答复信息4. 工作原理5. RPC OVER HTTP基本简介RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。目前,有多种 RPC 模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本,使得 ONC RPC 协议成为 IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境(DCE)。协议结构远程过程调用(RPC)信息协议由两个不同结构组成:调用信息和答复信息。信息流程如下所示:RPC:远程过程调用流程RPC 调用信息:每条远程过程调用信息包括以下无符号整数字段,以独立识别远程过程: 程序号(Program number) 程序版本号(Program version number) 过程号(Procedure number) RPC 调用信息主体形式如下:plain view plaincopyprint?1. structcall_body2. unsignedintrpcvers;3. unsignedintprog;4. unsignedintvers;5. unsignedintproc;6. opaque_authcred;7. opaque_authverf;8. 1parameter9. 2parameter.10. ;struct call_body unsigned int rpcvers;unsigned int prog;unsigned int vers;unsigned int proc;opaque_auth cred;opaque_auth verf;1 parameter2 parameter . . . ;RPC 答复信息:RPC 协议的答复信息的改变取决于网络服务器对调用信息是接收还是拒绝。答复信息请求包括区别以下情形的各种信息:RPC 成功执行调用信息。.RPC 的远程实现不是协议第二版,返回 RPC 支持的最低和最高版本号。 在远程系统中,远程程序不可用。 远程程序不支持被请求的版本号。返回远程程序所支持的最低和最高版本号。 请求的过程号不存在。通常是呼叫方协议或程序差错。 RPC答复信息形式如下:plain view plaincopyprint?1. enumreply_statstat2. 3. MSG_ACCEPTED=0,4. MSG_DENIED=15. ;enum reply_stat stat MSG_ACCEPTED = 0, MSG_DENIED = 1;工作原理运行时,一次客户机对服务器的RPC调用,其内部操作大致有如下十步:1.调用客户端句柄;执行传送参数 2.调用本地系统内核发送网络消息3.消息传送到远程主机4.服务器句柄得到消息并取得参数 5.执行远程过程 6.执行的过程将结果返回服务器句柄 7.服务器句柄返回结果,调用远程系统内核 8.消息传回本地主机9.客户句柄由内核接收消息 10.客户接收句柄返回的数据RPC OVER HTTPMicrosoft RPC-over-HTTP 部署(RPC over HTTP)允许RPC 客户端安全和有效地通过Internet 连接到RPC 服务器程序并执行远程过程调用。这是在一个名称为RPC-over-HTTP 代理,或简称为RPC 代理的中间件的帮助下完成的。RPC 代理运行在IIS 计算机上。它接受来自Internet 的RPC 请求,在这些请求上执行认证,检验和访问检查,如果请求通过所有的测试,RPC 代理将请求转发给执行真正处理的RPC 服务器。通过RPC over HTTP,RPC 客户端不和服务器直接通信,它们使用RPC 代理作为中间件。 RPC(Remote Procedure Call Protocol),远程过程调用协议,一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。它是一项广泛用于支持分布式应用程序(不同组件分布在不 同计算机上的应用程序)的技术。 目录 RPC的概述 RPC的产生 RPC的结构原理 RPC的目的 RPC的应用RPC的概述 远程过程调用(RPC)是一个协议,程序可以使用这个协议请求网络中另一台计算机上某程序的服务而不需知道网络细节。(过程调用有时也称作函数调用,或子例行程序调用。)RPC使用client/server模型。请求程序是client,而服务提供程序则为server。就像一般的本地过程调用一样,RPC是一个同步操作,直到远程过程结果返回请求程序才可以挂起。尽管如此,使用轻质进程或线程时,它们共享同一地址空间,是允许多个RPC并发执行的。当使用RPC的程序语句被编译成可执行程序时,一个存根将会被包括在编译的代码中,它相当于远程过程代码的代表。当程序运行,过程调用发生,存根收到请求并将其转发给本地计算机中的一个客户端运行时刻程序。这个客户端运行时刻程序知道如何访问远程计算机及服务器应用程序,它将向网络发送请求远程过程的消息。类似地,服务器也包括一个运行时刻程序及与远程过程连接的存根程序。结果将以相同方式返回。有多种RPC的模型与实现。一种较流行的模型与实现是开放软件基金会(Open Software Foundation)的分布式计算环境(DCE)。电子和电气工程师协会IEEE在它1991年11月的ISO Remote Procedure Call Specification, ISO/IEC CD 11578 N6561, ISO/IEC中定义了RPC。RPC跨越了网络通信的开放系统互联(OSI)模型中的传输层与应用层。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成为ClientServer模式分布式计算环境的主流产品,而RPC也成为实现分布式计算的事实标准之一。RPC的结构原理 如前所述RPC其实也是一种C/S的编程模式,有点类似C/SSocket编程模式,但要比它更高一层。当我们在建立RPC服务以后,客户端的调用参数通过底层的RPC传输通道,可以是UDP,也可以是TCP(也即TI-RPC无关性传输),并根据传输前所提供的目的地址及RPC上层应用程序号转至相应的RPC Application Porgramme Server,且此时的客户端处于等待状态,直至收到应答或TimeOut超时信号。当服务器端获得了请求消息,则会根据注册RPC时告诉RPC系统的例程入口地址,执行相应的操作,并将结果返回至客户端。当一次RPC调用结束后,相应线程发送相应的信号,客户端程序才会继续运行。当然,一台服务主机上可以有多个远程过程提供服务,那么如何来表示一个唯一存在的远程过程呢?一个远程过程是有三个要素来唯一确定的:程序号、版本号和过程号。程序号是用来区别一组相关的并且具有唯一过程号的远程过程。一个程序可以有一个或几个不同的版本,而每个版本的程序都包含一系列能被远程调用的过程,通过版本的引入,使得不同版本下的RPC能同时提供服务。每个版本都包含有许多可供远程调用的过程,每个过程则有其唯一标示的过程号。RPC的目的 RPC 的主要目的是为组件提供一种相互通信的 方式,使这些组件之间能够相互发出请求并传递这些请求的结果。 RPC的应用 RPC在分布式系统中的系统环境建设和应用程序设计中有着广泛韵应用,应用包括如下方面:1分布式操作系统的进程间通讯进程间通讯是操作系统必须提供的基本设施之一,分布式操作系统必须提供分布于异构的结点机上进程间的通讯机制,RPC是实现消息传送模式的分布式进程间通讯的手段之一。2构造分布式计算的软件环境由于分布式软件环境本身地理上的分布性它的各个组成成份之问存在大量的交互和通讯,RPC是其基本的实现方法之一。ONC+和DCE两个流行的分式布计算软件环境都是使用RPC构造的,其它一些分布式软件环境也采用了RPC方式。3远程数据库服务在分布式数据库舞统中,数据库一般驻存在服务器上,客户机通过远程数据痒服务功能访问数据库服务器,现有的远程数据库服务是使用RPC模式的。锝如,Sybase和Oacle都提供了存储过程机制,系统与用户定义的存储过程存储在数据摩服务锯上,用户在客户端使用RPC模式调用存储过程。4分布式应用程序设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麻雀作文范文习作说课课件
- 二零二五年度深圳市光明区离婚财产分割协议书
- 2025版化粪池清污及环境监测服务合同
- 二零二五年度二手车买卖及二手车保险代理协议
- 2025版线上线下导购联合营销合同
- 二零二五版建筑材料堆场租赁与绿化维护合同
- 二零二五年教育培训机构贷款担保服务协议
- 2025版车辆挂靠经营与新能源电池回收服务合同
- 二零二五年度新型二手集装箱全球贸易买卖合同
- 2025版绿色出行单车租赁合作协议书
- GB/T 34843-20173.3硼硅玻璃性能
- GB/T 3280-2015不锈钢冷轧钢板和钢带
- 保险友邦电话销售培训课程
- DDI领导力-高绩效辅导课件
- 各级医疗机构(医院)更年期保健特色专科评估标准
- 义务教育历史新课程标准试题题库测试卷(2022版)
- 全日制义务教育化学课程标准
- ISO 141552020医疗器械的人体受试者临床试验-临床试验质量管理规范简介
- DB37-T 3577-2019水泥稳定碎石基层施工技术规范
- 氢气压缩机操作规程
- 屋顶分布式太阳能光伏发电站项目全套图纸
评论
0/150
提交评论