如今,“物聯(lián)網(wǎng)”是業(yè)界的熱門話題之一。每天都有新的支持物聯(lián)網(wǎng)的產(chǎn)品出現(xiàn),物聯(lián)網(wǎng)現(xiàn)在是一個(gè)與萬維網(wǎng)一樣流行的首字母縮略詞。甚至有人開玩笑說,我們可能很快就會(huì)看到“支持物聯(lián)網(wǎng)的電阻器”問世,每周我們都會(huì)閱讀新的研究,這些研究談?wù)搶⒃趲讉€(gè)從今天開始的幾年。
但是物聯(lián)網(wǎng)是關(guān)于什么的?
剖析物聯(lián)網(wǎng)
在我看來,我們需要了解這個(gè)定義中包含的實(shí)體。讓我們從“事物”開始。對于嵌入式開發(fā)人員來說,用嵌入式設(shè)備很容易識別它們,我認(rèn)為這樣做是正確的。該定義包括基于微控制器的小型設(shè)備以及運(yùn)行全功能操作系統(tǒng)的更復(fù)雜的設(shè)備。
那么“物聯(lián)網(wǎng)”僅僅是將設(shè)備連接到互聯(lián)網(wǎng)嗎?
我不這么認(rèn)為。這就像將互聯(lián)網(wǎng)定義為連接到基于 TCP/IP 的網(wǎng)絡(luò)的個(gè)人電腦、平板電腦和智能手機(jī)一樣;我們會(huì)錯(cuò)過其中的一個(gè)重要部分。
我們已經(jīng)有許多連接的設(shè)備。多項(xiàng)研究評估,自 2008 年以來,連接到互聯(lián)網(wǎng)的設(shè)備數(shù)量超過了人,但物聯(lián)網(wǎng)仍遠(yuǎn)未成為我們?nèi)粘I钪械默F(xiàn)實(shí)。
近年來,互聯(lián)網(wǎng)已經(jīng)發(fā)展,從萬維網(wǎng)革命開始時(shí)的靜態(tài)“電子郵件和網(wǎng)頁”模式轉(zhuǎn)變?yōu)槲覀兘裉鞊碛械凝嫶笄矣袝r(shí)有用的信息和服務(wù)(和貓視頻)組合。
同樣,在我們真正生活在“物聯(lián)網(wǎng)”時(shí)代之前,連接設(shè)備也需要進(jìn)化、互操作、共享和訪問信息。
物聯(lián)網(wǎng)的“互聯(lián)網(wǎng)”方面是關(guān)于處理可以由設(shè)備收集的大量數(shù)據(jù)并提取有用的信息,這些信息可以改善我們今天使用許多服務(wù)和設(shè)備的方式。這聽起來像是大海撈針,但好消息是,借助云計(jì)算,我們擁有每秒過濾許多大海撈針?biāo)璧奶幚砟芰Α?/p>
“物聯(lián)網(wǎng)設(shè)備”不可能存在(它只是一個(gè)“東西”),但我們可以設(shè)計(jì)一個(gè)作為物聯(lián)網(wǎng)解決方案一部分的設(shè)備。該設(shè)備將不再是“產(chǎn)品”,而是將成為一個(gè)更大項(xiàng)目的一部分,該項(xiàng)目涉及為其增加價(jià)值的服務(wù)。
我們在設(shè)備上也有處理能力,物聯(lián)網(wǎng)并不意味著所有的處理都必須在云中完成,但另一方面,全面了解設(shè)備的整體情況對于讓更多信息和更有效的決策。
汽車和交通系統(tǒng)的物聯(lián)網(wǎng)
讓我們考慮交通。單車可以知道路網(wǎng),獲取交通擁堵、道路施工等信息,但它只知道自己的目的地。一個(gè)管理系統(tǒng)可以從多輛知道他們在哪里以及他們想去哪里的車輛收集信息,可以提供優(yōu)化的方向,讓人們避免現(xiàn)有的交通擁堵,并且不會(huì)在此過程中產(chǎn)生新的交通擁堵。在這種情況下,連接系統(tǒng)可以真正改善人們的駕駛方式。當(dāng)然,目前這是不可能的;大多數(shù)導(dǎo)航系統(tǒng)都沒有連接,那些有連接的系統(tǒng)使用不同的協(xié)議。但是已經(jīng)可以進(jìn)行一些具體的實(shí)施來優(yōu)化,例如公共交通。
這個(gè)過程必須克服巨大的挑戰(zhàn)。
實(shí)施挑戰(zhàn)
互操作性絕對是其中之一,但人們可能不喜歡未經(jīng)授權(quán)訪問可能比存儲(chǔ)在 PC、手機(jī)和平板電腦上的信息更私人的信息的想法,他們對安全和隱私的擔(dān)憂也是合理的。
還有一個(gè)重大的設(shè)計(jì)挑戰(zhàn):將視角從設(shè)備轉(zhuǎn)變?yōu)榻鉀Q方案。產(chǎn)品將包括硬件、本地軟件和服務(wù)。一些要求不會(huì)改變——我們?nèi)匀恍枰煽康挠布透咝У拈_發(fā)工具——但其他要求將被添加到組合中。
作為嵌入式開發(fā)人員,我們將面臨新的挑戰(zhàn),不得不將我們的軟件視為更復(fù)雜解決方案的一部分。我們需要了解整個(gè)系統(tǒng)的運(yùn)行方式,從傳感器收集的比特到這些數(shù)據(jù)如何在云中存儲(chǔ)和處理,再到它在設(shè)備上生成的作為反饋的動(dòng)作。
假裝設(shè)計(jì)物聯(lián)網(wǎng)系統(tǒng)不會(huì)改變我們的工作方式,只關(guān)注嵌入式軟件,并且僅將連接性視為功能之一,這將限制我們對項(xiàng)目的影響。
考慮到連接性的設(shè)計(jì)
設(shè)備(事物)必須與后端(互聯(lián)網(wǎng))交互才能執(zhí)行不同的活動(dòng):
提供數(shù)據(jù)(遙測)
需要來自后端的數(shù)據(jù)或操作(查詢)
從后端執(zhí)行所需的操作(命令)
從后端或其他設(shè)備接收信息(通知)
Clemens Vasters 的一篇題為“連接設(shè)備的服務(wù)輔助通信”的 MSDN 文章清楚地描述了將設(shè)備連接到 Internet 服務(wù)的這些模式和挑戰(zhàn)。
由于我們用于構(gòu)建嵌入式設(shè)備的硬件和軟件有許多不同的供應(yīng)商,因此物聯(lián)網(wǎng)的“互聯(lián)網(wǎng)”方面也有不同的供應(yīng)商。微軟、亞馬遜和谷歌等公司正在努力為廣大的公司和開發(fā)人員提供基于云的服務(wù)。其中許多服務(wù)可用于構(gòu)建物聯(lián)網(wǎng)系統(tǒng)。
這些服務(wù)可以收集、存儲(chǔ)和處理設(shè)備獲取的數(shù)據(jù),并充分利用從中提取的信息。我們也可以使用“傳統(tǒng)的”內(nèi)部服務(wù)器,但其中許多項(xiàng)目對可擴(kuò)展性和可靠性的要求使得基于云的方法成為一種自然的解決方案。
微軟提供全方位的產(chǎn)品,從面向嵌入式設(shè)備的操作系統(tǒng)(.NET 微框架、Windows Embedded Compact 和 Standard 產(chǎn)品線以及新的 Windows 物聯(lián)網(wǎng)開發(fā)人員計(jì)劃)到基于其 Azure 平臺(tái)的基于云的服務(wù)。
這將讓開發(fā)人員在物聯(lián)網(wǎng)系統(tǒng)的不同組件上使用一套一致的工具和編程語言。另一方面,微軟為不同的操作系統(tǒng)和語言發(fā)布了 SDK,允許創(chuàng)建一個(gè)由運(yùn)行不同操作系統(tǒng)(或根本沒有操作系統(tǒng))的設(shè)備組成的系統(tǒng)。
Azure 提供了一個(gè)稱為服務(wù)總線的消息傳遞系統(tǒng)。使用消息,而不是 Web API 使用的請求-響應(yīng)機(jī)制,允許服務(wù)以異步方式處理信息。這導(dǎo)致更好的可擴(kuò)展性和更高的可靠性??梢栽诓恢袛喾?wù)的情況下處理請求數(shù)量的峰值,并且一旦將消息傳遞到服務(wù)總線,設(shè)備甚至可以將自己與網(wǎng)絡(luò)斷開連接,而無需等待處理。
我們物聯(lián)網(wǎng)所需的所有通信模式都可以使用消息傳遞來實(shí)現(xiàn)。設(shè)備可以使用高級消息隊(duì)列協(xié)議 (AMQP) 或 HTTPS 直接連接到服務(wù)總線。前一種協(xié)議是為消息傳遞而設(shè)計(jì)的,以二進(jìn)制格式打包信息,通常會(huì)導(dǎo)致較低的帶寬使用。其他消息傳遞協(xié)議,如 MQTT(在不支持 AMQP 和 HTTPS 所需的額外加密和安全功能的低資源設(shè)備上很常見)和 CoAP 可以使用協(xié)議適配器進(jìn)行集成,比如微軟自己為項(xiàng)目 Reykjavik(Azure 設(shè)備)實(shí)施的協(xié)議適配器網(wǎng)關(guān))。
利用這些協(xié)議的現(xiàn)有開源實(shí)現(xiàn)和 Microsoft 提供的 SDK,將簡化設(shè)備與后端服務(wù)之間通信的開發(fā),并讓開發(fā)人員專注于為整個(gè)解決方案增加價(jià)值的實(shí)現(xiàn)部分。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19153瀏覽量
306425 -
適配器
+關(guān)注
關(guān)注
8文章
1965瀏覽量
68115 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6859瀏覽量
123501
發(fā)布評論請先 登錄
相關(guān)推薦
評論