物聯(lián)網(wǎng)是物聯(lián)設(shè)備組成的網(wǎng)絡(luò),因此物聯(lián)網(wǎng)需要兩個(gè)要素,一是設(shè)備能夠互聯(lián),另一個(gè)是能夠組網(wǎng)。
一、物聯(lián)網(wǎng)與物聯(lián)設(shè)備 本人對(duì)物聯(lián)網(wǎng)的理解是物聯(lián)設(shè)備組成的網(wǎng)絡(luò),因此物聯(lián)網(wǎng)需要兩個(gè)要素,一是設(shè)備能夠互聯(lián),另一個(gè)是能夠組網(wǎng)。物聯(lián)網(wǎng)往往又跟智能硬件概念相結(jié)合,當(dāng)今物聯(lián)網(wǎng)產(chǎn)品形態(tài)往往又帶有無(wú)線連接的特點(diǎn)(有線zui主要的弊端就是布線麻煩)。因此能夠支持互聯(lián)、組網(wǎng)、無(wú)線三個(gè)特點(diǎn)的物聯(lián)設(shè)備技術(shù)就是常見(jiàn)的藍(lán)牙和wifi了。藍(lán)牙是近距離通信,穿墻能力差;而wifi距離遠(yuǎn),可穿墻,但是功耗比較高。ZigBee其實(shí)通信距離比藍(lán)牙遠(yuǎn),功耗也比wifi低,看起來(lái)是比較理想的物聯(lián)技術(shù),但是ZigBee的組網(wǎng)能力比較差,帶寬低,傳輸慢。ZigBee更多用在工業(yè)控制領(lǐng)域。
手機(jī)是現(xiàn)代社會(huì)每個(gè)人*的產(chǎn)品,藍(lán)牙和wifi是手機(jī)的*模塊,所以手機(jī)是zui大的物聯(lián)智能設(shè)備。另外,由于人是物聯(lián)網(wǎng)的直接使用者,因此幾乎所有的物聯(lián)解決方案都是圍繞手機(jī)用戶(hù)展開(kāi)。
二、物聯(lián)場(chǎng)景演進(jìn)
1.手機(jī)直接控制物聯(lián)設(shè)備架構(gòu)
下圖是wifi物聯(lián)架構(gòu)示意圖:
手機(jī)連接并控制物聯(lián)設(shè)備是物聯(lián)技術(shù)的基礎(chǔ),*種方式是手機(jī)和硬件控制設(shè)備都以client的方式連接路由器,這樣手機(jī)和硬件控制設(shè)備都能獲得一個(gè)動(dòng)態(tài)的IP,這樣手機(jī)可以通過(guò)socket通信方式來(lái)控制硬件控制設(shè)備。第二種方式是硬件控制設(shè)備帶有wifiAP熱點(diǎn)功能,手機(jī)以wificlient連接上AP,AP的IP是固定的,因此手機(jī)也能夠?qū)τ布刂圃O(shè)備進(jìn)行控制。
這種物聯(lián)方式一般只是演示的模型,實(shí)際應(yīng)用很少。因?yàn)樗娜秉c(diǎn)顯而易見(jiàn),我們都知道socket通信需要知道通信對(duì)方的IP,因此手機(jī)上的APP控制硬件設(shè)備時(shí)需要填入設(shè)備的IP。*種方式的IP是動(dòng)態(tài)的,需要通過(guò)路由器的web控制頁(yè)面(一般電腦連接后瀏覽器輸入192.168.1.1)獲得,這在商用應(yīng)用中不可能存在。第二種方式也需要手機(jī)APP輸入固定的IP,控制不同的設(shè)備就得輸入不同的IP,用戶(hù)體驗(yàn)不好。而且這種物聯(lián)跟遙控沒(méi)有本質(zhì)的區(qū)別,不利于獲取用戶(hù)的信息。而獲取用戶(hù)的信息并提供服務(wù)才是物聯(lián)網(wǎng)的核心要素。
2.基于獨(dú)立后臺(tái)服務(wù)的物聯(lián)架構(gòu)
下圖是wifi物聯(lián)架構(gòu)示意圖:
這種物聯(lián)架構(gòu)中的獨(dú)立服務(wù)器是以域名的方式存在,這樣可以直接解決動(dòng)態(tài)IP不固定的問(wèn)題。另外,這種物聯(lián)架構(gòu)中手機(jī)和硬件控制都需要以用戶(hù)名注冊(cè)和登陸的方式來(lái)訪問(wèn)獨(dú)立服務(wù)器,并由服務(wù)器通過(guò)心跳技術(shù)來(lái)確認(rèn)手機(jī)和硬件控制設(shè)備的在線狀態(tài)。手機(jī)和硬件控制在服務(wù)器看來(lái)都是普通的物聯(lián)設(shè)備,它們?cè)诜?wù)器看來(lái)都具有*的用戶(hù)ID,物聯(lián)設(shè)備登陸服務(wù)器時(shí)服務(wù)器會(huì)獲取到用戶(hù)ID所在設(shè)備的IP地址。而手機(jī)APP控制硬件設(shè)備是以用戶(hù)ID為依據(jù)進(jìn)行控制,其先將用戶(hù)ID送往服務(wù)器即可獲取到對(duì)應(yīng)的IP地址。后續(xù)控制可以通過(guò)服務(wù)器,也可以繞過(guò)服務(wù)器直接進(jìn)行。
類(lèi)似web互聯(lián)架構(gòu)在互聯(lián)網(wǎng)應(yīng)用廣泛存在,如。每臺(tái)手機(jī)都以賬號(hào)和密碼進(jìn)行登錄,登錄后,后臺(tái)服務(wù)器會(huì)獲知每個(gè)用戶(hù)所在手機(jī)的IP地址。兩個(gè)用戶(hù)通信時(shí)會(huì)先通過(guò)賬號(hào)來(lái)獲取對(duì)方的IP,并進(jìn)行下一步通信。這些訪問(wèn)細(xì)節(jié)都已經(jīng)封裝在客戶(hù)端程序中,使用者并不需要理會(huì)。用戶(hù)間的通信可能會(huì)經(jīng)過(guò)服務(wù)器,也可能繞過(guò)服務(wù)器進(jìn)行。如文字信息一般會(huì)送往服務(wù)器進(jìn)行信息過(guò)濾再送到對(duì)方,而視頻應(yīng)該是雙方直接通過(guò)IP進(jìn)行通信。
這種架構(gòu)在物聯(lián)領(lǐng)域曾經(jīng)是主流的架構(gòu),但是其固有的缺點(diǎn)也約束了它的發(fā)展壯大。這種架構(gòu)中,獨(dú)立服務(wù)器一般是由硬件控制設(shè)備的銷(xiāo)售廠商開(kāi)發(fā)維護(hù)的,另外其還需要向購(gòu)買(mǎi)硬件設(shè)備的用戶(hù)提供手機(jī)APP,以讓用戶(hù)能夠進(jìn)行遠(yuǎn)端的硬件控制。如小孩監(jiān)護(hù)攝像頭,廠商需要開(kāi)發(fā)手機(jī)監(jiān)護(hù)APP給用戶(hù)安裝使用??梢韵氲?,用戶(hù)每購(gòu)買(mǎi)一種物聯(lián)設(shè)備,都需要安裝一個(gè)不同的APP。這直接影響了用戶(hù)體驗(yàn)。用戶(hù)一般是不情愿安裝很多的手機(jī)APP的,不僅安全無(wú)法保障,手機(jī)布滿(mǎn)控制APP時(shí),要找到哪款設(shè)備對(duì)應(yīng)的APP還要花時(shí)間。另外,獨(dú)立服務(wù)器的廠商受限于自己的技術(shù)儲(chǔ)備和運(yùn)維能力,難以兼容支持第三方廠商的物聯(lián)設(shè)備。
3.基于統(tǒng)一后臺(tái)服務(wù)的物聯(lián)架構(gòu)
由第2點(diǎn),我們自然可以想到,如果有一家實(shí)力超雄的廠商能夠提供統(tǒng)一的后臺(tái)服務(wù),并被廣大手機(jī)用戶(hù)使用者認(rèn)可愿意使用,而物聯(lián)設(shè)備廠商按照統(tǒng)一后臺(tái)服務(wù)擬定的協(xié)議進(jìn)行設(shè)備生產(chǎn)并接入到統(tǒng)一的后臺(tái)服務(wù),那大一統(tǒng)的物聯(lián)網(wǎng)大平臺(tái)將成為可能。
公眾號(hào)和硬件平臺(tái)得益于騰訊的超大用戶(hù)量,很自然就承載了這種平臺(tái)的實(shí)現(xiàn)。*可以預(yù)見(jiàn),將是未來(lái)物聯(lián)網(wǎng)的重要支撐平臺(tái)之一,而小米在手機(jī)、智能家居和相關(guān)行業(yè)的布局也是物聯(lián)網(wǎng)重要支撐平臺(tái)的競(jìng)爭(zhēng)者。擬定統(tǒng)一開(kāi)發(fā)的協(xié)議,讓社會(huì)上不同的第三方硬件設(shè)備公司接入并獲得*的用戶(hù)ID,而小米不僅是統(tǒng)一后臺(tái)的開(kāi)發(fā)維護(hù)者,也是小米不同硬件設(shè)備的生產(chǎn)者,兩者走的路并不一致。但兩者的共同點(diǎn)是后臺(tái)服務(wù)是統(tǒng)一的,兩者的隸屬公司都是超大體量型企業(yè)。
在移動(dòng)互聯(lián)網(wǎng)領(lǐng)域,用戶(hù)基礎(chǔ)是非常核心的要素,涉及平臺(tái)相關(guān)的服務(wù),沒(méi)有超大型體量的企業(yè)很難快速構(gòu)建,頂多只能在垂直領(lǐng)域有所作為。事實(shí)上,在智能硬件平臺(tái)出現(xiàn)之前,也有一些企業(yè)構(gòu)建了統(tǒng)一的后臺(tái)服務(wù),讓第三方設(shè)備廠商接入。但受限于用戶(hù)的支持,這些平臺(tái)都未能為人熟知(也許是我涉獵這方面知識(shí)較少,之前有了解過(guò)一個(gè)平臺(tái),后來(lái)忘記了)。
這種架構(gòu)的示意圖如下,以和藍(lán)牙設(shè)備控制為例:
公眾平臺(tái)的zui核心作用就是給各種不同的外設(shè)提供接入并分配*的設(shè)備ID。智能硬件平臺(tái)的設(shè)備ID分配策略包括外設(shè)廠商編碼和設(shè)備編碼兩個(gè)部分。設(shè)備編碼在統(tǒng)一廠商里面是*的。
手機(jī)需要關(guān)注外設(shè)廠商運(yùn)維的公眾號(hào),才能通過(guò)該公眾號(hào)的頁(yè)面發(fā)出設(shè)備控制指令消息??刂葡?huì)通過(guò)公眾號(hào)服務(wù)器發(fā)往外設(shè)廠商獨(dú)立運(yùn)維的后臺(tái)服務(wù)器,并由后臺(tái)服務(wù)器作出處理后向外設(shè)發(fā)出控制消息,該消息會(huì)通過(guò)公眾號(hào)服務(wù)器到手機(jī)的客戶(hù)端,而控制端調(diào)用藍(lán)牙JSAPI來(lái)控制藍(lán)牙外設(shè)。手機(jī)要控制外設(shè)需要先開(kāi)啟藍(lán)牙并連接上藍(lán)牙外設(shè)。連接協(xié)議由硬件平臺(tái)制定,稱(chēng)為airsys協(xié)議。
公眾平臺(tái)是開(kāi)放平臺(tái),支持第三方服務(wù)接入,同時(shí)提供支付、客戶(hù)接口、用戶(hù)管理等九大接口供第三方服務(wù)調(diào)用。公眾號(hào)支持模式,開(kāi)啟后即可以接入第三方的服務(wù)。所謂開(kāi)發(fā)即是在調(diào)用提供的接口的基礎(chǔ)上完成業(yè)務(wù)邏輯開(kāi)發(fā),支持的語(yǔ)言是php,asp等等。如何構(gòu)建第三方服務(wù)器和如何進(jìn)行接口開(kāi)發(fā)另文再述。藍(lán)牙和wifi由于功耗的差異,其互聯(lián)的架構(gòu)也有差異,在日后的技術(shù)實(shí)現(xiàn)分享中會(huì)詳細(xì)進(jìn)行比較。
三、Native APP&light APP 在第2種架構(gòu),手機(jī)要控制外設(shè)需要安裝外設(shè)廠商開(kāi)發(fā)的APP,是原生APP(native APP);而在第3種架構(gòu),手機(jī)控制外設(shè)只需要關(guān)注外設(shè)廠商運(yùn)維的公眾號(hào),是手機(jī)的原生APP,而每個(gè)外設(shè)廠商通過(guò)公眾號(hào)提供的服務(wù)稱(chēng)為輕應(yīng)用(light APP)。是智能手機(jī)的APP,用戶(hù)量超大,因此基于統(tǒng)一后臺(tái)服務(wù)的物聯(lián)平臺(tái)是未來(lái)物聯(lián)網(wǎng)的重要支撐。