工业流程引擎架构
工业流程引擎的核心设计,通过四层分层架构(用户交互层、编排服务层、执行引擎层、数据持久层)实现职责分离,通过有限状态机驱动流程流转,通过可视化设计器实现零代码流程编排。
这是一个关于工业流程引擎架构的综合总结和提炼请求。整合前六部分的内容,并以“四层分层架构(用户交互层、编排服务层、执行引擎层、数据持久层)、有限状态机、可视化设计器”为核心,提供一个完整的、系统性的设计方案。
在此之前,已经提供了六个部分:
Part 1: 数据模型层 (FlowModel) - 数据持久层
Part 2: 画布渲染层 (FlowCanvas) - 用户交互层
Part 3: 流程调度层 (FlowRunner) - 编排服务层(核心调度)
Part 4: 节点业务层 (FlowNode) - 执行引擎层(部分)
Part 5: 硬件抽象层 (HAL) - 执行引擎层(基础)
Part 6: 架构协同流程 - 闭环整合
现在给出的视角是“四层分层架构(用户交互层、编排服务层、执行引擎层、数据持久层)、有限状态机、可视化设计器”,这实际上是对前面所有部分的重新组织和升华。
提供一个“终极总结”或“全景架构”文档。它需要:
系统框图(整合四层)。
软件流程图(全景)。
通俗实例(贯穿四层)。
UML建模(全景类图、状态机图)。
项目结构组织。
设计开发机理、方法、步骤、方案。
关键是把之前的6部分映射到这4层上:
用户交互层:画布渲染层 (FlowCanvas)
编排服务层:流程调度层 (FlowRunner) + 部分节点调度逻辑
执行引擎层:节点业务层 (FlowNode) + 硬件抽象层 (HAL)
数据持久层:数据模型层 (FlowModel) + 持久化存储
把“有限状态机”作为编排服务层的核心机制,把“可视化设计器”作为用户交互层的核心。
创建一个全新的、完整的、打包好的终极文档。它应该像是一份完整的架构设计说明书。
这样组织:
引言:核心设计理念
四层架构总览(系统框图)
各层详细描述(映射到之前的组件)
核心机制:有限状态机(实例级+节点级)
核心机制:可视化设计器(零代码编排)
整体软件流程(从设计到执行到反馈)
UML建模(全层级类图,状态机图)
通俗实例(贯穿全流程)
项目文件结构
开发方法论与步骤
总结
工业流程引擎架构 —— 全景总览与核心设计深度方案
一、核心设计理念与总体哲学
工业流程引擎的终极目标是实现 “工艺逻辑的软件定义” 。它将传统工业自动化中固化在PLC代码或上位机程序里的工艺流程,提升为 “可视化模型即执行体” 的先进范式。
其核心设计可概括为 “一个核心原则,四层架构,两大支柱” :
- 一个核心原则:分层解耦 —— 每一层只关心自己的职责,通过标准化接口通信,使系统具备极高的可维护性和可扩展性。
- 四层分层架构:
- 用户交互层(对应画布渲染层):面向工艺工程师,提供零代码的可视化编排能力。
- 编排服务层(对应流程调度层+部分模型层逻辑):流程的“大脑”,负责解析模型、驱动状态机、管控生命周期。
- 执行引擎层(对应节点业务层+硬件抽象层):流程的“手脚”,负责具体业务逻辑执行与硬件交互。
- 数据持久层(对应数据模型层):流程的“记忆”,负责定义存储、实例状态与历史归档。
- 两大支柱:
- 有限状态机(FSM) :驱动流程实例在“创建→运行→暂停→完成/失败”等状态间严谨流转,杜绝非法操作。
- 可视化设计器:将复杂的DAG执行图转化为拖拽式的图形化界面,实现“所见即所得”的工艺配置。
通俗类比:如果把构建一个自动化产线比作拍一部电影:
- 数据持久层 = 剧本和分镜脚本(静态文件,记录所有情节)。
- 用户交互层 = 导演的监视器与场记板(导演(工程师)在这里写写画画,安排演员走位)。
- 编排服务层 = 副导演(执行导演) ,他拿着剧本(模型),按场次顺序喊“Action”(状态机驱动),控制拍摄进度。
- 执行引擎层 = 演员和道具组,听到指令后真的去“演”(执行业务逻辑)和“布置场景”(操作硬件)。
- 闭环协同 = 每天拍完的素材回放(反馈) ,让导演确认是否需要重拍(调整流程)。
二、四层架构总体设计(系统框图)
2.1 四层全景架构图
2.2 四层职责矩阵
| 层次 | 核心组件 | 输入 | 输出 | 依赖方向 |
|---|---|---|---|---|
| 用户交互层 | 可视化设计器、监控面板、版本管理 | 工程师的拖拽/点击操作 | FlowCanvas JSON、启动指令 |
仅依赖数据持久层的读写接口 |
| 编排服务层 | DAG解析器、状态机、异步调度器 | 流程定义JSON、外部事件、管控指令 | 节点执行指令、状态变更事件 | 依赖持久层加载定义/存储实例,依赖执行层执行节点 |
| 执行引擎层 | 节点执行器、HAL适配器 | 节点执行请求、硬件状态 | 业务结果、硬件数据 | 依赖持久层存储执行记录,依赖硬件抽象接口 |
| 数据持久层 | 定义/实例/历史仓储 | CRUD请求、序列化/反序列化 | 持久化数据、缓存对象 | 独立,仅依赖数据库/文件系统 |
三、两大支柱深度解析
3.1 支柱一:有限状态机(FSM)
状态机是流程调度层的心脏,它确保了流程在任何情况下的行为都是确定且可控的。
(1) 流程实例级状态机(宏观生命周期)
(2) 节点级状态机(微观流转)
每个节点在生命周期内经历精细的子状态:
状态机设计精髓:
- 状态转换表:采用预定义的
StateTransitionTable矩阵,任何非法转换(如从COMPLETED转为RUNNING)都会被即时拒绝并抛出异常。 - 幂等性保证:状态变更结合
version乐观锁,防止并发更新导致的状态错乱。 - 持久化机制:每次状态变更同步写入数据库(实例表),确保系统崩溃后能从最近状态恢复。

234

被折叠的 条评论
为什么被折叠?



