Multitier Architektur
Im Softwareentwicklung, Multitier Architektur (oft bezeichnet als als n-Tier Architektur) ist ein Kunden -Server -Architektur In welchen Präsentation, Anwendungsverarbeitungs- und Datenverwaltungsfunktionen werden physikalisch getrennt. Die am weitesten verbreitete Verwendung von multitierer Architektur ist die dreistufige Architektur.
N-Tier Anwendungsarchitektur bietet ein Modell, mit dem Entwickler flexible und wiederverwendbare Anwendungen erstellen können. Durch die Trennung einer Anwendung in Ebenen erwerben Entwickler die Möglichkeit, eine bestimmte Stufe zu ändern oder hinzuzufügen, anstatt die gesamte Anwendung zu überarbeiten. Eine dreistufige Architektur besteht in der Regel aus a Präsentation Tier, a Logik Stufe und a Daten Ebene.
Während die Konzepte von Schicht und Stufe häufig austauschbar verwendet werden, besteht eine ziemlich häufige Sichtweise darin, dass es tatsächlich einen Unterschied gibt. Diese Ansicht ist, dass a Schicht ist ein logischer Strukturierungsmechanismus für die Elemente, aus denen die Softwarelösung besteht, während a Ebene ist ein physikalischer Strukturmechanismus für die Systeminfrastruktur.[1][2] Zum Beispiel könnte eine dreischichtige Lösung problemlos auf einer einzigen Stufe eingesetzt werden, wie bei einem Extrem Datenbank-zentrierte Architektur genannt RDBMS-Architektur nur[3] oder in einer persönlichen Workstation.[4]
Schichten
Die "Schichten" Architekturmuster wurden in verschiedenen Veröffentlichungen beschrieben.[5]
Gemeinsame Schichten
In einer logischen mehrschichtigen Architektur für ein Informationssystem mit einem objektorientiertes DesignDie folgenden vier sind die häufigsten:
- Präsentationsfolie (a.k.a. UI -Schicht, View Layer, Präsentationsstufe in Multitier Architektur)
- Anwendungsschicht (a.k.a. Serviceschicht[6][7] oder FASSEN Controller -Schicht [8])
- Geschäftsschicht (A.K.A. Business Logic Layer (Bll), Domänenlogikschicht)
- Datenzugriffsschicht (a.k.a. Persistenzschicht, Protokollierung, Vernetzung und andere Dienste, die zur Unterstützung einer bestimmten Geschäftsschicht erforderlich sind)
Das Buch Domänengesteuerte Design beschreibt einige gemeinsame Verwendungen für die oben genannten vier Schichten, obwohl sein Hauptaugenmerk auf dem liegt Domänenschicht.[9]
Wenn die Anwendungsarchitektur keine explizite Unterscheidung zwischen der Geschäftsebene und der Präsentationsschicht hat (d. H. Die Präsentationsschicht wird als Teil der Geschäftsschicht betrachtet), wurde ein herkömmliches Client-Server-Modell (zweistufig) implementiert.
Die übliche Konvention ist, dass die Anwendungsschicht (oder die Serviceschicht) als Untervermieter der Geschäftsschicht angesehen wird, wodurch die API -Definition in der Regel die unterstützte Geschäftsfunktionen enthält. Die Anwendungs-/Geschäftsschichten können in der Tat weiter unterteilt werden, um zusätzliche Sublayer mit unterschiedlicher Verantwortung hervorzuheben. Zum Beispiel wenn die Modell -View -Presenter Muster wird verwendet, der Präsentator -Unterschicht kann als zusätzliche Ebene zwischen der Benutzeroberflächenschicht und der Business/Application -Ebene (wie vom Modell -Unterschicht dargestellt) verwendet werden.
Einige identifizieren auch eine separate Ebene, die als Business Infrastructure Layer (BI) namens Unternehmensschicht (en) und der Infrastrukturschicht (en) bezeichnet wird. Es wird manchmal auch als "Geschäftsschicht" oder "Business Services Layer" bezeichnet. Diese Schicht ist sehr allgemein und kann in mehreren Anwendungsstufen (z. B. einem Währungsconverter) verwendet werden.[10]
Die Infrastrukturschicht kann in unterschiedliche Ebenen (technische Dienste auf niedrigem Niveau) aufgeteilt werden.[10] Entwickler konzentrieren sich häufig auf die Funktionen Persistenz (Datenzugriff) der Infrastrukturschicht und sprechen daher nur über die Persistenzschicht oder die Datenzugriffsschicht (anstelle einer Infrastrukturschicht oder einer technischen Dienste). Mit anderen Worten, die andere Art von technischen Diensten wird nicht immer ausdrücklich als Teil einer bestimmten Ebene angesehen.
Eine Schicht befindet sich über einer anderen, weil sie davon abhängt. Jede Schicht kann ohne die Schichten darüber existieren und benötigt die Schichten darunter, um zu funktionieren. Eine weitere häufige Ansicht ist, dass Schichten nicht immer strikt von der folgenden angrenzenden Schicht abhängen. Zum Beispiel kann eine Schicht auch in einem entspannten Schichtsystem (im Gegensatz zu einem strengen Schichtsystem) auch von allen Schichten darunter abhängen.[5]
Dreistufige Architektur

Die dreistufige Architektur ist ein Kunden-Server Software -Architekturmuster in welcher Benutzeroberfläche (Präsentation), Funktionale Prozesslogik ("Geschäftsregeln"), Computerdatenspeicher und Datenzugriff werden entwickelt und als unabhängig gehalten Module, meistens auf getrennt Plattformen.[11] Es wurde von entwickelt von John J. Donovan In Open Environment Corporation (OEC), einem Werkzeugunternehmen, in dem er gegründet wurde Cambridge, Massachusetts.
Abgesehen von den üblichen Vorteilen von Modular Software Mit genau definierten Schnittstellen soll die dreistufige Architektur eine der drei Ebenen ermöglichen, als Reaktion auf Änderungen der Anforderungen oder unabhängig ersetzt zu werden oder ersetzt werden Technologie. Zum Beispiel eine Änderung von Betriebssystem in dem Präsentationsstufe würde nur den Benutzeroberflächencode beeinflussen.
In der Regel wird die Benutzeroberfläche auf einem Desktop ausgeführt PC oder Arbeitsplatz und verwendet einen Standard grafische Benutzeroberfläche, funktionale Prozesslogik, die aus einem oder mehreren separaten Modulen bestehen kann, die auf einer Workstation ausgeführt werden oder Anwendungsserver, und ein RDBMS auf einen Datenbankserver oder Mainframe Das enthält die Computerdatenspeicherlogik. Die mittlere Ebene kann selbst vielfältig sein (in diesem Fall wird die Gesamtarchitektur als "als" bezeichnet "n-Tier Architektur ").
- Präsentationsstufe
- Dies ist die oberste Ebene der Anwendung. In der Präsentationsstufe werden Informationen zu Diensten wie Surfenwaren-, Kauf- und Einkaufswagen -Inhalt angezeigt. Es kommuniziert mit anderen Ebenen, mit denen die Ergebnisse an die Browser-/Client -Stufe und alle anderen Ebenen im Netzwerk verteilt werden. In einfachen Worten können Benutzer direkt zugreifen (z. B. eine Webseite oder die GUI eines Betriebssystems).
- Anwendungsebene (Geschäftslogik, Logikstufe oder mittlere Stufe)
- Die logische Stufe wird aus der Präsentationsstufe herausgezogen und steuert die Funktionalität einer Anwendung durch detaillierte Verarbeitung.
- Datenstufe
- Die Datenstufe umfasst die Datenpersistenzmechanismen (Datenbankserver, Dateifreigaben usw.) und die Datenzugriffsschicht, die die Persistenzmechanismen zusammenfasst und die Daten enthüllt. Die Datenzugriffsschicht sollte eine liefern API In die Anwendungsebene, die Methoden zur Verwaltung der gespeicherten Daten freigibt, ohne Abhängigkeiten von den Datenspeichermechanismen zu enthüllen oder zu erstellen. Das Vermeiden von Abhängigkeiten von den Speichermechanismen ermöglicht Aktualisierungen oder Änderungen, ohne dass die Anwendungsstufe von Clients von der Änderung beeinflusst werden oder sich sogar bewusst sind. Wie bei der Trennung jeder Stufe sind Kosten für die Umsetzung und häufig Kosten für die Leistung im Austausch für eine verbesserte Skalierbarkeit und Wartbarkeit vorliegen.
Nutzung der Webentwicklung
In dem Web Entwicklung Feld, dreistufige wird oft verwendet, um sich darauf zu beziehen Websites, häufig elektronischer Handel Websites, die mit drei Ebenen erstellt werden:
- Ein Front-End Webserver Servieren statischer Inhalte und möglicherweise einige einige zwischengespeichert dynamischer Inhalt. In der webbasierten Anwendung ist Frontend der vom Browser gerendete Inhalt. Der Inhalt kann statisch oder dynamisch erzeugt sein.
- Eine mittlere dynamische Inhaltsverarbeitung und Generationsstufe Anwendungsserver (z.B., Symfony, Frühling, ASP.NET, Django, Schienen, Node.js).
- Ein Back-End Datenbank oder Datenspeicher, bestehend aus beiden Datensätzen und der Datenbankverwaltungssystem Software, die den Daten verwaltet und bietet.
Andere Überlegungen
Die Datenübertragung zwischen Ebenen ist Teil der Architektur. Die beteiligten Protokolle können einen oder mehrere von umfassen SNMP, Corba, Java RMI, .NET Remoting, Windows Communication Foundation, Steckdosen, UDP, Internetdienste oder andere Standard- oder proprietäre Protokolle. Häufig Middleware wird verwendet, um die getrennten Ebenen zu verbinden. Getrennte Stufen laufen oft (aber nicht unbedingt) auf getrennten physischen Servern, und jede Stufe kann selbst auf a laufen Cluster.
Rückverfolgbarkeit
Die End-to-End-Rückverfolgbarkeit von Daten fließt durch n-Tier Systems ist eine herausfordernde Aufgabe, die wichtiger wird, wenn die Systeme der Komplexität zunehmen. Das Anwendungsantwortmessung definiert Konzepte und Apis zur Messung der Leistung und zur Korrelation von Transaktionen zwischen Ebenen. Im Allgemeinen wird der Begriff "Tiers" verwendet, um die physikalische Verteilung von Komponenten eines Systems auf separaten Servern, Computern oder Netzwerken (Verarbeitungsknoten) zu beschreiben. Eine dreistufige Architektur hat dann drei Verarbeitungsknoten. Der Begriff "Schichten" bezieht sich auf eine logische Gruppierung von Komponenten, die möglicherweise physisch auf einem Verarbeitungsknoten liegen oder nicht.
Siehe auch
- Abstraktionsschicht
- Client -Server -Modell
- Datenbank-zentrierte Architektur
- Front-End und Back-End
- Hierarchisches Internetbearbeitungsmodell
- Lastausgleich (Computer)
- Monolithische Anwendung
- Open Services Architecture
- Reiche Webanwendung
- Serviceschicht
- Scherschichten
- Internetanwendung
Verweise
- ^ Bereitstellungsmuster (Microsoft Enterprise -Architektur, Muster und Praktiken)
- ^ Fowler, Martin "Muster der Enterprise Application Architecture" (2002). Addison Wesley.
- ^ Vicente, Alfonso; Ätzeverry, Lorena; Sabiguero, Ariel (2021). "Eine RDBMS-Architektur für Webanwendungen". 2021 XLVII Latin American Computing Conference (CLEI): 1–9. doi:10.1109/CLEI53233.2021.9640017.
- ^ Bereitstellungsmuster (Microsoft Enterprise -Architektur, Muster und Praktiken)
- ^ a b Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael (1996-08). Musterorientierte Softwarearchitektur, Band 1, ein System von Mustern. Wiley, August 1996. ISBN978-0-471-95869-7. Abgerufen von http://www.wiley.com/wileycda/wileytitle/productcd-0471958697.html.
- ^ Martin Fowlers Serviceschicht
- ^ Martin Fowler erklärt, dass die Serviceschicht die gleiche wie die Anwendungsschicht ist
- ^ Vergleich/Diskussion der Grasp -Controller -Ebene und Anwendungs-/Serviceschicht
- ^ Domänengetriebenes Design, das Buch S. 68-74. Abgerufen von http://www.domaNDrivendesign.org/books#ddd.
- ^ a b UML und Muster anwenden, 3. Auflage, Seite 203 ISBN0-13-148906-2
- ^ Eckerson, Wayne W. "Drei -Tier -Client/Server -Architektur: Erreichung von Skalierbarkeit, Leistung und Effizienz in Client -Serveranwendungen." Open Information Systems 10, 1 (Januar 1995): 3 (20)