20140525-Web service是什嗎?(轉載)

來源:互聯網
上載者:User

標籤:c   style   blog   tar   http   a   

參考資料:

Web service是什嗎? - 阮一峰的部落格

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

20140525-Web service是什嗎?(轉載)

 阮一峰

日期: 

2009年8月26日

我認為,下一代互連網軟體將建立在Web service(也就是"雲")的基礎上。

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

今天先寫一個最基本的問題,Web service到底是什嗎?

一、Web service的概念

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

傳統上,我們把電腦背景程式(Daemon)提供的功能,稱為"服務"(service)。比如,讓一個殺毒軟體在後台運行,它會自動監控系統,那麼這種自動監控就是一個"服務"。通俗地說,"服務"就是電腦可以提供的某一種功能。

根據來源的不同,"服務"又可以分成兩種:一種是"本地服務"(使用同一台機器提供的服務,不需要網路),另一種是"網路服務"(使用另一台電腦提供的服務,必須通過網路才能完成)。

舉例來說,我現在有一批圖片,需要把它們的大小縮小一半。那麼,我們可以把"縮放圖片"看成是一種服務。你可以使用"本地服務",在自己電腦上用軟體縮小圖片,也可以使用"網路服務",將圖片上傳到某個網站,讓伺服器替你縮小圖片,完成後再通過網路送回給你。這就好比,一件事你可以自己做,也可以交給另一個人去做。肚子餓了,你可以自己做飯,也可以打電話去訂一份比薩,讓店家替你做好送上門。

"網路服務"(Web Service)的本質,就是通過網路調用其他網站的資源。

舉例來說,去年我寫過一個"四川大地震圖片牆",它能動態顯示關於四川地震的最新圖片。但是,所有的圖片都不是儲存在我的伺服器上,而是來自flickr.com。我只是發出一個動態請求,要求flickr.com向我提供圖片。這種情況下,flickr.com提供的就是一種Web service。如果我把圖片都存放在本機伺服器,不調用flickr.com,那麼我就是在使用"本地服務"。

所以,Web service讓你的網站可以使用其他網站的資源,比如在網頁上顯示天氣、地圖、twitter上的最新動向等等。

二、Web Service架構和雲

如果一個軟體的主要部分採用了"網路服務",即它把儲存或計算環節"外包"給其他網站了,那麼我們就說這個軟體屬於Web Service架構。

Web Service架構的基本思想,就是盡量把非核心功能交給其他人去做,自己全力開發核心功能。比如,如果你要開發一個相簿軟體,完全可以使用Flickr的網路服務,把相片都儲存到它上面,你只要全力做好相簿本身就可以了。總體上看,凡是不屬於你核心競爭力的功能,都應該把它"外包"出去。

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

三、本地服務的缺陷

"網路服務"是未來軟體開發和使用的趨勢,本地服務將用得越來越少,主要因為以下三個原因:

(1)本地資源不足。很多資料和資料,本地得不到,只有向其他網站要。

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

(3)可移植性差。如果你想把原生服務,移植到其他機器上,往往很困難,尤其是在跨平台的情況下。

四、Web Service的優勢

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

(1)平台無關。不管你使用什麼平台,都可以使用Web service。

(2)程式設計語言無關。只要遵守相關協議,就可以使用任意程式設計語言,向其他網站要求Web service。這大大增加了web service的適用性,降低了對程式員的要求。

(3)對於Web service提供者來說,部署、升級和維護Web service都非常單純,不需要考慮用戶端相容問題,而且一次性就能完成。

(4)對於Web service使用者來說,可以輕易實現多種資料、多種服務的彙總(mashup),因此能夠做出一些以前根本無法想像的事情。

五、Web service的發展趨勢

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

(1)在使用方式上,RPC和soap的使用在減少,Restful架構佔到了主導地位。

(2)在資料格式上,XML格式的使用在減少,json等輕量級格式的使用在增多。

(3)在設計架構上,越來越多的第三方軟體讓使用者在用戶端(即瀏覽器),直接與雲端對話,不再使用第三方的伺服器進行中轉或處理資料。

(完)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.