IoT -- 解讀物聯網四層架構

本文以物聯網四層架構爲基礎,從物聯網產品設計的角度來解讀每層架構的功能以及主要內容,旨在爲物聯網產品設計以及實現思路感興趣的物聯網產品或研發人員有些幫助。

通過互聯網,人和人之間可以傳遞和交流信息。物聯網,IoT,Internet of Things,顧名思義就是物和物之間也可以傳遞和交流信息,人人互聯和物物互聯兩者最大的區別體現在人與物的差別上。

人有五官和皮膚接收和採集數據,經過大腦加工處理,然後形成想法,最後通過網絡傳遞出去,達到跟別人交流的目的。與人相比,物缺少需要交流的信息,即物缺少採集數據的抓手,以及將信息進行整合形成具有交流價值的大腦。

那信息採集技術和嵌入式程序在物聯網領域就顯得尤爲重要,信息採集技術代替了人的五官和皮膚,進行數據收集。

嵌入式程序主要代替了大腦的整個決策最後輸出信息,物聯網很早就在市場上出現但是一直沒有產生可觀的影響力,所以大衆對它的關注度不是很高。

但是近十年來,物聯網發展迅速,這不僅得益於國家政策的支持-在2010年將其列爲國家發展戰略,還得益於物聯網配套技術,比如數據採集技術、微處理器、通訊模組、通訊網絡、大數據、雲計算等迅猛發展 。

物聯網再次進入大衆視野,併成功取得了大衆的矚目和追逐,且有望掀起下一波浪潮。物聯網技術體系可以分成四層:感知層、網絡層、平臺層和應用層。每一層都擔任了不同的職責,這種類似於專人專責的分工,可以提高工作質量和工作效率。

圖1:物聯網四層架構

一、感知層

感知層的主要功能就是採集物理世界的數據,其是人類世界跟物理世界進行交流的關鍵橋樑。

感知層的數據來源主要有兩種:

一種就是主動採集生成信息,比如傳感器、多媒體信息採集、GPS等,這種方式都需要主動去記錄或跟目標物體進行交互才能拿到數據,存在一個採集數據的過程,且信息實時性高。

比如在智能喝水領域會採用一種流量傳感器,只要用戶喝水,流量傳感器就會立即採集到本次的喝水量是多少,這就存在一個長期交互採集數據的過程。

另一種是接受外部指令被動保存信息,比如射頻識別(RFID)、IC卡識別技術、條形碼、二維碼技術等,這種方式一般都是通過事先將信息保存起來,等待被直接讀取。

比如現在有的小區用的門禁卡就是用了IC卡識別技術,先將用戶信息錄入中央處理系統,然後用戶每次進門的時候直接刷卡就行。

二、網絡層

網絡層主要功能就是傳輸信息,將感知層獲得的數據傳送至指定目的地。

在物聯網領域,嵌入式程序相當於人的大腦,在信息採集完成之後,大腦就會給通訊模塊發佈指令說把這個信息傳給某某某,網絡層會涉及到你選用什麼樣的通訊網絡以及採用什麼樣的通訊機制來傳送你的信息。

物聯網中的“網”字其實包含了2個部分:接入網絡、互聯網。

以前的互聯網只是打通了人與人之間的信息交互,但是沒有打通人與物或物與物之間的交互,因爲物本身不具有聯網能力。

後來發展出將物連接入網的技術,我們稱其爲設備接入網,通過這一網絡可以將物與互聯網打通,實現人與物和物與物之間的信息交互,大大增加了信息互通的邊界,更有利於通過大數據、雲計算、AI智能等先進技術的應用來增加物理和人類世界的豐富度。

那目前主要有兩種方式的接入網,一種是有線網絡接入,一種是無線網絡接入。

圖2:物聯網網絡結構

有線主要包括以太網、串行通信(RS-232、RS485等)和USB等。

無線又分爲近距離無線、短距離無線和長距離無線通訊。近距離無線通訊主要包括NFC、RFID 、IC等,短距離無線通訊主要包括Wifi、ZigBee、藍牙等,長距離無線通訊主要包括GSM(2G、3G、4G、5G等)、eMTS、Lora、NB-IoT等。

面對衆多的入網方式,我們需要考慮應用場景以及設備本身的特徵來選擇合適的接入方式,各種接入網的特徵詳見下表。

選好了適合使用的網絡,相當於數據傳輸的物理承載道路打通了,現在就需要確定以什麼樣的機制來傳遞信息,這就涉及到通訊協議。

從本質上來說,通訊協議就是一套數據傳輸規範,就跟我們接觸的英語、德語、中文等類似的語言一樣,是通過一定規則組成的,易於物與物之間進行交流溝通。

物聯網設備端資源受限,比如處理能力差、存儲能力小、網絡傳輸量小、網絡不穩定等,很明顯物聯網和互聯網在設備端提供的資源環境存在很大的差別。

所以爲了更好地爲物聯網服務,對互聯網的通訊協議進行了優化,發展出了目前被廣泛使用的MQTT(Message Queuing Telemetry Transport)和CoAP(Constrained Application Protocal )兩種物聯網通訊協議。

MQTT協議是基於TCP協議的,可以確定接收方一定會受到設備端發出的信息。MQTT協議可以保持長連接,這可以使得設備端和雲端進行實時通訊,所以其更適合實時控制交互的場景。

由於是基於TCP協議的,其通訊協議比較複雜,設備端要運行復雜機制的話,對性能就需要有一定的要求,比如存儲、計算、網絡質量等。

CoAP協議是基於UDP協議的,有兩種數據傳輸機制:一種是接收方一定會收到設備端發送的數據,另一種是不管接收方有沒有收到,設備只發送1次數據就結束了。

設備端在完成數據發送之後就進入休眠狀態,所以低功耗是CoAP協議最大的特點,其也更適合數據採集的場合,比如抄送電錶、水錶的數據。

由於是基於UDP協議的,其通訊協議複雜性想對簡單一些,自然對設備端的性能要求會低一些。

三、平臺層

物聯網平臺可爲設備提供安全可靠的連接通信能力,向下連接海量設備,支撐數據上報至雲端,向上提供雲端API,服務端通過調用雲端API將指令下發至設備端,實現遠程控制。

物聯網平臺主要包含設備接入、設備管理、安全管理、消息通信、監控運維以及數據應用等。

圖3:物聯網管理平臺基本架構

設備接入主要是指設備端如何跟物聯網平臺進行連接通信,主要表現在:

設備端開發:提供MQTT、CoAP、HTTP、HTTPS等多種協議的設備端SDK開發等,幫助不同設備輕鬆接入

設備網絡接入管理:提供基於蜂窩(2G、3G、4G、5G)、NB-IoT、LoRaWAN、WI-FI等不同網絡接入方案。

1 . 設備管理

主要包含設備創建、維護、數據轉換、數據同步、設備分佈等內容,具體表現在:

1)物模型管理

物聯網中的物是物理世界的實體,如果我們想開發一套數字化系統,那這個實體肯定不能缺席,這個時候就會涉及到一個問題:如何把線下的實體變成線上的呢?

而這正是物模型的價值。物模型通俗的解釋就是用數字世界的方式將物理世界的物體表徵出來,用數字世界的規則來描述這個物體是什麼、它有什麼作用,這也就是我們經常聽到的產品的功能。

物聯網平臺都會提供多種物模型的建立方式,我們可以根據不同的需求來選擇合適的模型。

2)設備生命週期管理

主要涉及創建設備、設備上下線、禁用/啓用、刪除設備等。物模型建立好之後,相當於定義好了產品的母版,這時候我們可以在該產品下面創建設備,該設備也會具有該產品的功能。

3)數據解析

對於低配置且資源受限或者對網絡流量有要求的設備,不適合構造JSON格式與物聯網平臺通信,這時候可以將原數據透傳到物聯網平臺,物聯網平臺再根據原數據轉化的腳本規則,將其轉換爲JSON格式。

4)設備影子

物聯網中聯網是一個很重要的環節,如果設備不聯網的話,則設備端和服務端處於通訊中斷的狀態,雙方無法交互信息。爲了解決這種常態的困境,給每個設備在物聯網平臺都建立1個影子,其有2個主要作用:

1.可以將在設備離線期間保存在設備影子中的服務端的指令在設備上線時立即下發給設備執行;

2.在設備在線時,如果設備端數據發生變化則及時同步給設備影子,這可以解決當設備離線時服務端請求不到設備數據的情況。

換句話說在某種程度上設備影子可以使得設備端和服務端保持相對及時的交互通信,最起碼服務端從設備端可以拿到相對來說最新的數據以及服務端可以相對及時的告訴設備端需要執行哪些指令。

5)設備拓撲

物聯網平臺支持設備直連,也支持設備掛載在網關上,作爲網關的子設備,由網關直連。

網關直連的場景主要有子設備不能直連或者需要拓撲關係管理的場景,比如WI-FI 網關、ZigBee 網關、以及藍牙網關等。設備拓撲管理可以幫助管理子設備、子設備與網關的拓撲關係、對子設備進行監控運維等,同時服務端可以直接面向子設備收發消息。

2. 安全管理

主要是從設備安全認證和通信安全兩個方面來保證物聯網數據傳輸的安全性。

1)設備安全認證

設備接入物聯網平臺之前,需要通過身份認證,來保證設備的安全性。

目前,物聯網平臺支持使用設備密鑰、ID²和X.509證書等方式進行身份認證,在此僅以設備密鑰爲例來簡要說明設備身份認證的實現方式(生成、獲取、使用)。

在物聯網平臺創建設備的時候會給設備頒發密鑰,密鑰的種類有多樣,比如一機一密、一型一密等,密鑰生成之後,有2種方式可以將密鑰放到設備端:

一種是事先將密鑰燒錄在設備端程序裡面,另一種是當設備首次聯網時向物聯網平臺請求設備密鑰,這時如果該設備有註冊過則會把相應的密鑰傳給設備。在設備都有密鑰之後就相當於拿到了通行證,可以和物聯網平臺進行正常的通信。

2)通信安全

主要是指數據傳輸層面的的安全管理,支持MQTT、HTTPS、CoAP數據傳輸通道,保證數據的機密和完整性,支持設備權限管理機制,保障設備與雲端安全通信;支持設備級別的通信資源(Topic等)隔離,防止設備越權等問題。

3. 消息通信

主要包括設備端發送數據到物聯網平臺,物聯網平臺將數據流轉到服務端/其他雲產品,服務端遠程控制設備這3種消息傳送方式。

設備管理主要定義了設備是什麼,那消息通信主要解決的就是信息傳輸機制:怎樣將物聯網平臺配置的設備信息與設備端、服務端、其他雲產品進行傳遞。這機制裡面涉及的一個很重要的概念就是Topic,通過對Topic的定義和使用來進行信息傳輸。

1)基於Topic的上下行通信可以將設備端數據發送至物聯網平臺或實現服務端遠程控制設備

設備端跟物聯網平臺通信是用的MQTT協議,該協議是基於主題的發佈和訂閱機制,其所有的信息傳遞都是通過主題這一中介來完成。

設備可以發佈某一主題也可以訂閱某一主題,設備發佈的話其實就是設備發送數據的消息模式,設備訂閱的話其實就是設備接收數據的消息模式,對於物聯網設備來說上報和接收是兩個基本且重要的消息交互模式,那怎樣來定義主題呢?

主題的定義有兩種方式:一種是自定義數據模式,一種是利用物模型建立的標準化的數據模式。

主題的定義是基於產品功能的,當產品功能確定好之後,那怎樣將這些功能跟設備通信進行關聯是一個很重要的問題。

這個時候就需要對產品進行主題的設置。選定產品功能之後,可以根據需要來設置不同的主題比如上報、接收、更新、刪除等。在產品層面定義好主題類之後,該產品下的所有設備都會具備該主題的特性,設備就可以利用主題來進行上下行通信。

2)基於服務端訂閱、雲產品流轉的將物聯網平臺數據傳輸至服務端/其他雲產品的傳輸模式

服務端可以直接訂閱產品下多種類型的消息:設備上報消息、設備狀態變化通知、設備生命週期變更、設備拓撲關係變更等。

配置服務端訂閱之後,物聯網平臺就會將產品下所有設備的已訂閱的消息轉發至服務器。使用物聯網平臺的數據流轉功能,可將Topic中的數據消息轉發至其他雲產品中進行存儲或處理,這就是所謂的雲產品流轉。

4. 監控運維

主要涉及到設備監控和運維兩個部分。

監控診斷:物聯網平臺提供在線設備數量、上下行消息數量、規則引擎流轉消息次數、設備網絡狀態等指標數據的實時監控功能;

OTA升級:設備投放出去後如果發生應用程序升級,則可以通過OTA升級與管理服務,實現遠程升級程序的工作;

在線調試:在線調試主要用於程序開發階段,一是設備端開發完成後,可以使用物聯網平臺的在線調試功能,從控制檯下發至指令到設備端進行功能測試;二是物聯網提供虛擬設備功能,供雲端應用開發測試使用;

日誌服務:可以將雲端或設備端的運行日誌保存下來供故障查詢等使用,並且可以將日誌數據導出存放起來進行長期存儲。開通日誌轉儲後,支持在物聯網控制檯查詢分析日誌,並提供日誌報表、報表訂閱、告警通知等功能。

5. 數據應用

主要涉及數據的存儲、分析和應用。

數據備份:可爲海量數據提供分發和備份服務;

數據分析:爲開發者提供了設備智能分析,全鏈路覆蓋了對設備數據生成、管理(存儲)、清洗、分析及可視化等環節;

數據應用:可以跟第三方或者其他雲產品進行結合解決不同的問題比如將溫溼度計上報數據到釘釘羣機器人或者通過大數據平臺搭建設備監控大屏等。

四、應用層

應用層是物聯網的最終目的,其主要是將設備端收集來的數據進行處理,從而給不同的行業提供智能服務。

目前物聯網涉及的行業衆多,比如電力、物流、環保、農業、工業、城市管理、家居生活等,但本質上採用的物聯網服務類型主要有4類:

監控型,比如物流監控、污染監控等;

控制型,比如智能交通、智能家居等;

掃描型,比如手機錢包、高速公路不停車收費等;

查詢型,比如遠程抄表、智能檢索等。

圖4:物聯網應用層結構

應用層架構主要有3個組成部分:業務處理,數據庫和客戶端。

物聯網業務處理較爲複雜,因爲其會涉及到海量數據的整合,這對不同行業終端應用者來說具有很大的挑戰,所以目前市場上有專門提供的中間件比如雲計算、數據挖掘、人工智能、信息融合等可以供行業者使用,這也在一定程度上激發了物聯網應用行業的繁榮。

數據庫主要用來存儲設備、用戶、業務以及其他相關的數據。應用層會接觸到終端用戶,所以會涉及到客戶端的開發,在此就不贅述。

物聯網涉及到的關鍵技術主要有云計算、數據挖掘、人工智能,在此作簡要介紹:

雲計算具有強大的存儲能力、處理能力、帶寬和極高的性價比,它可以爲不同的物聯網應用提供統一的服務。不同的技術服務商會開發一套完整的雲計算資源,其就像水電一樣,客戶可以按需付費,你需要多少,就購買多少;

數據挖掘是從大量的、不完全的、有噪聲的、模糊的及隨機的實際應用數據中,挖掘出隱含的、未知的、對決策有潛在價值的數據的過程。數據挖掘主要基於人工智能、機器學習、模式識別、統計學等,高度自動化地對數據進行統計、分析、綜合、歸納和推理,揭示事物間的相互關係,預測未來的發展趨勢,爲決策者提供決策依據;

人工智能是探索研究使各種機器模擬人的某些思維過程和智能行爲(如學習、推理、思考等)。該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等。在物聯網中,人工智能技術主要負責分析物品所承載的信息內容,從而實現計算機自動處理。

寫這篇文章的目的一個是自己對物聯網領域產品的知識總結,另一個最重要的目的就是希望能給對物聯網產品設計有興趣的人建立一個物聯網產品設計以及實現的整體把握,可以瞭解物聯網各個組成部分以及相應的關鍵節點的主要內容。

由於個人知識水平有限,若上述某些觀點有誤,歡迎各位指正,非常感謝~

作者:寧靜&淡泊 來源:人人都是產品經理

互聯互通社區

互聯互通社區專注於IT互聯網交流與學習,旨在打造最具價值的IT互聯網智庫中心,關注公衆號:互聯互通社區,每日獲取最新報告並附帶專題內容輔助學習。