Mehrschichten Architektur
Einführung
Die Schichtenarchitektur (auch Schichtenmodell oder Schichtenmuster) ist ein grundlegendes und häufig angewandtes Strukturierungsprinzip für die Architektur von Softwaresystemen. Dabei werden einzelne Aspekte des Softwaresystems konzeptionell einer spezifischen Schicht (engl. tier oder layer) zugeordnet.
Ein zentrales Prinzip dieses Modells ist die unidirektionale Abhängigkeit: Eine höhere Schicht greift immer nur auf die Dienste der direkt darunterliegenden Schicht zu. Die niedrigere Schicht fungiert somit als Dienstanbieter (Server) für die höhere Schicht (Client). Die den Schichten zugeordneten Aspekte können je nach Art des Systems oder Detaillierungsgrad der Betrachtung beispielsweise Funktionalitäten, Hard- und Software-Komponenten oder einzelne Klassen sein.
Ziel der Schichtenarchitektur ist die Entkopplung von Systemkomponenten (Separation of Concerns), was die Wartbarkeit, Austauschbarkeit und Erweiterbarkeit von Software erheblich verbessert.
Zwei-Schichten-Architektur
Für einen relativ groben Detaillierungsgrad lässt sich beispielsweise die klassische Client-Server-Architektur als Zwei-Schichten-Architektur (Two-Tier Architecture) beschreiben. Ein Client nutzt dabei die Dienste eines Servers.
Beispiel aus der Netzwerktechnik: In einem lokalen Netzwerk (LAN) werden Arbeitsplatzrechner (Clients) genutzt, um Daten einzugeben oder abzufragen. Diese Rechner speichern ihre Daten nicht lokal, sondern auf einem zentralen Server. Der Server bietet das Speichern und Abrufen der Daten als Dienst an, greift aber von sich aus nicht aktiv auf die Clients zu. Die Clients hingegen initiieren die Kommunikation und nutzen den Dienst des Servers.
Eine Client-Server-Architektur muss jedoch nicht zwingend über unterschiedliche physische Rechner (Hardware) realisiert werden. Vielmehr kann der Client auch als reines Software-Modul verstanden werden, das auf ein zweites Software-Modul – beispielsweise ein lokales Datenbankmanagementsystem (DBMS) – auf demselben Rechner innerhalb derselben Anwendung zugreift.
Drei-Schichten-Architektur
Eine dreischichtige Architektur (Three-Tier Architecture) erlaubt eine deutlich detailliertere und professionellere Strukturierung eines Softwaresystems. Im Gegensatz zur zweischichtigen Architektur existiert hier eine zusätzliche vermittelnde Schicht, die sogenannte Logikschicht. Dies verhindert, dass die Benutzeroberfläche direkt mit der Datenbank kommuniziert.
Eine typische Drei-Schichten-Architektur besteht aus den folgenden drei Schichten:
- Präsentationsschicht (Presentation Layer):
- Sie ist ausschließlich für die grafische Darstellung der Daten und die Erfassung von Benutzereingaben (GUI) verantwortlich.
- Sie enthält keine Anwendungslogik. Realisiert wird diese Schicht in der Praxis beispielsweise durch Frameworks wie Java-Swing, JavaFX oder durch HTML/CSS in Webanwendungen.
- Logikschicht (Business Logic Layer / Application Layer):
- Sie bildet das Herzstück der Anwendung und beinhaltet alle Geschäftsobjekte sowie die automatisierten Prozesse zur Datenverarbeitung.
- Sie nimmt die Eingaben der Präsentationsschicht entgegen, verarbeitet diese nach definierten Geschäftsregeln und leitet sie an die Datenhaltung weiter. Realisiert wird sie in der Regel durch objektorientierte Programmiersprachen wie Java oder C#.
- Datenhaltungsschicht (Data Layer):
- Diese Schicht ist isoliert für das dauerhafte Speichern (Persistenz), Ändern und Laden von Daten verantwortlich.
- Für rudimentäre Anwendungen kann das Speichern in einfachen Text- oder XML-Dateien auf der Festplatte erfolgen. Für professionelle und komplexe Anwendungen wird standardmäßig der Einsatz eines Datenbankmanagementsystems (z. B. MySQL, PostgreSQL) vorausgesetzt.
Fazit und architektonische Bedeutung
Die Drei-Schichten-Architektur lässt sich systematisch innerhalb des Software-Engineerings umsetzen. Software-Module werden strikt für die Präsentation, die Anwendungslogik und die dauerhafte Speicherung von Daten vorgesehen und gemäß der Schichteneinteilung voneinander entkoppelt.

Ändert sich beispielsweise das Datenbanksystem (Datenhaltungsschicht), müssen die Präsentations- und Logikschicht im Idealfall nicht angepasst werden. Eine solche Drei-Schichten-Architektur gilt in der professionellen Anwendungsentwicklung üblicherweise als das Mindestmaß architektonischer Strukturierung, sofern keine zwingenden Gründe (z. B. bei hochkomplexen Microservices) für andere Architekturentscheidungen vorliegen.