系统架构-面向服务架构(SOA)

概述

服务指的是系统对外提供的功能集

从应用的角度定义,可以认为SOA是一种应用框架,将日常业务划分为单独的业务功能和流程(即服务),SOA使用户可以构建、部署和整合这些服务。

从软件的基本原理定义,SOA是一个组件模型,通过将应用程序的不同功能单元(即服务)之间定义良好的接口和契约联系起来。

业务流程是指为了实现某种业务目的所进行的流程或一系列动作

BPEL:面向Web服务的业务流程执行语言,是一种使用Web服务定义和执行业务流程的语言

SOA架构以企业服务总线连接各个系统,是集中式的技术架构,应用服务间相互依赖导致部署复杂,应用间交互使用远程通信,降低了响应速度。

微服务架构是SOA架构的进一步优化,去除了ESB企业服务总线,是一个真正意义上去中心化的分布式架构,降低了微服务之间的耦合程度。

参考架构

以服务为中心的企业集成架构:

连接服务------企业服务总线ESB(Enterprise Service Bus)

ESB的基本特征和能力包括:

  • 描述服务的元数据和服务注册管理
  • 传递数据,并拥有对数据进行转换的能力
  • 发现、路由、匹配和选择的能力,查找对应服务
  • 安全支持、服务质量保证、可管理性和负载平衡等

业务逻辑服务

功能:

  1. 整合已有应用:应用和信息访问服务
  2. 整合新开发的应用:业务应用服务
  3. 整合客户和业务伙伴(B2C/B2B):伙伴服务,提供与企业外部的服务连接

控制服务

  1. 数据整合:信息服务,提供集成数据的能力
  2. 流程整合:流程服务,完成业务流程的编排、事务、集成人工活动等
  3. 用户访问整合:交互服务,实现用户访问集成,包括:交付服务、体验服务、资源服务等

开发服务

开发环境和工具中为不同开发者的角色提供的功能。如:建模服务、设计服务、实现服务、测试服务

业务创新和优化服务

以业务性能管理(BPM)技术为核心提供业务事件发布、收集和关键业务指标监控能力,

包括:

  1. 公共事件框架服务:提供IT和业务事件的激发、存储和分类
  2. 采集服务:分析感兴趣的服务
  3. 监控服务:通过监控,计算和管理业务流程的关键性能指标

IT服务管理

为业务流程和服务提供安全、高效和健康的运行环境

协议和规范

最基本的协议包括:UDDI、WSDL和SOAP

UDDI(统一描述、发现和集成协议):用于查找发现服务,使得商业实体能够彼此发现

WSDL(Web服务描述语言):用来描述Web服务和说明如何与Web服务通信的XML语言,描述三个基本属性:服务做什么、如何访问服务、服务位于何处

SOAP:在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议

SOA的设计原则

  • 无状态:服务无需任何状态,可以独立运行
  • 单一实例:服务只提供单一功能
  • 明确定义的接口:长时间稳定,一旦公布,不能随意更改
  • 自包含和模块化:服务内部封装了一些活动和组件,服务需要自行管理和恢复
  • 粗粒度:服务数量少,消息量大
  • 松耦合:服务之间交互频次低,私有数据对使用者不可见
  • 重用功能:服务应该是可重用的
  • 互操作性、兼容和策略声明:形成完整的声明

SOA的设计模式

服务注册表模式

服务注册:开发者向注册表公布他们制作的服务功能

服务位置:注册表帮助使用者查找符合自身要求的服务

服务绑定: 使用者利用检索到的服务合同来开发代码

企业服务总线模式

由中间件技术实现的支持面向服务矿建的基础软件平台,企业服务总线本质上是一个中间件。

这种交互过程不再是点对点的直接交互模式,而是由事件驱动的消息交互模式(隐式调用)

微服务模式

不再强调传统SOA框架中的ESB,特点:复杂应用解耦、独立、技术选型灵活、容错、松耦合易扩展,常见微服务设计模式:

  1. 聚合器微服务:聚合器调用多个微服务实现系统应用程序所需功能。一种是将检索到的数据信息进行处理并直接展示;另一种是获取到的数据信息增加业务逻辑处理后,再进一步发布成一个新的微服务
  2. 链式微服务:收到请求后,返回一个经过合并处理的行营,服务之间形成一条调用链
  3. 数据共享微服务:当服务之间存在强耦合关系,可能存在多个微服务共享缓存与数据库存储的现象
  4. 异步消息传递微服务: 将消息写入一个消息队列中,实现业务逻辑以异步方式运行

图片来源于网络

相关推荐
AI模块工坊2 小时前
AAAI 2025 | 即插即用,川大Mesorch刷新SOTA,用「介观」Transformer架构终结图像造假
人工智能·深度学习·计算机视觉·架构·transformer
周杰伦_Jay2 小时前
【OpenManus深度解析】MetaGPT团队打造的开源AI智能体框架,打破Manus闭源壁垒。包括架构分层、关键技术特点等内容
人工智能·深度学习·opencv·架构·开源
The Open Group2 小时前
小企业的大架构:TOGAF®标准如何助力突破初创瓶颈
架构
sorryhc3 小时前
开源的SSR框架都是怎么实现的?
前端·javascript·架构
自由的疯4 小时前
Java 如何学习 Jenkins?
java·架构
自由的疯4 小时前
Java ‌认识Docker
java·架构
三小河4 小时前
从私服版本冲突到依赖治理:揭秘 resolutions 配置
前端·javascript·架构
骇客野人4 小时前
【软考备考】 数据模型:E-R模型、关系模型详解
架构
CloudWeGo5 小时前
Eino ADK:一文搞定 AI Agent 核心设计模式,从 0 到 1 搭建智能体系统
架构
"sudo6 小时前
【2025-系统规划与管理师】第十章:云原生系统规划
系统架构