微軟Azure IoT
國外物聯網平台初探(二)
——微軟Azure IoT
馬智
平台定位
連接設備、其它 M2M 資產和人員,以便在業務和操作中更好地利用數據。
連接 IoT 設備
將所有設備連接到雲,從這些設備接收大規模數據,以及管理這些設備的授權和限制。
在將設備連接到雲和處理設備的聚合事件流時,互聯設備的快速增長以及平台和協議的不一致會引起巨大挑戰。平台預配容量以處理來自數百萬設備的事件,同時支持 AMQP 和 HTTP 協議,保護每台設備的事件順序。
實時監視
將設備連接到雲並接收事件數據時,監視此數據流,以獲得對業務的見解、促進效率提升及精簡業務流程。
每秒分析數百萬事件,以及快速開發和部署實時監視解決方案,從基礎結構中的設備和傳感器發送的數據獲得可操作的建議。
Azure IoT架構
Azure IoT服務
Azure IoT 中心(IoT Hub)
-
Azure IoT 中心是一項完全托管的服務,可在數百萬個 IoT 設備和一個解決方案后端之間實現安全可靠的雙向通信。
- 提供可靠的設備到雲和雲到設備的大規模消息傳送。
- 使用每個設備的安全憑據和訪問控制來實現安全通信。
- 可廣泛監視設備連接性和設備標識管理事件。
- 包含最流行語言和平台的設備庫。
- 設備級別的身份驗證:每個設備設置獨有的安全密鑰,IoT 中心標識注冊表會存儲設備標識和密鑰,后端可將個別設備加入允許列表或方塊列表,以便完全控制設備訪問權限。
- 設備連接操作監控:設備標識管理操作與設備連接事件存在詳細的操作日志,便於識別連接問題,例如,嘗試使用錯誤憑據進行連接的設備、消息發送太頻繁,或拒絕所有雲到設備的消息。
- 豐富的設備庫:Azure IoT 設備 SDK 也支持C、C#、Java 和 JavaScript 等托管語言,支持許多 Linux 分發版、Windows 和實時操作系統。
-
可擴展的IoT 協議。IoT 中心存在一個公共協議,它使設備可以通過本機方式使用 MQTT v3.1.1、HTTP 1.1 或 AMQP 1.0 協議。還可以通過以下方式擴展 IoT 中心,以便為自定義協議提供支持:
- 現場網關:使用 Azure IoT 網關 SDK創建現場網關,該 SDK 可將自定義協議轉換為 IoT 中心所理解的三個協議之一。
- 雲網關:自定義 Azure IoT 協議網關(在雲中運行的一個開放源代碼組件)。
- 可擴展高並發的事件處理:Azure IoT 中心可擴展為數百萬個同時連接的設備,以及每秒數百萬個事件。
- 基於事件的設備數據處理:事件處理器引擎在熱路徑上可以處理設備事件,也可以將它們存儲在冷路徑上以供分析。IoT 中心可保留最多 7 天的事件數據,以保證可靠的處理並消減負載峰值。
- 可靠的雲到設備消息傳送:后端使用 IoT 中心將消息發送到單個設備(含至少一次的傳遞保證)。每條消息都有單獨的生存時間設置,且后端可以請求傳遞和過期回執。這可確保完全了解雲到設備消息的生命周期。
- 存儲和分析文件和緩存的傳感器數據:設備使用 SAS URI 將 IoT 中心托管的文件上載到 Azure 存儲空間。當文件到達雲時,IoT 中心可以生成通知,使后端處理這些文件。
事件中心 Event Hubs
- 事件中心是一種事件處理服務,用於向雲提供大規模的事件與遙測數據入口,並且具有較低的延遲和較高的可靠性。事件中心充當事件管道"前門",位於事件生成者與事件使用者之間的組件或服務,可以將事件流的生成與這些事件的使用分離開來。
- 事件中心每秒可以引入數百萬的事件,從而能夠處理和分析連接設備和應用程序生成的海量數據。
- 事件中心收集到數據后,可以使用任何實時分析提供程序或批處理/存儲適配器來轉換和存儲這些數據。
- 事件中心可將事件流的生成與這些事件的使用分離開來,事件使用者可以根據自己的計划訪問事件。
-
每秒將數百萬事件流式傳輸到多個應用程序中
- 事件中心是一個高度可伸縮的發布-訂閱采集器,每秒可獲取數百萬個事件,能夠處理和分析互連設備與應用程序生成的海量數據。將數據采集到事件中心后,使用任何實時分析提供程序或者批處理/存儲適配器來轉換和存儲數據。
-
允許應用程序處理負載分布可變的事件
- 大數據是當今互連世界的直接體現。大數據有很多來源,例如每隔數分鍾就會生成遙測數據的互連式汽車和恆溫器、每隔一秒就會生成事件的應用程序性能計數器,或者在用戶每執行一個操作時就會捕獲遙測數據的移動應用程序。具有彈性的托管采集器服務能夠應對不斷變化的負載分布,以及間斷性連接造成的負載高峰。
-
跨平台連接數百萬台設備
- 互連設備的快速涌現使 IT 行業面臨更嚴峻的挑戰,因為必須應對各種平台和協議。在連接這些不同數據源的同時處理大規模的聚合流已成為一個很大的難題。事件中心可讓用戶輕松置備容量以從數百萬台設備采集事件,同時還能基於每台設備保留事件順序。支持 AMQP 和 HTTP,讓很多平台可與事件中心一起使用,本機客戶端庫也可用於各種流行平台。
流分析(Stream Analytics)
雲中的事件實時流式處理引擎,可實時快速開發,對現有數據屬性進行深入了解。
- 為物聯網解決方案執行實時分析
- 每秒對數百萬事件進行流式處理
- 獲得關鍵任務的可靠性和性能預測結果
- 利用設備和應用程序的數據,創建實時儀表板和警報
- 跨多個數據流進行關聯
- 使用常見的基於 SQL 的語言,以實現快速開發
-
實時獲取分析結果
- 實現快速開發和部署低成本分析解決方案,從設備、傳感器、基礎結構和應用程序實時獲取深入分析結果。
-
實現快速開發
- 減少為擴展的分布式系統開發分析功能時的困難並降低復雜程度。只需使用基於 SQL 的語法描述所需的轉換,系統將自動分配以實現擴展、性能和恢復能力,完全不需要管理復雜的基礎結構和軟件。
-
執行實時分析
- 與事件中心的現成集成,每秒可接收數百萬事件。比較多個實時流或將實時流與歷史值和模型一起進行比較。這樣可以實現異常檢測和傳入數據轉換,並能夠在流中出現特定錯誤或情況時觸發警報,以及為實時儀表板提供支持。
-
實現任務可靠性和擴展能力
- 擴展以適應任何數據量需求,同時仍能實現高吞吐量、低延遲和有保證的恢復能力,不需要任何硬件或其它前期成本,也不需要耗費時間進行安裝或設置。在數分鍾內啟動並運行。流分析可在高吞吐量的條件下處理數據,結果可預測且無數據丟失。
通知中心(Notification Hubs)
可縮放的大規模移動推送通知引擎,可快速將數百萬條消息推送至多種平台(iOS, Android, WP等)
-
在幾分鍾內廣播至數百萬設備
- 快速將數百萬條消息推送至 iOS、Android (Baidu Push)、Windows,或 Kindle 設備。
-
支持任何后端系統
- 可插入內部環境或 Azure 雲端運行的任何后端系統:.NET、PHP、Java、Node。
-
通過動態標簽推送至不同用戶群
- 利用標簽功能,根據活動、興趣、位置,或首選項划分用戶群,在正確的時間將正確的信息推送給正確的人員。
-
使用模板輕松實現本地化
- 使用模板功能推送本地化通知信息,讓用戶獲得與自己所用語言一致的信息。模板功能無需為每個客戶存儲本地化設置。
-
針對大規模環境設計
- 無需重構或切分(Sharding),即可快速擴展至數百萬設備,發送數十億條推送通知。通知中心可自動對基礎結構進行必要調整,用非常低的延遲將信息推送至每台活躍設備。
機器學習( Machine Learning )
提供開發簡單、功能強大、可靈活擴展、基於托管雲服務的預測分析方案
現屬於Cortana智能套件
-
主要功能
- 數據探索、描述性分析、預測性分析
- 監管學習、無人值守學習
- 模型訓練和評估
機器學習步驟
- 導入數據至平台
- 探索和可視化數據
- 生成和選擇特性
- 創建和訓練機器學習模型
- 部署和使用模型
開發工具界面 – 創建IoT中心
IoT中心創建結果
共享訪問策略
開發工具界面 – 創建設備標識
開發工具界面 - 創建流分析作業監視器
開發工具界面 – 通知中心
開發工具界面 – 機器學習模型
Machine Learning Studio: 創建預測模型
開發工具界面 – Cortana智能庫
選擇分析方案
作者:馬智
微信公眾號:物聯網那點事