SOAP简介

来源:互联网 发布:stc单片机教程 编辑:程序博客网 时间:2024/04/28 03:59

现在的企业解决方案要求兼容能力
可支持不同的系统平台、数据格式、多种连接方式
实现的系统是松散耦合、跨平台的、与语言无关的、与特定接口无关的,而且要提供对Web应用程序的可靠访问。

SOAP简介
简单对象访问协议,以XML作为数据传送方式的一种协议
可分为两层,数据表示层通信层,数据表示层采用符合SOAP规范的XML数据表示

SOAP可采用的通信协议
1.可以是HTTP/HTTPS协议
2.也可以是SMTP/POP3协议
3.还可以是为应用而专门设计的特殊通信协议。

SOAP系统有两种工作方式:
1. RPC
2. Message-Oriented(在Microsoft的文档中称为Document-Oriented)
这是一种可以利用XML交换更为复杂的数据结构的应用,常以SMTP作为传输协议。

可以把SOAP RPC简单理解为这样一个开放的协议:
 SOAP = RPC + HTTP + XML 具有以下特征
1. 采用HTTP作为通信协议,采用客户/服务模式
2. RPC作为统一的远程方法调用途径
3. XML作为数据传送的格式

SOAP RPC工作原理和Web请求/响应模式的异同:
都以HTTP协议作为通信协议
Web传输的是HTML数据;SOAP RPC模式中传输的是符合SOAP规范的XML数据。

SOAP客户访问SOAP服务的流程:
1. 客户程序创建一个XML文档,它包含
a) 提供服务的服务器的URI、
b) 客户请求调用的方法名和参数信息
如果参数是对象,必须进行序列化操作
2. 服务器接收到客户程序发来的XML文档,对其进行解析(如果参数是对象,对其进行反序列化操作)然后执行客户请求的方法
3. 执行完方法后,如果方法的返回值是对象,先对其进行序列化操作,然后把返回值以XML文档的形式返回给客户
4. 客户接收到返回的XML文档,(如果返回值是对象,先反序列化),获得返回值

SOAP客户和SOAP服务之间采用符合SOAP规范的XML数据进行通信,形式如下:
<?xml version=”1.0” encoding=”UTF-8”>
<soapenv:Envelope
    xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”
    xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
    xmlns=”http://www.w3.org/2001/XMLSchema-instance”>
   <soapenv:Body>
      <sayHelloResponse soapenv:encodingStyle = ”http://schemas.xmlsoap.org/soap/encoding/”>
         <sayHelloReturn xsi:type=”xsd:string”>
             Hello:weiqin
         </sayHelloReturn>
      </sayHelloResponse>
   </soapenv:Body>
</soapenv:Envelop>

 这是一个SOAP服务向SOAP客户发回的相应数据。
 根元素:<soapenv:Envelope> 可以包含<soapenv:Head><soapenv:Body>子元素
 <Body>元素下包含了具体的客户请求和服务响应数据