Vous êtes sur la page 1sur 27

Architectures logiques

et
modles de conception

Architectures logiques et
modles de conception

Gnralits

Architecture n tiers

Modle MVC

2/27

Gnralits
En rgle gnrale, une application est dcoupe en 3
couches d'abstraction :

La couche prsentation (IHM)

Gre les interactions utilisateur/machine

La couche traitements (couche mtier) :

Locaux :

Globaux :

contrles effectus au niveau du dialogue avec l'IHM


L'application elle-mme

La couche donnes :

Gre le stockage et l'accs aux donnes


3/27

Gnralits

Chaque couche ne communique qu'avec la


couche qui lui est adjacente.
Prsentation

Traitement

Donnes

4/27

Gnralits

Ces 3 couches peuvent tre imbriques ou rparties de


diffrentes manires entre plusieurs machines
physiques(niveaux) ou logiques.
Suivant les contraintes, nous aurons plus ou moins de
niveaux.

On parle d'architecture n-tiers

Remarque: niveau couche (tier layer)


5/27

Architecture logique et
modles de conception

Gnralits

Architecture n tiers

Modle MVC

6/27

Architecture n tiers

Un tier (tage en franais) reprsente l'aspect


physique de l'architecture
Il s'agit d'un modle logique d'architecture
applicative qui vise modliser une application
comme un empilement de trois couches.

7/27

Architecture n tiers

Architecture 1 tier/3 layers (1 tage / 3


couches)
Les 3 couches se trouvent sur la mme
machine.
Prsentation
Traitement
Donnes

8/27

Architecture n tiers

Architecture 2 tiers/3 layers


Deux couches se trouvent sur la mme
machine et la troisime est sur une
machine distante.
Prsentation

Client

Traitement

Serveur
Donnes
9/27

Architecture n tiers

Architecture 3 tiers/3 layers


Les 3 couches se trouvent sur 3 machines
distinctes.

Prsentation

Traitement

Client

Donnes

Serveur de BDD
(ex: Oracle)
Serveur de traitement
(ex: HTTP)

10/27

Architecture n tiers

Architecture n tier/3 layers


Les 3 couches se trouvent sur n machines
distinctes.
Traitement

Prsentation

Donnes

Rpartition de
la charge

Client

Serveur de
traitement

Serveur
de BDD
Serveurs
applicatifs

11/27

Architecture logique et
modles de conception

Gnralits

Architecture n tiers

Modle MVC

12/27

Prsentation

Modle MVC

Traitement

Donnes
Si le modle en 3 couches
(prsentation,traitement, donnes) permet de
structurer et de modulariser les applications, les
contraintes de communication entre couches
peuvent s'avrer problmatiques.

Si des donnes sont mises jour dans une base


de donnes, la couche prsentation ne pourra
montrer ce changement que si l'utilisateur
intervient au niveau de la couche prsentation,
qui interviendra sur la couche de traitement, etc.

13/27

Modle MVC
Model-View-Controller
Modle-Vue-Contrleur

Architecture et une mthode de conception


qui organise l'interface homme-machine
(IHM) d'une application logicielle.
Cette mthode a t mise au point en
1979 par Trygve Reenskaug, qui travaillait
alors sur le langage Smalltalk.
14/27

Modle MVC
Principe:

Isoler la donne de sa reprsentation

Distinguer la consultation de la modification

15/27

Modle MVC
Les interactions avec les donnes possdent trois
composantes :

L'accs aux donnes

Une reprsentation l'affichage

Modle
Vue

Le traitement des vnements pour synchroniser la


Contrleur
vue et les donnes

16/27

Modle MVC

Le modle n'est plus en couche, mais en


triangle

17/27

Modle MVC

Le modle

Offre des mthodes pour mettre jour les


donnes .

Reprsentation des donnes manipules.

Contient les donnes du programme sous


une forme comprhensible par la ou les
vues.

18/27

Modle MVC

Le modle

Il peut avoir plusieurs vues et plusieurs


contrleurs.

Il peut tre utilis sur ordre du contrleur.

Il signale ses vues tous les changements de


contenu en leur envoyant un vnement qui
leur spcifie de se mettre jour.

19/27

Modle MVC

La vue

Correspond l'interface avec laquelle


l'utilisateur interagit.

Prsente les rsultats renvoys par le modle.

Elle n'effectue aucun traitement

Reoit toutes les actions de l'utilisateur (clic


de souris, slection d'une entre, boutons, etc)
et renvoie ces diffrents vnements au
contrleur.

20/27

Modle MVC

La vue

Elle se met jour ds qu'elle reoit un ordre


de notification :
du contrleur.

du modle.
Quand la notification vient du modle, elle
va consulter le modle pour se rafficher de
manire correcte.

21/27

Modle MVC

Le contrleur

Il prend en charge la gestion des vnements


de synchronisation pour mettre jour la vue
ou le modle et les synchroniser.

Il n'effectue aucun traitement, ne modifie


aucune donne, mais analyse la requte du
client et se contente d'appeler le modle
adquat et de renvoyer la vue correspondant
la demande.

Il reoit tous les vnements de l'utilisateur


et enclenche les actions effectuer.
22/27

Modle MVC

Le contrleur

Reoit les vnements de l'interface


utilisateur et les traduits :
En changeant la vue s'ils agissent sur
le ct visuel (clic dans l'ascenseur de
la fentre, ...).

En demandant un changement au
modle s'ils agissent sur le contenu
(demande de zoom sur un graphique,
modification le diagramme en btons
en agissant dans la vue, ...).

23/27

Modle MVC

Exemple de frameworks* utilisant ce modle

COCOA (objective-C)

Struts, Swing, SWT (JAVA)

QT (C++)

Zend, Symfony (PHP)

*:couche d'abstraction logiciel offrant diverses fonctionnalits et services.

24/27

Modle MVC

MVC est trs pratique :

Sparation IHM / traitement

Peut se rvler lourd mettre en place.

Multitude de contrleurs implmenter.


Chaque Framework introduit des
variantes.

25/27

Modle MVC

MVC2

Mme modle de conception, mais un


seul contrleur qui se charge de rediriger
la requte vers le bon traitement
(Action).

Zend utilise ce principe

Un contrleur.

Plusieurs actions.

Une vue (par dfaut)par action.


26/27

Conclusion

Aspect logiciel

Modle en couche

MVC

Prsentation

Traitement

Donnes

Aspect physique

Architecture n tiers

27/27