Architekturstile und Architekturmuster Flashcards
Was sind die Merkmale eines Architekturstils?
- Ein Architekturstil fasst gemeinsame Merkmale von IT-Systemen zusammen
- enthält Regeln & Muster zur Strukturierung eines Systems, Bausteine und Beziehungen zwischen den Bausteinen
Was sind die Merkmale eines Architekturmusters?
- Helfen bei der Zerlegung eines Systems in Bausteine und bei der Verteilung von Verantwortlichkeiten
- bilden Vorlagen für Systemstrukturen
- sind eine Konkretisierung von Architekturstilen
- bilden wiederverwendbare Bausteine für bestimmte Probleme
Was ist der Unterschied zwischen Architekturstilen/-mustern und Entwurfsmustern?
Architekturstile & -muster beschreiben die Struktur eines Systems als Ganzes, Entwurfsmuster (Design Patterns) beschreiben die Struktur von Klassenverbänden und Komponenten
Die Unterscheidung ist allerdings nicht trennscharf
Was kennzeichnet das Batch-Sequentielle Architekturmuster?
- Daten werden stapelweise komplett verarbeitet und an Nachfolger weitergegeben
- Schnittstellen zwischen Bausteinen sind oft Dateien oder Datenbanken
Was sind die Vor- und Nachteile des Batch-Sequentiellen Musters?
Vorteile:
- Klare Aufteilung des Systems
- Einfache, funktionale Schnittstellen
- Abhängigkeiten zwischen den Datensätzen können berücksichtigt werden
Nachteile:
- Keine eingebaute Fehlerbehandlung
- Externe Steuerung des Systems
Was kennzeichnet das Pipes und Filter Architekturmuster?
- Sofortige oder zeitversetzte Weitergabe der Daten zwischen den Filtern durch die Pipes
- Alle Filter können parallel aktiviert sein
- Ausgabe an eine oder mehrere Pipes
- Unterscheidung zwischen Aktiven und Passiven Filtern
- Unabhängigkeit der Datensätze
Was sind die Vor- und Nachteile des Pipes und Filter Architekturmusters?
Vorteile:
- Einfache Struktur
- lose Kopplung der Filter
Nachteile:
- Schwerwiegende Folgefehler
- Externe Steuerung des Systems
- Keine Eingriffsmöglichkeit in die Verarbeitung
Wie verläuft die Implementierung einer Datenflussarchitektur?
- Einlesen und Entpacken der gesamten Datei
- Kategorisierung der Datensätze
- Verarbeitung der einzelnen Stapel durch Pipes und Filter
- Sammlung der Ergebnisse in einer einzelnen Datei
Was sind die Vor- und Nachteile einer datenzentrierten Architektur?
Vorteile:
- Hinzufügen weiterer Agenten ist einfach
- Alle Agenten können parallel arbeiten
- Test der Agenten werden vereinfacht
Nachteile:
- Synchronisierung der Agenten kann aufwendig sein
- Test der Komponente kann schwierig sein
Welche Use Cases ergeben sich für das Repository Architekturmuster?
- ERP-Systeme
- Data Warehouses (mehrere ETL-Prozesse speisen Daten in dasselbe Repository)
- Windows Registry
=> Überall dort, wo eine große Überschneidung der verwendeten Daten besteht und Arbeitsprozesse entsprechend aufgeteilt werden müssen
Was kennzeichnet das Repository Architekturmuster?
- aktive Agenten um einen passiven Datenspeicher herum
- Agenten managen Verarbeitung und Ablauf innerhalb des Systems
- Ein Repository pro Business Objekt
Was kennzeichnet das Blackboard Architekturmuster?
- Knowledge Sources sind spezialisierte Module, die Teilprobleme lösen
- Blackboards sind strukturierte, globale Datenspeicher von Zwischenergebnissen
- Controller wählen Knowledge Sources aus und führen diese mit unterschiedlichen Konfigurationen aus
Welche Vor- und Nachteile hat das Master-Slave Architekturmuster?
Vorteile:
- Verfügbarkeit von Services
- Hohe Fehlertoleranz
- Hohe Zuverlässigkeit
Nachteile
- Redundanz von Services
Was kennzeichnet das Master-Slave Architekturmuster?
- Mehrere Slaves arbeiten für einen Master (unterschiedliche Implementierung von Interfaces)
- Paralleles Arbeiten der Slaves möglich
- Sicherstellen von Verfügbarkeit und Fehlertoleranz
Was kennzeichnet das Layer-Architekturmuster?
- Verschiedene Ebenen, wobei Komponenten höherer Ebene auf Komponenten niedrigerer Ebene zugreifen, nicht aber umgekehrt
- Eine Schicht kapselt die Implementierung gegenüber der Außenwelt
- Komponenten innerhalb einer Schicht besitzen einen ähnlichen Abstraktionsgrad
Was sind die Vor- und Nachteile des Layer-Architekturmusters?
Vorteile:
- Austauschbarkeit von Schichten
- Abhängigkeiten zwischen Komponenten ist gering
- Leicht verständlich
Nachteile:
- Kann Performance beeinträchtigen
- Anpassungsbedarf in allen Schichten bei Änderung in einer Schicht