Modèle d'un site simple de vente • L’exemple du livre “Ruby on Rails” • Partie II • Java Adventure Builder Demo • Réalisé avec Java et HTML. • Voir http://java.sun.com/blueprints/code/adventure/1.0/docs/architecture.html Architecture d’un site de vente au détail 1 Architecture ModèleVue-Contrôleur • Pourquoi? • Séparer les responsabilités • Permettre une diversité des interfaces selon les technologies • Rendre facile les changements aux flots des interactions • Plusieurs modèles MVC • WebObjects, Struts, Java Server Faces, Ruby on Rails Architecture d’un site de vente au détail 2 Schéma général Architecture d’un site de vente au détail 3 Responsabilités • Modèle • Le modèle représente les données de l’entreprise et les règles d’affaires qui s’appliquent sur l’accès et les mises à jour aux données • Vue • La vue présente à l’utilisateur le contenu d’un modèle. • Contrôleur – • Le contrôleur traduit les interactions de la vue en des actions qui seront exécutées par le modèle. • Dans un client autonome, les actions seront l’activation des boutons et les choix dans les menus • Dans une application Web, les actions seront des requêtes HTTP GET et PUT • Les actions exécutées par le modèle inclues l’activation des règles d’affaire ou les changements à l’état du modèle. • Basé sur les interactions de l’utilisateur et le résultat des actions sur le modèle, le contrôleur répond en présentant la vue appropriée. Architecture d’un site de vente au détail 4 Architecture des composants en RoR • Voir livre, ref 2, p. 12 Architecture d’un site de vente au détail 5 Le routage en RoR • Voir livre, ref 2, p. 280 Architecture d’un site de vente au détail 6 Architecture des composantes en Java Architecture d’un site de vente au détail 7 Description • Application Controller – Controleur d’application • Responsable pour la traduction des requetes http en commandes et pour gérer le cycle de vie des commandes individuels • Command – Une commande • Une opération de traitement sur une requête individuelle. Dans plusieurs, plusieurs requêtes peuvent être traité par la même commande. • Composite View – Une vue composite • Fournit une façon d’assembler une vue unique à partir de vues individuelles. La composition se fait avec un descripteur en XML qui s’applique sur une page JSP. • Data Access Object (DAO) - Objet d’accès aux données • Classes qui gère l’accès aux données externes en SQL • Facade - Façade • Un accès regroupé et simple pour accéder à des objets spécialisés dérivés d’objets génériques Architecture d’un site de vente au détail 8 Description (2) • Front Controller – Contrôleur frontal • Point d’accès central à toutes les requètes, suit l’exécution. • Intercepting Filter - Filtre d’interception • Pré-traitement et post-traitement des requêtes • Service Locator – Identificateur de service • Trouver et identifier la ressource externe nécessaire pour une application, comme une ressource base de données, serveur externe de mail, etc… • View Dispatcher – Répartiteur de vue • Habituellement une partie du contrôleur, le répartiteur de vue est responsable de redonner la main à une vue spécifique suite aux résultats d’une commande et à l’état du système. • View Helper – Aide pour la vue • Outils complémentaires pour afficher la vue de l’état d’un modèle. Architecture d’un site de vente au détail 9 Architecture détaillée (2) Architecture d’un site de vente au détail 10 Références sur le patron “Modèle-Vue-Contrôleur” • Voir la référence 2, pages 9-18, et la Partie III, The Rail framework, pages 173-372 • Voir http://java.sun.com/blueprints/patterns/MVCdetailed.html • Implementing MVC Design Pattern in .NET • • http://www.c-sharpcorner.com/Code/2003/Feb/MVCDesign.asp http://developer.apple.com/documentation/WebObjects/ Architecture d’un site de vente au détail 11