Was ist der Unterschied zwischen 3-Tier-Architektur und n-Tier-Architektur?


Antwort 1:

In der Softwarearchitektur bezieht sich der Begriff "n-Tier-Architektur" auf das Aufteilen einer Anwendung in mehrschichtige Komponenten, sodass jede Schicht separat (und vorzugsweise isoliert) bereitgestellt werden kann.

Richtig gemacht, ermöglicht dies eine größere Skalierbarkeit (da jeder Layer je nach Bedarf verkleinert / vergrößert werden kann, da jeder in seiner eigenen physischen Umgebung ausgeführt werden kann) und andere Vorteile - die Vor- und Nachteile für eine bestimmte Anwendung hängen davon ab Wie gut die spezifische Anwendung strukturiert ist, wenn nur angegeben wird, dass Ebenen vorhanden sind (und selbst wenn Ebenen identifiziert werden), bedeutet dies nichts, wenn sie so codiert sind, dass diese Vorteile nicht erzielt werden können.

Die dreistufige Architektur ist eine spezifische n-stufige Architektur mit drei Ebenen:

  1. PresentationApp Logic oder Business LogicData Access

Insgesamt würde es mich nicht sonderlich interessieren, ob eine Anwendung als n-Tier oder dreischichtig bezeichnet wird. Viel wichtiger sind die tatsächlichen Ebenen und der Ort, an dem sie ausgeführt werden.

Obwohl ich die Konzepte immer noch für wichtig halte, wird es immer seltener, neue Anwendungen zu sehen, die sich mit Ebenen befassen. Die Idee der physischen Schichten ist meiner Erfahrung nach serviceorientierten Architekturen und Mikroservice-Architekturen gewichen. Dies bedeutet nicht, dass n-Tier heute irrelevant ist, nur nicht so einfach wie früher.

Achten Sie bei diesem Thema darauf, Ebenen nicht mit Ebenen zu verwechseln. Bei Ebenen geht es um physische Trennung, bei Ebenen um logische Trennung. Alle guten Anwendungen sollten intern Layer verwenden, um den Code lesbarer, wartbarer und testbarer zu machen.


Antwort 2:

N Ebenen, die ich als Domänenmodell betrachte, plus N Adapter für alles Externe: SQL-Datenbank, NoSQL-Datenbank, Webservices, Web-UI, JSON-API für einen React-Client und so weiter.

Ich habe gehört, dass dies eine hexagonale Architektur genannt wird. Mein einfaches Beispiel ist hier:

Erstellen von sauberem Code mit hexagonaler Architektur | Blick vom Code Face


Antwort 3:

N Ebenen, die ich als Domänenmodell betrachte, plus N Adapter für alles Externe: SQL-Datenbank, NoSQL-Datenbank, Webservices, Web-UI, JSON-API für einen React-Client und so weiter.

Ich habe gehört, dass dies eine hexagonale Architektur genannt wird. Mein einfaches Beispiel ist hier:

Erstellen von sauberem Code mit hexagonaler Architektur | Blick vom Code Face