Was ist der Unterschied zwischen "Ebenen" und "Ebenen"?
architecture
Cretzel
quelle
quelle
Antworten:
Quelle: Rockford Lhotka, Sollten alle Apps n-Tier sein?
quelle
Lesen Sie den Beitrag von Scott Hanselman zu diesem Thema: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx
quelle
Ebenen beziehen sich auf die logische Trennung von Code. Mithilfe logischer Ebenen können Sie Ihren Code besser organisieren. Beispielsweise kann eine Anwendung die folgenden Ebenen haben.
1) Präsentationsschicht oder UI-Schicht 2) Geschäftsschicht oder Geschäftslogikschicht 3) Datenzugriffsschicht oder Datenschicht
Die oben genannten drei Ebenen befinden sich in ihren eigenen Projekten, können 3 Projekte oder sogar mehr sein. Wenn wir die Projekte kompilieren, erhalten wir die entsprechende Layer-DLL. Wir haben jetzt 3 DLLs.
Abhängig davon, wie wir unsere Anwendung bereitstellen, können wir 1 bis 3 Ebenen haben. Da wir jetzt 3 DLLs haben, haben wir nur 1 physische Schicht, aber 3 logische Schichten, wenn wir alle DLLs auf demselben Computer bereitstellen.
Wenn wir jede DLL auf einem separaten Computer bereitstellen, haben wir 3 Ebenen und 3 Ebenen.
Ebenen sind also eine logische Trennung und Ebenen sind eine physikalische Trennung. Wir können auch sagen, dass Ebenen die physische Bereitstellung von Ebenen sind.
quelle
Warum immer versuchen, komplexe Wörter zu verwenden?
Eine Ebene = ein Teil Ihres Codes . Wenn Ihre Anwendung ein Kuchen ist, ist dies ein Stück.
Eine Schicht = eine physische Maschine , ein Server.
Eine Ebene hostet eine oder mehrere Ebenen.
Beispiel für Schichten:
Stufe:
Ihr Code wird auf einem Server gehostet = Ihr Code wird auf einer Ebene gehostet.
Ihr Code wird auf 2 Servern gehostet = Ihr Code wird auf 2 Ebenen gehostet.
Zum Beispiel ein Computer, auf dem die Website selbst gehostet wird (Präsentationsschicht), ein anderer Computer, auf dem der sicherheitsrelevantere Code (echter Geschäftscode - Geschäftsschicht, Datenbankzugriffsschicht usw.) sicherer gehostet wird.
Die Implementierung einer Schichtarchitektur bietet so viele Vorteile. Dies ist schwierig und die ordnungsgemäße Implementierung einer mehrschichtigen Anwendung benötigt Zeit. Wenn Sie welche haben, schauen Sie sich diesen Beitrag von Microsoft an: http://msdn.microsoft.com/en-gb/library/ee658109.aspx
quelle
Ich habe eine Definition gefunden, die besagt, dass Ebenen eine logische Trennung und Ebenen eine physische Trennung sind.
quelle
Im Klartext
Tier
bezieht sich das auf "jeweils in einer Reihe von Reihen oder Ebenen einer übereinander angeordneten Struktur", während sich dasLayer
auf "ein Blatt, eine Menge oder eine Dicke des Materials, typischerweise eines von mehreren, bezieht, das eine Oberfläche oder einen Körper bedeckt ".Tier ist eine physische Einheit , in der der Code / Prozess ausgeführt wird. ZB: Client, Anwendungsserver, Datenbankserver;
Layer ist eine logische Einheit , wie man den Code organisiert. ZB: Präsentation (Ansicht), Controller, Modelle, Repository, Datenzugriff.
Ebenen repräsentieren die physische Trennung der Präsentation, des Geschäfts, der Dienste und der Datenfunktionalität Ihres Designs über separate Computer und Systeme.
Ebenen sind die logischen Gruppierungen der Softwarekomponenten, aus denen die Anwendung oder der Dienst besteht. Sie helfen bei der Unterscheidung zwischen den verschiedenen Arten von Aufgaben, die von den Komponenten ausgeführt werden, und erleichtern die Erstellung eines Designs, das die Wiederverwendbarkeit von Komponenten unterstützt. Jede logische Schicht enthält eine Reihe von diskreten Komponententypen, die in Unterschichten gruppiert sind, wobei jede Unterschicht einen bestimmten Aufgabentyp ausführt.
Das zweistufige Muster repräsentiert einen Client und einen Server.
In diesem Szenario befinden sich Client und Server möglicherweise auf demselben Computer oder auf zwei verschiedenen Computern. Die folgende Abbildung zeigt ein allgemeines Webanwendungsszenario, in dem der Client mit einem Webserver auf der Clientebene interagiert. Diese Schicht enthält die Präsentationsschichtlogik und alle erforderlichen Geschäftsschichtlogiken. Die Webanwendung kommuniziert mit einem separaten Computer, auf dem sich die Datenbankebene befindet, die die Datenschichtlogik enthält.
Vorteile von Ebenen und Ebenen:
Mithilfe von Layering können Sie die Wartbarkeit des Codes maximieren, die Funktionsweise der Anwendung bei unterschiedlicher Bereitstellung optimieren und eine klare Abgrenzung zwischen Standorten vornehmen, an denen bestimmte Technologie- oder Entwurfsentscheidungen getroffen werden müssen.
Das Platzieren Ihrer Ebenen auf separaten physischen Ebenen kann die Leistung verbessern, indem die Last auf mehrere Server verteilt wird. Es kann auch zur Sicherheit beitragen, indem empfindlichere Komponenten und Schichten in verschiedenen Netzwerken oder im Internet gegenüber einem Intranet getrennt werden.
Eine 1-Tier-Anwendung kann eine 3-Layer-Anwendung sein.
quelle
Ja, meine lieben Freunde haben es richtig gesagt. Die Schicht ist eine logische Partition der Anwendung, während die Schicht eine physische Partition der Systemschicht ist. Die Partition hängt von der Schichtpartition ab. Genau wie eine Anwendung, die auf einem einzelnen Computer ausgeführt wird, jedoch einer dreischichtigen Architektur folgt, können wir sagen, dass eine schichtweise Architektur in einer Schichtarchitektur vorhanden sein könnte. Kurz gesagt, eine 3-Schicht-Architektur kann in einer einzelnen Maschine implementiert werden, dann können wir sagen, dass es sich um eine 1-Schicht-Architektur handelt. Wenn wir jede Schicht auf einem separaten Computer implementieren, wird sie als 3-Tier-Architektur bezeichnet. Eine Ebene kann möglicherweise auch mehrere Ebenen ausführen. In der Schichtarchitektur bezogene Komponente, um einfach miteinander zu kommunizieren.
Genau wie wir der unten angegebenen Architektur folgen
Ein Client könnte mit der "Präsentationsschicht" interagieren, greift jedoch aus Sicherheitsgründen auf die öffentliche Komponente der untergeordneten Schicht (wie die öffentliche Komponente der Geschäftslogikschicht) zur "Geschäftslogikschicht" zu.
F * Warum verwenden wir Layer-Architektur? Denn wenn wir Layer-Architektur implementieren, erhöhen wir unsere Anwendungseffizienz wie
==> Sicherheit
==> Verwaltbarkeit
==> Skalierbarkeit
andere Bedürfnisse wie nach der Entwicklung der Anwendung müssen wir DBMS ändern oder Geschäftslogik usw. ändern, dann ist es für alle notwendig.
F * Warum verwenden wir Tier-Architektur?
Da die physische Implementierung jeder Schicht eine bessere Effizienz bietet, können wir ohne Schichtarchitektur keine Ebenenarchitektur implementieren. Eine separate Maschine zum Implementieren einer separaten Ebene und einer separaten Ebene implementiert eine oder mehrere Ebenen, weshalb wir sie verwenden.
es wird zum Zwecke der Fehlertoleranz verwendet. ==> pflegeleicht.
Einfaches Beispiel
Genau wie eine Bank, die in einer Kammer geöffnet ist, in welche Kategorien der Mitarbeiter:
Sie alle sind die verwandten Komponenten des Systems.
Wenn wir zu Kreditzwecken zur Bank gehen, öffnet zuerst ein Torhüter mit einem Lächeln die Tür. Danach gehen wir zu einer Person, die alle Kreditpläne vorstellt. Danach gehen wir zur Manager-Kabine und geben den Kredit weiter. Danach gehen wir endlich zum Kassierer und nehmen einen Kredit auf. Dies sind Schichtarchitekturen der Bank.
Was ist mit Tier? Eine Bankfiliale in einer Stadt eröffnet, danach in einer anderen Stadt, danach in einer anderen, aber was ist die Grundvoraussetzung jeder Filiale
genau das gleiche Konzept von Schicht und Schicht.
quelle
Ebenen sind eine logische Trennung
related-functionality[code]
innerhalb einer Anwendung. Die Kommunikation zwischen Ebenen ist explizit und lose gekoppelt. [Präsentationslogik, Anwendungslogik, Datenzugriffslogik]Ebenen sind die physische Trennung von
layers
[die auf einzelnen Servern gehostet werden] in einem einzelnen Computer (Prozess).Wie im Diagramm gezeigt:
n- Tier Vorteile:
Bessere Sicherheit
Skalierbarkeit : Wenn Ihr Unternehmen wächst Sie können Ihre DB-Tier mit DB-Clustering mit sich berührenden anderen Ebenen skalieren.
Wartbarkeit : Der Webdesigner kann den Ansichtscode ändern, ohne die anderen Ebenen auf den anderen Ebenen zu berühren.
Einfaches Upgrade oder Erweitern [Beispiel: Sie können zusätzlichen Anwendungscode hinzufügen, den Speicherbereich aktualisieren oder sogar mehrere Präsentationsebenen für separate Geräte wie Mobilgeräte, Tablets und PCs hinzufügen.]
quelle
Ich mag die folgende Beschreibung aus Microsoft Application Architecture Guide 2
quelle
Ich benutze Ebenen, um den Architekten oder Technologie-Stack innerhalb einer Komponente meiner Lösungen zu beschreiben. Ich verwende Ebenen, um diese Komponenten normalerweise logisch zu gruppieren, wenn Netzwerk- oder Interprozesskommunikation beteiligt ist.
quelle
Technisch gesehen kann eine Ebene eine Art Mindestumgebung sein, die für die Ausführung des Codes erforderlich ist.
Beispielsweise kann hypothetisch eine 3-Tier-App ausgeführt werden
1 physische Maschine mit 3 virtuellen Maschinen ohne Betriebssystem.
(Das war eine 3- (Hardware-) Tier-App)
1 physische Maschine mit 3 virtuellen Maschinen mit 3 verschiedenen / gleichen Betriebssystemen
(Das war eine 3- (OS) Tier App)
1 physische Maschine mit 1 virtuellen Maschine mit 1 Betriebssystem, aber 3 AppServern
(Das war eine 3- (AppServer) Tier-App)
1 physische Maschine mit 1 virtuellen Maschine mit 1 Betriebssystem mit 1 AppServer, aber 3 DBMS
(Das war eine 3- (DBMS) Tier App)
1 physische Maschine mit 1 virtuellen Maschine mit 1 Betriebssystem mit 1 AppServers und 1 DBMS, aber 3 Excel-Arbeitsmappen.
(Das war eine 3- (AppServer) Tier-App)
Die Excel-Arbeitsmappe ist die Mindestumgebung für die Ausführung von VBA-Code.
Diese drei Arbeitsmappen können sich auf einem oder mehreren physischen Computern befinden.
Ich habe festgestellt, dass Menschen in der Praxis "OS Tier" meinen, wenn sie im Kontext der App-Beschreibung "Tier" sagen.
Wenn eine App auf 3 verschiedenen Betriebssystemen ausgeführt wird, handelt es sich um eine 3-Tier-App.
Eine pedantisch korrekte Art, eine App zu beschreiben, wäre also
"1-zu-3-Tier-fähig, läuft auf 2 Ebenen" App.
:) :)
Ebenen sind nur Codetypen in Bezug auf die funktionale Aufgabentrennung innerhalb der App (z. B. Präsentation, Daten, Sicherheit usw.).
quelle
Ebenen sind konzeptionelle Einheiten und werden verwendet, um die Funktionalität des Softwaresystems aus logischer Sicht zu trennen. Wenn Sie das System implementieren, organisieren Sie diese Ebenen mit verschiedenen Methoden. In diesem Zustand bezeichnen wir sie nicht als Ebenen, sondern als Ebenen.
quelle
Wenn Sie über Präsentation, Service, Daten, Netzwerkschicht sprechen, sprechen Sie über Schichten. Wenn Sie sie "separat bereitstellen", sprechen Sie von Ebenen.
Bei Tiers dreht sich alles um die Bereitstellung. Nehmen Sie es so: Wir haben eine Anwendung, die ein in Angular erstelltes Frontend hat, ein Backend als MongoDB und eine mittlere Ebene, die zwischen dem Frontend und dem Backend interagiert. Wenn diese Frontend-Anwendung, die Datenbankanwendung und die mittlere Schicht separat bereitgestellt werden, handelt es sich um eine dreistufige Anwendung.
Vorteil: Wenn wir unser Backend in Zukunft skalieren müssen, müssen wir das Backend nur unabhängig skalieren und das Frontend muss nicht skaliert werden.
quelle