Web service是什麼?(轉)

我認爲,下一代互聯網軟件將創建在Web service(也就是"雲")的基礎上。php

我把學習筆記和學習心得,放到網誌上,歡迎指正。html

今天先寫一個最基本的問題,Web service究竟是什麼?程序員

1、Web service的概念web

想要理解Web service,必須先理解什麼是Service(服務)。編程

傳統上,咱們把計算機後臺程序(Daemon)提供的功能,稱爲"服務"(service)。好比,讓一個殺毒軟件在後臺運行,它會自動監控系統,那麼這種自動監控就是一個"服務"。通俗地說,"服務"就是計算機能夠提供的某一種功能。json

根據來源的不一樣,"服務"又能夠分紅兩種:一種是"本地服務"(使用同一臺機器提供的服務,不須要網絡),另外一種是"網絡服務"(使用另外一臺計算機提供的服務,必須經過網絡才能完成)。瀏覽器

舉例來講,我如今有一批圖片,須要把它們的大小縮小一半。那麼,咱們能夠把"縮放圖片"當作是一種服務。你可使用"本地服務",在本身計算機上用軟件縮小圖片,也可使用"網絡服務",將圖片上傳到某個網站,讓服務器替你縮小圖片,完成後再經過網絡送回給你。這就比如,一件事你能夠本身作,也能夠交給另外一我的去作。肚子餓了,你能夠本身作飯,也能夠打電話去訂一份比薩,讓店家替你作好送上門。服務器

"網絡服務"(Web Service)的本質,就是經過網絡調用其餘網站的資源。網絡

舉例來講,去年我寫過一個"四川大地震圖片牆",它能動態顯示關於四川地震的最新圖片。可是,全部的圖片都不是儲存在個人服務器上,而是來自flickr.com。我只是發出一個動態請求,要求flickr.com向我提供圖片。這種狀況下,flickr.com提供的就是一種Web service。若是我把圖片都存放在本地服務器,不調用flickr.com,那麼我就是在使用"本地服務"。架構

因此,Web service讓你的網站可使用其餘網站的資源,好比在網頁上顯示天氣、地圖、twitter上的最新動態等等。

2、Web Service架構和雲

若是一個軟件的主要部分採用了"網絡服務",即它把存儲或計算環節"外包"給其餘網站了,那麼咱們就說這個軟件屬於Web Service架構。

Web Service架構的基本思想,就是儘可能把非核心功能交給其餘人去作,本身全力開發核心功能。好比,若是你要開發一個相冊軟件,徹底可使用Flickr的網絡服務,把相片都儲存到它上面,你只要全力作好相冊自己就能夠了。整體上看,凡是不屬於你核心競爭力的功能,都應該把它"外包"出去。

最近很紅的"雲計算"(cloud computing)或者"雲服務"(cloud services),實際上就是Web Service的同義詞,不過更形象一些罷了。它們不說你把事情交給其餘計算機去作,而說你把事情交給"雲"去作。

3、本地服務的缺陷

"網絡服務"是將來軟件開發和使用的趨勢,本地服務將用得愈來愈少,主要由於如下三個緣由:

* 本地資源不足。不少數據和資料,本地得不到,只有向其餘網站要。

* 成本因素。本地提供服務,每每是不經濟的,使用專業網站的服務更便宜。這裏面涉及硬件和人員兩部分,即便你買得起硬件,專門找一我的管理系統,也是很麻煩的事。

* 可移植性差。若是你想把本機的服務,移植到其餘機器上,每每很困難,尤爲是在跨平臺的狀況下。

4、Web Service的優點

除了本地服務的缺點之外,Web Service還有如下的優越性:

* 平臺無關。無論你使用什麼平臺,均可以使用Web service。

* 編程語言無關。只要遵照相關協議,就可使用任意編程語言,向其餘網站要求Web service。這大大增長了web service的適用性,下降了對程序員的要求。

* 對於Web service提供者來講,部署、升級和維護Web service都很是單純,不須要考慮客戶端兼容問題,並且一次性就能完成。

* 對於Web service使用者來講,能夠輕易實現多種數據、多種服務的聚合(mashup),所以可以作出一些之前根本沒法想像的事情。

5、Web service的發展趨勢

根據個人觀察,目前Web service有這樣幾種發展趨勢。

* 在使用方式上,RPC和soap的使用在減小,Restful架構佔到了主導地位。

* 在數據格式上,XML格式的使用在減小,json等輕量級格式的使用在增多。

* 在設計架構上,愈來愈多的第三方軟件讓用戶在客戶端(即瀏覽器),直接與雲端對話,再也不使用第三方的服務器進行中轉或處理數據。

(完)

 

http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html

相關文章
相關標籤/搜索