03-Web服务实用技术(SOAP).ppt
上传人:茂学****23 上传时间:2024-09-11 格式:PPT 页数:67 大小:1.5MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

03-Web服务实用技术(SOAP).ppt

03-Web服务实用技术(SOAP).ppt

预览

免费试读已结束,剩余 57 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Web服务实用技术第三章SOAP主要内容第一节SOAP概述SOAP是一个独立于任何特定传输协议的XML消息协议是复杂的分布式对象通信技术的轻量级替代物源自BizTalk(Microsoft/UserLand/DevelopMentor)W3C的标准BasedonXMLSOAP最早由DaveWinner、DonBox和BodAtkinson提出。在1997年,Microsoft开始考虑基于XML的分布式计算,其目标是使应用程序能够使用HTTP上层的远程过程调用(RPC)相互通信。DevelopMentor和Userland加入到了讨论。在1998年初,SOAP名字就已经被确定。Userland在1998年发布了一个XML-RPC规范。1999年9月SOAP0.9提交IETF(Internet工程任务组)。2000年5月8日,SOAP1.1作为Note提交W3C。IBM发布JavaSOAP实现,并捐给开放源代码组织ApacheXMLProject。Sun公司将Web服务集成到J2EE中。2000年9月13日,W3C组建了XML协议工作组,专门负责设计XML协议,以便成为基于XML分布式计算的核心。这个工作组将SOAP1.1作为基础,并于2001年7月9日提交了第一份工作组草案SOAP1.2。2003年6月24日SOAP1.2成为W3C推荐标准。2007年4月27日W3C发布SOAP1.2推荐标准第二版。SOAP为在一个松散的、分布的环境中使用XML对等地交换结构化和类型化信息提供了一个简单且轻量级的机制。支持应用程序与应用程序之间的通信。应用于B2B的通信以及企业应用集成。以独立于各种编程语言或平台的方式来构造消息、处理消息,从而使用不同编程语言编写的程序之间具有互操作性,并能够在不同的操作系统上运行。通过对模块中特定格式编码的数据的重编码机制来表示应用语义。SOAP-What?SOAP-What?使用RPC进行通信需对服务接口达成一致需对通信协议达成一致使用ORB服务可以使用Internet,但是需要更改安全设置使用XML消息,信封可封装任意内容和附件不需要特殊的网络设置用XML描述服务(即WSDL)用XML描述消息定义通信单元的构成:一个SOAP封套封装了所有其他的信息。一个消息可以有一个消息体,消息体中可以包含任何XML格式数据。错误处理机制:标识错误源和导致错误的原因,并允许错误诊断信息在共享者和交互者之间传递。可扩展机制:使用XMLSchema和名字空间技术,灵活扩展元素。灵活的数据表示机制:允许交换已经以某种格式序列化的数据,同时也提供了以XML格式表示诸如编程语言数据类型这样的抽象数据结构的规则。表示远程过程调用(RPC)和作为响应的SOAP消息的约定,并且便于映射为过程式编程语言结构。支持以文档为中心的方法。将SOAP消息绑定到HTTP上,因为HTTP是Internet上最常用的通信协议。第二节SOAP消息结构基于XML的协议,由四部分组成:信封(Envelope):作为描述消息中的内容以及如何处理消息的信息框架编码规则(EncodingRules):用于表示应用程序需要使用的数据类型的实例绑定(Binding):定义底层通信协议,进行消息交换RPC:远程过程调用和返回的约定SOAP消息处理模型SOAP消息结构SOAP消息剖析SOAP消息例子SOAP消息例子SOAP消息例子SOAPEnvelope元素信息项是SOAP消息的最外层元素,它具有:值为Envelope的本地名称值为http://www.w3.org/2003/05/soap-envelope的命名空间名称在它的attributes中有零个、一个或多个由命名空间限定的属性信息项在它的children中按顺序有一个或两个元素信息项,次序如下:一个可选的头元素信息项:Header一个必选的体元素信息项:BodyencodingStyle属性:encodingStyle属性信息项指出了对SOAP消息部分内容进行序列化的编码规则SOAP的全局encodingStyle属性被用于指明在SOAP消息中使用哪种编码规则。encodingStyle属性信息项可以在下述地方出现,其作用范围包括该元素的内容和所有其子元素中未使用该属性的所有子元素:SOAP头块SOAP体元素信息项的子元素信息项——如果该子元素不是SOAP故障元素信息项SOAPDetail元素信息项的子元素信息项上述三者的任意子元素encodingStyle属性信息项不能出现在除上述SOAP信息集之外的其它任何元素中SOAP提供了一个可伸缩的机制用于在分散的模块化的环境下扩展SOAP消息,而通讯双方并不需要有预先的