物聯網技術已經火了不少年了,業界各大廠商都有各自成熟的解決方案。咱們公司主要搞新能源汽車充電,充電樁就是咱們物聯網技術的最大應用,車聯網、物聯網、git
互聯網三網合一。做爲Azure重要的Partner和使用者,咱們對Azure的IoT方案也是很是期待的,所以,最近計劃研究一下Azure的IoT技術,同時將研究的成果分享給你們。github
以本文做爲IoT入門的第一篇吧。後端
IoT:Internet of Things,即鏈接一切。安全
Azure提供了Azure IoT Hub:直譯爲Azure的物聯網中心。網絡
Azure IoT Hub爲物聯網設備提供註冊、管理、溝通交互的雲服務。架構
可用於管理數十億物聯網設備,提供可靠和安全的雲端與設備之間的雙向通訊支持,每個月可處理數以萬億計消息,並簡化了與其餘Azure服務之間的集成,包括Azure機器學習以及機器學習
Azure流分析等。它是微軟Azure IoT Suite的重要組成部分,也是微軟物聯網戰略的重要基礎。ide
Azure IoT Hub架構和特性:學習
1. 大規模可靠的設備到雲、雲到設備的雙向通訊ui
2. 經過使用安全憑據和訪問控制機制確保每一個設備的安全性通訊(經過設備的安全密鑰或者X.509證書)
3. 支持可擴展的監控設備的鏈接和標識管理事件
4. 與其餘的Azure服務之間,提供了內置的可選的消息路由
5. 爲主流的開發語言和平臺提供了Device Library。http://azure.github.io/azure-iot-sdks/
架構圖:
從上面這張圖咱們能夠看出:
說到這裏,咱們不由會想:爲何使用Azure IoT Hub?即:
Azure IoT Hub解決那些IoT問題:
1. 設備的認證和安全鏈接
每一個物聯網設備鏈接到Azure IoT Hub時,須要提供其獨有的Security Key
IoT Hub identity registry 存儲了設備的身份和Key
IoT Hub後端提供了設備的白名單和黑名單機制,控制設備的訪問
2. 監控設備的鏈接操做:提供了詳細的設備身份管理操做日誌和鏈接日誌
3. 全面豐富的Device Library:設備SDK,支持主流的開發語言和平臺:.Net Java Node.JS C 都支持
4. IoT 協議可擴展:MQTT v3.1.1, HTTP 1.1, or AMQP 1.0 支持Custom Protocol
5. Scale:支持每秒百萬級的設備鏈接和事件
Azure IoT Hub是如何工做的:
Azure IoT Hub實現了服務輔助通訊(Service-Assisted Communication)模式,調節設備與解決方案後端之間的交互。服務輔助通訊的目標是在控制系統(例如 IoT Hub)與
專用設備(部署在不受信任的物理空間中)之間,創建可信任的雙向通訊路徑(全雙工通訊)。 這種模式會遵循下列原則:
1. 安全性優先級最高,高於其餘功能
2. 設備不接受未經請求的網絡信息。 設備以僅限出站的方式創建全部鏈接和路由。 若要讓設備從解決方案後端接收命令,設備必須按期啓動鏈接,以檢查是否有任何掛起的命令要
處理。
3. 設備只能同與它們對等的已知服務(例如 IoT Hub)進行鏈接或創建路由
4. 設備和服務之間或設備和網關之間的通訊路徑在應用程序協議層受到保護
5. 系統級別的受權和身份驗證以每一個設備的標識爲基礎。 它們可以讓訪問憑據和權限近乎實時地撤銷。
6. 對於由於電源或鏈接性而致使鏈接不穩定的設備而言,可經過保留命令和設備通知直到設備鏈接並接收它們,進而促進其雙向通訊。 IoT 中心爲發送的命令維護特定於設備的隊
列
7. 針對經過網關到特定服務的受保護傳輸,應用程序有效負載數據會受到單獨保護
這裏的服務輔助通訊模式,業界已大規模地使用服務輔助通訊模式實現推送通知服務,例如 Windows 推送通知服務、Google Cloud Messaging 和 Apple Push Notification 服
務等,其實就是設備和雲端的全雙工通訊。
上面介紹了Azure IoT Hub的架構、特性、使用場景、通訊協議等等,做爲一個簡單的入門介紹吧,讓你們能夠快速瞭解併入門。
周國慶
2017/4/14