傳統上,咱們把計算機後臺程序(Daemon)提供的功能,稱爲"服務"(service)。好比,讓一個殺毒軟件在後臺運行,它會自動監控系統,那麼這種自動監控就是一個"服務"。通俗地說,"服務"就是計算機能夠提供的某一種功能。html
根據來源的不一樣,"服務"又能夠分紅兩種:一種是"本地服務"(使用同一臺機器提供的服務,不須要網絡),另外一種是"網絡服務"(使用另外一臺計算機提供的服務,必須經過網絡才能完成)。舉一個很形象的例子:肚子餓了,你能夠本身作飯,也能夠打電話去訂一份比薩,讓店家替你作好送上門。程序員
Web service讓你的網站可使用其餘網站的資源,好比在網頁上顯示天氣、地圖、twitter上的最新動態等等。web
若是一個軟件的主要部分採用了"網絡服務",即它把存儲或計算環節"外包"給其餘網站了,那麼咱們就說這個軟件屬於Web Service架構。編程
Web Service架構的基本思想,就是儘可能把非核心功能交給其餘人去作,本身全力開發核心功能。好比,若是你要開發一個相冊軟件,徹底可使用Flickr的網絡服務,把相片都儲存到它上面,你只要全力作好相冊自己就能夠了。整體上看,凡是不屬於你核心競爭力的功能,都應該把它"外包"出去。json
最近很紅的"雲計算"(cloud computing)或者"雲服務"(cloud services),實際上就是Web Service的同義詞,不過更形象一些罷了。它們不說你把事情交給其餘計算機去作,而說你把事情交給"雲"去作。瀏覽器
* 平臺無關。無論你使用什麼平臺,均可以使用Web service。
* 編程語言無關。只要遵照相關協議,就可使用任意編程語言,向其餘網站要求Web service。這大大增長了web service的適用性,下降了對程序員的要求。
* 對於Web service提供者來講,部署、升級和維護Web service都很是單純,不須要考慮客戶端兼容問題,並且一次性就能完成。服務器
* 在使用方式上,RPC和soap的使用在減小,Restful架構佔到了主導地位。
* 在數據格式上,XML格式的使用在減小,json等輕量級格式的使用在增多。
* 在設計架構上,愈來愈多的第三方軟件讓用戶在客戶端(即瀏覽器),直接與雲端對話,再也不使用第三方的服務器進行中轉或處理數據。網絡