官網文檔翻譯過來的,幫助快速了解edgex運行流程
How EdgeX Works
-
傳感器數據收集
1.EdgeX的主要工作是從傳感器和設備收集數據,並將這些數據提供給北側應用程序和系統。可以通過說服該設備協議的設備服務從傳感器收集數據。示例:Modbus設備服務將在Modbus中進行通信以從Modbus泵獲取壓力讀數。設備服務將傳感器數據轉換為EdgeX事件對象,然后通過REST通信將事件對象發送到核心數據服務(步驟1)。
核心數據將傳感器數據保留在本地邊緣數據庫中。默認情況下,Redis用作數據庫(其他數據庫也可以使用)。實際上,不需要持久性,可以將其關閉。出於兩個基本原因,數據在EdgeX中保留在邊緣上:
- 邊緣節點並非始終連接。在斷開連接的操作期間,必須保存傳感器數據,以便在恢復連接時可以向北傳輸傳感器數據。這稱為存儲和轉發功能。
- 在某些情況下,傳感器數據的分析需要回顧歷史記錄,以便了解趨勢並根據該歷史記錄做出正確的決策。如果傳感器報告當前溫度為72°F,則在決定調整加熱或冷卻系統之前,您可能想知道十分鍾前的溫度。如果溫度為85°F,您可能會決定降低十分鍾前所做的降低室溫的調整足以冷卻房間。歷史數據的背景對於本地分析決策很重要。
2.核心數據將傳感器數據事件放在發給應用程序服務的消息主題上。默認情況下,ZEROMQ被用作消息傳遞基礎結構(步驟2)。
3.應用程序服務根據需要轉換數據,並將數據推送到端點。在將事件發送到端點之前,它還可以對事件進行過濾,豐富,壓縮,加密或執行其他功能(步驟3)。該終結點可以是HTTP / S終結點,MQTT主題,雲系統(雲主題)等。
-
邊緣分析和驅動
在邊緣計算中,僅收集傳感器數據只是EdgeX等邊緣平台的一部分工作。邊緣平台的另一項重要工作是能夠
- 本地分析傳入的傳感器數據
- 根據該分析快速采取行動邊緣或本地分析是對邊緣(“本地”)收集的傳感器數據進行評估並根據其所見觸發觸發或動作的處理。
為什么選擇邊緣分析?本地分析很重要,原因有兩個:
- 某些決策無法等待傳感器收集的數據反饋到企業或雲系統並返回響應。
- 此外,某些邊緣系統並不總是連接到企業或雲,而是具有間歇性的連接時間。
本地分析允許系統至少在一段時間內獨立運行。例如:船舶在海上航行時,很長一段時間內,運輸集裝箱的冷卻系統必須能夠在本地做出決策,而沒有Internet連接的好處。當對系統操作至關重要時,本地分析還允許系統以低潛伏方式快速行動。舉一個極端的例子,假設您的汽車安全氣囊是根據數據發送到雲端並進行碰撞分析而觸發的。您的汽車具有本地分析功能,可以防止汽車中的安全促動裝置如此緩慢且容易出錯的交付。
EdgeX的構建目的是對從邊緣收集的數據進行本地處理。換句話說,事件由本地分析處理,可用於觸發傳感器/設備上的操作。
4.就像應用程序服務准備供北側雲系統或應用程序使用的數據一樣,應用程序服務可以處理EdgeX事件(及其包含的傳感器數據)並將其獲取到任何分析包(請參閱步驟4)。默認情況下,EdgeX附帶一個簡單的規則引擎(默認的EdgeX規則引擎是Kuiper – EMQ X的開源規則引擎)。您自己的分析包(或ML代理)可以替換或增強本地規則引擎。
5.該分析包可以瀏覽傳感器事件數據並做出觸發設備啟動的決定。例如,它可以檢查發動機的壓力讀數是否大於60 PSI。當確定該規則為真時,分析包將調用核心命令服務以觸發某些操作,例如在某些可控設備上“打開閥門”(請參閱步驟5)。
6.核心命令服務獲取啟動請求,並確定需要對該請求進行操作的設備;然后調用擁有設備的服務進行激活(請參閱步驟6)。核心命令允許開發人員在啟動之前采取其他安全措施或檢查。
7.設備服務接收啟動請求,將其轉換為特定於協議的請求,並將請求轉發到所需設備(請參閱步驟7)。