????這幾年“物聯(lián)網(wǎng)平臺(tái)”這個(gè)詞沒(méi)少聽(tīng)铝量,可他究竟是做什么的钮孵?這個(gè)問(wèn)題好像很難找到滿(mǎn)意的答案强经。物聯(lián)網(wǎng)平臺(tái)是在物聯(lián)網(wǎng)架構(gòu)的應(yīng)用層南片,具體請(qǐng)參考上一篇:物聯(lián)網(wǎng)與云計(jì)算架構(gòu):SaaS掺涛、PaaS、IaaShttp://www.reibang.com/p/5df2fa30fc9d疼进。
物聯(lián)網(wǎng)平臺(tái)功能架構(gòu)
????每個(gè)廠商會(huì)根據(jù)自己的目標(biāo)用戶(hù)薪缆、商業(yè)目標(biāo)進(jìn)行不同業(yè)務(wù)模式的選擇,有的注重硬件開(kāi)發(fā)伞广,有的注重軟件開(kāi)發(fā)拣帽,有的兼而有之,但不管業(yè)務(wù)模式什么樣嚼锄,揭開(kāi)他神秘的面紗减拭,PaaS層功能架構(gòu)大致如下:
?????這張圖北向接入應(yīng)用,南向接入設(shè)備灾票,以下著重說(shuō)一下我對(duì)設(shè)備接入峡谊、設(shè)備管理的理解。
設(shè)備接入
????設(shè)備接入指的是將設(shè)備注冊(cè)至平臺(tái)并通信刊苍,需要設(shè)備與云端之間有安全可靠的雙向連接既们。主要考慮幾個(gè)方面:
1、設(shè)備入網(wǎng)方式
? ? 入網(wǎng)方式其實(shí)是選擇什么通訊技術(shù)正什,是Wi-Fi啥纸、Lora、藍(lán)牙還是Zigbee等等婴氮?平臺(tái)需要根據(jù)自身定位(白電行業(yè)斯棒?智慧工廠?智慧園區(qū)主经?)選擇支持的入網(wǎng)方式荣暮,?容納的入網(wǎng)方式越多,可容納設(shè)備類(lèi)型就越多罩驻,平臺(tái)的實(shí)現(xiàn)也越復(fù)雜穗酥。
舉2個(gè)例子:
????如果平臺(tái)支持Zigbee(請(qǐng)參考:http://www.woshipm.com/it/2484773.html)設(shè)備,那么平臺(tái)是否也應(yīng)該管理網(wǎng)關(guān)設(shè)備呢,是否應(yīng)該支持網(wǎng)關(guān)與設(shè)備的拓?fù)浣Y(jié)構(gòu)呢砾跃?
? ? Wi-Fi設(shè)備初始化的時(shí)候用平臺(tái)的app通過(guò)AP(access point)模式就可以讓設(shè)備連網(wǎng)并通信骏啰,但Zigbee設(shè)備是自組網(wǎng)的方式,即會(huì)自動(dòng)連接至網(wǎng)關(guān)抽高,再通過(guò)網(wǎng)關(guān)和平臺(tái)通信判耕。
這篇文章詳細(xì)的介紹了不同通信方式的優(yōu)點(diǎn)缺點(diǎn),強(qiáng)烈推薦:如何選擇物聯(lián)網(wǎng)通訊技術(shù)翘骂?http://www.woshipm.com/it/2495240.html
2壁熄、傳輸協(xié)議(Http、CoaP碳竟、MQTT等等)
? ????平臺(tái)層要兼容不同的協(xié)議才能連接盡可能多的設(shè)備请毛,而具體支持哪些協(xié)議需要從通信安全、平臺(tái)定位等方面權(quán)衡考慮瞭亮。
????MQTT是多個(gè)客戶(hù)端通過(guò)一個(gè)中央代理傳遞消息的多對(duì)多協(xié)議。通過(guò)讓客戶(hù)端發(fā)布消息固棚、代理決定消息路由和復(fù)制來(lái)解耦生產(chǎn)者和消費(fèi)者统翩。
????CoAP基本上是一個(gè)在Client和Server之間傳遞狀態(tài)信息的單對(duì)單協(xié)議。
????HTTP是適合使用在性能好一些的終端上此洲,相對(duì)以上一些比較重厂汗,對(duì)設(shè)備要求相對(duì)高一些。
3呜师、身份認(rèn)證
????目前市面上的認(rèn)證方式大都通過(guò)將token或者secret燒錄到硬件設(shè)備進(jìn)行認(rèn)證娶桦,但過(guò)程各有特點(diǎn)。
????例如阿里云是先將productkey汁汗、productsecret燒錄到設(shè)備中并通過(guò)動(dòng)態(tài)注冊(cè)的方式獲得devicesecret后進(jìn)行數(shù)據(jù)通信衷畦,而有的是通過(guò)將token直接燒錄到設(shè)備中進(jìn)行認(rèn)證和數(shù)據(jù)傳輸。
設(shè)備管理
物模型
????物模型是個(gè)概念知牌,不是實(shí)體祈争,有的平臺(tái)叫產(chǎn)品,是一類(lèi)設(shè)備的總稱(chēng)角寸,物模型和物的關(guān)系就像【男人】這個(gè)詞和身份證號(hào)碼是【123233198802340123】這個(gè)男人的關(guān)系一樣菩混。物模型的定義包括基本信息和屬性的定義。
????不同廠商物模型功能不盡相同扁藕,開(kāi)源的Thingsboard都沒(méi)有這個(gè)概念沮峡。所以物模型是從用戶(hù)體驗(yàn)和平臺(tái)自身業(yè)務(wù)角度出發(fā)提出的概念,為數(shù)據(jù)統(tǒng)計(jì)亿柑、用戶(hù)體驗(yàn)邢疙、產(chǎn)品發(fā)展做了充足的準(zhǔn)備。
? ? 實(shí)現(xiàn)物模型需要考量很多東西,比如阿里定義物模型基本信息的時(shí)候要選擇行業(yè)秘症、是否是網(wǎng)關(guān)照卦、是否接入網(wǎng)關(guān)、連網(wǎng)方式等乡摹,定義功能時(shí)又有了事件役耕、屬性、服務(wù)的分類(lèi)(事件聪廉、屬性瞬痘、服務(wù)這個(gè)說(shuō)起來(lái)就更技術(shù)了)。
設(shè)備影子
????設(shè)備影子用于緩存設(shè)備狀態(tài)板熊,設(shè)備在線時(shí)可以直接接收云端指令框全,離線時(shí)主動(dòng)獲取云端指令。設(shè)備影子將設(shè)備與應(yīng)用解耦干签,解決不穩(wěn)定無(wú)線網(wǎng)絡(luò)下的通信不可靠痛點(diǎn)津辩。
舉個(gè)例子:
我不帥的男朋友在線,于是我發(fā)了一個(gè)【變帥】的指令容劳,男朋友收到后馬上執(zhí)行喘沿,然后就變帥啦~
我不帥的男朋友離線了,聯(lián)系不到竭贩,于是我發(fā)了一個(gè)【變帥】的指令存儲(chǔ)到設(shè)備影子中蚜印,男朋友上線后主動(dòng)看設(shè)備影子,執(zhí)行【變帥】指令留量,然后就變帥啦~
? ??從實(shí)現(xiàn)層面看:
l?設(shè)備影子是一個(gè) JSON 文檔
l 每臺(tái)設(shè)備僅有一個(gè)影子
參考:設(shè)備影子概覽https://help.aliyun.com/document_detail/53930.html
OTA
? ??OTA全稱(chēng)是Over-the-Air窄赋,即空中加載的意思,在物聯(lián)網(wǎng)平臺(tái)指的是固件升級(jí)楼熄。固件是數(shù)碼設(shè)備最基礎(chǔ)忆绰、最底層工作的軟件,是設(shè)備內(nèi)部保存的設(shè)備“驅(qū)動(dòng)程序”可岂,通過(guò)固件较木,操作系統(tǒng)才能按照標(biāo)準(zhǔn)的設(shè)備驅(qū)動(dòng)實(shí)現(xiàn)特定機(jī)器的運(yùn)行動(dòng)作。????
? ? 固件升級(jí)的前提是固件和平臺(tái)都支持固件升級(jí)功能青柄,平臺(tái)層需要對(duì)設(shè)備的固件進(jìn)行管理伐债,并實(shí)現(xiàn)遠(yuǎn)程批量升級(jí)。
? ? 這個(gè)功能的意義是什么致开?試想一下投入使用后的一批設(shè)備出現(xiàn)了問(wèn)題峰锁,難道要一個(gè)個(gè)的處理,顯然遠(yuǎn)程批量操作節(jié)省了大量的人力双戳。
????但OTA是一個(gè)超級(jí)大的功能虹蒋,涉及到設(shè)備分組、固件分布、固件校驗(yàn)等等功能魄衅,每一個(gè)功能都值得反復(fù)討論峭竣,一些廠商的OTA功能甚至是一個(gè)體系。
數(shù)據(jù)的上下行
????數(shù)據(jù)的上下行指的是信息在設(shè)備和平臺(tái)間流轉(zhuǎn)晃虫,設(shè)備上報(bào)信息到平臺(tái)是數(shù)據(jù)的上行皆撩,平臺(tái)或者應(yīng)用層下發(fā)命令到設(shè)備是數(shù)據(jù)的下行,是物聯(lián)網(wǎng)平臺(tái)的基礎(chǔ)功能哲银。
????以上是從功能點(diǎn)出發(fā)逐一進(jìn)行了介紹扛吞,但是如何把這些功能點(diǎn)糅到一個(gè)平臺(tái)中又是另一碼事,需要反復(fù)推敲和驗(yàn)證荆责,也是一條漫漫長(zhǎng)路滥比。
????放兩張比人家的產(chǎn)品架構(gòu)圖: