第15章 面向服务架构
核心知识点
1. SOA 定义(两种视角)
- 应用角度:一种应用框架,将业务划分为单独的服务,构建、部署和整合服务无需依赖应用程序和平台
- 软件原理角度:一个组件模型,通过定义良好的接口和契约联系不同功能单元,接口独立于硬件平台、操作系统和编程语言
2. SOA 关键特征
- 粗粒度:服务粒度比对象/组件更粗
- 松耦合:服务之间通过精确定义接口通信
- 可复用:服务可在不同场景中复用
- 互操作:跨平台、跨语言
3. Web Service 三剑客
| 技术 | 作用 | 类比 | |------|------|------| | SOAP | 交换 XML 编码信息的轻量级协议 | 传输通道 | | WSDL | 描述 Web 服务的接口 | 服务说明书 | | UDDI | 服务的注册、发现和集成 | 黄页电话簿 |
4. Web Service 三种角色
- 服务提供者:发布服务到注册中心
- 服务注册中心:中介,可有可无
- 服务请求者:查找并绑定服务
5. 服务注册表三个功能
- 服务注册:公布服务功能
- 服务位置:查询和发现服务
- 服务绑定:编写代码调用注册的服务
6. BPEL(业务流程执行语言)
- 全称:Business Process Execution Language for Web Services
- 作用:通过组合、编排和协调 Web Service 实现业务流程
- 特点:将多个 Web Service 组合成新的复合服务(从外部看和单个 Service 一样)
7. 企业服务总线(ESB)⭐必考
- 本质:一根管道,连接各个服务节点
- 核心功能:
- 消息路由
- 协议转换
- 数据格式转换
- 服务注册与发现
- 安全控制(认证、授权、加密)
- 监控与管理
- 负载均衡
- 高级能力:服务质量保证、可管理性
- 特点:
- SOA 的一种实现方式
- 描述服务的元数据和服务注册管理
- 发现、路由、匹配和选择的能力
- 支持同步模式、异步模式
- 解耦服务请求者和服务提供者
8. SOA 参考架构(六大类服务)
- 业务逻辑服务:已有应用整合(可接入服务、事件发现服务)、新应用(组件服务、核心服务、接口服务)、伙伴服务(B2B/B2C)
- 控制服务:信息服务(联邦/复制/转换/搜索)、流程服务(编排/事务/人工)、交互服务(交付/体验/资源)
- 连接服务:企业服务总线
- 业务创新和优化服务:监控业务性能
- 开发服务:建模、设计、实现、测试
- IT 服务管理:基础设施管理
9. SOA 与微服务的区别
| 维度 | SOA | 微服务 | |------|-----|--------| | 粒度 | 粗粒度 | 更精细 | | 部署 | 集中式(ESB) | 去中心化 | | 接口 | SOAP/XML | HTTP RESTful | | 数据库 | 共享数据库 | 独立数据库 | | 通信 | 通过 ESB | 直接调用/API Gateway | | 耦合度 | 较高 | 更低 | | 适用场景 | 企业内部集成 | 互联网分布式 |
10. SOA 成熟度三阶段
- 萌芽阶段(1990s末-2000s初):XML 技术标志
- 标准化阶段(2000+):SOAP、WSDL、UDDI 三剑客
- 成熟应用阶段(2005+):SCA/SDO/WS-Policy 规范
11. 软件架构复用与 DSSA
- 软件产品线:共享公共特性集的一组软件密集型系统
- 复用类型:机会复用(开发中发现就复用)vs 系统复用(开发前规划)
- DSSA:特定领域软件架构
- 三个基本活动:领域分析(→领域模型)、领域设计(→DSSA)、领域实现(→可重用信息)
- 四种角色:领域专家、领域分析人员、领域设计人员、领域实现人员
- 三层次模型:领域开发环境 → 领域特定应用开发环境 → 应用执行环境
- ABSD:基于架构的软件开发
- 架构驱动,业务+质量+功能需求组合驱动
- 用例描述功能需求,质量属性场景描述质量需求
- 视角和视图描述架构
真题考点映射
| 年份 | 考点 | 题型 | |------|------|------| | 2024下 | SOA 架构设计 | 论文 | | 2023下 | ESB 功能与特点 | 案例(25分) | | 2021下 | 企业集成平台 | 论文 | | 2020上 | 企业集成架构设计 | 论文 |
易错点/陷阱
- UDDI 是注册中心标准,不是传输协议
- WSDL 描述服务接口,不是传输格式
- SOAP 基于 XML,不是 JSON
- ESB 是 SOA 的一种实现,不是替代品
- 微服务去除了 ESB,但可以用 API Gateway 替代
- DSSA 的领域分析产出领域模型(不是 DSSA 本身),领域设计产出 DSSA
- ABSD 用质量属性场景描述质量需求(不是用例)
案例分析模板
题型:ESB 架构设计(高频)
答题框架:
- ESB 功能列举:消息路由、协议转换、数据转换、服务注册发现、安全控制、监控管理、负载均衡
- ESB vs 传统集成方式:
- 传统点对点:N 个系统需要 N(N-1)/2 个连接
- ESB:N 个系统只需 N 个连接到总线
- ESB 支持异构系统、灵活扩展
- 基于 ESB 的架构设计:画图展示服务提供者 → ESB → 服务请求者
题型:SOA vs 微服务对比
答题框架: 从粒度、部署、接口、数据、通信、耦合度六个维度对比
论文素材
- 可写主题:SOA 架构设计、ESB 集成、企业服务集成、微服务架构
- 项目场景:
- 企业内部多个异构系统集成
- 政务系统服务化改造
- 从 SOA 到微服务的架构演进
- 论述要点:
- 服务拆分策略与边界确定
- ESB 的设计与实现
- 服务治理(注册发现、路由、安全)
- 实际效果与经验教训