WSDL基础知识
一、WSDL的定義
將網絡服務描述為對包含面向文檔或過程的信息進行操作的一組端點的XML格式
服務接口
訪問規范
服務地點
定義Web服務的公共接口(包括功能、如何調用)
定義與目錄中列出的Web服務交互所需的協議綁定和消息格式
抽象地描述了支持的操作和消息并與具體的網絡協議和消息格式相關聯
?
二、WSDL的基本概念
類型:提供用于描述交換的消息的數據類型的定義
消息:表示正在傳輸的數據的抽象定義,由邏輯部分組成,每個邏輯部分都與某種類型系統中的定義相關聯
端口類型:一系列抽象操作,每個操作都引入其輸入和輸出消息
綁定:為由特定的端口類型定義的操作和消息指定了具體的協議和數據格式規范
端口:指定用于綁定的地址,定義單個通信端點
服務:用于聚合一系列相關端口
?
三、WSDL的主要結構
一個Web服務發布了一個端口類型集合,這些端口類型使用一個公共的綁定機制綁定到網絡地址
每個端口類型都是一組已經發布的操作
每個操作都可以通過消息進行訪問
消息分為包含傳入數據參數的輸入消息和包含結果的輸出消息
<definitions namespace = “http://… ”><types> XML schema types </types><message>??definition of a message</message><portType> a set of operations </portType><binding> communication protocols </binding><service> a list of binding and ports </service></definitions>?
四、WSDL的基本元素<types>
?? ?<types>定義用于定義消息的數據類型,XML的定義形式 XML Schema、XML DTD等等
<types><schema???xmlns="http://www.w3.org/2001/XMLSchema"><element name="PurchaseOrder"><complexType><sequence><element name="customerID" type="xsd:string"/><element name="orderID" type="xsd:string"/><element name="orderItems" type="impl:ArrayOf_tns1_OrderItem"/></sequence></complexType></element><element name="InventoryStatus">……</element></schema></types>五、WSDL的基本元素<message>
?? ?<message>定義操作的數據元素,每條消息可以是操作的輸入或輸出,可以包含一個或多個部分,一部分類似于函數的參數
? ?<message??name="inquiryInventoryRequest"><part??element=" PurchaseOrder " name="parameters"/></message><message??name="inquiryInventoryResponse"><part??element=" InventoryStatus "? name="parameters"/></message>六、每個端口類型都是一系列發布的操作,這些操作可以通過消息訪問。每個操作都可以與傳統編程語言中的函數進行比較
?<portType name="InventoryService"><operation name="inquiryInventory"><input message="inquiryInventoryRequest"name="inquiryInventoryRequest"/><output message="inquiryInventoryResponse"name="inquiryInventoryResponse"/></operation></portType>七、操作類型
傳統IO簽名
端到端:Web服務可以充當客戶端或服務端
Proactive主動式:發送請求,阻止直到響應
Reactive響應式:接收請求,發送響應
One-way單向:服務端接收消息,不返回響應
Request-response請求響應:服務端接收請求消息,然后發送響應消息
Solicit-response要求應答:服務端發送請求消息,然后等待應答消息
Notification通知:服務端發送請求消息,不會等待響應
One-way操作
<portType name=“glossaryTerms”><operation name=“setTerm”><input name=“newTerm”????message=“newTermValues” /></operation></portType>請求響應操作
<portType name="glossaryTerms"><operation name="getTerm"><input message="getTermRequest"/><output message="getTermResponse"/></operation></portType>要求應答操作
<portType name="transaction"><operation name="transactionStatus"><output message="tns:notifyTransactionStatus"/><input message="tns:transactionStatusResponse"/></operation></portType>通知操作
<portType name=“RegisterPort"><operation name=“register"><input name=“customerInfo“??message=“RegInfo"/></operation><operation name = “register Response”><output name = “response”??message=“ResponseInfo”/></operation></portType >八、綁定
<binding>元素為一個<portType>描述了特定的通訊協議
每一個<binding>對應一個<portType>
綁定元素描述<portType>的每個操作中每個消息的特定協議。
綁定元素是通用的,它僅定義用于描述綁定詳細信息的框架
實際的綁定詳細信息是使用可擴展性元素提供的
因為可以在預定義的插槽中使用任何元素,所以該體系結構允許WSDL隨著時間的推移而發展
WSDL規范提供了一些用于描述SOAP綁定的綁定元素,盡管它們位于不同的名稱空間中。
九、服務
Web服務客戶端可以從<service>元素中了解訪問服務的位置,通過哪個端口訪問Web服務的信息。
<service>是<port>元素的集合。 <port>元素定義用于綁定的特定網絡地址。
綁定屬性將服務的地址與Web服務中定義的<binding>關聯。
十、WSDL和SOAP的關系
WSDL通常與SOAP和XML模式結合使用,以定義Internet上的Web服務。客戶端程序讀取WSDL文檔以了解其功能。 所使用的數據類型以XML模式的形式嵌入WSDL文件中。然后,客戶端使用SOAP實際調用WSDL文檔中列出的功能。
?
十一、總結
WSDL提供一個實用的框架來描述:
端口類型:操作和輸入/輸出
使用SOAP綁定
服務接入口
?
?
?
?
總結
- 上一篇: Android官方开发文档Trainin
- 下一篇: Android官方开发文档Trainin