当前位置:文档之家› soap协议

soap协议

概述

SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

简介

四个部分

soap。n.(英文)肥皂

SOAP:简单对象访问协议

(SOAP:Simple Object Access Protocol)

SOAP 包括四个部分:

SOAP 封装:它定义了一个框架, 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。

SOAP 编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。

SOAP RPC 表示:它定义了用于表示远程过程调用和应答的协定。

SOAP 绑定:定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。SOAP 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求/ 应答的模式。所有的SOAP 消息都使用XML 编码。一条SOAP 消息就是一个包含有一个必需的SOAP 的封装包,一个可选的SOAP 标头和一个必需的SOAP 体块的XML 文档。

把SOAP 绑定到HTTP 提供了同时利用SOAP 的样式和分散的灵活性的特点以及HTTP 的丰富的特征库的优点。在HTTP上传送SOAP 并不是说SOAP 会覆盖现有的HTTP 语义,而是HTTP 上的SOAP 语义会自然的映射到HTTP 语义。在使用HTTP 作为协议绑定的场合中,RPC 请求映射到HTTP 请求上,而RPC 应答映射到HTTP 应答。然而,在RPC 上使用SOAP 并不仅限于HTTP 协议绑定。

SOAP也可以绑定到TCP和UDP协议上。

协议结构

SOAP 消息格式:

SOAP 标头

Attributes>

Attributes>

目前主要在web服务中运用。

语法规则

这里是一些重要的语法规则:

SOAP 消息必须用XML 来编码

SOAP 消息必须使用SOAP Envelope 命名空间

SOAP 消息不能包含DTD 引用

SOAP 消息不能包含XML 处理指令

SOAP 核心技术

SOAP采用了已经广泛使用的两个协议:HTTP 和XML。HTTP用于实现SOAP 的RPC 风格的传输, 而XML 是它的编码模式。采用几行代码和一个XML 解析器, HTTP 服务器( MS 的IIS 或Apache) 立刻成为SOAP 的ORBS。SOAP 通讯协议使用HTTP 来发送XML 格式的信息。HTTP与RPC 的协议很相似,它简单、配置广泛,并且对防火墙比其它协议更容易发挥作用。HTTP 请求一般由Web 服务器软件(如IIS 和Apache)来处理, 但越来越多的应用服务器产品正在支持HTTP。XML 作为一个更好的网络数据表达方式( NDR)。SOAP 把XML 的使用代码化为请求和响应参数编码模式, 并用HTTP 作传输。具体地讲, 一个SOAP 方法可以简单地看作遵循SOAP编码规则的HTTP请求和响应, 一个SOAP 终端则可以看作一个基于HTTP 的URL, 它用来识别方法调用的目标。像CORBA/ IIOP一样, SOAP不需要具体的对象绑定到一个给定的终端, 而是由具体实现程序来决定怎样把对象终端标识符映像到服务器端的对象。

SOAP 的优点

(1) SOAP 是可扩展的。SOAP 无需中断已有的应用程序, SOAP 客户端、服务器和协议自身都能发展。

而且SOAP 能极好地支持中间介质和层次化的体系结构。

(2) SOAP 是简单的。客户端发送一个请求,调用相应的对象, 然后服务器返回结果。这些消息是XML 格式的,并且封装成符合HTTP 协议的消息。因此,它符合任何路由器、防火墙或代理服务器的要求。

(3) SOAP 是完全和厂商无关。SOAP可以相对于平台、操作系统、目标模型和编程语言

独立实现。另

外,传输和语言绑定以及数据编码的参数选择都是由具体的实现决定的。

(4) SOAP 与编程语言无关。SOAP 可以使用任何语言来完成, 只要客户端发送正确SOAP 请求( 也就

是说, 传递一个合适的参数给一个实际的远端服务器)。SOAP 没有对象模型, 应用程序可以捆绑在任何

对象模型中。

(5) SOAP 与平台无关。SOAP 可以在任何操作系统中无需改动正常运行。

PHP SOAP实例

php提供了一个专门用于soap操作的扩展库,使用该扩展库后

可以直接在php中进行soap操作。下面将介绍soap的基本操作。

一、soap扩展的使用方法

php的soap扩展库通过soap协议实现了客服端与服务器端的

数据交互操作。从php5.0后,php就自带了soap的支持。使用

soap扩展库首先需要修改php安装目录下的配置文件php.ini

来激活soap扩展库。

在php.ini文件中找到如下所示的一行代码,去掉前面的注释(;)。

;extension=php_soap.dll

修改后,重启web服务器即可激活soap扩展。在soap扩展库中,主要

包括三种对象。

1、SoapServer

SoapServer用于创建php服务器端页面时定义可被调用的函数及返回

响应数据。创建一个SoapServer对象的语法格式如下:

$soap = new SoapServer($wsdl,$array);

其中,$wsdl为soap使用得wsdl文件,wsdl是描述Web Service的一种

标准格式,若将$wsdl设置为null,则表示不使用wsdl模式。$array是

SoapServer的属性信息,是一个数组。

SoapServer对象的addFunction方法是用来声明哪个函数可以被客户端调用,

语法格式如下:

$soap->addFunction($function_name);

其中,$soap是一个SoapServer对象,$function_name是需要被调用的函数名。SoapServer对象的handle方法用来处理用户输入并调用相应的函数,最后返回

给客户端处理的结果。语法格式如下:

$soap->handle([$soap_request]);

其中,$soap是一个SoapServer对象,$soap_request是一个可选参数,用来表示

用户的请求信息。如果不指定$soap_request,则表示服务器将接收用户的全部

请求。

2、SoapCliet

SoapClient用于调用远程服务器上的SoapServer页面,并实现了对相应函数的调用

。创建一个SoapClient对象的语法格式如下:

$soap = new SoapClient($wsdl,$array);

其中,参数$wsdl和$array与SoapServer相同。

创建SoapClient对象后,调用服务端页面中的函数相当于调用了SoapClient的方法,

创建语法如下:

$soap->user_function($params);

其中,$soap是一个SoapClient对象,user_function是服务器端要调用的函数,$params 是要传入函数的参数。

3、SoapFault

SoapFault用于生成soap访问过程中可能出现的错误。创建一个soapFault对象的语法格式

如下:

$fault = new SoapFault($faultcode,$faultstring);

其中,$faultcode是用户定义的错误代码,$faultstring是用户自定义的错误信息。soapFault 对象会在服务器端页面出现错误时自动生成,或者通过用户自行创建SoapFault对象时生成。对于

Soap访问时出现的错误,客户端可通过捕捉SoapFalut对象来获得相应的错误信息。

在客户端捕获SoapFault对象后,可以通过下面的代码获得错误代码和错误信息。

$fault->faultcode;//错误代码

$fault->faultstring;//错误信息

其中,$fault是在前面创建的SoapFault对象。

约翰·“肥皂”·麦克塔维什上尉

(Cpt. John`Soap`MacTavish):《使命召唤-现代

战争》中的重要人物兼主人公。

《使命召唤4:现代战争》及《使命召唤6:现代战争2》的主角。

在4代中,还只是中士的他和队长普莱斯一同参加了SAS的所有任务,在最后一关扎卡耶夫杀死了除肥皂和普莱斯之外的所有SAS队员,但普莱斯扔给肥皂一把M1911,肥皂用这把M1911结果了扎卡耶夫的性命。使他二人转危为安,之后被赶来救援的以队长卡马洛夫为首的俄政府军所救。

而在5年后(6代)他已升任上尉(可能是因为杀死扎卡耶夫的缘故),加入141特勤队,

并成为队长。在游戏中代替普莱斯上尉的位置来指导玩家

(141特勤队的ROACH“小强”)作战。后在141特勤队的主人公“小强”死后再度成为游戏的主人公。并和普莱斯一起杀入谢菲尔德将军的基地,杀死了谢菲尔德将军,可他也身负重伤。最后被普莱斯和前来增援的尼古莱一同抬上了飞机。(肥皂和普莱斯已经成为全球通缉犯)

外号SOAP,中文名:肥皂

消息格式

SOAP在标准化消息格式环境中,可以做所有它能完成的工作。消息的主体部分是“text/xml”形式的MIME类型,并且包含一个SOAP封套。该封套是一个XML文档。封套包含了

报头(可选的)和报文(必须有的)。封套的报文部分总

是用于最终接收的消息,而报头项目可以确定执行中间处理的目标节点。附件、二进制数字及其他项目可以附加到报文上。

SOAP提供了一种让客户端指定哪个中间处理节点必须处理报头项目的方法。由

于报头与SOAP消息的主体内容是互不相关的,所以可用它们给消息添加信息,而不会影响对消息报文的处理。

例如,报头可用于为报文中包含的请求提供数字签名。在这种情形下,身份验

证/授权服务器可以处理报头项目独立于报文可以剥离信息以验证签名。

一旦通过验证,封套的其余部分将被传递给SOAP服务器,它将对消息的报文进行

处理。深入研究一下SOAP封套,有助于明了SOAP报头和报文元素的位置和用途。

剖析SOAP封套

SOAP 1.1规范提供了下面的封套示例:SOAP-ENV:mustUnderstand="1" 5DEF

在这个例子中,GetLastTradePrice请求被传送给网络上某个位置的一个存储

-引用服务。

该请求带有一个字符型参数,一个订单符号,并在SOAP响应中返回一个浮点数。SOAP 封套是表示SOAP消息的XML文档的顶层元素。XML命名空间用于将SOAP标识符与应用程序的特定标识符区分开。XML命名空间在SOAP中使用很频繁,以把消息的元素的作用域限制在一个特定的领域。理解SOAP命名空间有助于熟悉XML命名空间规范。如果您没有理解命名空间,也可以简单地把它看作一种邻近的标识符,它通过把SOAP元素与特定的位置(真实的或想像的)相关联,从而有助于惟一地标识SOAP元素。

命名空间

上面例子中的第一个命名空间参照了在SOAP消息中定义元素和属性的SOAP模式。

第二个命名空间参照了SOAP编码,即前文中讨论过的“Section 5”数据类型。由于没有指定额外的通用元素编码,这种编码将适用于整篇文档。

报头

在SOAP封套报头示例中标识的第一个元素是一个transaction(交易)元素,它带有一个命名空间属性和一个值为1的mustUnderstand属性。既然mustUnderstand的属性值设为1 ,接受该消息的服务器必须在该transaction节点上执行中间处理。您可以对此作这样的解释:服务器与客户端事先已就管理该报头元素处理的语义达成了一致,因而服务器确切地知道要处理的元素的内容,本例中元素的内容是“5”。如果接收消息的服务器不理解transaction报头的语义,它就会拒绝请求并抛出一个错误。错误元素是SOAP报文和定义良好的机制的一个特殊部分,用于把错误信息送回给客户端。

像这样的中间处理节点是SOAP可扩展性的一个例子。客户端在SOAP消息中包含这样的节点,以在可以处理消息的报文内容前,指示要发生的特殊的处理需要。要保证向后兼容不能提供这种处理的现有的服务器,只需把mustUnderstand 属性设置为0,它使操作是可选的。除了定义像上例中所示的transaction节点外,SOAP消息还可包含报头项目,它们用于指定节点执行身份验证处理、加密、状态的永久性、业务逻辑处理等。报头有助于把SOAP构建成一种可扩展的模态包模型。只需记住报头处理是完全独立于SOAP消息的报文的。

报文

上面例子中的SOAP报文包含一个XML载荷,我们可以推测RPC没有为我们对其作

详细解释。SOAP不仅是一种模态包模型,它还是一种相当神秘的包模型。没有什么迹象清楚地显示RPC将要开始做什么。我们在报文中所看到的是几个XML元素,其中一个用命名空间进行了限制。它取决于SOAP服务器理解文档语义并执行正确的处理。事实上,服务器提供了一种架构,以有意义的方式处理XML载荷。这里的“有意义”意味着服务器在某些后台数据库上调用远程过程,以为消息报文中包含的股票-符号元素接收股票价格。所有这些魔术般的操作都是在SOAP RPC幕后发生的。

SOAP-RPC

SOAP消息本质上是一种从发送方到接收方的单向传输,但是SOAP经常组合到实现请求/响应机制中。要让RPC使用SOAP,必须遵循几条规则。首先,请求和响应消息必

须被编码成结构类型。对一个操作的每一个输入参数,都必须有一个同名元素(或输入结构的成员)作为参数。对每一个输出参数,都必须有一个名称匹配的元素(或输出结构的成员)。

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

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

在SOAP封套中没有什么地方的数据类型是显式声明的,注意到这一点很重要,

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

最后,为了进行RPC,需要一种低级协议如HTTP。尽管SOAP 1.0规范强制要求使用HTTP作为传输协议,但SOAP

1.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之类的好莱坞电影角色也可用作一种通信媒介。就像在电影中一样,期待着这种新技术带来震撼世界的效果。

soap协议规范

SOAP协议规范 1. 简介 SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SO AP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使SOAP能够被用于从消息传递到RPC的各种系统。 soap包括三个部分 soap封装(见第4节)结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。 SOAP编码规则(见第5节)定义了用以交换应用程序定义的数据类型的实例的一系列机制。 SOAP RPC表示(见第7节)定义了一个用来表示远程过程调用和应答的协定。 虽然这三个部分都作为SOAP的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性在SOAP封装,SOAP编码规则和SOAPRP C协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP扩展框架[6]的情况下,SOAP 消息如何包含在HTTP消息[5]中被传送。 1.1 设计目标 SOAP的主要设计目标是简单性和可扩展性,这意味着传统的消息系统和分布对象系统的某些性质不是SO AP规范的一部分。这些性质包括: 分布式碎片收集 成批传送消息 对象引用(要求分布式碎片收集) 激活机制(要求对象引用) 1.2 符号约定 这篇文章中的关键字 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOULD", "S HOULD NOT", "RECOMMENDED", "MAY", 和"OPTIONAL"的解释在RFC-2119 [2]中。这篇文章中用到的名域前缀 "SOAP-ENV" 和"SOAP-ENC"分别与"https://www.doczj.com/doc/a810358493.html,/soap/envelope/"; 和"http://sc https://www.doczj.com/doc/a810358493.html,/soap/encoding/";关联。整篇文档中,名域前缀“xsi”被假定为与URI"https://www.doczj.com/doc/a810358493.html,/19

通过CXF开发webService接口(soap协议、maven项目)

1. 引入cxf的jar包 pom文件里面直接增加依赖 < dependency> junit junit 4.11 test org.springframework spring- webmvc 4.0.0.RELEASE org.apache.cxf apache-cxf 2.4.3 pom 2. 配置web.xml文件 < web-app xmlns= "https://www.doczj.com/doc/a810358493.html,/xml/ns/javaee" xmlns:xsi= "https://www.doczj.com/doc/a810358493.html,/2001/XMLSchema-instance" xsi:schemaLocation= "https://www.doczj.com/doc/a810358493.html,/xml/ns/javaee https://www.doczj.com/doc/a810358493.html,/xml/ns/javaee/web-app_3_1.xsd" version= "3.1" > < display-name >Archetype Created Web Application < context-param > contextConfigLocation classpath:config/spring/metadata WebService-spring.xml org.springframework.web.conte xt.ContextLoaderListener

基于J2ME平台的SOAP协议研究与应用

基于J2ME平台的SOAP协议研究与应用 基于J2ME平台的SOAP协议研究与应用 基于J2ME平台的SOAP协议研究与应用 2019-10-03 计算机信息技术 基于J2ME平台的SOAP协议研究与应用 摘要:本文对于在J2ME平台下,利用XML解析器开发SOAP协议的基本方法进行了研究,介绍了J2ME平台和SOAP协议,其中重点探讨了XML的开发,提出了一种利用XML解析器在J2ME平台上实现SOAP协议的方法,具有一定的推广价值。关键词:J2ME SOAP XML嵌入式系统 1引言 J2ME作为嵌入式系统应用平台得到了迅速的发展,JAVA语言固有的平台无关性使得基于J2ME平台的嵌入式应用系统具有广阔的前景。受限于嵌入式设备及消费类电器硬件条件的限制,J2ME平台提供的功能有限,如何能够在有限的资源下拓展J2ME的功能,使得J2ME平台能够处理SOAP协议是本文研究的重点。 目前企业应用正在向面向WEB服务的SOA架构转变,嵌入式系统与企业应用系统的连接目前还处于TCP/IP协议、HTTP协议等比较初级的阶段。随着企业应用系统提供的WEB服务日益广泛和成熟,需要J2ME平台提供处理SOAP协议的需求也越来越多。 SOA架构是目前企业应用系统广泛部署的架构,实现SOA的关键问题之一就是对

SOAP协议的支持。本文分析了在J2ME平台中实现SOAP协议处理遇到的问题,提出了相应的解决方案。 2 j2ME介绍[1] [2] [3] J2ME(Java 2 Platform Micro Edition)是为无线电子市场所设计的JAVA平台,包括JVM规范和API规范。J2ME 定义了一套类库和虚拟机技术,这些技术可以使用户、服务提供商和设备制造商通过物理(有线)连接或无线连接,按照需要随时使用丰富的应用程序。J2ME同时提供了Java语言一贯的跨平台性和安全性。 为了支持用户和嵌入式市场提出的灵活性和可定制性要求,J2ME被设计得更加模块化和可缩放化。J2ME在设备原有的操作系统上建造了3层软件来实现这种要求: 1.JVM层:这层基于宿主操作系统,按照某一种J2ME的配置实现了JVM。 2.配置层:这层对于用户可见度要低一些,但对简表层非常重要。它针对不同市场的需求,定义了Java虚拟机的最小功能集合和Java类库的最小集合。在J2ME设备中,JVM与配置层紧密相连,它们体现了每一类设备的基本功能。 3.简表层:这层对于用户和应用程序提供者来说是最常见的。它针对特定市场的需求,定义了Java虚拟机的最小功能集合和Java类库的最小集合。 J2ME组件都围绕一个中心,这些中心被称为configuration(配置),它们中间的每一个都是用于消费电子和嵌入设备的特别的类。目前配置分为CLDC和CDC 两种。 Connected limited device configuration(有限连接设备配置,简称 CLDC)定义支持“devices that you hold in your hand(握在手中的设备)”的应用程

SOAP协议在XML数据传输中的应用

第16卷 第4期长 春 大 学 学 报V o.l16 N o.4 2006年8月J OU RNAL OF CHANGCHUN UN I VER SI TY A ug.2006 文章编号:1009-3907(2006)04-0052-04 SOAP协议在X ML数据传输中的应用 隋菱歌,殷树友,黄 岚 (长春金融高等专科学校计算机系,吉林长春 130022) 摘 要:随着计算机技术和电子商务的发展,传统的数据交换技术已不能满足企业间大容量数据的交互。XML作为下一代Internet语言,简单易用并且具有极大的灵活性。SOAP协议是基于XML 数据表示的简单对象访问协议,使用它可以在不同的平台和应用程序间方便地交换数据。SOAP 协议在X M L数据传输中必然会得到广泛的应用。 关键词:SOAP协议;X M L;数据传输 中图分类号:TP393.04 文献标识码:B 0 引 言 现代计算机技术和电子商务技术的迅猛发展,对于不同架构下的资源共享和数据通信提出了迫切要求。X M L以其良好的数据存储格式、可扩展性、高度结构化、便于网络传输等特点,使得我们对纷繁复杂的异构数据表达和传输不再束手无策。I B M、M icr osoft等公司制定的基于XML技术的数据传输协议SOAP,具有开放性、与应用无关性、与语言无关性等特点,满足了异构应用程序之间的通信需求,使得模块层能够以一种开放、自说明、统一的方式进行集成和交互,避免了在CORB A、DCOM和其它协议之间转换的麻烦。正是SOAP 的引入,使W eb服务得以满足互操作性、普遍性和低进入屏障,可以用任何语言来编写W eb服务,开发者无需更改他们的开发环境就可生产和使用W eb服务,这极大地促进了W eb服务的发展。 1 S OAP协议及X M L语言的优势 数据通信的基础是进行数据交换的双方要对数据的格式达成统一的认识。传统的数据交换技术基于不同的架构,例如:不同的操作系统NT、Un i x等,不同的数据库系统SQL Server,O rac le等,要想在这些不同的平台、不同的数据库系统之间传输信息非常不方便,这成为阻碍很多项目发展的瓶颈。 X M L(e X tensible M arkup Language)[1]是一种可扩展的元置标语言,采用与平台无关的中性的数据表达,允许数据被序列化成一个可以传递的形式,使其可以容易地在任何平台上被解码。X M L的优势在于:有大量X M L编码和解码软件存在于每个编程环境和平台上;XML基于文本,相当容易用低技术水平的编程环境来处理;XML格式灵活,支持可扩展性,容易用一致的方式来扩展;在XML中每一个元素和属性有一个名域UR I与它相联系;XML还支持带类型的数据表达,XML Sche m a规范为描述X M L数据类型标准化了一个词汇集。所以,采用XML语言统一数据格式是一个必然的发展趋势。 数据格式的统一是数据通信的基础,而数据传输是数据通信的关键。传统的ED I是一种被证明了的适用于商务公司间交换信息的解决方式。然而,EDI非常严格,而且非常复杂。因此,对一个公司来说,实现、维护和配置ED I是非常昂贵的。分布式组件对象模型(DCOM)允许驻留在不同的计算机上,并且基于C OM 收稿日期:2006-05-10 基金项目:吉林省科技发展计划项目(20050106);吉林省教育厅科研计划项目(JJ KHZ2005-101) 作者简介:隋菱歌(1975-),女,吉林省农安县人,长春金融高等专科学校计算机系讲师,硕士,主要从事计算机网络及数字图像处理的研究。

SOAP协议规范

SOAP协议规范 SOAP协议规范 1. 简介 SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使SOAP能够被用于从消息传递到RPC的各种系统。 soap包括三个部分 soap封装(见第4节)结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。 SOAP编码规则(见第5节)定义了用以交换应用程序定义的数据类型的实例的一系列机制。 SOAP RPC表示(见第7节)定义了一个用来表示远程过程调用和应答的协定。虽然这三个部分都作为SOAP的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性在SOAP封装,SOAP编码规则和SOAPRPC协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP扩展框架[6]的情况下,SOAP消息如何包含在HTTP消息[5]中被传送。 1.1 设计目标 SOAP的主要设计目标是简单性和可扩展性,这意味着传统的消息系统和分布对象系统的某些性质不是SOAP规范的一部分。这些性质包括: 分布式碎片收集 成批传送消息 对象引用(要求分布式碎片收集) 激活机制(要求对象引用) 1.2 符号约定 这篇文章中的关键 字 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOUL D", "SHOULD NOT", "RECOMMENDED", "MAY", 和"OPTIONAL"的解释在 RFC-2119 [2]中。这篇文章中用到的名域前缀 "SOAP-ENV" 和"SOAP-ENC"分别与"https://www.doczj.com/doc/a810358493.html,/soap/envelope/"; 和 "https://www.doczj.com/doc/a810358493.html,/soap/encoding/";关联。整篇文档中,名域前缀“xsi”被假定为与 URI"https://www.doczj.com/doc/a810358493.html,/1999/XMLSchema-instance“(在XMLSchema规范[11]定义)相连。类似的,名域前缀”xsd“被假定为与URI"https://www.doczj.com/doc/a810358493.html,/1999/XMLSchema";(在[10]中定义)相连。名域前 缀”tns“用来表示任意名域。所有其它的名域前缀都只是例子。 名域URI的基本形式”some-URI“表示某些依赖于应用程序或上下文的 URI[4]。这个规范用扩展BNF(在RFC-2616[5] 描述)描述某些结构。

使用.NET类编写SOAP协议调用Web服务

使用.NET类编写SOAP协议调用Web服务 简介:使用.NET类编写SOAP消息,SOAP消息中包含用户的用户帐号,用户密码和帐号ID。使用HttpWebRequest类发送SOAP请求,请求远程服务器上Web服务程序(客户帐户信息),并使用HttpWebResponse类获取服务响应。 知识点: 命名空间:System.Xml 创建XML文档的类:XmlTextWriter 1.创建XmlTextWriter 对象,设置用Tab键缩进 代码示例: XmlTextWriter BookWriter = new XmlTextWriter( @"\catalog\books.xml", Encoding.UTF8); BookWriter.Formatting = Formatting.Indented; 2.编写XML文档的根元素 使用WriteStartDocument()方法和WriteEndDocument()方法创建XML声明 使用WriteStartElement()方法和WriteEndElement()方法创建根元素 代码示例: BookWriter.WriteStartDocument(); BookWriter.WriteStartElement("books"); // 其他元素 BookWriter.WriteEndElement(); BookWriter.WriteEndDocument(); 输出: 3.编写元素 使用WriteElementString()方法创建不包含子元素和属性的元素 代码示例: BookWriter.WriteElementString("price", "19.95"); 输出: 19.95

物联网四大协议

物联网四大协议物联网协议

协议一:物联网协议XMPP XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。 基本网络结构 XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。 工作原理 XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方。通信的最后阶段是关闭流,关闭TCP/IP 连接。

功能 传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。 优点 XMPP协议是自由、开放、公开的,并且易于了解。而且在客户端、服务器、组件、源码库等方面,都已经各自有多种实现。 缺点 网络通信过程中数据冗余率非常高,网络流量中70% 都消耗在 XMPP 协议层了。对于物联网来说,大量计算能力有限且工作在低带宽、不可靠网络的远程传感器和控制设备,省电、省流量是所有底层服务的一个关键技术指标,XMPP协议看起来已经落后了。

SOAP协议应用

1、SOAP简介 SOAP(SOAP:Simple Object Access Protocol):简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序 SOAP包括的3部分: soap 封装结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。 SOAP 编码规则定义了用以交换应用程序定义的数据类型的实例的一系列机制。 SOAP RPC 表示定义了一个用来表示远程过程调用和应答的协定。 虽然这三个部分都作为SOAP 的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性在SOAP 封装,SOAP 编码规则和SOAPRPC 协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP 扩展框架[6]的情况下,SOAP 消息如何包含在HTTP 消息[5]中被传送。 2、SOAP的优势 个人认为,作为新一代的分布式技术,SOAP很大的价值在于它可以很好得解决异构系统之间的连接问题。SOAP是基于XML的一种简单协议,而XML已经成为计算机工业的一个标准。就象一个中国人和一个德国人不太好交流,但是如果双方都会英语的话,那么事情就好办了。XML就是异构系统之间的英语!这就是为什么我们在拥有DCOM,RMI,EJB等众多分布技术后,还需要SOAP的一个原因。在SOAP中,所有的请求和响应都是XML文件格式的,而各种语言的相应开发包都具备把这些请求和响应中包含的数据解析出来并转换成为自己的数据类型,而且这种转化是在暗中进行的,通常是不需要开发者关心的。当然,说回来,SOAP也不是解决这一问题的唯一方案,它的发展还在起步阶段。另外一个常被提到的优点是,SOAP建立在HTTP上进行通信,因此它可以通过绝大部分的防火墙。 3、SOAP基本的语法 SOAP 构建模块 一条SOAP 消息就是一个普通的XML 文档,包含下列元素: ?必需的Envelope 元素,可把此XML 文档标识为一条SOAP 消息 ?可选的Header 元素,包含头部信息 ?必需的Body 元素,包含所有的调用和响应信息 ?可选的Fault 元素,提供有关在处理此消息所发生错误的信息 所有以上的元素均被声明于针对SOAP 封装的默认命名空间中: https://www.doczj.com/doc/a810358493.html,/2001/12/soap-envelope 以及针对SOAP 编码和数据类型的默认命名空间: https://www.doczj.com/doc/a810358493.html,/2001/12/soap-encoding 语法规则 这里是一些重要的语法规则: ?SOAP 消息必须用XML 来编码 ?SOAP 消息必须使用SOAP Envelope 命名空间 ?SOAP 消息必须使用SOAP Encoding 命名空间 ?SOAP 消息不能包含DTD 引用 SOAP 消息不能包含XML 处理指令 1)Envelope元素 必需的SOAP 的Envelope 元素是SOAP 消息的根元素。它可把XML 文档定义为SOAP 消息。 请注意xmlns:soap 命名空间的使用。它的值应当始终是:https://www.doczj.com/doc/a810358493.html,/2001/12/soap-envelope SOAP 的encodingStyle 属性用于定义在文档中使用的数据类型。此属性可出现在任何SOAP 元素中,并会被应用到元素的内容及元素的所有子元素上。SOAP 消息没有默认的编码方式。 2)SOAP Header 元素

soap协议

概述 SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。 简介 四个部分 soap。n.(英文)肥皂 SOAP:简单对象访问协议 (SOAP:Simple Object Access Protocol) SOAP 包括四个部分: SOAP 封装:它定义了一个框架, 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。 SOAP 编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。 SOAP RPC 表示:它定义了用于表示远程过程调用和应答的协定。 SOAP 绑定:定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。SOAP 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求/ 应答的模式。所有的SOAP 消息都使用XML 编码。一条SOAP 消息就是一个包含有一个必需的SOAP 的封装包,一个可选的SOAP 标头和一个必需的SOAP 体块的XML 文档。 把SOAP 绑定到HTTP 提供了同时利用SOAP 的样式和分散的灵活性的特点以及HTTP 的丰富的特征库的优点。在HTTP上传送SOAP 并不是说SOAP 会覆盖现有的HTTP 语义,而是HTTP 上的SOAP 语义会自然的映射到HTTP 语义。在使用HTTP 作为协议绑定的场合中,RPC 请求映射到HTTP 请求上,而RPC 应答映射到HTTP 应答。然而,在RPC 上使用SOAP 并不仅限于HTTP 协议绑定。 SOAP也可以绑定到TCP和UDP协议上。 协议结构 SOAP 消息格式: SOAP 标头

SOAP协议分析

西安邮电大学 Web服务 课内实验报告书 院系名称:计算机学院 实验题目:SOAP协议分析学生姓名:周从军 专业名称:网络工程 班级:网络1101班学号:04112016 时间:2014年12月20日

Web服务实验报告 SOAP协议分析 一、实验目的 1.理解Web服务,了解简单对象访问协议(SOAP Simple Object Access Protocol)的内容进行分析; 2.掌握简单对象访问协议(SOAP)的格式。 二、实验内容 1.了解SOAP协议内容和技术架构 2.分析协议的原理及SOAP消息的格式、编码原则 3.掌握 SOAP消息的组成 三、设计与设计过程 1.SOAP协议的简介 SOAP(Simple Object Access Protocal,简单对象访问协议)技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。SOAP是把成熟的基于HTTP的WEB技术与xml的灵活性和可扩展性组合在了一起。 2.SOAP的应用范围 SOAP 的一个主要目标是使存在的应用能被更广泛的用户所使用。为了实现这个目的,没有任何SOAPAPI或SOAP对象请求代理(SOAPORB),SOAP是假设你将使用尽可能多的存在的技术。几个主要的CORBA厂商已经承诺在他们的ORB 产品中支持SOAP协议。微软也承诺在将来的COM版本中支持 SOAP。DevelopMentor已经开发了参考实现,它使得在任何平台上的任何java或Perl 程序员都可以使用SOAP。而且IBM和Sun也陆续支持了SOAP协议,和MS合作共同开发SOAP规范和应用。目前SOAP已经成为了W3C和IETF的参考标准之一。 3.SOAP与XML的关系 SOAP 的指导理念是“它是第一个没有发明任何新技术的技术”。它采用了已经广泛使用的两个协议:HTTP和XML。HTTP用于实现SOAP的RPC风格的传输,而XML是它的编码模式。采用几行代码和一个XML解析器,HTTP服务器(如MS

TCP IP,HTTP,SOAP等协议之区别

笑笑小白 归类自己需要的资料,慢慢爬行TCP/IP,HTTP,SOAP等协议之区别 术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议。“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。 你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP 都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。 HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。 SOAP(Simple Object Access Protocal,简单对象访问协议) 技术有助于实现大量异构程序和平台之间的互操作性,根据我有限的了解,SOAP是把成熟的基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起。比如我们.NET中的WEB服务,就是基于SOAP。 记住,需要IP协议来连接网络;TCP是一种允许我们安全传输数据的机制,使用TCP协议来传输数据的HTTP是Web服务器和客户端使用的特殊协议。 下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置: 7 应用层例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP 6 表示层例如XDR、ASN.1、SMB、AFP、NCP 5 会话层例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets 4 传输层例如TCP、UDP、RTP、SCTP、SPX、ATP、IL 3 网络层例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25 2 数据链路层例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP 1 物理层例如线路、无线电、光纤、信鸽 笑笑小白 归类自己需要的资料,慢慢爬行TCP,IP,HTTP,SOCKET区别和联系 网络由下往上分为: 对应

相关主题
文本预览
相关文档 最新文档