系统架构设计师备考站2027 上半年 · 通勤版 ⌕搜索
本页目录 · 5 节
  1. 一、知识框架
  2. 二、必背要点
  3. 15.1 SOA 相关概念
  4. 15.2 发展历史与国内现状
  5. 15.3 SOA 参考架构
  6. 15.4 主要协议和规范
  7. 15.5 设计的标准要求
  8. 15.6 SOA 的作用
  9. 15.7 设计原则
  10. 15.8 设计模式
  11. 15.9 构建时应注意的问题
  12. 15.10 实施过程
  13. 三、易混淆概念对比
  14. 四、常见考法与出题角度
  15. 五、速记与自测

第 15 章 面向服务架构设计理论与实践

对应大纲:科目 1-14 面向服务架构设计理论与实践|教材 P512–P540|优先级 ★★★★|综合知识估分 2~4 分
读法:先背「三角色+三操作」地基图,再给 UDDI/WSDL/SOAP/REST 各配一句作用,最后用「注册表/ESB/微服务」三种模式去套案例题。


一、知识框架

面向服务架构 SOA
├─ 15.1 概念:定义|服务特征|三角色|三操作|BPEL
├─ 15.2 历史:Web 服务→ESB→微服务云原生|国内现状
├─ 15.3 参考架构:业务流程|服务|服务组件|应用|基础设施+横切
├─ 15.4 协议规范:UDDI|WSDL|SOAP|REST
├─ 15.5 标准要求:文档|协议|统一登记集成|QoS
├─ 15.6 作用:复用|松耦合|异构集成|业务敏捷
├─ 15.7 原则:无状态|粗粒度|松耦合|契约化|自治
├─ 15.8 模式:服务注册表|ESB|微服务
├─ 15.9 注意:集成边界|粒度|无状态|版本与事务
└─ 15.10 实施:选方案|业务流程分析|服务建模|治理

二、必背要点

15.1 SOA 相关概念

定义:SOA 是一种设计方式,把应用的功能单元(服务)通过良好定义的接口与契约组装起来;接口中立定义,独立于硬件平台、操作系统与编程语言,使异构系统以统一方式交互。

角色职责对应操作
服务提供者实现并维护服务,承诺契约与质量发布、响应调用
服务请求者需要功能的一方,可为人或程序查找、绑定调用
服务注册中心保存服务描述,供检索接收发布、提供查询

三操作连成一句:提供者发布 → 请求者查找 → 请求者绑定调用。绑定发生在请求者与提供者之间,注册中心不传业务数据。

BPEL:基于 XML 的流程编排语言,把多个已有 Web 服务按业务串成端到端流程,支持顺序、并行、分支、补偿,用 partnerLink 引用 WSDL 接口。一句话:WSDL 管单个服务长什么样,BPEL 管多个服务怎么串成业务。

15.2 发展历史与国内现状

阶段特征解决的问题
萌芽期XML、SOAP、WSDL、UDDI跨平台调用、接口标准化
集成期ESB、服务注册表、BPEL、治理异构系统互联、协议与格式转换
深化期REST/JSON、微服务、容器、网关敏捷交付、独立部署、去中心化

国内三条线:政企以 ESB 集成存量系统;服务治理建目录、定 SLA;存量 SOA 逐步微服务化。答题口径:SOA 是方法论,微服务是其轻量落地形态。

15.3 SOA 参考架构

层次内容作用
业务流程层流程、编排、业务规则把服务组合成业务流程
服务层服务接口、契约、实现暴露可复用业务能力
服务组件层技术组件、适配器支撑实现、屏蔽技术细节
应用层ERP、CRM、遗留系统被复用与被集成对象
基础设施层网络、主机、中间件、总线运行支撑

横切:安全、管理、治理、QoS。规律:越往上越贴近业务、粒度越粗。

15.4 主要协议和规范

UDDI:基于 XML 的服务注册库。白页存机构名称与联系方式,黄页按行业分类索引,绿页存技术模型与访问点。作用是让请求者发现服务,是注册中心的标准实现。

WSDL:用 XML 描述服务「能做什么、怎么调、在哪调」。

元素含义归类
types消息所用数据类型(XML Schema)抽象
message一次交互的消息抽象抽象
portType操作集合,相当于接口抽象
binding绑定具体协议与消息格式具体
service端口集合,给出访问地址具体

口径:前三个讲「接口长什么样」,后两个讲「怎么连、连到哪」;教材「四要素」指 types、message、portType、binding,service 一并写出不扣分。

SOAP:基于 XML 的调用协议,可承载于 HTTP。

部分必需性内容
Envelope必需根元素,标识 SOAP 消息
Header可选安全、事务、路由等扩展
Body必需调用内容,出错时放 Fault

REST 六约束:客户端-服务器、无状态、可缓存、统一接口、分层系统、按需代码(可选)。它以资源为中心,URI 定位、HTTP 方法表动作、状态码表结果。

15.5 设计的标准要求

要求做法
文档标准化服务描述、接口文档、SLA 统一模板并随版本归档
通信协议标准统一 SOAP/REST 版本、消息格式、编码与超时
统一登记与集成建服务目录,登记归属、版本、依赖、责任人
QoS明确响应时间、吞吐、可用性并纳入监控

15.6 SOA 的作用

复用存量、松耦合集成异构系统、流程可编排带来业务敏捷、集中监控降低运维成本。

15.7 设计原则

原则含义落地手段
无状态服务不保存会话状态状态外置到库/缓存,令牌传递
粗粒度一次调用完成有业务意义的工作按业务能力聚合
松耦合依赖契约而非实现接口实现分离、版本兼容
标准化契约接口、消息、错误码统一契约先行(WSDL/OpenAPI)
服务自治独立开发、部署、演化独立数据与发布流水线

15.8 设计模式

维度服务注册表模式ESB 模式微服务模式
调用路径查注册表后直连全部经总线中转经网关或直连
核心部件注册中心总线网关、注册配置中心
耦合度较低(须知地址)低(只认总线)最低(按域自治)
适用服务中等、异构少大量遗留系统集成新建互联网业务
风险注册中心单点总线瓶颈、厂商锁定分布式事务、链路复杂

ESB 五项核心功能:消息路由、协议转换、数据格式转换、服务注册与发现、监控管理。

维度SOA微服务
粒度粗,按业务能力细,按业务域再拆
通信SOAP/WS,常经 ESBREST/gRPC,轻量直连
治理集中式(总线、注册表)去中心化,服务自治
部署共享总线,整体发布容器化独立部署
数据管理常共享数据库每服务独立数据库

15.9 构建时应注意的问题

先划集成边界:纳入哪些系统、集成在数据层/接口层/流程层、实时还是批量。边界不清会让总线承担过多职责。

粒度控制原则说明
业务对齐一个服务对应一个业务能力,不按表、不按技术层切
对外粗、对内细外部接口聚合,内部用细粒度组件组合
高内聚低耦合常一起变更的功能放在同一服务
事务可控避免一次业务跨过多服务
可演进先粗后细,允许随业务拆分

无状态好处:任一实例可处理任一请求,无需会话粘滞;实例故障可直接替换;易扩缩容、灰度与缓存。代价是每次请求多一次状态存取。

15.10 实施过程

选择解决方案:评估存量系统与集成需求,确定总线、注册中心、开发平台与治理工具;比较标准兼容性、厂商锁定风险、性能与成本、与既有中间件适配能力。

业务流程分析:业务建模 → 流程梳理与优化 → 服务识别(按业务能力/实体)→ 服务规约(接口、消息、SLA、异常)→ 实现与组装(可用 BPEL 编排)→ 部署与治理。

顺序不能颠倒:先理流程,再定服务;流程没理清就切服务,必然切错粒度。


三、易混淆概念对比

AB关键区别
SOA微服务SOA 是方法论、可粗可细、常集中治理;微服务是轻量落地,细粒度、去中心化
SOAWeb 服务SOA 是架构思想;Web 服务(SOAP/WSDL)只是其早期实现技术
UDDI服务注册表UDDI 是注册规范;注册表是运行时组件,可用 UDDI 也可自建
WSDLSOAPWSDL 描述接口与端点;SOAP 承载一次调用消息
SOAPRESTSOAP 重、契约强、靠 WSDL;REST 轻、面向资源、靠 HTTP 语义
ESB服务注册表ESB 中介并转发调用;注册表只给地址描述,不转发数据
编排编制编排有中心控制者(BPEL 引擎);编制无中心,各方按事件协作
粗粒度细粒度粗粒度调用少、复用好、灵活性差;细粒度灵活但链路长、事务难
有状态无状态有状态需会话粘滞、难扩展;无状态易扩展、状态须外置
服务构件服务是运行期可发现、可远程调用的业务单元;构件是开发期实现单元

四、常见考法与出题角度

题型出题角度典型问法答题要点
单选三角色职责「谁负责发布服务」提供者;注册中心只登记不调用
单选WSDL 元素「描述操作集合的是」portType;binding 是绑协议
单选SOAP 结构「SOAP 必需部分」Envelope 与 Body,Header 可选
单选REST 约束「不属于 REST 约束的是」排除「有状态会话」
单选ESB 功能「ESB 核心功能不包括」排除业务计算、数据持久化
简答概念辨析「SOA 与微服务区别」粒度、通信、治理、部署、数据五维
简答BPEL 作用「BPEL 解决什么问题」多服务编排成流程,非单服务描述

案例题角度(四步骨架)

  1. 定性:抓「多异构系统、接口不一、流程跨部门、重复建设」等信号,判定为 SOA 集成题,写总纲:采用「服务层+ESB+注册中心」实现松耦合集成与复用。
  2. 说角色与调用链:列出提供者(哪些存量系统)、请求者(哪些前端/流程)、注册中心(统一目录)、ESB(协议与格式转换),并写出「发布—查找—绑定」。
  3. 按问题分点:接口统一(契约与版本)、粒度(按业务能力、对外粗)、集成层次(数据/接口/流程,实时或批量)、QoS(SLA、超时重试、监控)、一致性(避免长事务,用补偿或最终一致)。
  4. 补治理与演进:服务目录与责任人、上线评审、安全认证与报文加密、后续按业务域微服务化、用 API 网关承接部分总线职责。

论文可用角度:写「某省社保/银行渠道整合」可写:「针对 12 个异构系统接口不一,以 ESB 构建服务层,按业务能力划分 46 个粗粒度服务并登记入统一目录,接口用 WSDL 契约描述、由总线完成协议与报文转换,新渠道接入周期由 3 个月缩短到 3 周。」


五、速记与自测

速记

  • 三角色:供、求、注册;三操作:发、查、绑
  • 四规范:UDDI 登记、WSDL 描述、SOAP 传信、REST 轻量
  • WSDL:类、消、口、绑、服
  • SOAP:信封必带、头可选、体必带
  • ESB 五功能:路由、协议、格式、注册、监控
  • 三模式:注册表直连、总线中转、微服务自治
  • 粒度:对外粗、对内细、按业务切

自测

  1. SOA 中「绑定」发生在哪两方之间?注册中心起什么作用?
  2. WSDL 的 portType 与 binding 分别描述什么?
  3. 为什么 SOA 强调服务无状态?

答案:1. 发生在请求者与提供者之间;注册中心只提供描述与地址,不参与调用与数据传输。2. portType 描述抽象操作集合(接口),binding 描述这些操作绑定到何种具体协议与消息格式。3. 任一实例可处理任一请求,便于水平扩展、故障转移、缓存与灰度,避免会话粘滞造成扩展瓶颈。