PcKULT.NET - La référence en informatique

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color

PcKULT.NET - Recrute

PcKULT.NET est présentement à la recherche de passionnés d'informatique qui veulent se greffer à l'équipe de PcKULT.NET. Si l'aventure vous intéresse, veuillez communiquer avec nous.

webmaster@pckult.net


Introduction au développement en couche (N-Tier)

E-mail Imprimer PDF
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 :
  • 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.
Cela a par la suite été formalisé en programmation-objet.

** 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.


Ajouter cette page à votre Digg-Like préféré
Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! Technorati! StumbleUpon! Spurl! Furl! Blogmarks! Yahoo! FeedMeLinks!
Commentaires (0)Add Comment

Ecrivez un commentaire
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
Réduire l'éditeur | Agrandir l'éditeur

busy
 

Sondage

Votre fournisseur Internet
 

Publicités