1. 程式人生 > >IOT(5)---物聯網系統框架介紹

IOT(5)---物聯網系統框架介紹

轉載: https://blog.csdn.net/robert_tin

物聯網系統框架介紹

下面將談到幾個關鍵問題:

  • 裝置如何接入網路?
  • 裝置間如何通訊?
  • 物聯網資料的用途?
  • 如何搭建起一個物聯網系統框架呢?它的技術架構又是怎麼樣呢?
  • 物聯網終端軟體系統架構?
  • 物聯網雲平臺系統架構?

1. 物聯網裝置如何接入到網路?

只有裝置接入到網路裡面,才能算是物聯網裝置。這裡涉及到2個關鍵點:接入方式以及網路通訊方式

裝置接入方式:

當前有2種接入方式

  1. 直接接入:物聯網終端裝置本身具備聯網能力直接接入網路,比如 在裝置端加入NB-IOT通訊模組,2G通訊模組。
  2. 閘道器接入:物聯網終端裝置本身不具備入網能力,需要在本地組網後,需要統一通過閘道器再接入到網路。 比如終端裝置通過zigbee無線組網,然後各裝置資料通過Zigbee閘道器統一接入到網路裡面。常用到本地無線組網技術有Zigbee,Lora,BLE MESH, sub-1GHZ等。

在物聯網裝置裡面,物聯網閘道器是一個非常重要的角色。一個處在本地區域網與外部接入網路之間的智慧裝置。主要的功能是網路隔離,協議轉化/適配以及資料網內外傳輸。

一個典型的物聯網閘道器架構如下: 

網路通訊方式

常用的通訊網路主要存在2種方式:

1.行動網路(主要戶外裝置用) 
行動網路2G/3G/4G/5G/NB-IOT等 
2.寬頻(主要戶內裝置用) 
WIFI,Ethernet等

物聯網裝置接入網路後如何開展M2M,M2C通訊?

物聯網裝置終端接入網路後,只是物聯網應用的開始。 裝置接入網路後,裝置與裝置之間需要互相通訊, 裝置與雲端需要互相通訊。 只有互通,物聯網的價值才展現出來。 既然要互通,則需要一套物聯網通訊協議。只有遵循該套協議的裝置相互間能夠通訊,能夠交換資料。

常用的物聯網通訊協議有哪些? 主要有如下協議:MQTT,COAP等,他們有個共同點都是基於訊息模型來實現的。裝置與裝置之間,裝置與雲端之間通過交換訊息來實現通訊,訊息裡面攜帶了通訊資料。

物聯網裝置之間,裝置與雲平臺能夠交換資料後,接下來要幹怎麼呢?

21世紀,什麼最重要?資料。 有了大量的物聯網裝置資料後, 針對資料,人類可以去挖掘裡面的規律,挖掘裡面的商業價值,對裝置未來的狀態進行預測等等。

對於物聯網資料應用,分幾個層次來講 
1. 基礎應用:監控

通過物聯網收集到裝置資料後, 如果裝置資料狀態超過預設的狀態則自動第一時間報警,管理員第一時間開展處理,可以通過遠端操作,下達命令。把問題解決在萌芽狀態。

2.進階應用: 報表統計

通過統計方法, 對裝置的歷史執行資料進行統計分析。可以按不同維度分析出不同報告。然後以圖表或者大屏方式展現在管理員面前。 管理員可以快速直觀的瞭解到整個物聯網裝置執行狀況。

3.高階應用: 資料探勘/機器學習

這部分需要從資料裡面挖掘出有價值的東西出來。比如通過一段時間時間裝置資料的連續跟蹤分析並結合人類過往的裝置運維經驗,通過機器學習方式預測裝置發生故障概率,以及發生故障後可能的引起原因,並給出維修方案。剛才舉的例子,是物聯網高階應用裡面的冰山一角。 通過引入現在火熱的AI技術。 物聯網就能變成智慧物聯網了。 也許在不久的將來, 人與裝置可以自由對話,裝置與裝置之間也能夠對話並自動做出最優決策。

綜合所述,物聯網的價值在於提高生產效率,管理效率,極大促進社會生產力的提高。

如何搭建起一個物聯網系統框架呢?它的技術架構又是怎麼樣呢?

物聯網終端裝置軟體系統架構

常見系統框架的總結下來主要存在如下2種: 帶RTOS的(處理複雜的業務場景,場景裡面通過需要多個事務並行協同完成工作)和不帶RTOS的(通常處理的業務場景較單一)

不帶RTOS裝置終端系統框架: 

帶RTOS裝置終端系統框架: 

RTOS是什麼? 實時多工作業系統,有了它,在終端裝置裡面可以並行執行多個任務。每個任務負責一個事務。通過並行化執行,響應實時性及效率就得到提升。RTOS實時操作核心一般包含的重要元件如下:

1. 任務排程
2. 任務間同步與通訊
3. 記憶體分配
4. 中斷管理
6. 時間管理
7. 裝置驅動
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

以任務排程元件舉例: 
在嵌入式作業系統中,任務是CPU上最小執行單元。通常一個稍微複雜點IOT APP是由多個任務協同完成。比如有的任務負責處理使用者事件輸入以及UI顯示,有的任務負責處理資料通訊,有的任務負責業務邏輯處理。

既然一個系統中有多個任務在跑,而CPU資源確是單一的,這樣導致每個時刻只能由一個任務在CPU上跑。 因此為了每個任務都能夠在CPU上有執行機會,就涉及到了任務排程概念。 任務排程需要按照一定的規則來,那一般是按照哪些規則來的? 我們常見的排程方式有3種: 一個基於優先順序排程的, 一個是基於時間片排程的, 一個是把優先順序和時間片結合在一起排程。

以優先順序排程舉例,在定義任務的時候,給每個任務分配一個優先順序,在執行的時候,高優先順序的任務都會優先被執行。 直到沒有高優先順序任務後,低優先順序任務才會被執行。 假如低優先順序任務獲得CPU資源後,這是如果有高優先順序任務就緒怎麼辦呢? 兩種處理方式:1. 繼續執行 2. 搶佔式。 高優先順序搶佔CPU資源進入執行狀態。

其他元件就不一一列舉了。

物聯網雲平臺系統架構

物聯網雲平臺系統架構主要包含四大元件:

  • 裝置接入
  • 裝置管理
  • 規則引擎
  • 安全認證及許可權管理

裝置接入

裝置接入主要都幹些什麼呢? 
1.包含多種裝置接入協議,最主流的是MQTT協議。有些雲端計算廠商也在MQTT協議上精簡協議變成獨有的接入協議。 
2.併發連線管理,維持可能是數十億裝置的長連線管理。

如果應對數十億的裝置連線管理? 目前開放出來的MQTT代理伺服器大都是單機版,最多也就是併發連線十幾萬裝置。因此如果要管理數十億的連線,需要用到負載均衡,用到分散式架構。在雲平臺需要部署分散式MQTT代理伺服器。

裝置管理

一般以樹形結構的方式管理裝置,包含裝置建立管理以及裝置狀態管理等等。根節點以產品開始, 然後是裝置組,再到具體裝置。 
主要包含如下管理: 
產品註冊及管理 
產品下面的裝置增刪改查管理 
裝置訊息釋出 
OTA裝置升級管理等

規則引擎

物聯網雲平臺通常是基於現有云計算平臺搭建的。 一個物聯網成熟業務除了用到物聯網雲平臺提供功能外,一般還需要用到雲端計算平臺提供功能,比如雲主機,雲資料庫等。使用者可以在雲主機上搭建web 行業應用服務。

規則引擎主要作用是把物聯網平臺數據通過過濾轉發到其他雲端計算產品上。 
比如可以把裝置上報的資料轉發到table store資料庫產品裡。

規則引擎一般使用方式:類SQL語言,通過編寫SQL語言,使用者可以過濾資料、處理資料,並把資料發到其他雲端計算產品,或者其他雲端計算服務。

安全認證及許可權管理

物聯網雲平臺為每個裝置頒發唯一的證書,需要證書通過後才能允許裝置接入到雲平臺。雲平臺最小授權粒度一般是做到裝置級。我們所說的證書一般分為2種:一種是產品級證書,一種是裝置級證書。 產品級證書擁有最大的許可權,可以對產品下所有的裝置進行操作。 裝置級證書,只能對自己所屬的裝置進行操作,無法對其他裝置進行操作。

因此每個接入雲平臺的裝置都在本地儲存一個證書(其實存在形式是一個KEY,有多個字串構成)。每次與雲端建立連線時,都要把證書帶上。以便雲端安全元件核查通過。

雲端計算產品

大資料計算產品, 雲基礎服務(高效能伺服器,雲資料庫,雲網絡)等

物聯網應用

智慧城市, 智慧農業,工業4.0等

下面一張是來自百度物聯網平臺架構: 
突出展示了物聯網裝置, 物聯網雲平臺, 雲端計算平臺是如何協同工作的,有較大的參考價值。 


a