美文网首页
Web服务要素之一:SOAP

Web服务要素之一:SOAP

作者: 82a7fe2508f4 | 来源:发表于2022-05-27 15:40 被阅读0次

Web服务简介

▲ 什么是Web服务

Web服务即Web Service。

Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。

根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们透过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。

Web服务组成如下图所示:

▲ Web服务三要素

● SOAP

一个基于XML的可扩展消息信封格式,需同时绑定一个传输应用协议。这个协议通常是HTTP或HTTPS,但也可能是SMTP或XMPP等其他协议。

SOAP协议有SOAP1.1与SOAP1.2两种主要的版本,SOAP可以运行在任何其他应用协议之上。

● WSDL

一个XML格式文档,用以描述服务端口访问方式和使用协议的细节。通常用来辅助生成服务器和客户端代码及配置信息。

可以看成是Web服务的使用说明书。

● UDDI

一个用来发布和搜索WEB服务的协议,应用程序可借由此协议在设计或运行时找到目标WEB服务。

UDDI旨在将全球的WEB服务资源进行共享,促进全球经济合作。但是使用WEB服务并不是必须要使用UDDI,因为很多时候使用者已经知道了WEB服务地址就可以进行调用。

这些标准由这些组织制订:W3C负责XML、SOAP及WSDL;OASIS负责UDDI。

▲ SOAP

1.SOAP构建模块

一条SOAP消息就是一个普通的XML文档,包含下列元素:

● 必需的Envelope元素,可把此XML文档标识为一条SOAP消息

可选的Header元素,包含头部信息

● 必需的Body元素,包含所有的调用和响应信息

可选的Fault元素,提供有关在处理此消息所发生错误的信息

所有以上的元素均被声明于针对SOAP封装的默认命名空间中:

http://www.w3.org/2001/12/soap-envelope

以及针对SOAP编码和数据类型的默认命名空间:

http://www.w3.org/2001/12/soap-encoding

2.SOAP消息组成

<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>

...

</soap:Header>

<soap:Body>

...

<soap:Fault>

...

</soap:Fault>

...

</soap:Body>

</soap:Envelope>

3.SOAP消息例子

股票查询服务,根据股票名称查询股票价格,返回股票价格。

1)SOAP消息请求:

POST /StockQuote HTTP/1.1

Host: example.com

Content-Type: text/xml; charset="utf-8"

Content-Length: nnnn

SOAPAction: "http://example.com/GetLastTradePrice"

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

SOAP-

ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body>

<m:TradePriceRequest xmlns:m="http://example.com/stockquote.xsd">

<tickerSymbol>MSFT</tickerSymbol >

</m:TradePriceRequest>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

2)SOAP消息响应:

HTTP/1.1 200 OK

Content-Type: text/xml; charset="utf-8"

Content-Length: nnnn

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

SOAP-

ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

<SOAP-ENV:Body>

<m:TradePriceResult xmlns:m=" http://example.com/stockquote.xsd ">

<price>74.5</price>

</m:TradePriceResult >

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

相关文章

网友评论

      本文标题:Web服务要素之一:SOAP

      本文链接:https://www.haomeiwen.com/subject/cenuprtx.html