如何在ISA-95系统中采用Apache Camel + MQTT Broker衔接L3与L4 Legacy应用

一、架构背景:典型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 │
          └────────┘ └──────────┘
相关推荐
星野云联AIoT技术洞察1 天前
OPC UA、MQTT、Modbus 应该如何分层:工业 IoT 接入架构新思路
mqtt·modbus·opc ua·边缘网关·设备接入·协议分层·工业iot
EMQX1 天前
S3 正在吞噬一切:AI 时代的基础软件架构革命
人工智能·物联网·mqtt·flowmq
不懂的浪漫1 天前
mqtt-plus 架构解析(一):分层架构与设计哲学
spring boot·分布式·物联网·mqtt·架构
Z文的博客1 天前
嵌入式 ARM 设备交叉编译 mosquitto 2.0.20 (完整 TLS 支持) 详细教程 TRAE全程辅助,没敲一行代码
qt·mqtt·嵌入式·ai编程·mosquitto·嵌入式linux·trae
芯智工坊3 天前
第13章 Mosquitto监控与日志管理
前端·网络·人工智能·mqtt·开源
芯智工坊4 天前
第10章 Mosquitto桥接模式
网络·数据库·人工智能·mqtt·开源·桥接模式
芯智工坊4 天前
第12章 Mosquitto插件与扩展机制
mqtt·网络协议·开源
芯智工坊6 天前
第8章 Mosquitto消息高级特性
网络·人工智能·mqtt·开源·ssl
Zevalin爱灰灰6 天前
基于STM32实现OTA&BootLoader 第五章——OTA功能开发【下】
stm32·单片机·物联网·mqtt·嵌入式·esp8266
芯智工坊7 天前
第3章 MQTT核心概念详解
人工智能·mqtt·开源