Web Service 学习
1. Web services 平臺的元素:
- SOAP (簡易對象訪問協議)
- UDDI (通用描述、發現及整合)
- WSDL (Web services 描述語言)
1.1 什么是 SOAP?
基本的 Web services 平臺是 XML + HTTP。
- SOAP 指簡易對象訪問協議
- SOAP 是一種通信協議
- SOAP 用于應用程序之間的通信
- SOAP 是一種用于發送消息的格式
- SOAP 被設計用來通過因特網進行通信
- SOAP 獨立于平臺
- SOAP 獨立于語言
- SOAP 基于 XML
- SOAP 很簡單并可擴展
- SOAP 允許您繞過防火墻
- SOAP 將作為 W3C 標準來發展
1.2 什么是 WSDL?
WSDL 是基于 XML 的用于描述 Web Services 以及如何訪問 Web Services 的語言。
- WSDL 指網絡服務描述語言
- WSDL 使用 XML 編寫
- WSDL 是一種 XML 文檔
- WSDL 用于描述網絡服務
- WSDL 也可用于定位網絡服務
- WSDL 還不是 W3C 標準
1.3 什么是UDDI?
UDDI 是一種目錄服務,通過它,企業可注冊并搜索 Web services。
- UDDI 指通用的描述、發現以及整合(Universal Description, Discovery and Integration)。
- UDDI 是一種用于存儲有關 web services 的信息的目錄。
- UDDI 是一種由 WSDL 描述的網絡服務接口目錄。
- UDDI 經由 SOAP 進行通迅。
- UDDI 被構建于 Microsoft .NET 平臺之中。
2. WSDL
WSDL(網絡服務描述語言,Web Services Description Language)是一門基于XML 的語言,用于描述 Web Services 以及如何對它們進行訪問。
2.1 WSDL 文檔
WSDL 文檔是利用這些主要的元素來描述某個 web service 的:
| <portType> | web service 執行的操作 |
| <message> | web service 使用的消息 |
| <types> | web service 使用的數據類型 |
| <binding> | web service 使用的通信協議 |
2.1.1 WSDL 端口
<portType> 元素是最重要的 WSDL 元素。
它可描述一個 web service、可被執行的操作,以及相關的消息。
可以把 <portType> 元素比作傳統編程語言中的一個函數庫(或一個模塊、或一個類)。
操作類型
請求-響應是最普通的操作類型,不過 WSDL 定義了四種類型:
| One-way | 此操作可接受消息,但不會返回響應。 |
| Request-response | 此操作可接受一個請求并會返回一個響應 |
| Solicit-response | 此操作可發送一個請求,并會等待一個響應。 |
| Notification | 此操作可發送一條消息,但不會等待響應。 |
2.1.2 WSDL 消息
<message> 元素定義一個操作的數據元素。
每個消息均由一個或多個部件組成。可以把這些部件比作傳統編程語言中一個函數調用的參數。
2.1.3 WSDL types
<types> 元素定義web service使用的數據類型。
為了最大程度的平臺中立性,WSDL 使用 XML Schema 語法來定義數據類型。
2.1.4 WSDL Bindings
<binding> 元素為每個端口定義消息格式和協議細節。
綁定到 SOAP
一個?請求 - 響應?操作的例子:
<message name="getTermRequest"><part name="term" type="xs:string" /> </message><message name="getTermResponse"><part name="value" type="xs:string" /> </message><portType name="glossaryTerms"><operation name="getTerm"><input message="getTermRequest" /><output message="getTermResponse" /></operation> </portType><binding type="glossaryTerms" name="b1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /><operation><soap:operationsoapAction="http://example.com/getTerm" /><input><soap:body use="literal" /></input><output><soap:body use="literal" /></output></operation> </binding>binding?元素有兩個屬性 - name 屬性和 type 屬性。
name 屬性定義 binding 的名稱,而 type 屬性指向用于 binding 的端口,在這個例子中是 "glossaryTerms" 端口。
soap:binding?元素有兩個屬性 - style 屬性和 transport 屬性。
style 屬性可取值 "rpc" 或 "document"。在這個例子中我們使用 document。transport 屬性定義了要使用的 SOAP 協議。在這個例子中我們使用 HTTP。
operation?元素定義了每個端口提供的操作符。
對于每個操作,相應的 SOAP 行為都需要被定義。同時您必須如何對輸入和輸出進行編碼。在這個例子中我們使用了 "literal"。
3. UDDI
一種目錄服務,企業可以使用它對 Web services 進行注冊和搜索。英文為 "Universal Description, Discovery and Integration",可譯為“通用描述、發現與集成服務”。
UDDI 如何被使用
假如行業發布了一個用于航班比率檢測和預訂的 UDDI 標準,航空公司就可以把它們的服務注冊到一個 UDDI 目錄中。然后旅行社就能夠搜索這個 UDDI 目錄以找到航空公司預訂界面。當此界面被找到后,旅行社就能夠立即與此服務進行通信,這樣由于它使用了一套定義良好的預訂界面。
4. SOAP
4.1 Why SOAP?
對于應用程序開發來說,使程序之間進行因特網通信是很重要的。
目前的應用程序通過使用遠程過程調用(RPC)在諸如 DCOM 與 CORBA 等對象之間進行通信,但是 HTTP 不是為此設計的。RPC 會產生兼容性以及安全問題;防火墻和代理服務器通常會阻止此類流量。
通過 HTTP 在應用程序間通信是更好的方法,因為 HTTP 得到了所有的因特網瀏覽器及服務器的支持。SOAP 就是被創造出來完成這個任務的。
SOAP 提供了一種標準的方法,使得運行在不同的操作系統并使用不同的技術和編程語言的應用程序可以互相進行通信。
轉載于:https://www.cnblogs.com/dorothychai/p/4402421.html
總結
以上是生活随笔為你收集整理的Web Service 学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CCNA配置试验之七 PPP中PAP和C
- 下一篇: PowerDesigner 生成数据字典