Schichtenarchitektur

Die Notwendigkeit von Struktur: Warum Schichtenarchitektur?

Ein Haus bauen: Struktur ist unverzichtbar

Stell dir vor, du baust ein Haus ohne klaren Plan, während Elektriker:innen, Installateur:innen und Tischler:innen gleichzeitig ohne Absprache arbeiten. Das Ergebnis wäre chaotisch und ineffizient, was zu Fehlern, Verzögerungen und einer potenziell instabilen Struktur führen würde.

Software: Ohne klare Struktur entstehen chaotische Systeme

Die Softwareentwicklung ist mit ähnlichen Komplexitäten konfrontiert. Je größer und komplizierter die Systeme werden, desto entscheidender wird es, ihre verschiedenen Komponenten und deren Interaktionen effizient zu verwalten. An diesem Punkt kommt die Schichtenarchitektur ins Spiel, die eine klare Strukturierung und Trennung der Verantwortlichkeiten ermöglicht, was letztlich zur Stabilität und Wartbarkeit des gesamten Systems beiträgt. Ohne diese Struktur würden Entwicklungsprozesse ineffizient, fehleranfällig und schwer wartbar werden.

Schichtenarchitektur: Komplexität durch Struktur beherrschen

Ähnlich wie beim schrittweisen Bau eines Hauses wird auch in der Softwareentwicklung die Architektur in verschiedene Schichten unterteilt, wobei jede Schicht eine spezifische Verantwortung übernimmt. Diese klare Trennung der Aufgabenbereiche vereinfacht nicht nur die Entwicklung, sondern auch die Wartung und Weiterentwicklung des Systems. Durch diese Aufteilung entsteht ein robusteres und besser verwaltbares System, das den wachsenden Anforderungen gerecht wird und gleichzeitig die Komplexität handhabbar macht.

dec-it-basics-patterns-layered-architecture_necessity.svg

Was sind Schichten?

Schichten: Die Bausteine eines Systems

Jede Schicht stellt eine bestimmte Abstraktionsebene innerhalb des Systems dar. Niedrigere Schichten stellen den darüber liegenden Schichten Dienste zur Verfügung, wobei sie die Komplexität abstrahieren und es den höheren Schichten ermöglichen, ihre Aufgaben zu erledigen.

Kommunikation: Eine vertikale Hierarchie

Die Kommunikation zwischen den Schichten folgt einer strikten vertikalen Hierarchie. Eine Schicht kann nur mit der unmittelbar darunter liegenden Schicht interagieren und Dienstleistungen über klar definierte Schnittstellen anfordern. Diese klar definierte Kommunikation sorgt dafür, dass Änderungen in einer Schicht kontrolliert und mit minimalen Auswirkungen auf andere Schichten umgesetzt werden können.

dec-it-basics-patterns-layered-architecture_communication.svg

Welche Vor- und Nachteile bietet die Schichtenarchitektur?

Vorteile

Modularität: Schichten können unabhängig entwickelt und getestet werden, was die Wiederverwendbarkeit des Codes und schnellere Entwicklungszyklen fördert.

Wartbarkeit: Änderungen innerhalb einer Schicht haben minimale Auswirkungen auf andere, was die Wartung vereinfacht und das Risiko neuer Fehler reduziert.

Skalierbarkeit: Neue Schichten können hinzugefügt oder bestehende geändert werden, ohne dass sich dies auf das gesamte System auswirkt, was eine leichtere Anpassung an veränderte Anforderungen ermöglicht.

Nachteile

Performance-Overhead: Der schichtweise Aufbau kann aufgrund der Kommunikation zwischen den Schichten zu einem gewissen Leistungsmehraufwand führen.

Komplexität der bereichsübergreifenden Funktionen: Die Implementierung von Funktionen, die mehrere Schichten betreffen (z. B. Sicherheit, Logging), kann herausfordernd sein.

dec-it-basics-patterns-layered-architecture_advantages.svg

Beispiel: Online eine Pizza bestellen

Ein schichtweiser Ansatz für die Pizzalieferung

Stell dir vor, du bestellst online eine Pizza:

Die Präsentationsschicht stellt die Website oder App dar, die du zur Bestellung verwendest. Die Geschäftslogikschicht verarbeitet deine Bestellung, überprüft die Zahlung und sendet sie an die Küche. Die Datenzugriffsschicht interagiert mit der Datenbank, um Menüpunkte abzurufen, Bestelldetails zu speichern und Kundeninformationen zu verwalten.

Kommunikationsfluss: Von der Bestellung bis zur Lieferung

Zuerst gibst du eine Bestellung über die Präsentationsschicht auf. Dann validiert die Geschäftslogikschicht deine Bestellung und verarbeitet die Zahlung. Anschließend speichert die Datenzugriffsschicht deine Bestelldetails und ruft die notwendigen Informationen für die Küche ab. Zum Schluss erhält die Küche die Bestellung, bereitet deine Pizza zu und sendet sie zur Lieferung.

dec-it-basics-patterns-layered-architecture_pizza.svg

Lernziele

  • die Nachteile einer geschichteten Architektur erklären, wobei die Hauptnachteile (d.h. verringerte Effizienz, nicht klar zuweisbare Mechanismen über Schichten hinweg) anhand konkreter Szenarien klar beschrieben werden müssen.
  • die Vorteile einer geschichteten Architektur erklären, wobei die Hauptvorteile (d.h. Austauschbarkeit der Komponenten, die Schichtdienste realisieren, Abstraktion der Komplexität) anhand konkreter Szenarien klar beschrieben werden müssen.
  • die Kommunikation in einer geschichteten Architektur veranschaulichen, wobei die Kommunikationsflüsse korrekt erklärt werden müssen.
  • wie die Schichten vertikal miteinander interagieren abzurufen, wobei die Interaktionsmechanismen (d.h. untere Schichten bieten oberen Schichten Dienste an, obere Schichten nutzen Dienste der unteren Schichten) korrekt beschrieben werden müssen.
  • die Notwendigkeit von geschichteten Architekturen erklären, wobei die Hauptgründe und -merkmale (d.h. „Trennung der Zuständigkeiten“ durch Definition von Diensten, aber nicht deren Implementierung für verschiedene Schichten) klar erläutert und durch Fallbeispiele belegt werden müssen.

Genug gelesen? Zeit, es wirklich zu können!

Die Theorie aus diesem Artikel ist die perfekte Basis. In der asyoube Lernplattform wendest du dieses Wissen an, bekommst persönliches Feedback und bereitest dich interaktiv auf deine Ausbildung oder deine Prüfungen vor.

Für Ausbilder & Unternehmen

Möchten Sie Ihr gesamtes Team mit asyoube ausbilden? Entdecken Sie unsere B2B-Lösung mit einfacher Verwaltung, Fortschritts-Tracking für Ihre Azubis und attraktiven Team-Preisen.