软考高级系统架构设计师备考(三十一):系统架构设计—基于服务的架构(SOA)
在软考高级系统架构设计师考试中基于服务的架构SOA, Service-Oriented Architecture是企业级系统架构设计的核心考点之一。该部分不仅在选择题中频繁出现更是案例分析题与论文题的高频主题尤其在“系统集成、分布式架构、企业信息化”背景中尤为重要。SOA 的本质不只是技术而是一种架构思想 设计方法论。一、SOA 架构概述1 核心思想SOA 的核心思想是“将系统功能封装为服务通过标准接口进行调用实现松耦合和复用”2 SOA 的本质特征服务是系统的基本构建单元服务之间通过标准协议通信服务独立部署、独立演化支持跨平台、跨语言二、服务构件 vs 传统构件对比维度服务构件SOA传统构件粒度粗粒度业务级细粒度函数/类接口标准接口WSDLAPI语言相关语言语言无关依赖具体语言控制方式容器提供QoS程序控制复用方式服务复用代码复用深入理解粗粒度一个服务通常对应一个完整业务功能如“订单服务”WSDL接口基于XML的服务描述Web Service时代QoSQuality of Service如安全、事务、可靠性等由中间件保障例题SOA 架构中服务构件的特点是A. 细粒度 B. 与语言强绑定 C. 标准化接口 D. 仅本地调用答案C三、SOA 的实现方式1 企业服务总线ESB1核心思想“通过中间总线连接各个服务”2主要功能服务路由协议转换消息转换安全控制3特点集中管理统一通信易于集成异构系统4优缺点优点简化系统集成支持异构系统缺点中心化瓶颈单点故障风险例题ESB 的主要作用是A. 数据存储 B. 服务通信与集成 C. 界面展示 D. 代码编译答案B四、微服务架构1 概念微服务是 SOA 的一种演进形式其核心思想是“将系统拆分为多个小型、独立部署的服务”2 核心特点服务粒度更细独立部署去中心化轻量通信REST/HTTP3 优势高扩展性技术多样性多语言快速迭代故障隔离4 面临挑战重点分布式复杂性事务、一致性服务治理困难运维复杂DevOps要求高网络通信开销例题微服务架构的主要特点不包括A. 独立部署 B. 去中心化 C. 强耦合 D. 细粒度服务答案C五、微服务与 SOA 对比重点对比维度SOA微服务粒度粗粒度更细粒度通信ESB重量级REST轻量级管理集中式去中心化技术标准统一技术多样核心总结微服务 轻量化 SOASOA 偏企业集成微服务偏互联网架构例题微服务与 SOA 的主要区别是A. 是否支持服务 B. 是否使用数据库 C. 是否去中心化 D. 是否支持网络通信答案C六、MDA模型驱动架构1 核心思想“以模型为中心自动生成系统”2 三层模型CIM业务模型PIM平台无关模型PSM平台相关模型3 特点提高开发效率降低平台依赖支持自动代码生成例题MDA 的核心是A. 数据驱动 B. 模型驱动 C. 代码驱动 D. 服务驱动答案B七、ADL架构描述语言1 核心思想“用形式化语言描述软件架构”2 描述内容构件Component连接件Connector配置Configuration3 作用支持架构分析提高设计规范性支持自动化工具例题ADL 主要用于A. 编写业务代码 B. 描述系统架构 C. 数据库设计 D. UI开发答案B八、DSSA特定领域软件架构1 核心思想“针对特定领域复用架构”2 特点面向特定领域如金融、电信提供通用架构模板强调复用3 优点提高开发效率降低风险保证质量例题DSSA 的主要目标是A. 提高代码执行速度 B. 提高架构复用性 C. 降低数据库压力 D. 增强界面效果答案B九、综合对比总结技术核心思想关键词SOA服务复用WSDL、ESB微服务去中心化REST、独立部署MDA模型驱动CIM/PIM/PSMADL架构描述形式化DSSA领域复用行业架构十、考试高频考点总结1 必考点服务构件 vs 传统构件SOA vs 微服务ESB 作用2 案例分析重点如何选择 SOA 或微服务如何拆分服务如何解决分布式问题3 论文高频写法模板可以这样写系统采用SOA / 微服务架构服务按业务划分用户、订单、支付使用 REST 接口通信引入服务注册与发现机制通过网关统一入口使用容器化部署Docker十一、综合案例题题目某大型企业系统需要整合多个异构系统Java、.NET要求系统松耦合支持跨平台调用易扩展应采用哪种架构A. 单体架构 B. SOA C. 两层C/S D. 数据流架构答案B