最近研究了一些物聯網平臺技術資料,以作選型參考。腦子裏積累大量信息,便想寫出來作一些普及。做爲科普文章,力爭通俗易懂,不確保概念嚴謹性。我會給考據癖者提供相關英文連接,以便深刻研究。html
—— 馮立超 HiwebFrankweb
4. 平 臺
算法
因爲物聯網的地域分佈廣、設備數量衆多的特色,物聯網解決方案必須藉助公有云平臺來實現。數據庫
物聯網解決方案須具有以下功能:小程序
- 從設備收集數據後端
- 分析運行中的數據流安全
- 存儲和查詢大型數據集網絡
- 實時和歷史數據可視化app
- 與後端業務系統集成less
- 管理設備
咱們用一個簡單的圖示來講明物聯網解決方案構架,下圖是微軟給出的一個與廠商無關的物聯網解決方案通用示意構架:
該簡化構架包括 設備鏈接、數據處理與分析、信息呈現 三個層面。
該構架中,物聯網設備收集數據並與雲網關交互;雲網關使其它後端服務能夠處理這些數據,從雲網關,數據提交給其它業務應用程序或儀表板操做人員及其它展現設備。
設備鏈接
如何讓設備安全可靠地鏈接到解決方案後端,是物聯網解決方案所面臨的巨大挑戰,相比於其它系統,物聯網設備有以下一些特色:
- 一般是無人操做的嵌入式系統甚至是沒有操做系統的設備
- 可能部署到物理訪問成本高昂的遠程位置等各類部署場景
- 可能沒法經過其餘方式來與設備交互,而只能經過解決方案後端來訪問
- 供電及運算資源可能都有限
- 網絡鏈接可能不穩定、緩慢或高成本
- 可能須要使用專屬、自定義或行業特定的應用層協議
- 可使用大量常見的硬件和軟件平臺來建立
除上述特色以外,物聯網解決方案還必須考慮可擴展性、安全性和可靠性。傳統的技術如Web容器或消息傳送代理等不足以支撐這樣的需求。
爲此,物聯網平臺廠商都提出本身的解決方法,如微軟的 Azure IoT Hub 及 Azure IoT SDK 等。關於 Azure IoT Hub 請參見上一講相關內容。
有關設備鏈接的多種狀況,微軟給出的概念構架圖以下:
數據處理與分析
在物聯網解決方案中,數據處理與分析主要交由在公有云上的後端服務進行,包括設備數據篩選、彙總、路由到其餘服務等等。後端服務主要負責以下工做:
- 接收來自設備的大規模數據,並肯定如何處理和存儲這些數據
- 必要時能夠從雲端向設備發送數據或指令
- 設備註冊、預配置及安全鏈接控制
- 跟蹤設備狀態並監控設備活動
- 存儲和分析設備歷史數據,從而實現設備預見性維護
- 與設備進行交互,實現反饋控制等
固然,並非全部的業務都必須交由雲端處理,例如一些必須及時響應的操做好比緊急剎車,這些處理及操做都必須在設備端直接進行;另外,設備也能夠進行一些預處理,從而提升效率、下降數據傳輸量。
爲此,設備自己應該具有一些處理能力。
微軟的 Windows 10 IoT Core,提供了強大的設備端計算能力;
而亞馬遜的 Greengrass,則使物聯網設備能夠運行 AWS Lambda 函數、同步設備數據以及與其餘設備安全通訊,甚至無需鏈接互聯網。Greengrass 可確保物聯網設備快速響應本地事件、運行時採用間歇性鏈接,並最大程度地下降將物聯網數據傳輸到雲的成本。
華爲的 LiteOS,則強調輕量級、低功耗(一個鈕釦電池用好幾年)、快速啓動(毫秒級)及響應(納秒級)、多種鏈接協議(廣域/局域)等特性。
另外,一些物聯網設備,也能夠經過徹底自主研發的芯片,實現相關數據採集與處理。
好比圖像火災監測設備,能夠將圖像火災分析算法集成在設備芯片中,由設備芯片中的算法進行判斷,僅將是否發生火災的斷定結果傳輸到雲端。
而對於較複雜的圖像、或者誤判圖像,則將圖像數據及其設備端斷定結果傳到雲端,經過機器學習,逐步改進算法,提升圖像處理能力,並經過物聯網對設備進行升級操做。
信息呈現和業務鏈接
信息呈現和業務鏈接層 用於展現和操控從設備收集的數據。它可以讓用戶查看和分析從其設備收集的數據。 這些視圖能夠採用儀表板或 BI 報表的格式,以顯示歷史數據和/或接近實時的數據。
此層還可實現物聯網解決方案與現有業務應用程序的集成,以鏈接企業業務流程或工做流。 例如,圖像火災監測系統,在發現監測設備故障信息後,經過與維護服務商現有的運維計劃系統集成,能夠預定工程師到現場進行檢查。
下圖是微軟提供的一個物聯網工廠的應用界面樣例。
在該界面中,儀表板左側展現了生產線細節信息。如儀表板左側第一條,提示機械臂嚴重警告,而在儀表板中部的模擬界面中,一樣用紅色標出機械臂警告位置。在右側的報警欄,列出不一樣時間點的警告信息,如機械臂溫度警告等。而在儀表板下方,則展現該條生產線的總體效率信息。
微軟物聯網解決方案構架
下圖是微軟物聯網解決方案的較詳細的構架圖:
微軟的物聯網解決方案平臺,經過微軟的公有云 Azure 實現,即 微軟物聯網套件 Azure IoT Suite。設備經過 Azure IoT Hub 註冊和接入,而後可使用微軟公有云 Azure 的各類強大的數據處理、存儲、分析、機器學習能力,構建所需的各種物聯網業務。
微軟物聯網解決方案一般至少會使用到以下服務:
- Azure IoT Hub: 該服務提供設備到雲和雲到設備的消息傳送功能,並充當雲和其餘主要 IoT 套件服務的網關。 該服務使得能夠從大量設備接收消息,並將命令發送給設備。 使用該服務,還可以管理設備,例如,能夠配置、重啓鏈接到 Azure IoT Hub 的設備,或對其執行恢復出廠設置操做。
- Azure Stream Anzlytics: 流分析提供運行數據分析。 該服務處理傳入遙測數據、執行聚合以及檢測事件。 以及處理包含元數據或來自設備的命令響應的信息消息。 解決方案使用流分析來處理設備消息,並將這些消息傳送給其餘服務。
- Azure Storage 和 Azure DocumentDB: Azure 存儲和 Azure DocumentDB 提供數據存儲功能。 解決方案使用 Blob Storage 來存儲設備遙測數據並使其可用於分析;使用 DocumentDB 來存儲設備元數據,以及啓用解決方案的設備管理功能。
- Azure Web App 和 Microsoft Power BI: 提供數據可視化功能。 藉助 Power BI 的靈活性,能夠快速生成針對具體業務要求的交互式儀表板。
微軟還給出了一些預配置解決方案和相關演示案例,有興趣的讀者能夠點擊以下連接,經過實際操做了解上面截圖中的工廠物聯網使用場景:http://www.microsoftazureiotsuite.com/demos/connectedfactory 。
亞馬遜物聯網解決方案構架
而亞馬遜給出的構架以下圖所示:
亞馬遜物聯網解決方案固然強調其公有云平臺 AWS,而最受其推崇的,天然是當下正熱的 Serverless 構架的 AWS Lambda。
亞馬遜物聯網解決方案至少用到以下 AWS 服務:
- Amazon Simple Storage Service:亞馬遜簡單存儲服務,簡稱 Amazon S3,提供可擴展的存儲服務。
- Amazon DynamoDB:提供受管理的 NoSQL 數據庫服務。
- Amazon Kinesis:提供大規模流數據實時處理能力。
- AWS Lambda:在亞馬遜公有云平臺發佈運行自定義代碼。
ZStack創始人張鑫的文章《Serverless,後端小程序的將來》 比較透徹地講解了 AWS Lambda 及 Serverless 的原理、構架、應用場景、優點和不足,並講述了Serverless與PaaS的區別、與容器技術的區別及聯繫等,推薦一讀。
- Amazon Simple Notification Service:亞馬遜簡單通知服務,簡稱 Amazon SNS,負責處理通知發送與接收。
- Amazon Simple Queue Service:亞馬遜簡單隊列服務,簡稱 Amazon SQS,將數據存儲到隊列,由應用程序獲取。
(看看人家,作那麼大的生意,本星球/本星系第一啊,啥都謙稱爲 Simple 簡單啥啥啥,另外,包括如今 IT 運維領域最重要的 SNMP 簡單網絡管理協議、電子郵件的 SMTP 簡單郵件傳輸協議......;看看咱們,動輒 ×××、擎天、至尊,汗顏啊!慚愧啊!)
IBM 物聯網解決方案構架
IBM 的物聯網解決方案名爲 Watson IoT Platform,(永遠的沃森)。其構架圖以下所示:
IBM 物聯網解決方案基於 IBM 公有云平臺 Bluemix,涉及到的服務至少包括:
- IBM Cloudant NoSQL DB:用於存儲和訪問設備數據。
- IBM Message Hub:爲實時數據提供低延遲、可擴展的、高吞吐量的消息總線。
- IBM Blockchain 集成:對於特定領域,能夠集成 IBM 區塊鏈服務,以符合特定的商業規則要求。
- 儀表板:利用 Bulemix 提供的數據可視化儀表板,能夠可視化展現設備狀態數據,提供 BI 功能。
IBM給出了一個簡單教程,能夠快速搭建物聯網測試環境,能夠參見https://console.ng.bluemix.net/docs/services/IoT/getting_started/quickstart/index.html#quickstart
本講是本系列文檔的核心,用了比較多的篇幅講了業界領先的廠商的物聯網平臺。下一講,咱們探討安全。