與前面介紹的RSS的差別之一是,Web Service提供了要求方使用「參數」的機制。
一講到Web Service,就好像投資理財一樣,每個人都可以講的頭頭是道,講他個三天三夜。在這裡我只想以最簡單的實例來說明,如果你期望從我口中說出「Web Service很重要、Web Service會改變世界、不用Web Service你們公司就會失去競爭力、就會倒」之類的話,那你可以轉頭離開了,因為我根本不相信這回事。
前面介紹的RSS或者台北市政府的案例,使用者都是「被動」地接收資料,而且是接收「由伺服器決定的」「全部」的資料。而在大多數的情境下,使用者比較希望能夠自己決定要查詢那些資料。
如果現在請你去查出一個IP的登記國家,你可能會用nslookup指令或是去TWNIC查,如果現在請你寫出一隻查詢IP的登記國家的程式,你可能會去找nslookup的API或是去TWNIC模擬HTML表單的動作進行查詢,然後再去剖析網頁並取得資料。
如果用Web Service的話,會是怎樣的情形呢?
首先,要找到一個提供IP查詢的Web Service,我找到了這個免費的GeoIP,接著呢,要製作提出查詢的Request Message如下圖所示,可以看出只傳了一個參數,就是IP
由於Web Service使用的是SOAP的通訊協定,接著使用支援SOAP的軟體,送出Request Message後,得到回覆如下,可以看出有CountryCode和CountryName,接著就可以拿這個資料去應用,看是要顯示在網頁上或是寫進資料庫。
從上面的範例可以看到傳送給伺服器的是XML型式的資料,回傳的也是XML型式的資料。
有一個重點是,你不必在乎也不必知道伺服器是什麼硬體什麼平台,用的是什麼資料庫,而我也沒有提到我是用什麼程式什麼軟體去產生、發送和接收Web Service的Request和Response(後面的章節會提到)。
這也是Web Service之所以採用XML型式,並獲得其平台獨立性的原因。
也許你想問,國內有沒有實際上線可用的Web Service?有的,這個WSDL(註)提供你用航站代碼(例:台北TSA、高雄KHH)查詢班機到離資訊,使用手冊在交通部運輸研究所有。
註:WSDL(Web Service Description Language)是用來描述所提供的Web Service有那些功能、如何使用、傳那些參數...的一種方式,其型式....還是XML。
本系列文章列表
Next : [XML]08-使用網站案例(AJAX)
antijava提到:
所提供的Web Service有那些功能
我不會XML,想當然爾,也不會webservice,都直接用socket丟一丟交差。
說到這,我又想到一門課,網路通訊概論。
用socket也很不錯
只是「low」了點
這兩個根本是不同層的東西,不能相提並論的。
雖然我不太懂,但是應該不同東西吧‧
cdfu提到:
這兩個根本是不同層的東西,不能相提並論的。
總裁講到關鍵字了
那七層圖一畫下來
socket是不是比Web Service「low」呢
把第一層畫在最上面就不會了....(就是要硬ㄠ...)
好啊,接下來好好來談談socket programming對一生的影響,
後來我至少五個專案用了berkeley socket。
謝謝java大大的答覆,
我已經先手機報名成功啦,
還有大大的"本系列文章"招數, 是一定要學的啦~