https://www.phodal.com/blog/internet-of-things-web-technology/Posted by:
Phodal Huang Aug. 27, 2014, 8:54 p.m.
找了一下一些常用的物聯(lián)網(wǎng)相關(guān)的Web技術(shù),整理如下。
REST
REST不論是在HTTP協(xié)議中,還是在CoAP中都是常用的技術(shù)之一,雖然說(shuō)不上是技術(shù),但是常用是有的。
REST從資源的角度來(lái)觀察整個(gè)網(wǎng)絡(luò),分布在各處的資源由URI確定,而客戶(hù)端的 應(yīng)用通過(guò)URI來(lái)獲取資源的表征。獲得這些表征致使這些應(yīng)用程序轉(zhuǎn)變了其狀態(tài)。隨著不斷獲取資源的表征,客戶(hù)端應(yīng)用不斷地在轉(zhuǎn)變著其狀態(tài),所謂表征狀態(tài)轉(zhuǎn)移。
記得我在寫(xiě)畢業(yè)論文的時(shí)候這樣寫(xiě)到:
REST服務(wù)實(shí)際上是充當(dāng)著網(wǎng)絡(luò)與設(shè)備的傳輸介質(zhì),構(gòu)建一個(gè)REST服務(wù)也就相當(dāng)于 獲取一個(gè)URL下的某個(gè)數(shù)據(jù)。
需要注意的是,這里最后關(guān)注的還是M2M的思想,寫(xiě)給機(jī)器的接口。
CoAP
REST算是CoAP協(xié)議遵循的一個(gè)基本原則,除此之外他還是為受限制的設(shè)備而開(kāi)始的協(xié)議。
受約束的應(yīng)用協(xié)議(COAP)是一種軟件協(xié)議旨在以非常簡(jiǎn)單的電子設(shè)備,使他們能夠在互聯(lián)網(wǎng)上進(jìn)行交互式通信中使用。它特別針對(duì)小型低功率傳感器,開(kāi)關(guān),閥門(mén)和需要被控制或監(jiān)督遠(yuǎn)程,通過(guò)標(biāo)準(zhǔn)的Internet網(wǎng)絡(luò)類(lèi)似的組件。 COAP是一個(gè)應(yīng)用層協(xié)議,該協(xié)議是用于在資源受限的網(wǎng)絡(luò)連接設(shè)備,例如無(wú)線(xiàn)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)使用。 COAP被設(shè)計(jì)為容易地轉(zhuǎn)換為HTTP與Web簡(jiǎn)化集成,同時(shí)也能滿(mǎn)足特殊的要求,例如多播支持,非常低的開(kāi)銷(xiāo),和簡(jiǎn)單性。多播,低開(kāi)銷(xiāo),以及簡(jiǎn)單性是因特網(wǎng)極其重要物聯(lián)網(wǎng)(IOT)和機(jī)器對(duì)機(jī)器(M2M)設(shè)備,這往往是積重難返,有太多的內(nèi)存和電源,比傳統(tǒng)的互聯(lián)網(wǎng)設(shè)備有。因此,效率是非常重要的。 COAP可以在支持UDP或UDP的模擬大多數(shù)設(shè)備上運(yùn)行。
CoAP簡(jiǎn)化了HTTP協(xié)議,只提供了REST的四個(gè)方法。然而POST和PUT在我設(shè)計(jì)
IoT-CoAP的時(shí)候發(fā)現(xiàn)這兩種行為是類(lèi)似的,讓人想起了patch方法。
6LoWPAN
雖然還沒(méi)有玩過(guò)這個(gè)東西,但是這個(gè)顯然很受歡迎。
Lowpan是IPv6 over Low-power wireless Personal Area Networks的首字母縮寫(xiě),是IETF組織制定的物聯(lián)網(wǎng)標(biāo)準(zhǔn)體系,它的物理層和MAC層采用802.15.4標(biāo)準(zhǔn),網(wǎng)絡(luò)層采用IPv6,并制定了專(zhuān)門(mén)的RPL組網(wǎng)路由協(xié)議,傳輸層采用UDP,應(yīng)用層采用低開(kāi)銷(xiāo)的CoAP。簡(jiǎn)單講,6Lowpan系統(tǒng)是一套完整的類(lèi)似于Zigbee的網(wǎng)絡(luò)技術(shù),Zigbee能用的領(lǐng)域6Lowpan都可以使用,但是6Lowpan采用IPv6,具有許多優(yōu)勢(shì),包括具有海量的地址空間,可與TCP/IP網(wǎng)絡(luò)無(wú)縫集成,實(shí)現(xiàn)端到端的數(shù)據(jù)傳輸,并且很容易與HTTP轉(zhuǎn)換,易于集成到互聯(lián)網(wǎng),開(kāi)放的協(xié)議,無(wú)需專(zhuān)利費(fèi)等。6Lowpan已經(jīng)被ISA 100.11a、ETSI M2M、Zigbee SEP2.0等標(biāo)準(zhǔn)所采納,很可能像TCP/IP成為互聯(lián)網(wǎng)的事實(shí)標(biāo)準(zhǔn)那樣,成為物聯(lián)網(wǎng)領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。Cisco、IBM、Honywell、TI、NXP等巨頭以及Thingsqaure等眾多初創(chuàng)企業(yè)都已經(jīng)采用6Lowpan技術(shù),研發(fā)相關(guān)芯片、協(xié)議棧、中間件以及應(yīng)用系統(tǒng),逐漸成為產(chǎn)業(yè)發(fā)展趨勢(shì)。
有意思的是這是低功耗的網(wǎng)絡(luò),采用的是UDP。
MQTT
在
IoT-CoAP的一個(gè)分支中就用到了這個(gè)協(xié)議。
MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸)是IBM開(kāi)發(fā)的一個(gè)即時(shí)通訊協(xié)議,有可能成為物聯(lián)網(wǎng)的重要組成部分。該協(xié)議支持所有平臺(tái),幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來(lái),被用來(lái)當(dāng)做傳感器和致動(dòng)器(比如通過(guò)Twitter讓房屋聯(lián)網(wǎng))的通信協(xié)議。MQTT協(xié)議是為大量計(jì)算能力有限,且工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計(jì)的協(xié)議。
然而有意思的是MQTT采用的是使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合。似乎從某種程度上來(lái)說(shuō)這個(gè)會(huì)比CoAP的觀察者好一點(diǎn),因?yàn)槭且粚?duì)多。只是結(jié)果是推送功能的話(huà),似乎還是是設(shè)備去獲取狀態(tài)。。
XMPP
與JSON同樣流行的還有XML,所以XMPP也會(huì)受到JAVA程序員的大愛(ài)。。
XMPP是一種基于標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集XML的協(xié)議,它繼承了在XML環(huán)境中靈活的發(fā)展性。因此,基于XMPP的應(yīng)用具有超強(qiáng)的可擴(kuò)展性。經(jīng)過(guò)擴(kuò)展以后的XMPP可以通過(guò)發(fā)送擴(kuò)展的信息來(lái)處理用戶(hù)的需求,以及在XMPP的頂端建立如內(nèi)容發(fā)布系統(tǒng)和基于地址的服務(wù)等應(yīng)用程 序。而且,XMPP包含了針對(duì)服務(wù)器端的軟件協(xié)議,使之能與另一個(gè)進(jìn)行通話(huà),這使得開(kāi)發(fā)者更容易建立客戶(hù)應(yīng)用程序或給一個(gè)配好系統(tǒng)添加功能。
UDP
就設(shè)備來(lái)說(shuō)UDP會(huì)比HTTP好一點(diǎn)。。
UDP協(xié)議的全稱(chēng)是用戶(hù)數(shù)據(jù)報(bào)協(xié)議 ,在網(wǎng)絡(luò)中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無(wú)連接的協(xié)議。在OSI模型中,在第四層——傳輸層,處于IP協(xié)議的上一層。UDP有不提供數(shù)據(jù)包分組、組裝和不能對(duì)數(shù)據(jù)包進(jìn)行排序的缺點(diǎn),也就是說(shuō),當(dāng)報(bào)文發(fā)送之后,是無(wú)法得知其是否安全完整到達(dá)的。UDP用來(lái)支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶(hù)/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問(wèn)世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類(lèi)似協(xié)議所掩蓋,但是即使是在今天UDP仍然不失為一項(xiàng)非常實(shí)用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。
uIP
似乎這個(gè)和CoAP的目的是類(lèi)似的,然而就目前而言還是沒(méi)有CoAP來(lái)得有針對(duì)性。
uIP 協(xié)議棧去掉了完整的 TCP/IP 中不常用的功能,簡(jiǎn)化了通訊流程,但保留了網(wǎng)絡(luò)通信必須使用的協(xié)議,設(shè)計(jì)重點(diǎn)放在了 IP/TCP/ICMP/UDP/ARP 這些網(wǎng)絡(luò)層和傳輸層協(xié)議上,保證了其代碼的通用性和結(jié)構(gòu)的穩(wěn)定性。