关键字: RPC, SOAP, WSDL
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平台...
3. **绑定**:定义了服务实现的具体传输协议和消息格式,例如SOAP over HTTP。 4. **服务**:标识了服务的位置和实现接口的端点。 **UDDI(Universal Description, Discovery, and Integration)** 是一个基于XML的...
它基于 XML 协议,包括四个部分:SOAP 封装、SOAP 编码规则、SOAP RPC 表示和 SOAP 绑定。SOAP 采用 HTTP 和 XML 两个协议,用于实现 RPC 风格的传输和编码模式。 在 SOAP 中,SOAP 消息是指使用 XML 编码的消息体...
特性非常简单的 API可以处理 RPC 和 Document schema 类型支持 multiRef SOAP 信息 (thanks to @kaven276)支持同步和异步方法处理器WS-Security (当前只支持 UsernameToken 和 PasswordText 编码)安装使用 npm 安装...
本文将深入探讨如何使用Java来实现基于SOAP的XML文档网络传输以及远程过程调用(RPC)。这是一项关键的技术,它允许不同系统间的无缝交互,即使这些系统采用不同的编程语言和平台。 SOAP是一种基于XML的协议,主要...
<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文档定义了一组服务访问点,允许客户端通过这些点与服务进行交互,无论是面向文档的信息交换还是面向过程的调用,类似于远程过程调用(RPC)。它将操作和消息抽象化,然后将这些抽象绑定到特定的传输协议和消息...
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=...
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <!-- 绑定定义 --> </wsdl:binding> <wsdl:service name="MyService"> <wsdl:port name="MyServicePort" binding="tns:...
类似于远程过程调用(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:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> ... <soap:address location="http://example.com/mobilephone"/> ``` #### 7. 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" ...
例如,JAX-RPC提供商(如BEA WebLogic)可以通过API读取WSDL文档并生成相应的代理类(stub),IBM WebSphere、Microsoft .NET 和 Apache Axis 等也有类似的工具来生成客户端和服务端所需的代码。 #### 二、WSDL的...
2. **部署服务**: 生成的SOAP服务通常以WSDL(Web Services Description Language)文件的形式描述,该文件包含了服务的元数据,如端点地址、操作和消息结构。服务可以通过将WSDL发布到Web服务器来部署。 3. **消费...
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <soap:operation soapAction="http://example.com/sayHello"/> <soap:body use="encoded" encodingStyle=...