系统架构-面向服务架构(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. 异步消息传递微服务: 将消息写入一个消息队列中,实现业务逻辑以异步方式运行

图片来源于网络

相关推荐
Erishen25 分钟前
Lume C11编译器内部架构:从树形解释器到双LLVM后端的设计之旅
架构·开源·编译器
沪上企服通1 小时前
历史账套科目重映射与规则版本重算:旧账梳理的“口径复位”工程
笔记·架构
亥时无人机管理系统2 小时前
无人机管理系统源码 | 私有化部署平台 航线规划飞行审批实时监控功能介绍
架构·私有化部署·无人机·低空经济·无人机巡检·无人机管理系统·一网统飞
这个DBA有点耶3 小时前
时序数据库InfluxDB高基数问题深度拆解:内存索引膨胀机制与OOM完整链路
数据库·架构·dba
木子n14 小时前
软件架构设计实战-架构15.ISO 26262 架构设计要求:安全机制在架构里的落点
架构·autosar·功能安全·iso 26262
这个DBA有点耶4 小时前
为什么UPDATE比SELECT危险得多?锁范围等于扫描行数
数据库·架构·代码规范
我不是阵雨6 小时前
分布式事务难题与实战解法全解析
分布式·微服务·架构
尤水就下6 小时前
🔥预热:在线文档的 block 架构是如何实现的(未完待续...)
前端·javascript·架构
Dawson Zhu6 小时前
《Agentic Design Patterns》第 13 章导读:人机协同(Human-in-the-Loop)
人工智能·语言模型·架构·aigc·agi
姜鱼问生7 小时前
fail2ban 实战:从默认配置到生产可用
后端·算法·架构