Web Service

SOAP ,WSDL UDDI Web Services 框架的核心技术.

SOAP Web services 的通信协议。Simple Object Access Protocol

(1) SOAP是一种简单的、轻量级的基于XML 的机制,用于在网络应用程序之间进行结构化数据交换。SOAP包括三部分:一个定义描述消息内容的框架的信封,一组表示应用程序定义的数据类型实例的编码规则,以及表示远程过程调用和响应的约定。

 协议结构
  SOAP 消息格式:
  SOAP 标头
  <SOAP-ENV: Envelope
  
Attributes>
  
<SOAP-ENV:Body
  
Attributes>
  
</SOAP-ENV:Body>
  </SOAP-ENV:Envelope>目前主要在web服务中运用。

语法规则

SOAP 消息必须用 XML 来编码
  SOAP 消息必须使用 SOAP Envelope 命名空间

  SOAP 消息不能包含 DTD 引用

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

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>
   <
m:Trans xmlns:m="http://www.w3school.com.cn/transaction/"

soap:mustUnderstand="1"

soap:actor="http://www.w3school.com.cn/appml/">234</m:Trans>

</soap:Header>

可选的 SOAP Header 元素可包含有关 SOAP 消息的应用程序专用信息(比如认证、支付等)。如果 Header 元素被提供,则它必须是 Envelope 元素的第一个子元素。

SOAP 在默认的命名空间中 ("http://www.w3.org/2001/12/soap-envelope") 定义了三个属性。这三个属性是:actor mustUnderstand 以及 encodingStyle。这些被定义在 SOAP 头部的属性可定义容器如何对 SOAP 消息进行处理。

SOAP mustUnderstand 属性可用于标识标题项对于要对其进行处理的接收者来说是强制的还是可选的。

SOAP actor 属性可被用于将 Header 元素寻址到一个特定的端点。  <soap:Body>

<!—消息请求 -->
  <m:GetPrice xmlns:m="http://www.w3school.com.cn/prices">

<m:Item>Apples</m:Item>

</m:GetPrice>

<!—消息响应 -->
<m:GetPriceResponse xmlns:m="http://www.w3school.com.cn/prices">

<m:Price>1.90</m:Price>

</m:GetPriceResponse>

<soap:Fault>
  
...
  
...
  </soap:Fault>

SOAP Fault 元素用于存留 SOAP 消息的错误和状态信息。
SOAP
Fault 元素用于下列子元素:

 

子元素

描述

<faultcode>

供识别故障的代码

<faultstring>

可供人阅读的有关故障的说明

<faultactor>

有关是谁引发故障的信息

<detail>

存留涉及 Body 元素的应用程序专用错误信息

SOAP Fault Codes
在下面定义的 faultcode 值必须用于描述故障时的 faultcode 元素中:

 

错误

描述

VersionMismatch

SOAP Envelope元素的无效命名空间被发现

MustUnderstand

Header 元素的一个直接子元素(带有设置为 "1"mustUnderstand属性)无法被理解。

Client

消息被不正确地构成,或包含了不正确的信息。

Server

服务器有问题,因此无法处理进行下去。

</soap:Body>

必需的 SOAP Body 元素可包含打算传送到消息最终端点的实际 SOAP 消息。

SOAP 在默认的命名空间中("http://www.w3.org/2001/12/soap-envelope")定义了 Body 元素内部的一个元素。即 SOAP Fault 元素,用于指示错误消息。

</soap:Envelope>

HTTP 协议
HTTP
TCP/IP 之上进行通信。HTTP 客户机使用 TCP 连接到 HTTP 服务器。在建立连接之后,客户机可向服务器发送 HTTP 请求消息:

POST /item HTTP/1.1

Host: 189.123.345.239

Content-Type: text/plain

Content-Length: 200

随后服务器会处理此请求,然后向客户机发送一个 HTTP 响应。此响应包含了可指示

请求状态的状态代码:

200 OK

Content-Type: text/plain

Content-Length: 200

SOAP HTTP Binding
SOAP
方法指的是遵守 SOAP 编码规则的 HTTP 请求/响应。

HTTP + XML = SOAP
SOAP
请求可能是 HTTP POST HTTP GET 请求。

HTTP POST
请求规定至少两个 HTTP 头:Content-Type Content-Length

Content-Type
SOAP
的请求和响应的 Content-Type 头可定义消息的 MIME 类型,以及用于请求或响应的 XML 主体的字符编码

语法:Content-Type: MIMEType; charset=character-encoding

例子

POST /item HTTP/1.1

Content-Type: application/soap+xml; charset=utf-8

Content-Length
SOAP
的请求和响应的 Content-Length 头规定请求或响应主体的字节数。

语法:Content-Length: bytes

例子:

POST /item HTTP/1.1

Content-Type: application/soap+xml; charset=utf-8

Content-Length: 250

(2)WSDL表示WEB服务说明语言。WSDL文件是一个XML 文档,用于说明一组SOAP消息以及如何交换这些消息。

(3)UDDI(统一描述发现和集成) 提供一种发布和查找服务描述的方法。UDDI 数据实体提供对定义业务和服务信息的支持。WSDL 中定义的服务描述信息是UDDI注册中心信息的补充。

Web Services 服务提供方通过WSDL(Web Services Description Language) 描述所提供的服务,并将这一描述告知Web Services 注册服务器。注册服务器依据WSDL 的描述,依照UDDI (Universal Description Discovery and Integration) 的协定更新服务目录并在Internet 上发布。用户在使用Web Services 前先向注册服务器发出请求,获得Web Services 提供者的地址和服务接口信息,之后使用SOAP 协议(Simple Object Access Protocol) Web Services 提供者建立连接,进行通信。Web Services 的技术主要建立在XML 的规范之上,这保证了这一体系结构的平台无关性、语言无关性和人机交互性能。

SOAP消息代理是整个框架的信息处理中心,它根据预先定义好的应用消息转换机制将消息转换成目标应用需要的数据并存储到应用消息仓库中。除了保存和转发应用消息之外,消息代理还负责将不同的企业应用所保存的应用数据通过企业模型转化为一致的企业数据,保存到数据库中。

客户端通过UDDI的标准和机制来搜寻需要的web服务,绑定找到的web服务并使用它提供的服务。另外,框架为企业进一步发展电子商务提供了接口,建立在UDDI基础上的Web services可以完成这一功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值