Erläutern Sie die allgemeinen Design-Paradigmen für layerbasierte Systeme anhand einer Skizze.
Warum ist ein Aufteilen in Schichten/Layer/Ebenen wichtig und sinnvoll ?
Um zu ermöglichen, das jede Schicht problemloser einen anderen Aspekt implementieren kann.
Um unterschiedliche Anbieter für einzelnen Schichten einsetzen zu können
Um jede Schicht auf einem eigenen Rechner implementieren zu können. Es können aber auch mehrere Schichten auf einem Rechner installiert werden.
Um eine Skalierbarkeit auf jeder Schicht (bis auf Datenbank) zu ermöglichen.
Erläutern Sie das Schichtenmodell betrieblicher Anwendungssysteme und ordnen Sie jeder Schicht mögliche Umsetzungstechnologien zu.
Schichten verteilter Anwendungen:
Präsentationsschicht
—> Visualisierung der Anwendung für den Nutzer
Stellt die Schnittstelle zum Anwender dar (GUI)
Anwendungslogikschicht
—> “Datenverarbeitung” je nach Geschäftsbereich
Abildung der Anwendungslogik durch Bearbeitung und Beantwortung der Anfragen des Clients
Datenhaltungsschicht
—> Datenzugriffsschicht, Datenspeicher
Zugriff und Verwaltung der Daten der Anwendung
Welche tier-Modellformen können Sie aus dem Schichtenmodell ableiten ? Welche Vor- und Nachteile haben die einzelnen Architekturmodelle ?
Monolithische Architektur:
Form:
Einzelne, eigenständige Anwendungseinheit.
Alle Funktionen und Komponenten in einem Code-Monolithen.
Vorteile:
Einfache Entwicklung und Wartung.
Geringe Komplexität in kleinen Anwendungen.
Nachteile:
Skalierungsprobleme bei wachsender Komplexität.
Schwierige Wartbarkeit und Erweiterbarkeit.
2-Tier-Architektur:
Zwei Hauptkomponenten: Client und Server
Geschäftslogik auf dem Server, Benutzeroberfläche auf dem Client
Klare Trennung von Präsentation und Logik
Einfacher als Monolith, skalierbarer als Monolith
Starke Kopplung zwischen Client und Server
Begrenzte Sklarierbarkeit bei steigender Benutzerzahl
3-Tier-Architektur:
Drei Hauptkomponenten: Präsentationsschicht, Anwendungsschicht, Datenbankschicht
Trennung von Benutzeroberfläche, Geschäftslogik und Datenbankzugriff
Bessere Skalierbarkeit und Wartbarkeit als 2-Tier.
Klare Strukturierung für komplexe Anwendungen.
Sicherheit, Zugriff auf die Business Logik auch über Web möglich
Komplexität steigt mit jeder Schicht
Welche wichtigen Kriterien/ Eigenschaften haben Microservices (ganz grob) und wann würden Sie Microservices zum Einsatz bringen ?
Kriteren/Eigenschaften:
jeder Service organisiert eine begrenze Menge von Business-Funktionen
haben ihren eigenen Lifecycle, entstehen oft in einem (agilen) Projekt-Team
... dadurch gut geeignet für die agile Vorgehensweise
laufen immer in einem eigenen Prozess,
folgen dem Ansatz der losen Kopplung, d.h. Absolute Vermeidung von synchroner Kommunikation.
Microservices wann anwenden ?
Abgrenzbare E-Commerce-Anwendung
klassische Portale, die unterschiedliche Funktionen zusammenführen müssen
Ergänzung einer monolithischen Anwendung
Was wird mit Microservices adressiert und was unterscheidet generell Microservices von layerbasierten Architekturen ? (vertikal vs. horizontal)
Adressierung:
Organisiert Anwendungen in kleine, unabhängige Dienste (Microservices)
Unterschied zu layerbasierten Architekturen:
Vertikal vs. Horizontal:
Microservices (Vertikal): Aufteilung nach Geschäftsfunktionen.
Layerbasierte Architekturen (Horizontal): Aufteilung nach Schichten (Präsentation, Logik, Datenbank).
Zuletzt geändertvor einem Jahr