ScholarGate
助手

软件架构风格

软件架构风格是命名、可重用的组织方案,它们定义了系统使用的组件和连接器的类型,以及它们如何组合的约束。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

架构风格是一系列架构的集合,其特点是具有组件和连接器类型的词汇表,以及关于这些类型实例如何配置的一组约束。

Scope

本主题涵盖了经典风格,如分层、客户端-服务器、管道-过滤器、仓库(数据中心)、事件驱动和发布-订阅、微内核,以及面向服务和微服务架构;用于网络系统的REST架构风格;以及促使选择某种风格而非其他风格的质量属性权衡。

Core questions

  • 定义每种风格的组件和连接器词汇表是什么?
  • 给定风格促进或抑制了哪些质量属性?
  • 如何在单个系统中组合多种风格?
  • REST和微服务等网络和分布式风格与经典风格有何不同?

Key theories

作为组件-连接器词汇表的风格
Shaw和Garlan通过具有相关约束的组件和连接器的重复模式来描述架构,为该领域提供了管道-过滤器、分层和仓库等风格词汇。
REST架构风格
Fielding将REST推导为一组约束——无状态性、统一接口、可缓存性、分层系统——这些约束解释了网络的扩展性和演进性,并指导了基于网络的服务的设计。

Clinical relevance

尽早选择合适的风格能使系统结构与其主要质量要求保持一致;一旦开发开始,风格与需求之间的不匹配将难以且昂贵地纠正。

Evidence & guidelines

ISO/IEC/IEEE 42010 从视点和视图的角度构建架构描述,其中记录和分析了各种风格。

History

架构风格的编目始于20世纪90年代中期Shaw和Garlan的工作,当时软件架构成为一门公认的学科;Fielding在2000年的博士论文中正式提出了REST,而2010年代则见证了微服务和事件驱动风格在云规模系统中的兴起。

Key figures

  • Mary Shaw
  • David Garlan
  • Roy Fielding
  • Len Bass

Related topics

Seminal works

  • shaw1996
  • fielding2000
  • bass2012

Frequently asked questions

架构风格和设计模式有什么区别?
架构风格描述的是系统范围的组织——组件和连接器的类型以及组合它们的规则——而设计模式解决的是组件内部更局部的设计问题;风格在更高的粒度级别上运作。
一个系统可以使用多种风格吗?
是的。实际系统通常是异构的,会结合多种风格——例如,一个分层架构,其表示层是事件驱动的,其服务通过REST进行通信——每种风格都应用于其权衡最适合的地方。

Methods for this concept

Related concepts