一、架构背景:典型ISA-95 IT/OT项目场景
| 层级 | 主要职责 | 当前演进形态 |
|---|---|---|
| L4 企业层(ERP / Legacy / APS / PLM / CRM 等) | 计划、调度、订单、供应链 | 仍有大量 Legacy 系统(HTTP、SOAP、文件接口) |
| L3 制造运营管理层(MOM / MES / 执行智能层) | 执行、协调、追溯、数据整合、事件驱动调度 | 不完全等同于 MES,而是一个事件驱动的分布式调度总线(MOM 层) |
| L2-L1 | 控制与过程设备层 | 通过 MQTT / OPC UA / Edge Data Hub 连接上送数据 |
二、问题和对策
传统上,L4→L3 的通信是 同步的 (SOAP、REST、DB接口),而 L3→L2 则是 实时的 。
这两种通信范式在现代智能工厂里产生"节拍不匹配"问题。Apache Camel + MQTT 的组合恰好可以起到一个"语义桥接 + 协议转译 + 异步解耦"的作用。
三、系统角色划分
1️⃣ Apache Camel ------ 企业集成层(EAI/ESB 模块)
-
用作 L4 Legacy 系统的集成中间件;
-
提供超过 300 种组件(HTTP、SOAP、JDBC、FTP、File、JMS、SAP 等);
-
能够通过路由 DSL定义复杂的业务流程、过滤规则、映射逻辑;
-
支持 内容路由(Content-Based Routing) 与 消息变换(Transformation);
-
可内嵌运行于 Spring Boot、Quarkus、Kubernetes 中。
2️⃣ MQTT Broker ------ L3 事件总线 / UNS 主干
-
作为 制造执行语义事件总线(Manufacturing Event Bus);
-
每个主题(Topic)代表一个 业务对象或事件域(如 Order、Batch、Resource、Event);
-
与 UNS(统一命名空间)结合使用,可实现 主题级语义一致性;
-
与 L2-L1 的 Edge Node 协同,实现实时状态上传与下发。
四、集成模式(核心)
模式:Apache Camel ↔ MQTT Broker ↔ L3 语义层
① Camel 路由逻辑(L4 → L3)
ERP (SOAP/XML)
↓
Camel Route
↓ 转换为 JSON + MQTT Topic
MQTT Broker (Topic: /uns/order/new)
↓
L3 MOM (订阅Topic并触发流程)
Camel DSL 示例(非代码实例):
from("sap:erp:orders?operation=GetNewOrders")
.process(exchange -> {
Map order = transformToUNSFormat(exchange.getIn().getBody());
exchange.getIn().setBody(order);
})
.to("paho-mqtt5:uns/order/new?brokerUrl=tcp://mqtt-broker:1883");
② L3 → L4 回执路径
L3 MOM 完成 → MQTT 发布 /uns/order/ack
↓
Camel Route 监听该主题
↓
写入 ERP (JDBC / SOAP / HTTP)
Camel DSL 示例(非代码实例):
from("paho-mqtt5:uns/order/ack?brokerUrl=tcp://mqtt-broker:1883")
.to("jdbc:legacyERPDataSource");
五、主题设计与 UNS 对齐
| 主题(Topic) | 说明 | 对应 UNS 实体 |
|---|---|---|
uns/order/new |
新订单发布 | Order |
uns/order/ack |
订单回执 | Event |
uns/resource/status |
设备状态上报 | Resource |
uns/batch/start |
批次开始事件 | Batch |
uns/batch/end |
批次结束事件 | Batch/Event |
每个主题的元数据(Schema、QoS、语义标签)应注册在 UNS Registry 中,
Camel 路由在启动时可自动加载这些定义以动态绑定。
六、与 S95 模型对齐的语义层逻辑
| S95 对象层级 | 在本架构中的体现 | 通信模式 |
|---|---|---|
| Enterprise / Site | ERP / APS / PLM(通过 Camel) | HTTP/SOAP → MQTT |
| Area / WorkCenter / WorkUnit | MOM / Dispatch / Recipe Service | MQTT 内部订阅 |
| Equipment / Control Module | Edge Node / PLC / Agent | MQTT / OPC UA PubSub |
七、系统优点总结
| 类别 | 优点 |
|---|---|
| 架构解耦 | L4 与 L3 通过 MQTT 异步通信,Legacy 系统无需改造 |
| 协议多样性兼容 | Camel 支持 SAP、HTTP、File、DB 等任意接口 |
| 语义统一 | 借助 UNS 命名体系保持跨系统的 Topic 与对象一致 |
| 事件驱动 | L3 层的制造执行由事件触发,天然支持扩展与分析 |
| 易于云化 | Camel、MQTT 均支持容器化与云原生部署 |
八、典型部署形态(简图)
┌────────────┐
│ Legacy ERP │
└─────┬──────┘
│ SOAP/HTTP/JDBC
┌─────▼──────┐
│ Apache Camel│
│ (EAI Bridge)│
└─────┬──────┘
│ MQTT Publish/Subscribe
┌─────▼──────┐
│ MQTT Broker │ ←→ UNS Registry
└─────┬──────┘
│
┌─────▼────────────┐
│ L3 MOM / EventBus│
│ (Dispatch, Trace,│
│ Analytics, eBR) │
└─────┬──────┬────┘
│ │
┌─────▼──┐ ┌─▼───────┐
│ Edge GW│ │ OPC UA │
│/Agent │ │PubSub L2 │
└────────┘ └──────────┘