1. 希望用一种语言中立的接口定义语言来描述服务的接口。
2. 希望可以用任何一种技术来是实现这个接口。
3. 希望访问这些服务的时候不必在意它是用哪一种技术实现的。
今天,答案早已经不是什么秘密,它就是WSDL。
【WSDL】: Web Services Description(Definition)Language Web服务描述(定义)语言。
WSDL描述Web服务的公共接口。WSDL基于XML,采用抽象语言描述服务支持的操作和信息,实际使用时再将的具体的网络协议和信息格式绑定给该服务。WSDL由W3C制定,读音为:“Whuz-Duhl”。WSDL的流行版本是1.1,http://www.w3.org/TR/wsdl;最新版本是2.0 http://www.w3.org/TR/wsdl20/。
1. types:a container for data type definitions using some type system (such as XSD)。types定义交换消息的数据类型。为了实现互操作性(interoperability)和平台独立性(neutrality),WSDL选用XML Schema 作为标准数据类型。
<types>
<xsd:schema .... />*
</types>
message由若干个part构成。每个part都与某种数据类型相关联。
<message name="nmtoken"> *
<part name="nmtoken" element="qname"? type="qname"?/> *
</message>
端口类型由一个抽象操作和抽象消息构成。
<portType name="nmtoken"> *
<operation name="nmtoken">
<input name="nmtoken"? message="qname"/>
<output name="nmtoken"? message="qname"/>
<fault name="nmtoken" message="qname"/>*
</operation>
</portType >
(1)SOAP binding
<soap:binding style="rpc or document" transport="uri">
<operation…>
<soap:operation soapAction="uri"? style="rpc or document"?>?
<input>
<soap:body parts="nmtokens"? use="literal or encoded" encodingStyle="uri-list"? namespace="uri"?>
<soap:header element="qname" fault="qname"?>*
</input>
<output>
<soap:body parts="nmtokens"? use="literal or encoded" encodingStyle="uri-list"? namespace="uri"?>
<soap:header element="qname" fault="qname"?>*
</output>
<fault>*
<soap:fault name="nmtoken" use="literal or encoded" encodingStyle="uri-list"? namespace="uri"?>
</fault>
</operation>
</binding>
(4)JMS binding
<port name="nmtoken" binding="qname"/>*
</service>
(1)
(2)
1.单向(One-way):服务访问端点接收消息。
<input name="nmtoken"? message="qname"/>
</operation>
2.请求响应(Request-response):服务访问端点接收请求消息,然后发送响应消息。
<operation name="nmtoken" parameterOrder="nmtokens">
<input name="nmtoken"? message="qname"/>
<output name="nmtoken"? message="qname"/>
<fault name="nmtoken" message="qname"/>*
3.要求应答(Solicit-response):服务访问端点发送要求消息,然后接收应答消息。
<operation name="nmtoken" parameterOrder="nmtokens">
<output name="nmtoken"? message="qname"/>
</operation>
4.通知(Notification):服务访问端点发送通知消息。
<operation name="nmtoken">
<output name="nmtoken"? message="qname"/>
没有评论:
发表评论