Webservice/SOAP/WSDL釋疑篇

 

Webservice/SOAP/WSDL釋疑篇

What is Webservice?

 

從表面上看,Web service 就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。也就是說,可以利用編程的方法通過Web來調用這個應用程序。對Web service 更精確的解釋: Web services是建立可互操作的分佈式應用程序的新平臺。Web service平臺是一套標準,它定義了應用程序如何在Web上實現互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Web service ,只要我們可以通過Web service標準對這些服務進行查詢和訪問。

 

Why Webservice?


Web Services技術使異種計算環境之間可以共享數據和通信,達到信息的一致性。隨着異種計算機環境的不斷增加,我們會更加經常的調用各種不同計算機體系中編寫和發佈的Web Services
關於客戶端與服務器的通信問題,一個完美的解決方法是使用HTTP協議來通信。這是因爲任何運行Web瀏覽器的機器都在使用HTTP協議。同時,當前許多防火牆也配置爲只允許HTTP連接。

 

Webservice與SOAP,WSDL的關係

 

簡單的說,WSDL 是基於 XML 的語言,用於描述 Web services 以及如何訪問它們。WSDL 可描述某個 web service,連同用於此 web service 的消息格式和協議細節。

SOAP 是一種基於 XML 的簡易協議,允許應用程序通過 HTTP 來交換信息。或者更簡單地講,SOAP 是用於訪問 web 服務的協議。

Web services 可把您的應用程序轉換爲 web 應用程序。通過使用 XML,可以在應用程序間傳送消息。

 

SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分佈式的環境中交換信息的簡單的協議,是一個基於XML的協議.它包括四個部分:

1)SOAP封裝(envelop): 封裝定義了一個描述消息中的內容是什麼,是誰發送的,誰應當接受並處理它以及如何處理它們的框架;
2)SOAP編碼規則(encoding rules): 用於表示應用程序需要使用的數據類型的實例;
3)SOAP RPC表示(RPC representation): 表示遠程過程調用和應答的協定;
4)SOAP綁定(binding): 使用底層協議交換信息。

SOAP採用了已經廣泛使用的兩個協議:HTTP和XML。其中HTTP用於實現SOAP的RPC風格的傳輸,而XML是它的編碼模式,一個SOAP請求實際上就是一個HTTP POST請求。

 

Soap原理:

1)Soap其實是一個建立於HTTP上的上層協議(Wire Protocol電報協議,這裏我覺得用上層協議更好一些)

2)使用Soap的目的是定義如何調用遠程終端的中的服務(方法)。

3)Soap中用多個NameSpace標準來區別各個遠程服務。

4)Soap中不僅可以封裝簡單的數據類型,還可以封裝更加複雜的數據類型

所以有人說:Soap就是XML加HTTP。這描述雖然不準確,但的確可以概括Soap的基本意義。瞭解一項技術的原理,最好的方法莫過於站在一個開發它 的工程師角度來看這項技術。要實現基於Soap的架構,首先我們要知道數據是如何通過Soap傳遞到遠程服務器端的,其大致流程如下:
首先,由客戶端程序提出申請服務的要求,這個要求將被傳遞到客戶端的處理機中,所有的申請的方法及方法所需要的參數被打成符合服務器服務標準格式的 Soap封包中(即一個符合服務器服務標準格式的XML封包),這個封包通過HTTP協議傳送到服務器端,然後由服務器的XML解析器將Soap封包轉化 爲客戶端申請的方法名及所有參數,再由編譯器所提供的RTTI (RunTime Type Information)對應找到被申請的方法所在的調用堆棧地址,由服務器執行所需方法,再將方法返回的結果集通過處理機打包成XML封包傳遞迴客戶 端,由客戶端解析器將結果解析輸出。


不管你的Web service是用什麼工具,什麼語言寫出來的,只要你用SOAP協議通過HTTP來調用它,總體結構都一致。通常,你用你自己喜歡的語言來構建你的Web service,然後用SOAP Toolkit把它暴露給Web客戶。於是,任何語言,任何平臺上的客戶都可以閱讀其WSDL文檔,以調用這個Web service。客戶根據WSDL描述文檔,會生成一個SOAP請求消息。Web service都是放在Web服務器 (如WAS) 後面的,客戶生成的SOAP請求會被嵌入在一個HTTP POST請求中,發送到Web服務器來。Web服務器再把這些請求轉發給Web service請求處理器。請求處理器的作用在於,解析收到的SOAP請求,調用Web service,然後再生成相應的SOAP應答。Web服務器得到SOAP應答後,會再通過HTTP應答的方式把它送回到客戶端。

 

Webservice History

 

Internet開發模式的演進

第一輪:HTTP,帶來了Internet與電子商務

第二輪:Java,cross-platform,最早的RMI

第三輪:XML,標準的數據封裝技術,各種App之間交換數據不再是難事。

但是問題來了,Java無法與異構的系統互聯(例如ASP, PHP),雖然可以用XML交換數據但無法提供方法的調用。

第四代:突破不同實現技術的界限的力量 -> 同一的接口,我們的webservice

SOAP用來封裝調用的服務,是使用XML座位信息的載體,可以cross-platform,但條件是各個平臺都支持解析和處理SOAP。SOAP可以使用任何通信協議實體溝通,HTTP是目前最適合的。

標準的數據交換技術:XML

標準的封裝調用服務:SOAP協議

使用的實體通信技術:HTTP

Internet應用系統之間約定彼此的服務:Webservice

不同應用系統如何找到它所需要的服務:UDDI???

服務具體的實現技術:Java,C,Ptyhon…

Webservice tutorial

IBM RAD工具非常強大,將開發、部署一個webservice的工作變成了點擊鼠標的幾下工作,按照下載的幫助就可以開發屬於自己的第一個webservice了。

https://www6.software.ibm.com/dw/education/r/rconsumews/index.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章