三種主流的WebService實現方案(REST/SOAP/XML-RPC)簡述及比較

目前知道的三種主流的Web服務實現方案爲:
REST:表象化狀態轉變 (軟件架構風格)
SOAP:簡單對象訪問協議 
XML-RPC:遠程過程調用協議 

簡單介紹:

REST:表徵狀態轉移Representational State Transfer),採用Web 服務使用標準的 HTTP 方法 (GET/PUT/POST/DELETE) 將所有 Web 系統的服務抽象爲資源,REST從資源的角度來觀察整個網絡,分佈在各處的資源由URI確定,而客戶端的應用通過URI來獲取資源的表徵。Http協議所抽象的get,post,put,delete就好比數據庫中最基本的增刪改查,而互聯網上的各種資源就好比數據庫中的記錄(可能這麼比喻不是很好),對於各種資源的操作最後總是能抽象成爲這四種基本操作,在定義了定位資源的規則以後,對於資源的操作通過標準的Http協議就可以實現,開發者也會受益於這種輕量級的協議。REST是一種軟件架構風格而非協議也非規範,是一種針對網絡應用的開發方式,可以降低開發的複雜性,提高系統的可伸縮性。

 

SOAP:簡單對象訪問協議(Simple Object Access Protocol)是一種標準化的通訊規範,主要用於Web服務(web service)中。用一個簡單的例子來說明 SOAP 使用過程,一個 SOAP 消息可以發送到一個具有 Web Service 功能的 Web 站點,例如,一個含有房價信息的數據庫,消息的參數中標明這是一個查詢消息,此站點將返回一個 XML 格式的信息,其中包含了查詢結果(價格,位置,特點,或者其他信息)。由於數據是用一種標準化的可分析的結構來傳遞的,所以可以直接被第三方站點所利用。

XML-RPC:一個遠程過程調用(remote procedure call,RPC)的分佈式計算協議,通過XML將調用函數封裝,並使用HTTP協議作爲傳送機制。後來在新的功能不斷被引入下,這個標準慢慢演變成爲今日的SOAP協定。XML-RPC協定是已登記的專利項目。XML-RPC透過向裝置了這個協定的服務器發出HTTP請求。發出請求的用戶端一般都是需要向遠端系統要求呼叫的軟件。

 

三種方案的簡單比較

XML-RPC已慢慢的被SOAP所取代,現在很少採用了,但它還是有版權的,我在此就不作多介紹
成熟度上SOAP在成熟度上優於REST

效率和易用性上:REST更勝一籌

安全性上SOAP安全性高於REST,因爲REST更關注的是效率和性能問題

總體上,因爲REST模式的Web服務與複雜的SOAPXML-RPC對比來講明顯的更加簡潔,越來越多的web服務開始採用REST風格設計和實現。例如,Amazon.com提供接近REST風格的Web服務進行圖書查找;雅虎提供的Web服務也是REST風格的。REST對於資源型服務接口來說很合適,同時特別適合對於效率要求很高,但是對於安全要求不高的場景。而SOAP的成熟性可以給需要提供給多開發語言的,對於安全性要求較高的接口設計帶來便利。所以我覺得純粹說什麼設計模式將會佔據主導地位沒有什麼意義,關鍵還是看應用場景,正是那句老話:適合的纔是最好的

同時很重要一點就是不要扭曲了REST現在很多網站都跟風去開發REST風格的接口,其實都是在學其形,不知其心,最後弄得不倫不類,性能上不去,安全又保證不了,徒有一個看似象摸象樣的皮囊。

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