【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

架构风格和架构模式速览

  • 2009-02-15
  • 本文字数:1080 字

    阅读完需:约 4 分钟

应用架构指南 2.0(微软模式和实践)的第 6 章讨论了诸如消息总线、分层架构、SOA 之类的架构风格。除了这些风格,还有很多架构模式,比如插件、点对点、发布 - 订阅。有些作者对架构风格、模式和隐喻进行了区分。

什么是架构风格呢?根据应用架构指南所说,架构风格指:

一组原则。你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。

指南的作者列出了一系列架构风格:

架构风格 描述 客户端 - 服务器 将系统分为两个应用,其中客户端向服务器发送服务请求。 基于组件的架构 把应用设计分解为可重用的功能、逻辑组件,这些组件的位置相互透明,只暴露明确定义的通信接口。 分层架构 把应用的关注点分割为堆栈组(层)。 消息总线 指接收、发送消息的软件系统,消息基于一组已知格式,以便系统无需知道实际接收者就能互相通信。 N 层 / 三层架构 用与分层风格差不多一样的方式将功能划分为独立的部分,每个部分是一个层,处于完全独立的计算机上。 面向对象 该架构风格是将应用或系统任务分割成单独、可重用、可自给的对象,每个对象包含数据,以及与对象相关的行为。 分离表现层 将处理用户界面的逻辑从用户界面(UI)视图和用户操作的数据中分离出来。 面向服务架构(SOA) 是指那些利用契约和消息将功能暴露为服务、消费功能服务的应用。

这些架构风格分别适用于特定领域:

分类 架构风格 通信 SOA,消息总线,管道和过滤器 部署 客户端 / 服务器,三层架构,N 层架构 领域 领域模型,网关 交互 分离表现层 结构 基于组件的架构,面向对象,分层架构

J.D. Meier 从《企业架构实用指南》(由 James McGovern、Scott W. Ambler、Michael E. Stevens、James Linn、Vikas Sharan、Elias K. Jo 编著)一书中总结了几个要点,指出了架构风格和架构模式之间的细微差别

  • 架构风格是系统主要的、组织性的设计。
  • 架构模式从子系统或模块、及其之间的关系层次上描述了粗粒度的解决方案。
  • 系统隐喻则更为概念化,比起软件工程概念,它更多地涉及现实世界的概念。

David Calvert 在 1996 年给出了一份架构风格 / 模式的部分清单

  • 数据流系统——批处理,管道 - 过滤器。
  • 调用 - 返回系统——主程序和子程序,面向对象系统,分层。
  • 独立组件——通信过程,事件系统。
  • 虚拟机——解释器,基于规则的系统。
  • 以数据为中心的系统(仓库)——数据库,超文本系统,黑板。

其它比较现代的风格 / 模式还有:插件点对点无共享架构表述性状态转移(REST)、前端- 后端。在维基百科上有更为完整的列表

查看英文原文: A Quick Look at Architectural Styles and Patterns

2009-02-15 18:528471
用户头像

发布了 151 篇内容, 共 60.0 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

CGB2107-DAY07总结复习

爱好编程进阶

Java 程序员 后端开发

Day159

爱好编程进阶

程序员 后端开发

手写一个持久化的Flutter会话管理器

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

DevOps系列之 —— DevOps概览(三)DevCloud HE2E DevOps 框架及其主要服务

若尘

DevOps 5月月更

网站开发进阶 (十一) 知识汇总

No Silver Bullet

二维码 标签 5月月更 打印 元素隐藏

Day182

爱好编程进阶

Java 程序员 后端开发

Dubbo源码分析- 总体介绍与模块划分

爱好编程进阶

程序员 后端开发

hive学习笔记之四:分区表

爱好编程进阶

Java 程序员 后端开发

Git进阶系列 | 8. 用Reflog恢复丢失的提交

俞凡

git 最佳实践

电阻电路的等效变换 (Ⅲ)

謓泽

5月月更

拿了阿里、腾讯的offer的大佬给想进互联网大厂的程序员一个忠告

Java架构追梦

Java 阿里 程序员面试

docker安装与启动

爱好编程进阶

Java 程序员 后端开发

Git进阶系列 | 7. Git中的Cherry-pick提交

俞凡

git

励志!一年时间,从小白到进入阿里核心部门,“他”的逆袭之路

Java架构追梦

Java 后端开发 程序员面试

26岁到来之际,我在阿里实现了年薪40W+的小目标

Java架构追梦

Java 后端开发 程序员面试

Hive-0

爱好编程进阶

Java 程序员 后端开发

网站开发进阶(十)页面嵌套

No Silver Bullet

jsp iframe 5月月更 页面嵌套 include

B站疯传20W份整套2021大厂面试1000题最新汇总(附视频答案详解)

爱好编程进阶

Java 程序员 后端开发

虎符交易所Hoo研究院|音乐NFT的路径在哪

区块链前沿News

NFT 虎符 Hoo 虎符交易所

SAP 电商云的 Spartacus Storefront 如何配置多个 JavaScript Application

Jerry Wang

angular SPA SAP 5月月更 电商云

Hibernate多对多的关系映射,详解(代码

爱好编程进阶

Java 程序员 后端开发

HTTP 协议入门详解

爱好编程进阶

Java 程序员 后端开发

Java 1027 打印沙漏

爱好编程进阶

Java 程序员 后端开发

架构实战营模块三作业

哈啰–J

Day220、nginx快速入门 -nginx

爱好编程进阶

程序员 后端开发

ElasticSearch 概述

爱好编程进阶

Java 程序员 后端开发

flume基本概念与操作实例(常用source)

爱好编程进阶

Java 程序员 后端开发

jackson学习之二:jackson-core

爱好编程进阶

Java 程序员 后端开发

Java 1045 快速排序

爱好编程进阶

Java 程序员 后端开发

java List、Object、String

爱好编程进阶

Java 程序员 后端开发

无聊科技正经事周刊(第5期):五一长假与虚拟旅行

潘大壮

程序员 周刊 科技 行业趋势 科技周刊

架构风格和架构模式速览_方法论_Abel Avram_InfoQ精选文章