Übersicht einer dreistufigen Anwendung.
Die dreistufige Architektur ist ein Client-Server-Softwarearchitekturmuster, in dem die Benutzeroberfläche (Präsentation), die funktionale Prozesslogik („Geschäftsregeln“), die Speicherung von Computerdaten und der Datenzugriff als unabhängige Module entwickelt und verwaltet werden, meistens auf separaten Plattformen. Es wurde von John J. Donovan in der Open Environment Corporation (OEC), einem von ihm gegründeten Werkzeugunternehmen in Cambridge, Massachusetts, entwickelt.,
Abgesehen von den üblichen Vorteilen modularer Software mit klar definierten Schnittstellen soll die dreistufige Architektur es ermöglichen, dass jede der drei Ebenen unabhängig von Änderungen in Anforderungen oder Technologien aktualisiert oder ersetzt werden kann. Beispielsweise würde eine Änderung des Betriebssystems in der Präsentationsebene nur den Code der Benutzeroberfläche betreffen.,
Typischerweise läuft die Benutzeroberfläche auf einem Desktop-PC oder einer Workstation und verwendet eine grafische Standardbenutzerschnittstelle, eine funktionale Prozesslogik, die aus einem oder mehreren separaten Modulen bestehen kann, die auf einer Workstation oder einem Anwendungsserver ausgeführt werden, und ein RDBMS auf einem Datenbankserver oder Mainframe, der die Computerdatenspeicherlogik enthält. Die mittlere Ebene kann selbst mehrstufig sein (in diesem Fall wird die Gesamtarchitektur als „N-Tier-Architektur“bezeichnet).
präsentationsebene Dies ist die oberste Ebene der Anwendung., Die Präsentationsebene zeigt Informationen zu Diensten wie das Durchsuchen von Waren, Kauf-und Warenkorbinhalten an. Es kommuniziert mit anderen Ebenen, über die es die Ergebnisse an die Browser – /Clientebene und alle anderen Ebenen im Netzwerk sendet. In einfachen Worten ist es eine Ebene, auf die Benutzer direkt zugreifen können (z. B. eine Webseite oder die GUI eines Betriebssystems). Anwendungsebene (Geschäftslogik, Logikebene oder mittlere Ebene) Die logische Ebene wird aus der Präsentationsebene herausgezogen und steuert als eigene Ebene die Funktionalität einer Anwendung, indem sie eine detaillierte Verarbeitung durchführt., Datenebene Die Datenebene umfasst die Datenpersistenzmechanismen (Datenbankserver, Dateifreigaben usw.).) und die Datenzugriffsschicht, die die Persistenzmechanismen kapselt und die Daten verfügbar macht. Die Datenzugriffsschicht sollte eine API für die Anwendungsebene bereitstellen, die Methoden zum Verwalten der gespeicherten Daten bereitstellt, ohne Abhängigkeiten von den Datenspeichermechanismen verfügbar zu machen oder zu erstellen. Das Vermeiden von Abhängigkeiten von den Speichermechanismen ermöglicht Aktualisierungen oder Änderungen, ohne dass die Clients der Anwendungsebene von der Änderung betroffen sind oder diese sogar kennen., Wie bei der Trennung jeder Ebene gibt es Kosten für die Implementierung und häufig Kosten für die Leistung im Austausch für eine verbesserte Skalierbarkeit und Wartbarkeit.
Webentwicklung usageEdit
Im Bereich Webentwicklung wird häufig dreistufig verwendet, um auf Websites zu verweisen, häufig Websites für den elektronischen Handel, die aus drei Ebenen erstellt werden:
- Ein Front-End-Webserver, der statische Inhalte und möglicherweise einige zwischengespeicherte dynamische Inhalte bereitstellt. In einer webbasierten Anwendung ist das Frontend der vom Browser gerenderte Inhalt. Der Inhalt kann statisch sein oder dynamisch generiert werden.,
- Ein mittlerer dynamischer Content Processing und Generation Level Application Server (z.B. Symfony, Spring, ASP.NET, Django, Rails, Node.js).
- Eine Back-End-Datenbank oder ein Datenspeicher, der sowohl Datensätze als auch die Datenbankverwaltungssoftware umfasst, die den Zugriff auf die Daten verwaltet und bereitstellt.
Weitere Betrachtungenedit
Die Datenübertragung zwischen Ebenen ist Teil der Architektur. Zu den beteiligten Protokollen können SNMP, CORBA, Java RMI,. NET Remoting, Windows Communication Foundation, Sockets, UDP, Webdienste oder andere Standard-oder proprietäre Protokolle gehören., Oft wird Middleware verwendet, um die einzelnen Ebenen zu verbinden. Separate Ebenen werden häufig (aber nicht unbedingt) auf separaten physischen Servern ausgeführt, und jede Ebene kann selbst auf einem Cluster ausgeführt werden.
Schreibe einen Kommentar