2006-06-02

Architectures MVC et 3-Tier

Les noms d'architectures MVC et 3-Tier sont très couramment utilisés dans les cours de génie logiciel. Il est facile de s'emmêler les pinceaux car ces deux pratiques sont à la fois différentes et similaires.

L'architecture MVC

Model View Controller (Modèle Vue Contrôleur) est souvent décrit comme un simple design pattern (motif de conception) mais c'est plus un architectural pattern (motif d'architecture) qui donne le ton à la forme générale d'une solution logiciel plutôt qu'à une partie restreinte.

Les trois parties du pattern MVC sont les suivantes :

  1. Model : Le modèle défini les données de l'application et les méthodes d'accès. Tout les traitements sont effectués dans cette couche.
  2. View : La vue prend les informations en provenance du modèle et les présente à l'utilisateur.
  3. Controller : Le contrôleur répond aux événements de l'utilisateur et commande les actions sur le modèle. Cela peut entrainer une mise à jour de la vue.

L'architecture 3-Tier

L'architecture 3-Tier sépare, tout comme MVC, l'application en trois parties bien distinctes :

  1. User interface : La partie présentation de l'application.
  2. Buisness logic : La couche métier qui s'occupe du traitement de l'information.
  3. Data access : La partie accès et stockage des données

Architecture MVC ou 3-Tier ?

La différence fondamentale se trouve dans le fait que l'architecture 3-Tier sépare la couche Buisness logic (couche métier) de la couche Data access (accès aux données).

Pour qu'une application MVC soit une vraie application 3-Tier il faut lui ajouter une couche d'abstraction d'accès aux données de type DAO (Data Access Object).

Inversement pour qu'une application 3-Tier respecte MVC il faut lui ajouter une couche de contrôle entre User interface et Buisness logic.

Loin d'être antagonistes, ces deux pratiques se combinent et sont la fondation de la plupart des frameworks de création d'applications Web.

Peut-on parler alors de MVCDAO ou d'architecture 4-Tier ?