边缘计算插件方案 PRD / 产品设计说明书
(基础规则引擎 + 时间窗口 + 状态管理 一体化版本)
一、文档信息
| 项目 | 内容 |
|---|---|
| 产品名称 | 边缘计算插件系统(Edge Plugin Framework) |
| 文档类型 | PRD / 系统设计说明 |
| 适用阶段 | 第一 + 第二阶段合并版 |
| 目标用户 | 边缘网关运维人员、系统集成工程师、平台运维人员 |
| 文档版本 | V1.0 |
| 编写日期 | 2026-03-27 |
二、产品背景与目标
2.1 背景
在边缘侧设备数量快速增长、协议多样化、业务规则不断变化的背景下,传统“采集-上报”模式已无法满足:
- 本地实时告警与联动控制需求;
- 边缘侧减负、带宽节省需求;
- 业务规则快速配置与变更需求;
- 多项目、多场景的可复用能力需求。
因此需要构建一个插件化、规则驱动、可扩展、可观测的边缘计算能力平台,使边缘节点具备独立决策与分析能力。
2.2 产品目标
本系统目标是构建一个:
- 结构清晰、稳定可靠的边缘规则执行框架
-
支持:
- 实时事件处理
- 时间窗口计算
- 规则状态管理
- 位操作与表达式计算
-
实现完整数据闭环:
南向采集 / 北向订阅 → 输入适配 → 调度引擎 → 规则执行 → 结果处理 → 北向输出 / 本地控制
-
提供:
- 可配置规则
- 可视化运维界面
- 可观测运行状态
- 可扩展插件架构
三、总体架构与数据流
3.1 数据流向
系统数据流标准路径如下:
南向采集模块(映射内部影子设备 ) / 北向订阅 → 输入适配器 → 数据管道 → 边缘计算管理器 → 规则执行单元 → 结果处理器 → 北向输出 / 本地动作(南向控制设备)
3.2 系统分层架构
系统采用事件驱动型数据流处理模型,整体架构划分为五个核心层次:
- 数据输入层(Input Layer)
- 数据调度层(Dispatch Layer)- 包含数据管道(DataPipeline)
- 规则执行层(Rule Execution Layer)- 包含边缘计算管理器(EdgeComputeManager)
- 结果处理层(Result Handling Layer)
- 运维监控层(Observability Layer)
各层职责清晰、解耦明确、支持插件化扩展。
四、核心功能模块设计
4.1 数据输入层(Input Layer)
职责
- 接收来自南向采集系统或北向订阅系统的实时数据流;
- 将原始数据转换为统一标准数据结构;
- 负责数据的基础校验与清洗。
功能要求
-
支持多协议接入:
- Modbus、BACnet、OPC UA、MQTT、HTTP、S7 等;
-
统一数据结构抽象:
- SourceID(数据源ID)
- Metric(指标名称)
- Value(数据值)
- Timestamp(时间戳)
- Quality(质量标识,可选)
-
数据校验能力:
- 时间戳合理性检查;
- 数据类型校验;
- 异常质量标识过滤(通信异常、CRC错误等)。
设计约束
- 输入层不承担业务计算逻辑;
- 不进行长期数据缓存;
- 必须保证输出数据结构一致性。
4.2 数据调度层(Dispatch Layer)
职责
- 接收标准化数据事件;
- 根据规则订阅关系,将数据分发给对应规则;
- 管理规则注册、启停、卸载生命周期。
功能要求
- 规则注册与注销;
- 支持规则启用 / 停用(不删除配置);
- 支持运行时规则热更新(不中断系统运行);
- 支持规则执行优先级控制;
- 数据管道缓冲与并发处理。
调度模型
- 每条输入数据事件会广播给所有启用规则;
- 每条规则独立处理数据,不共享运行上下文(共享源机制留作后续阶段)。
4.3 规则执行层(Rule Execution Layer)
职责
- 承载具体业务逻辑计算;
- 基于事件驱动方式执行规则;
- 输出规则结果(匹配事件、计算值、状态变化等)。
支持规则类型(合并版)
(一)基础规则
-
条件判断规则:
- 阈值告警(>、<、≥、≤)
- 状态切换(OFF → ON,0 → 1)
- 变化幅度判断(Δ值超限)
-
简单计算规则:
- 单位换算、线性变换
- 枚举值映射
- 固定公式计算
-
状态判断规则:
- 去抖处理(防抖动)
- 状态保持时间判断
(二)窗口统计规则
-
滑动窗口统计:
- 滑动平均、最大值、最小值、变化率
-
跳跃窗口统计:
- 定期聚合统计、批量报表
-
跨窗口对比规则:
- 当前窗口 vs 上一窗口对比
(三)状态驱动规则
-
持续状态规则:
- 持续超限 N 秒后告警;
- 连续异常 K 次后告警;
-
状态变化规则:
- 状态从异常恢复到正常时触发;
- 状态变化才触发动作(防止重复告警);
-
有限状态机规则:
- 支持 NORMAL → WARNING → ALARM → RECOVER 转移模型。
规则生命周期
- 创建 → 校验 → 启用 → 执行 → 停用 → 删除
执行约束
- 单次规则执行时间可控(建议 < 20ms);
- 不允许阻塞主数据通道;
- 不允许直接操作外部系统,必须通过结果处理层。
4.4 结果处理层(Result Handling Layer)
职责
- 接收规则执行结果;
- 根据规则配置触发相应动作;
- 解耦规则逻辑与外部系统调用。
支持的输出动作类型
1. 北向上报
- MQTT 发布;
- HTTP 推送;
- WebSocket 推送;
- 数据入云平台接口。
2. 本地动作
- 本地日志记录;
- 本地数据库存储;
- 文件缓存(支持断网续传)。
3. 控制指令
-
下发控制命令到设备:
- Modbus 写寄存器;
- BACnet 写属性;
-
联动本地系统(空调、照明、门禁等)。
4. 告警通知
- UI 界面告警提示;
- 短信 / 邮件 / 企业微信 / 钉钉。
5. 工作流动作
- 序列执行(sequence):按顺序执行多个动作
- 延迟(delay):延迟指定时间执行
- 条件检查(check):根据条件决定是否继续执行
设计原则
- 所有输出动作均需配置化;
- 同一规则可绑定多个输出动作;
- 输出失败必须支持重试或失败记录;
- 支持批量控制多个设备。
4.5 运维与监控层(Observability Layer)
职责
- 提供系统运行状态可视化;
- 支持调试、诊断、审计与性能分析。
基础监控指标
- 数据输入吞吐量;
- 规则执行次数;
- 规则执行耗时分布;
- 告警触发频率;
- 输出成功率 / 失败率;
- 窗口缓存使用率;
- 状态存储容量与命中率。
运维功能
- 规则运行状态监控;
- 规则最近一次触发时间与结果;
- 最近一次失败原因;
- 系统健康状态与资源使用情况;
- 规则执行记录(BBLOT)。
五、时间窗口与状态管理设计(合并能力)
5.1 窗口管理子系统
支持窗口类型
- 滑动窗口(Sliding Window)
- 跳跃窗口(Tumbling Window)
窗口参数模型
- 窗口ID;
- 窗口类型;
- 绑定规则ID;
- 绑定数据源ID;
- 窗口大小(时间 / 条数);
- 滑动步长;
- 最大延迟容忍时间;
- 数据过期策略;
- 内存上限。
窗口生命周期管理
- 规则创建 → 窗口创建;
- 规则启用 → 窗口激活;
- 规则停用 → 窗口暂停;
- 规则删除 → 窗口销毁。
支持窗口配置变更时平滑过渡与资源释放。
5.2 规则状态管理子系统
规则状态模型
每条规则维护独立状态对象,包括:
- 最近一次触发时间;
- 最近一次触发值;
- 当前状态值(NORMAL / WARNING / ALARM / RECOVER);
- 持续时间计数器;
- 连续异常计数器;
- 触发次数统计;
- 最近一次错误信息。
状态持久化策略
- 内存态(实时运行);
- 本地持久态(文件 / 嵌入式数据库);
- 系统重启后可恢复运行上下文。
状态驱动规则逻辑支持
- 持续时间条件;
- 连续次数条件;
- 状态变化触发条件;
- 状态转移模型(有限状态机)。
六、配置模型设计
6.1 数据源配置模型
- 数据源ID;
- 数据源类型(南向采集 / 北向订阅);
- 协议类型;
- 连接参数;
- 数据点映射关系;
- 采集频率;
- 数据质量策略。
6.2 规则配置模型
- 规则ID;
- 规则名称;
- 规则类型(基础 / 窗口 / 状态 / 组合);
- 绑定数据源;
- 条件表达式 / 计算表达式;
- 窗口配置(如适用);
- 状态条件配置;
- 输出动作列表;
- 启用状态;
- 优先级。
6.3 输出动作配置模型
- 动作类型(device_control / log / sequence / delay / check);
- 目标地址或通道;
- 数据格式;
- 重试策略;
- 失败处理策略;
- 频率限制(interval)。
七、表达式与位操作支持
7.1 表达式语法
- 支持标准数学运算:+、-、*、/、%、^、()
-
支持逻辑运算:&&、 、!、==、!=、>、<、>=、<= - 支持位操作函数:bitget、bitset、bitand、bitor
- 支持特殊语法:v.N(1-based索引的位访问)
7.2 位操作功能
- bitget(value, bitIndex):获取指定位的值
- bitset(value, bitIndex, bitValue):设置指定位的值
- bitand(value1, value2):位与操作
- bitor(value1, value2):位或操作
7.3 表达式预处理
- 支持 v.N 语法转换为 bitget(v, N-1)
- 支持 v.bit.N 语法转换为 bitget(v, N-1)
八、批量控制功能
8.1 功能描述
- 支持在单个动作中控制多个设备
- 每个目标设备可配置独立的表达式
- 支持批量位操作和计算
8.2 配置示例
{
"type": "device_control",
"config": {
"targets": [
{
"channel_id": "ch1",
"device_id": "DeviceA",
"point_id": "p1",
"expression": "v.1"
},
{
"channel_id": "ch1",
"device_id": "DeviceB",
"point_id": "p1",
"expression": "v.4"
}
]
}
}
九、异常处理与健壮性设计
系统必须具备以下能力:
-
窗口异常处理:
- 缓存溢出保护;
- 数据格式错误过滤;
- 时间戳异常修正或丢弃;
-
状态异常处理:
- 状态对象损坏恢复机制;
- 状态持久化失败重试;
- 状态与规则配置不一致修复;
-
规则执行异常处理:
- 单规则异常不得影响其他规则;
- 异常必须记录并可追溯;
- 支持规则自动降级或自动禁用(可配置)。
-
表达式异常处理:
- 表达式语法错误降级到静态值;
- 运行时错误捕获与记录;
十、前端页面功能设计(管理控制台)
本系统需提供完整的可视化管理界面,支持配置、监控、调试与运维。 需要增加的页面如下:
10.1 系统总览页(Dashboard)
功能
-
系统运行状态概览:
- 当前在线数据源数;
- 启用规则数;
- 当前告警数;
- 数据输入吞吐量;
- 输出成功率;
- 规则执行趋势图;
- 告警趋势图;
- 系统资源使用情况(CPU / 内存 / 窗口缓存 / 状态存储)。
10.2 数据源管理页面
功能
-
数据源列表展示:
- 数据源ID、类型、协议、状态;
- 数据源新增 / 编辑 / 删除;
- 数据点映射配置;
- 采集频率配置;
- 数据质量策略配置;
- 实时数据预览;
- 数据源连接测试与状态检测。
10.3 规则管理页面
功能
-
规则列表:
- 规则名称、类型、状态、绑定数据源、最近触发时间;
-
规则创建向导:
- 选择数据源;
- 选择规则类型;
- 配置条件表达式 / 窗口参数 / 状态条件;
- 配置输出动作;
- 规则启用 / 停用 / 删除;
- 规则优先级调整;
- 规则配置导入 / 导出。
10.4 规则运行状态与调试页面
功能
-
单规则运行状态详情:
- 当前状态值;
- 最近一次触发值与时间;
- 连续异常次数;
- 持续时间计数;
-
规则执行历史记录:
- 时间、输入值、计算结果、输出动作结果;
-
规则测试功能:
- 手动输入测试数据;
- 模拟窗口数据;
- 预览规则执行结果;
-
规则异常与错误日志查看。
10.5 窗口管理页面
功能
-
窗口实例列表:
- 绑定规则、窗口类型、窗口大小、缓存使用率;
- 窗口参数配置查看与编辑;
- 窗口数据实时预览;
- 窗口内数据统计视图(均值、最大、最小等);
- 窗口资源占用告警配置。
10.6 状态管理页面
功能
-
规则状态列表:
- 当前状态、持续时间、触发次数;
- 状态历史记录查询;
- 状态持久化策略配置;
- 状态恢复测试;
- 状态异常修复操作。
10.7 输出动作与通道管理页面
功能
- 输出通道配置(MQTT、HTTP、数据库等);
- 输出动作模板管理;
- 输出动作绑定规则配置;
- 输出失败记录查看;
- 输出重试策略配置;
- 输出通道连通性测试。
10.8 告警中心页面
功能
- 当前告警列表;
- 告警历史记录;
- 告警级别分类与过滤;
- 告警确认 / 清除;
- 告警通知策略配置(短信、邮件、IM 等)。
10.9 日志与审计页面
功能
- 系统运行日志;
- 规则执行日志;
- 输出动作日志;
- 操作审计日志(配置变更、规则启停、数据源修改等);
- 日志过滤、搜索、导出。
10.10 系统设置页面
功能
- 全局系统参数配置;
- 默认窗口参数模板;
- 默认规则模板;
- 数据保留策略;
- 备份与恢复配置;
- 系统升级与插件管理。
十一、非功能性需求
11.1 性能要求
- 单规则执行时间建议 < 20ms;
- 窗口缓存读写延迟 < 5ms;
- 状态读写延迟 < 5ms;
- 支持高频数据流下稳定运行。
11.2 可扩展性要求
- 支持新增协议插件;
- 支持新增规则类型插件;
- 支持新增输出通道插件;
- 支持后续引入共享源、并行调度、分布式执行能力。
11.3 可靠性要求
- 系统异常不影响整体运行;
- 单规则异常不影响其他规则;
- 支持系统重启后状态恢复;
- 支持断网续传与本地缓存。
十二、交付成果标准
系统达到以下条件即视为合格交付:
- 支持标准数据流闭环(采集 → 规则 → 输出 / 控制);
- 支持基础规则、窗口规则、状态规则三大类;
- 支持规则热启停与动态更新;
- 支持窗口与状态可视化管理;
- 支持至少两种输出通道与一种控制动作;
- 支持系统运行监控与规则执行可观测;
- 支持位操作与表达式计算;
- 支持批量控制功能;
- 支持工作流动作(序列、延迟、条件检查);
- 系统稳定运行无明显性能退化。