En entreprise, les logiciels les plus fréquemment développés sont des interfaces utilisateurs permettant la gestion d'un ensemble de données tel que les données clients d'une entreprise. Ils veulent pouvoir ajouter, supprimer et modifier les informations de leurs clients. Une base de données permet de stocker leur information.
Lors de la démocratisation de l'informatique, dans les premiers programmes de gestion, l'interface utilisateur lisait, modifiait la base de données et enregistrait celle-ci. Très vite, avec l'évolution de ces logiciels, les développeurs ont très vite aperçu les limites de cette technique.
C'est alors que le besoin de travailler sur des couches est apparu en programmation fonctionnelle. Donc, par exemple, pour afficher la liste des clients :
Lors de la démocratisation de l'informatique, dans les premiers programmes de gestion, l'interface utilisateur lisait, modifiait la base de données et enregistrait celle-ci. Très vite, avec l'évolution de ces logiciels, les développeurs ont très vite aperçu les limites de cette technique.
C'est alors que le besoin de travailler sur des couches est apparu en programmation fonctionnelle. Donc, par exemple, pour afficher la liste des clients :
- La couche présentation (Presentation Layer) : une WinForm affichait la liste qui elle faisait appel à :
- La couche métier (Business Layer) : une fonction ChargeListe située dans une classe Client sélectionnait les clients qui elle faisait appel à :
- La couche d'accès aux données (Data Access Layer) : une fonction lisait la base de données.
** Il arrive parfois qu'on entende parler d'architecture distribuée, cette approche vient du fait que chaque couche est sur un ordinateur différent et peut-être même dans des lieux différents.
Architecture n-tiers
Dans une architecture n-tier, si on fait abstraction de tout, on peut résumer ceci par : Chaque couche est le client d'une couche et le serveur d'une autre. Le cas le plus fréquent de ce type d'architecture est le modèle Client/Serveur qui est en 2-tiers.
- Tier « Client » – contiens l'interface utilisateur, adresse des requêtes au serveur.
- Tier « Serveur » - contiens la base de données. Reçois les requêtes, renvoi des données.

Dans les modèles 3-tiers et plus, il existe des composants intermédiaires qu'on appelle middleware.
Un exemple typique d'un système 3-tier est le suivant :
- Tier de présentation – contiens l'interface utilisateur. Utilisation des différents types de clients léger (Web, ASP, JSP ...) ou lourd (Swing, WinForm ...).
- Tier métier - contiens la logique des traitements.
- Tier d'accès à la base de données – Les programmes du deuxième tier font appel à ce dernier pour consulter ou mettre à jour les données relatives à l'entreprise.
Sur le même schéma, on peut ajouter des couches supplémentaires et obtenir une architecture 4, 5, …, n-tier.
Un exemple d'architecture à 5 couches :
- Couche présentation : Contient tous les composants graphiques du module composant l'interface homme-machine (fenêtres, contrôle utilisateur…) avec le code propre à l'affichage de leur représentation et de leur contenu. Cette couche ne peut référencer que les couches « Référence » et « Application ». ** Mettre le moins de code possible dans cette couche.
- Couche application : Contient tous les contrôleurs de cas d'utilisation du module. Cette couche assure le lien entre les composants graphiques et les composants métier. Cette couche ne peut référencer que les couches « Métier », « Persistance » et « Référence ».
- Couche métier : Contient tous les composants métier dont le module. Ces composants métier ont en charge la gestion du cycle de vie des objets métier géré par le module. Cette couche ne peut référencer que les couches « Référence » et « Persistance ».
- Couche référence: Cette couche contient les objets de données pures qui transitent entre toutes les autres couches. Ces objets sont aussi parfois nommés DataValues ou DataObjects.
- Couche persistance : Contient les composants assurant le « mapping » entre les objets définis dans la couche Métier et les composants de stockage définis dans la base de données. Cette couche ne peut référencer que les couches « Référence » et la base de données. Concrètement, il s'agit de la seule couche ayant un lien avec la base de données.
Architecture 3 tiers:
L'architecture 3-tier vise à séparer trois couches logicielles au sein d'une même application, à modéliser et à présenter cette application comme un empilement de trois couches dont le rôle est clairement défini :
- La présentation des données : correspondant à l'affichage, la restitution sur le poste de travail, le dialogue avec l'utilisateur.
- Le traitement métier : correspondant à la mise en œuvre de l'ensemble des règles de gestion et de la logique applicative, c’est à ce niveau que se trouvent toutes les règles de gestion, et toute l’intelligence de la démarche.
- L'accès aux données : correspondant aux données qui sont destinées à être conservées.

Relation entre les couches
Les services d'une couche sont mis à disposition de la couche supérieure. On s'abstient alors lorsqu'on programme, qu'une couche invoque les services d'une couche plus basse que la couche immédiatement inférieure ou plus haute que la couche immédiatement supérieure (chaque niveau ne communique qu'avec ses voisins immédiats). Voir les flèches sur le schéma suivant :

Astuces : Mettre en place une solution N-Tier sous Visual Studio
Pour mettre en place une application N-tiers en .NET, voici comment débuter le tout avec Visual Studio :
- Créer une solution vierge qui s'occupera de contenir les différentes couches de ton application.
- Créer un projet Web ou Windows que tu peux appeler UI (User Interface) par exemple dans cette solution. Ce premier projet de ta solution représente la couche « Présentation ».
- Créer d'autres projets de type "Bibliothèque de classes". Soit un projet pour ta couche « Métier (Businesse Logic Layer) », un projet pour la couche « d'accès aux données (Data Access Layer) » et ainsi de suite.
Marquer favoris
Bookmark
Email This
Hits: 508
Commentaires (0)

Ecrivez un commentaire





















