第八讲SOAP协议ppt课件.ppt

上传人:本田雅阁 文档编号:3165790 上传时间:2019-07-18 格式:PPT 页数:28 大小:141.53KB
返回 下载 相关 举报
第八讲SOAP协议ppt课件.ppt_第1页
第1页 / 共28页
第八讲SOAP协议ppt课件.ppt_第2页
第2页 / 共28页
第八讲SOAP协议ppt课件.ppt_第3页
第3页 / 共28页
第八讲SOAP协议ppt课件.ppt_第4页
第4页 / 共28页
第八讲SOAP协议ppt课件.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《第八讲SOAP协议ppt课件.ppt》由会员分享,可在线阅读,更多相关《第八讲SOAP协议ppt课件.ppt(28页珍藏版)》请在三一文库上搜索。

1、SOAP协议,西源软件培训中心,回顾,XML DSO 是一个 Microsoft ActiveX 控件,嵌入到 Microsoft Internet Explorer 中 DSO 有助于格式化数据并将这些数据显示在 HTML 页面上 DSO 可用于从外部 XML 文档或从嵌入到 HTML 文档的 XML 数据中提取数据 和 标签之间绑定的 XML 数据称为 XML 数据岛,回顾,可以通过在 HTML 文档中使用 标签或通过使用 JavaScript 创建函数,将外部 XML 文档链接到 HTML 文档 可以使用 datasrc 和 datafld 属性从数据岛中提取数据 DSO 可用于使用样式

2、表中定义的样式来显示 XML 数据岛的数据,目标,了解SOAP概述 理解SOAP消息 理解SOAP消息交换模型 了解SOAP协议绑定框架 理解SOAP编码 了解把SOAP用于RPC,SOAP概述,SOAP(simpleobJectAcce眺PNtoc01,简单对象访问协议)是一个用来在分散/分布式的环境中交换信息的简单协议,它是一个基于XML的协议。因为SOAP消息的格式是标准的,并且是基于XML标准的,所以,SOAP可以用来在不同的计算机体系结构、不同的语言和不同的操作系统之间进行通信。web服务就是使用SOAP作为它的标准通信协议。,SOAP概述,SOAP本身是一个无状态的、单向的消息交换

3、机制,但是应用程序可以在此基础上,通过结合单向交换与底层传输协议的特性或应用程序信息来创建更加复杂的交互模型,例如请求响应和请求/多重响应等。 SOAP中没有包含应用于SOAP消息路由、可靠数据传输和穿越防火墙等方面的应用程序数据传送语义,但是它提供了一个机制,通过这个机制,特定于应用程序的信息能够以一种可靠的方式传送。同时,SOAP描述了SOAP处理器如何对所接收SOAP稍息进行操作。,SOAP协议的四个部分,SOAP封装 封装定义了一个描述消息中的内容剧十么、是谁发送的、谁应当接受并处理它以及如何处理它们的框架。 SOAP编码规则 用于表示应用程序需要使用的数据类型的实例即如何把语言类型映

4、射到SOAP消息中的XML上。 SOAP RPC表示 描述如何使用盼AP进行远程过程调用和响应。 SOAP绑定 描述如何使用底层协议交换信息。 SOAP规范中包含一个默认的HTTP绑定,它定义了如何通过HTTP交换SOAP消息。,SOAP 消息,SOAP消息完全基于XML,它包含以下部分: 封装(Envelope): 封装是表示SOAP消息的顶级元素,它是必需的EnvelOpe元素,包含两个子元素Header和Body元素,这两个元素中的内容是由应用程序定义的并且不属于SOAP规范。 报头(Header): 报头是可选的,它是一种用来以分散方式向SOAP消息上添加额外特性的通用机制。通过这种机

5、制,添加额外特性时不需要得到通信双方的事先同意。正是通过这种机制,应用程序才能以特定的方式对SOAP消息进行扩充。报头的直接子元素称为报头条目,它表示一些逻旗数据分组,可被传输路径中的SOAP节点进行处理。SOAP定义了一些属性来指出谁应该处理某个特性以及这个特性是可选的还是必须要处理的。,SOAP 消息,报体(Body): 报体是一个包含发送给最终目标节点的必需信息的容器,它是必需的。SOAP消息的最终接收者必须要正确处理Body元素。最终SOAP接收者使用Body元素的子元素的局部名和命名空间名来确定所要执行的处理。实际上,SOAP RPC约定就是使用这种方式。SOAP为报体定义了一个Fa

6、ult元素,它用来报告错误。,SOAP 消息结构,SOAP封装,SOAP报体,SOAP报头,Envelope元素,SOAP 射装对应的元素是Envelope,它是SOAP 消息的顶级元素,它必须要出现在SOAP 叫目息中,并且报头和报体都必须位于Envelope元素中, 在Envelope 中可以包含命名空间声明和其他一些属性,并且这些属性必须要使用命名空间进行限定。 示例 ENV:Envelope xmlns:SOAP-ENV=http:/schernas.xmlsoap.org/soap/encelope/ ENV:encodingStyle=http:/schernas.xmlsoap.

7、org/soap/encoding/ Envelope元素的声明中就包含了一个命名空间声明SOAPENV和一个属性encodingStyle,Header元素,报头对应的元素为Header这个元素是可选的,如果出现,则必须是Envelope元素的第一个于元素,并使用命名空间进行完全限定。 Header元素中可以包含一些属性和报头条目,每一个条目都是Header的直接子元素,并且必须要使用命名空间进行限定。 actor属性(next、ultimate receiver) Actor是由SOAP注释定义的,在SOAP 1.2中,actor属性已经被更名为role。Actor属性和XML命名空间组合

8、在一起使用,以确定要用哪个代码模块处理具体的Header。Next角色表示消息路径中的下一个节点必须处理文件头。 Ultimate receiver角色表示只有消息的最终接收方才能处理指定的Header。 mustUnderstand属性 表示处理是否为强制性处理,如果一个节点不能识别某一个强制性Header,那么必定会产生SOAP错误。如果MustUnderstand属性的值是0,如果应用程序没有能够识别该文件头,那么必须删除此文件头。,Body元素,报体对应的元素是Body,它是Envelope元素的直接子元素并且必须出现在SOAP消息中,它通过完全限定名标识。如果Envelope元素中包

9、含Header元素,则Body元素必须位于Header元素的后面,否则的话,Body元素必须是Envelope元素的第一个子元素。 Body元素中可以包含一些条目,每一个条目都是它的直接子元素,并且必须使用命名空间进行限定,用户可以在Body元素中使用encodingStryle属性来指出这些条目所使用的编码方式。 Body元素提供了一个简单的机制来与消息的最终接收者交换必须的信息。Body的典型用法包括调度RPC调用和错误报告。 S0AP定义了一个报体条目Fault,它用来报告错误。,Fault元素,当在处理消息的过程中发生错误时,SOAP Fault元素用来在SOAP消息中携带错误和或状态

10、信息,如果消息中包含Fault元素,则它必须作为Body元素的直接子元素出现,并且最多只能出现一次。,SOAP消息的交换模式,SOAP消息是一个从发送方到接受方的单向传送,实际上SOAP消息经常以请求/响应的方式实现。,SOAP消息的交换模式,SOAP处理模型描述了一个节点上的SOAP处理器在接收到一条SOAP消息时所采取的动作。一个SOAP节点必须按照以下的顺序来处理SOAP消息: 确定节点的角色,这可以使用SOAP封装(包括报头条目和报体)中的内容来确定。 识别所有定向到该节点的强制报头条目。 如果上一步中识别的一个或多个报头条目不被该节点所理解,则产生一个SOAP MustUnderst

11、and错误,并取消所有后续的处理。与报体相关的错误不能在这一步里产生。 处理所有定向到该节点的报头条目,并且如果该节点是最终接收者,则还要处理报体。S0AP节点必须处理所有定向到它的报头条目,但可以选择忽略哪些定向到它的非强制报头条目的处理。 在中间节点的情况下,删除所有定向到该节点的报头条目(不管报头条目是被处理还是被忽略,都必须删除),并可以插入新的报头条目。,SOAP协议绑定框架,SOAP消息交换模型描述了对所有SOAP节点都通用的处理过程,绑定规范的目的是扩充这些核心规则,主要是通过添加特定于绑定和底层协议通信方式的处理过程来实现。,SOAP协议绑定框架,绑定框架的日标是: 描述对所有

12、绑定规范都通用的需求和概念。 方便对支持通用特性的绑定曲描述。多个绑定可以提供某个指定的可选特性,比如消息的可靠分发,这可以直接依赖于底层协议的特性来实现,也可以通过在绑定中提供相应的程序逻辑来实现。这种特性可以以一种一致的方式呈现给应用程序,而不管使用哪一个绑定。,SOAP编码,XML允许非常灵活的数据编码方式。S0AP定义了一个较小的编码规则集合。 SOAP编码格式基于一个简单的类型系统,概括了程序语言、数据库和半结构化数据等类型系统的共同特性。一个类型可以是一个简单类型,比如字符串、整数和故举等,也可以是由几个部分组合而成的复合类型,其中,每个部分都有自己的类型,比如定单类和报表类等。,

13、简单类型,SOAP采用XML架构规范中定义的内建数据类型作来它的简单类型,示例:500(int类型),3141592653E+1(float类型),”XML Web Service”(String类型)等等。 SOAP声明元素 45,枚举,XML架构规范中定义丁一种称为枚举(enumeration)的机制。SOAP数据模型直接采用了这种机制。 枚举表示一组不同的名字。一个特定的枚举就是对应于特定基类型的不同值的列表。例如,颜色名称集合(“Green”、“Blue”和“Brown”)可以定义为基于字符串类型的枚举,而值(“1”、“3”和“5)则可能是一个基于整数类型的枚举等。XML架构规范可以用

14、来定义放举类型。在下面架构示例中, EyeColor定义为基类型是字符串的枚举,可能的值是“Green”、 “Blue”或“Brown其他还可以使用字节数组,多态访问器,复合类型等等,SOAP用于RPC,S0AP的设计目标之一就是使用XML的可扩充性和灵活性来封装远程过程调用功能。在使用HTTP作为底层传输协议的情况下,RPC调用映射到Http请求,RPC响应映射到Http响应。但是,把SOAP用于RPC并不局限于HTTP协议绑定。 调用一个RPC需要以下信息: 日标SOAP节点的URl 过程或方法的名称 可选的过程或方法签名 过程或方法的参数 可选的报头数据 SOAP依赖于协议绑定来提供携带

15、URL的机制。例如,对于HTTP来说,请求URL表示被调用的资源除了必须是一个合法的URL外,SOAP没有对它的形式施加其他的限制。,传输层消息交换模式,TMEP(Transport Message Exchange Pattem,传输层消息交换模式)是一个用于在SOAP节点之间交换消息的模板。 传输层消息交换模式描述了一个传输层消息交换的生命周期、多个消息之间的关系以及消息交换的正常和异常终止。 传输层绑定规范可以支持一个或多个使用URL命名的传输层消息交换模式。,默认的HTTP绑定,HTTP是一个众所周知的连接模型和消息交换模型。客户通过URL标识服务器并通过底层的TCPIP 网络连接到它

16、,然后在相同的连接上发出HTTP请求消息并接收HTTP响应消息。HTTP隐含地把它的请求消息与响应消息相关联,因此,使用这个绑定的应用程序可以推断HTTP请求主体中的SOAP消息与HTTP响应返问的SOAP消息之间的关系。类似地,HTTP通过URL标识服务器端点,它也可以用来标识节点上的SOAP处理器。 HTTP允许初始客户与请求URL标识的服务器之间存在多个中间节点,在这种情况下,请求响应模型就由一系列的请求响应对组成。 注意: HTTP中间节点与SOAP中间节点是不同的,消息交换操作,请求SOAP节点的行为,失败,SOAP节点的状态转换,响应SOAP节点的行为,响应SOAP节点上的状态转换

17、。,失败,响应S0AP节点上的状态转换,SOAPAction特性,默认的HTTP绑定规范在“http:/www.example.org/2001/12/soap/bindings/defaultHTTP/SOAPAction/”中定义了一个特定于绑定的特性SOAPAction,这个特性是一个可选的特性,它位于SOAP消息封装(Envelope元素)的外部,以HTTP标题字段的形式使用。这个特性的用法中SOAP接收者指定。,总结,SOAP消息可以用来直接交换文档,即直接把所交换的内容编码成Body元素的子元素,这种消息交换方式称为文档方式。 SOAP消息也可以用来执行RPC调用,这种消息变换方式称为RPC方式。在这种情况下,Body元素有着特定的格式:Body元素个只包含一个对应于被调用力法的了元素,其中又包含对应于方法参数的子元素。远程方法的调用和调用结果都以这种方式进行传送。 SOAP协议可以绑定在多种不同的底层协议上,比如HTTP协议、SMTP协议或TCP协议。其中HTTP协议是SOAP最常用的传输层协议, SOAP主要使用它的POST方法来传较SOAP消息。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1