Ereignisgesteuerte Systeme - Cheatsheet
Definition und Grundlagen der ereignisbasierten Architektur
Definition:
Architekturstil, der auf der Erzeugung, Erkennung und Reaktion auf Ereignisse basiert.
Details:
- Ereignis: Jede diskrete Änderung eines Systemzustands.
- Reaktive Systeme: Reagieren auf eintretende Ereignisse in Echtzeit.
- Ereignisquelle und -senke: Quelle erzeugt Ereignisse, Senke verarbeitet sie.
- Ereignisstrom: Abfolge von Ereignissen, die verarbeitet werden.
- Vorteile: Hohe Modularität, Flexibilität und Erweiterbarkeit.
- Technologien: Event Sourcing, CQRS (Command Query Responsibility Segregation), Message Brokers.
Design Patterns: Publish-Subscribe und Event Sourcing
Definition:
Design Patterns für ereignisgesteuerte Architektur; Publish-Subscribe ermöglicht Entkopplung zwischen Sender und Empfänger; Event Sourcing speichert Systemzustand als Sequenz von Ereignissen.
Details:
- Publish-Subscribe: Nachrichtenaustauschmechanismus, bei dem Sender (Publisher) Ereignisse veröffentlichen und Empfänger (Subscriber) sich für diese Ereignisse anmelden.
- Niedrige Kopplung zwischen Komponenten.
- Unterschiedliche Channels/Themen für verschiedene Ereignisse.
- Event Sourcing: Zustand eines Systems wird durch eine vollständige Historie aller stattgefundenen Ereignisse abgebildet.
- Ereignisse sind unveränderlich und werden in einer Ereignislog gespeichert.
- Ermöglicht Rekonstruktion des Systemzustands durch Replay der Ereignisse.
Konsistenzmodelle und Synchronisationstechniken in verteilten Systemen
Definition:
Konsistenzmodelle und Synchronisationstechniken in verteilten Systemen betreffen die Methoden zur Gewährleistung von Datenkonsistenz und Koordination zwischen verteilten Speicherinstanzen.
Details:
- Gängige Konsistenzmodelle: Starke Konsistenz, Eventual Consistency, Weak Consistency
- Quorum-Based Consistency: Lese-/Schreib-Quoren (\text{R} + \text{W} > \text{N})
- CAP-Theorem: Trade-offs zwischen Konsistenz (C), Verfügbarkeit (A), und Partitionstoleranz (P)
- Synchronisationstechniken: Mutex (Mutual Exclusion), Lamport-Zeitstempel, Sequenznummern, verteilte Sperren
- Locking-Mechanismen: Pessimistisches Sperren, Optimistisches Sperren
- Ziel: Minimierung von Inkonsistenzen und Vermeidung von Race Conditions
Protokolle für den Nachrichtenaustausch (MQTT, AMQP)
Definition:
Protokolle für den Nachrichtenaustausch (MQTT, AMQP) ermöglichen Kommunikation in ereignisgesteuerten Systemen.
Details:
- MQTT: Leichtgewichtiges Protokoll für Machine-to-Machine (M2M) Kommunikation.
- AMQP: Zuverlässiges, plattformunabhängiges Messaging-Protokoll.
- MQTT Merkmale: Nutzung von Publish/Subscribe-Architektur, geringe Bandbreite
- AMQP Merkmale: Nachrichtenvermittler, Unterstützung von Queueing, Transaktionen
- Nutzungsbeispiele: IoT (MQTT), Unternehmensanwendungen (AMQP)
- Vorteile: Effiziente Netzwerkressourcennutzung (MQTT), Garantie der Nachrichtenübertragung und Verteilung (AMQP)
Planungsalgorithmen und Prioritätensetzung in Echtzeitsystemen
Definition:
Planungsalgorithmen und Prioritätensetzung in Echtzeitsystemen bestimmen, wie Aufgaben mit unterschiedlichen Zeitanforderungen effizient ausgeführt werden.
Details:
- Planungsalgorithmen: FCFS, SJF, RR, EDF, RM
- FIFO (First In, First Out): Abfolge nach Eingang
- SJF (Shortest Job First): Kürzeste Aufgabe zuerst
- RR (Round-Robin): Rotierende Zuteilung von Zeitfenstern
- EDF (Earliest Deadline First): Frühestes Fälligkeitsdatum zuerst
- RM (Rate Monotonic): Kürzere Perioden haben höhere Priorität
- Prioritätensetzung: Statische und dynamische Zuweisung
- Statisch: Feste Prioritäten vorab definiert
- Dynamisch: Prioritäten ändern sich zur Laufzeit
Echtzeitbetriebssysteme (RTOS)
Definition:
Betriebssysteme, die deterministische Reaktionen auf externe Ereignisse bieten, insbesondere in zeitkritischen Anwendungen.
Details:
- Zeitverhalten: Genau definierte und vorhersagbare Zeitgrenzen.
- Aufgabenplanung: Verwenden von Prioritäten, Preemption und Scheduling-Algorithmen.
- Typen: harter und weicher Echtzeitbetrieb (je nach Toleranz für Deadline-Verletzungen).
- Anwendungsbeispiele: Industrielle Steuerungen, Automobilbereich, Telekommunikation.
Middleware-Typen: Message-Oriented Middleware und Object Middleware
Definition:
Erläutere Middleware-Typen in Bezug auf nachrichtenorientierte und objektorientierte Ansätze.
Details:
- Nachrichtenorientierte Middleware (Message-Oriented Middleware, MOM): baut auf Nachrichtenwarteschlangen auf, um Kommunikation zwischen verteilten Systemen zu ermöglichen.
- Objekt-Middleware: Erlaubt entfernten Objekten direkte Interaktion über verteilte Systeme hinweg.
- Beispiele für MOM: RabbitMQ, Apache Kafka
- Beispiele für Objekt-Middleware: CORBA, RMI
- Vorteile MOM: Asynchronität, Entkopplung der Systeme
- Vorteile Objekt-Middleware: Direkte Methodenausführung, geringerer Overhead bei synchroner Kommunikation
- Anwendungskontexte: MOM ideal für lose gekoppelte Systeme, Objekt-Middleware für Systeme, die direkte und synchrone Methodenaufrufe erfordern.
Sicherheitsaspekte im Nachrichtenaustausch
Definition:
Sicherheitsaspekte im Nachrichtenaustausch beziehen sich auf Maßnahmen und Protokolle, die die Vertraulichkeit, Integrität und Authentizität der übertragenen Nachrichten gewährleisten.
Details:
- Vertraulichkeit: Nachrichteninhalte für unbefugte Dritte unzugänglich machen (z.B. mittels Verschlüsselung).
- Integrität: Sicherstellen, dass Nachrichten während der Übertragung nicht verändert werden (z.B. durch Hash-Funktionen).
- Authentizität: Überprüfung der Identität der Kommunikationspartner (z.B. durch digitale Signaturen).
- Verfügbarkeit: Schutz der Nachrichtendienste vor Ausfällen (z.B. durch redundante Systeme).
- Sichere Protokolle: Einsatz sicherer Kommunikationsprotokolle wie TLS/SSL.