ScholarGate
Assistent

Software-Architekturstile

Software-Architekturstile sind benannte, wiederverwendbare Organisationsschemata, die die Arten von Komponenten und Konnektoren definieren, die ein System verwendet, sowie die Einschränkungen, wie diese kombiniert werden dürfen.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Ein Architekturstil ist eine Familie von Architekturen, die durch ein Vokabular von Komponenten- und Konnektortypen und eine Reihe von Einschränkungen für die Konfiguration von Instanzen dieser Typen gekennzeichnet ist.

Scope

Dieses Thema behandelt klassische Stile wie geschichtete Architekturen, Client-Server, Pipe-and-Filter, Repository (datenzentriert), ereignisgesteuert und Publish-Subscribe, Microkernel sowie serviceorientierte und Microservice-Architekturen; den REST-Architekturstil für vernetzte Systeme; und die Kompromisse bei Qualitätsattributen, die die Wahl eines Stils gegenüber einem anderen motivieren.

Core questions

  • Welches Vokabular von Komponenten und Konnektoren definiert jeden Stil?
  • Welche Qualitätsattribute fördert oder hemmt ein gegebener Stil?
  • Wie werden Stile innerhalb eines einzigen Systems kombiniert?
  • Wie unterscheiden sich vernetzte und verteilte Stile wie REST und Microservices von klassischen?

Key theories

Stile als Komponenten-Konnektor-Vokabulare
Shaw und Garlan charakterisierten Architekturen durch wiederkehrende Muster von Komponenten und Konnektoren mit zugehörigen Einschränkungen, wodurch dem Feld ein Vokabular von Stilen wie Pipe-and-Filter, geschichtet und Repository gegeben wurde.
REST-Architekturstil
Fielding leitete REST als eine Reihe von Einschränkungen ab – Zustandslosigkeit, einheitliche Schnittstelle, Cache-Fähigkeit, geschichtetes System –, die die Skalierbarkeit und Entwicklungsfähigkeit des Webs erklären und das Design netzwerkbasierter Dienste leiten.

Clinical relevance

Die frühzeitige Wahl eines geeigneten Stils richtet die Systemstruktur an ihren dominanten Qualitätsanforderungen aus; eine schlechte Übereinstimmung zwischen Stil und Anforderungen ist schwierig und kostspielig zu korrigieren, sobald die Entwicklung im Gange ist.

Evidence & guidelines

ISO/IEC/IEEE 42010 rahmt die Architekturbeschreibung in Bezug auf Standpunkte (viewpoints) und Ansichten (views) ein, innerhalb derer Stile dokumentiert und analysiert werden.

History

Die Katalogisierung von Architekturstilen begann Mitte der 1990er Jahre mit Shaw und Garlan, als Softwarearchitektur zu einer anerkannten Disziplin wurde; Fieldings Dissertation aus dem Jahr 2000 formalisierte REST, und in den 2010er Jahren entstanden Microservice- und ereignisgesteuerte Stile für Cloud-basierte Systeme.

Key figures

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

Related topics

Seminal works

  • shaw1996
  • fielding2000
  • bass2012

Frequently asked questions

Was ist der Unterschied zwischen einem Architekturstil und einem Entwurfsmuster (Design Pattern)?
Ein Architekturstil beschreibt die systemweite Organisation – die Arten von Komponenten und Konnektoren und die Regeln für deren Kombination –, während ein Entwurfsmuster ein lokalisierteres Entwurfsproblem innerhalb von Komponenten löst; Stile operieren auf einer höheren Granularitätsebene.
Kann ein System mehr als einen Stil verwenden?
Ja. Reale Systeme sind typischerweise heterogen und kombinieren Stile – zum Beispiel eine geschichtete Architektur, deren Präsentationsebene ereignisgesteuert ist und deren Dienste über REST kommunizieren –, wobei jeder Stil dort angewendet wird, wo seine Kompromisse am besten passen.

Methods for this concept

Related concepts