Architekturmuster

Im Bereich d​er Softwareentwicklung s​ind Architekturmuster (auch Architekturstil, englisch architectural pattern) i​n den Arten v​on Mustern a​uf oberster Ebene einzuordnen. Im Gegensatz z​u Entwurfsmustern o​der Idiomen bestimmen s​ie nicht e​in konkretes (meist kleines o​der lokales) Teilproblem, sondern d​ie grundlegende Organisation u​nd Interaktion zwischen d​en Komponenten e​iner Anwendung.

Übersicht

Architekturmuster lassen s​ich in verschiedene Kategorien einteilen:

Adaptive Systeme

Diese Muster unterstützen besonders d​ie Erweiterungs- u​nd Anpassungsfähigkeit v​on Softwaresystemen.

Chaos zu Struktur (englisch Mud-to-structure)

Diese Muster sollen helfen, d​ie Vielzahl d​er Komponenten u​nd Objekte e​ines Softwaresystems z​u organisieren. Die Funktionalität d​es Gesamtsystems w​ird hierbei i​n kooperierende Subsysteme aufgeteilt.

Command Query Responsibility Segregation
Trennung des Businessmodells in Teile, die Daten holen (Query), und Teile, die Daten ändern bzw. Fachlichkeiten ausführen (Command)[1]
Data Context Interaction
Trennung von Fachobjekten (Data), Anwendungsfällen, Algorithmen (Context) sowie fachlichen Rollen (Interaction).
Domain-driven Design und Naked Objects
Anwendungsdomänen-getriebene Herangehensweise an Architektur und Design
Pipes und Filter
Schematischer Aufbau des Pipes und Filter Musters
Beschreibt die Struktur für Systeme, die Datenströme verarbeiten. Das System wird durch mehrere unabhängige Einheiten strukturiert: Verarbeitungsschritte, sogenannte Filter, mit einer Umwandlung (beispielsweise Ergänzung, Entfernung, Veränderung) von Daten und Verbindungen zwischen den Filtern, sogenannte Pipes, zur effizienten Weiterleitung der Daten.
Schichtenarchitektur
Trennt die Bestandteile eines Softwaresystems in aufeinander aufbauende Schichten
Schwarzes Brett (Blackboard)
Ein Architekturmuster zur Bewältigung von Problemlösungsprozessen. Auf dem Schwarzen Brett werden dabei von einzelnen Teilprozessen Daten in einer hierarchisch organisierten Form abgelegt. Das Schwarze Brett ist nun in der Lage, andere Teilprozesse von der Ablage oder Änderung dieser Daten zu benachrichtigen. Dies ermöglicht eine nahezu parallele Arbeitsweise der Teilprozesse.

Interaktive Systeme

Muster dieser Kategorie helfen, Mensch-Computer-Interaktionen z​u strukturieren.

Model View Controller (MVC), Model View Presenter und Remote Presentation Model
Model View Controller
[notes 1] teilen die Benutzerinterface-Interaktionen in drei verschiedene Rollen. Das Modell enthält die darzustellenden Daten und die Geschäftslogik. Es ist von Präsentation und Steuerung unabhängig. Die View ist für die Darstellung der benötigten Daten aus dem Modell und die Entgegennahme von Benutzerinteraktionen zuständig. Sie kennt sowohl ihre Steuerung (Controller) als auch das Modell, dessen Daten sie präsentiert, ist aber nicht für die Weiterverarbeitung der vom Benutzer übergebenen Daten zuständig. Die Steuerung (Controller) nimmt von der View Benutzeraktionen entgegen, wertet diese aus und agiert entsprechend. Beim MVP geht die Kommunikation nur vom Controller aus, die View ist völlig passiv.
Presentation-Abstraction-Control (PAC)
Ein Architekturmuster zur Strukturierung von interaktiven Softwaresystemen. Dabei werden diese derart in Teile zerlegt, dass jeder Teil genau eine Aufgabe des Systems anbietet. Damit wird eine hohe Flexibilität des Systems erhalten und man muss sich nur darum kümmern, dass diese Teile zu einem funktionierenden Ganzen zusammengesetzt werden und auch zusammenarbeiten.

Verteilte Systeme

Diese Kategorie unterstützt d​ie Verwendung verteilter Ressourcen u​nd Dienste i​n Netzwerken, w​ie z. B. d​ie Orchestrierung. Zwei weitere Modelle ('Mikrokernel' u​nd 'Pipes u​nd Filter') unterstützen Verteilung zweitrangig.

Client-Server
Beschreibt eine weitere Möglichkeit, Aufgaben und Dienstleistungen innerhalb eines Netzwerkes zu verteilen. Die Aufgaben werden von Programmen erledigt, die in Clients und Server unterteilt werden. Der Client kann auf Wunsch eine Aufgabe vom Server anfordern, der Server beantwortet die Anforderung.
Peer-to-Peer
Bezeichnet eine Möglichkeit, Aufgaben und Dienstleistungen innerhalb eines Netzwerkes zu verteilen. Dabei sind alle Computer gleichberechtigt und können sowohl Dienste in Anspruch nehmen als auch zur Verfügung stellen. Ebenso können die Netzwerkteilnehmer abhängig von ihrer Qualifikation in verschiedene Gruppen eingeteilt werden und spezifische Aufgaben übernehmen.
Serviceorientierte Architektur (SOA)
Ein Architekturmuster für verteilte Systeme, um Dienste von IT-Systemen zu strukturieren und zu nutzen. Durch Zusammensetzen (Orchestrierung) werden damit Geschäftsprozesse durch Dienstimplementierungen abgebildet. Durch Orchestrierung von Diensten niedriger Abstraktionsebenen können so recht flexibel und unter Ermöglichung größtmöglicher Wiederverwendbarkeit Dienste höherer Abstraktionsebenen geschaffen werden.
Edge Computing
Dezentrale Datenverarbeitung am Rand des Netzwerks, der sogenannten Edge. Damit wird die immer größer werdende Rechenleistung der Endgeräte wie Mobiltelefone dazu genutzt, Berechnungen beim Anwender zu machen, um damit Bandbreite zu sparen und die Reaktionszeit zu erhöhen.

Anmerkungen

  1. MVC und MVP wird von manchen als Entwurfsmuster eingestuft.

Literatur

  • Martin Fowler: Patterns of Enterprise Application Architecture. Addison-Wesley-Longman, Amsterdam 2002, ISBN 0-321-12742-0 (martinfowler.com).
  • Jonathan Ufer: Architekturmuster und das Verstehen von Informatiksystemen. Eine Analyse und Unterrichtsbeispiele für die Sekundarstufe II. vdm Verlag Dr. Müller, Saarbrücken 2008, ISBN 3-639-00221-0.
  • Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal: Pattern-orientierte Softwarearchitektur. Ein Pattern-System. Band 1. Addison-Wesley-Longman, Bonn 1998, ISBN 3-8273-1282-5 (englisch: Pattern-Oriented Software Architecture - A System of Patterns.).
  • Frank Buschmann, Michael Stal, Hans Rohnert, Douglas Schmidt: Pattern-orientierte Software-Architektur. Muster für nebenläufige und vernetzte Objekte. Volume 2. dpunkt.verlag, 2002, ISBN 978-3-89864-142-5 (englisch: Pattern-Oriented Software Architecture - Patterns for Concurrent and Networked Objects.).
  • Michael Kircher, Prashant Jain: Pattern-Oriented Software Architecture. Patterns for Resource Management. Volume 3. Wiley, 2004, ISBN 978-0-470-84525-7.
  • Frank Buschmann, Kevlin Henney, Douglas C. Schmidt: Pattern-Oriented Software Architecture. A Pattern Language for Distributed Computing. Volume 4. Wiley, 2007, ISBN 978-0-470-05902-9.

Einzelnachweise

  1. Command Query Responsibility Segregation
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.