软件架构设计(四) 基于服务的架构(SOA)

2023-11-07

前面我们了解到了层次架构中表示层的架构分层,分为了MVC,MVP,MVVM等架构风格,下面我们了解一下SOA架构与微服务架构。

什么是服务?

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

SOA的起源

前面学习软件工程时,我们知道软件开发方法有结构化方法,面向对象方法,还有面向服务和原型的方法。面向服务是基于面向对象,并且是面向对象的加强的一种思想的产出物。

面向服务的思想是在构件之后的,而从对象到构件的的颗粒度是变大了的,复用的可能是一个完整的功能,比如登录。而为了取复用这些东西,我们对构件执行了标准化,而标准化在其中是很重要的。

而构件还存在一些问题,比如跨平台,用Java写的构件使用C++没办法去使用。所以我们需要对构件进一步规范化,标准化。规范化之后能够更易于复用。而服务是可以做到标准化的,做得标准化后,相互的调用变得互联互通就会变得更加的容易。

我们可以把遗留系统封装为一个个服务,但是封装成服务之后,服务之间的点对点调用又变得复杂了,交互起来存在多对多很繁杂的问题。此时出现了一个很重要的技术,也就是一个服务之间的中介者框架,企业服务总线(ESB). 它负责作为中介者将服务与服务之间设置为星型网状结构,从而服务间的互联互通都通过ESB进行。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件架构设计(四) 基于服务的架构(SOA) 的相关文章

  • ElasticSearch高可用安装部署(Linux)

    ElasticSearch高可用安装部署 一 小型的ElasticSearch集群的节点角色规划 对于Ingest节点 如果我们没有格式转换 类型转换等需求 直接设置为false 3 5个节点属于轻量级集群 要保证主节点个数满足 节点数 2

随机推荐

  • log4j2 安装interactsh

    漏洞测试log4j2 sudo apt install gccgo go sudo apt install golang go go env w GOPROXY https goproxy cn direct 1 root kali hom
  • jwt安全问题

    文章目录 jwt安全问题 jwt简介 jwt组成 header payload signature 潜在漏洞 空加密算法 web346 密钥爆破 web348 敏感信息泄露 web349 修改算法RS256为HS256 web350 jwt
  • pytorch cycleGAN代码学习1

    一 新的东西 p s 很多架构都和之前一样 就举些不同的 1 ReplayBuffer Buffers of previously generated samples fake A buffer ReplayBuffer fake B bu
  • JSONException异常

    下面是net sf json JSONException java lang reflect InvocationTargetException异常 net sf json JSONException java lang reflect I
  • 筛选图片,写JSON文件和复制

    筛选图片 写JSON文件和复制 筛选图片 写JSON文件 筛选图片复制 筛选图片 写JSON文件 coding utf 8 from PIL import Image ImageDraw ImageFont import os import
  • NVIDIA Video Codec SDK学习

    这是sdk官网 https developer nvidia com nvidia video codec sdk https docs nvidia com video technologies video codec sdk 这是cud
  • python用于计算和数据处理的包有哪些_数据处理常用Python包

    原博文 2020 05 16 21 07 数据计算 numpy https github com AI 10 Data processing blob master E6 95 B0 E6 8D AE E5 88 86 E6 9E 90 E
  • Django---------创建、运行

    目录 1 安装django 2 pycharm 专业版 创建项目 3 默认项目的文件介绍 4 App的创建和说明 5 启动运行django 1 确保app已注册 settings py 2 编写URL和视图函数对应关系 url py 3 编
  • File类的常用方法

    import java io File import java io IOException public class Demo public static void main String args File file new File
  • xfce4汉化

    xfce4 设置中文 安装locales并配置 sudo apt install locales sudo dpkg reconfigure locales 选择语言编码en US UTF8 zh CN GB2312 zh CN GBK G
  • netty实现websocket发送文本和二进制数据

    最近在学习netty相关的知识 看到netty可以实现 websoket 因此记录一下在netty中实现websocket的步骤 主要实现传递文本消息和传递二进制消息 此处只考虑是图片 如果是别的消息可以考虑使用自定义协议 需求 1 使用
  • centos7最小化安装之后配置网络(ip)

    1 执行命令cd etc sysconfig network scripts 2 找到ifcfg eno16777736类似的文件 3 vi ifcfg eno16777736 4 将ONBOOT no 改为 ONBOOT yes 5 重启
  • 将jar包安装到本地仓库

    首先要安装maven 配置环境变量 百度 so easy 然后打开终端 执行以下命令 注意 红色对用红色 黄色对应黄色 绿色对应绿色 mvn install install file DgroupId cn vicky reddwarf D
  • B站数据分析岗实习生面试记录

    step1 自我介绍一下 还是需要准备以下的 不然一下子介绍自己的话 没话说 而且介绍自己不完全 step2 一道sql的笔试题目 建议刷一下题目呀 一定要刷题 掌握那些最基本的语法 step3 面试题目1 比如对B站近30天的弹幕发送量进
  • Office project 2021安装

    哈喽 大家好 今天一起学习的是project 2021的安装 Microsoft Office project项目管理工具软件 凝集了许多成熟的项目管理现代理论和方法 可以帮助项目管理者实现时间 资源 成本计划 控制 有兴趣的小伙伴也可以来
  • VALSE 文档图像智能报告整理

    目录 引言 端到端检测识别 探索检测和识别的协同作用 减少对标注的依赖 去除一些不必要的组件 文字擦除和编辑 文字辅助场景理解 视频文字擦除和文档矫正 文字识别 自监督预训练 对比学习 更高效的语言模型 手写数学公式识别 文档图像理解 视频
  • java创建数据库连接和对数据库操作的主要步骤

    Java创建数据库连接和对数据库操作的主要五个步骤如下 1 加载数据库驱动 使用 Class forName 方法加载指定的数据库驱动类 例如加载MySQL的驱动类 Class forName com mysql jdbc Driver 2
  • 基于LINUX策略路由的实现

    一 网络结构eth0 10 43 128 10 gw 10 43 0 254 gt interneleth1 61 144 64 106 gw 61 144 64 1 gt interneleth2 192 168 0 2 gw 192 1
  • python判断网络是否通

    提供两种方法 netstats py coding gbk import myarp import os class netStatus def internet on self ip 192 168 150 1 os system arp
  • 软件架构设计(四) 基于服务的架构(SOA)

    前面我们了解到了层次架构中表示层的架构分层 分为了MVC MVP MVVM等架构风格 下面我们了解一下SOA架构与微服务架构 什么是服务 服务是一种为了满足某项业务需求的操作 规则等的逻辑组合 它包含了一系列有序活动的交互 为实现用户目标提