在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

架构风格和架构模式速览

  • 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:529206
用户头像

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

关注

评论

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

第六章: SEO与交互指标

溪抱鱼

typescript SEO

【Java持久层技术演进全解析】从JDBC到MyBatis再到MyBatis-Plus

不在线第一只蜗牛

Java 数据库

BOM都没整明白,就别抱怨生产一团糟了!

积木链小链

数字化转型 BOM 智能制造 生产管理

DBeaver 执行多条 SQL 报错 YAS-04209 的解决方式

数据库砖家

数据库

时序数据库 IoTDB 集成 DataEase,又一可视化交互选择!

Apache IoTDB

因 Druid 配置导致 YashanDB 报 YAS-04003 打开游标数过多的问题分析

数据库砖家

数据库

YashanDB 报错:YAS-04003 maximum number of open cursors 的处理方法

数据库砖家

数据库

KET口语考试APP的开发

北京木奇移动技术有限公司

软件外包公司 APP外包公司 KET口语考试

国产操作系统定义以及品牌汇总

行云管家

信创 国产化 国产操作系统

【等保问题解答】信息系统安全等级保护三级一年几次?有法律依据吗?

行云管家

网络安全 等保 等级保护 等保测评

RAG越来越不准?你可能忽略了“元数据”的力量

电子尖叫食人鱼

Java 数据库 前端

观测云产品更新 | 安全监测、事件中心、仪表板AI智能分析等

观测云

产品迭代

测吧高校软件测试实训系统

测试人

软件测试

旧貌换新颜:闪迪创作者系列助力修复师用视频为古书画按下‘重启键’

极客天地

京东拍立淘图片搜索 API 接入实践:从图像识别到商品匹配的技术实现

tbapi

京东API 京东图片搜索接口 京东拍立淘API 京东图片API

亚洲消费电子展|低成本获客秘籍,助力预算敏感型企业逆袭

AIOTE智博会

Android App 的上线流程

北京木奇移动技术有限公司

软件外包公司 APP外包公司 APP开发公司

SEO与交互指标 二

溪抱鱼

typescript Google SEO

创业进入新一轮的debug(测试)

程序员郭顺发

DePIN需要什么样的公链?

PowerVerse

区块链+ Solana DePIN

Blender 入门教程(三):骨骼绑定

北桥苏

建模 blender

全平台开源即时通讯IM聊天框架MobileIMSDK的服务端开发指南,支持鸿蒙NEXT

JackJiang

鸿蒙 网络编程 即时通讯 IM

来了!520这场发布会将开启“企业级”迈向大模型时代的大门!

奇点云

VL 语言:AI 编程的通用语义桥 —— 连接自然语言与机器指令

代码制造者

LLM AI编程

(WEB CAD API)网页CAD实现圆孔标记功能

WEB CAD SDK

打破算力瓶颈!起底百度智能云高性能存储加速系统如何让昆仑芯3万卡集群火力全开

百度Geek说

【HarmonyOS NEXT】多目标产物构建实践

深海的鲸同学 luvi

合合信息亮相2025中国图象图形大会,聚焦大模型时代的伪造图像检测

合合技术团队

人工智能 算法 图像识别 #大数据

YashanDB 使用 exp 导出数据时报 YAS-00402 错误的处理思路

数据库砖家

数据库

【HarmonyOS 5】App Linking 应用间跳转详解

深海的鲸同学 luvi

鸿蒙 HarmonyOS HarmonyOS NEXT 实践分享

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