Layered Architecture (Schichtenarchitektur)
Beschreibung: Diese Architektur unterteilt das System in hierarchische Schichten, wobei jede Schicht eine spezifische Rolle übernimmt. Typische Schichten sind Präsentation, Geschäftslogik, Datenzugriff und Datenbank.
Vorteil: Trennung von Anliegen erleichtert Wartung und Erweiterbarkeit. Jede Schicht kann unabhängig entwickelt und getestet werden.
Pipeline Architecture?
Beschreibung: Daten durchlaufen eine Abfolge von Verarbeitungsschritten (Stages), wobei jede Stage eine spezifische Aufgabe erfüllt und die Daten dann an die nächste Stage weitergibt.
Vorteil: Erleichtert die parallele Verarbeitung und die Skalierbarkeit. Änderungen an einer Stage erfordern keine Änderungen an den anderen Stages.
Z.B. Command line
Service-based Architecture unterschied zur Microservice Architektur?
Größe der Dienste
SBA: Größere, weniger granulare Dienste.
MSA: Kleinere, hochgranulare Dienste.
Kommunikation
SBA: Meist synchron (REST, SOAP).
MSA: Sowohl synchron als auch asynchron (Message Queues, Events).
Deployment
SBA: Gemeinsame Bereitstellung und Skalierung mehrerer Dienste.
MSA: Unabhängige Bereitstellung und Skalierung einzelner Microservices.
Datenhaltung
SBA: Gemeinsame oder zentrale Datenbank.
MSA: Jede Microservice hat seine eigene Datenbank.
Teamstruktur
SBA: Teams arbeiten an mehreren Diensten.
MSA: Teams sind auf einzelne Microservices fokussiert.
Service-based Architecture?
Beschreibung: Das System besteht aus einer Sammlung von Diensten, die über eine gemeinsame Kommunikationsschnittstelle (z.B. HTTP, REST) miteinander interagieren. Jeder Dienst ist für eine spezifische Geschäftslogik zuständig.
Vorteil: Flexibilität und Wiederverwendbarkeit. Dienste können unabhängig entwickelt, bereitgestellt und skaliert werden.
Grobgranulare Dienste fungieren als unabhängige Teile einer Anwendung. Typischerweise 4 bis 12 Dienste pro Anwendung.
Dienste teilen sich eine einzige monolithische Datenbank.
Möglichkeit zur Zerlegung einer einzelnen monolithischen Datenbank in separate Datenbanken
API-Schicht?
Reverse-Proxy?
API-Gateway?
Vorteile?
Reverse-Proxy: Ein Server, der Anforderungen von Clients entgegennimmt und an den entsprechenden Backend-Server weiterleitet. Der Reverse-Proxy fungiert dabei als Vermittler, der die Kommunikation steuert.
API-Gateway: Ein spezialisierter Reverse-Proxy, der zusätzliche Funktionen wie Authentifizierung, Autorisierung, Lastverteilung, Caching, Monitoring und Protokollkonvertierung bietet.
Die Vorteile einer API-Schicht kurz zusammengefasst:
Sicherheit: Zentralisierte Authentifizierung, Schutz vor Angriffen.
Skalierbarkeit: Lastverteilung und Caching verbessern die Leistung.
Flexibilität: Protokollkonvertierung und API-Versionierung.
Überwachung: Zentralisiertes Monitoring und Analytik.
Diese Schicht verbessert die Kommunikation zwischen Frontend und Backend, erhöht die Sicherheit und optimiert die Gesamtleistung.
Microkernel Architecture (Plug-in-Architektur)?
Beschreibung: Ein Kernsystem (Microkernel) bietet grundlegende Dienste, während zusätzliche Funktionalitäten als Plug-ins hinzugefügt werden können. Der Microkernel verwaltet die Interaktion zwischen den Plug-ins.
Vorteil: Erleichtert die Anpassung und Erweiterung des Systems. Plug-ins können unabhängig entwickelt und aktualisiert werden.
Event-driven Architecture (Ereignisgesteuerte Architektur)?
Beschreibung: Komponenten kommunizieren über Ereignisse. Ein Ereignis wird von einer Komponente ausgelöst und von anderen Komponenten, die sich für dieses Ereignis interessieren, verarbeitet.
Vorteil: Hohe Entkopplung der Komponenten. Flexibilität und Skalierbarkeit durch asynchrone Kommunikation.
Ausschließlich asynchrone Kommunikation.
Die Broker-Topologie unterscheidet sich von der Mediator-Topologie dadurch, dass es keinen zentralen Ereignismediator gibt.
Broker Technologie (asynchron - nicht zentraler Mediator - Broadcast)
Mediator-Topologie - Zentraler Ereignismediator, kontrolliert und verwaltet auslösende Ereignisse
Space-based Architecture?
Beschreibung: Das System wird in verteilte Speicherbereiche (Spaces) unterteilt, die Daten und Statusinformationen halten. Komponenten kommunizieren über den gemeinsamen Speicherraum.
Vorteil: Hohe Skalierbarkeit und Verfügbarkeit durch verteilten Speicher und parallele Verarbeitung.
Prozessoren kommunizieren und synchronisieren sich durch gemeinsam genutzten Speicher. Tuples fungieren als Datenobjekte, die von mehreren Prozessoren gleichzeitig abgerufen werden können.
Keine direkte Kommunikation zwischen Produzenten und Konsumenten erforderlich
Konsumenten können Daten nach bestimmten Mustern abrufen, ohne genaue Kenntnis über die Quelle der Daten.
Hochgradig skalierbar und elastisch, da kein Engpass durch eine zentrale Datenbank
Logische Partitionierung der Datenbank?
Idee: Auswirkung von Datenbankänderungen
durch logische Partitionierung der Datenbank
und entsprechende föderierte Bibliotheken
abmildern
Beispiel:
• Datenbank in fünf separate Domänen
partitionieren: Allgemein, Kunde,
Rechnungsstellung, Bestellung, Nachverfolgung
• Fünf Bibliotheken, die den logischen Partitionen
der Datenbank zugeordnet sind
• Änderungen in einem bestimmten logischen
Bereich (z.B. Rechnungsstellung) betreffen nur
die entsprechende geteilte Bibliothek und damit
nur die Services, die diese nutzen è keine
Auswirkungen auf andere Services
Orchestration-driven Service-oriented Architecture?
Beschreibung: Dienste werden durch eine zentrale Orchestrierungskomponente koordiniert, die die Reihenfolge und Interaktion der Dienste steuert, um Geschäftsprozesse abzubilden.
Vorteil: Klare Kontrolle und Übersicht über Geschäftsprozesse. Erleichtert die Verwaltung komplexer Abläufe.
Microservices Architecture?
Beschreibung: Das System wird in kleine, unabhängige Dienste zerlegt, die jeweils eine spezifische Geschäftslogik kapseln und über APIs miteinander kommunizieren.
Vorteil: Hohe Flexibilität, Skalierbarkeit und Wartbarkeit. Jeder Microservice kann unabhängig entwickelt, bereitgestellt und skaliert werden.
Last changed6 months ago