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