SOAP协议的相关应用和总结

网络 网络管理
文章中主要对SOAP协议的RPC以及相关应用做了介绍。希望对大家理解这个协议有一些帮助。那么具体内容请浏览正文吧。

前面我们对SOAP协议进行了介绍。我们了解,并且掌握了这部分的原理知识。了解到在一些重要的应用中,这个简单对象访问协议起到了很重要的作用。这里我们主要分析一下RPC以及SOAP协议应用等方面的内容。

SOAP-RPC    

SOAP消息本质上是一种从发送方到接收方的单向传输,但是SOAP经常组合到实 现请求/响应机制中。要让RPC使用SOAP,必须遵循几条规则。首先,请求和响应 消息必须被编码成结构类型。对一个操作的每一个输入参数,都必须有一个同名 元素(或输入结构的成员)作为参数。对每一个输出参数,都必须有一个名称匹 配的元素(或输出结构的成员)。

基于RPC的观点,会省略一些更早一点显示的SOAP消息。只带有报文部分的SOAP请求与响应封套如下所示:

请求 DEF响应 22.50请求要调用GetLastTradePrice方法。注意响应定义了 GetLastTradePriceResponse操作。对附加响应到响应操作尾部的 一个常用的SOAP调用规则是:创建响应结构。这种输出结构包含一个名称为 price的元素,它返回方法调用的结果,假定为浮点型。

在SOAP封套中没有什么地方的数据类型是显式声明的,注意到这一点很重要,这样如果只查看SOAP消息,就不会知道符号类型或结果参数price(价格)的类 型。客户端应用程序一般通过“Section 5”编码定义数据类型,或通过与服务器 私下达成的协议来定义数据类型。在任何一种情况下,这些包含在SOAP消息中的 定义都不是显式的。

***,为了进行RPC,需要一种低级协议如HTTP。尽管SOAP1.0规范强制要求 使用HTTP作为传输协议,但SOAP1.1规范(及其姊妹规范“带有附件的SOAP消息” )允许使用FTP、SMTP、甚至(可能)原始的TCP/IP套接字。所有这些对SOAP通用的序列化和编码规则,也适用于RPC参数。

SOAP协议应用   
  
Internet上某些地方的客户端应用程序使用Web服务。

Web服务(通过SOAP)显示对象方法。

对象方法访问Web上任意位置的远程数据。

对这些网络命题应用传递逻辑,我们可以为Web服务和SOAP协议下一个总的结论:

某些位置的客户端可以使Web上任意位置的数据。这就是所要证明的。

下面是更加详细一点的用例。

SOAP客户端使用UDDI注册来查找Web服务。不用直接操作WSDL,大多数情况下SOAP应用程序将硬连接到使用特定类型的端口和特定样式的绑定,并且它将 通过UDDI动态配置要调用的、与发现的Web服务匹配的服务地址。客户端应用程序创建SOAP消息,它是一个可执行想要的请求/响应操作的 XML文档。客户端把SOAP消息传送给监听SOAP请求的Web服务器上的JSP或ASP页面。 SOAP服务器解析SOAP包并在其领域调用合适的对象方法,在SOAP文档中包含的参数中传递。在SOAP服务器接收消息之前,中间处理节点可以执行SOAP报 头指示的特殊功能,可视情况确定是否执行这步操作。请求对象执行指示的功能,并返回数据给SOAP服务器,它把响应打包到SOAP封套中。服务器把SOAP封套包裹在要发送回请求机器的响应对象中,如 servlet或COM对象。客户端接收对象,剥离出SOAP封套并把响应文档发送给最初发出请求的程 序,完成请求/响应循环。

小结    

SOAP协议是一种基于XML的协议,它用于在分布式环境中发送消息,并执行远程过 程调用。使用SOAP,不用考虑任何特定的传输协议(尽管通常选用HTTP协议), 就能使数据序列化。用SOAP来构建平台与语言中性的互操作系统是一个好的选择。总之,SOAP和 Web服务已为在XML上构建分布式应用程序基础结构所需的一切都考虑好了。通过解决COM和Java组件对象模型之间的冲突,SOAP把多个平台在访问数据时所出现的 不兼容性问题减至最少。先把这些讨论放在一边,SOAP是一种适用于所有类型的对象实体的理想的媒介 即使对于像Brad Pitt和Edward Norton之类的好莱坞电影角色也可用作 一种通信媒介。就像在电影中一样,期待着这种新技术带来震撼世界的效果。

责任编辑:佟健 来源: 网络整理
相关推荐

2010-09-02 16:39:30

SOAP协议

2010-09-10 14:48:05

2010-07-14 17:16:35

SOAP协议

2010-07-14 17:29:36

SOAP协议

2010-09-02 16:34:13

SOAP协议

2010-09-10 15:18:28

SOAP协议

2011-12-12 16:47:38

J2MESOAP协议

2010-09-02 16:46:52

SOAP协议

2010-09-10 15:04:40

SOAP HTTP

2009-12-28 15:01:39

WPF树应用

2010-07-06 15:50:12

TCP和UDP协议

2010-08-29 21:21:18

DHCP协议

2010-06-25 15:38:31

OSPF协议

2010-07-06 16:53:22

NetBIOS协议

2009-12-31 10:21:53

Silverlight

2010-06-17 15:19:52

WAP协议栈

2010-06-30 10:26:43

2010-06-29 15:51:22

Linux SNMP协

2010-06-28 10:57:07

UDP协议

2010-06-29 16:10:03

SNMP协议
点赞
收藏

51CTO技术栈公众号