RPC, SOAP, WSDL都是web service的关键词,这里描述一下他们的关系,下面的解释可能比较狭义,主要为了帮助理解这三者的关系。
1.RPC
如果要调用远端的一个方法,可以使用RMI和RPC,这是2种截然不同的风格。
RMI: (Remote Method Invocation) 直接获取远端方法的签名,进行调用。优点是强类型、编译期可检查错误;缺点是只限于java语言
RPC: (Remote Procedure Call) 采用客户端/服务器方式(请求/响应),发送请求到服务器端,服务端执行方法后返回结果。优点是跨语言跨平台,缺点是编译期无法排错,只能在运行时检查。
2.SOAP
为了包装RPC的请求信息,推出了XML-RPC,但XML-RPC只能使用有限的数据类型种类和一些简单的数据结构。于是就出现了SOAP(Simple Object Access Protocol)。SOAP最主要的工作是使用标准的XML描述了RPC的请求信息(URI/类/方法/参数/返回值)。理论上,SOAP就是一段xml,你可以通过http,smtp等发送它(复制到软盘上,叫快递公司送去也行?)。同样SOAP也是跨语言的。
3.WSDL
WSDL(Web Services Description Language)是描述web服务的,是描述怎样访问web服务的。WSDL是用来描述SOAP的,换句话说,WSDL 文件告诉你调用 SOAP 所需要知道的一切。WSDL也是一段xml。现在各个语言对wsdl的支持都很成熟,可以根据同一份wsdl文件生成自己语言的客户端。
分享到:
相关推荐
Java RPC和RMI代码实战,有关键注释,为最简案例。Maven搭建,JDK8编译。 RPC体验:依次运行RpcProvider和RpcConsumer类。 RMI体验:RMITest中依次运行testServer和testClient方法。
分布式系统中的通信机制是系统能否高效、稳定运行的关键,其中最为人熟知的两种通信方式分别是远程过程调用(RPC)和远程方法调用(RMI)。本文将详细阐述这两种技术的工作机制及其在分布式系统中的应用。 分布式...
RPC(Remote Procedure Call,远程过程调用)与RMI(Remote Method Invocation,远程方法调用)是两种在分布式系统中实现跨网络通信的关键技术。它们允许一个程序在不关心远程服务器具体实现的情况下,调用远程...
RPC(Remote Procedure Call)和RMI(Remote Method Invocation)是两种在分布式系统中实现跨网络对象调用的技术,常用于构建分布式应用。本示例程序是关于如何利用RPC和RMI来实现一个简单的加法运算,这对于理解这...
RPC(Remote Procedure Call)和RMI(Remote Method Invocation)都是分布式计算中的关键技术,它们允许程序在不同的计算机上相互通信,仿佛这些方法或过程是在本地执行一样。然而,两者之间存在一些重要的区别。 ...
RMI(Remote Method Invocation)是Java平台上的另一种RPC实现,主要用于Java应用之间的通信。 本文主要讨论的是如何将Hessian RPC与RMI技术整合到Structs、Spring、Hibernate和Ibatis这四个关键的Java开发框架中,...
总结,"dubbo_rpc_hession_rmi"这个主题涵盖了Dubbo作为RPC框架的核心概念,Hessian作为RPC协议的实现,以及RPC基础理论。通过学习这些内容,开发者可以更好地理解和应用分布式服务框架,提高系统的可扩展性和可维护...
RPC与RMI的区别主要在于,RPC是一种更抽象的远程过程调用技术,而RMI是RPC在Java语言中的一种具体实现,专门为Java环境设计。RMI不仅传递参数和返回值,还能传输Java对象,而RPC通常基于文本消息传递,例如使用HTTP...
远程方法调用(Remote Method Invocation, RMI)与远程过程调用(Remote Procedure Call, RPC)是两种在分布式系统中实现跨网络通信的关键技术。它们允许一个程序在一台计算机上执行操作,这些操作实际上是在另一台...
java运行依赖jar包
远程调用一般分为两种,远程过程调用(RPC)和远程方法调用(RMI)。 RPC RPC属于函数级别的远程调用,其多是通过HTTP传输数据,数据形式有XML、JSON、序列化数据等。在此,用python做一个xml-rpc的示例。 先给...
java运行依赖jar包
在IT领域,分布式通信是实现跨网络系统交互的关键技术之一,其中远程方法调用(RMI)和远程过程调用(RPC)是最为常见的两种机制。本文将深入探讨这两种技术的特点、工作原理以及它们之间的异同,以帮助程序员更好地...
【RMI与RPC概述】 RMI(Remote Method Invocation)和RPC(Remote Procedure Call Protocol)都是分布式计算中的核心技术,用于实现跨网络的程序调用。RPC是一种通用的远程过程调用协议,它允许一个程序调用另一个...
文件"角色_ RPC_原理 _RMI.mp4"可能是一个视频教程,详细讲解了这些概念,包括如何设置和运行Dubbo示例,RPC的工作流程,以及RMI在其中的角色。通过观看这个视频,开发者可以获得更直观的理解,并能够将理论知识应用...
### 分布式环境下Java RMI与RPC,JMS,CORBA,DCOM的比较 在分布式计算领域,各种远程通信协议和技术被广泛采用以实现不同系统间的交互与数据共享。本文将详细介绍Java RMI(Remote Method Invocation)、RPC...
在本项目"RPC-code_rpc_"中,我们关注的是RPC的实现,特别是通过Thrift和RMI两种技术进行服务器间的交互。 **Thrift** 是Facebook开源的一种高性能、跨语言的服务交互框架。它的主要功能是生成跨语言的客户端和...
- **与Sun RPC和DCERPC的区别**: - RMI不是语言/机器独立的。 - RMI支持类中的方法概念。 - RMI支持多态性。 #### 二、RMI的核心组件 在运行使用RMI的程序时,涉及三个主要实体: 1. **客户端(Client)**:这...
RMI的基础是远程过程调用(RPC),它允许一个进程调用另一个进程(可能在远程主机上)中的过程,从而实现了过程的分布能力。相比于传统的RPC,RMI进一步简化了分布式对象之间的通信机制,使得开发者能够更加专注于业务...