Web服务原理和技术SOAP_第1页
Web服务原理和技术SOAP_第2页
Web服务原理和技术SOAP_第3页
Web服务原理和技术SOAP_第4页
Web服务原理和技术SOAP_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章:章:SOAP:简单对象访:简单对象访问协议问协议山东大学计算机学院SOAP SOAP是一个基于XML的通信协议,它在两个计算机之间交换消息,而无须考虑这两个计算机的操作系统、编程环境或对象模型框架 SOAP原先是简单对象访问协议(simple object access protocol)的首字母缩写,现在它仅是一个名字 SOAP是Web服务消息传输协议的事实上的标准 SOAP的主要应用是应用程序间的通信 当使用HTTP作为请求和响应参数时,SOAP使用XML作为编码模式 SOAP方法是一个遵循SOAP编码规范的HTTP请求和响应 SOAP端点是一个基于HTTP的URL,该URL标识

2、了方法调用的目标对象山东大学计算机学院目录 SOAP作为消息传送协议 SOAP消息的结构 基于HTTP的SOAP SOAP的优缺点 小结山东大学计算机学院SOAP的目标 不同的分布式计算平台具有异构性,SOAP的目标就是试图消除这一异构性所产生的各种障碍 与其他成功的Web协议一样,SOAP也是通过下列几方面来实现目标 简单性 灵活性 防火墙的友好性 平台中立性 基于XML的消息传送(基于文本)对于Web上的分布式通信的标准化而言,SOAP仅是简单地使用了已有的互联网技术,SOAP本身并不是一个新的技术山东大学计算机学院Web服务通信和消息传送网络SOAP是一个在服务实例之间传送消息的网络应用

3、协议,而这些服务实例使用WSDL进行描述SOAP消息使用诸如HTTP等不同的协议来传送消息,并使用这些协议来定位与Web服务关联的远程系统SOAP描述了如何将消息格式化,但没有规定如何传送消息,因此有必要将消息嵌入在传送层协议中HTTP是最常用的传输层协议也可使用其他协议,如SMTP、FTP等Web服务通信和消息传送网络山东大学计算机学院Web服务通信和消息传送网络 SOAP消息作为HTTP消息体被送到目的地,而HTTP消息则作为TCP流数据通过连接进行发送 在另一端(目的地),HTTP侦听程序将HTTP消息体传送给SOAP处理器 SOAP处理器能够理解SOAP消息的语法,并有能力处理它所收到

4、的消息 SOAP是一个无状态的单向消息交换协议 没有定义诸如编程模型等任何应用语义,也没有定义任何具体语义的实现 不关心SOAP消息的路由、可靠的消息传送、防火墙的穿越等问题山东大学计算机学院使用SOAP的分布式消息传送为调用驻留在远程服务提供者(1)中的Web服务操作,服务请求者的应用程序需建立一个SOAP消息来进行请求网络基础设施将消息发送给消息提供者的SOAP运行时系统(2)SOAP服务器将请求消息发送给服务提供者的Web服务实现代码(3)服务请求者的URI给出了提供者的节点作为请求目的地(4)网络基础设施将XML响应转换为源(服务请求者)应用程序(6)所能理解的对象山东大学计算机学院单

5、向传送、请求/响应传送交换模式 单向消息传送 SOAP消息沿着一个方向传送、从发送者到接收者发送者 - () - 接收者SOAP消息 请求/响应消息传送 SOAP消息从发送者传送给接收者,然后接收者将返回一个响应给发送者山东大学计算机学院目录 SOAP作为消息传送协议 SOAP消息的结构 基于HTTP的SOAP SOAP的优缺点 小结SOAP信封SOAP头部SOAP消息体山东大学计算机学院SOAP消息的结构 当前的SOAP规范v1.2描述了 如何将关联的XML模式中定义的数据类型进行HTTP(或其他传输协议)上的串行化 为正确交换信息,SOAP消息提供者和请求者都必须访问相同的XML模式 通常

6、在互联网上将模式进行公告,信息交换的任何一方都可下载这些模式 每一个SOAP消息本质上是一个XML文档山东大学计算机学院SOAP消息的结构 SOAP消息包含一个元素,元素必须包含一个元素,和一个可选的元素 234 . . 山东大学计算机学院SOAP信封 SOAP信封用于包裹任何交换的XML文档,还提供一种扩大有效消息载荷的方式,可添加一些附加信息,这些附加信息可帮助将消息路由到最终目的地SOAP信封是每一个SOAP消息单一的根对于遵循SOAP的消息,必须出现SOAP信封 使用命名空间来区分具有类似名字的不同元素和属性,从而使这些具有类似名字的不同元素和属性可以在同一文档中共存,而且不会导致混乱

7、。更重要的一点,命名空间使得SOAP消息具有可扩展性信封模式根据SOAP规范v1.2进行定位,URI是“/2003/05/soap-envelop”。假如SOAP应用接收了基于其他一些命名空间的消息,它将会报错。该规则确保所有符合标准的消息精确的使用同一个命名空间和XML模式,所以也会采用相同的处理规则。山东大学计算机学院SOAP头部 最多包含一个子元素 必须是第一个子元素 元素 包含一些信息块,主要关于如何处理消息 包含与端点或中间传输点相关的所有处理线索 如文档将要发往何处、文档源自哪里等信息,传送数字签名 的目的 对扩展的消息格式封装,且无须与有效载荷发生

8、关联,也不需要修改SOAP的基本结构 SOAP消息可以在不违反规范的前提下不断添加新的特性和功能 许多消息传送系统 都可以使用SOAP,并且这些消息传送系统可以按照非传统的方式组合起来 Web服务客户端可在消息的头部存放扩展数据,使服务中每一个方法调用无须将数据作为变量山东大学计算机学院元素的头块 SOAP 元素的模式允许在头部放置数量不限的子元素 直接子元素称作“头块”,并表示为一个数据逻辑分组 从发送者传送到最终接收者的路径中有一些SOAP节点,这些数据逻辑分组可以描述这些SOAP节点 每一个头块都应当有自己的命名空间,因为命名空间能够帮助SOAP应用标识头部以及分别处理返些头块 W3C和

9、OASIS等正在开发各种标准化的头块,涉及许多主题,诸如安全性、事务或其他的一些服务特性 被提议的每一个标准都定义了自己的命名空间、XML模式及处理需求山东大学计算机学院SOAP Header样例52GRAAL-5YF3元素包含两个头块,第一个头块处理有关付款单的事务完整性规则,第二个头块包括一个公证服务,这个公证服务将一个标记与一个特定的订购单关联起来,作为第三方保证订购单已经妥当处理,并且订购单已经包含了所要订购的特定产品山东大学计算机学院SOAP消息体 在消息交换中,具体应用的XML数据(有效载荷)存放在SOAP体中 SOAP消息必须包含元素,并且该元素必须是的直接后代,位于消息中所定义

10、的任何头部之后 SOAP体可以包含任意数目的子元素,也可以为空 元素的直接子元素都必须有合适的命名空间 默认情况下,SOAP体的内容可以是任何XML,并且不局限于任何专门的编码规则 SOAP Body 元素 Apples 上面的例子请求苹果的价格 注意,上面的 m:GetPrice 和 Item 元素是应用程序专用的元素。它们并不是 SOAP 标准的一部分山东大学计算机学院 SOAP 响应 1.90 山东大学计算机学院山东大学计算机学院SOAP消息体 元素包含具体应用的数据或一个出错消息 具体应用的数据是与Web服务进行交换的消息,可以是任何XML数据或者方法调用的参数 对方法调用的响应及错误

11、信息也存放在SOAP体中 SOAP Fault 元素用于存留 SOAP 消息的错误和状态信息 可选的 SOAP Fault 元素用于指示错误消息。 如果已提供了 Fault 元素,则它必须是 Body 元素的子元素。在一条 SOAP 消息中,Fault 元素只能出现一次 元素和根元素的一个区别是 它既是请求对象又是响应对象 仅当出现错误时,才使用出错消息 发现问题的接收节点会将出错消息发回给消息路径上的前面的发送者 SOAP消息可以携带具体应用的数据或出错信息,但不能同时携带返两类信息例子 http:/ http:/ http:/ SOAP作为消息传送协议 SOAP消息的结构 基于HTTP的S

12、OAP SOAP的优缺点 小结山东大学计算机学院基于HTTP的SOAP SOAP使用XML作为请求和响应参数的编码模式,并且使用HTTP作为传输协议来抵达互联网上的任何目的地,而无须任何额外的包裹或编码 当SOAP端点是一个基于HTTP的URL时,该URL标识了方法调用的目标,SOAP方法可以是一个遵循SOAP编码规则的HTTP请求或响应 SOAP并且需要将一个具体的对象束缚于一个特定的端点,而是由实现者决定如何将对象端点标识符映射到一个提供者的对象上 使用HTTP POST方法可将HTTP和SOAP请求/响应消息交换模式进行绑定 HTTP POST方法可在HTTP请求消息体中传送请求内容,通

13、过POST方法,SOAP信封将变为HTTP请求消息的数据部分,在HTTP响应中,将会返回SOAP响应山东大学计算机学院封装的HTTP/SOAP请求样例一个 SOAP 实例 一个 GetStockPrice 请求被发送到了服务器 此请求有一个 StockName 参数山东大学计算机学院一个 SOAP 实例 一个 GetStockPrice 请求被发送到了服务器 在响应中则会返回一个 Price 参数山东大学计算机学院山东大学计算机学院目录 SOAP作为消息传送协议 SOAP消息的结构 基于HTTP的SOAP SOAP的优缺点 小结山东大学计算机学院SOAP的主要优点 SOAP的主要优点可以概括如下 简单性:所基于的XML具有高度的结构化,并且很容易解析 可移植性:无须依赖底层平台,不需考虑字节顺序或计算机字长等问题 与防火墙的相容性:POST机制具有广泛的可用性,可以穿过防火墙 使用开放标准:使用XML开放标准来格式化数据 互操作性:建立在开放技术至上,而丌是基于特定厂商的技术 被广泛接受:在消息通信领域,SOAP是最被接受的标准 适应变化:SOAP基础架构的变化通常不会影响到使用协议的应用山东大学计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论