????這幾年“物聯(lián)網(wǎng)平臺”這個詞沒少聽,可他究竟是做什么的?這個問題好像很難找到滿意的答案。物聯(lián)網(wǎng)平臺是在物聯(lián)網(wǎng)架構的應用層,具體請參考上一篇:物聯(lián)網(wǎng)與云計算架構:SaaS、PaaS、IaaShttp://m.itdecent.cn/p/5df2fa30fc9d。
物聯(lián)網(wǎng)平臺功能架構
????每個廠商會根據(jù)自己的目標用戶、商業(yè)目標進行不同業(yè)務模式的選擇,有的注重硬件開發(fā),有的注重軟件開發(fā),有的兼而有之,但不管業(yè)務模式什么樣,揭開他神秘的面紗,PaaS層功能架構大致如下:

?????這張圖北向接入應用,南向接入設備,以下著重說一下我對設備接入、設備管理的理解。
設備接入
????設備接入指的是將設備注冊至平臺并通信,需要設備與云端之間有安全可靠的雙向連接。主要考慮幾個方面:
1、設備入網(wǎng)方式
? ? 入網(wǎng)方式其實是選擇什么通訊技術,是Wi-Fi、Lora、藍牙還是Zigbee等等?平臺需要根據(jù)自身定位(白電行業(yè)?智慧工廠?智慧園區(qū)?)選擇支持的入網(wǎng)方式,?容納的入網(wǎng)方式越多,可容納設備類型就越多,平臺的實現(xiàn)也越復雜。
舉2個例子:
????如果平臺支持Zigbee(請參考:http://www.woshipm.com/it/2484773.html)設備,那么平臺是否也應該管理網(wǎng)關設備呢,是否應該支持網(wǎng)關與設備的拓撲結構呢?
? ? Wi-Fi設備初始化的時候用平臺的app通過AP(access point)模式就可以讓設備連網(wǎng)并通信,但Zigbee設備是自組網(wǎng)的方式,即會自動連接至網(wǎng)關,再通過網(wǎng)關和平臺通信。

這篇文章詳細的介紹了不同通信方式的優(yōu)點缺點,強烈推薦:如何選擇物聯(lián)網(wǎng)通訊技術?http://www.woshipm.com/it/2495240.html
2、傳輸協(xié)議(Http、CoaP、MQTT等等)
? ????平臺層要兼容不同的協(xié)議才能連接盡可能多的設備,而具體支持哪些協(xié)議需要從通信安全、平臺定位等方面權衡考慮。
????MQTT是多個客戶端通過一個中央代理傳遞消息的多對多協(xié)議。通過讓客戶端發(fā)布消息、代理決定消息路由和復制來解耦生產者和消費者。
????CoAP基本上是一個在Client和Server之間傳遞狀態(tài)信息的單對單協(xié)議。
????HTTP是適合使用在性能好一些的終端上,相對以上一些比較重,對設備要求相對高一些。
3、身份認證
????目前市面上的認證方式大都通過將token或者secret燒錄到硬件設備進行認證,但過程各有特點。
????例如阿里云是先將productkey、productsecret燒錄到設備中并通過動態(tài)注冊的方式獲得devicesecret后進行數(shù)據(jù)通信,而有的是通過將token直接燒錄到設備中進行認證和數(shù)據(jù)傳輸。

設備管理
物模型
????物模型是個概念,不是實體,有的平臺叫產品,是一類設備的總稱,物模型和物的關系就像【男人】這個詞和身份證號碼是【123233198802340123】這個男人的關系一樣。物模型的定義包括基本信息和屬性的定義。

????不同廠商物模型功能不盡相同,開源的Thingsboard都沒有這個概念。所以物模型是從用戶體驗和平臺自身業(yè)務角度出發(fā)提出的概念,為數(shù)據(jù)統(tǒng)計、用戶體驗、產品發(fā)展做了充足的準備。
? ? 實現(xiàn)物模型需要考量很多東西,比如阿里定義物模型基本信息的時候要選擇行業(yè)、是否是網(wǎng)關、是否接入網(wǎng)關、連網(wǎng)方式等,定義功能時又有了事件、屬性、服務的分類(事件、屬性、服務這個說起來就更技術了)。
設備影子
????設備影子用于緩存設備狀態(tài),設備在線時可以直接接收云端指令,離線時主動獲取云端指令。設備影子將設備與應用解耦,解決不穩(wěn)定無線網(wǎng)絡下的通信不可靠痛點。
舉個例子:
我不帥的男朋友在線,于是我發(fā)了一個【變帥】的指令,男朋友收到后馬上執(zhí)行,然后就變帥啦~
我不帥的男朋友離線了,聯(lián)系不到,于是我發(fā)了一個【變帥】的指令存儲到設備影子中,男朋友上線后主動看設備影子,執(zhí)行【變帥】指令,然后就變帥啦~

? ??從實現(xiàn)層面看:
l?設備影子是一個 JSON 文檔
l 每臺設備僅有一個影子
OTA
? ??OTA全稱是Over-the-Air,即空中加載的意思,在物聯(lián)網(wǎng)平臺指的是固件升級。固件是數(shù)碼設備最基礎、最底層工作的軟件,是設備內部保存的設備“驅動程序”,通過固件,操作系統(tǒng)才能按照標準的設備驅動實現(xiàn)特定機器的運行動作。????
? ? 固件升級的前提是固件和平臺都支持固件升級功能,平臺層需要對設備的固件進行管理,并實現(xiàn)遠程批量升級。
? ? 這個功能的意義是什么?試想一下投入使用后的一批設備出現(xiàn)了問題,難道要一個個的處理,顯然遠程批量操作節(jié)省了大量的人力。
????但OTA是一個超級大的功能,涉及到設備分組、固件分布、固件校驗等等功能,每一個功能都值得反復討論,一些廠商的OTA功能甚至是一個體系。
數(shù)據(jù)的上下行
????數(shù)據(jù)的上下行指的是信息在設備和平臺間流轉,設備上報信息到平臺是數(shù)據(jù)的上行,平臺或者應用層下發(fā)命令到設備是數(shù)據(jù)的下行,是物聯(lián)網(wǎng)平臺的基礎功能。
????以上是從功能點出發(fā)逐一進行了介紹,但是如何把這些功能點糅到一個平臺中又是另一碼事,需要反復推敲和驗證,也是一條漫漫長路。
????放兩張比人家的產品架構圖:

