Quelle est la différence entre "Layers" et "Tiers"?
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?
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.
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.
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:
É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
J'ai trouvé une définition qui dit que les calques sont une séparation logique et les niveaux sont une séparation physique.
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 ".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.
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.
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.
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.
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
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é:
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
exactement le même concept de couche et de niveau.
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.
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).
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]
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 machine physique avec 3 machines virtuelles sans système d'exploitation.
(C'était une application de niveau 3 (matériel))
1 machine physique avec 3 machines virtuelles avec 3 systèmes d'exploitation différents/identiques
(C'était une application à trois niveaux (OS))
1 machine physique avec 1 machine virtuelle avec 1 SE mais 3 serveurs d'applications
(C'était une application de niveau 3 (AppServer))
1 machine physique avec 1 machine virtuelle avec 1 SE avec 1 AppServer mais 3 SGBD
(C'était une application de niveau 3- (SGBD))
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.)
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.
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.