Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29336425
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2009-11-13 14:15:51

WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。

WSDL 文档仅仅是一个简单的 XML 文档。

它包含一系列描述某个 web service 的定义。

WSDL 文档结构

WSDL 文档是利用这些主要的元素来描述某个 web service 的:

元素 定义
web service 执行的操作
web service 使用的消息
web service 使用的数据类型
web service 使用的通信协议

描述这个服务是如何定义的。

WSDL 端口

元素是最重要的 WSDL 元素。

它可描述一个 web service、可被执行的操作,以及相关的消息。

可以把 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。

(WSDL相当于是一门新的编程语言一样!)

WSDL 消息

元素定义一个操作的数据元素。

每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。

WSDL types

元素定义 web service 使用的数据类型。

为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。

WSDL Bindings

元素为每个端口定义消息格式和协议细节。


(把其当作是一个新的编程语言吧!)


示例:















相当于定义了一个类:golssaryTerms
包括了一个方法 getTerm
它有一个输入消息getTermRequest

还有一个输出消息getTermResponse

想一下Django 里面的 def func(request):

                       return HttpResponse

输入:是一个HTTP请求

输出:是一个HTTP响应



WSDL 端口

 WSDL 端口可描述由某个 web service 提供的界面(合法操作)。

元素是最重要的 WSDL 元素。

它可描述一个 web service、可被执行的操作,以及相关的消息

端口定义了指向某个 web service 的连接点。可以把该元素比作传统编程语言中的一个函数库(或一个模块、或一个类),而把每个操作比作传统编程语言中的一个函数。

(心得:我们将其想像成是一个类吧。这样的话类里面是可以包含了许多的操作方法即函数!)
故而能够在类里面定义多个操作方法进来!

操作类型

请求-响应是最普通的操作类型,不过 WSDL 定义了四种类型:

类型 定义
One-way 此操作可接受消息,但不会返回响应。
Request-response 此操走可接受一个请求并会返回一个响应
Solicit-response 此操作可发送一个请求,并会等待一个响应。
Notification 此操作可发送一条消息,但不会等待响应。

one-way示例:

   
   



   
       
   


这个 "setTerm" 操作可接受新术语表项目消息的输入,这些消息使用一条名为 "newTermValues" 的消息,此消息带有输入参数 "term" 和 "value"。不过,没有为这个操作定义任何输出。
(只有一个input即输入操作没有输出操作。而且这个输入的参数是有两个参数值!)
相当于程序语言:
def setTerm(input:string term,input:string value):

这样表示了!

以下是request-response 的示例:










表示请求参数
表示回应参数


在这个例子中,端口 "glossaryTerms" 定义了一个名为 "getTerm" 的 request-response 操作。

"getTerm" 操作会请求一个名为 "getTermRequest" 的输入消息,此消息带有一个名为 "term" 的参数,并将返回一个名为 "getTermResponse" 的输出消息,此消息带有一个名为 "value" 的参数。

如果是用程序语言表示的话就是:

def func(input getTermRequest:string,output getTermResponse string):


WSDL 绑定


WSDL 绑定可为 web service 定义消息格式和协议细节。

一个 请求 - 响应 操作的例子:















阅读(799) | 评论(0) | 转发(0) |
0

上一篇:SOAP 教程

下一篇:WSDL学习心得一

给主人留下些什么吧!~~