Skip to the content.

layout: default title: 边缘计算基础功能 description: EdgeX 边缘计算基础功能 —

边缘计算插件方案设计文档(基础功能)

第一阶段:基础框架设计(数据流闭环 + 规则执行骨架)

一、阶段目标

第一阶段的核心目标是构建一个可稳定运行、结构清晰、易扩展的边缘计算基础框架,实现以下能力:

  1. 建立标准化的数据流通道(采集 → 处理 → 输出)
  2. 实现基础规则执行引擎(事件驱动)
  3. 支持多规则并行处理同一数据源(非共享源模式)
  4. 打通南向采集与北向输出的标准接口
  5. 形成完整的运行闭环和可观测能力

该阶段不追求高复杂度计算或极致性能优化,而是为后续共享源、窗口计算、高级分析能力奠定稳定、清晰、可维护的架构基础。


二、总体架构设计

第一阶段采用事件驱动型数据流处理模型,整体架构分为五个核心层次:

  1. 数据输入层(Input Layer)
  2. 数据调度层(Dispatch Layer)
  3. 规则执行层(Rule Execution Layer)
  4. 结果处理层(Result Handling Layer)
  5. 运维监控层(Observability Layer)

逻辑链路如下:

南向采集模块 → 数据输入适配器 → 规则调度引擎 → 规则执行单元 → 结果处理器 → 北向输出模块 / 本地动作模块

该结构确保系统满足:


三、核心功能模块设计

3.1 数据输入层(Input Layer)

职责定位:

功能要求:

  1. 支持多协议采集适配(Modbus、BACnet、OPC UA、MQTT 等)
  2. 统一数据格式抽象,包含:

    • 数据源标识(SourceID)
    • 指标名称(Metric)
    • 数据值(Value)
    • 时间戳(Timestamp)
    • 质量标识(Quality,可选)
  3. 支持数据合法性校验:

    • 时间戳合理性检查
    • 数据类型校验
    • 质量标志过滤(如通信异常、校验失败)

设计约束:


3.2 数据调度层(Dispatch Layer)

职责定位:

功能要求:

  1. 规则注册与注销机制
  2. 支持规则启用/禁用(不删除规则配置)
  3. 支持运行时规则热更新(不中断系统运行)
  4. 支持规则执行顺序控制(基础优先级)

调度模型:

设计原则:


3.3 规则执行层(Rule Execution Layer)

职责定位:

规则类型(第一阶段支持):

  1. 条件判断规则

    • 阈值告警:>、<、≥、≤
    • 状态切换:如 OFF → ON、0 → 1
    • 变化幅度判断:Δ值超限
  2. 简单计算规则

    • 数值变换(线性缩放、单位换算)
    • 数据映射(枚举值转换)
    • 固定公式计算
  3. 状态判断规则

    • 状态保持时间判断(持续超限 N 秒)
    • 去抖处理(抑制短时波动)

规则生命周期:

规则执行约束:


3.4 结果处理层(Result Handling Layer)

职责定位:

支持的输出动作类型:

  1. 北向上报

    • MQTT 发布
    • HTTP 推送
    • WebSocket 推送
  2. 本地动作

    • 本地日志记录
    • 本地数据库存储
    • 文件缓存(支持断网续传)
  3. 控制指令

    • 下发控制命令到设备(如 Modbus 写、BACnet 控制)
    • 联动其他子系统(如空调、照明、门禁)
  4. 告警通知

    • UI 界面提示
    • 短信 / 邮件 / 企业微信 / 钉钉

设计原则:


3.5 运维与监控层(Observability Layer)

职责定位:

基础监控指标:

基础运维功能:


四、配置模型设计(第一阶段)

4.1 数据源配置模型

4.2 规则配置模型

4.3 输出动作配置模型


五、第一阶段交付成果标准

系统需达到以下状态才可视为阶段完成:

  1. 能稳定接入南向采集数据
  2. 能成功配置并执行至少三类规则
  3. 能输出结果到至少两种不同通道
  4. 支持规则热启停与动态更新
  5. 具备基本运行监控与日志能力


第二阶段:时间窗口与状态管理设计(流处理能力增强)

一、阶段目标

第二阶段在第一阶段基础上,引入时间维度、状态缓存与统计计算能力,实现以下能力:

  1. 支持基于时间窗口的统计计算(平均值、最大值、最小值、变化率等)
  2. 支持规则级状态管理与历史上下文存储
  3. 支持复杂条件组合(时间 + 值 + 状态)
  4. 提升边缘计算的业务表达能力,满足实际工业场景需求
  5. 为第三阶段共享源机制与并发优化提供基础设施

二、总体能力扩展结构

第二阶段引入两个核心增强模块:

  1. 窗口管理子系统(Window Management Subsystem)
  2. 规则状态管理子系统(Rule State Management Subsystem)

逻辑结构如下:

数据输入 → 数据调度 → 窗口缓存 → 状态更新 → 规则计算 → 结果输出

窗口与状态将成为规则执行的一等公民,不再是规则内部临时变量,而是系统级可管理对象。


三、窗口管理子系统设计

3.1 窗口类型支持

系统需支持以下标准窗口模型:

  1. 滑动窗口(Sliding Window)

    • 固定大小窗口,随时间滚动更新
    • 适用于平均值、平滑滤波、短期趋势分析
  2. 跳跃窗口(Tumbling Window)

    • 固定时间段内聚合计算
    • 适用于定时报表、批量统计
  3. 会话窗口(Session Window,第二阶段可选支持)

    • 根据事件间隔动态分组
    • 适用于行为模式分析

第二阶段至少必须支持:滑动窗口 + 跳跃窗口。


3.2 窗口参数模型

每个窗口实例必须具备以下参数:


3.3 窗口生命周期管理

窗口对象的生命周期由规则生命周期驱动:

  1. 规则创建 → 窗口实例创建
  2. 规则启用 → 窗口开始接收数据
  3. 规则停用 → 窗口暂停接收数据
  4. 规则删除 → 窗口实例释放资源

系统必须支持:


3.4 窗口数据一致性与完整性

系统需保证:

  1. 窗口数据顺序一致性(按时间戳排序)
  2. 窗口数据完整性(不遗漏、不重复)
  3. 窗口计算确定性(相同输入必然得到相同输出)

在数据乱序、延迟、抖动场景下,应提供以下机制:


四、规则状态管理子系统设计

4.1 规则状态模型

每条规则必须具备独立、持久的运行状态对象,包括但不限于:

这些状态必须在规则执行过程中持续更新,并可被外部监控系统读取。


4.2 状态持久化策略

系统应支持多级状态存储:

  1. 内存态(实时运行态)
  2. 本地持久态(文件 / 嵌入式数据库)
  3. 可选远程态(云端同步,后续阶段扩展)

在系统重启、崩溃恢复后,应尽可能恢复规则的运行上下文,避免丢失关键业务状态。


4.3 状态驱动规则逻辑

第二阶段规则逻辑必须支持基于历史状态进行判断,例如:

规则表达能力必须支持:


五、增强规则类型设计(第二阶段)

第二阶段在第一阶段基础上,新增以下规则类型:

  1. 窗口统计规则

    • 滑动平均告警
    • 最大值 / 最小值告警
    • 波动率检测
    • 变化趋势判断
  2. 持续状态规则

    • 持续超限 N 秒
    • 持续异常 K 次
    • 状态稳定性检测
  3. 变化率规则

    • 突变检测(Δ值超过阈值)
    • 上升/下降速率检测
  4. 组合规则

    • 多条件 AND / OR 组合
    • 跨时间段对比规则(如当前窗口 vs 前一窗口)

六、执行模型与性能设计

6.1 执行时序模型

数据处理顺序应为:

  1. 数据进入系统
  2. 写入对应窗口缓存
  3. 更新规则状态
  4. 执行规则逻辑判断
  5. 生成规则结果
  6. 触发输出动作

该顺序必须保证:


6.2 性能与资源约束

第二阶段引入窗口与状态管理后,系统需满足:


七、异常处理与健壮性设计(第二阶段)

系统需具备以下异常处理能力:

  1. 窗口数据异常处理

    • 窗口溢出保护
    • 数据格式错误过滤
    • 时间戳异常修正或丢弃
  2. 状态异常处理

    • 状态对象损坏恢复机制
    • 状态持久化失败重试
    • 状态与规则不一致修复机制
  3. 规则执行异常处理

    • 单规则异常不得影响其他规则执行
    • 异常必须记录并可追溯
    • 支持规则自动降级或自动禁用策略(可配置)

八、配置模型扩展(第二阶段)

8.1 窗口配置模型扩展字段

8.2 状态管理配置字段

8.3 规则表达式增强字段


九、第二阶段交付成果标准

系统需达到以下标准:

  1. 支持至少两种窗口模型(滑动 + 跳跃)
  2. 支持窗口统计类规则稳定运行
  3. 支持状态驱动规则(持续时间、连续次数)
  4. 系统重启后可恢复规则状态
  5. 窗口与状态资源使用可监控、可限制
  6. 在高频数据流下,系统稳定运行无明显性能退化