會說云語嗎?
當(dāng)然,我們需要一個通用詞匯表,這是Web服務(wù)的目的。Web服務(wù)的典型定義是,一種在網(wǎng)際網(wǎng)路協(xié)定骨干上使用XML、HTTP、SOAP、WSDL和UDDI開放標(biāo)準(zhǔn)整合Web應(yīng)用程式的一種方法。為了簡單化,Web服務(wù)利用網(wǎng)際網(wǎng)路通用語言完成任務(wù),以通用方式描述事件,使用常見動詞收發(fā)資訊(Put或Get),并透過請求或訂閱使用某種方法實現(xiàn)一到多和多到一連接。
Web服務(wù)是如何工作的?用一種支援通訊的語言開始──你已經(jīng)知道了,然而,你可能不了解其中的真正含義。這是HTTP或超文本傳輸協(xié)定,是網(wǎng)際網(wǎng)路客戶端和伺服器的語言,最重要的是,這是一種將網(wǎng)際網(wǎng)路動詞應(yīng)用于名詞的通用協(xié)議。聽起來不錯?我們在二年級就學(xué)習(xí)名詞和動詞了。
名詞網(wǎng)際網(wǎng)路名詞是被稱為統(tǒng)一資源定位器(URL)或通用資源標(biāo)識符(URI)的一類東西。當(dāng)然,不僅是這些──你需要描述數(shù)據(jù)的低位和數(shù)據(jù)的高位。為了做到這一點,你將使用可以靈活編碼資訊的方法。目前有許多這些方法,但最常用的兩種是可擴(kuò)展標(biāo)記語言(XML)和JavaScript對象符號(JSON)。這兩種方法都能用于傳送和儲存數(shù)據(jù),并且具有自描述性,這意味著你通常不需要魔術(shù)解碼環(huán)來理解場景。這些東西的次序也不重要。表1顯示了XML和JSON的兩個常見的簡單例子。

表1、XML和JSON事例比較。
需要注意的是,意思和場景在標(biāo)籤內(nèi)傳送,而內(nèi)容是與標(biāo)籤有關(guān)的值。因為例子使用了有意義的場景標(biāo)籤,你可以省略一些資訊,增加其它資訊,將它們的順序打亂,而不會改變單個元素的含義。
動詞你需要將動詞配搭名詞。對動詞而言,可以使用表述性狀態(tài)轉(zhuǎn)移(REST)。據(jù)維基百科介紹,REST“是一種用于分散式超媒體系統(tǒng)的軟體架構(gòu),如WWW?!盧EST意味著你在使用通用動作組,其細(xì)節(jié)由場景進(jìn)行處理。對于像HTTP那樣的協(xié)議,我們一般討論7個不同的動作或動詞,其中4個完成設(shè)備云中的主要任務(wù)。這7個動詞是:Get,Put,Post,Delete,Head,Trace和Connect。本文不打算對Head、Trace和Connect多作說明。我們真正需要關(guān)注最重要的4個:Get,Put,Post和Delete。下面介紹這些動詞的含義。
每次你登錄網(wǎng)站,你就是在做Get。這是一個獲取或獲得文件或集合描述的一個請求。當(dāng)然,就像許多問題一樣,它們通常會導(dǎo)致更多的問題,因此一次‘get’經(jīng)常招致另一個。Get是個動詞,而URL加上所有插入的其它資訊就是那個名詞。下一個是Put。Put是Get的反義詞,因此是將文件或集合上載或‘put’到資料庫的一個請求。Delete是魔術(shù)擦除器。毫無疑問,如果有些東西已經(jīng)‘放’在某個地方,我們可能想‘取得’它的拷貝,但我們大多數(shù)時候還希望‘刪除’這些東西。最后是Post。這是一個比較復(fù)雜的動詞。最好將Post認(rèn)為是一個中間步驟或中繼。比方說你想要知道一個問題的答案,但確實不知道去問誰。你無法做Get,因為你不知道要問什么。這是,你可以將所有資訊打包并變成一個帖子(Post)。一旦‘張貼’過后,所謂的專家過程將看到你的帖子并作出回應(yīng)。你可以即時等待響應(yīng)(同步),或離開這裡并請求響應(yīng)通知(非同步)。
為了將這些動詞應(yīng)用到設(shè)備和應(yīng)用程式,讓我們假設(shè)你有一組連接著不同建筑物的溫度感測器。每個感測器每個小時使用合適的連接、匯聚和轉(zhuǎn)換功能將溫度值發(fā)送到設(shè)備云中的資料庫。在這種場景中,溫度值被‘放(put)’進(jìn)云端。下一步假設(shè)應(yīng)用程式根據(jù)時間和地點對各個溫度進(jìn)行分析和繪圖。在這種場景中,應(yīng)用程式將從與合適時間和地點名詞相關(guān)的資料庫中‘獲?。╣et)’這些值。進(jìn)一步假設(shè)你只想將數(shù)據(jù)保持一個月,因此每天都有一個獨立的進(jìn)程對過時的溫度值進(jìn)行‘刪除’。最后,假設(shè)應(yīng)用程式的一位用戶想要即時的目前溫度值,而不僅僅是最近幾個小時。在這種情況下,應(yīng)用程式將在指定地點‘張貼(post)’一個獲取目前值的請求,等待請求得到處理并返回結(jié)果。這些就是Web服務(wù)使用簡單的名詞和動詞的工作過程,
總之,你會發(fā)現(xiàn),利用合適的連接、匯聚和轉(zhuǎn)換功能,可以很容易將設(shè)備資訊成功連接遠(yuǎn)端應(yīng)用程式。設(shè)備云和擴(kuò)展網(wǎng)際網(wǎng)路隨后作為將數(shù)據(jù)橋接到應(yīng)用程式的管道。所有這些事情都是使用相對簡單的、與一組網(wǎng)際網(wǎng)路名詞緊密相關(guān)的網(wǎng)際網(wǎng)路動詞組合完成的,沒有太大難度,只要記住REST和使用Post就可以了。
電子發(fā)燒友App








評論