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文件生成自己语言的客户端。
4.其它
简单的说Apache Axis是Apache Soap3.0,前面说过,RPC不能在编译期进行检查。而使用AXIS根据WSDL生成的客户端,却可以避免这个问题。使用SOAP的客户端时,全都用字符串来指定URI/服务名/方法/参数等。而AXIS生成的客户端将这些都封装了起来,它根据WSDL的描述生成调用接口,方便客户端开发。
相关推荐
在WSDL文档中,SOAP(Simple Object Access Protocol)绑定部分描述了如何将服务绑定到SOAP消息传递协议。SOAP绑定有两大数据样式:RPC(Remote Procedure Call)和Document。 1. RPC样式: - **RPC/Encoded**:此...
通过示例说明document/literal、document/literal(wrapped)、rpc/encoded、rpc/literal样式的web服务对应的soap消息格式,对于理解webservice有很大好处,尤其是根据wsdl构造soap消息,非常有价值。
**J2EE Web服务:XML、SOAP、WSDL、UDDI、WS-I、JAX-RPC、JAXR、SAAJ、JAXP详解** 在IT领域,尤其是在Java企业级应用开发中,Web服务扮演着至关重要的角色。J2EE(Java 2 Platform, Enterprise Edition)提供了一...
WSDL是一种XML格式,用于描述SOAP Web服务的接口。它定义了服务的位置、服务提供的操作以及如何调用这些操作。开发者可以通过WSDL文档理解如何与Web服务交互。 6. **JPA(Java Persistence API)** JPA是Java平台...
**Web服务描述语言(WSDL)与统一描述、发现和集成(UDDI)是Web服务标准中的关键组件,它们在构建和发现分布式应用程序接口(API)时起着至关重要的作用。** **WSDL(Web Services Description Language)** 是一...
它基于 XML 协议,包括四个部分:SOAP 封装、SOAP 编码规则、SOAP RPC 表示和 SOAP 绑定。SOAP 采用 HTTP 和 XML 两个协议,用于实现 RPC 风格的传输和编码模式。 在 SOAP 中,SOAP 消息是指使用 XML 编码的消息体...
本文将深入探讨如何使用Java来实现基于SOAP的XML文档网络传输以及远程过程调用(RPC)。这是一项关键的技术,它允许不同系统间的无缝交互,即使这些系统采用不同的编程语言和平台。 SOAP是一种基于XML的协议,主要...
特性非常简单的 API可以处理 RPC 和 Document schema 类型支持 multiRef SOAP 信息 (thanks to @kaven276)支持同步和异步方法处理器WS-Security (当前只支持 UsernameToken 和 PasswordText 编码)安装使用 npm 安装...
WSDL与SOAP的关系** WSDL通常与SOAP结合使用,SOAP是用于在Web上交换结构化信息的简单对象访问协议。在WSDL中,SOAP binding描述了如何使用SOAP消息来调用服务。SOAP消息包含了操作名称(soapAction)和消息体...
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sayHello"> <soap:operation soapAction="http://example.com/sayHello"/> <wsdl:input> <soap:body ...
### WSDL与SOAP的关系 WSDL通常与简单对象访问协议(SOAP)一起使用,SOAP是一种基于XML的消息传递协议,用于在Web上交换结构化信息。WSDL定义了SOAP消息如何被构建和交换,包括其结构和协议绑定。然而,WSDL并非只...
SOAP协议支持RPC(远程过程调用)风格的消息传递,也支持文档风格的消息传递,使得它成为Web服务之间进行通信的理想选择。 ### UDDI(通用描述、发现与集成) UDDI是一个目录服务,用于发布、查找和集成Web服务。...
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sum"> <soap:operation soapAction=""/> <wsdl:input> <soap:body use="encoded" encodingStyle=...
WSDL与SOAP的关系** WSDL通常与SOAP(Simple Object Access Protocol)结合使用,SOAP是一种基于XML的协议,用于在Web服务中传递信息。WSDL描述了SOAP消息应该如何构建,而SOAP提供了消息的实际内容和处理机制。 ...
类似于远程过程调用(RPC),WSDL先对操作和请求/响应消息进行抽象描述,再将其绑定到特定的传输协议和消息格式上,以最终定义具体的服务访问点。这些服务访问点的组合形成抽象的Web服务。 WSDL文档作为描述Web服务...
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sayHello"> <soap:operation soapAction="urn:sayHello"/> <wsdl:input> <soap:body use="encoded" ...
WSDL与SOAP的关系 WSDL通常与简单对象访问协议(SOAP)一起使用,SOAP是一种基于XML的消息传递协议,用于在Web服务中传输数据。WSDL描述了服务如何通过SOAP进行通信,包括SOAP消息的结构和发送方式。 ### 3. WSDL...
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> ... <soap:address location="http://example.com/mobilephone"/> ``` #### 7. WSDL 在 Web 服务生态系统中的作用 ...
例如,JAX-RPC提供商(如BEA WebLogic)可以通过API读取WSDL文档并生成相应的代理类(stub),IBM WebSphere、Microsoft .NET 和 Apache Axis 等也有类似的工具来生成客户端和服务端所需的代码。 #### 二、WSDL的...