Introduction aux
architectures n-tier
Philippe TANGUY
Département LUSSI
philippe.tanguy@telecom-bretagne.eu
Architecture n-tier
application ou système.
Les rôles de chacune de ces couches sont clairement
définis.
Philippe TANGUY
Les trois couches principales
Couche présentation des données :
Couche traitement des données :
applicative.
Couche accès aux données :
souvent, ces données sont stockées en base de
Philippe TANGUY
sont mis à disposition de la couche supérieure
couche traitement.
couche présentation.
voisins immédiats.
Philippe TANGUY
Objectifs
Répondre à un certain nombre de préoccupations :
Allègement du poste de travail client
Introduction de clients dits « légers » :
n-tier proprement dites.
Amélioration de la sécurité des données :
Meilleure répartition de la charge entre les différents serveurs
une architecture technique sur plusieurs machines physiques.
Philippe TANGUY
couches
l'utilisation des mécanismes d'interfaces/implémentations.
Chaque couche est ainsi composée d'interfaces qui publient un
certain nombre de fonctionnalités et de services et de classes
concrètes qui implémentent ces interfaces (et offrent réellement le
service publié).
Les couches supérieures travaillent ainsi uniquement sur les
interfaces qui représentent des contrats immuables entre les deux
couches et n'ont aucune connaissance des implémentations.
Celles-ci peuvent donc changer sans impacter aucunement les
couches qui utilisent le service. La seule contrainte étant le respect
strict du contrat définit dans l'interface.
Philippe TANGUY
Mécanismes d'interfaces/implémentations
Philippe TANGUY
Application Web avec architecture 3-tier
Philippe TANGUY
Partie modèle de la couche données
Modèle de données objet de l'application.
C'est une couche particulière car transverse à toute l'architecture puisqu'elle permet de faire
correspondre au modèle de la base de données, le modèle objet que l'on va utiliser dans l'application
pour manipuler les entités métier.
Cette couche modèle n'a de visibilité sur aucune autre couche de l'application.
Cette couche représente donc un modèle d'objets et non un
ensemble de services
hiérarchie de classes concrètes.
- Les éléments de cette couche sont tous de simples Beans java (POJO : Plain Old Java
- NB : ce sont les objets de cette couche qui sont persistés en base de données par un moteur de
persistance (Hibernate dans notre cas) : chaque objet est la représentation objet d'un élément ou
d'un ensemble d'éléments relationnels.
Exemples :
Un employé, un département, un livre, un emprunt, un emprunteur, etc.
Convention de nommage (package) : .domain.model
Philippe TANGUY
Partie DAO de la couche données
En charge de la gestion des relations avec les sources de données,
quelles qu'elles soient.
Fonctionnalités CRUD (Create, Retrieve, Update, Delete) : services de création, de
recherche, de mise à jour et de suppression de données stockées dans un format
quelconque (SGBD, LDAP, XML, etc.).
Les mécanismes de persistance permettent d'effectuer les mises à
jour courantes simples directement et de manière transparente
dans la couche de services :
tout objet persistant modifié dans la couche de services sera persisté en base.
Convention de nommage (package) :
Interfaces :
.domain.dao
Implémentations :
.domain.dao.hibernate
.domain.dao.ldap
technologie utilisée (jpa, ldap, etc.).
Philippe TANGUY
Couche service
En charge de la logique métier de l'application, indifféremment des
sources de données utilisées et de la présentation.
CRUD (Create, Research, Update, Delete) sur des objets persistés et leur
appliquer ensuite des traitements métier.
D'autre part, cette couche est responsable des aspects transverses
: sécurité, gestion des transactions.
d'insertion précédemment effectuée, etc.).
Convention de nommage (package) :
.service
.service.impl
Philippe TANGUY
Couche présentation
En charge l'ensemble des opérations visant à transformer le résultat
brut issu de la couche service pour offrir une vue particulière des
données à l'utilisateur.
C'est cette couche qui transformera les données de manière à les
afficher dans un navigateur web par l'intermédiaire d'un framework.
Frameworks possibles :
http://tapestry.apache.org/
Dans le cadre de cette formation, pour des raisons de temps, nous
Philippe TANGUY
Les trois principale couches : présentation, service
ou métier et données.
Les conventions de nommage lors du codage de ces
couches
Philippe TANGUY