Die schichtenbasierte Architektur – Einfach, aber nicht für alle Anwendungsfälle geeignet

08.12.2023

In diesem Teil unserer Blog-Serie über Softwarearchitekturstile schauen wir uns die schichtenbasierte Architektur genauer an. Eine prägnante Zusammenfassung dieses Stils finden Sie am Ende als Bild.

Was die schichtenbasierte Architektur kann

In der Welt der Softwarearchitektur gibt es verschiedene Ansätze, um die Struktur und Organisation von Systemen zu gestalten. Einer dieser Ansätze ist die schichtenbasierte Architektur, die eine einfache und naheliegende Lösung bietet. In diesem Blogpost werden wir uns näher mit der schichtenbasierte Architektur befassen, ihre Einsatzgebiete sowie Vor- und Nachteile betrachten.

Die schichtenbasierte Architektur besteht aus verschiedenen Schichten, die jeweils spezifische Verantwortlichkeiten haben. Grundsätzlich gibt es keine Einschränkungen für die Anzahl oder Art der Schichten, aber die meisten Architekturen dieser Art bestehen aus den drei Standardschichten: Präsentation, Geschäftslogik und Persistenz bzw. Datenbank. Diese Schichten können entweder in einem Monolithen oder in verschiedenen physischen Komponenten umgesetzt werden.

Das Grundprinzip der schichtenbasierte Architektur ist die „Separation of Concerns“ (Trennung der Verantwortlichkeiten). Jede Schicht hat ihre eigenen Aufgaben und kann nur auf die nächst untere Schicht zugreifen. Die Präsentationsschicht muss nicht wissen, wie Geschäftsdaten gespeichert werden, und die Geschäftslogikschicht muss nicht wissen, wie die Daten repräsentiert werden. Ein direkter Zugriff auf eine übergeordnete Schicht ist nicht erlaubt.

Es ist wichtig, dass die Schichten nur mit der unmittelbar darunterliegenden Schicht interagieren. Andernfalls entstehen starke Kopplungen, die die Entwicklungsgeschwindigkeit beeinträchtigen und zu unerwarteten Problemen führen können.

Die schichtenbasierte Architektur eignet sich besonders gut für kleine Projekte mit begrenztem Budget und engem Zeitplan. In solchen Fällen kann eine einfache Architektur, die schnell implementiert werden kann, von Vorteil sein. Auch wenn die Kundenanforderungen noch nicht ausreichend sind, um eine komplexe Architekturplanung durchzuführen, kann die schichtenbasierte Architektur als Ausgangspunkt dienen.

Allerdings ist die schichtenbasierte Architektur nicht für mittelgroße bis große Systeme geeignet. Mit zunehmender Komplexität können Wartbarkeit, Testbarkeit, Agilität und Bereitstellbarkeit nicht mehr gewährleistet werden.

Die schichtenbasierte Architektur bietet mehrere Vorteile. Durch die lose Kopplung der Schichten gestaltet sich der Austausch dieser sehr einfach. Auch die Einfachheit und die weite Verbreitung des Stils wirkt sich positiv auf den Entwicklungsprozess aus. So fallen die Entwicklungskosten tendenziell geringer aus, da die Architektur gut bekannt und verstanden ist. Jede Schicht kann separat getestet werden, was die Qualitätssicherung verbessert.

Jedoch gibt es auch Nachteile der schichtenbasierte Architektur. Bei Änderungen oder neuen Features müssen meist Anpassungen in allen Schichten vorgenommen werden, was einen hohen Koordinationsaufwand mit sich bringt. Bei monolithischer Umsetzung muss das gesamte System bei jeder Änderung komplett neu ausgeliefert werden. Änderungen können zu unerwarteten Randbedingungen führen, und Änderungen in einer Schicht ziehen oft Änderungen in anderen Schichten nach sich. Das Zusammenspiel aller Schichten ist schwierig zu testen, und die Skalierung einzelner Schichten in Bezug auf Last ist herausfordernd. Aufgrund der monolithischen Struktur teilen sich alle Schichten die Ressourcen, was zu einem Gesamtausfall führen kann. Ein Neustart des Systems dauert aufgrund der monolithischen Struktur länger, und das System kann nicht unbegrenzt wachsen, da die Skalierung nur vertikal erfolgen kann. Unter der Annahme, dass man keinen Loadbalancer benutzt.

Fazit

Insgesamt ist die schichtenbasierte Architektur eine einfache und gut verständliche Lösung, die für bestimmte Anwendungsfälle geeignet ist. Für kleine Projekte mit begrenztem Budget und straffen Zeitplänen kann sie eine effiziente Wahl sein. Allerdings müssen die potenziellen Nachteile in Betracht gezogen werden, insbesondere wenn es um die Skalierbarkeit, Flexibilität und Wartbarkeit von mittelgroßen bis großen Systemen geht. Eine sorgfältige Abwägung der Anforderungen und eine angemessene Planung sind entscheidend, um die richtige Architektur für das jeweilige Projekt zu wählen.

Disclaimer: Der Architektur-Spicker basiert zu großen Teilen auf dem Buch Handbuch moderner Software-Architektur von O’Reilly. Für tiefergehende Informationen empfehlen wir dieses Buch zu kaufen.

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*