edgexfoundry运行流程

官网文档翻译过来的,帮助快速了解edgex运行流程

How EdgeX Works

  • 传感器数据收集

1.EdgeX的主要工作是从传感器和设备收集数据,并将这些数据提供给北侧应用程序和系统。可以通过说服该设备协议的设备服务从传感器收集数据。示例:Modbus设备服务将在Modbus中进行通信以从Modbus泵获取压力读数。设备服务将传感器数据转换为EdgeX事件对象,然后通过REST通信将事件对象发送到核心数据服务(步骤1)。

image-20201124094921090

核心数据将传感器数据保留在本地边缘数据库中。默认情况下,Redis用作数据库(其他数据库也可以使用)。实际上,不需要持久性,可以将其关闭。出于两个基本原因,数据在EdgeX中保留在边缘上:

  • 边缘节点并非始终连接。在断开连接的操作期间,必须保存传感器数据,以便在恢复连接时可以向北传输传感器数据。这称为存储和转发功能。
  • 在某些情况下,传感器数据的分析需要回顾历史记录,以便了解趋势并根据该历史记录做出正确的决策。如果传感器报告当前温度为72°F,则在决定调整加热或冷却系统之前,您可能想知道十分钟前的温度。如果温度为85°F,您可能会决定降低十分钟前所做的降低室温的调整足以冷却房间。历史数据的背景对于本地分析决策很重要。

2.核心数据将传感器数据事件放在发给应用程序服务的消息主题上。默认情况下,ZEROMQ被用作消息传递基础结构(步骤2)。

image-20201124095145945

3.应用程序服务根据需要转换数据,并将数据推送到端点。在将事件发送到端点之前,它还可以对事件进行过滤,丰富,压缩,加密或执行其他功能(步骤3)。该终结点可以是HTTP / S终结点,MQTT主题,云系统(云主题)等。

image-20201124095653447

  • 边缘分析和驱动

在边缘计算中,仅收集传感器数据只是EdgeX等边缘平台的一部分工作。边缘平台的另一项重要工作是能够

  • 本地分析传入的传感器数据
  • 根据该分析快速采取行动边缘或本地分析是对边缘(“本地”)收集的传感器数据进行评估并根据其所见触发触发或动作的处理。

为什么选择边缘分析?本地分析很重要,原因有两个:

  • 某些决策无法等待传感器收集的数据反馈到企业或云系统并返回响应。
  • 此外,某些边缘系统并不总是连接到企业或云,而是具有间歇性的连接时间。

本地分析允许系统至少在一段时间内独立运行。例如:船舶在海上航行时,很长一段时间内,运输集装箱的冷却系统必须能够在本地做出决策,而没有Internet连接的好处。当对系统操作至关重要时,本地分析还允许系统以低潜伏方式快速行动。举一个极端的例子,假设您的汽车安全气囊是根据数据发送到云端并进行碰撞分析而触发的。您的汽车具有本地分析功能,可以防止汽车中的安全促动装置如此缓慢且容易出错的交付。

EdgeX的构建目的是对从边缘收集的数据进行本地处理。换句话说,事件由本地分析处理,可用于触发传感器/设备上的操作。

4.就像应用程序服务准备供北侧云系统或应用程序使用的数据一样,应用程序服务可以处理EdgeX事件(及其包含的传感器数据)并将其获取到任何分析包(请参阅步骤4)。默认情况下,EdgeX附带一个简单的规则引擎(默认的EdgeX规则引擎是Kuiper – EMQ X的开源规则引擎)。您自己的分析包(或ML代理)可以替换或增强本地规则引擎。

image-20201124100618311

5.该分析包可以浏览传感器事件数据并做出触发设备启动的决定。例如,它可以检查发动机的压力读数是否大于60 PSI。当确定该规则为真时,分析包将调用核心命令服务以触发某些操作,例如在某些可控设备上“打开阀门”(请参阅步骤5)。

image-20201124100710714

6.核心命令服务获取启动请求,并确定需要对该请求进行操作的设备;然后调用拥有设备的服务进行激活(请参阅步骤6)。核心命令允许开发人员在启动之前采取其他安全措施或检查。

image-20201124101053902

7.设备服务接收启动请求,将其转换为特定于协议的请求,并将请求转发到所需设备(请参阅步骤7)。

image-20201124101103207

原文地址:https://www.cnblogs.com/liu-ai-yu/p/14028947.html