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
Was sind die einzelnen Schichten des Layer-Architekturmusters?
- Präsentation/Benutzeroberfläche
- Applikationsschicht
- Fachdomäne (Business Architecture)
- Infrastruktur (Technical Architecture)
Was ist das Ports & Adapter Architekturmuster und wann wird es angewandt?
- Spezialisierung des Schichtenmodells
- Fachdomäne ist der Kern des Systems und hat keine direkten Abhängigkeiten
- Schalenmodell: innere Kreise wissen nichts über äußere Kreise
Anwendungsfälle:
- Langlebigkeit der Fachdomäne
- Hohe Testabdeckung der Fachdomäne gewünscht
Was sind die Vor- und Nachteile des Ports & Adapter Architekturmusters?
Vorteile:
- Unabhängigkeit der Fachdomäne
- Modularisierung => Hohe Wartbarkeit
- Leichte Austauschbarkeit durch Unabhängigkeit
Nachteile:
- Saubere und konsistente Modellierung der Fachdomäne notwendig
Was sind die Eigenschaften von Verteilten Systemen?
- Zusammenarbeit von Verarbeitungs- und Speicherbausteinen über Kommunikationsnetze
- Eine Menge voneinander unabhängiger Computer, welche dem Benutzer wie ein einziges, kohärentes System vorkommen
- Die Hard- und Softwarekomponenten befinden sich auf vernetzten Rechnern und kommunizieren über den Austausch von Nachrichten
- Alle Komponenten haben ein gemeinsames Ziel
- Heterogene Implementierung der Komponenten
Was zeichnet das Client-Server Architekturmuster aus?
- Klare Trennung der Verantwortlichkeiten
- Client fragt Ressourcen oder Dienste ab
- Server stellt Ressourcen oder Dienste zur Verfügung
- Synchrone Kommunikation
Was sind die Vor- und Nachteile des Client-Server Architekturmusters?
Vorteile:
- Klare Trennung der Verantwortlichkeiten
- Hohe Flexibilität
Nachteile:
- Vielfältige Fehlerquellen
- höherer Entwicklungsaufwand
- niedrigere Sicherheit
Was zeichnet das CQRS Architekturmuster aus?
Command Query Responsibility Segregation:
- Trennung der Verantwortlichkeiten nach Klassifikation: Daten lesen oder Daten ändern
- Äußere Schnittstellen werden nach dem gleichen Prinzip getrennt
Was sind die Vor- und Nachteile des CQRS Architekturmusters?
Vorteile:
- Performanter und skalierbarer durch Trennung komplexer Commands und schnell abzuarbeitender Queries
- erhöhte Sicherheit
- Cloud-Computing geeignet
Nachteile:
- höherer Entwicklungsaufwand, Queries können vor Commands ausgeführt werdem
Was zeichnet das CORBA Architekturmuster aus?
Common Object Request Broker Architecture
- Trennung von Schnittstellen und Implementierung
- Komponenten kommunizieren über Broker und nachrichten- oder ereignisbasierte Middleware
Was sind die Vor- und Nachteile des CORBA Architekturmusters?
Vorteile:
- Plattform- und Sprachenunabhängigkeit durch Interface Definition Language
- Client-Server geeignet
Nachteile:
- vielfältige Fehlerquellen
- höherer Entwicklungsaufwand
Was zeichnet das Peer-2-Peer Architekturmuster aus?
- Jeder Peer ist gleichberechtigt
- keine zentrale Verwaltung von Ressourcen oder Komponenten
- Ressourcen werden geteilt verwendet
Was sind die Vor- und Nachteile des Peer-2-Peer Architekturmusters?
Vorteile:
- ausfallsichere Datenverteilung
- kein Single Point of Failure
Nachteile:
- nicht geeignet für kleinere Architekturen
- Lokalisieren von Fehlern einzelner Peers sehr aufwendig
Was sind die Eigenschaften des Architekturstils Ereignisbasierter Systeme?
- bestehen aus einer Event Source und einem Event Sink
- Kommunikation erfolgt über Ereignisse statt über Aufrufe im Code
- Beziehungen zwischen Bausteinen werden während der Laufzeit hergestellt und sind unidirectional
Was kennzeichnet das Architekturmuster der Ungepufferten Event-Kommunikation?
- Broadcast Variante
- Event-Source sendet Event an alle
- Empfänger überprüfen, ob das Event für sie relevant ist
- Ereignis wird in Netzwerk publiziert
- alternativ kann sich Empfänger beim Sender registrieren und direkte Kommunikation herstellen
Was kennzeichnet das Architekturmuster der Message- oder Event-Queue-Architekturen?
- Queue statt direkter Kommunikation
- Queue kann synchron oder asynchron sein
- fire and forget (Event Source bekommt keine Rückmeldung)
- keine Gewährleistung von Reihenfolge oder Bearbeitung (dafür müssen Korrelations-IDs verwendet werden)
Was kennzeichnet das Architekturmuster der Message-Service-Architekturen?
- Erweiterung der Queue-Architektur
- Routing von Nachrichten an bestimmte Empfänger
- Priorisierung der Reihenfolge möglich
- Vorverarbeitung von Nachrichten (Archivierung, Verschlüsselung, Protokollierung, Auswertungen)
- Zusammenfassung oder Aufteilen von Nachrichten
- Überwachung von Systemen
- Zuverlässige Speicherung
Was sind die Vor- und Nachteile des Ereignisbasierten Architekturstils?
Vorteile:
- Sender und Empfänger können in unterschiedlichen Technologien erstellt werden
- Message-Queues mit zuverlässiger Zustellung können Verfügbarkeit und Robustheit deutlich erhöhen
Nachteile:
- Message-Queues sind komplex
- hoher Einführungs- und Administrationsaufwand
- Fehlersuche in asynchronen Systemen sehr aufwendig
Was kennzeichnet das Architekturmuster des Model View Controller aus?
- Verbreitet im Web- Mobil- und Desktopbereich
- Auf das Observer Pattern angewiesen, um die Kommunikation sicherzustellen
- Besteht aus drei Teilen:
- die View ist für die Anzeige zuständig und gibt Events an einen Controller weiter
- der Controller steuert die Interaktion und propagiert Datenänderungen an das Model
- das Model benachrichtigt die View und gibt dieser Zugriff auf die Daten
Was sind die Vor- und Nachteile des MVC Architekturmusters?
Vorteile:
- Klare Trennung der Verantwortlichkeiten
- Erlaubt mehrere Views pro Model, auch mit unterschiedlichen Technologien
- Reichhaltige Auswahl passender Frameworks
Nachteile:
- Implementierung und Debugging kann aufwendig sein
- Notifikationen können mit mehreren Controller-View-Paaren zeitaufwendig sein
- Viel Boilerplate
Was kennzeichnet das Presentation Model Architekturmuster?
- MVC, aber mit einem zusätzlichen Presentation Model, welches mit der View und den Controller interagiert, um das Model nicht zu verändern
- sinnvoll bei komplexen graphischen Oberflächen
Was sind die Vor- und Nachteile des Presentation Model Architekturmusters?
Vorteile:
- Das Model bleibt ein reines Domänen-Modell
- Die View bleibt frei von fachlicher Logik oder Prüfungen
Nachteile:
- Synchronisation und Notifikationen müssen zwischen PM und View implementiert werden
Was kennzeichnet den REST-Architekturstil?
- Eher Vorgehensempfehlung als Standard
- Beschreibt den Einsatz von Webstandards zum Abruf von Webressourcen
- Services sind Ressourcen und haben keine explizite Funktionalität
- Impliziert eine Client-Server-Architektur
- Kommunikation erfolgt über Standardmethoden GET POST PUT DELETE
- Server stellt seine Fähigkeiten nach außen als Ressourcen zur Verfügung
- Caches können zwischen Client und Server geschaltet werden
- Kommunikation erfolgt durch Repräsentation von Ressourcen (JSON/XML/HTML)
Was sind die Einsatzgebiete des REST Architekturstils?
- Services
- Webanwendungen
- Hypermedia-Formate
- SPAs
- Resource Oriented Client Architecture (ROCA) => HTML wird serverseitig erzeugt, z.B. Blazor
Was sind die Vor- und Nachteile des REST-Architekturstils?
Vorteile:
- Verwendung weit verbreiteter Werkzeuge und Bibliotheken
- Gute Skalierung durch Statelessness
- Geringe Kopplung zwischen Parteien
- Möglichkeit der Evolution von Schnittstellen
Nachteile:
- Höhere Latenz im Vergleich zu lokalen Lösungen
- Serialisierung kostet Performanz