Was ist dreistufige Architektur?,
Die dreistufige Architektur ist eine etablierte Softwareanwendungsarchitektur, die Anwendungen in drei logische und physische Rechenebenen organisiert: die Präsentationsebene oder Benutzeroberfläche; die Anwendungsebene, in der Daten verarbeitet werden; und die Datenebene, in der die mit der Anwendung verknüpften Daten gespeichert und verwaltet werden.
Der Hauptvorteil der dreistufigen Architektur besteht darin, dass jede Ebene, da jede Ebene auf einer eigenen Infrastruktur ausgeführt wird, gleichzeitig von einem separaten Entwicklungsteam entwickelt und bei Bedarf aktualisiert oder skaliert werden kann, ohne die anderen Ebenen zu beeinträchtigen.,
Jahrzehntelang war die dreistufige Architektur die vorherrschende Architektur für Client-Server-Anwendungen. Heutzutage sind die meisten dreistufigen Anwendungen Ziele für die Modernisierung mit Cloud-nativen Technologien wie Containern und Microservices sowie für die Migration in die Cloud.
Die drei Ebenen im Detail
Präsentationsebene
Die Präsentationsebene ist die Benutzeroberfläche und Kommunikationsschicht der Anwendung, auf der der Endbenutzer mit der Anwendung interagiert. Sein Hauptzweck ist es, Informationen anzuzeigen und Informationen vom Benutzer zu sammeln., Diese oberste Ebene kann beispielsweise in einem Webbrowser, als Desktop-Anwendung oder als grafische Benutzeroberfläche (GUI) ausgeführt werden. Webpräsentationsebenen werden normalerweise mit HTML, CSS und JavaScript entwickelt. Desktop-Anwendungen können je nach Plattform in verschiedenen Sprachen geschrieben werden.
Anwendungsebene
Die Anwendungsebene, auch als Logikebene oder mittlere Ebene bezeichnet, ist das Herzstück der Anwendung., In dieser Ebene werden Informationen, die in der Präsentationsebene gesammelt werden, – manchmal im Vergleich zu anderen Informationen in der Datenebene – mithilfe der Geschäftslogik, einem bestimmten Satz von Geschäftsregeln, verarbeitet. Die Anwendungsebene kann auch Daten in der Datenebene hinzufügen, löschen oder ändern.
Die Anwendungsebene wird normalerweise mit Python, Java, Perl, PHP oder Ruby entwickelt und kommuniziert mit der Datenebene über API-Aufrufe.
Datenebene
In der Datenebene, die manchmal als Datenbankebene, Datenzugriffsebene oder Backend 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 dreistufigen Anwendung durchläuft die gesamte Kommunikation die Anwendungsebene. Die Präsentationsebene und die Datenebene können nicht direkt miteinander kommunizieren.
Tier vs. layer
In Diskussionen über dreistufige Architektur wird Layer oft austauschbar-und fälschlicherweise – für Tier verwendet, wie in ‚Präsentationsschicht‘ oder ‚Geschäftslogikschicht.,‘
Sie sind nicht gleich. Eine „Schicht“ bezieht sich auf eine funktionale Teilung der Software, aber eine „Ebene“ bezieht sich auf eine funktionale Teilung der Software, die auf einer von den anderen Abteilungen getrennten Infrastruktur ausgeführt wird. Die Kontakte-App auf Ihrem Telefon ist beispielsweise eine dreischichtige Anwendung, jedoch eine einstufige Anwendung, da alle drei Ebenen auf Ihrem Telefon ausgeführt werden.
Der Unterschied ist wichtig, da Ebenen nicht die gleichen Vorteile wie Ebenen bieten können.,
Vorteile der dreistufigen Architektur
Auch hier ist der Hauptvorteil der dreistufigen Architektur die logische und physische Trennung der Funktionalität. Jede Ebene kann auf einem separaten Betriebssystem und einer Serverplattform ausgeführt werden – z. B. Webserver, Anwendungsserver, Datenbankserver -, die ihren funktionalen Anforderungen am besten entspricht. Und jede Ebene läuft auf mindestens einer dedizierten Serverhardware oder einem virtuellen Server, sodass die Dienste jeder Ebene angepasst und optimiert werden können, ohne die anderen Ebenen zu beeinträchtigen.,
Weitere Vorteile (im Vergleich zur ein-oder zweistufigen Architektur) sind:
- Schnellere Entwicklung: Da jede Ebene gleichzeitig von verschiedenen Teams entwickelt werden kann, kann eine Organisation die Anwendung schneller auf den Markt bringen und Programmierer können die neuesten und besten Sprachen und Tools für jede Ebene verwenden.
- Verbesserte Skalierbarkeit: Jede Ebene kann unabhängig von den anderen nach Bedarf skaliert werden.
- Verbesserte Zuverlässigkeit: Ein Ausfall in einer Ebene wirkt sich weniger wahrscheinlich auf die Verfügbarkeit oder Leistung der anderen Ebenen aus.,
- Verbesserte Sicherheit: Da die Präsentationsebene und die Datenebene nicht direkt kommunizieren können, kann eine gut gestaltete Anwendungsebene als eine Art interne Firewall fungieren und SQL-Injektionen und andere böswillige Exploits verhindern.
Dreistufige Anwendung in der Webentwicklung
In der Webentwicklung haben die Ebenen unterschiedliche Namen, führen jedoch ähnliche Funktionen aus:
- Der Webserver ist die Präsentationsebene und stellt die Benutzeroberfläche bereit., Dies ist normalerweise eine Webseite oder Website, z. B. eine E-Commerce-Website, auf der der Benutzer Produkte in den Warenkorb legt, 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 mittleren Ebene und enthält die Geschäftslogik, die zur Verarbeitung von Benutzereingaben verwendet wird. Um das E-Commerce-Beispiel fortzusetzen, ist dies die Ebene, die die Bestandsdatenbank abfragt, um die Produktverfügbarkeit zurückzugeben, oder Details zum Profil eines Kunden hinzufügt., Diese Schicht oft mit Python, Ruby oder PHP entwickelt und läuft ein Framework wie zB Django, Rails, Symphony oder ASP.NET, zum Beispiel.
- Der Datenbankserver ist die Daten-oder Backend-Ebene einer Webanwendung. Es läuft auf Datenbank-management-software, wie MySQL, Oracle, DB2 oder PostgreSQL, zum Beispiel.
Andere mehrstufige Architekturen
Während die dreistufige Architektur leicht die am weitesten verbreitete mehrstufige Anwendungsarchitektur ist, gibt es andere, denen Sie in Ihrer Arbeit oder Ihrer Forschung begegnen könnten.,
zweistufige Architektur
Zweistufige Architektur ist die ursprüngliche Client-Server-Architektur, bestehend aus einer Präsentationsebene und einer Datenebene; Die Geschäftslogik lebt in der Präsentationsebene, der Datenebene oder beidem. In der zweistufigen Architektur hat die Präsentationsebene – und folglich der Endbenutzer-direkten Zugriff auf die Datenebene, und die Geschäftslogik ist häufig begrenzt. Eine einfache Kontaktverwaltungsanwendung, in der Benutzer Kontaktdaten eingeben und abrufen können, ist ein Beispiel für eine zweistufige Anwendung.,
N-Tier-Architektur
N-Tier-Architektur-auch als Multi – Tier-Architektur bezeichnet-bezieht sich auf jede Anwendungsarchitektur mit mehr als einer Ebene. Anwendungen mit mehr als drei Ebenen sind jedoch selten, da zusätzliche Ebenen nur wenige Vorteile bieten und die Anwendung langsamer, schwieriger zu verwalten und teurer ausführen können. Daher sind N-Tier-Architektur und Multi-Tier-Architektur normalerweise Synonyme für dreistufige Architektur.,
Dreistufige Architektur und IBM Cloud
IBM Cloud bietet Produkte und Services, mit denen Sie Ihre älteren dreistufigen Anwendungen auf Ihrem Weg in die Cloud modernisieren können.
Machen Sie den ersten Schritt:
- Ob Sie Unterstützung bei Strategie, Prozessen oder Fähigkeiten benötigen—oder Full-Service—Aufmerksamkeit wünschen-erfahren Sie, wie IBM bei der Anwendungsmodernisierung helfen kann.
- Beginnen Sie mit der Verwendung von containerisierter Middleware, die in jeder Cloud ausgeführt werden kann-alles in IBM Cloud Paks gebündelt.
- Migrieren Sie vorhandene VMware-Workloads mithilfe von IBM Cloud for VMware-Lösungen problemlos in die Public Cloud.,
- Planen und führen Sie Ihre Anwendungsmodernisierungsstrategien im Rahmen Ihrer laufenden digitalen Transformation mithilfe der Anwendungsmodernisierungsdienste von IBM aus.
Beginnen Sie noch heute mit einem IBM Cloud-Konto.