導語
阿里在物聯網方面的產品主要是阿里智能開放平臺(open.aliplus.com)和阿里雲物聯網套件。阿里智能開放平臺主要是對接智能家電廠商以及產品開發者。阿里智能可以幫助家電廠商迅速完成產品的智能化並提供了從開發到上架的一整套服務。
阿里智能的不足是定製化程度比較低,因為主要面向家電,所以產品需求也基本類似。但物聯網應用不僅僅只有智能家居或者智能家電,還有很多不同領域的應用。所以阿里雲提供了一種通用的物聯網解決方案,即物聯網套件,這是一種定製化程度很高的物聯網開發工具。
物聯網套件概述
物聯網套件是阿里雲專門為物聯網領域的開發人員推出的,其目的是幫助開發者搭建安全性能強大的數據通道,方便終端(如傳感器、執行器、嵌入式設備或智能家電等等)和雲端的雙向通信。
阿里雲的物聯網套件包括:
設備端的IoT SDK;
雲端的IoT Hub:為設備和物聯網應用程序提供發佈和接收消息的安全通道。IoT Hub目前支持CCP協議和MQTT協議;
設備影子:設備影子是一個 JSON 文檔,用於存儲設備或者應用的當前狀態信息。每個設備都會在雲端有唯一的設備影子對應;
規則引擎:為用戶提供類SQL語言的規則引擎,幫助用戶過濾數據、處理數據,並能夠發送數據到阿里雲其他服務;
安全認證及權限策略:物聯網套件為每個設備頒發唯一的證書,依賴證書才能連接IoT Hub。提供設備級的授權粒度。
IoT Hub
IoT Hub幫助設備連接阿里雲IoT,並提供安全可靠的數據通信,目前支持CCP協議和MQTT協議。CCP協議是MQTT協議的精簡版。當設備與IoT Hub建立數據通道後,IoT Hub會與設備保持長連接,減少握手時間,保證消息的實時到達。
CCP協議和MQTT都支持Pub/Sub這種通信模式,也就是發佈訂閱模式。Pub/Sub是基於主題(Topic)進行消息的路由轉發,讓設備端或者服務端可以發佈訂閱消息,實現異步的通信。
IoT Hub維護所有Topic的發佈訂閱用戶列表。當消息發送到Topic,IoT Hub會檢查該Topic的所有訂閱用戶,然後將消息轉發給所有具有訂閱該Topic權限的客戶端或者服務端。
除了Pub/Sub模式,阿里IoT Hub還支持RPC/Revert-RPC,即遠程過程調用。
設備端
物聯網套件目前為客戶端提供了C語言版和Java語言版的的SDK。C-SDK還有針對不同嵌入式系統的版本,包括:Linux、FreeRTOS、Mico、µC/OS等。但目前物聯網套件在實際使用上還有比較大的限制,那麼限制在哪裡呢?
原因是物聯網套件服務器目前有兩個節點,一個是杭州節點,另一個是華東2節點。一般用戶申請物聯網套件,阿里雲都會自動分配華東2節點。但華東2節點上目前只支持Linux版本的C-SDK,其他嵌入式系統都不支持。
阿里雲物聯網套件正處於公測階段,所以很多東西還沒有開放,想要應用阿里雲的物聯網套件在商用項目上,可供方案選擇的餘地不大,我們不妨再等一等。