實(shí)時(shí)通信技術(shù)作為一項(xiàng)根本性前提,在物聯(lián)網(wǎng)應(yīng)用程序的開(kāi)發(fā)工作中扮演著核心角色。想象一下,如果我們能夠利用手機(jī)與家居環(huán)境內(nèi)的各種小裝置進(jìn)行通信,那么科幻電影中的種種場(chǎng)景將很快變成現(xiàn)實(shí)。但如果整個(gè)通信過(guò)程需要數(shù)秒才能完成,那么使用體驗(yàn)無(wú)疑會(huì)大打折扣。
要說(shuō)起實(shí)時(shí)通信技術(shù)的發(fā)展演變,我們就不能不提即時(shí)通訊方案的出現(xiàn)。從歷史角度講,即時(shí)通訊產(chǎn)品可以算是最早出現(xiàn)的客戶(hù)友好型聯(lián)網(wǎng)實(shí)時(shí)通信客戶(hù)端。AOL IM、ICQ以及Jabber正是各類(lèi)支持實(shí)時(shí)通信的即時(shí)通訊方案中的典型代表。而這一切早在上世紀(jì)九十年代就已然出現(xiàn)了。
時(shí)至今日,我們開(kāi)始將著眼點(diǎn)放在開(kāi)發(fā)作用于不同物聯(lián)網(wǎng)設(shè)備之間的通信協(xié)議——不過(guò)當(dāng)初構(gòu)建即時(shí)通訊解決方案時(shí)積累到的經(jīng)驗(yàn)仍然適用。目前物聞網(wǎng)設(shè)備所廣泛使用的三大實(shí)時(shí)協(xié)議包括:XMPP、CoAP以及MQTT。有趣的是,其中的XMPP早在Jabber時(shí)代就已經(jīng)作為一套開(kāi)放即時(shí)通訊協(xié)議存在了。
XMPP
XMPP的全稱(chēng)為可擴(kuò)展通訊與表示協(xié)議。這項(xiàng)立足于XML的TCP通信協(xié)議能夠以近實(shí)時(shí)方式在兩個(gè)甚至更多聯(lián)網(wǎng)功能實(shí)體之間進(jìn)行結(jié)構(gòu)化數(shù)據(jù)交換。XMPP當(dāng)中的現(xiàn)成功能包括表示信息以及聯(lián)系人名單維護(hù)。盡管這兩項(xiàng)功能最初都是針對(duì)即時(shí)通訊需求設(shè)計(jì)而成,但它們?cè)谖锫?lián)網(wǎng)應(yīng)用程序當(dāng)中仍然能夠起到不錯(cuò)的效果。鑒于其出色的開(kāi)放特性并以XML為基礎(chǔ),XMPP已經(jīng)被擴(kuò)展至各類(lèi)公共訂閱系統(tǒng)當(dāng)中——而這也恰好適合物聯(lián)網(wǎng)應(yīng)用的實(shí)際需求。
利用XMPP作為物聯(lián)網(wǎng)通信協(xié)議,我們能夠享受到幾大突出優(yōu)勢(shì)。首先就是XMPP的分散特性。XMPP的運(yùn)作方式與電子郵件比較相似,游走于由傳輸代理構(gòu)建而成的分布式網(wǎng)絡(luò)當(dāng)中,而非高度依賴(lài)于單一中央服務(wù)器或者代理節(jié)點(diǎn)(CoAP與MQTT皆屬于這種情況)。與電子郵件一樣,每個(gè)人都能夠輕松運(yùn)行屬于自己的XMPP服務(wù)器,這就使得設(shè)備制造商以及API供應(yīng)方能夠創(chuàng)建并管理自己的設(shè)備網(wǎng)絡(luò)體系。而由于大家都有能力運(yùn)行自己的服務(wù)器,所以出于安全考慮,我們可以在必要時(shí)利用內(nèi)置TLS加密機(jī)制將該服務(wù)器隔離在企業(yè)內(nèi)網(wǎng)的安全驗(yàn)證協(xié)議之下。
遺憾的是,XMPP也存在著一些弊端。其最大的問(wèn)題之一就是缺少端到端加密機(jī)制。盡管在不少場(chǎng)景之下,這類(lèi)加密機(jī)制基本算是可有可無(wú),但歸根結(jié)底大多數(shù)物聯(lián)網(wǎng)設(shè)備仍然需要利用加密來(lái)保障安全。端到端加密機(jī)制的缺失無(wú)疑會(huì)令物聯(lián)網(wǎng)設(shè)備制造商陷入被動(dòng)當(dāng)中。