EdgeX 平台初探

EdgeX 总体架构

架构图

EdgeX 由以下四个基本模块构成

  • 设备服务层 (DEVICE SERVICES)
  • 核心服务层 (CORE SERVICES)
  • 支持服务层 (SUPPORT SERVICES)
  • 应用服务层 (APPLICATION SERVICES)

在上述层级的基础上扩展了以下服务

  • 安全服务 (SECURITY)
  • 系统管理服务 (MANAGEMENT)

设备服务层

设备服务层当中的服务可以自行选择进行安装,目前支持的内容如下:

  • 测试设备
    • 随机数生成器(Go)
    • 虚拟设备(Go)
  • 官方支持的设备
    • Modbus (Go)
    • MQTT (Go)
    • Grove ©
    • Camera (Go)
    • Rest (Go)
    • BACnet ©
  • 研发中的设备
    • OPC UA ©
    • Bluetooth ©
    • GPS ©
  • 收费的连接器(IOTech 公司提供)
    • Modbus
    • BACnet
    • Bluetooth
    • CAN
    • EtherCAT
    • EtherNet/IP
    • FILE
    • zigbee
    • GPS
    • MQTT
    • OPC UA

核心服务层

核心服务层由以下微服务构成,必须在系统中安装:

服务名 英文名 描述
核心数据存储微服务 Core data 集成了数据总线,完成接收数据并进行存储的功能
基础控制微服务 Command 调配系统上下层控制
元数据存储微服务 Metadata 存储元数据,关联设备与服务
配置中心微服务 Registry and Configuration 存储微服务配置

注:配置中心微服务由 Consul 实现。

支持服务层

支持服务包括范围广泛的微服务,包括边缘分析。 正常的软件应用程序职责,如日志记录、调度和数据清理由支持服务层中的微服务执行。 支持服务层由以下微服务构成,如下服务都可以选择安装:

服务名 英文名 描述
规则引擎微服务 Rules Engine 完成部分边缘分析功能
计划微服务 Scheduling 定时触发系统内的 REST API
警报微服务 Alerts and Notifications 输出报警信息

注: 目前的规则引擎服务由 EMQ X Kuiper 实现。

应用服务层

本层中尚且没有提供成品的微服务,而是提供了 SDK。

在 SDK 中主要实现了以下功能

  • 基于 EdgeX 的消息总线触发器(支持 ZeroMQ, MQTT, Redis Streams)
  • 基于 MQTT 的触发器
  • 基于 HTTP 的触发器

安全服务

安全服务分为了以下功能

  • 密钥管理(密钥)
  • 网关
  • 用户管理
  • ACL 管理

以上功能是结合下列项目实现的:

注: 目前 KONG 项目支持 REST API 调用,Vault 有多种语言支持。

系统管理服务

系统管理服务目前有两种控制方式分别为

  • System Management Agent
    • 通过对外开放接口的形式来让中心节点操控边缘端
  • System Management Executor
    • 在集群内使用可执行文件的方式完成边缘端控制

EdgeX 平台初探
https://wangqian0306.github.io/2021/edgex/
作者
WangQian
发布于
2021年4月16日
许可协议