解析Web接口描述語言WSDL(1)_Windows教程
Web服務(wù)定義語言(Web Services Definition Language,WSDL)是一個建議性標(biāo)準(zhǔn),用于描 述Web服務(wù)的技術(shù)調(diào)用語法。WSDL定義了一套基于 XML的語法,將Web服務(wù)描述為能夠進行消息交換的服務(wù)訪問點的集合,從而滿足了這種需求。WSDL服務(wù)定義為分布式系統(tǒng)提供了可機器識別的SDK文檔,并且可用于描述自動執(zhí)行應(yīng)用程序通信中所涉及的細(xì)節(jié)。WSDL的當(dāng)前版本是1.1,規(guī)范可以從http://www.w3.org/TR/wsdl獲得。
WSDL就是描述XMLWeb服務(wù)的標(biāo)準(zhǔn)XML格式,WSDL由Ariba、Intel、IBM和微軟等開發(fā)商提出。它用一種和具體語言無關(guān)的抽象方式定義了給定Web服務(wù)收發(fā)的有關(guān)操作和消息。就其定義來說,你還不能把WSDL當(dāng)作一種對象接 口定義語言,例如,CORBA或COM等應(yīng)用程序體系結(jié)構(gòu)就會用到對象接口定義語言。 WSDL保持協(xié)議中立,但它確實內(nèi)建了綁定SOAP的支持,從而同SOAP建立了不可分割的聯(lián)系。
WSDL服務(wù)描述是一個XML文檔,它與WSDL模式(schema)的定義一致。WSDL文檔并不是完整的服務(wù)描述,而只包括了服務(wù)描述任務(wù)的較低層次,即:服務(wù)接口的原始技術(shù)描述。WSDL是Web服務(wù)的接口定義語言IDL(Interface Definition Language,),本質(zhì)上,WSDL描述說明的是Web服務(wù)的以下三個基本屬性:
服務(wù)做些什么--服務(wù)所提供的操作(方法)。
如何訪問服務(wù)--數(shù)據(jù)格式詳情以及訪問服務(wù)操作的必要協(xié)議。
服務(wù)位于何處--由特定協(xié)議決定的網(wǎng)絡(luò)地址,如URL。
二、WSDL文檔結(jié)構(gòu)
WSDL文檔將Web服務(wù)定義為服務(wù)訪問點或端口的集合。在 WSDL中,由于服務(wù)訪問點和消息的抽象定義已從具體的服務(wù)部署或數(shù)據(jù)格式綁定中分離出來,因此可以對抽象定義進行再次使用:消息,指對交換數(shù)據(jù)的抽象描述;端口類型指操作的抽象集合。用于特定端口類型的具體協(xié)議和數(shù)據(jù)格式規(guī)范構(gòu)成了可以再次使用的綁定。將Web訪問地址與可再次使用的綁定相關(guān)聯(lián),可以定義一個端口,而端口的集合則定義為服務(wù)。
1、WSDL信息模型
WSDL信息模型充分利用了抽象規(guī)范與規(guī)范具體實現(xiàn)的分離,也就是分離了服務(wù)接口定義(抽象接口)與服務(wù)實現(xiàn)定義(具體端點)。 抽象接口規(guī)范描述了終端的處理能力,它在WSDL中表示為portType。束定機制 (binding mechanism)在WSDL中表示為binding元素,它使用特定的通信協(xié)議、數(shù)據(jù)編碼模型和底層通信協(xié)議,將Web服務(wù)的抽象定義映射至特定實現(xiàn)。若束定結(jié)合了實現(xiàn)的訪問地址,抽象端點也就成為可供服務(wù)請求者調(diào)用的具體端點(concrete endpoint),WSDL的port元素表示了這一結(jié)合。
抽象接口可以支持任何數(shù)量的操作(operations)。操作是由一組消息(messages)定義,消息定義了操作的交互定式。與抽象的消息、操作概念相對應(yīng)的具體實現(xiàn)是由binding元素指定。與XML應(yīng)用相同,WSDL模式定義了幾個高層元素,或稱為主要元素。在WSDL中,Web服務(wù)描述中的主要元素如下:
Types,定義了Web服務(wù)使用的所有數(shù)據(jù)類型集合,可被元素的各消息部件所引用。它使用某種類型系統(tǒng)(一般地使用XMLSchema中的類型系統(tǒng))。
Message,通信消息數(shù)據(jù)結(jié)構(gòu)的抽象類型化定義。使用Types所定義的類型來定義整個消息的數(shù)據(jù)結(jié)構(gòu)。
Operation,對服務(wù)中所支持操作的抽象描述。一般單個Operation描述了一個訪問入口的請求/響應(yīng)消息對。
PortType,對于某個訪問入口點類型所支持操作的抽象集合。這些操作可以由一個或多個服務(wù)訪問點來支持。
Binding,包含了如何將抽象接口的元素(portType)轉(zhuǎn)變?yōu)榫唧w表示的細(xì)節(jié),具體表示也就是指特定的數(shù)據(jù)格式和協(xié)議的結(jié)合;特定端口類型的具體協(xié)議和數(shù)據(jù)格式規(guī)范的綁定。
Port,定義為協(xié)議/數(shù)據(jù)格式綁定與具體Web訪問地址組合的單個服務(wù)訪問點。
Service,這是一個粗糙命名的元素,代表端口的集合;相關(guān)服務(wù)訪問點的集合。
因此,portType(與message和type元素的細(xì)節(jié)相結(jié)合)描述了Web服務(wù)是什么,binding元素描述了如何使用Web服務(wù),port及service元素描述了Web服務(wù)的位置。

圖1 WSDL信息模型
圖1體現(xiàn)了WSDL信息模型的一個可能結(jié)構(gòu),它清楚反映了portType元素包含的抽象消息/操作和binding元素的具體消息/操作間的關(guān)系。圖中的黑體字突出了WSDL規(guī)范中的術(shù)語。WSDL使用的元素名稱有些含糊,由于不存在能夠區(qū)分抽象和具體概念的一致命名原則,因此必須記住哪一個元素代表抽象概念,哪一個元素代表具體的概念。
- 相關(guān)鏈接:
- 教程說明:
Windows教程-解析Web接口描述語言WSDL(1)
。