web-dev-qa-db-fra.com

Quelle est la différence entre "Layers" et "Tiers"?

Quelle est la différence entre "Layers" et "Tiers"?

193
cretzel

Les couches logiques ne sont qu'un moyen de organiser votre code. Couches typiques comprennent Presentation, Business et Données - les mêmes que le traditionnel Modèle à 3 niveaux. Mais quand on parle à propos des couches, nous ne parlons que de organisation logique du code. En no Ainsi, cela implique-t-il que ces couches pourrait fonctionner sur différents ordinateurs ou dans processus différents sur un seul ordinateur ou même dans un seul processus sur un seul ordinateur. Tout ce que nous faisons. discute d'une façon d'organiser un code dans un ensemble de couches défini par fonction spécifique.

Les tiers physiques ne concernent cependant que où le code s'exécute. Plus précisément, les niveaux sont des endroits où les couches sont déployé et où les couches fonctionnent. Dans En d'autres termes, les niveaux sont le physique déploiement de couches.

_ {Source: Rockford Lhotka, Toutes les applications doivent-elles être à plusieurs niveaux?

231
Panos

Lisez le message de Scott Hanselman sur le sujet: http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx

Rappelez-vous cependant que dans "Scott World" (qui, espérons-le, est également votre monde :)), un "niveau" est une unité de déploiement, tandis qu'un "calque" est une séparation logique des responsabilités dans le code. Vous pouvez dire que vous avez un système "à 3 niveaux", mais que vous l’utilisez sur un seul ordinateur portable. Vous pouvez dire que votre système est "à 3 couches", mais que seules les pages ASP.NET qui parlent à une base de données. Il y a du pouvoir dans la précision, amis.

40
Josh

Les couches font référence à la séparation logique du code. Les couches logiques vous aident à mieux organiser votre code. Par exemple, une application peut avoir les couches suivantes.

1) Couche de présentation ou couche d'interface utilisateur 2) Couche d'entreprise ou couche de logique métier 3) Couche d'accès aux données ou couche de données

Les trois couches ci-dessus résident dans leurs propres projets, peuvent être 3 projets ou même plus. Lorsque nous compilons les projets, nous obtenons la DLL de couche correspondante. Nous avons donc 3 DLL maintenant.

Selon la façon dont nous déployons notre application, nous pouvons avoir 1 à 3 niveaux. Comme nous avons maintenant 3 DLL, si nous déployons toutes les DLL sur la même machine, nous n’avons qu’un seul niveau physique mais 3 couches logiques.

Si nous choisissons de déployer chaque DLL sur une machine séparée, nous avons 3 niveaux et 3 couches.

Ainsi, les couches sont une séparation logique et les niveaux sont une séparation physique. Nous pouvons également dire que les niveaux sont le déploiement physique de couches.

27
Satish

Pourquoi toujours essayer d'utiliser des mots complexes?

Un layer = une partie de votre code, si votre application est un gâteau, il s'agit d'une tranche.

Un tier = une machine physique, un serveur. 

Un niveau héberge une ou plusieurs couches.


Exemple de couches:

  • Couche présentation = généralement tout le code lié à l'interface utilisateur
  • Couche d'accès aux données = tout le code lié à votre accès à la base de données

Étage:

Votre code est hébergé sur un serveur = Votre code est hébergé sur un niveau.

Votre code est hébergé sur 2 serveurs = Votre code est hébergé sur 2 niveaux.

Par exemple, une machine hébergeant le site Web lui-même (la couche Présentation), une autre machine plus sécurisée hébergeant tout le code le plus sensible à la sécurité (code métier réel - couche métier, couche d'accès à la base de données, etc.).


L'implémentation d'une architecture en couches présente de nombreux avantages. C'est délicat et bien implémenter une application en couches prend du temps. Si vous en avez, consultez ce message de Microsoft: http://msdn.Microsoft.com/en-gb/library/ee658109.aspx

22
andrew

J'ai trouvé une définition qui dit que les calques sont une séparation logique et les niveaux sont une séparation physique.

11
cretzel
  1. En clair, anglais, Tier fait référence à "chacun d’une série de rangées ou de niveaux d’une structure placée l’une sur l’autre", tandis que Layer se réfère à "une feuille, une quantité ou une épaisseur de matériau, généralement un ou plusieurs, couvrant une surface. ou corps ".
  2. Le niveau est une unité physique, où le code/processus s'exécute. Exemple: client, serveur d'applications, serveur de base de données;

    La couche est une unité logique, comment organiser le code. Exemple: présentation (vue), contrôleur, modèles, référentiel, accès aux données.

  3. Les niveaux représentent la séparation physique de la présentation, des activités, des services et des fonctionnalités de données de votre conception sur des ordinateurs et des systèmes distincts. 

    Les couches sont les groupements logiques des composants logiciels qui constituent l'application ou le service. Ils permettent de différencier les différents types de tâches effectuées par les composants, facilitant ainsi la création d'une conception prenant en charge la possibilité de réutilisation des composants. Chaque couche logique contient un certain nombre de types de composants discrets regroupés en sous-couches, chaque sous-couche effectuant un type de tâche spécifique. 

Le modèle à deux niveaux représente un client et un serveur.

Dans ce scénario, le client et le serveur peuvent exister sur le même ordinateur ou sur deux ordinateurs différents. La figure ci-dessous illustre un scénario d'application Web commun dans lequel le client interagit avec un serveur Web situé dans la couche client. Ce niveau contient la logique de la couche de présentation et toute logique de la couche de gestion requise. L'application Web communique avec un ordinateur distinct hébergeant le niveau base de données, qui contient la logique de la couche de données.

Layers vs Tiers

Avantages des couches et des niveaux:

  • La superposition vous aide à optimiser la maintenabilité du code, à optimiser le fonctionnement de l’application lorsqu’il est déployé de différentes manières.

  • Le fait de placer vos couches sur des niveaux physiques distincts peut améliorer les performancespar répartir la charge sur plusieurs serveurs. Cela peut également contribuer à la sécurité en séparant des composants et des couches plus sensibles Sur différents réseaux ou sur Internet par rapport à un intranet.

Une application à 1 niveau pourrait être une application à 3 couches.

8
TryinHard

J'utilise des couches pour décrire l'architecte ou la pile technologique au sein d'un composant de mes solutions. J'utilise des niveaux pour regrouper logiquement ces composants lorsque des communications réseau ou interprocessus sont impliquées.

4
Brian Matthews

Oui, mes chers amis ont dit correctement. La couche est une partition logique de l’application, tandis que le niveau est la partition physique du système. La partition de niveau dépend de la partition. Tout comme une application s'exécute sur une seule machine mais elle suit une architecture à 3 couches, on peut donc dire que l'architecture de couche peut exister dans une architecture de niveau . En termes simples, une architecture à 3 couches peut être implémentée dans une seule machine. est une architecture à 1 niveau. Si nous implémentons chaque couche sur une machine distincte, l’architecture à trois niveaux est appelée Une couche peut également exécuter plusieurs niveaux . Dans le composant lié à l’architecture de couche pour communiquer facilement entre eux.
Comme nous suivons l'architecture ci-dessous 

  1. couche de présentation
  2. couche de logique métier
  3. couche d'accès aux données

Un client peut interagir avec la "couche de présentation", mais il accède au composant public des couches inférieures (comme le composant public de la couche de logique applicative) pour accéder à la "couche de logique applicative" pour des raisons de sécurité.
Q * Pourquoi utilisons-nous une architecture de couche? Parce que si nous implémentons une architecture de couche, nous augmentons l'efficacité de nos applications, comme 

==> sécurité 

==> facilité de gestion 

==> évolutivité

d’autres besoins, comme après le développement d’une application, nous avons besoin de changer de base de données ou de modifier la logique d’entreprise, etc. c’est nécessaire pour tous.

Q * Pourquoi utilisons-nous une architecture de niveau? 

parce que physiquement, la mise en œuvre de chaque couche donne une meilleure efficacité, sans architecture de couche, nous ne pouvons pas mettre en œuvre une architecture de niveau. machine séparée pour implémenter des couches séparées et des couches séparées implémentent une ou plusieurs couches, c’est pourquoi nous l’utilisons.
qu’il utilise aux fins de la tolérance aux pannes . ==> facile à entretenir.

Exemple simple

Tout comme une banque ouverte dans une chambre, dans quelles catégories l'employé:

  1. gardien de porte 
  2. une personne pour de l'argent
  3. une personne qui est responsable d'introduire le système bancaire
  4. directeur

ils sont tous les composants liés du système.

Si nous allons à la banque pour obtenir un prêt, un portier ouvre la porte en souriant Ensuite, nous nous approchons d'une personne qui présente tous les mécanismes de prêt par la suite Nous allons à la cabine du responsable et passons le prêt. . Après cela, nous allons enfin au guichet de la banque pour prendre un prêt . Ce sont des couches d'architecture de banque.

Qu'en est-il du niveau? Une succursale de banque est ouverte dans une ville, puis dans une autre ville, puis dans une autre Mais quelle est l'exigence de base de chaque succursale 

  1. gardien de porte
  2. une personne pour de l'argent
  3. une personne qui est responsable d'introduire le système bancaire
  4. directeur

exactement le même concept de couche et de niveau.

4
atul

J'aime la description ci-dessous de Microsoft Application Architecture Guide 2

Les couches décrivent les regroupements logiques des fonctionnalités et des composants d'une application. Les niveaux décrivent la distribution physique des fonctionnalités et des composants sur des serveurs, ordinateurs, réseaux ou emplacements distants séparés. Bien que les couches et les niveaux utilisent le même ensemble de noms (présentation, activités, services et données), n'oubliez pas que seuls les niveaux impliquent une séparation physique. 

3
sanjaykumar81

Les couches _ ​​sont une séparation logique de related-functionality[code] au sein d'une application, la communication entre les couches est explicite et faiblement couplée. [Logique de présentation, Logique d'application, Logique d'accès aux données]

Tiers _ ​​sont la séparation physique de layers [hébergée sur des serveurs individuels] sur un ordinateur individuel (processus).

 enter image description here

Comme indiqué dans le diagramme:

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 - niveau avantages:} _
Meilleure sécurité
Évolutivité _ ​​: Au fur et à mesure que votre entreprise grandit, vous pouvez faire évoluer votre base de données avec le clustering de base de données sans toucher aux autres niveaux.
Facilité de maintenance _ ​​: le concepteur Web peut modifier le code d'affichage, sans toucher aux autres couches des autres niveaux.
Facilement Mettre à niveau ou Améliorer [Ex: Vous pouvez ajouter un code d'application supplémentaire, mettre à niveau une zone de stockage ou même ajouter plusieurs couches de présentation pour des objets distincts tels que mobile, tablette, pc]

2
Yash

Techniquement, un niveau peut être une sorte d’environnement minimum requis pour l’exécution du code.

Par exemple. hypothétiquement une application à 3 niveaux peut être en cours d'exécution sur

  1. 3 machines physiques sans système d'exploitation.
  2. 1 machine physique avec 3 machines virtuelles sans système d'exploitation.

    (C'était une application de niveau 3 (matériel))

  3. 1 machine physique avec 3 machines virtuelles avec 3 systèmes d'exploitation différents/identiques

    (C'était une application à trois niveaux (OS))

  4. 1 machine physique avec 1 machine virtuelle avec 1 SE mais 3 serveurs d'applications

    (C'était une application de niveau 3 (AppServer))

  5. 1 machine physique avec 1 machine virtuelle avec 1 SE avec 1 AppServer mais 3 SGBD

    (C'était une application de niveau 3- (SGBD))

  6. 1 machine physique avec 1 machine virtuelle avec 1 OS avec 1 AppServers et 1 SGBD mais 3 classeurs Excel.

    (C'était une application de niveau 3 (AppServer))

Le classeur Excel est l'environnement minimum requis pour l'exécution du code VBA.

Ces 3 classeurs peuvent être installés sur un seul ordinateur physique ou sur plusieurs.

J'ai remarqué que, dans la pratique, les gens veulent dire "niveau OS" lorsqu'ils disent "niveau" dans le contexte de la description de l'application.

C'est-à-dire si une application fonctionne sur 3 systèmes d'exploitation distincts, il s'agit d'une application à 3 niveaux.

Donc, une manière pedantically correcte décrivant une application serait

Application "compatible 1 à 3 niveaux, fonctionnant sur 2 niveaux".

:)


Les couches ne sont que des types de code en ce qui concerne la séparation fonctionnelle des tâches avec l'application (par exemple, Présentation, Données, Sécurité, etc.)

0
Dimitri KOH

Lorsque vous parlez de présentation, de service, de données, de couche réseau, vous parlez de couches . Lorsque vous les "déployez séparément", vous parlez de niveaux. 

Tiers est tout au sujet du déploiement. Prenons les choses ainsi: nous avons une application qui a une interface créée en Angular, un backend en tant que MongoDB et une couche intermédiaire qui interagit entre les interfaces. Ainsi, lorsque cette application frontale, cette application de base de données et la couche intermédiaire sont toutes déployées séparément, nous disons qu'il s'agit d'une application à 3 niveaux.

Bénéfice: Si nous devons redimensionner notre backend à l’avenir, nous n’avons besoin que de le dimensionner de manière indépendante et il n’est pas nécessaire de le redimensionner.

0
Aarzoo Trehan

Les couches sont des entités conceptuelles et sont utilisées pour séparer les fonctionnalités du système logiciel d'un point de vue logique. Lorsque vous implémentez le système, vous organisez ces couches à l'aide de différentes méthodes. dans cet état, nous ne les désignons pas comme des couches mais comme des niveaux.

0
gst