1.Web services 使用 XML 来编解码数据,并使用 SOAP 来传输数据html
2.基础的 Web Services 平台是 XML + HTTP。web
经过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并经过UDDI进行注册。编程
WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。api
UDDI 是一种目录服务,经过它,企业可注册并搜索 Web services。网络
Web服务的体系结构是基于Web服务提供者、Web服务请求者、Web服务中介者三个角色和发布、发现、绑定三个动做构建的。编程语言
Web service的体系结构函数
实现一个完整的Web服务包括如下步骤:url
◆ Web服务提供者设计实现Web服务,并将调试正确后的Web服务经过Web服务中介者发布,并在UDDI注册中心注册; (发布)spa
◆ Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找知足请求的服务; (发现)设计
◆ Web服务中介者向Web服务请求者返回知足条件的Web服务描述信息,该描述信息用WSDL写成,各类支持Web服务的机器都能阅读;(发现)
◆ 利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;(绑定)
◆ Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。(绑定)
SOAP 构建模块
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
◆必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
◆可选的 Header 元素,包含头部信息
◆必需的 Body 元素,包含全部的调用和响应信息
◆可选的Fault 元素,提供有关在处理此消息所发生错误的信息
WSDL 文档结构
WSDL 文档是利用这些主要的元素来描述某个web service 的:
元素 | 定义 |
<portType> | web service 执行的操做 |
<message> | web service 使用的消息 |
<types> | web service使用的数据类型 |
<binding> | web service 使用的通讯协议 |
WSDL 端口
<portType> 元素是最重要的 WSDL 元素。它可描述一个web service、可被执行的操做,以及相关的消息。 能够把<portType> 元素比做传统编程语言中的一个函数库(或一个模块、或一个类)。
WSDL 消息
<message> 元素定义一个操做的数据元素。每一个消息均由一个或多个部件组成。能够把这些部件比做传统编程语言中一个函数调用的参数。
WSDL types
<types> 元素定义 web service 使用的数据类型。 为了最大程度的平台中立性,WSDL 使用XML Schema 语法来定义数据类型。
WSDL Bindings
<binding> 元素为每一个端口定义消息格式和协议细节
如何调用Web Services ?
客户端:取得服务端的服务描述文件WSDL,解析该文件的内容,了解服务端的服务信息,以及调用方式。根据须要,生成恰当的SOAP请求消息(指定调用的方法,已经调用的参数),发往服务端。等待服务端返回的SOAP回应消息,解析获得返回值。
服务端:生成服务描述文件,以供客户端获取。接收客户端发来的SOAP请求消息,解析其中的方法调用和参数格式。根据WSDL和WSML的描述,调用相应的COM对象来完成指定功能,并把返回值放入SOAP回应消息返回给用户。
高层接口
使用高层接口,不须要知道SOAP和XML的任何信息,就能够生成和使用一个WebService。Soap Toolkit 2.0经过提供两个COM对象――SoapClient和SoapServer,来完成这些功能。
在客户端,只须要生成一个SoapClient实例,并用WSDL做为参数来调用其中的mssoapinit方法。SoapClient对象会自动解析WSDL文件,并在内部生成全部Web Service的方法和参数信息。以后,你就能够像调用IDispatch接口里的方法同样,调用里面全部的方法。在VB或是脚本语言里,你甚至能够直接在SoapClient对象名后面直接加上.方法(参数?)进行调用。
参考文献: