PROJET ARCHITECTURE MVC2 AVEC DISTINCTION CLASSE ET COMPOSANT Introduction. Aujourd’hui les applications logicielles sont composées de différents artefacts. Les classes d’objet pour implémenter les logiques applicative et métier, les composants logiciels pour implémenter des services complexes (communication réseau, gestion des transactions, etc). L’objectif du projet est de mettre en évidence la distinction entre ces éléments, leur utilisation, leur implémentation et leur mise en œuvre. Le projet. Il s’agit de réaliser le cas d’utilisation « s’authentifier ». La logique d’authentification repose sur des classes POJO (Plain Old Java Object). s'authentifier utilisateur Les contraintes non fonctionnelles précisent qu’il s’agit d’une application de type WEB avec une interface Homme-Machine. Cette interface est réalisée avec un composant WEB, une page HTML. L’application est structurée par le méta-patron MVC2. Le contrôleur est implémenté par un composant de type SERVLET capable de répondre à une requête HTTP. La caractéristique de ce type de composant est qu’il est modifié par l’environnement d’exécution lors de son déploiement. Le service HTTP du composant SERVLET est implémenté par héritage. Le projet est réalisé dans l’environnement intégré de développement Eclipse avec profil JAVA EE. 1/4 Architecture du projet. L’architecture du projet repose sur quatre paquetages JAVA (contrôleur, authentification, modèle et outils) et sur un composant de type page WEB stocké à la racine de l’application. Une application ou un service WEB JAVA est empaqueté dans une archive standardisée de type WAR (Web Application Resource). Quatre classes et une interface JAVA implémentent le code côté serveur. Une page HTML représente l’interface Homme-Machine (couche présentation). <<page HTML>> + auth.html controleur authentification <<servlet>> <<interface>> + Conroleur + Authentification +authentifier(identifiant : String,motDePasse : String) : boolean +doPost(rep : HttpServletRequest,rep : HttpServletResponse) : void <<realize>> outils + AuthentificationImpl + GérantUtlisateur 1 -gerant +authentifier(identifiant : String,motDePasse : String) : boolean +peupler() : void modèle -utilisateurs 1..* + Utilisateur -identifiant : String -motDePasse : String +newAttr : int Les utilisateurs ne sont pas stockés dans une source de données de type système de gestion de base de données (SGBD) mais en mémoire dans une collection JAVA (java.util.List). 2/4 La cinématique du processus d’authentification. Le diagramme de séquence ci-dessous représente les interactions entre les objets JAVA qui implémentent le service d’authentification. /contrôleur /authentificateur /utilisateur /gérant authentifier() getUtilisateurs() LOOP getIdentifiant() getMotDePasse() L’objet contrôleur est implémenté par la SERVLET de l’application 3/4 Le déploiement de l’application. L’application est déployée dans un micro-conteneur de type Docker. Celui-ci héberge une instance du serveur d’application JAVA EE WEB TOMCAT, produit logiciel de la fondation APACHE. serveur HTTP client conteneur Docker serveur HTTP TOMCAT navigateur WEB application WEB application WEB authentifier 4/4