Three-Tier-Architektur

Eine Multi-Tier-Architecture ist eine mehrgliedrige Schichtenarchitektur, die die Prinzipien zur Strukturierung von Software-Architekturen definiert. Die hierarchische Strukturierung mittels Schichten ist ein häufig angewendetes Architekturmuster. In diesen Zusammenhang sind die One-Tier-Architecture, die Two-Tier-Architecture und die Three-Tier-Architecture einzuordnen. Die genannten Architekturen werden häufig für Client-Server-Architekturen genutzt.

Die 3-Tier- Architektur besteht aus drei Tiers. Tier 1 steht für die Darstellungs- und Eingabeschicht, Tier 2 für den Geschäftsprozess und Tier 3 für die Daten und andere Ressourcen. Wie aus der Abbildung ersichtlich werden die grafische Benutzeroberfläche ( GUI) und das eigentliche fachliche Konzept separiert. Darunter liegt dann die Datenhaltungsschicht in der die Datenspeicherung stattfindet. Die Three-Tier-Architektur ist eine häufig verwendete Form von Architekturmustern bei der Erstellung von Software-Systemen. Aufgrund der strikten logischen Trennung der Schichten ist auch deren Anwendung in verteilten Systemarchitekturen üblich.

Three-Tier-Modell als Software-Architektur

Three-Tier-Architecture

Three-Tier-Architecture

Das Three-Tier-Modell ist eine Software-Architektur, die drei unterschiedliche Schichten - die Präsentationsschicht, die Anwendungsschicht und die Datenschicht. Das Schichtenmodell verdeutlicht den grundsätzlichen Zusammenhang. Dabei bildet die Präsentationsschicht die grafische Benutzeroberfläche (GUI) ab, über die der Benutzer direkt auf eine Webseite zugreifen kann. Diese Schicht kommuniziert mit den anderen Schichten und schickt die Ergebnisse an den Browser resp. die Client-Ebene. Die mittlere Schicht ist die Anwendungsschicht, auf ihr werden die fachlichen Anforderungen realisiert. Die Application Tier oder Logic Tier unterstützt den Geschäftsprozess und den Datenzugriff. Außerdem umfasst diese Schicht entsprechende Schnittstellen zum Zugriff auf die darunterliegende Datenschicht oder Datenhaltungschicht, die meist in Form einer Datenbank ausgeführt ist und die Speicherung und das Laden der Daten übernimmt.

Hinsichtlich der Ausprägung der Drei-Schichten-Architektur gibt es zwei unterschiedliche Möglichkeiten; die strenge und die flexible Trennung der drei Schichten. Bei der strengen Trennung kann jede Schicht nur auf die direkt darunter angeordnete zugreifen. Der Vorteil dieser Anordnung ist die strikte Unabhängigkeit der Benutzeroberfläche von der Datenhaltungsschicht. Eine höhere Flexibilität erreicht man, wenn die GUI-Schicht zusätzlich direkt auf die Datenhaltungsschicht zugreifen kann. Eine Verwendung des jeweiligen Stils ist im Hinblick auf die einhergehenden Faktoren wie Wartbarkeit, Änderbarkeit und Portabilität im konkreten Zusammenhang abzuwägen.

Das Charakteristikum der 3-Tier-Architektur

Ein grundlegendes Charakteristikum der Three-Tier-Architektur ist es, dass weder die Fachkonzeptschicht noch die Datenhaltungsschicht auf die GUI-Schicht zugreifen können. Damit hat auch keine dieser beiden Schichten ein explizites Wissen hinsichtlich der Benutzungsoberfläche. Somit ist auch deren Entwicklung und Modifizierung unabhängig voneinander möglich, was dem heutigen Verständnis eines modernen Software-Engineerings entspricht. Hier spricht man auch von der Realisierung der Model-View-Architektur, wobei Model das Fachkonzept und View die Benutzeroberfläche abbildet. Dennoch muss eine Verbindung zur Anzeige und Eingabe von Daten der Fachkonzeptschicht durch die GUI-Schicht bestehen. Hierzu tauschen die Schichten Nachrichten auf Basis der folgenden Verfahren aus:

Polling Dabei fragt die GUI-Schicht in regelmäßigen Intervallen bei der Fachkonzeptschicht nach möglichen Modifizierungen an und sendet dazu diesbezügliche Nachrichten an die Fachkonzeptschicht. Dieses Verfahren ist jedoch wenig performant.

Indirekte Kommunikation Diese kann in der objektorientierten Programmierung auf Basis eines Entwurfsmusters - dem Observer-Muster - erfolgen. Dabei schickt die Fachkonzeptschicht bei Änderungen eine entsprechende Nachricht an die GUI-Schicht. Diese holt dann selbstständig die geänderten Daten ab.

Aufgrund der logischen Trennung der einzelnen Schichten ist die Drei-Schichten-Architektur gut skalierbar und somit verwendbar in verteilten Software-Architekturen. Eine strukturierte Verwendung der Architektur ist beispielsweise in der Zuordnung der GUI-Schicht zu den Workstations der Anwender, in der Ablage der Fachkonzeptschicht auf Workgroup-Servern und der zentralen Integration der Datenhaltungsschicht auf einem Datenbank-Server gegeben. Dabei gilt der Grundsatz, dass je höher die Schicht ist, diese umso besser einem Client zugeordnet werden kann. Umgekehrt gilt aber genauso; je niedriger eine Schicht ist, umso zentraler wird diese in die Software-Architektur eingebettet.

Informationen zum Artikel
Deutsch: Three-Tier-Architektur
Englisch: three-tier-architecture
Veröffentlicht: 15.07.2020
Wörter: 615
Tags: Entwicklung, Codierung
Links: Software-Architektur, Schicht, Architekturmuster, Indium, One-Tier-Architektur
Übersetzung: EN
Sharing: