Skip to the content.

边缘计算场景联动手册

目录

  1. 概述
  2. 系统架构
  3. 流程定义
  4. 执行管理
  5. 校验机制
  6. 回退功能
  7. 边缘适配
  8. 状态监控
  9. 典型应用场景
  10. 配置指南
  11. 故障排查
  12. 附录

概述

边缘计算场景联动是一种基于边缘计算技术的流程自动化管理系统,它允许用户定义和执行包含多个步骤的业务流程。这种系统特别适用于需要严格顺序执行、状态校验和自动回退的场景,如充电流程管理、设备启动序列、安全检查流程等。

核心特性

应用价值


系统架构

整体架构

边缘计算场景联动系统是边缘计算插件框架的重要组成部分,它与其他模块紧密集成,形成完整的边缘计算能力。

系统分层

场景联动系统遵循边缘计算插件框架的分层架构:

  1. 数据输入层:接收来自南向采集或北向订阅的数据流
  2. 数据调度层:管理流程的注册、启停和执行调度
  3. 流程执行层:执行场景联动流程的各个步骤
  4. 结果处理层:处理流程执行结果,触发相应动作
  5. 运维监控层:提供流程执行状态的监控和管理

与边缘计算框架的集成

场景联动系统与边缘计算框架的集成关系:

数据流

场景联动系统的数据流:

  1. 触发事件:通过API调用或系统事件触发流程启动
  2. 流程执行:按照定义的步骤顺序执行
  3. 数据处理:每个步骤执行相应的动作和校验
  4. 结果处理:处理执行结果,触发后续步骤或回退
  5. 状态更新:更新流程和步骤的状态
  6. 监控记录:记录执行过程和结果

流程定义

流程结构

一个完整的场景联动流程由以下部分组成:

  1. 流程基本信息
    • 流程ID:唯一标识符
    • 流程名称:流程的描述性名称
    • 流程版本:流程的版本号
    • 流程状态:启用/禁用
    • 优先级:流程执行的优先级
  2. 步骤定义
    • 步骤ID:步骤的唯一标识符
    • 步骤名称:步骤的描述性名称
    • 步骤类型:执行动作的类型
    • 触发条件:触发步骤执行的条件及表达式
    • 执行参数:执行动作所需的参数
    • 执行条件:步骤执行的前置条件
    • 校验规则:步骤执行后的成功校验规则
    • 回退操作:步骤失败时的回退操作

步骤类型

支持的步骤类型包括:

流程配置示例

充电流程示例

{
  "id": "charging_process",
  "name": "充电流程",
  "version": "1.0",
  "enabled": true,
  "priority": 1,
  "steps": [
    {
      "id": "step_a",
      "name": "检查设备状态",
      "type": "device_control",
      "params": {
        "channel_id": "ch1",
        "device_id": "charger",
        "point_id": "status",
        "value": "check"
      },
      "condition": "true",
      "validation": {
        "type": "expression",
        "rule": "status == 'ready'"
      },
      "rollback": {
        "type": "no_op"
      }
    },
    {
      "id": "step_b",
      "name": "启动充电",
      "type": "device_control",
      "params": {
        "channel_id": "ch1",
        "device_id": "charger",
        "point_id": "start",
        "value": "1"
      },
      "condition": "step_a.success",
      "validation": {
        "type": "expression",
        "rule": "charging == 'started'"
      },
      "rollback": {
        "type": "device_control",
        "params": {
          "channel_id": "ch1",
          "device_id": "charger",
          "point_id": "stop",
          "value": "1"
        }
      }
    },
    {
      "id": "step_c",
      "name": "监控充电状态",
      "type": "delay",
      "params": {
        "duration": "300s"
      },
      "condition": "step_b.success",
      "validation": {
        "type": "expression",
        "rule": "battery_level >= 95"
      },
      "rollback": {
        "type": "device_control",
        "params": {
          "channel_id": "ch1",
          "device_id": "charger",
          "point_id": "stop",
          "value": "1"
        }
      }
    },
    {
      "id": "step_d",
      "name": "停止充电并通知",
      "type": "sequence",
      "params": {
        "actions": [
          {
            "type": "device_control",
            "params": {
              "channel_id": "ch1",
              "device_id": "charger",
              "point_id": "stop",
              "value": "1"
            }
          },
          {
            "type": "notification",
            "params": {
              "message": "充电完成",
              "recipients": ["admin@example.com"]
            }
          }
        ]
      },
      "condition": "step_c.success",
      "validation": {
        "type": "expression",
        "rule": "charging == 'stopped'"
      },
      "rollback": {
        "type": "no_op"
      }
    }
  ]
}

批量控制示例

{
  "id": "batch_control_process",
  "name": "批量控制流程",
  "version": "1.0",
  "enabled": true,
  "priority": 2,
  "steps": [
    {
      "id": "step_a",
      "name": "批量控制设备",
      "type": "device_control",
      "params": {
        "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"
          }
        ]
      },
      "condition": "true",
      "validation": {
        "type": "expression",
        "rule": "all_devices_responded"
      },
      "rollback": {
        "type": "device_control",
        "params": {
          "targets": [
            {
              "channel_id": "ch1",
              "device_id": "DeviceA",
              "point_id": "p1",
              "value": "0"
            },
            {
              "channel_id": "ch1",
              "device_id": "DeviceB",
              "point_id": "p1",
              "value": "0"
            }
          ]
        }
      }
    }
  ]
}

执行管理

执行机制

场景联动流程的执行采用严格的顺序执行机制,与边缘计算框架的事件驱动模型集成:

  1. 流程启动:通过API调用或系统事件触发启动流程
  2. 步骤执行:按照定义的顺序依次执行每个步骤
  3. 条件检查:执行步骤前检查执行条件是否满足
  4. 执行动作:执行步骤定义的动作,支持设备控制、数据采集、计算操作等
  5. 结果校验:执行完成后进行成功条件校验
  6. 流程推进:校验通过后推进到下一步骤
  7. 流程完成:所有步骤执行完成后流程结束

执行状态

流程和步骤的执行状态包括:

执行控制

执行约束


校验机制

校验类型

支持多种校验类型:

  1. 表达式校验:使用表达式语言进行校验
    • 支持数学运算:+、-、*、/、%、^、()
    • 支持逻辑运算:&&、   、!、==、!=、>、<、>=、<=
    • 支持位操作:bitget、bitset、bitand、bitor
    • 支持特殊语法:v.N(1-based索引的位访问)
    • 示例:battery_level >= 95 && charging_status == 'completed'
  2. 状态校验:检查设备或系统的状态
    • 支持设备状态、服务状态、网络状态等
    • 示例:检查设备是否处于正常运行状态
  3. 时间校验:检查执行时间是否在预期范围内
    • 示例:步骤执行时间不超过30秒
  4. 数据校验:检查采集的数据是否符合要求
    • 支持范围检查、格式检查、完整性检查
    • 示例:采集的温度数据在正常范围内
  5. 自定义校验:使用自定义脚本进行校验
    • 支持JavaScript、Python等脚本语言
    • 示例:复杂的业务逻辑校验

校验配置

校验规则的配置包括:

校验执行

校验的执行流程:

  1. 执行步骤:执行步骤定义的动作
  2. 等待结果:等待动作执行完成并获取结果
  3. 执行校验:根据配置的校验规则进行校验
  4. 处理结果
    • 校验通过:流程继续执行
    • 校验失败:触发回退流程

表达式预处理


回退功能

回退机制

当流程执行过程中出现以下情况时,系统会自动启动回退流程:

回退流程

回退流程的执行步骤:

  1. 检测失败:检测到步骤执行失败或校验未通过
  2. 启动回退:启动回退流程
  3. 执行回退:按照相反的顺序执行各步骤的回退操作
  4. 验证回退:验证回退操作是否成功
  5. 恢复状态:恢复到流程启动前的初始状态

回退策略

支持多种回退策略:

  1. 完全回退:回退所有已执行的步骤
  2. 部分回退:只回退指定的步骤
  3. 自定义回退:执行自定义的回退逻辑
  4. 无回退:不执行回退操作

回退操作类型

支持的回退操作类型:

异常处理

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

  1. 单步骤异常处理
    • 单步骤异常不影响其他步骤的回退
    • 异常必须记录并可追溯
    • 支持步骤自动降级或跳过(可配置)
  2. 回退操作异常处理
    • 回退操作失败时继续执行其他回退操作
    • 回退失败必须记录并通知
    • 支持回退操作的重试机制
  3. 系统异常处理
    • 系统重启后可恢复回退状态
    • 支持断网情况下的本地回退
    • 回退状态持久化存储

边缘适配

边缘环境特点

边缘计算环境具有以下特点:

边缘优化策略

针对边缘环境的优化策略:

  1. 资源优化
    • 轻量级执行引擎,单次流程执行时间控制在合理范围内
    • 内存使用优化,减少内存占用
    • 存储使用优化,合理管理存储资源
    • CPU使用优化,避免资源争用
  2. 网络优化
    • 减少网络依赖,优先本地执行
    • 本地缓存机制,支持断网续传
    • 网络状态自适应,根据网络状况调整执行策略
    • 数据压缩传输,减少带宽使用
  3. 可靠性优化
    • 本地执行优先,减少对云端依赖
    • 故障自动恢复,确保流程可靠执行
    • 状态持久化,系统重启后可恢复运行上下文
    • 异常处理机制,确保系统稳定运行
  4. 性能优化
    • 执行计划优化,提高执行效率
    • 并行处理,充分利用多核CPU
    • 缓存策略,减少重复计算
    • 资源调度,合理分配系统资源

边缘部署模式

支持多种边缘部署模式:

  1. 单机部署:在单个边缘设备上部署
  2. 分布式部署:在多个边缘设备上分布式部署
  3. 混合部署:边缘设备与云端协同部署
  4. 容器化部署:使用Docker等容器技术部署

与边缘计算框架的集成

场景联动系统与边缘计算框架的边缘适配保持一致:

性能要求


状态监控

监控内容

提供全面的状态监控功能,与边缘计算框架的运维监控层集成:

  1. 流程状态监控
    • 流程当前状态
    • 流程执行进度
    • 流程执行时间
    • 流程执行历史
    • 流程最近一次触发时间与结果
    • 流程最近一次失败原因
  2. 步骤状态监控
    • 步骤当前状态
    • 步骤执行结果
    • 步骤执行时间
    • 步骤校验结果
    • 步骤回退操作执行情况
  3. 系统状态监控
    • 资源使用情况(CPU、内存、存储)
    • 网络连接状态
    • 服务运行状态
    • 异常情况监控
    • 系统健康状态

监控方式

支持多种监控方式:

  1. Web界面:通过Web界面查看监控信息,包括流程状态、执行历史、异常记录等
  2. API接口:通过API获取监控数据,支持第三方系统集成
  3. 日志系统:通过日志记录监控信息,支持日志过滤、搜索、导出
  4. 告警系统:通过告警系统通知异常情况,支持短信、邮件、企业微信、钉钉等

监控指标

关键监控指标包括:

历史数据

存储和管理历史数据:

运维功能

提供完整的运维功能:

  1. 流程运行状态监控:实时查看流程的运行状态
  2. 流程测试功能:手动输入测试数据,预览流程执行结果
  3. 异常与错误日志查看:查看流程执行过程中的异常和错误
  4. 流程配置导入/导出:支持流程配置的导入和导出
  5. 系统健康状态检查:检查系统的健康状态和资源使用情况

典型应用场景

1. 充电流程管理

场景描述

电动汽车充电流程的自动化管理,包括设备检查、充电启动、充电监控和充电停止等步骤。

流程定义

  1. 步骤A:检查充电桩状态
    • 执行条件:无
    • 执行动作:检查充电桩是否处于就绪状态
    • 校验规则:充电桩状态为就绪
    • 回退操作:无
  2. 步骤B:启动充电
    • 执行条件:步骤A成功
    • 执行动作:发送启动充电命令
    • 校验规则:充电状态为已启动
    • 回退操作:发送停止充电命令
  3. 步骤C:监控充电状态
    • 执行条件:步骤B成功
    • 执行动作:等待充电完成
    • 校验规则:电池电量达到95%
    • 回退操作:发送停止充电命令
  4. 步骤D:停止充电并通知
    • 执行条件:步骤C成功
    • 执行动作:发送停止充电命令并通知用户
    • 校验规则:充电状态为已停止
    • 回退操作:无

应用价值

2. 设备启动序列

场景描述

工业设备的启动序列管理,包括设备预热、参数初始化、状态检查和正式运行等步骤。

流程定义

  1. 步骤A:设备预热
    • 执行条件:无
    • 执行动作:启动设备预热程序
    • 校验规则:设备温度达到正常范围
    • 回退操作:停止设备
  2. 步骤B:参数初始化
    • 执行条件:步骤A成功
    • 执行动作:初始化设备参数
    • 校验规则:参数初始化成功
    • 回退操作:恢复默认参数
  3. 步骤C:状态检查
    • 执行条件:步骤B成功
    • 执行动作:检查设备各部件状态
    • 校验规则:所有部件状态正常
    • 回退操作:停止设备
  4. 步骤D:正式运行
    • 执行条件:步骤C成功
    • 执行动作:启动设备正式运行
    • 校验规则:设备运行状态正常
    • 回退操作:停止设备

应用价值

3. 安全检查流程

场景描述

工业场所的安全检查流程,包括环境检测、设备检查、人员检查和安全确认等步骤。

流程定义

  1. 步骤A:环境检测
    • 执行条件:无
    • 执行动作:检测环境参数(温度、湿度、气体浓度等)
    • 校验规则:环境参数在安全范围内
    • 回退操作:无
  2. 步骤B:设备检查
    • 执行条件:步骤A成功
    • 执行动作:检查设备安全状态
    • 校验规则:设备状态安全
    • 回退操作:无
  3. 步骤C:人员检查
    • 执行条件:步骤B成功
    • 执行动作:检查人员安全装备和状态
    • 校验规则:人员状态安全
    • 回退操作:无
  4. 步骤D:安全确认
    • 执行条件:步骤C成功
    • 执行动作:确认安全状态并记录
    • 校验规则:所有检查项通过
    • 回退操作:无

应用价值

4. 环境监测与联动控制

场景描述

智能建筑的环境监测与联动控制,包括温度、湿度、光照等参数的监测和空调、照明等设备的联动控制。

流程定义

  1. 步骤A:环境数据采集
    • 执行条件:无
    • 执行动作:采集温度、湿度、光照等环境参数
    • 校验规则:数据采集成功
    • 回退操作:无
  2. 步骤B:数据分析与判断
    • 执行条件:步骤A成功
    • 执行动作:分析环境数据,判断是否需要调整
    • 校验规则:分析完成
    • 回退操作:无
  3. 步骤C:设备联动控制
    • 执行条件:步骤B成功且需要调整
    • 执行动作:控制空调、照明等设备
    • 校验规则:设备控制成功
    • 回退操作:恢复设备初始状态
  4. 步骤D:状态确认
    • 执行条件:步骤C成功
    • 执行动作:确认环境参数达到预期
    • 校验规则:环境参数在合理范围内
    • 回退操作:无

应用价值

5. 设备故障检测与处理

场景描述

工业设备的故障检测与处理流程,包括设备状态监测、故障诊断、告警通知和故障处理等步骤。

流程定义

  1. 步骤A:设备状态监测
    • 执行条件:无
    • 执行动作:监测设备运行状态和关键参数
    • 校验规则:数据采集成功
    • 回退操作:无
  2. 步骤B:故障诊断
    • 执行条件:步骤A成功
    • 执行动作:分析设备状态数据,诊断是否存在故障
    • 校验规则:诊断完成
    • 回退操作:无
  3. 步骤C:告警通知
    • 执行条件:步骤B成功且发现故障
    • 执行动作:发送告警通知给相关人员
    • 校验规则:告警发送成功
    • 回退操作:无
  4. 步骤D:故障处理
    • 执行条件:步骤C成功
    • 执行动作:执行故障处理操作,如设备重启、参数调整等
    • 校验规则:故障处理成功
    • 回退操作:恢复设备初始状态

应用价值


配置指南

流程配置

1. 创建流程

  1. 访问管理界面:登录边缘网关管理界面
  2. 进入场景联动:导航到场景联动模块
  3. 点击创建流程:点击「创建流程」按钮
  4. 填写基本信息:输入流程ID、名称、版本、优先级等信息
  5. 添加步骤:点击「添加步骤」按钮,添加流程步骤
  6. 配置步骤:为每个步骤配置执行动作、条件和校验规则
  7. 保存流程:点击「保存」按钮保存流程

2. 编辑流程

  1. 选择流程:在流程列表中选择需要编辑的流程
  2. 点击编辑:点击「编辑」按钮
  3. 修改配置:修改流程的基本信息和步骤配置
  4. 保存修改:点击「保存」按钮保存修改

3. 启用/禁用流程

  1. 选择流程:在流程列表中选择需要操作的流程
  2. 点击启用/禁用:点击「启用」或「禁用」按钮
  3. 确认操作:确认操作结果

4. 导入/导出流程

  1. 导出流程:在流程列表中选择需要导出的流程,点击「导出」按钮
  2. 导入流程:点击「导入」按钮,选择流程配置文件进行导入

步骤配置

1. 设备控制步骤

2. 延迟步骤

3. 条件判断步骤

4. 数据采集步骤

5. 工作流动作步骤

校验配置

1. 表达式校验

2. 状态校验

3. 时间校验

与边缘计算框架的集成配置

场景联动系统与边缘计算框架共享以下配置:

  1. 数据源配置:复用边缘计算框架的数据源配置
  2. 输出通道配置:复用边缘计算框架的输出通道配置
  3. 告警通知配置:复用边缘计算框架的告警通知配置
  4. 状态管理配置:复用边缘计算框架的状态管理配置

故障排查

常见问题

1. 流程启动失败

问题描述:流程无法正常启动

可能原因

解决方案

2. 步骤执行失败

问题描述:流程执行过程中某个步骤失败

可能原因

解决方案

3. 校验未通过

问题描述:步骤执行完成后校验未通过

可能原因

解决方案

4. 回退失败

问题描述:流程执行失败后回退操作失败

可能原因

解决方案

5. 系统异常

问题描述:场景联动系统出现异常

可能原因

解决方案

诊断工具

1. 流程日志

2. 系统监控

3. 测试工具

4. 运维工具

异常处理最佳实践

  1. 预防措施
    • 定期备份流程配置
    • 定期检查系统资源使用情况
    • 定期检查设备连接状态
    • 定期测试流程执行
  2. 应急处理
    • 建立异常处理预案
    • 明确异常处理流程和责任人
    • 建立告警通知机制
    • 定期演练异常处理流程
  3. 事后分析
    • 记录异常发生的时间、原因和处理过程
    • 分析异常发生的根本原因
    • 制定改进措施,防止类似异常再次发生
    • 更新故障排查文档

附录

配置示例

完整流程配置示例

{
  "id": "industrial_startup",
  "name": "工业设备启动流程",
  "version": "1.0",
  "enabled": true,
  "priority": 1,
  "steps": [
    {
      "id": "preheat",
      "name": "设备预热",
      "type": "device_control",
      "params": {
        "channel_id": "ch1",
        "device_id": "industrial_oven",
        "point_id": "preheat",
        "value": "1"
      },
      "condition": "true",
      "validation": {
        "type": "expression",
        "rule": "temperature >= 200 && temperature <= 220"
      },
      "rollback": {
        "type": "device_control",
        "params": {
          "channel_id": "ch1",
          "device_id": "industrial_oven",
          "point_id": "stop",
          "value": "1"
        }
      }
    },
    {
      "id": "initialize",
      "name": "参数初始化",
      "type": "device_control",
      "params": {
        "channel_id": "ch1",
        "device_id": "industrial_oven",
        "point_id": "initialize",
        "value": "1"
      },
      "condition": "preheat.success",
      "validation": {
        "type": "expression",
        "rule": "status == 'initialized'"
      },
      "rollback": {
        "type": "device_control",
        "params": {
          "channel_id": "ch1",
          "device_id": "industrial_oven",
          "point_id": "reset",
          "value": "1"
        }
      }
    },
    {
      "id": "check",
      "name": "状态检查",
      "type": "device_control",
      "params": {
        "channel_id": "ch1",
        "device_id": "industrial_oven",
        "point_id": "check",
        "value": "1"
      },
      "condition": "initialize.success",
      "validation": {
        "type": "expression",
        "rule": "all_systems == 'ok'"
      },
      "rollback": {
        "type": "device_control",
        "params": {
          "channel_id": "ch1",
          "device_id": "industrial_oven",
          "point_id": "stop",
          "value": "1"
        }
      }
    },
    {
      "id": "start",
      "name": "正式运行",
      "type": "sequence",
      "params": {
        "actions": [
          {
            "type": "device_control",
            "params": {
              "channel_id": "ch1",
              "device_id": "industrial_oven",
              "point_id": "start",
              "value": "1"
            }
          },
          {
            "type": "notification",
            "params": {
              "message": "设备启动成功",
              "recipients": ["admin@example.com"]
            }
          }
        ]
      },
      "condition": "check.success",
      "validation": {
        "type": "expression",
        "rule": "running == 'true'"
      },
      "rollback": {
        "type": "device_control",
        "params": {
          "channel_id": "ch1",
          "device_id": "industrial_oven",
          "point_id": "stop",
          "value": "1"
        }
      }
    }
  ]
}

表达式语法

支持的运算符

支持的函数

表达式示例

最佳实践

  1. 流程设计
    • 保持流程简洁明了,避免过于复杂的流程
    • 合理划分步骤,每个步骤职责单一
    • 为每个步骤设置明确的执行条件和校验规则
    • 为关键步骤配置回退操作,确保系统稳定性
    • 充分利用工作流动作,如序列执行、延迟和条件检查
  2. 性能优化
    • 减少步骤数量,优化执行顺序
    • 使用批量控制功能,减少设备控制次数
    • 合理设置超时时间,避免无限等待
    • 优化表达式计算,避免复杂的计算逻辑
    • 充分利用边缘计算框架的缓存机制
  3. 可靠性设计
    • 增加冗余步骤,提高系统可靠性
    • 设置适当的重试机制,处理临时故障
    • 配置合理的回退策略,确保系统在故障时能够恢复
    • 定期备份流程配置,防止配置丢失
    • 利用状态持久化,确保系统重启后能够恢复运行状态
  4. 安全设计
    • 限制流程的执行权限,防止未授权操作
    • 加密敏感参数,保护敏感信息
    • 记录详细的执行日志,便于审计和故障排查
    • 定期审计流程执行情况,发现潜在安全问题
    • 遵循最小权限原则,只授予必要的权限
  5. 边缘环境适配
    • 优化流程执行时间,适应边缘设备资源限制
    • 减少网络依赖,优先本地执行
    • 支持断网情况下的本地运行
    • 合理管理内存和存储使用,避免资源耗尽
    • 适应边缘环境的温度、湿度等恶劣条件

与边缘计算框架的集成最佳实践

  1. 数据源管理
    • 复用边缘计算框架的数据源配置
    • 合理设置数据采集频率,平衡实时性和资源消耗
    • 利用数据质量策略,过滤异常数据
  2. 规则引擎集成
    • 利用边缘计算框架的规则执行能力
    • 合理设置规则优先级,确保关键流程优先执行
    • 利用规则热更新能力,无需重启系统即可更新流程
  3. 状态管理
    • 利用边缘计算框架的状态管理子系统
    • 合理设置状态持久化策略,确保状态可靠存储
    • 利用状态恢复能力,确保系统重启后能够恢复运行状态
  4. 监控与运维
    • 接入边缘计算框架的运维监控层
    • 利用监控指标,及时发现系统异常
    • 利用日志系统,详细记录流程执行过程
    • 利用告警系统,及时通知异常情况