简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于 XML(标准通用标记语言下的一个子集)的协议,它被设计成在 WEB 上交换结构化的和固化的信息。
webService 三要素
SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap 用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi 用来管理,分发,查询 webService 。具体实现可以搜索 Web Services 简单实例 ; SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP 使用基于 XML 的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用 Internet 上各种不同操作环境中的分布式对象。
相关定义
基于类对象的传输协议。
SOAP 封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;
SOAP 编码规则(encoding rules),它定义了一种序列化机制,用于表示应用程序需要使用的数据类型的实例;
SOAP RPC 表示(RPC representation),它定了一个协定,用于表示远程过程调用和应答;
SOAP 绑定(binding),它定义了 SOAP 使用哪种协议交换信息。使用 HTTP/TCP/UDP 协议都可以。
把 SOAP 绑定到 HTTP 提供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点。在 HTTP 上传送 SOAP 并不是说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义。在使用 HTTP 作为协议绑定的场合中,RPC 请求映射到 HTTP 请求上,而 RPC 应答映射到 HTTP 应答。然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定。
历史
SOAP 是“Simple Object Access Protocol”的缩写。
最新版本 SOAP 1.2 版在 2003 年 6 月 24 日成为 W3C 的推荐版本。
SOAP 由 Dave Winer, Don Box,Bob Atkinson, Mohsen Al-Ghosein 于 1998 年设计,当时只作为一种对象访问协议。SOAP 规范由 万维网联盟的 XML 工作组维护。
四个部分
封装
它定义了一个框架 , 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。
编码规则
它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。
RPC 表示
它定义了用于表示远程过程调用和应答的协定。
绑定
定义了一种使用底层传输协议来完成在节点间交换 SOAP 封装的约定。
SOAP 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求 / 应答的模式。所有的 SOAP 消息都使用 XML 编码。一条 SOAP 消息就是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。把 SOAP 绑定到 HTTP 提供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点。在 HTTP 上传送 SOAP 并不是说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义。在使用 HTTP 作为协议绑定的场合中, RPC 请求映射到 HTTP 请求上,而 RPC 应答映射到 HTTP 应答。然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定。SOAP 也可以绑定到 TCP 和 UDP 协议上。