rpc、soap与rmi调用的差异
rpc、soap与rmi调用的区别
转载▼
1.调用客户端句柄;执行传送参数
2.调用本地系统内核发送网络消息
3.消息传送到远程主机
4.服务器句柄得到消息并取得参数
5.执行远程过程
6.执行的过程将结果返回服务器句柄
7.服务器句柄返回结果,调用远程系统内核
8.消息传回本地主机
9.客户句柄由内核接收消息
10.客户接收句柄返回的数据
·远程服务的接口定义
·远程服务接口的具体实现
·桩(Stub)和框架(Skeleton)文件
·一个运行远程服务的服务器
·一个RMI命名服务,它允许客户端去发现这个远程服务
·类文件的提供者(一个HTTP或者FTP服务器)
·一个需要这个远程服务的客户端程序
--------- ----------
| 客户 | | 服务器|
---------- ----------
| |
------------- ----------
| 占位程序 | | 骨干网 |
-------------- -----------
| |
------------------------------------
| 远 程 引 用 层 |
------------------------------------
| |
------------------------------------
| 传 输 层 |
------------------------------------
方法调用从客户对象经占位程序(Stub)、远程引用层(Remote Reference Layer)和传输层(Transport Layer)向下,传递给主机,然后再次经传 输层,向上穿过远程调用层和骨干网(Skeleton),到达服务器对象。 占位程序扮演着远程服务器对象的代理的角色,使该对象可被客户激活。 远程引用层处理语义、管理单一或多重对象的通信,决定调用是应发往一个服务器还是多个。传输层管理实际的连接,并且追追踪可以接受方法调用的远程对象。服务器端的骨干网完成对服务器对象实际的方法调用,并获取返回值。返回值向下经远程引用层、服务器端的传输层传递回客户端,再向上经传输层和远程调用层返回。最后,占位程序获得返回值。
要完成以上步骤需要有以下几个步骤:
1、生成一个远程接口
2、实现远程对象(服务器端程序)
3、生成占位程序和骨干网(服务器端程序)
4、编写服务器程序
5、编写客户程序
6、注册远程对象
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调用,其内部操作大致有如下十步:
摘自:http://baike.baidu.com/view/99017.htm#3
RMI(远程方法调用)的组成
一个正常工作的RMI系统由下面几个部分组成:编辑本段RMI(远程方法调用)的原理
RMI系统结构,在客户端和服务器端都有几层结构。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的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。
相关推荐
- SOA,Webservice,SOAP,REST,RPC,RMI的区别与联系
- _RecordsetPtr pRecTableName->与.都调用Release的差异
- XML-RPC简单理解与博客园的MetaWeblog协议 MetaWeblog API调用 使用metawebblog api 实现自己的博客接口
- 架构设计:系统间通信(9)——通信管理与RMI 下篇 3、JAVA RMI 工作原理 3、RMI——一种特殊的RPC服务实现
- Java实现远程服务生产与消费(RPC)的4种方法-RMI,WebService,HttpClient,RestTemplate 一. 通过rmi实现远程服务的生产与消费 二. 通过WebService实现远程服务的生产与消费 三. 通过HttpClient实现远程服务的生产与消费 四. 通过spring提供的RestTemplate实现远程服务的生产与消费
- SOA,Webservice,SOAP,REST,RPC,RMI,JMS的区别与联系(转载)
- window.parent与window.opener的差异 javascript调用主窗口方法
- Hadoop3.1.1源码Client详解 : 写入准备-RPC调用与流的建立
- javaweb项目中嵌入webservice--axis2 WebServices:WSDL的结构分析: https://www.cnblogs.com/zhaozhan/archive/2010/11/03/1868556.html ESB与SOAP的关系? 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
- Java RMI与RPC的区别
- 一个自各儿编写的xml和对象之间的转换工具,xml和对象轻松转换(simple-xml2object)
- REST和SOAP:哪位高手更好,或者都好