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服務的位置。2、WSDL對象結構圖
從圖2所示的WSDL對象結構圖可知,一個WSDL文檔中可以包含一個Types,多個Message、PortType、Binding和Service。
?
其中,Types是一個數據類型定義的容器,包含了所有在消息定義中需要的XML元素的類型定義。 Message具體定義了在通信中使用的消息的數據結構,Message元素包含了一組Part元素,每個Part元素都是最終消息的一個組成部分,每個Part都會引用一個DataType來表示它的結構。Part元素不支持嵌套(可以使用DataType來完成這方面的需要),都是并列出現。 PortType具體定義了一種服務訪問入口的類型(傳入/傳出消息的模式及其格式),一個PortType可以包含若干個Operation,而一個Operation則是指訪問入口支持的一種類型的調用。在WSDL里面支持四種訪問入口調用的模式:1) 單請求; 2) 單響應; 3) 請求/響應; 4) 響應/請求。在這里請求指的是從客戶端到Web服務端,而響應指的是從Web服務端到客戶端。PortType的定義中會引用消息定義部分的一個到兩個消息,作為請求或響應消息的格式。 Service描述的是一個具體的被部署的Web服務所提供的所有訪問入口的部署細節,一個Service往往會包含多個服務訪問入口,而每個訪問入口都會使用一個Port元素來描述。 Port描述的是一個服務訪問入口的部署細節,包括通過哪個Web地址(URL)來訪問,應當使用怎樣的消息調用模式來訪問等。其中消息調用模式則是使用Binding結構來表示。 Binding結構定義了某個PortType與某一種具體的網絡傳輸協議或消息傳輸協議相綁定,從這一層次開始,描述的內容就與具體服務的部署相關了。比如可以將PortType與SOAP/HTTP綁定,也可以將PortType與MIME/SMTP相綁定等。
Powered by: BlogJava Copyright © 風太少