soap讲义ppt

上传人:第*** 文档编号:49288674 上传时间:2018-07-26 格式:PPT 页数:36 大小:833.50KB
返回 下载 相关 举报
soap讲义ppt_第1页
第1页 / 共36页
soap讲义ppt_第2页
第2页 / 共36页
soap讲义ppt_第3页
第3页 / 共36页
soap讲义ppt_第4页
第4页 / 共36页
soap讲义ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《soap讲义ppt》由会员分享,可在线阅读,更多相关《soap讲义ppt(36页珍藏版)》请在金锄头文库上搜索。

1、MSE Web ServicesMSE Web Services及其应用及其应用Web ServicesWeb Services本次课程内容nSOAPWhat is SOAPn简单对象访问协议 SOAP(Simple Object Access Protocol)是在松散的、分布的环境中使用XML交换结构 化的和类型化的信息的一种简单协议。nXML的标准化为跨平台之间的交流带来了极大的方便,而 SOAP的实质就是把这种交流的方式标准化了nSOAP本身并不定义任何应用语义,如编程模型或特定语 义实现,它只定义了一种简单的以模块化的方式包装数据 的机制。n将数据/对象打包成XML格式的数据publ

2、ic class Person String name; int age; /方法的定义. zhang3 20What is SOAPnSOAP没有定义任何底层的传输协议n可以使用HTTP、FTP、SMTP或者JMS,甚至是自定义协议 来传输SOAP报文n一般使用HTTP协议n一种协议,类似于:nIIOP for CORBAnJRMP for RMIn与上述协议的区别:n XML is used for data encodingn“text” based protocol vs. “binary” protocolnSOAP的调用效率比较低nHTTP不是有效率的通信协议nXML需要额外的文件

3、解析选择 SOAP 的原因n它的提出主要源于处理分布式计算中的RPC(远 程过程调用)n已有的分布式计算的解决方案,包括DCE, DCOM , CORBA等n上述解决方案的缺点:n 实现复杂,许多计算平台没有足够的能力来完成一个完 整的DCOM或者CORBA方案n它们必须使用自己特定的协议,这样造成混乱n不能跨越防火墙,基本上是局域网技术选择 SOAP 的原因n它是使用 XML 传送以文档为中心的消息以及远程 过程调用的标准化封装机制。 nSOAP 很简单;它基本上是一个用 XML 信封作 为有效负载的 HTTP POST。 nSOAP 定义了一个标准机制,使用 SOAP 报头和 对操作或函数

4、进行标准编码的消息。 nSOAP 消息支持 Web 服务体系结构中的发布、 查找和绑定操作。SOAP不具有的内容n整个技术标准基于文本,“简单和扩展并重”,但 是有很多重要的事项没有被包括进来:n分布式垃圾回收n消息的批处理n对象引用n对象的激活使用 SOAP 的 XML 消息传递 n使用 SOAP 的 XML 消息传递一个简单的SOAP请求/响应n假设有上述接口定义的服务存在n客户端在远程调用sayHelloTo方法时,提供一个名字 ,期望返回一个字符串n假设Java RMI、CORBA、DCOM都不存在,开发者必 须负责将方法调用串行化,并把消息发给远程服务器。n一个简单的方式是使用XML

5、public interface Hello public String sayHelloTo(String name); 一个简单的SOAP请求/响应n用XML打包请求n将接口名作为根结点n方法和参数作为结点n将请求发送给服务器n不创建自己的TCP/IP消息,利用HTTPn将请求封装成HTTP POST请求格式发出John一个简单的SOAP请求/响应n服务器接收到请求,解码XML,处理请求,然后以 XML格式向客户发送响应n与请求比较,方法的结点名字变为请求的方法名后缀 Responsen客户程序知道自己调用了哪个方法,根据方法名后缀 Response寻找调用方法的返回值Hello John

6、, How are you?SOAP协议nSOAP由4部分组成:nSOAP封装(SOAP Envelope)n构造定义了一个整体的表示框架,可用于表示n在消息中的是什么n谁应当处理它n是“可选的”还是“强制的”nSOAP编码规则(SOAP Encoding Rules)n定义了一套编码机制用于交换应用程序定义的数据类型的 实例nSOAP RPC表示(SOAP RPC Presentation)n定义了一个用于表示远程过程调用和响应的约定nSOAP绑定(SOAP Binding)n定义了一种使用底层传输协议来完成在节点间交换SOAP 封装的约定。SOAP术语n协议概念nSOAPn关于SOAP消息

7、的格式和处理规则、为沿着SOAP消息路 径交换信息而需要的不同应用程序之间生成和接收SOAP 消息的交互过程的简单控制机制等的一套规范和约定nSOAP绑定n为传输的需要而将SOAP消息在另一个底层协议之上或之 内传输的一套规范或规则。n典型的SOAP绑定包括在HTTP消息中传送SOAP消息 或在TCP之上传送SOAP消息等。nSOAP节点nSOAP节点根据SOAP定义的整套规范来处理SOAP消息。nSOAP节点有责任遵守SOAP消息交换的规则以及提 供通过依赖底层协议的SOAP绑定来访问的服务。n任何不符合SOAP约定的情况都将导致SOAP节点产 生一个SOAP错误SOAP术语n数据封装概念n

8、SOAP消息nSOAP消息是在对等的SOAP节点间通信的基本单位nSOAP封装nSOAP封装(SOAP Envelope)是SOAP规范中定义的 SOAP消息在文法上的最外层结构。它包含了所有其它的 元素。至少定义了SOAP命名空间。nSOAP条目nSOAP条目是一个文法上的结构,它用于包含一个逻辑上 的单一元素,这一元素是SOAP节点处理的。封装在 SOAP header中SOPA条目成为Header条目,而封装在 SOAP body中的SOAP条目为Body条目SOAP术语n消息发送者和接收者概念nSOAP发送者n发出SOAP消息的节点nSOAP接收者n接收SOAP消息的节点nSOAP消息

9、路径n为传送一个简单的SOAP消息而要经过的一组SOAP发送 者和SOAP接收者。其中包含了初始SOAP发送者、0个 或多个SOAP中介以及最终SOAP接收者。SOAP术语n消息发送者和接收者概念n初始SOAP发送者nSOAP消息的最初产生者,消息路径中的第一个节点nSOAP中介n中介既是发送者,又是接收者。处理一组确定的SOAP条 目,然后将SOAP消息转发给消息路径上的下一个SOAP 节点n最终SOAP接收者n由初始SOAP发送者指定的通过SOAP消息路径传送 SOAP消息的最终SOAP接收者。如果在SOAP消息路径 中有SOAP节点产生了SOAP错误,则消息将不会到达最 终接收者。SOA

10、P消息nSOAP消息由一个强制的SOAP Envelope、一个 可选的SOAP Header和一个强制的SOAP Body 组成的XML文档。nSOAP Envelopen表示一个SOAP消息的顶级元素nSOAP Headern能够被SOAP消息路径中任意的SOAP接收者处理的一组 SOAP条目。nSOAP定义了很少的一些属性来用于指明谁可以处理该特 性以及它是可选的还是强制的。nSOAP BodynBody为该消息的最终接收者所想要得到的那些强制信息 提供了一个容器。此外,SOAP定义了Body的一个子元 素Fault用于报告错误。SOAP消息n具有附件的SOAP消息结构SOAP消息nSO

11、AP HeadernUsed for extensionn Authenticationn Transactionn etc.n AttributesnmustUnderstandnActornIndicates target of SOAP header blocknValue is in URI form, Example: http:/www.w3.org/2001/06/soapenvelope/actor/nextn Absence of it indicates target is “ultimate SOAP receiver“SOAP消息nSOAP Headern一个SOAP

12、Header例子当使用的是FTP这种不提供发送方信息的协议时,在信息头中 就可以提供返回路径SOAP消息nSOAP Bodyn由 Body blocks组成nBody blocks 可以是nApplication datanRPC method and parametersnSOAP faultSOAP消息nSOAP BodynSOAP Faultn Used to carry error and/or status informationn Four sub-elementsnfaultcode n faultstring:给人读的错误描述信息nfaultactorndetailnPre-d

13、efined SOAP faultcode valuesnVersionMismatch: Invalid namespace in SOAP envelopen MustUnderstand: Receiver mode cannot handle mustUnderstand SOAP header blocknClient: Indicates client side errornServer:Indicates server side errorSOAP消息nSOAP BodynSOAP Faultn一个例子:请求SOAP消息SOAP消息nSOAP BodynSOAP Faultn一个

14、例子:应答SOAP消息SOAP消息处理nSOAP的最终接收者nProcess SOAP messagenGenerate SOAP response or SOAP faultsnSend additional SOAP messagen强制处理的信息nMust process SOAP blocks with mustUnderstand attribute set to 1nIf it cannot handle it, it must generate SOAP Faultn May process or ignore other SOAP blocksSOAP编码n定义了一套编码机制用

15、于交换应用程序定义的数 据类型的实例n在SOAP消息中必须指明编码规则,以使得接收端能够 正确的解码数据n可以使用不同的编码规则n基于W3C XML Scheman Simple valuesn Compound valuesRPC vs. MessagingSOAP RPC表示n利用XML的可扩展性和可伸缩性来包装和交换 RPC调用。n为实施一个方法调用,需要以下信息n目标SOAP节点的URIn方法名n可选的方法或过程的特征n方法或过程的参数n可选的头数据nRPC调用和响应都是在SOAP Body元素中传递n一个方法调用被建模成一个结构structn一个方法响应被建模成一个结构structn

16、方法调用错误使用SOAP Fault元素来编码SOAP请求The URI of the target objectParametersMethod nameSOAP响应SOAP调用错误SOAP-ENV:Server Server ErrorSorry, my silly constraint says that I cannot say hello on Tuesday.1001绑定到HTTP的SOAPn将SOAP绑定到HTTP上可以利用HTTP丰富的特 性nSOAP很自然的利用HTTP的请求/响应机制 POST http:/www.SmartH HTTP/1.0 Content-Type: text/xml; charset=“utf-8“ Content-Length: 587 SOAPAction: “http:/www.SmartH 200 OK Content-Type:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号