代码改变世界

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

2025-11-18 21:07  tlnshuju  阅读(0)  评论(0)    收藏  举报

一、架构背景:典型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 / SiteERP / APS / PLM(通过 Camel)HTTP/SOAP → MQTT
Area / WorkCenter / WorkUnitMOM / Dispatch / Recipe ServiceMQTT 内部订阅
Equipment / Control ModuleEdge Node / PLC / AgentMQTT / 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 │
          └────────┘ └──────────┘