`
wind_bell
  • 浏览: 291346 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多
SOAP(Simple Object Access Protocol )简单对象访问协议:是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。
SOAP包括四部分:
SOAP封装(envelop):封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;
SOAP编码规则(encoding rules):用于表示应用程序需要使用的数据类型的实例;
SOAP RPC表示(RPC representation):表示远程过程调用和应答的协定;
SOAP绑定(binding):使用底层协议交换信息。
虽然这四个部分都作为SOAP的一部分,作为一个整体定义的,但他们在功能上是相交的、彼此独立的。特别的,信封和编码规则是被定义在不同的XML命名空间(namespace)中,这样使得定义更加简单。
SOAP的两个主要设计目标是简单性和可扩展性。这就意味着有一些传统消息系统或分布式对象系统中的某些性质将不是SOAP规范的一部分。比如:分布式垃圾收集 (Distributed garbage collection)、成批传送消息(Boxcarring or batching of messages)、对象引用 (Objects-by-reference(which requires distributed garbage collection))、对象激活 (Activation(which requires objects-by-reference))。

SOAP 使用 HTTP 传送 XML,尽管HTTP 不是有效率的通讯协议,而且 XML 还需要额外的文件解析(parse),两者使得交易的速度大大低于其它方案。但是XML 是一个开放、健全、有语义的讯息机制,而 HTTP 是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛的应用。但是如果效率对你来说很重要,那么你应该多考虑其它的方式,而不要用 SOAP。


客户端发送请求时,不管客户端是什么平台的,首先把请求转换成XML格式,SOAP网关可自动执行这个转换。为了保证传送时参数,方法名,返回值的唯一性,SOAP协议使用了一个私有标记表,从而服务端的SOAP网关可以正确的解析,这有点类似于COM/DCOM中的桩(STUB)。转化成XML格式后,SOAP终端名(远程调用方法名)及其他的一些协议标识信息被封装成HTTP请求,然后发送给服务器。如果应用程序要求,服务器返回一个HTTP应答信息给客户端。与通常对HTML页面的HTTP GET请求不同的是,此请求设置了一些HTTP HEADER,标识着一个SOAP服务激发,和HTTP包一起传送。例如:对于一个询问股票价格的应用程序,服务器端具有组件提供某股票当前的价格,组件是COM或CORBA在服务器上建立的。客户端发送一个SOAP请求给服务器询问股票价格。服务器依赖于服务器上的SOAP网关,使用内嵌的HTML对象调用合适的方法,然后把得到的价格通过SOAP应答传给客户端。

与SOAP相关的一些标准:

  HTTP 1.0 or greater(http://www.w3.org/Protocols/HTTP/ietf-http-ext)

  the core W3C XML recommendation(http://www.w3.org/TR/1998/REC-xml-19980210)

  W3C XML namespace recommendation(http://www.w3.org/TR/REC-xml-names).

  XML Schema(http://www.w3.org/TR/xmlschema-1/)

  支持SOAP的一些公司产品:

  Organization Product

  Rogue Wave Nouveau ORB

  Iona Orbix 2000

  ObjectSpace Voyager

  Digital Creations Zope, the Python Application Server

  UserLand Frontier groupware product

  Microsoft Windows DNA 2000

  SOAP是一个协议,与编程语言无关。实际上,许多语言已经开始支持SOAP,如:java,c/c++,vb,c#,perl,php.下面列出了在Java/C++/Perl/ADA/Python环境下SOAP的执行工具:

  Java: Apache SOAP , DevelopMentor's implementation, IdooXoap from ZVON

  Python: PythonWare (client side only)
C++: IdooXoap from ZVON

  Perl: SOAP::Lite

  ADA: An ADA implementation
 
  Microsoft Visual Studio: The Microsoft SOAP toolkit.



分享到:
评论

相关推荐

    soap1.1和soap1.2区别

    SOAP 1.1 和 SOAP 1.2 区别详解 SOAP(Simple Object Access Protocol)是一种基于 XML 的轻量级协议,用于在网络上进行数据交换。SOAP 1.1 和 SOAP 1.2 是两个不同的版本,它们之间存在一些关键的区别。 首先,从...

    拼接soap,判断soap是否连接成功,返回接口的信息,解析soap报文,解析后的soap转成实体

    在IT行业中,尤其是在Web服务开发领域,SOAP(Simple Object Access Protocol)是一种常见的用于交换结构化信息的协议。它基于XML,常用于实现分布式系统之间的通信。本教程将围绕标题和描述中的关键知识点展开,...

    Web Service SOAP Client set SOAP Header

    在Web服务领域,SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于交换结构化和类型化的信息。当涉及到Web Service客户端与服务器之间的交互时,有时需要在SOAP消息中添加额外的信息,例如身份验证或...

    soap-build生成Soap接口请求报文

    在IT行业中,SOAP(Simple Object Access Protocol)是一种用于交换结构化信息的标准协议,常用于Web服务。它基于XML,提供了一种在不同应用程序之间交换数据的统一方式。本篇文章将详细探讨如何使用“soap-build”...

    apache.soap...jar包,soap 调用webservice核心包

    Apache SOAP是Java平台上的一个开源库,用于构建和消费基于SOAP(Simple Object Access Protocol)的Web服务。SOAP是一种XML格式的协议,它允许应用程序通过HTTP或其他传输协议进行远程调用,实现了分布式计算的能力...

    MFC下实现SOAP服务端和SOAP客户端

    在Microsoft Foundation Classes (MFC)框架下实现SOAP(Simple Object Access Protocol)服务端和客户端是一项技术密集型的任务,涉及到网络通信、XML解析以及MFC库的深入应用。SOAP是一种基于XML的协议,用于在...

    thinkphp下使用soap

    thinkphp内使用soap 把下载的soap解压放到ThinkPHP\Extend\Vendor目录下 名字是soap 调用方法: function test($url,$method,$data){ vendor('soap.class#nusoap'); //从soap目录导class.nusoap.php类文件 $...

    SoapToolkit30 安装包

    SOAP(Simple Object Access Protocol)是一种轻量级的、基于XML的协议,用于在Web上交换结构化的和类型化的信息。SOAP允许应用程序通过HTTP等传输协议进行通信,这使得它成为跨平台、跨语言的Web服务交互标准。SOAP...

    soap请求的工具

    SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化的信息。SOAP请求是Web服务交互的核心,它允许客户端发送数据到服务端,并接收响应。本工具专为测试SOAP请求及查看其...

    Laravel开发-laravel-soap Soap 协议客户端

    而`laravel-soap`是Laravel的一个扩展包,专门用于处理SOAP(Simple Object Access Protocol)协议,这是一种基于XML的网络通信协议,常用于不同系统间的远程调用和服务交互。 **SOAP协议简介** SOAP是一种轻量级的...

    SOAP调用webservice例子

    SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化信息。它允许不同系统间进行远程过程调用,即使它们运行在不同的操作系统或使用不同的编程语言。SOAP消息通常通过...

    soap 所需全部jar包

    SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化的信息。在Java环境中,为了实现SOAP通信,通常需要一些特定的库支持,这些库通常以JAR(Java Archive)文件的形式...

    Nohttp封装,soap封装

    【标题】"Nohttp封装,soap封装"涉及的是在Android应用开发中,对网络请求库Nohttp的二次封装以及SOAP协议的实现。这两个技术都是移动应用中与服务器交互的重要手段。 【Nohttp封装】 Nohttp是一个轻量级的网络请求...

    java调用soap接口案例

    Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本案例主要关注如何使用Java来实现SOAP请求并获取响应,具体我们...

    Soap WebService 调试工具

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方式,而SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于交换结构化的、机器可读的数据。SOAP WebService调试工具是开发人员用来测试、验证和...

    .NET 访问JAVA的WEBSERVICE使用SOAP头

    本文将深入探讨如何在.NET应用中访问Java的WebService,并通过SOAP头进行身份验证的过程,这一过程对于实现安全的跨平台通信至关重要。 ### 1. SOAP头在Web服务中的作用 SOAP(Simple Object Access Protocol)是...

    基于Servlet发送、接收SOAP消息的java源程序

    【标题】基于Servlet发送、接收SOAP消息的Java源程序 在Web服务开发中,SOAP(简单对象访问协议)是一种常见的消息传输协议,用于在不同系统间交换结构化和类型化的信息。Servlet作为Java Web应用程序的核心组件,...

    调用pb开发的webserver(SOAP 1.2)

    调用pb开发的webserver(SOAP 1.2) /* POST /webservice/n_webservice.asmx HTTP/1.1 Host: localhost Content-Type: application/soap+xml; charset=utf-8 Content-Length: length <soap12:Envelope xmlns:xsi=...

    C#winform下WebService Soap应用

    C# Winform 下的 WebService Soap 应用 在本文中,我们将详细介绍如何使用 C# 语言在 Winform 平台下开发 WebService Soap 应用,以实现列车时刻、手机归属、QQ 在线、航空时刻等查询工具。 WebService Soap 简介 ...

Global site tag (gtag.js) - Google Analytics