Dreischichtige Architektur

menu icon

Dreischichtige Architektur

Die dreischichtige Architektur, die Anwendungen in drei logische und physische Datenverarbeitungsschichten aufteilt, ist die vorherrschende Softwarearchitektur für traditionelle Client-Server-Anwendungen.

Was ist dreischichtige Architektur?

Die dreischichtige Architektur ist eine etablierte Softwareanwendungsarchitektur,  die Anwendungen in drei logischen und physischen Datenverarbeitungsschichten organisiert: Die Darstellungsschicht oder Benutzerschnittstelle, die Anwendungsschicht, in der die Daten verarbeitet werden, und die Datenschicht, in der die der Anwendung zugeordneten Daten gespeichert und verwaltet werden.

Der Hauptvorteil der dreischichtigen Architektur besteht darin, dass jede Schicht auf ihrer eigenen Infrastruktur ausgeführt wird, jede Schicht gleichzeitig von einem eigenen Entwicklungsteam entwickelt und bei Bedarf aktualisiert oder skaliert werden kann, ohne die anderen Schichten zu beeinträchtigen.

Jahrzehntelang war dreischichtige Architektur die vorherrschende Architektur für Client-Server-Anwendungen. Heute sind die meisten dreischichtigen Anwendungen Ziele für eine Modernisierung unter Verwendung cloudnativer Technologien wie Container und Mikroservices sowie für eine Migration in die Cloud.

Die drei Schichten im Detail

Darstellungsschicht

Die Darstellungsschicht ist die Benutzerschnittstelle und die Kommunikationsschicht der Anwendung, in der der Endbenutzer mit der Anwendung interagiert. Ihr Hauptzweck ist die Anzeige von Informationen für den Benutzer und die Erfassung von Informationen vom Benutzer. Diese Schicht der höchsten Ebene kann beispielsweise in einem Web-Browser, als Desktopanwendung oder als grafische Benutzerschnittstelle (GUI) ausgeführt werden. Webdarstellungsschichten werden in der Regel mit HTML, CSS und JavaScript entwickelt. Desktopanwendungen können je nach Plattform in einer Vielzahl von Sprachen geschrieben werden.

Anwendungsschicht

Die Anwendungsschicht, die auch als logische Schicht oder Mittelschicht bezeichnet wird, ist das Herz der Anwendung. In dieser Schicht werden die in der Darstellungsschicht erfassten Informationen verarbeitet – manchmal gegenüber anderen Informationen in der Datenschicht – unter Verwendung von Geschäftslogik, einer speziellen Gruppe von Geschäftsregeln. Die Anwendungsschicht kann auch Daten in der Datenschicht hinzufügen, löschen oder ändern.

Die Anwendungsschicht wird in der Regel mit Python, Java, Perl, PHP oder Ruby entwickelt und kommuniziert mit der Datenschicht über API-Aufrufe. 

Datenschicht

In der Datenschicht, die manchmal als Datenbankschicht, Datenzugriffsebene oder Back-End bezeichnet wird, werden die von der Anwendung verarbeiteten Informationen gespeichert und verwaltet. Dies kann ein relationales  Datenbankverwaltungssystem wie PostgreSQL, MySQL, MariaDB, Oracle, DB2, Informix oder Microsoft SQL Server oder ein NoSQL-Datenbankserver wie Cassandra, CouchDB oder MongoDB sein. 

In einer dreischichtigen Anwendung durchläuft die gesamte Kommunikation die Anwendungsschicht. Die Darstellungsschicht und die Datenschicht können nicht direkt miteinander kommunizieren.

Schicht im Vergleich zu Ebene

In Verbindung mit der dreischichtigen Architektur wird Ebene  häufig synonym – und fälschlicherweise  – für  Schicht verwendet, wie bei „Darstellungsebene“ oder „Geschäftslogikebene“. 

Doch es gibt Unterschiede. „Ebene“ bezieht sich auf einen funktionalen Bereich der Software, wohingegen sich „Schicht“ auf einen funktionalen Bereich der Software bezieht, die auf einer von den anderen Bereichen getrennten Infrastruktur ausgeführt wird. Die App „Kontakte“ auf Ihrem Handy ist beispielsweise eine Anwendung mit drei Ebenen, aber eine einschichtige Anwendung,  weil alle drei Ebenen auf Ihrem Handy ausgeführt werden.

Der Unterschied ist wichtig, denn Ebenen bieten nicht die gleichen Vorteile wie Schichten.

Vorteile der dreischichtigen Architektur

Der Hauptvorteil der dreischichtigen Architektur ist die logische und physische Trennung der Funktionalität. Jede Schicht kann auf einem separaten Betriebssystem und einer separaten Serverplattform ausgeführt werden – z. B. Web-Server, Anwendungsserver, Datenbankserver – das oder die am besten zu den funktionalen Anforderungen passt. Und jede Schicht wird auf mindestens einer dedizierten Server-Hardware oder einem virtuellen Server ausgeführt, sodass die Services jeder Schicht ohne Auswirkungen auf die anderen Schichten angepasst und optimiert werden können. 

Weitere Vorteile (im Vergleich zu ein- oder zweischichtiger Architektur) :

  • Schnellere Entwicklung: Da jede Schicht gleichzeitig von verschiedenen Teams entwickelt werden kann, kann ein Unternehmen die Anwendung schneller auf den Markt bringen, und Programmierer können die neuesten und besten Sprachen und Tools für jede Schicht verwenden.
  • Bessere Skalierbarkeit: Jede Schicht kann bei Bedarf unabhängig von den anderen skaliert werden.
  • Höhere Zuverlässigkeit: Ein Ausfall in einer Schicht wirkt sich weniger wahrscheinlich auf die Verfügbarkeit oder Leistung der anderen Schichten aus.
  • Höhere Sicherheit: Da die Darstellungsschicht und die Datenschicht nicht direkt kommunizieren können, kann eine gut konzipierte Anwendungsschicht als eine Art interne Firewall fungieren, um SQL-Injections und andere zerstörerische Exploits zu verhindern.

Dreischichtige Anwendung in der Webentwicklung

In der Webentwicklung haben die Schichten unterschiedliche Namen, führen aber ähnliche Funktionen aus:

  • Der Web-Server ist die Darstellungsschicht und stellt die Benutzerschnittstelle bereit. Dies ist in der Regel eine Webseite oder Website, wie z. B. eine E-Commerce-Site, wo der Benutzer Produkte zum Warenkorb hinzufügt, Zahlungsdetails hinzufügt oder ein Konto erstellt. Der Inhalt kann statisch oder dynamisch sein und wird normalerweise mit HTML, CSS und Javascript entwickelt.
  • Der Anwendungsserver entspricht der Mittelschicht, die die Geschäftslogik für die Verarbeitung von Benutzereingaben enthält. Um das E-Commerce-Beispiel fortzusetzen, ist dies die Schicht, die die Bestandsdatenbank abfragt, um die Produktverfügbarkeit zurückzugeben, oder Details zu einem Kundenprofil hinzufügt. Diese Schicht wird häufig mit Python, Ruby oder PHP entwickelt und führt ein Framework wie z. B. Django, Rails, Symphony oder ASP.NET aus.
  • Der Datenbankserver ist die Daten- oder Back-End-Schicht einer Webanwendung. Die Ausführung erfolgt auf Datenbankmanagementsoftware, wie z. B. MySQL, Oracle, DB2 oder PostgreSQL.

Andere mehrschichtige Architekturen

Während die dreischichtige Architektur einfach die am weitesten verbreitete mehrschichtige Anwendungsarchitektur ist, gibt es andere, denen Sie bei Ihrer Arbeit oder Forschung möglicherweise begegnen.

Zweischichtige Architektur 

Die zweischichtige Architektur ist die ursprüngliche Client-Server-Architektur, die aus einer Darstellungsschicht und einer Datenschicht besteht. Die Geschäftslogik ist in der Darstellungsschicht, der Datenschicht oder beiden enthalten. In der zweischichtiger Architektur hat die Darstellungsschicht – und folglich der Endbenutzer – direkten Zugriff auf die Datenschicht, und die Geschäftslogik ist oft begrenzt. Eine einfache Kontaktmanagementanwendung, in der Benutzer Kontaktdaten eingeben und abrufen können, ist ein Beispiel für eine zweistufige Anwendung. 

N-schichtige Architektur

N-schichtige Architektur – auch mehrschichtige Architektur genannt –  bezieht sich auf eine beliebige Anwendungsarchitektur mit mehr als einer Schicht. Aber Anwendungen mit mehr als drei Schichten sind selten, weil zusätzliche Schichten wenige Vorteile bieten und die Anwendung langsamer, schwieriger zu verwalten und teurer in der Ausführung werden kann. Daher sind n-schichtige Architektur und mehrschichtige Architektur in der Regel Synonyme für dreischichtige Architektur.

Dreischichtige Architektur und IBM Cloud

IBM Cloud bietet Produkte und Services, mit denen Sie Ihre traditionellen dreischichtigen Anwendungen auf Ihrem Weg zur Cloud modernisieren können.

Machen Sie den ersten Schritt:

  • Unabhängig davon, ob Sie Unterstützung bei Strategie, Prozessen oder Funktionen benötigen – oder Full-Service-Angebote wünschen – informieren Sie sich, wie IBM Sie bei der  Anwendungsmodernisierung unterstützen kann.
  • Starten Sie mit containerisierter Middleware, die in jeder Cloud ausgeführt werden kann – als Produktpaket in IBM Cloud Paks.
  • Migrieren Sie vorhandene VMware-Workloads problemlos in die Public Cloud mit IBM Cloud for VMware Solutions.
  • Planen und führen Sie Ihre Anwendungsmodernisierungsstrategien als Teil Ihrer fortlaufenden digitalen Transformation mit Hilfe von IBM Anwendungsmodernisierungsservices aus.

Starten Sie noch heute mit einem IBM Cloud-Konto.