编排驱动 SOA 是什么
编排驱动 SOA 指由中心化的流程引擎与消息总线驱动服务协作:总线负责协议转换、消息路由与格式映射,编排引擎按预定流程依次调用各服务并维护流程状态。它适合跨多个异构系统、步骤清晰且变更不频繁的业务,例如订单受理与结算串联;服务粒度通常偏粗,按业务能力划分而不是按数据表划分。
集中与轻量的取舍
集中总线的优势是治理一致:协议转换、审计与监控只需在一处实现,接入新系统的改造量小;代价是流程与总线耦合,任何业务规则调整都要改总线配置并走发布流程,团队无法独立交付,总线故障还会同时中断多条链路。常见的折中是保留总线做协议终结与安全边界,把流程编排下沉到独立流程服务,让各服务按业务域独立发布。
基本信息
| 典型组件 | 企业服务总线、服务注册、业务流程编排引擎与协议适配器 |
|---|---|
| 服务粒度 | 按业务能力划分,粒度偏粗,接口数量相对少 |
| 主要优势 | 协议转换与治理集中,异构系统接入改造量小 |
| 主要问题 | 总线承载逻辑过多,变更慢、故障影响面大 |
| 常见演化 | 总线退为协议终止层,编排逻辑下沉到流程服务 |
集中与轻量对比
| 维度 | 集中总线 | 轻量网关加消息 |
|---|---|---|
| 协议转换 | 总线统一承担 | 由边界适配层承担 |
| 流程编排 | 总线内的编排引擎 | 独立流程服务或工作流引擎 |
| 变更速度 | 改动需排期评审 | 服务可独立发布 |
| 故障影响 | 影响全局集成链路 | 收敛在单条链路 |
| 观测能力 | 依赖总线集中日志 | 各服务统一埋点观测 |
典型使用场景
- 对接大量异构遗留系统,需要统一的协议转换与接入规范
- 业务流程跨多个系统且步骤明确,例如订单受理与结算串联
- 监管要求对跨系统调用做集中审计与留痕
- 存量总线仍承载核心链路,需要规划渐进式改造路径
迁移时通常保留既有服务,把总线中的编排逻辑逐步下沉到服务与流程引擎,避免一次性替换带来的回归风险。
在总线里写业务规则会让流程与代码两处维护同一份逻辑,长期必然不一致,规则应尽量落在服务侧。