ScholarGate
Ассистент

Стили архитектуры программного обеспечения

Стили архитектуры программного обеспечения — это именованные, повторно используемые организационные схемы, которые определяют типы компонентов и коннекторов, используемых системой, а также ограничения на способы их комбинирования.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

Архитектурный стиль — это семейство архитектур, характеризующееся словарем типов компонентов и коннекторов, а также набором ограничений на то, как экземпляры этих типов могут быть сконфигурированы.

Scope

Эта тема охватывает классические стили, такие как многослойная, клиент-серверная, конвейерная (pipe-and-filter), репозиторная (ориентированная на данные), событийно-ориентированная и publish-subscribe, микроядерная, а также сервис-ориентированные и микросервисные архитектуры; архитектурный стиль REST для сетевых систем; и компромиссы в отношении качественных атрибутов, которые мотивируют выбор одного стиля над другим.

Core questions

  • Какой словарь компонентов и коннекторов определяет каждый стиль?
  • Какие качественные атрибуты данный стиль способствует или препятствует?
  • Как стили комбинируются в рамках одной системы?
  • Чем сетевые и распределенные стили, такие как REST и микросервисы, отличаются от классических?

Key theories

Стили как словари компонентов-коннекторов
Шоу и Гарлан характеризовали архитектуры повторяющимися паттернами компонентов и коннекторов с соответствующими ограничениями, что дало этой области словарь стилей, таких как конвейерный (pipe-and-filter), многослойный и репозиторный.
Архитектурный стиль REST
Филдинг вывел REST как набор ограничений — отсутствие состояния (statelessness), унифицированный интерфейс, кэшируемость, многослойная система — которые объясняют масштабируемость и эволюционируемость веба и направляют проектирование сетевых сервисов.

Clinical relevance

Выбор подходящего стиля на ранних этапах приводит структуру системы в соответствие с ее доминирующими требованиями к качеству; плохое соответствие между стилем и потребностями трудно и дорого исправлять после начала разработки.

Evidence & guidelines

ISO/IEC/IEEE 42010 описывает архитектуру с точки зрения точек зрения (viewpoints) и представлений (views), в рамках которых документируются и анализируются стили.

History

Каталогизация архитектурных стилей началась с Шоу и Гарлана в середине 1990-х годов, когда архитектура программного обеспечения стала признанной дисциплиной; диссертация Филдинга 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