原子标签索引:[概念×13 | 机制×4 | 流程×4 | 决策×1 | 分类体系×12 | 判据×3 | 案例×2 | 数据×1] 上游:第2章(构件与中间件)、第5章(软件架构风格) 下游:第14章(SOA 的微服务化发展)

标准表述

  1. 服务:由服务提供者提供、用于满足使用者请求的业务单元;在 SOA 中泛指系统对外提供的功能集。
  2. SOA 应用角度定义:一种应用框架,把日常业务应用划分为单独的业务功能和流程(即服务),可构建、部署、整合服务而无需依赖应用程序及其运行平台。
  3. SOA 原理角度定义(对架构师更具指导性):一个组件模型,将应用程序的不同功能单元(服务)通过定义良好的接口和契约联系起来;接口采用中立方式定义,独立于硬件平台、操作系统和编程语言。
  4. BPEL:面向 Web 服务的业务流程执行语言(亦写作 BPEL4WS),通过组合、编排和协调 Web 服务自上而下实现 SOA。
  5. SOA 发展三阶段:萌芽阶段(XML 为标志)→ 标准化阶段(SOAP、WSDL、UDDI 三剑客)→ 成熟应用阶段(2005 年起,SCA/SDO/WS-Policy 三大规范,标志 SOA 进入实施阶段)。
  6. SCA 和 SDO 构成 SOA 编程模型的基础;WS-Policy 建立 SOA 组件间安全交互的规范。
  7. Web 服务三剑客:SOAP(简单对象访问协议)、WSDL(Web 服务描述语言)、UDDI(通用服务发现和集成协议)。
  8. WSDL 描述服务三个基本属性:做什么(操作)、如何访问(数据格式与协议)、位于何处(协议相关地址如 URL)。
  9. SOAP 四部分:封装(Envelop)、编码规则(Encoding Rules)、RPC 表示(RPC Representation)、绑定(Binding)。
  10. SOAP 两个主要设计目标:简单性和可扩展性。
  11. REST = 表述性状态转移,四要素:资源、表述、状态转移、超链接;REST 是一种设计风格而不是架构。
  12. ESB 核心功能:位置透明的消息路由寻址、服务注册和命名管理、多消息传递范型、多传输协议、多数据格式及转换、日志和监控。
  13. ESB 是一种架构模式,不能简单等同于特定技术或产品。
  14. SOA 设计原则(8 条):无状态、单一实例、明确定义的接口、自包含和模块化、粗粒度、服务间松耦合、重用能力、互操作性/兼容和策略声明。
  15. 微服务与 SOA 三区别:微服务更精细、以独立进程存在;接口更通用化(HTTP RESTful);倾向分布式去中心化部署。
  16. 微服务架构是 SOA 的进一步优化:去除 ESB,真正去中心化,服务独立、数据源唯一。

蒸馏笔记

概念

机制

流程

  1. SOA 实施三选择:①尽量选能全局规划的方案(全面评估系统→选工具技术→边学边实践开发)②充分考虑企业自身需求(SOA 通过共享服务优化业务流程,"价值机会"超传统项目)③从平台、实施等技术考察(平台看开放性和标准支持;实施经验 6 方面:业务战略和流程、基础架构、构建模块、项目和应用、成本和效益、规划和管理;供应商看产品匹配度、成功案例、专业服务能力)。
  2. 建立服务模型三法:①自顶向下分解——从端到端业务流程逐层分解至业务活动,业务活动树上每个节点都是服务候选者,划分到业务组件后形成层次化服务目录;变化分析分离易变与稳定部分 ②业务目标分析——KPI 分解为子目标再分派给服务,形成"目标服务树",叶子节点服务可回溯业务目标 ③自底向上——遗留资产分析,建立已有系统功能模块目录,发现重复/可复用模块包装为服务。
  3. 建立业务流程三步:①建立业务对象(实体/过程/事件三类)②建立服务接口(操作应语义相关;无状态接口最好,请求消息应含完成操作的所有必要信息)③建立业务流程(BP 分成子流程→分析确定组件、服务、输入输出、策略、测量→用流程元素等可复用构件编码)。
  4. 打破信息孤岛两步:①把应用和资源转换成服务 ②把服务标准化,形成资源共享。

决策

决策点 结论 理由
服务粒度(对外) 粗粒度接口 保证请求者以一致方式使用服务,避免暴露易变的交互模式
服务粒度(对内) 细粒度接口 灵活性高,供内部组合;可用 BPEL 将细粒度操作组成粗粒度服务接口
无状态服务实现 无状态 Session Bean(EJB 端点) EJB 容器自动提供并发、安全、事务支持与集群/池化管理,可伸缩性强
Web 服务可访问的 EJB 仅无状态 Session Bean 不能访问有状态 Session Bean、实体 Bean、消息驱动 Bean

分类体系

判据

案例

  1. SynchroESB(15.8.3):西安协同时光与西北工业大学联合研发的协同企业服务总线,四层结构——服务总线层(底层支持)→ 数据转换与适配器层(接入)→ 流程整合层(流程设计/监控/规划)→ 用户交互层(统一信息入口);"粗颗粒"组件编程模型,事件驱动。
  2. 服装零售 500 家国际连锁店(15.6):借 WSDL 接口操作灵活性,换供应商时保持现有系统不动,仅匹配 WSDL 接口并制定新的服务级协定——业务水平改变而内部操作不变。

数据

数据项 数值 含义
EAI 翻译器数量 2 应用→1;3→3;4→6;5→10 n 个应用互通需 n(n-1)/2 个 EAI Server,几何倍数增长
IDC《SOA 中国路线图》 2007 年发布 首份针对中国企业实施 SOA 的权威报告

易错点 / 边界情况