且看百度百科是如何定義:web
Web service是一個平臺獨立的,鬆耦合的,自包含的、基於可編程的web的應用程序,可以使用開放的XML標準來描述、發佈、發現、協調和配置這些應用程序,用於開發分佈式的互操做的應用程序。編程
從定義中能夠了解, WebService 主要具有三大特色:平臺獨立性,鬆耦合、自包含,分佈式互操做。服務器
首先,能稱爲Web Service的應用,具有平臺獨立性,所謂平臺獨立性,在Windows、Linux、Unix平臺等等均可以使用,是你們遵照的行業標準或者是某些事實標準,有些雖然不是行業標準,但你們都這麼作,也都支持,也就慢慢變成事實了。網絡
那什麼不是通用的解決方案呢?如:Windows平臺的COM/DCOM技術,只能侷限於某個平臺,一旦脫離該平臺就不可使用。架構
基次,具有Web Service應用程序,是鬆耦合的,自包含的。所謂鬆耦合,即模塊之間的依賴型和制約比較小,更改一個模塊不會比較大的影響其餘模塊,說白了,不用關心模塊內部是如何實現的,給你標準的接口,你用你們都用的技術與我互通便可。關於自包含的理解,指在組件重用時不須要包含其餘的可重用組件,本身搞掂一切,呵呵。框架
再次,分佈式互操做性,這點你們很是好理解,開發出來的應用,要具有與其它系統之間的互操做,如今系統都不是孤立的,開放出來的接口,能夠在任意平臺上可調用,不具備依賴性。分佈式
早期,軟件巨頭們定義的Web Service標準,主要由三部分構成: SOAP,WSDL,UDDI。函數
SOAP 即簡單對象訪問協議(Simple Object Access Protocol),它是用於交換XML編碼信息的輕量級協議。它有三個主要方面:XML-envelope爲描述信息內容和如何處理內容定義了框架,將程序對象編碼成爲XML對象的規則,執行遠程過程調用(RPC)的約定。SOAP能夠運行在任何其餘傳輸協議上。這裏須要注意,SOAP是能夠在其餘協議上,不只是HTTP, 能夠基於SMTP,消息隊列等。性能
WSDL 是web Service描述語言 就是用機器能閱讀的方式提供的一個正式描述文檔而基於XML的語言,用於描述Web Service及其函數、參數和返回值。由於是基於XML的,因此WSDL既是機器可閱讀的,又是人可閱讀的。編碼
UDDI 的目的是爲電子商務創建標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業可以發現的訪問協議的實現標準。
UDDI 基本沒有實現,這種想法也不現實。能夠理解UDDI是個Web Service公共倉庫,服務寫好註冊到UDDI中,以即是其餘系統方便調用。
隨着互聯網技術的興起,XML愈來愈使人詬病,XML的數據包越來重,SOAP協議方便性和靈活性都有欠缺,尤爲興起的Web2.0發展,由Yahoo、Google 和 Facebook等大型互聯網公司的倡導,REST表明性狀態傳輸(Representational State Transfer,REST)在 Web 領域已經獲得了普遍的接受,是基於 SOAP 和 Web 服務描述語言(Web Services Description Language,WSDL)的 Web 服務的更爲簡單的替代方法。如GOOGLE 這些提供者棄用或放棄了基於 SOAP 和 WSDL 的接口,而採用了更易於使用、面向資源的模型來公開其服務。
Rest 服務定義:
即REST(Representational State Transfer表述性狀態轉移)是一種針對網絡應用的設計和開發方式,能夠下降開發的複雜性,提升系統的可伸縮性。
Rest Service特色:
Rest Service 相比Web Service建議的標準更輕量級,甚到用Javascript均可以調用,使用方更方便、高效、簡單。REST架構遵循了CRUD原則,CRUD原則對於資源只須要四種行爲:Create(建立)、Read(讀取)、Update(更新)和Delete(刪除)就能夠完成對其操做和處理。
REST 從資源的角度來觀察整個網絡,分佈在各處的資源由URI肯定,而客戶端的應用經過URI來獲取資源的表徵。得到這些表徵導致這些應用程序轉變了其狀態。隨着不斷獲取資源的表徵,客戶端應用不斷地在轉變着其狀態,所謂表徵狀態轉移(Representational State Transfer)。
Rest Service具有Web Service的全部特色:平臺獨立、鬆耦合、互操做性。而且,Rest 更輕量級,更簡單。能夠這麼說吧,Rest Service 是Web Service的一種實現,並非說Rest是Web service替代。