SOAP基础知识

一、SOAP是什么?

SOAP是一种轻量级协议,旨在在分散的分布式环境中交换结构化信息。 SOAP使用XML技术来定义可扩展的消息传递框架,该框架提供了可以在各种基础协议之间交换的消息构造。

  1. 通信协议

  2. 用于应用程序之间的通信

  3. 发送消息的格式

  4. 设计用于通过Internet通信

  5. 平台无关

  6. 语言无关

  7. 基于XML

  8. 简单且可扩展

  9. 允许绕过防火墙

  10. 一个W3C标准

简单的SOAP消息

 

复杂的SOAP消息

 

二、SOAP的作用

SOAP提供了一种使用不同的技术和编程语言在运行于不同操作系统上的应用程序之间进行通信的方法

SOAP提供了一个基于XML的消息传递框架

  1. 可扩展的

    1. 简洁仍然是SOAP的主要设计目标之一。

    2. 简单总是胜过效率或技术纯度。

    3. SOAP定义了一个通信框架,该框架允许将功能添加为分层扩展。

  2. 可在各种基础网络协议上使用

    1. 可以在任何传输协议上使用 TCP、HTTP、SMTP

    2. SOAP规范提供了一个灵活的框架,用于定义任意协议绑定

    3. 由于HTTP已被广泛使用,因此它今天为HTTP提供了显式绑定。

  3. 独立于编程模型,

    1. 允许任何编程模型,与远程过程调用无关

    2. SOAP定义了用于处理单个单向消息的模型。 SOAP允许任何数量的消息交换模式(MEP)。

    3. 由于RPC的流行,SOAP概述了将RPC与SOAP一起使用的约定。

 

三、SOAP消息例子

请求消息

<soap:Envelope><soap:Body><m:GetBookPrice xmlns:m="http://www.amzn.org/books" />   <m:BookName>Fast Food Nation</m:BookName>  </m:GetBookPrice></soap:Body></soap:Envelope>

回应消息

<soap:Envelope><soap:Body><m:GetBookPriceResponse xmlns:m="http://www.amzn.org/books" /><m:Price>34.5</m:Price></m:GetBookPriceResponse></soap:Body></soap:Envelope>

四、SOAP信封

SOAP消息包含在XML“信封”中,并带有标题和正文。

SOAP头是可选的,包含有关SOAP消息的特定于应用程序的信息(例如身份验证,付款等)

SOAP体是必需的,包含用于消息最终端点的实际SOAP消息。

 

五、SOAP头

  1. 一种扩展机制,提供了一种在SOAP消息中传递信息的方式,该信息不是应用程序有效负载。

  2. 这允许以特定于应用程序的方式扩展SOAP消息。

  3. 标头块可以分别针对在从发送者到最终接收者的消息路径中可能遇到的SOAP节点。

 

六、SOAP节点

SOAP假定消息具有一个发起者,一个或多个最终接收者以及零个或多个中介。SOAP消息的始发者,中介和接收者都称为SOAP节点。原因是支持分布式消息处理。实现此消息路由不在SOAP的范围之内。

 

头部有三个可选属性:

  1. actor:确定是节点应处理特定的标头

  2. mustUnderstand:如果设置为” true”,则节点必须知道如何处理头。

  3. relay:指示是否应转发未处理的标头块。

 

七、协议绑定

  1. SOAP消息传递框架独立于基础协议

  2. 具体的协议绑定准确定义了如何使用给定协议传输SOAP消息

  3. 定义了标准协议绑定,确保SOAP应用程序和基础结构之间的高度互操作性

  4. SOAP1,1规范仅将HTTP的标准协议绑定编码

  5. HTTP绑定:HTTP协议绑定定义了通过HTTP使用SOAP的规则。

  6. 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-envelope"><s:Body>… …</s:Body></s:Envelope><wsdl:binding name="InventoryServiceSoapBinding" type="InventoryService"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="inquiryInventory"><soap:operation soapAction="http://abc.com/get"/><wsdl:input name="inquiryInventoryRequest"><soap:body use="literal"/></wsdl:input><wsdl:output name="inquiryInventoryResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding>


九、WSDL与SOAP的绑定

  1. soap标记:绑定有两个属性

    1. style:“RPC”或者“document”

    2. transport:定义要使用的SOAP协议

    3. 对于每个操作,需要定义相应的SOAP操作。 此外,需要指定输入和输出消息的编码方式。

 

十、SOAP消息风格

SOAP消息的两种基本风格

  1. Document风格:表示 正文仅包含XML文档,发送者和接收者必须同意其格式。

  2. RPC风格:表示 主体包含方法调用的XML表示形式

 

十一、Document风格的SOAP消息

<Envelope xmlns:s=“http://www.w3.org/2001/06/soap-envelope”><Body><purchaseOrder xmlns:n=“urn:OrderService”><from><person>Christopher Robin</person><dept>Accounting</dept></from><to><person>Pooh Bear</person><dept>Honey></dept></to><order><quantity>1</quantity><item>Pooh Stick</item></order></purchaseOrder></Body></Envelope>

十二、远程调用消息:典型的两种消息

十三、RPC风格的SOAP消息

<!--请求--><Envelope xmlns:s=“http://www.w3.org/2001/06/soap-envelope”><Body><getQuote xmlns:n=“urn:QuoteService”><symbol xsi:type=“xsd:string”>IBM</symbol></getQuote></Body></Envelope><!--响应--><Envelope xmlns:s=http://www.w3.org/2001/06/soap-envelope><Body><getQuoteResponse xmnls:n=“urn:QuoteService”><value xsi:type=“xsd:float”>98.06</value></getQuoteResponse></Body></Envelope>

十四、SOAP消息风格

有两种技术可以决定如何将数据序列化到主体中:(在WSDL的<soap:body>元素的use属性中指示)

Literal:架构定义从字面上定义了主体的XML格式,没有歧义。

Encoded:SOAP处理器必须在运行时遍历各种SOAP编码规则,以确定主体的正确序列化。

 

十五、总结

  1. SOAP定义了一个简单且可扩展的XML消息传递框架,该框架可在具有多种不同编程模型的多种协议上使用。

  2. 基于XML和现有Internet协议的轻量级替代物,用于复杂的分布式对象技术。

  3. 该规范整理了如何在HTTP和RPC调用中使用SOAP。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDDI基础知识

一、什么是UDDI UDDI基于一组常见的行业标准&#xff0c;包括HTTP&#xff0c;XML&#xff0c;XML Schema和SOAP&#xff0c;为基于Web服务的软件环境提供了一个可互操作的基础基础结构&#xff0c;用于可公开使用的服务和仅在组织内部公开的服务。 仅当潜在用户发现足以允许其…

机器学习算法GBDT的面试总结

def findLossAndSplit(x,y): # 我们用 x 来表示训练数据 # 我们用 y 来表示训练数据的label # x[i]表示训练数据的第i个特征 # x_i 表示第i个训练样本 # minLoss 表示最小的损失 minLoss Integet.max_value # feature 表示是训练的数据第几纬度的特征 feature 0 # split 表示…

线性代数应该这样讲(四)-奇异值分解与主成分分析

在《线性代数这样讲&#xff08;二&#xff09;》&#xff08;以下简称「二」&#xff09;中&#xff0c;小夕详细讲解了特征值与特征向量的意义&#xff0c;并且简单描述了一下矩阵的特征值分解的意义和原理。本文便基于对这几个重要概念的理解来进一步讲解SVD分解。回顾一下&…

BPEL4WS基础知识

一、为什么选择BPEL4WS 可以使用行业范围内的规范来广告、发现和调用Web服务 开发人员和用户可以通过组合和订购可用的基本服务来解决复杂问题 服务组合允许服务重用并加速复杂的服务开发 提供一种表示法&#xff0c;用于将Web服务的交互描述为业务流程 编写使用Web服务的程…

不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络!

文章转载自订阅号「夕小瑶的卖萌屋」中的文章《不要再纠结卷积的公式啦&#xff01;0公式深度解析全连接前馈网络与卷积神经网络》。 Hello~你们的小夕终于吐泡泡了&#xff5e;前几天小夕又加班赶project啦&#xff0c;拖了好几天&#xff0c;都快患上拖稿焦虑症了_(:з」∠)…

不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络

Hello~你们的小夕终于吐泡泡了&#xff5e;前几天小夕又加班赶project啦&#xff0c;拖了好几天&#xff0c;都快患上拖稿焦虑症了_(:з」∠)_关于卷积神经网&#xff0c;小夕就不从卷积讲啦。以前不止一个粉丝问我卷积神经网络中卷积的意义&#xff0c;甚至在知乎上被邀请回答…

研究生常用的几种风险评估方法-专家调查法、蒙特卡洛模拟法、计划评审技术、敏感性分析法、决策树法、影响图法、模糊综合评价方法

其实风险评估就是在充分掌握资料的基础之上&#xff0c;采用合适的方法对已识别风险进行系统分析和研究&#xff0c;评估风险发生的可能性&#xff08;概率&#xff09;、造成损失的范围和严重程度&#xff08;强度&#xff09;&#xff0c;为接下来选择适当的风险处理方法提供…

从前馈到反馈:解析循环神经网络(RNN)及其tricks

好像已经有两周没有更新啦。最后这几天都不敢打开订阅号后台了&#xff0c;怕一打开发现掉了几百个粉丝的话就难过死了T_T。然而小夕发现你们并没有离开&#xff0c;感动的差点哭出来&#xff0c;都感觉再不认真写一篇文章就太对不起大家的等待啦。而这两周&#xff0c;经历的事…

多因子风险建模-协方差矩阵、投资组合风险

一、为什么要了解投资风险 在探讨投资风险前&#xff0c;我们不妨思考一个问题&#xff1a;好的投资&#xff0c;取决于哪些因素&#xff1f; 其实&#xff0c;卓越的投资回报&#xff0c;主要来源于四个因素&#xff1a; 收益预测&#xff1a;能形成合力的收益预期&#xff…

啊啊忍不住了,更!新!!!

你萌都还在&#xff0c;好开心 o(≧v≦)o在2017年9月21日这个特殊的日子&#xff0c;小夕在长达30天的沉默后&#xff0c;终于冒泡了&#xff01;有木有很激动&#xff0c;很期待&#xff1f;&#xff01;&#xff08;小夕&#xff0c;你不说我都忘了还有这订阅号了&#xff09…

【数据挖掘】数据挖掘和数据分析基础

参考文献&#xff1a;《Python数据分析与挖掘实战》张良均等 数据挖掘建模过程 定义挖掘目标&#xff1a;理解任务&#xff0c;确定指标数据采样&#xff1a;注意数据的完整性和有效性数据探索&#xff1a;异常值分析、缺失值分析、相关性分析、周期性分析数据预处理&#xff…

Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析

米筐科技&#xff08;RiceQuant&#xff09;策略研究报告&#xff1a;Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析 江嘉键1 年前1 概述Barra 结构化风险模型是全球知名的投资组合表现和风险分析工具。最近一段时间&#xff0c;我们米筐科技量化策略研究团…

深度学习资料挑的眼花啦?小夕帮你做选择!

小夕还记得几年前刚入坑的时候&#xff0c;老师给的入门资料就是一堆论文&#xff01;害的小夕差点放弃。。。如今深度学习应用的开发成本越来越低&#xff0c;学习资料越来越多&#xff0c;于是对初学者来说进入了另一个相反的困境——资料过多&#xff0c;让人眼花缭乱&#…

干货 | 深度学习的可解释性研究(一):让模型「说人话」

在这篇文章中&#xff1a;可解释性是什么&#xff1f;我们为什么需要可解释性&#xff1f;有哪些可解释性方法&#xff1f;在建模之前的可解释性方法建立本身具备可解释性的模型在建模之后使用可解释性性方法作出解释关于 BIGSCity参考文献不以人类可以理解的方式给出的解释都叫…

深度解析LSTM神经网络的设计原理

引人入胜的开篇&#xff1a;想要搞清楚LSTM中的每个公式的每个细节为什么是这样子设计吗&#xff1f;想知道simple RNN是如何一步步的走向了LSTM吗&#xff1f;觉得LSTM的工作机制看不透&#xff1f;恭喜你打开了正确的文章&#xff01; 前方核弹级高能预警&#xff01;本文信息…

Step-by-step to LSTM: 解析LSTM神经网络设计原理

Ps&#xff1a;喂喂喂&#xff0c;你萌不要光收藏不点赞呀_(:з」∠)_emmmm... 搞清楚LSTM中的每个公式的每个细节为什么是这样子设计吗&#xff1f;想知道simple RNN是如何一步步的走向了LSTM吗&#xff1f;觉得LSTM的工作机制看不透&#xff1f;恭喜你打开了正确的文章&#…

【论文翻译】用知识图谱的多任务特征学习来增强推荐

Wang H, Zhang F, Zhao M, et al. Multi-task feature learning for knowledge graph enhanced recommendation[C]//The World Wide Web Conference. 2019: 2000-2010. 原文链接&#xff1a;https://arxiv.org/pdf/1901.08907.pdf 代码实现&#xff1a;https://github.com/hwwa…

LeetCode-二叉树算法总结-层次遍历,路径总和等

版权声明&#xff1a;本文为博主原创文章&#xff0c;欢迎转载&#xff0c;但请注明出处&#xff0c;谢谢愿意分享知识的你~~ https://blog.csdn.net/qq_32690999/article/details/80484440 </div><link rel"stylesheet" href"https://csdnimg.…

记录一次闲鱼维权事件

-----2017.11.16 最后一次更新----- 小夕也真的没有想到&#xff0c;在万般绝望之时竟然得到了这么多人的帮助。在本文发出后&#xff0c;多位阿里人员积极联系我了解了情况&#xff0c;很感激一位阿里的专家帮我将此事递交给相关部门&#xff0c;让专业的客服直接受理和重审此…

百度作业帮-产品分析

一、商业模式分析 1.1、问答时期&#xff08;2014年2月-2015年1月&#xff09; 商业模式之作业帮V1.0.png两点值得注意&#xff1a; 作业帮的出现有明显的历史原因&#xff0c;即由百度知道团队出品&#xff0c;因此切入K12教育初期&#xff0c;采取的是之前的问答模式&#xf…