1. SOAP简介:
1) SOAP(simple object access protocol)是一种基于XML的消息规范,它描述了数据类型的消息格式以及一整套串行化规则,包括结构化类型和数组。另外,它还描述了如何使用HTTP来传输消息。
2) SOAP 规范定义了两种可以使用 SOAP 的方式。第一种方式,SOAP 可用于描述一个一般的 XML 文档。这种格式的 SOAP 消息被称作消息传递(或文档)样式。第二种方式,有一种更特殊的 SOAP 格式,它要求嵌套的 XML 文档遵循远程过程调用(remote procedure call(RPC))语义。RPC 样式的 SOAP 消息要么用一个过程调用的名称和参数值来描述此过程调用,要么描述一个过程的返回。
2. SOAP的发展历史:
SOA的概念最初由Gartner公司提出,由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,因此当时SOA并未引起人们的广泛关注,SOA 在当时沉寂了一段时间。伴随着互联网的浪潮,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司的业务打包成独立的、具有 很强伸缩性的基于互联网的服务,人们提出了Web服务的概念,这可以说是SOA的发端。
3SOAP 消息传输涉及到三个主要角色:
1)SOAP 发送方创建一条 SOAP 消息并将它发送给最终的 SOAP 接收方。
可以放置一个可选的 SOAP 中介体,以便在 SOAP 发送方和最终的 SOAP 接收方之间拦截一条 SOAP 消息。任何拦截 SOAP 消息的中介体都能够在把消息发送到最终的 2)SOAP 目的地之前分析这条消息以执行过滤、日志记录、高速缓存之类的操作。SOAP 中介体可以被看作是一个发送方和接收方。
1) SOAP 发送方生成的 SOAP 消息的期望目的地((也就是说,发送方不是一个中介体))被称作最终 SOAP 接收方。
4SOAP的结构:
1)SOAP Envelope 元素(SOAP 消息的根元素)包含
一 个可选的 SOAP Header 和一些必需SOAP
Body 元素。SOAP 协议名称空间前缀
(
http://schemas.xmlsoap.org/soap/envelope/
)通常在 Envelope 开标记中声明。
2.)个可选的且可扩展的 Header 元素,它用
于描述安全性、事务和对话状态信息之类的元
数据。
3.)需的 Body 元素包含发送方的 XML 文档。发送
方的 XML 文档绝对不能包含 XML 声明或 DOCTYPE 声明。发送方的文档可以遵守两个主要的
范例:文档样式或 RFC 样式。在下两节中将描述这
两个范例。可以通过设置 encodingStyle 属性来指定 Body 的内容的序列化规则。标准的 SOAP 编码名称
空间是
http://schemas.xmlsoap.org/soap/encoding/。
4)faults 的元素可以被处理节点(SOAP 中介体或最终的 SOAP 目的地)用来描述它可能碰到的任何异常情况,这些异常情况可能在它阅读 SOAP 消息时发生。
5.)还有一个 attachment,它指定嵌入和描述 SOAP 消息附件的方式。附件可以是任何类型的文件,无论是基于二进制的还是基于字符的。附件规范应用了 MIME 规范规则,而不是新建一种编码模式。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/top_keki/4.jpg)
SOAP Envelope 定义了一个描述信息中的内容、发送者、接受者、处理者以及如何处理的框架。
SOAP Encoding rule(编码规则) 用于表示使用数据类型的实例。
SOAP RPC表示远程过程调用和应答的协定。
SOAP Binding 使用底层协议交换信息。
4.SOAP的消息应用模式:
1)请求/响应模式
2)fire-and-forget模式
1.面向单个接收者
2.面向多个接收者
3)高级消息交换模式
4)增量解析和处理模式
.5)缓存模式