MD 更新:未知

服务是为了满足某项业务需求的操作、规则等的逻辑组合,它包含一系列有序活动交互,为实现用户目标提供支持。

核心:

通过服务进行系统解构,使用 ESB 统一通信


架构组成

  • 应用配置
  • 流程管理器
  • I/O 处理
  • 服务总线(ESB)
  • 各类服务(服务 1~6)
  • 历史遗留系统

调用流程

  1. 应用配置驱动流程
  2. 流程管理器编排服务
  3. 通过 ESB 调用多个服务
  4. 服务访问数据层

SOA层次和特点

服务构件传统构件
标准化程度更高
粗粒度细粒度居多
接口是标准的,主要是 WSDL 接口常以具体 API 形式出现
实现与语言无关绑定某种特定语言
以通过构件容器提供QOS 的服务完全由程序代码直接控制

架构对比

架构特点
SOA中心化
微服务去中心化

ESB(企业服务总线)

作用:

统一服务之间的通信

功能

  • 协议转换(HTTP/SOAP/MQ)
  • 路由转发
  • 数据转换(XML/JOSN)
  • 安全控制

问题

  • 单点瓶颈
  • 复杂度高

单个服务内部结构

分层

  1. 服务接口层
  2. 逻辑层
  3. 数据访问层

数据来源

  • SQL Database
  • XML
  • Flat File

关键点

  • 接口标准化
  • 统一安全处理
  • 容错机制
graph LR
A[应用配置] --> B[流程管理器]
C[I/O处理] <--> B
B --> D[ESB]
D --> S1[服务1]
D --> S2[服务2]

实际项目中的对应

  • ESB -> API Gateway(或 Kafka)
  • 流程管理 - Orchestration
  • 服务 - 微服务

关键技术

graph LR
A[服务注册中心] <--通过UDDI查找--> B[服务请求者]
A <--通过UUDI发布--> C[服务提供者]
B <--用WSDL描述--> C
B <--通过SOAP连接--> C
功能协议
发现服务UDDI、DISCO
描述服务WSDL、XML Schema
消息格式SOAP、REST
编码格式XML
传输层HTTP等
  • UUDI:Web 服务集成体系,包含了服务描述与发现的规范
  • WSDL:服务描述语言,三个基本属性(服务做了什么/如何访问服务/服务位于何处)
  • SOAP:基于 XML协议,在分布式环境中交换信息
  • REST:只使用 HTTP 和 XML 进行基于 Web 通信的技术

ESB

消息中间件、服务总线,它是面向服务架构的一种实现方式

graph LR
A[企业服务总线] <--> S1[消息转换]
A <--> S2[消息传输]
A <--> S3[动态路由]
A <--> B[应用服务接口]
A <--> C[用户交互服务]

服务请求者与服务提供者之间的解耦

  • 提供位置透明性的消息路由和寻址服务
  • 提供服务注册和命名的管理
  • 支持多种消息传递规范
  • 支持多种可以广泛使用的传输协议
  • 支持多种数据格式及其相互转换