什么是EdgeX
边缘中间件,服务于物理传感和执行“事物”和我们的信息技术(IT)系统之间。
EdgeX架构
设备服务
与传感器/设备或IoT对象交互的边缘连接器,包括机器、无人机、HMAC设备、相机等。
利用可用连接器来控制设备或从EdgeX获取边缘数据。
可以使用设备服务SDK提供创建自己的EdgeX设备服务。
核心服务
这是关于哪些“事物”相互连接、哪些数据流经以及如何在给定部署中配置EdgeX的开放边缘软件平台等大部分知识的地方。
- 核心数据:用于设备和传感器收集的边缘数据读数的集中数据库。
- 核心命令/控制:代表其他微服务、应用程序和外部系统对设备执行命令/操作
- 核心元数据:由其他服务用于获取有关设备以及如何与其通信的知识
- 配置和注册表:集中并简化服务配置数据。它使用开源项目Consul,该项目提供键值存储,客户端可以通过 RESTAPI访问EdgeXFoundry。
支撑服务
包括边缘数据分析 (也称为本地分析)等微服务和日志记录、调度和数据清理等典型边缘软件应用程序职责。
- 警报和通知:将警报/通知传递给系统或人员,以通知另一个微服务在节点上发现的某些内容。
- 计划服务:按照配置的时间间隔或计划在任何EdgeX服务中执行操作。
- 规则引擎(Kuiper):EMQXKuiper是EdgeX
Foundry 参考规则引擎,允许用户在边缘实现快速数据处理并使用 SQL 编写规则。
应用服务
应用服务是从EdgeXFoundry 提取、处理/转换感知的边缘数据并将其发送到您选择的端点或应用程序的方法。这可以是边缘数据分析包、企业或本地应用程序,也可以是 Azure loT中心、AWSloT或 GoogleloTCore 等云系统。
安全服务
- 安全API网关:所有EdgeX REST流量的单点入口。
- 秘密存储:EdgeX微服务的中央存储库。
管理服务
为外部管理服务提供了中心联系点,用于启动/停止/重新启动EdgeX服务、获取服务的配置、服务的状态/运行状况。
工作原理
以Modbus
设备为例:
0:Modbus 设备服务将在 Modbus 中进行通信,以从 Modbus 泵获取压力读数。设备服务将传感器数据转换为 EdgeX 事件对象。
1.1:事件对象通过消息总线发送到核心数据或应用程序服务
1.2:事件对象通过 REST 通信将事件对象发送到核心数据服务
2:当核心数据通过 REST 从设备服务接收事件对象时,它会将传感器数据事件放在发往应用程序服务的消息主题上。
3:应用程序服务根据需要转换、过滤、丰富、压缩、加密等操作数据后,并将数据推送到端点。
4:应用程序服务可以处理 EdgeX 事件(及其包含的传感器数据)并将其获取到任何分析包。
5:分析包可以探索传感器事件数据并做出触发设备驱动的决定(例如,它可以检查发动机的压力读数是否大于 60 PSI。当确定这样的规则为真时,分析包会调用核心命令服务来触发某些操作,例如在某些可控设备上“打开阀门”)。
6:核心命令服务获取动作请求,并根据请求确定需要动作于哪个设备;然后调用所属设备服务来执行驱动。
7:设备服务接收启动请求,将其转换为特定于协议的请求,并将请求转发到所需的设备。