系统架构设计师—系统架构设计篇—SOA架构

文章目录

概述

面向服务的架构(service-oriented Architecture,SOA),就是如何"基于服务"或"基于一堆服务"来实现的业务架构。

面向服务是在面向对象的基础上发展而来的,但服务和对象有所不同:

  • 对象主要是面向系统的,而服务是面向业务的。
  • 对象的粒度级别主要集中在类级,而服务是粗粒度的。
  • 类是以函数调用为基础来交互的,而服务是以网络请求为基础来交互的。

SOA

关于服务,一些常见的设计原则有:明确定义的接口自包含模块化粗粒度松耦合互操作性

SOA紧密相关的基数主要有UDDIWSDLSOAP,而这些技术都是以XML为基础而发展起来的。

  • UDDI:一种用于描述、发现、集成Web Service的技术。
    • 通过UDDI,企业可以根据自己的需要动态查找并使用Web服务。
    • 也可以将自己的Web服务动态地发布到UDDI注册中心,供其他用户使用。
  • WSDL:Web服务描述语言,是为描述Web服务发布的XML格式。
  • SOAP:简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML的协议,它被设计成在Web上交互结构化的和固化的信息。

实现方式

服务注册表模式

SOA VS SOAP

SOA指的是架构方法及流程,WebService(服务提供者)、UDDI(注册中心)、业务方(调用方、消费者)三者的地位、作用以及需要遵从的执行流程:

  • WebService将自己的WSDL注册给UDDI。
  • 业务方先从UDDI获取到WSDL,进而才能访问WebService。

SOAP指的是SOA的三个组件互相访问时遵从的网络协议,即:用HTTP请求承载,XML为组织格式,来传递输入输出的有约束的数据。

企业服务总线模式(ESB)

Enterprise Service Bus,企业服务总线架构模式在于整合,可能是公司内部各团队的服务,也可能是公司之间的不同服务,组成一个整体,来向外提供服务。

业务方只跟业务总线交互:

  • 业务方将请求提交给业务总线。
  • 由业务总线转发请求给相应的后端服务。
  • 业务总线收到回复后再转发给业务方。

即,业务总线也兼具"代理"的功能。业务方只需要知晓业务总线的地址,无需耦合所有服务。

主要作用

  1. SOA的一种实现方式,ESB在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合。
  2. 描述服务的元数据和服务注册管理。
  3. 在服务请求者和提供者之间传递数据,以及对这些数据进行转化的能力,并支持由实践中总结出来的一些模式如同步模式、异步模式等。
  4. 发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供者。高级一些的能力,包括对安全的支持、服务质量保证、可管理性和负载平衡等。
相关推荐
刘一说4 小时前
Java 中实现多租户架构:数据隔离策略与实践指南
java·oracle·架构
国科安芯4 小时前
火箭传感器控制单元的抗辐照MCU选型与环境适应性验证
单片机·嵌入式硬件·架构·risc-v·安全性测试
晚霞的不甘4 小时前
Flutter for OpenHarmony 打造沉浸式呼吸引导应用:用动画疗愈身心
服务器·网络·flutter·架构·区块链
喵叔哟4 小时前
67.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--分摊功能总体设计与业务流程
数据库·微服务·架构
RockHopper20254 小时前
为什么制造运营管理系统必须采用语义驱动,而不能采用自然语言驱动
系统架构·智能制造·工业数字化·isa-95·生产运营管理
roman_日积跬步-终至千里4 小时前
【MLOps(1)】MLOps 架构总览与全方位基础:从实验室到生产环境的实战指南
架构
龙山云仓4 小时前
MES系统超融合架构
大数据·数据库·人工智能·sql·机器学习·架构·全文检索
未来龙皇小蓝4 小时前
RBAC前端架构-02:集成Vue Router、Vuex和Axios实现基本认证实现
前端·vue.js·架构
Tadas-Gao4 小时前
深度学习与机器学习的知识路径:从必要基石到独立范式
人工智能·深度学习·机器学习·架构·大模型·llm
啊森要自信5 小时前
CANN ops-cv:揭秘视觉算子的硬件感知优化与内存高效利用设计精髓
人工智能·深度学习·架构·transformer·cann