Zum Inhalt springen

Architekturmuster

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 31. März 2013 um 03:14 Uhr durch MovGP0 (Diskussion | Beiträge) ({{lang|en|Identity Map}}). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Im Bereich der Softwareentwicklung sind Architekturmuster (auch: Architekturstil, engl. architectural style) in den Arten von Mustern auf oberster Ebene einzuordnen. Im Gegensatz zu Idiomen oder Entwurfsmustern bestimmen sie nicht ein konkretes (meist kleines oder lokales) Teilproblem, sondern die grundlegende Organisation und Interaktion zwischen den Komponenten einer Anwendung.

Übersicht

Architekturmuster lassen sich in vier verschiedene Kategorien einteilen:

  1. Chaos zu Struktur (engl. Mud-to-structure): Diese Muster sollen helfen die Vielzahl der Komponenten und Objekte eines Softwaresystems zu organisieren. Die Funktionalität des Gesamtsystems wird hierbei in kooperierende Subsysteme aufgeteilt.
  2. Verteilte Systeme: Diese Kategorie unterstützt die Verwendung verteilter Ressourcen und Dienste in Netzwerken (z. B. serviceorientierte Architekturen, Orchestrierung). Zwei weitere Modelle ('Mikrokernel' und 'Pipes und Filter') unterstützen Verteilung zweitrangig.
  3. Interaktive Systeme: Muster dieser Kategorie helfen, Mensch-Computer-Interaktionen zu strukturieren.
  4. Adaptive Systeme: Diese Muster unterstützen besonders die Erweiterungs- und Anpassungsfähigkeit von Softwaresystemen.

Muster aus Patterns of Enterprise Application Architecture

Object-Relationale Strukturmuster

Identity Field

Identity Field

Ein Identity Field speichert ein Datenbank-ID-Feld in einem Objekt um die Zuordnung vom Objekt zu der zugehörigen Datenbankzeile zu gewährleisten.

Foreign-Key-Mapping

Foreign-Key-Mapping auf skalares Feld
Foreign-Key-Mapping auf Container-Feld


Association-Table-Mapping

Association-Table-Mapping bildet eine n-zu-n Relation mit Hilfe einer Assoziationstabelle ab


Single Table Inheritance

Single Table Inheritance verwendet eine einzige Tabelle für jede Klasse


Concrete Table Inheritance

Concrete Table Inheritance verwendet eine eigene Tabelle für jede konkrete Klasse


Class Table Inheritance

Class Table Inheritance verwendet eine eigene Tabelle für jede konkrete oder abstrakte Klasse


Data Source-Architektur

Table Data Gateway

Als Table Data Gateway bezeichnet man in der Informatik ein Objekt, welches als Gateway zu einer Datenbanktabelle fungiert. Eine Instanz dieses Objekts behandelt dabei alle Zeilen der Tabelle.

Row Data Gateway

Als Row Data Gateway wird ein Objekt bezeichnet, welches als Gateway zu einem einzelnen Eintrag (Zelle) in einer Datenquelle fungiert. Für jede Zeile der Datenquelle wird vom Objekt eine eigene Instanz erzeugt.

Active Record

Als Active Record wird ein Objekt bezeichnet, welches als Adapter (englisch Wrapper) zu einer Zeile in einer Datenbanktabelle oder Datenbanksicht (englisch View) dient. Der Adapter beinhaltet hierbei den Datenbankzugriff und Geschäftslogik für die Daten. Es handelt sich im Grunde um einen Row Data Gateway, welcher um die Geschäftslogik erweitert wird und deshalb sowohl Daten (Eigenschaften) als auch Verhalten (Methoden) implementiert.

Data Mapper

Als Data Mapper wird eine Schicht von Mappern bezeichnet, die Daten zwischen Objekten im Speicher und der Datenbank vermittelt. Der Mapper ermöglicht hierbei, dass das Modell der Daten in der Datenbank und das Modell der Geschäftsobjekte unabhängig von einander, sowie unabhängig vom Mapper selbst sind.

Object-Relationale Verhaltensmuster

Unit of Work

Unit of Work

Eine Unit of Work verwaltet eine Liste von Objekten mittels einer Business-Transaktion und koordiniert das Schreiben und die Auflösung von Nebenläufigkeits-Problemen.

Identity Map

Eine Identity Map stellt sicher, dass jedes Objekt nur einmal geladen wird, indem jedes Objekt in einer Karte (englisch: Map), meist ein assoziatives Datenfeld, gehalten wird.

Lazy Load

Lazy Loading

Anmerkungen

  1. Das MVC-Muster wird von manchen als Entwurfsmuster eingestuft.

Referenzen


Siehe auch

Literatur

  • Martin Fowler: Patterns of Enterprise Application Architecture. Addison-Wesley-Longman, Amsterdam 2002, ISBN 0-321-12742-0.
  • 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. Volume 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.

Vorlage:Navigationsleiste Architekturmuster