`
yuhen78
  • 浏览: 14593 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论
阅读更多

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可以完成这一功能。

分享到:
评论

相关推荐

    C#Web Service C#Web Service C#Web Service

    C# Web Service是一种基于.NET Framework的开发技术,用于创建分布式应用程序,使得不同系统间能够通过互联网进行通信。这种服务提供了一种标准化的方式,允许应用程序通过HTTP协议交换数据,因此,即使它们是由不同...

    delphi 6/Kylik2 soap/Web Service程序设计篇下册+代码,非常好的教程。

    2. **Web Service定义**: Web Service的接口通常使用WSDL(Web Services Description Language)来定义,这是一种XML格式的文档,描述了服务的接口、消息格式、操作和地址。Delphi 6中的Soap Toolkit可以自动生成...

    《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》(

    在《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》这本书中,作者李维精心编撰了一套系统而全面的教程,针对的是Delphi6和Kylix2这两个经典的Visual Basic derivative (VBD) 编程环境,尤其是针对SOAP(Simple ...

    T100 Web Service 接口开发v1.5版.rar

    《T100 Web Service 接口开发v1.5版》 在现代信息技术领域,Web Service接口开发扮演着至关重要的角色,它使得不同系统之间的数据交换和功能调用变得简单而高效。本文将深入探讨T100 Web Service接口开发的最新版本...

    asp.net写的web service例子

    ASP.NET Web Service是一种基于.NET Framework的简单方法,用于构建可跨平台、跨语言通信的Web应用程序。这个例子是为初学者设计的,旨在演示如何创建和使用Web Service,以及如何在ASP.NET环境中调用这些服务。 ...

    web service 精典入门教程

    "Web Service 精典入门教程" 本篇教程旨在为读者提供一个完整的 Web Service 入门指南,涵盖了 Web Service 的基本概念、架构、SOAP 协议、WSDL 文件、_WS-Security 等重要知识点。 Web Service 基本概念 Web ...

    D6 SOAP_WEB SERVICE

    标题"D6 SOAP_WEB SERVICE"指的是使用Delphi编程语言开发基于SOAP(简单对象访问协议)的Web服务。在本文中,我们将深入探讨这个主题,了解如何使用Delphi构建Web服务以及SOAP在其中的作用。 首先,让我们了解一下...

    Java完整的Web Service示例代码,学会做web service程序

    本示例代码将帮助你理解和实现一个完整的Web Service程序。 首先,我们来看"xfire-client"部分。XFire是早先的一个Java Web Service框架,它简化了客户端和服务端的开发。在Java中,创建Web Service客户端通常涉及...

    web service第一次启动慢

    web service在第一次启动时出现启动缓慢的问题,通常是指在运行或访问web service时遇到的启动延迟现象。这种问题可能会在不同的web service应用中出现,尤其是在首次连接或部署新服务时更为常见。web service是一种...

    Web service应用实例

    ### Web Service应用实例详解 #### 一、IIS安装与配置 在开发Web Service之前,首先需要确保服务器上已正确安装并配置了Internet Information Services (IIS)。无论是Windows Server 2003还是Windows XP,IIS都是...

    实战Delphi6.Kylix2.SOAP.Web Service程序设计篇李维著.zip

    《实战Delphi6.Kylix2.SOAP.Web Service程序设计篇》是由知名技术专家李维编著的一本专业书籍,主要面向的是希望深入理解和应用Delphi6、Kylix2、SOAP以及Web Service技术的开发者。这本书详细介绍了如何利用这些...

    Web Service Proxy Wizard的介绍,安装,以及如何使用

    Web Service Proxy Wizard 是一个工具,它为Visual Studio 6.0的开发者提供了一种方法,可以将Web服务封装成一个代理组件(.dll),这个组件可以在设计时通过早期绑定(Early Binding)像其他COM组件一样使用。...

    Web Service编程:用C#开发网络服务

    Web Service编程是现代软件开发中的一个重要领域,尤其是在分布式系统和跨平台通信中。C#作为.NET框架的主要编程语言,提供了强大的工具和库来创建和消费Web Service。本篇将深入探讨C#环境下开发Web Service的相关...

    JavaScript Web Service Calls

    JavaScript Web Service调用是Web开发中的一个重要概念,它允许客户端的JavaScript代码与服务器端的服务进行交互,从而实现数据的获取和发送。这种交互通常基于HTTP协议,可以是RESTful API或者传统的SOAP服务。在本...

    PB11开发Web Service应用

    本篇内容将深入探讨如何利用PB11来开发Web Service应用,这对于初学者来说是一份宝贵的资源。 一、Web Service基础 Web Service是一种基于开放标准的、平台无关的通信协议,它允许不同系统之间的数据交换。在PB11中...

    T100 Web Service开发,调试整合重启检查说明(简体版)

    ### T100 Web Service 开发、调试及整合重启检查说明 #### 文件概述 本文件主要针对T100 Web Service的开发、调试以及在遇到问题时如何进行整合重启检查进行了详细说明。适用于T100项目的工程师和服务人员,帮助...

    vmware vSphere web service SDK开发指南

    VMware vSphere Web Service SDK开发指南是一份指导开发者如何使用VMware vSphere SDK进行开发的文档。VMware vSphere是VMware公司推出的业界领先虚拟化解决方案,它通过提供高级抽象层来管理和控制计算资源,为用户...

Global site tag (gtag.js) - Google Analytics