Definition eines 3-Tier-Systems

8

Menschen behaupten oft, dass sie einer 3-Tier- (oder N-Tier-) Architektur folgen, und manchmal behaupten sie dann, zu einem Domänenmodell zu wechseln. Aber ich habe wirklich nie verstanden, was diese mythische "3-Tier-Architektur" ist. Es scheint keine formale Definition zu haben. Während es zahlreiche Referenzen und Beispiele gibt, die das Domänenmodellmuster erklären und demonstrieren, schlägt jeder Verweis auf 3-Tier lediglich vor, dass Sie Ihren Code in UI-, Business Logic- und Datenzugriffsschichten unterteilen sollten. Und das ist alles, was sie zu sagen scheinen.

Was ich besonders seltsam finde, ist, dass Domain Model für mich die perfekte Verkörperung dieses dreistufigen Paradigmas ist. Die ORM- und Zuordnungsdateien sind die Datenzugriffsschicht, die Domäne ist die Geschäftslogik und die Benutzeroberfläche ist die Benutzeroberfläche. Warum reden die Leute so, als wäre es etwas Neues und Anderes und etwas, zu dem sie wechseln sollten?

Bevor ich Leute sah, die das Domänenmodell implementierten, waren die meisten Anwendungen Benutzeroberflächen, die auf gespeicherte Prozeduren zugreifen, wobei die Logik auf die Benutzeroberfläche und die SPs aufgeteilt war. Manchmal gab es einige Assemblys mit den Namen "UI", "BLL" und "DLL", aber normalerweise waren dies nur Vermittler zwischen den Benutzeroberflächen und den SPs, sodass mehr Platz für die zufällige Verteilung der Logik blieb.

Was ist diese mythische "3-Tier" -Architektur? Existiert es überhaupt? und wenn ja, wo werden einige Beispiele dafür gut umgesetzt?

Paul T. Davies
quelle

Antworten:

9

Die Definition der 3-Tier-Architektur ist ein Sonderfall der n-Tier-Architektur . In einer n-Tier-Architektur gibt es n Komponenten, und jede interagiert nur mit der Komponente unmittelbar "darüber" und "darunter". Eine dreistufige Architektur besteht aus drei solchen Komponenten.

In der Regel besteht eine dreistufige Architektur aus einer Benutzerinteraktionsschicht, der Geschäftsregelschicht und der Schicht für Datendienste (einschließlich Datenbanken). Die Benutzerinteraktionsschicht gibt nur Anforderungen an die Geschäftsregelschicht aus, die Daten von den verschiedenen Datendiensten abruft, verarbeitet und dann über die Benutzerinteraktionsschicht an den Benutzer zurückgibt.

Die n-Tier-Architektur ist ein Beispiel für ein Architekturmuster (oder einen Architekturstil). Es werden lediglich einige Einschränkungen für die Architektur des Systems definiert. An sich ist es keine vollständige Ansicht der Architektur des Systems. Obwohl ich sicher bin, dass es Systeme gibt, die so etwas wie eine dreistufige Architektur implementieren, ist es nur ein Muster, das eine Diskussion für das zusätzliche Design und die Implementierung eines Systems einleiten soll.

Thomas Owens
quelle
Grundsätzlich sagen Sie, dass eine 3-Tier-Architektur eine Architektur mit 3 Ebenen ist ... was genau die richtige Antwort ist :-)
Jörg W Mittag
@ JörgWMittag So ziemlich. Ich sage aber auch, dass es nur ein Muster ist, das verwendet wird, um die Kommunikation zwischen Systemarchitekten, Anwendungsdesignern und Programmierern zu vereinfachen. In Wirklichkeit handelt es sich um einen Sonderfall der n-Tier-Architektur, bei dem es sich um einen Sonderfall der Client-Server-Architektur handelt.
Thomas Owens