199 votes

Qu'est-ce que l'architecture N-Tier ?

J'ai vu récemment un certain nombre d'offres d'emploi de développeur qui comprenaient une phrase plus ou moins similaire à celle-ci : "Doit avoir de l'expérience avec l'architecture N-Tier", ou "Doit être capable de développer des applications N-Tier".

Cela m'amène à demander ce qu'est l'architecture N-Tier. Comment peut-on acquérir de l'expérience dans ce domaine ?

2 votes

Il est intéressant de noter que cet autre message demande également ce qu'est l'architecture N-Tier, mais les réponses sont complètement différentes. stackoverflow.com/questions/7271165/ . Il semble qu'il y ait une architecture N-Tier pour les logiciels et une architecture N-Tier pour le matériel.

251voto

Eugene Yokota Points 43213

Wikipedia :

En ingénierie logicielle, l'architecture multi-tiers (souvent appelée architecture n-tiers) est une architecture client-serveur dans laquelle, la présentation, l'application d'application et la gestion des données sont des processus logiquement séparés. Par exemple, exemple, une application qui utilise un intergiciel pour répondre aux demandes de données entre un utilisateur et une base de données utilise une architecture multi-tiers. L'utilisation la plus l'utilisation la plus répandue de l'"architecture fait référence à l'architecture à trois niveaux. trois niveaux.

On peut discuter de ce qui compte comme "niveaux", mais à mon avis, il faut au moins franchir la frontière du processus. Sinon, on appelle ça des couches. Mais il n'est pas nécessaire qu'ils soient dans des machines physiquement différentes. Bien que je ne le recommande pas, vous puede héberger le niveau logique et la base de données sur la même boîte.

alt text

Editar : Une des implications est que le niveau de présentation et le niveau logique (parfois appelé couche logique d'entreprise) doivent traverser les frontières des machines "à travers le fil", parfois sur un réseau peu fiable, lent et/ou non sécurisé. C'est très différent d'une simple application de bureau où les données se trouvent sur la même machine que les fichiers ou d'une application Web où vous pouvez accéder directement à la base de données.

Pour la programmation n-tier, vous devez regrouper les données sous une forme transportable appelée "ensemble de données" et les transmettre par câble. DataSet ou un protocole de services Web comme SOAP sont quelques-unes de ces tentatives de faire voler des objets au-dessus du fil.

6 votes

"3-tiers" et "N-tiers" : y a-t-il une différence ?

7 votes

Cela dépend de la façon dont vous comptez les "tiers" (logiques, physiques, etc.), mais vous pouvez facilement avoir plus de 3 processus impliqués pour écrire une application. Interface utilisateur, plateforme d'interface utilisateur (comme Eclipse RCP), services Web, BLL, DAL, base de données, services d'authentification, services de rapport, services analytiques...

6 votes

@chakrit : De mon temps (je suis vieux) plus que 2-tiers (client-serveur) faisait automatiquement référence à n-tiers.

20voto

tsilb Points 4356

Elle repose sur la manière dont vous séparez la couche de présentation de la logique commerciale de base et de l'accès aux données ( Wikipedia )

  • 3 niveaux signifie couche de présentation + couche de composants + couche d'accès aux données.
  • On parle de n-tier lorsque des couches supplémentaires sont ajoutées au-delà de celles-ci, généralement pour une modularité, une configurabilité ou une interopérabilité supplémentaires avec d'autres systèmes.

12 votes

En fait, si l'un de ces niveaux est hébergé par une partie distante, par exemple un processeur de paiement, ce niveau peut ne pas être aussi "inutile".

1 votes

Hmm. Il y a une grande différence entre les "couches" et les "services". N-Tier est généralement utilisé pour indiquer que pour le niveau donné, tout ce qui est au-dessus doit passer par lui pour accéder aux services de niveau inférieur. S'ils sont en parallèle, je les appellerais services plutôt que niveaux.

0 votes

Lors de la construction du MCV habituel (une architecture à trois niveaux), on peut décider d'implémenter le MCV avec des interfaces à double niveau, de sorte que l'on peut en fait remplacer un niveau particulier sans devoir modifier une seule ligne de code. On en voit souvent les avantages, par exemple dans les scénarios où l'on veut pouvoir utiliser plus d'une base de données (dans ce cas, on a une interface double entre les couches de contrôle et de données). Lorsque vous le placez sur la couche de visualisation (présentation), vous pouvez alors (attendez ! !) remplacer l'interface UTILISATEUR par une autre machine, automatisant ainsi la saisie RÉELLE ( !!).

17voto

1800 INFORMATION Points 55907

C'est un mot à la mode qui fait référence à des choses comme l'architecture Web normale avec, par exemple, Javascript - ASP.Net - Middleware - Couche de base de données. Chacun de ces éléments est un "niveau".

3voto

GregD Points 4434

Je crois savoir que N-Tier sépare la logique métier, l'accès client et les données en utilisant des machines physiques distinctes. La théorie est que l'une d'entre elles peut être mise à jour indépendamment des autres.

2voto

Sandeep Jindal Points 1813

Lorsque nous parlons de paliers, nous parlons généralement de processus physiques (ayant un espace mémoire différent).

Ainsi, dans le cas où les couches d'une application sont déployées dans différents processus, ces différents processus seront des niveaux différents.

Par exemple, dans une application à 3 niveaux, le niveau business communique avec les Mainframes (processus séparé) et communique avec le Reporting Service (processus séparé), alors cette application serait à 5 niveaux.

Le nom générique est donc n-tier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X