SOA 与中间件
SOA 必考核心,中间件分类年年涉及。务必背:Web Service 3 协议、ESB、中间件 5 大类
一、SOA 概述
SOA(Service-Oriented Architecture) 是一种以"服务"为基本单元的软件架构,把企业能力封装为粗粒度、可复用、标准化接口的服务,通过 ESB(企业服务总线) 集成与编排。
核心思想 / 4 个特征
- 松耦合:服务间通过标准接口通信
- 可复用:服务可被多个业务调用
- 可组合:通过编排形成业务流程
- 标准化:接口、协议、注册中心标准化
二、Web Service 三大协议 ⭐⭐⭐
| 协议 | 全称 | 角色 |
|---|---|---|
| SOAP | Simple Object Access Protocol | 消息格式,基于 XML,可走 HTTP/SMTP |
| WSDL | Web Services Description Language | 接口描述,定义服务能力 |
| UDDI | Universal Description Discovery Integration | 服务注册与发现,黄页 |
记忆:SOAP 传消息 · WSDL 描述 · UDDI 找服务 → "传·述·找"
三、ESB 企业服务总线 ⭐⭐⭐
ESB 是 SOA 的核心中介,提供 服务集成 + 协议转换 + 消息路由 等能力。
6 大核心功能
- 消息路由:基于内容、规则的消息分发
- 协议转换:HTTP ↔ JMS ↔ FTP 等
- 数据格式转换:XML ↔ JSON ↔ 其他
- 消息增强 / 编排:聚合、过滤、补充字段
- 服务管理:注册、发现、负载均衡、监控
- 安全 / 事务支持
SOA vs 微服务 关键差异
SOA:集中式 ESB,通信经过总线;粗粒度;企业级
微服务:去中心化(API 网关 + 服务注册),细粒度,智能终端"哑管道"
四、中间件 5 大分类 ⭐⭐⭐
案例分析考过多次,务必背全:
| 类别 | 作用 | 典型产品 |
|---|---|---|
| 数据库访问中间件 | 统一访问异构数据源 | ODBC、JDBC、Hibernate |
| 远程过程调用中间件 | 跨进程/网络调用 | RPC、gRPC、Dubbo |
| 面向消息中间件 (MOM) | 异步消息、削峰、解耦 | Kafka、RabbitMQ、RocketMQ、ActiveMQ |
| 分布式对象中间件 | 对象远程访问 | CORBA、EJB、DCOM |
| 事务处理中间件 | 跨系统事务管理 | Tuxedo、CICS、JTA |
口诀:"库·调·消·对·事"5 类
补充:其它常见中间件
Web 服务器中间件(Tomcat、Nginx);缓存中间件(Redis);搜索中间件(Elasticsearch);API 网关(Kong)。
五、企业应用集成(EAI)4 个层次
- 表示集成 / 界面集成:把多个应用界面整合到统一门户
- 数据集成:统一数据,如 ETL、数据仓库
- 控制集成 / 应用集成:在业务逻辑层集成,API 互通
- 业务流程集成:跨系统编排业务流程,如 BPEL/BPM
口诀:"表·数·控·业"由浅入深
六、典型 SOA 实现技术
- Web Service:SOAP + WSDL + UDDI,XML 重型
- REST:轻量级 SOA 替代方案
- SCA(Service Component Architecture):服务组件架构
- SDO(Service Data Object):统一数据访问
- BPEL:业务流程编排语言
- ESB:企业服务总线
七、答题模板
题型:为什么要采用 SOA?
- 松耦合:降低系统间依赖
- 复用:核心业务封装为服务,跨系统调用
- 跨技术栈集成:打通异构遗留系统
- 业务敏捷:通过编排快速组装新业务
- 统一治理:ESB 集中管理 + 安全 + 监控
题型:中间件解决了什么问题?
"中间件位于操作系统与应用之间,屏蔽底层异构,提供 统一编程接口,简化分布式应用开发。它提升了 互操作性、可移植性、可扩展性、可维护性。"
✅ 自测
1. Web Service 三大协议各自作用?
2. ESB 至少 4 个核心功能?
3. 中间件 5 大分类?
4. SOA 与微服务的 3 大区别?
📗 高频专题 · SOA 与中间件 完