Die Schichtenarchitektur (auch Schichtenmodell oder Schichtenmuster) ist ein häufig angewandtes Strukturierungsprinzip für die Architektur von Softwaresystemen. Dabei werden einzelne Aspekte des Softwaresystems konzeptionell einer Schicht (engl. tier oder layer) zugeordnet. Die höhere Schicht greift immer auf die niedrigere Schicht zu. Die niedrigere Schicht ist also ein Dienstanbieter der höheren. Die den Schichten zugeordneten Aspekte können dabei je nach Art des Systems oder Detaillierungsgrad der Betrachtung z. B. Funktionalitäten, Komponenten oder Klassen sein (Vergleiche https://de.wikipedia.org/wiki/Schichtenarchitektur).
Für einen relativ groben Detaillierungsgrad kann man z.B die Client-Server-Architiktur als Zwei-Schichten-Architektur beschreiben. Ein Client nutzt Dienste eine Servers. In einen Netzwerk können PCs genutzt werden, um Daten zu verarbeiten. Die PCs speichern dann ihre Daten auf einem zentralen Server. Der Server bietet das Speichern der Daten als Dienst an, hat aber keinen Zugriff auf die PCs. Die PCs nutzen den Dienst des Servers. Eine Client-Server-Architekturen muss aber nicht notwendigerweise mittels unterschiedlicher Rechner realisiert sein, vielmehr kann der Client auch als ein Software-Modul verstanden werden, das auf ein zweites Software-Modul z.B, ein Datenbank Management System auf demselben Rechner, meist innerhalb derselben Anwendung zugreift.
Eine dreischichtige Architektur ist eine detaillierte Betrachtung einer Architektur. Im Gegensatz zur zweischichtigen Architektur existiert bei der dreischichtigen Architektur noch eine zusätzliche Schicht, oftmals die Logikschicht. Eine typische Drei-Schichten-Architektur besteht aus den folgenden Schichten:
Die Präsentationsschicht ist für die Darstellung der Daten und Benutzereingaben verantwortlich. Diese Schicht kann z,B, durch Java-Swing oder HTML realisiert werden.
Die Logikschicht beinhaltet alle Geschäftsobjekte und die automatisierten Prozesse zur Datenverarbeitung. Sie wird in der Regel durch objektorientierte Programmiersprachen wie z.B. Java realisiert.
Die Datenhaltungsschicht ist verantwortlich für das Speichern und Laden von Daten. Für einfache Anwendungen, kann das Speichern von Daten z.B. in Text-Dateien auf der Festplatte realisiert werden. Für komplexere Anwendungen wird der Einsatz eines Datenbank Management Systems bevorzugt.
Die Architektur lässt sich innerhalb eines Software-Systems umsetzen. Software-Module werden für die Präsentation, Anwendungslogik und dauerhafte Speicherung von Daten vorgesehen und gemäß der Schichteneinteilung voneinander entkoppelt. Eine solche Drei-Schichten-Architektur gilt üblicherweise als das Mindestmaß architektonischer Strukturierung, sofern keine zwingenden Gründe für andere Architekturentscheidungen vorliegen.