Was ist eine n-schichtige Architektur?

Abgeschlossen

Bei einer n-schichtigen Architektur wird eine Anwendung in logische Ebenen und physische Schichten unterteilt. Der Buchstabe n steht für die Anzahl von physischen Schichten, in die die Anwendung unterteilt ist. Dies korreliert normalerweise mit der Anzahl von Ebenen. Wir können eine Architektur mit zwei Schichten (Client/Server) oder auch mit fünf Schichten verwenden, aber es ist in der Regel am besten, die Anzahl von Schichten auf maximal vier zu beschränken.

Hier wird beschrieben, woraus die Ebenen und Schichten bestehen.

Was sind Ebenen?

Mit Ebenen wird der Anwendungscode einer Anwendung logisch getrennt. Jede Ebene verfügt über eine bestimmte Aufgabe, z.B. die Verarbeitung von Anforderungen von Benutzern, Ausführung von Geschäftslogik oder Verarbeitung der Datenspeicherung.

Indem eine Anwendung in diese logischen Ebenen unterteilt wird, wird jede Ebene separat behandelt. Durch diese Trennung werden die Komponenten der Anwendung modular, sodass sich die App einfacher verwalten lässt. Wir können die Anwendung für jede Aufgabe optimieren. Auf der Ebene für Webanforderungen werden in erster Linie Webanforderungen verarbeitet. Die Datenspeicherung oder die Ausführung von Geschäftslogik sind nicht Aufgabe dieser Schicht. Auf der Datenzugriffsebene geht es dagegen um die Optimierung der Kommunikation mit dem Datenspeicher, und nicht um die Details der Präsentation für Benutzer*innen. Dieses Konzept der Beschränkung auf bestimmte Features wird als Trennung von Zuständigkeiten bezeichnet.

In diesem Diagramm sind Ebenen einer gängigen n-schichtigen Architektur dargestellt. Auf jeder Ebene wird ein Aspekt der Anwendung verarbeitet. Auf der Geschäftsebene wird die Kommunikation zwischen der Benutzeroberflächenebene und der Datenzugriffsebene verwaltet.

Visualization of layers.

Was sind Schichten?

Mit Schichten wird die physische Trennung von Teilen Ihrer Anwendung auf separaten Computeressourcen erzielt. Im Allgemeinen wird für jede physische Schicht eine logische Ebene der Anwendung ausgeführt.

Die Unterteilung der Architektur in physische Schichten hat mehrere Vorteile:

  • Die Anwendungskomponenten können separat skaliert werden, indem auf jeder Schicht Ressourcen hinzugefügt werden.
  • Die Resilienz der Anwendung kann erhöht werden, indem ein Lastenausgleich hinzugefügt wird, um fehlerhafte Ressourcen zu erkennen und Anforderungen an fehlerfreie Systeme umzuleiten.
  • Die Sicherheit der Anwendung kann erhöht werden, indem die Netzwerkkommunikation zwischen Schichten eingeschränkt und nur der erforderliche Zugriff zugelassen wird.

Die Architektur schreibt vor, dass die Kommunikation zwischen Schichten von oben nach unten erfolgen sollte. Jede Schicht kann mit der nächsten Schicht kommunizieren, die direkt darunter angeordnet ist, aber normalerweise können keine Schichten übersprungen werden. Dieses Design dient zur Verbesserung der Sicherheit, indem die verfügbar gemachte Oberfläche einer Schicht eingeschränkt wird.

Visualization of tiers.

Architektur mit drei Schichten

Eine Architektur mit drei Schichten wird bei n-schichtigen Architekturen am häufigsten verwendet. Die Zuständigkeiten und Namen der einzelnen Ebenen und Schichten variieren je nach Anwendung und Unternehmen, aber eine typische Anwendung mit drei Schichten verfügt über Folgendes: eine Präsentationsschicht, eine Logikschicht (mittlere Schicht) und eine Datenschicht. Diese Architektur ist der am häufigsten verwendete n-schichtige Typ. Im restlichen Teil dieses Moduls wird ein Modell mit drei Schichten verwendet. Hierbei wird auf jeder Schicht jeweils eine Ebene der Anwendung ausgeführt, die synonym als Schichten bezeichnet werden.

Präsentationsschicht

Auf der Präsentationsschicht werden in der Regel Benutzeranforderungen verarbeitet. Diese Anforderungen könnten von Benutzer*innen stammen, die auf eine Webseite zugreifen, oder es kann um den öffentlichen Zugriff auf Ihre Anwendung über eine verfügbar gemachte API gehen. Der Fokus liegt bei dieser Schicht auf der Endbenutzererfahrung. Dazu wird eine intuitive Oberfläche bereitgestellt und für eine sichere Kommunikation zwischen Endbenutzer*innen und Ihrer Anwendung gesorgt.

Auf dieser Schicht geht es nicht um die eigentlichen Daten, sondern nur darum, wie sie dem Endbenutzer präsentiert werden. Normalerweise erfolgt auf dieser Schicht keine Datenverarbeitung und kein Datenzugriff. Hierfür sind die darunter angeordneten Schichten zuständig.

Logikschicht

Auf der Logikschicht (auch als mittlere Schicht bezeichnet) geht es normalerweise um die Verarbeitung der Geschäftslogik einer Anwendung. Dies kann das Verarbeiten einer Kundenbestellung, das Nachverfolgen einer Lieferung oder das Aktualisieren des Bestands anhand von empfangenem Material sein. Diese Schicht ist auch für die Aktivitäten Erstellen, Lesen, Aktualisieren und Löschen (Create/Read/Update/Delete, CRUD) auf der Datenschicht zuständig. Darüber hinaus ist dies auch ein guter Ort zum Aufrufen von abhängigen Diensten, z.B. externen APIs.

Auf dieser Schicht geht es nicht darum, wie die Informationen dem Benutzer präsentiert oder wie die Daten gespeichert und abgerufen werden. Der Fokus liegt auf der Geschäftslogik, die erforderlich ist, um die von der Anwendung empfangene Anforderung zu erfüllen.

Datenschicht

Auf dieser Schicht geht es um Datenspeicherung. Aufgabe dieser Schicht ist die Speicherung der Daten in Tabellen, Dateien oder auf einem anderen Medium. Auf der Schicht wird eine Schnittstelle (z.B. T-SQL) für den Zugriff auf Daten bereitgestellt. Bei einer Architektur mit drei Schichten ermöglicht die Datenschicht den Datenzugriff auf die Logikschicht.

Auf dieser Schicht liegt der Fokus nicht darauf, wie die Daten Benutzer*innen präsentiert werden oder welche Logik für die Daten verwendet wird. Gespeicherte Prozeduren können auf dieser Schicht verwendet werden, aber der Großteil der Logik für die eigentlichen Daten sollte auf einer höheren Schicht verarbeitet werden.

Wann sollten n-schichtige Architekturen verwendet werden?

Nachdem die n-schichtige Architektur beschrieben wurde, geht es jetzt darum, wann Sie eine solche Architektur verwenden sollten. Eine n-schichtige Architektur eignet sich gut für folgende Zwecke:

  • Kleine bis mittelgroße Webanwendungen
  • Migrieren einer lokalen Anwendung zu Azure mit minimalem Umgestaltungsaufwand
  • Nutzen von Fähigkeiten und Funktionen für Entwickler*innen vor Ort mit vorhandenen Entwicklungskenntnissen

Webanwendungen sind für Architekturen dieses Stils ein guter Anwendungsfall. Aufgrund der verringerten Komplexität dieses Architekturstils und der häufig vorhandenen natürlichen Trennung von Zuständigkeiten in Webanwendungen sind n-schichtige Architekturen normalerweise eine gute Option. Hierbei könnte es sich um öffentliche Anwendungen oder Branchenanwendungen handeln, die von einer Organisation intern genutzt werden. Für kleinere oder weniger komplexe Anwendungen reicht unter Umständen eine Architektur mit zwei Schichten (Client/Server) aus, bei der die Präsentations- und Logikschicht nicht getrennt, sondern kombiniert ist.

N-schichtige Architekturen sind bei herkömmlichen lokalen Anwendungen häufig anzutreffen und eignen sich daher ideal für die Migration vorhandener Workloads zu Azure. Anwendungen dieses Stils können häufig mit nur minimalem Umgestaltungs- bzw. Änderungsaufwand zu Azure migriert werden, sodass der erste Migrationsvorgang vereinfacht wird. Unter Azure können Sie dann PaaS-Dienste (Platform as a Service) nutzen, um Ihre Anwendung weiter zu verbessern.

Weil dies ein häufig verwendeter Architekturstil ist, verfügen Techniker oft über ein höheres Erfahrungsniveau und sind damit besser vertraut. Bei Wahl dieser Architektur können Sie vorhandene Fähigkeiten nutzen, um Anwendungen bereitzustellen, ohne sich über neue Architekturmuster informieren zu müssen.

Überprüfen Sie Ihr Wissen

1.

Sie sollen die Integration einer Anwendung mit drei Schichten mit einer Partner-API aktualisieren. Welcher Schicht sollte diese Funktionalität hinzugefügt werden?

2.

Auf welcher Schicht kann der Zugriff für Benutzer zugelassen werden?