WSDL(网络服务描述语言,Web Service Description Language)
是一门基于XML的语言,用于描述Web Service及如何对其进行访问
WSDL文档是基于XML的,不仅人可以阅读,及其也可以阅读,一些新的开发工具可以根据Web Service生成WSDL文档,还能导入WSDl文档,生成相应调用Web Service的代码。
WSDL文档结构
WSDL文档是利用这些主要的元素来描述某个Web Services的
<portType> : Web Service执行的操作
<message> : Web Service执行的消息
<types> : Web Service使用的数据类型
<binding> : Web Service使用的通信协议
WSDL端口:
<portType>元素是最重要的WSDL元素
它可以描述一个web service,可被执行的操作,以及相关的消息。
可以把<portType>元素当做一个传统编程语言的函数库(或一个模块,一个类)
操作类型:
请求-响应是最普通的操作类型,不过WSDL定义了四种类型
1. One-way : 此操作可接受消息,但不会返回响应
2. Request-response : 此操作可接受请求,并返回一个响应
3. Solicit-response : 此操作会发送一个请求,并等待响应
4. Notification : 此操作会发送一个请求,并不会等待响应
WSDL消息
<message>元素定义一个操作的数据元素
每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。
WSDL types
<types>元素定义web service使用的数据类型
为了最大程度的平台中立性,WSDL使用XML Schema语法来定义数据类型
WSDL 绑定
<binding>元素为每个端口定义消息格式和协议细节
绑定到SOAP
一个请求-响应的例子
<massage name="getTermRequest">
<part name="term" type="xs:string" />
</message>
<message name="getTermReponse">
<part name="value" type="xs:string">
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermResquest" />
<output message="getTermResponse" />
</operation>
</portType>
<binding type="glossaryTerms" name="b1">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation soapAction="http://example.com/getTerm" />
<input><soap:body use="literal" /></input>
<output><soap:body use="literal" /></output>
</operation>
</binding>
binding元素有两个属性:name属性和type属性
name属性定义binding的名称,而type属性指向用于binding的端口。
soap:binding元素有两个属性:style属性和transport属性
style属性可取值“rpc”和“document”. transport属性定义了要使用的SOAP协议。
operation元素定义了每个端口提供的操作符。
对于每个操作,相应的SOAP行为都需要被定义。同时必须对如何输入和输出进行编码。
WSDL UDDI
UDDI是一种目录服务,企业可以使用他对Web Sevice进行搜索和注册
UDDI (Universal Description, Discovery and Integration),可译为“通用描述,发现与集成服务”。
什么是UDDI?
UDDI是一个独立于平台的框架,用于通过Internet来描述服务,发现企业,并对企业服务进行集成。
1. UDDI指的是通用描述,发现与集成服务
2. UDDI是一种用于存储有关Web Services的信息的目录
3. UDDI是用WSDL描述的Web Services界面的目录
4. UDDI通过SOAP进行通信
5 UDDI被构建入了微软的.NET平台
UDDI 基于什么?
UDDI 使用 W3C 和 IETF* 的因特网标准,比如 XML、HTTP 和 DNS 协议。
UDDI 使用 WSDL 来描述到达 web services 的界面
此外,通过采用 SOAP,还可以实现跨平台的编程特性,大家知道,SOAP 是 XML 的协议通信规范,可在 W3C 的网站找到相关的信息。
UDDI 如何被使用
假如行业发布了一个用于航班比率检测和预订的 UDDI 标准,航空公司就可以把它们的服务注册到一个 UDDI 目录中。然后旅行社就能够搜索这个 UDDI 目录以找到航空公司预订界面。当此界面被找到后,旅行社就能够立即与此服务进行通信,这样由于它使用了一套定义良好的预订界面。
谁在支持 UDDI?
UDDI 是一个跨行业的研究项目,由所有主要的平台和软件提供商驱动,比如:Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP, 以及 Sun, 它既是一个市场经营者的团体,也是一个电子商务的领导者。
已有数百家公司参与了这个 UDDI 团体。