rpc、soap与rmi调用的区别

RPC与RMI区别,联系

  (2011-02-27 00:20:22)
标签: 

it

分类: 中间件

我自己理解:RPC和RMI都是远程调用,属于中间件技术。RMI是针对于java语言的,它使用的是JRMP协议通信,而RPC是更大众化的,使用http协议传输。还有?

 

摘自:http://baike.baidu.com/view/32726.htm#3

RPC:

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

 

工作原理  运行时,一次客户机对服务器的RPC调用,其内部操作大致有如下十步:
 
  1.调用客户端句柄;执行传送参数
 
  2.调用本地系统内核发送网络 消息
 
  3.消息传送到远程 主机
 
  4.服务器句柄得到消息并取得参数
 
  5.执行远程过程
 
  6.执行的过程将结果返回服务器句柄
 
  7.服务器句柄返回结果,调用远程系统内核
 
  8.消息传回 本地主机
 
  9.客户句柄由内核接收消息
 
  10.客户接收句柄返回的数据

摘自:http://baike.baidu.com/view/99017.htm#3

RMI(远程方法调用)的组成

  一个正常工作的RMI系统由下面几个部分组成:
 
  ·远程服务的接口定义
 
  ·远程 服务接口的具体实现
 
  ·桩(Stub)和框架(Skeleton)文件
 
  ·一个运行远程服务的服务器
 
  ·一个RMI命名服务,它允许 客户端去发现这个远程服务
 
  ·类文件的提供者(一个HTTP或者 FTP服务器
 
  ·一个需要这个远程服务的客户端程序
 

编辑本段RMI(远程方法调用)的原理

  RMI系统结构,在客户端和服务器端都有几层结构。
 
  --------- ----------
 
  | 客户 | | 服务器|
 
  ---------- ----------
 
  | |
 
  ------------- ----------
 
  | 占位程序 | | 骨干网 |
 
  -------------- -----------
 
  | |
 
  ------------------------------------
 
  | 远 程 引 用 层 |
 
  ------------------------------------
 
  | |
 
  ------------------------------------
 
  | 传 输 层 |
 
  ------------------------------------
 
  方法调用从客户对象经占位程序(Stub)、远程引用层(Remote Reference Layer)和传输层(Transport Layer)向下,传递给主机,然后再次经传 输层,向上穿过远程调用层和骨干网(Skeleton),到达服务器对象。 占位程序扮演着远程 服务器对象的代理的角色,使该对象可被客户激活。 远程引用层处理语义、管理单一或多重对象的通信,决定调用是应发往一个服务器还是多个。传输层管理实际的连接,并且追追踪可以接受方法调用的远程对象。服务器端的骨干网完成对服务器对象实际的方法调用,并获取返回值。返回值向下经远程引用层、服务器端的传输层传递回客户端,再向上经传输层和远程调用层返回。最后,占位程序获得返回值。
 
   要完成以上步骤需要有以下几个步骤:
 
  1、生成一个远程接口
 
  2、实现远程对象(服务器端程序)
 
  3、生成占位程序和骨干网(服务器端程序)
 
  4、编写服务器程序
 
  5、编写客户程序
 
  6、注册远程对象
 

  7、启动远程对象

 

RMI和RPC之间最主要的区别在于方法是如何别调用的。在RMI中,远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口上,那么这个新方法就不能被RMI客户方所调用。在RPC中,当一个请求到达RPC服务器时,这个请求就包含了一个参数集和一个文本值,通常形成“classname.methodname”的形式。这就向RPC服务器表明,被请求的方法在为“classname”的类中,名叫“methodname”。然后RPC服务器就去搜索与之相匹配的类和方法,并把它作为那种方法参数类型的输入。这里的参数类型是与RPC请求中的类型是匹配的。一旦匹配成功,这个方法就被调用了,其结果被编码后返回客户方。

http://guobetter.blog.sohu.com/159564844.html

  rpc、soap与rmi调用的区别:

       

        传输协议的区别:

           RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信,但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。

          xml-rpc 这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值