簡介

從1999年Kevin Ashton第一次提出這個概念以來,物聯網已經經歷了迅速的轉變。隨著近年來連線到物聯網的裝置在多樣性和數量方面出現指數式的增長,物聯網已經成為了一種主流技術,在推動現在社會的生活方式方面有著極大的潛力。

在物聯網的技術與工程上,硬體與軟體平臺之間目前仍有明確的界限,其中大多數供應商都將精力放在硬體方面。只有極少數供應商提供物聯網軟體服務:例如,Mattermark根據所獲總投資排名的前100名物聯網創業公司中,只有13家提供物聯網軟體服務。

本文針對現有物聯網軟體平臺,基於我們對IoT供應商進行的詳細分析做了一份綜合調查。而本文最後選擇的物聯網供應商,完全是基於這樣的標準:這些供應商是否提供軟體解決方案,來處理從物聯網裝置/感測器獲取的資訊。注意:雖然我們希望儘可能全面,但本文中仍有可能漏掉了一些這些平臺的最新改進。

物聯網軟體平臺想要的重要功能

基於最近的幾份調查,我們選出了物聯網軟體平臺最關鍵的功能:裝置管理、整合、安全性、資料收集協議、分析型別以及支援視覺化,以便對樣本功能進行比較。本文的後半段中會對這些特性進行簡單介紹。

裝置管理與支援整合

裝置管理是物聯網軟體平臺所需的重要功能之一。物聯網平臺應當維護著一堆與之連線的裝置,並跟蹤這些裝置的執行狀態;還應當能夠處理配置、韌體(或其他軟體)更新問題,並提供裝置級的錯誤報告和處理方案。每天結束前,裝置使用者應當能夠獲得個人裝置級的統計。

支援整合是物聯網軟體平臺需要的另一個重要功能。需要從物聯網平臺上公佈的重要操作和資料應當能通過API訪問,REST API常用於這一目的。

資訊保安

運營物聯網軟體平臺所需的資訊保安手段,比普通軟體應用和服務所需的要求更高。數百萬臺裝置與物聯網平臺連線,代表著我們需要處理的漏洞也是相應比例的。一般來講,為了避免被竊聽,物聯網裝置與物聯網軟體平臺之間的網路連線需要通過強大的加密機制來保障。

然而,在現代的物聯網軟體平臺上,大多低成本、低功率的裝置都無法支援這樣的高階訪問控制措施。因此,物聯網軟體平臺自身需要採取替代措施,以解決這類裝置級的問題。例如:將物聯網流量劃分為專用網路,依靠雲應用級的強大安全性,要求定期更新密碼並支援驗證更新韌體,還有簽名才能更新軟體等等,這些手段都能加強物聯網軟體平臺的安全級別。

資料收集協議

需要注意的另一個重要方面,是物聯網軟體平臺的各個元件之間用於資料通訊的協議型別。物聯網平臺可能需要擴充套件到數百萬甚至數十億裝置(節點)上。應當使用輕量級通訊協議,以實現低能耗以及低頻寬功能。

注意:雖然我們在本文中將協議作為概述性詞彙,不過用以收集資料的協議可分為下面幾類:比如應用、負載容器、資訊傳遞和遺留協議。

資料分析

從連線到物聯網平臺的感測器中所收集的資料需要通過智慧化手段進行分析,以獲得有意義的見解。

物聯網資料分析有四種主要型別:實時分析、批處理分析、預測分析與互動式分析。實時分析:對資料流執行線上(動態)分析。樣本操作包括基於視窗的整合、篩選、轉換等。

批處理分析:對積累的資料集進行操作。這樣,批處理操作會在預定時間段內執行,也許持續數小時或數日。預測分析:基於各類統計與機器學習技術,集中進行預測。互動式分析:對資料流和批資料執行多個探索性分析。最後一個就是實時分析,在任何軟體平臺都佔據較重的份量。

當前的物聯網軟體平臺

對當前的物聯網軟體平臺進行仔細調查後,我們發現上面提到的每個功能都已實現,只是程度不同而已。我們在下面列出了相關的平臺,並進行了功能總結對比:

表1 相關平臺功能總結對比(標著“未知”的欄目代表相關資訊在可用檔案中無法找到)
1457365523-5216-

很明顯,上面列舉的物聯網初創公司,其中很多可能還不具備裝置管理功能。在這方面,還需要物聯網軟體平臺供應商提供解決方案。

此外在分析生成的物聯網資料時,在計算及視覺化方面提供的支援相對較少。它們大多支援實時分析——這是任何物聯網框架的必備功能。然而,只有極少數物聯網軟體平臺為其他3種分析型別提供支援。而視覺化介面大多表現為入口網站這樣的簡單模式,允許對物聯網生態環境進行管理,不過很少提供視覺化的資料分析功能。

在不同的物聯網軟體平臺中,還有幾個常見功能,包括基於整合的REST API,支援用MQTT協議來收集資料,以及使用SSL進行鏈路加密。儘管在表一中沒有提到,不過單ParStream公司就能達到300萬到400萬行/秒的吞吐量。

這表明大多數物聯網軟體平臺設計時並未太多考慮物聯網部署的系統效能,而在真實情況下這是非常關鍵的。

需要改進的功能

很明顯有若干地方需要改進。在本節中,我們首先提供了一張改進功能列表。在物聯網軟體平臺供應商的努力下,其中一些專案已經實現,還有一些效能等待實現。之後我們提供了一張列表,包括現在尚未實現的這些新功能。

現有功能

資料分析

現在物聯網軟體平臺大多支援實時分析,不過批處理分析和互動式資料分析也許同樣重要。

在這一點上,有人可能會爭辯:在其他知名的處理平臺中包括這類分析功能,想要配置用於分析場景的軟體系統也很簡單。不過,這談何容易。用於實時分析(Storm、Samza等)、用於批處理分析(Hadoop、Spark等)、用於預測分析(Spark MLLIB等)、用於互動式分析(Apache Drill等)的知名資料處理系統,並不能直接用在物聯網案例中。

基準

物聯網軟體平臺需要有擴充套件性,還應包含描述和評估系統效能的裝置。定義良好的效能指標需要:能夠塑造與測量物聯網系統的效能,並考慮到網路特性、能耗特點、系統吞吐率、計算資源消耗以及其他執行特徵。

邊緣分析

需要採取措施以減少感測器裝置與物聯網伺服器之間的大量網路頻寬損耗。解決方案之一是使用輕量級的通訊協議。另一個辦法就是使用邊緣分析法,以減少傳輸到物聯網伺服器上的原始資料總量。即便是在簡單的硬體嵌入系統中(如Arduino),也可以實現邊緣分析法。

其他問題

應當注意:有多個與物聯網軟體平臺相關的其他問題,比如倫理、道德和法律問題,在本文中並未涉及。儘管這些問題也很重要,但在本文中不作討論。

需要新增的功能

處理無序程式

在任何物聯網應用中都有可能碰到無序事件,在感測器所發出的事件流中,元組順序混亂可能是網路延遲、時鐘偏移等原因所導致的。處理無序的物聯網事件可能會導致系統故障。處理無序事件時,需要在結果準確性與延遲之間做出權衡。

有四項主要的處理技術:基於快取(Buffer-based)、基於標點(Punctuation-based)、基於推測(Speculation-based)以及基於近似(Approximation-based techniques)。在物聯網解決方案中,應當使用其中的一項或多項來解決無序事件的問題。

支援物聯網背景

背景主要由個體、其偏好或過去的行為構成。例如:在行動電話案例中,由於現代行動電話中有很多不同型別的感測器,因此我們能夠獲得豐富的背景資訊。在物聯網分析中,這些背景資料應當被納入考慮。

結論

物聯網模式的快速發展需要強大的物聯網軟體平臺,能通過物聯網用例滿足出現的需求。本文中,我們調查了現有最先進的物聯網軟體平臺的功能,調查集中在這些方面:裝置管理、整合、安全性、資料收集協議、分析型別、視覺化支援。從這項研究中,像裝置管理、物聯網資料分析、物聯網軟體系統可擴充套件性以及效能這樣的領域明顯需要物聯網平臺社群投入特別的關注。

原文連結:Comparing 11 IoT Development Platforms
作者:Miyuru Dayarathna(WSO2高階技術總監)
編譯:孫薇