北京公司请做网站工资,专业外贸网站建设,网页设计理念和设计构思,wordpress快捷键一、SOAP是什么#xff1f;
SOAP是一种轻量级协议#xff0c;旨在在分散的分布式环境中交换结构化信息。 SOAP使用XML技术来定义可扩展的消息传递框架#xff0c;该框架提供了可以在各种基础协议之间交换的消息构造。 通信协议 用于应用程序之间的通信 发送消息的格式 设…一、SOAP是什么
SOAP是一种轻量级协议旨在在分散的分布式环境中交换结构化信息。 SOAP使用XML技术来定义可扩展的消息传递框架该框架提供了可以在各种基础协议之间交换的消息构造。 通信协议 用于应用程序之间的通信 发送消息的格式 设计用于通过Internet通信 平台无关 语言无关 基于XML 简单且可扩展 允许绕过防火墙 一个W3C标准 简单的SOAP消息 复杂的SOAP消息 二、SOAP的作用
SOAP提供了一种使用不同的技术和编程语言在运行于不同操作系统上的应用程序之间进行通信的方法 SOAP提供了一个基于XML的消息传递框架 可扩展的 简洁仍然是SOAP的主要设计目标之一。 简单总是胜过效率或技术纯度。 SOAP定义了一个通信框架该框架允许将功能添加为分层扩展。 可在各种基础网络协议上使用 可以在任何传输协议上使用 TCP、HTTP、SMTP SOAP规范提供了一个灵活的框架用于定义任意协议绑定 由于HTTP已被广泛使用因此它今天为HTTP提供了显式绑定。 独立于编程模型 允许任何编程模型与远程过程调用无关 SOAP定义了用于处理单个单向消息的模型。 SOAP允许任何数量的消息交换模式MEP。 由于RPC的流行SOAP概述了将RPC与SOAP一起使用的约定。 三、SOAP消息例子
请求消息
soap:Envelopesoap:Bodym:GetBookPrice xmlns:mhttp://www.amzn.org/books / m:BookNameFast Food Nation/m:BookName /m:GetBookPrice/soap:Body/soap:Envelope
回应消息
soap:Envelopesoap:Bodym:GetBookPriceResponse xmlns:mhttp://www.amzn.org/books /m:Price34.5/m:Price/m:GetBookPriceResponse/soap:Body/soap:Envelope
四、SOAP信封
SOAP消息包含在XML“信封”中并带有标题和正文。 SOAP头是可选的包含有关SOAP消息的特定于应用程序的信息例如身份验证付款等
SOAP体是必需的包含用于消息最终端点的实际SOAP消息。 五、SOAP头 一种扩展机制提供了一种在SOAP消息中传递信息的方式该信息不是应用程序有效负载。 这允许以特定于应用程序的方式扩展SOAP消息。 标头块可以分别针对在从发送者到最终接收者的消息路径中可能遇到的SOAP节点。 六、SOAP节点
SOAP假定消息具有一个发起者一个或多个最终接收者以及零个或多个中介。SOAP消息的始发者中介和接收者都称为SOAP节点。原因是支持分布式消息处理。实现此消息路由不在SOAP的范围之内。 头部有三个可选属性 actor确定是节点应处理特定的标头 mustUnderstand如果设置为” true”则节点必须知道如何处理头。 relay指示是否应转发未处理的标头块。 七、协议绑定 SOAP消息传递框架独立于基础协议 具体的协议绑定准确定义了如何使用给定协议传输SOAP消息 定义了标准协议绑定确保SOAP应用程序和基础结构之间的高度互操作性 SOAP1,1规范仅将HTTP的标准协议绑定编码 HTTP绑定HTTP协议绑定定义了通过HTTP使用SOAP的规则。 SOAP请求/响应自然地映射到HTTP请求/响应模型。 八、协议绑定——请求示例
!--【HTTP头】--POST /Temperature HTTP/1.1Host: www.weather.comContent-Type: text/xmlContent-Length: n!-- 【XML负载均衡】--s:Envelope xmlns:s“http://www.w3.org/2001/06/soap-envelopes:Body… …/s:Body/s:Envelopewsdl:binding nameInventoryServiceSoapBinding typeInventoryServicesoap:binding styledocument transporthttp://schemas.xmlsoap.org/soap/http/wsdl:operation nameinquiryInventorysoap:operation soapActionhttp://abc.com/get/wsdl:input nameinquiryInventoryRequestsoap:body useliteral//wsdl:inputwsdl:output nameinquiryInventoryResponsesoap:body useliteral//wsdl:output/wsdl:operation/wsdl:binding 九、WSDL与SOAP的绑定 soap标记绑定有两个属性 style“RPC”或者“document” transport定义要使用的SOAP协议 对于每个操作需要定义相应的SOAP操作。 此外需要指定输入和输出消息的编码方式。 十、SOAP消息风格
SOAP消息的两种基本风格 Document风格表示 正文仅包含XML文档发送者和接收者必须同意其格式。 RPC风格表示 主体包含方法调用的XML表示形式 十一、Document风格的SOAP消息
Envelope xmlns:s“http://www.w3.org/2001/06/soap-envelope”BodypurchaseOrder xmlns:n“urn:OrderService”frompersonChristopher Robin/persondeptAccounting/dept/fromtopersonPooh Bear/persondeptHoney/dept/toorderquantity1/quantityitemPooh Stick/item/order/purchaseOrder/Body/Envelope
十二、远程调用消息典型的两种消息 十三、RPC风格的SOAP消息
!--请求--Envelope xmlns:s“http://www.w3.org/2001/06/soap-envelope”BodygetQuote xmlns:n“urn:QuoteService”symbol xsi:type“xsd:string”IBM/symbol/getQuote/Body/Envelope!--响应--Envelope xmlns:shttp://www.w3.org/2001/06/soap-envelopeBodygetQuoteResponse xmnls:n“urn:QuoteService”value xsi:type“xsd:float”98.06/value/getQuoteResponse/Body/Envelope
十四、SOAP消息风格
有两种技术可以决定如何将数据序列化到主体中在WSDL的soapbody元素的use属性中指示
Literal架构定义从字面上定义了主体的XML格式没有歧义。
EncodedSOAP处理器必须在运行时遍历各种SOAP编码规则以确定主体的正确序列化。 十五、总结 SOAP定义了一个简单且可扩展的XML消息传递框架该框架可在具有多种不同编程模型的多种协议上使用。 基于XML和现有Internet协议的轻量级替代物用于复杂的分布式对象技术。 该规范整理了如何在HTTP和RPC调用中使用SOAP。