如今,“物聯網”是業界的熱門話題之一。每天都有新的支持物聯網的產品出現,物聯網現在是一個與萬維網一樣流行的首字母縮略詞。甚至有人開玩笑說,我們可能很快就會看到“支持物聯網的電阻器”問世,每周我們都會閱讀新的研究,這些研究談論將在幾個從今天開始的幾年。
但是物聯網是關于什么的?
剖析物聯網
在我看來,我們需要了解這個定義中包含的實體。讓我們從“事物”開始。對于嵌入式開發人員來說,用嵌入式設備很容易識別它們,我認為這樣做是正確的。該定義包括基于微控制器的小型設備以及運行全功能操作系統的更復雜的設備。
那么“物聯網”僅僅是將設備連接到互聯網嗎?
我不這么認為。這就像將互聯網定義為連接到基于 TCP/IP 的網絡的個人電腦、平板電腦和智能手機一樣;我們會錯過其中的一個重要部分。
我們已經有許多連接的設備。多項研究評估,自 2008 年以來,連接到互聯網的設備數量超過了人,但物聯網仍遠未成為我們日常生活中的現實。
近年來,互聯網已經發展,從萬維網革命開始時的靜態“電子郵件和網頁”模式轉變為我們今天擁有的龐大且有時有用的信息和服務(和貓視頻)組合。
同樣,在我們真正生活在“物聯網”時代之前,連接設備也需要進化、互操作、共享和訪問信息。
物聯網的“互聯網”方面是關于處理可以由設備收集的大量數據并提取有用的信息,這些信息可以改善我們今天使用許多服務和設備的方式。這聽起來像是大海撈針,但好消息是,借助云計算,我們擁有每秒過濾許多大海撈針所需的處理能力。
“物聯網設備”不可能存在(它只是一個“東西”),但我們可以設計一個作為物聯網解決方案一部分的設備。該設備將不再是“產品”,而是將成為一個更大項目的一部分,該項目涉及為其增加價值的服務。
我們在設備上也有處理能力,物聯網并不意味著所有的處理都必須在云中完成,但另一方面,全面了解設備的整體情況對于讓更多信息和更有效的決策。
汽車和交通系統的物聯網
讓我們考慮交通。單車可以知道路網,獲取交通擁堵、道路施工等信息,但它只知道自己的目的地。一個管理系統可以從多輛知道他們在哪里以及他們想去哪里的車輛收集信息,可以提供優化的方向,讓人們避免現有的交通擁堵,并且不會在此過程中產生新的交通擁堵。在這種情況下,連接系統可以真正改善人們的駕駛方式。當然,目前這是不可能的;大多數導航系統都沒有連接,那些有連接的系統使用不同的協議。但是已經可以進行一些具體的實施來優化,例如公共交通。
這個過程必須克服巨大的挑戰。
實施挑戰
互操作性絕對是其中之一,但人們可能不喜歡未經授權訪問可能比存儲在 PC、手機和平板電腦上的信息更私人的信息的想法,他們對安全和隱私的擔憂也是合理的。
還有一個重大的設計挑戰:將視角從設備轉變為解決方案。產品將包括硬件、本地軟件和服務。一些要求不會改變——我們仍然需要可靠的硬件和高效的開發工具——但其他要求將被添加到組合中。
作為嵌入式開發人員,我們將面臨新的挑戰,不得不將我們的軟件視為更復雜解決方案的一部分。我們需要了解整個系統的運行方式,從傳感器收集的比特到這些數據如何在云中存儲和處理,再到它在設備上生成的作為反饋的動作。
假裝設計物聯網系統不會改變我們的工作方式,只關注嵌入式軟件,并且僅將連接性視為功能之一,這將限制我們對項目的影響。
考慮到連接性的設計
設備(事物)必須與后端(互聯網)交互才能執行不同的活動:
提供數據(遙測)
需要來自后端的數據或操作(查詢)
從后端執行所需的操作(命令)
從后端或其他設備接收信息(通知)
Clemens Vasters 的一篇題為“連接設備的服務輔助通信”的 MSDN 文章清楚地描述了將設備連接到 Internet 服務的這些模式和挑戰。
由于我們用于構建嵌入式設備的硬件和軟件有許多不同的供應商,因此物聯網的“互聯網”方面也有不同的供應商。微軟、亞馬遜和谷歌等公司正在努力為廣大的公司和開發人員提供基于云的服務。其中許多服務可用于構建物聯網系統。
這些服務可以收集、存儲和處理設備獲取的數據,并充分利用從中提取的信息。我們也可以使用“傳統的”內部服務器,但其中許多項目對可擴展性和可靠性的要求使得基于云的方法成為一種自然的解決方案。
微軟提供全方位的產品,從面向嵌入式設備的操作系統(.NET 微框架、Windows Embedded Compact 和 Standard 產品線以及新的 Windows 物聯網開發人員計劃)到基于其 Azure 平臺的基于云的服務。
這將讓開發人員在物聯網系統的不同組件上使用一套一致的工具和編程語言。另一方面,微軟為不同的操作系統和語言發布了 SDK,允許創建一個由運行不同操作系統(或根本沒有操作系統)的設備組成的系統。
Azure 提供了一個稱為服務總線的消息傳遞系統。使用消息,而不是 Web API 使用的請求-響應機制,允許服務以異步方式處理信息。這導致更好的可擴展性和更高的可靠性。可以在不中斷服務的情況下處理請求數量的峰值,并且一旦將消息傳遞到服務總線,設備甚至可以將自己與網絡斷開連接,而無需等待處理。
我們物聯網所需的所有通信模式都可以使用消息傳遞來實現。設備可以使用高級消息隊列協議 (AMQP) 或 HTTPS 直接連接到服務總線。前一種協議是為消息傳遞而設計的,以二進制格式打包信息,通常會導致較低的帶寬使用。其他消息傳遞協議,如 MQTT(在不支持 AMQP 和 HTTPS 所需的額外加密和安全功能的低資源設備上很常見)和 CoAP 可以使用協議適配器進行集成,比如微軟自己為項目 Reykjavik(Azure 設備)實施的協議適配器網關)。
利用這些協議的現有開源實現和 Microsoft 提供的 SDK,將簡化設備與后端服務之間通信的開發,并讓開發人員專注于為整個解決方案增加價值的實現部分。
審核編輯:郭婷
-
嵌入式
+關注
關注
5198文章
20449瀏覽量
334060 -
適配器
+關注
關注
9文章
2129瀏覽量
71290 -
操作系統
+關注
關注
37文章
7402瀏覽量
129308
發布評論請先 登錄
嵌入式開發是否會成為下一個被看好的領域?
嵌入式開發常用函數速查表
為什么RISC-V是嵌入式應用的最佳選擇
嵌入式開發的核心選擇
嵌入式開發就業還有前景嗎?
明遠智睿SSD2351開發板:嵌入式開發領域的新型新星
嵌入式開發入門指南:從零開始學習嵌入式
Thingy:91 X 為開發人員提供了一個經過全球認證的、多傳感器、電池供電的蜂窩物聯網原型平臺
NanoEdge AI Studio 面向STM32開發人員機器學習(ML)技術
嵌入式開發:高門檻的系統性工程與 996 的行業困局
“物聯網”對嵌入式開發人員意味著什么
評論