Frage

Was ist der Unterschied zwischen "Schichten" und "Tiers"?

War es hilfreich?

Lösung

  

Logik Schichten sind nur ein Weg,   Organisieren Sie Ihren Code. typische Schichten   umfassen Präsentation, Business und   Daten - das gleiche wie die traditionellen   3-Tier-Modell. Aber wenn wir reden   über Schichten, sprechen wir nur über   logische Organisation des Codes. in keinem   Art und Weise ist es, dass diese Schichten impliziert   könnte laufen auf verschiedenen Computern oder in   verschiedene Prozesse auf einem einzigen   Computer oder sogar in einem einzigen Prozess   auf einem einzelnen Computer. Alles, was wir tun,   bespricht eine Art und Weise eines von der Organisation   Code in einen Satz von Schichten definiert durch   spezifische Funktion.

     

Physikalisch Ebene sind jedoch nur über   in dem der Code ausgeführt wird. Speziell,   Ebenen sind Orte, an denen Schichten   eingesetzt und wo Schichten laufen. Im   Anders ausgedrückt, sind Ebenen die physische   Einsatz von Schichten.

Quelle: Rockford Lhotka, Sollten alle apps n-tier

Andere Tipps

Lesen Scott Hanselman Beitrag auf die Frage: http://www.hanselman.com/blog/ AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx

  

Denken Sie jedoch daran, dass in „Scott World“ ein „Tier“ (was hoffentlich auch :) Ihre Welt ist) ist eine Einheit der Bereitstellung, während eine „Schicht“ eine logische Trennung von Verantwortung innerhalb Code. Sie können sagen, dass Sie ein „3-tier“ System haben, aber es auf einem Laptop laufen. Sie können sagen, Sie ein „3-Schicht-System“ haben, aber nur ASP.NET-Seiten, die mit einer Datenbank sprechen. Es gibt Strom in Präzision, Freunden.

Ebene beziehen sich auf logische Trennung von Code. Logische Schichten helfen Sie Ihren Code besser zu organisieren. Zum Beispiel kann eine Anwendung die folgenden Schichten hat.

1) Presentation Layer oder UI-Layer 2) Business Layer oder Business-Logik-Schicht 3) Data Access Layer oder Data Layer

Die aboove drei Schichten befinden sich in ihren eigenen Projekten, 3 Projekte sein können oder sogar mehr. Wenn wir die Projekte kompilieren erhalten wir die jeweilige Schicht DLL. So haben wir 3 DLL jetzt ist.

Je nachdem, wie wir unsere Anwendung bereitstellen, können wir 1 bis 3 Reihen haben. Wie wir jetzt 3 DLL haben, wenn wir alle die DLL auf der gleichen Maschine einsetzen, dann haben wir nur 1 physischen Ebene, aber 3 logische Schichten.

Wenn wir jede DLL auf einer separaten Maschine bereitstellen wählen, dann haben wir drei Reihen und drei Schichten.

So, Schichten sind eine logische Trennung und Tiers sind eine physikalische Trennung. Wir können auch sagen, dass Ebene sind der physische Aufbau von Schichten.

Warum immer versucht, komplexe Wörter zu benutzen?

Schicht = ein Teil des Codes , wenn Ihre Anwendung ein Kuchen ist, ist dies ein Stück.

Tier = eine physische Maschine , ein Server.

Ein Tier beherbergt eine oder mehr Schichten.


Beispiel der Schichten:

  • Präsentationsschicht = in der Regel der gesamte Code für den Anwender im Zusammenhang Schnittstelle
  • Data Access layer = der gesamte Code im Zusammenhang mit Ihrem Datenbank-Zugriff

Tier:

Ihr Code auf einem Server = Ihr Code gehostet wird auf einer Ebene statt.

Ihr Code auf 2 Servern gehostet wird = Ihr Code auf 2 Ebenen gehostet wird.

Zum Beispiel kann eine Maschine Hosting die Website selbst (die Präsentationsschicht), eine andere Maschine mehr gesichert Hosting umso mehr Sicherheit sensitiven Code (real Business Code -. Business-Schicht, Datenbank-Zugriffsschicht, usw.).


Es gibt so viele Vorteile, eine geschichtete Architektur zu implementieren. Das ist heikel und ordnungsgemäß eine geschichtete Anwendung Umsetzung braucht Zeit. Wenn Sie einige haben, haben einen Blick auf diesen Beitrag von Microsoft: http: // msdn .microsoft.com / de-de / library / ee658109.aspx

Ich habe eine Definition gefunden, die besagen, dass Ebene sind eine logische Trennung und Ebene sind eine physikalische Trennung.

  1. in einfachem Englisch, die Tier bezieht sich auf „jeweils in einer Serie von Reihen oder Ebenen einer Struktur angeordnet eine über der anderen“ während die Layer auf „ein Blatt, Menge oder Dicke des Materials, in der Regel eine von mehreren bezieht, eine Oberfläche oder Körper“abdeckt.
  2. Tier ist ein physikalische Einheit , wobei der Code / Prozess ausgeführt wird. Z.B .: Client, Anwendungsserver, Datenbankserver;

    Layer ist eine logische Einheit , wie Sie den Code zu organisieren. Z.B .: Darstellung (Ansicht), Controller, Modelle, Repository, Datenzugriff.

  3. Tiers stellen die physikalische Trennung der Präsentation, Business, Dienstleistungen und Datenfunktionalität Ihres Designs auf getrennte Computer und Systeme.

    Ebene sind die logischen Gruppierungen der Software-Komponenten, die die Anwendung oder einen Dienst bilden. Sie helfen, zwischen den verschiedenen Arten von Aufgaben, die von den Komponenten durchgeführt, um zu unterscheiden, wodurch es einfacher, ein Design zu erstellen, die Wiederverwendbarkeit von Komponenten unterstützt. Jede logische Schicht enthält eine Anzahl von diskreten Komponententypen in Unterschichten unterteilt, wobei jede Unterschicht eine bestimmte Art von Aufgabe durchzuführen.

Das zweistufige Muster stellt einen Client und einen Server.

In diesem Szenario der Client und Server auf derselben Maschine vorhanden sind, oder es kann auf zwei verschiedenen Maschinen befinden. Abbildung unten zeigt eine gemeinsame Web-Anwendung Szenario, in dem der Client mit einem Web-Server in der Client-Schicht befindet sich in Wechselwirkung tritt. Diese Ebene enthält die Präsentationsschicht-Logik und alle erforderlichen Business-Schicht-Logik. Die Web-Anwendung kommuniziert mit einer separaten Maschine, die die Datenbankebene beherbergt, die die Datenschicht Logik enthält.

Layers vs Tiers

Die Vorteile von Ebenen und Tiers:

  • Layering hilft Ihnen, Wartbarkeit des Codes zu maximieren, optimieren die Art und Weise, dass die Anwendung funktioniert, wenn auf unterschiedliche Weise eingesetzt werden, und eine klare Abgrenzung zwischen Orten, an denen bestimmte Technologie oder Design-Entscheidungen getroffen werden müssen.

  • Platzieren Sie Ihre Schichten auf separaten physischen Ebenen kann die Leistung helfen indem die Last auf mehrere Server zu verteilen. Es kann auch helfen mit Sicherheit durch die Trennung empfindliche Komponenten und Schichten auf verschiedene Netzwerken oder im Internet im Vergleich zu einem Intranet.

A 1-Tier-Anwendung eine 3-Schicht-Anwendung sein könnte.

Ich verwende Schichten den Architekten oder Technologie-Stack innerhalb einer Komponente meiner Lösungen zu beschreiben. Ich benutze Ebene logisch gruppiert diese Komponenten in der Regel, wenn das Netzwerk oder Interprozess-Kommunikation beteiligt ist.

Ja meine lieben Freunde, sagte richtig. Layer ist eine logische Partition der Anwendung während Ebene ist die physische Teilung des Systems Tier-Partition ist, hängt von Schicht-Partition. Genau wie eine Anwendung auf einzelne Maschine auszuführen, aber es folgt drei Schichten-Architektur, so können wir diese Schicht Architektur sagen kann in einer Tier-Architektur werden existiert. In einfacher Begriff 3-Schichten-Architektur in einzelner Maschine umsetzen kann, dann können wir sagen, dass seine 1 Tier-Architektur. Wenn wir jede Schicht auf separaten Maschine implementieren dann seinen Namen 3-Tier-Architektur. Eine Schicht kann auch in der Lage mehr Tiere laufen. In Schicht bezogenen Architektur Komponente leicht miteinander zu kommunizieren.
Genau wie wir weiter unten Architektur gegeben folgen

  1. Präsentationsschicht
  2. Business-Logik-Schicht
  3. Datenzugriffsschicht

könnte ein Client auf „Präsentationsschicht“, interagieren aber sie Zugriff auf öffentliche Komponente von dem unter der Schicht (wie Business öffentliche Komponente Logik-Schicht) auf „Business-Logik-Schicht“ aus Sicherheitsgründen Grund.
Q * warum verwenden wir Layer-Architektur? denn wenn wir Layer-Architektur implementieren dann unsere Anwendungen Effizienz wie wir

erhöhen

==> Sicherheit

==> Verwaltung

==> Skalierbarkeit

anderer Bedarf wie nach der Anwendung entwickeln wir dbms ändern müssen oder Geschäftslogik ändern usw. dann ist es notwendig, für alle.

Q *, warum wir Tier-Architektur verwenden?

da physikalisch Implementierung jeder Schicht gibt eine bessere Effizienz, ohne Schichtarchitektur können wir nicht Tier-Architektur implementieren. separate Maschine getrennt zu implementieren Tier-und eine separate Ebene ist eine oder mehrere Schicht implementieren, ist, warum wir sie verwenden.
verwendet es für die Zwecke der Fehlertoleranz. ==> leicht zu pflegen.

Einfaches Beispiel

Wie eine Bank offen in einer Kammer, in welchen Kategorien der Mitarbeiter:

  1. Pförtner
  2. eine Person für Bargeld
  3. eine Person, die verantwortlich ist Bankensystem einzuführen
  4. Manager

sie alle sind die entsprechenden Komponenten des Systems.

Wenn wir gehen für Darlehen Zweck an die Bank dann zunächst ein Pförtner mit einem Lächeln die Tür öffnen nach, dass wir in der Nähe einer Person gehen, die für alle Schemata von Darlehen danach einführen wir gehen an der Agentur Kabine und das Darlehen übergeben. Danach geht schließlich wir Darlehen Kassenzähler nehmen. Diese sind Schichtarchitektur von Bank.

Was ist Tier? Eine Filiale der Bank offen in einer Stadt, danach in einer anderen Stadt, danach in einem anderen aber was ist die Grundvoraussetzung für jeden Zweig

  1. Pförtner
  2. eine Person für Bargeld
  3. eine Person, die verantwortlich ist Bankensystem einzuführen
  4. Manager

genau das gleiche Konzept der Schicht und Tier.

Ich mag die unten stehende Beschreibung von Microsoft Application Architektur-Führer 2

  

Ebene beschreiben die logischen Gruppierungen der Funktionalität und Komponenten in einer Anwendung; während Ebenen beschreiben die physische Verteilung der Funktionalität und Komponenten auf separaten Servern, Computern, Netzwerken oder an entfernten Standorten. Obwohl beide Schichten und Ebenen den gleichen Satz von Namen verwenden (Präsentation, Business, Dienstleistungen und Daten), denken Sie daran, dass nur Ebenen eine physikalische Trennung bedeuten.

Ebene ist logische Trennung von related-functionality[code] innerhalb einer Anwendung, Kommunikation zwischen den Schichten ist explizit und lose gekoppelt. [Präsentationslogik, Anwendungslogik, Datenzugriffslogik]

Tiers sind physikalische Trennung von layers [ die auf einzelnen Servern] in einem einzelnen Computer gehostet bekommen (Prozess).

Wie in Abbildung gezeigt:

1-Tier & 3-Layers « App Logic  with out DB access store data in a files.
2-Tier & 3-Layers « App Logic & DataStorage-box.
2-Tier & 2-Layers « Browser View[php] & DataStorage[procedures]
2-Tier & 1-Layers « Browser View[php] & DataStorage, query sending is common.
3-Tier & n-Layer  « Browser View[php], App Logic[jsp], DataStorage

n- Tier Vorteile: < br> Bessere Sicherheit
Skalierbarkeit . Wenn Ihr Unternehmen wächst Sie können Ihre DB-Tier mit DB-Clustering mit sich zu berühren anderen Ebenen vergrößern
Wartbarkeit . Web-Designer können den View-Code ändern, mit aus den anderen Schichten auf den anderen Ebenen berühren
Leicht Aktualisieren oder Verbessern [Ex: Sie können zusätzlichen Anwendungscode hinzufügen, aktualisieren Storage Area oder sogar mehrere Präsentationsschichten für separate Vermächtnisse wie Handy, Tablet-PC hinzufügen]

Ebene sind konzeptuelle Entitäten, und verwendet werden, um die Funktionalität von Software-System von einem logischen Standpunkt aus zu trennen; wenn Sie das System implementieren Sie werden diese Schichten mit unterschiedlichen Methoden; in diesem Zustand verweisen wir auf sie nicht als Schichten, sondern als Ebene.

Wenn Sie Präsentation sprechen, Service, Daten, Netzwerk-Layer, Sie sprechen Schichten. Wenn Sie „implementieren sie getrennt“, sprechen Sie über Stufen.

Tiers ist über die Bereitstellung. Nehmen Sie es so: Wir haben eine Anwendung, die einen Frontend in Angular erstellt hat, hat es ein Back-End wie MongoDB und eine Mittelschicht, die zwischen dem Frontend und Backend in Wechselwirkung tritt. Also, wenn diese Frontend-Anwendung, Datenbank-Anwendung, und die mittlere Schicht all separat bereitgestellt werden, wir sagen, es ist eine 3-Tier-Anwendung.

Vorteil: Wenn wir unsere Backend in der Zukunft skalieren müssen, brauchen wir nur die Backend-unabhängig zu skalieren und es gibt keine Notwendigkeit, das Frontend, Scale-up

.

Technisch kann ein Tier eine Art Mindest Umgebung sein für den Code erforderlich auszuführen.

z. hypothetisch eine 3-Tier-Anwendung kann auf ausführen

  1. 3 physische Maschinen ohne Betriebssystem.
  2. 1 physische Maschine mit drei virtuellen Maschinen ohne Betriebssystem.

    (Das war ein 3- (Hardware) Tier-app)

  3. 1 physische Maschine mit drei virtuellen Maschinen mit 3 verschiedenem / samt OSes

    (Das war ein 3- (O) Tier-app)

  4. 1 physische Maschine mit 1 virtueller Maschine mit 1 O, aber 3 AppServers

    (Das war ein 3- (AppServer) Tier-app)

  5. 1 physische Maschine mit 1 virtueller Maschine mit 1 O mit 1 AppServer aber 3 DBMS

    (Das war ein 3- (DBMS) Tier-app)

  6. 1 physische Maschine mit 1 virtueller Maschine mit 1 O mit 1 AppServers und 1 DBMS aber 3 Excel-Dateien.

    (Das war ein 3- (AppServer) Tier-app)

Excel-Arbeitsmappe ist die minimal erforderliche Umgebung für die VBA-Code auszuführen.

Diese drei Arbeitsmappe auf einem einzigen physischen Computer oder mehr sitzen können.

Ich habe bemerkt, dass die Menschen bedeuten "OS Tier" in der Praxis, wenn sie "Tier" in der App-Beschreibung Kontext sagen.

Das ist, wenn eine App auf 3 separate OS läuft dann seinem einen 3-Tier-App.

So ein pedantisch richtiger Weg, um eine App zu beschreiben wäre

"1-zu-3-Tier-fähig, läuft auf 2 Tiers" app.

:)


Ebene sind nur Codetypen in Bezug auf die funktionale Trennung der Aufgaben withing die App (z Präsentation, Daten, Sicherheit usw.).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top