從1999年Kevin Ashton第一次提出這個概念以來,物聯網已經經歷了迅速的轉變。隨著近年來連接到物聯網的設備,在多樣性和數量方面出現指數式的增長,物聯網已經成為了一種主流技術,在推動現在社會的生活方式方面有著極大的潛力。
在物聯網的技術與工程上,硬體與軟體平臺之間目前仍有明確的界限,其中大多數供應商都將精力放在硬體方面。只有極少數供應商提供物聯網軟體服務:例如,Mattermark根據所獲總投資排名的前100名物聯網創業公司中,只有13家提供物聯網軟體服務。
本文針對現有物聯網軟體平臺,基於我們對IoT供應商進行的詳細分析做了一份綜合調查。而本文最後選擇的物聯網供應商,完全是基於這樣的標準:這些供應商是否提供軟體解決方案,來處理從物聯網設備/感測器獲取的資訊。(注意:雖然我們希望盡可能全面,但本文中仍有可能漏掉了一些這些平臺的最新改進。)
物聯網軟體平臺想要的重要功能
基於最近的幾份調查,我們選出了物聯網軟體平臺最關鍵的功能:設備管理、整合、安全性、資料收集協訂、分析類型以及支援視覺化,以便對樣本功能進行比較。本文的後半段中會對這些特性進行簡單介紹。
設備管理與支援整合
設備管理是物聯網軟體平臺所需的重要功能之一。物聯網平臺應當維護著一堆與之連接的設備,並跟蹤這些設備的運行狀態;還應當能夠處理配置、固件(或其他軟體)更新問題,並提供設備級的錯誤報告和處理方案。每天結束前,設備使用者應當能夠獲得個人設備級的統計。
支援整合是物聯網軟體平臺需要的另一個重要功能。需要從物聯網平臺上公佈的重要操作和資料應當能通過API訪問,REST API常用於這一目的。
資訊安全
經營物聯網軟體平臺所需的資訊安全手段,比普通軟體應用和服務所需的要求更高。數百萬台設備與物聯網平臺連接,代表著我們需要處理的漏洞也是相應比例的。一般來講,為了避免被竊聽,物聯網設備與物聯網軟體平臺之間的網路連接,需要通過強大的加密機制來保障。
然而,在現代的物聯網軟體平臺上,大多低成本、低功率的設備,都無法支援這樣的高級存取控制措施。因此,物聯網軟體平臺自身需要採取替代措施,以解決這類設備級的問題。例如:將物聯網流量劃分為私人網路絡,依靠雲應用級的強大安全性,要求定期更新密碼,並支援驗證更新固件,還有簽名才能更新軟體等等,這些手段都能加強物聯網軟體平臺的安全級別。
資料收集協訂
需要注意的另一個重要方面,是物聯網軟體平臺的各個元件之間用於資料通信的協訂類型。物聯網平臺可能需要擴展到數百萬,甚至數十億設備(節點)上。應當使用羽量級通信協議,以實現低能耗以及低頻寬功能。
注意:雖然我們在本文中將協議作為概述性詞彙,不過用以收集資料的協訂可分為下面幾類:比如應用、負載容器、資訊傳遞和遺留協訂。
資料分析
從連接到物聯網平臺的感測器中,所收集的資料需要通過智慧化手段進行分析,以獲得有意義的見解。
物聯網資料分析有四種主要類型:即時分析、批次處理分析、預測分析與互動式分析。即時分析:對資料流程執行線上(動態)分析。樣本操作包括基於視窗的整合、篩選、轉換等。
批次處理分析:對積累的資料集進行操作。這樣,批次處理操作會在預定時間段內運行,也許持續數小時或數日。預測分析:基於各類統計與機器學習技術,集中進行預測。互動式分析:對資料流程和批資料執行多個探索性分析。最後一個就是即時分析,在任何軟體平臺都佔據較重的份量。
當前的物聯網軟體平臺
對當前的物聯網軟體平臺進行仔細調查後,我們發現上面提到的每個功能都已實現,只是程度不同而已。我們在下面列出了相關的平臺,並進行了功能總結對比:
表1 相關平臺功能總結對比(標著“未知”的欄目代表相關資訊在可用檔中無法找到)
很明顯,上面列舉的物聯網初創公司,其中很多可能還不具備設備管理功能。在這方面,還需要物聯網軟體平臺供應商提供解決方案。
此外在分析生成的物聯網資料時,在計算及視覺化方面提供的支援相對較少。它們大多支持即時分析——這是任何物聯網框架的必備功能。然而,只有極少數物聯網軟體平臺為其他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)。在物聯網解決方案中,應當使用其中的一項或多項來解決無序事件的問題。
支持物聯網背景
背景主要由個體、其偏好或過去的行為構成。例如:在行動電話案例中,由於現代行動電話中有很多不同類型的感測器,因此我們能夠獲得豐富的背景資訊。在物聯網分析中,這些背景資料應當被納入考慮。
結論
物聯網模式的快速發展需要強大的物聯網軟體平臺,能通過物聯網用例滿足出現的需求。本文中,我們調查了現有最先進的物聯網軟體平臺的功能,調查集中在這些方面:設備管理、整合、安全性、資料收集協訂、分析類型、視覺化支援。
從這項研究中,像設備管理、物聯網資料分析、物聯網軟體系統可擴展性,以及性能這樣的領域明顯需要物聯網平臺社區投入特別的關注。
沒有留言:
張貼留言