提高物聯網的可靠性
物聯網(IoT)系統在空中運行的方式發生了戲劇性的變化。在這里,Percepio的首席執行官兼創始人johankraft解釋了這些好處。
當然,最明顯的優勢是更新更簡單,通常是透明下載和安裝的。當這與軟件跟蹤相結合時,它就成為一種強大的機制,可以提高各種嵌入式物聯網系統的質量和可靠性。
系統仍然部署有錯誤
盡管開發人員盡了最大的努力,這些系統仍然部署在代碼中,但仍然存在bug。一個開發團隊在開發過程中平均每1000行代碼引入120個bug,大約每1000行代碼引入6個bug,通常保留在軟件中。當有成千上萬的物聯網設備部署在現場時,依靠用戶報告這些缺陷引起的問題既不可靠也不可擴展。用戶報告也往往含糊不清,對解決問題毫無幫助。當有數以百萬計的設備時,這一點就更重要了。
這些漏掉的錯誤可能不會馬上出現,但只會在某些情況下導致問題,否則它們會在產品發貨前被發現。雖然“空中傳送”(OTA)更新可以解決現場問題,但開發人員需要某種反饋系統來了解已部署設備中的問題,而且他們需要快速了解。這種方法在移動和云應用程序(DevOps)的開發中長期以來一直是標準的,現在它也適用于嵌入式開發。
確定新的重要問題
找出并解決該領域的問題的關鍵是結合軟件跟蹤、云管理和OTA更新,但這是一個復雜的挑戰。在資源已經受到限制的系統中,跟蹤代碼需要盡可能高效。回云的鏈接需要安全、透明并傳輸正確的數據,以幫助開發人員快速、輕松地識別任何問題。云服務必須確定哪些問題是新的和重要的,然后通知開發人員有一個問題需要解決。一旦修復,更新的軟件必須通過OTA更新分發到所有設備。所有這些都需要擴展到數百萬臺設備。
信息流從IoT設備的錯誤處理代碼開始,例如已經存在的健全性檢查和故障異常處理程序。使用軟件代理,固件問題會作為警報上載到客戶的云帳戶。警報可能包括錯誤消息和與特定問題相關的任何其他信息,例如軟件狀態變量和硬件寄存器。根據問題的嚴重程度,警報可以直接上載,也可以在云連接恢復后在設備重新啟動后上載。
警報還可能包括設備中最新軟件事件的跟蹤,這些事件由代理自動記錄。跟蹤提供了錯誤的詳細信息和上下文,使開發人員更容易識別錯誤。
在這里,編碼效率是關鍵,以確保只需要最少的內存來存儲跟蹤,從而為開發人員提供識別真正問題所需的上下文。這一點很重要,有兩個原因:在收集足夠長的跟蹤記錄時,即使是從內存受限的物聯網系統中,也可以將上傳時間縮短到幾分之一秒,并將警報消息和存儲的云端操作成本降至最低。這種編碼效率使得在現場使用跟蹤技術成為可能,也可以在小型物聯網設備中使用,帶來顯著的優勢。
來自固件代理的警報上載到客戶的云服務,該服務配置為存儲警報,并通知處理分類、統計和向開發人員發送通知的引擎。它還提供了配置選項,例如標識通知應在哪些條件下發送以及發送給誰。
收到的通知
當開發人員收到有關新問題的通知時,他們可以訪問警報和跟蹤以查看問題所在。
隱私在這里也是關鍵。軟件跟蹤永遠不需要離開客戶的云帳戶。云處理只需要警報的匿名簽名,可以在外部云服務中提供。這些信息可以完全透明、可配置,并且本身沒有意義。通信和存儲由開發者的物聯網平臺中的現有功能提供,使用認證和加密的最佳實踐。
實驗室測試是不夠的
由于當今嵌入式物聯網系統的復雜性,實驗室測試不足以消除所有軟件問題。實時跟蹤和警報可以在發生錯誤時識別出錯誤,并自動通知開發人員以加快解決速度。
這樣的系統必須具有可擴展性、安全性和對開發者透明。一旦到位,它可以在許多用戶受到影響之前,在第一次出現問題時立即提供意識,并讓開發人員充分利用OTA更新來快速改進他們的產品。