Consultation des Miles et du programme «avantages
Transcription
Consultation des Miles et du programme «avantages
Elouazzani Youssouf Projet Personnel Encadré 2 SLAM Consultation des Miles et du programme «avantages» L'application «Avantages» permet aux clients fidèles de cumuler des points encore appelés Miles à chaque règlement de services dans les salons de la chaîne franchisée Paul L. Ils doivent pouvoir consulter leurs miles et prendre connaissance des avantages auxquels ils donnent droit. C'est cette dernière fonctionnalité qui est l'objet du projet. packages Classes modele ressources service Avantage FournisseurDePersistence (singleton) ServiceRest ClientFidele GerantAvantage GerantClientFidele Librairies Hibernate META-INF persistence.xml WEB-INF web.xml derbyclient Jersey Le peupleur packages Modele ressources Avantage Lanceur ClientFidele Peupleur Librairies Hibernate derbyclient META-INF persistence.xml WEB-INF web.xml Classes Elouazzani Youssouf Projet Personnel Encadré 2 1/6 Elouazzani Youssouf Projet Personnel Encadré 2 SLAM Lorsqu'un client décide de faire partie du programme avantage, l'employé utilise l'application WEB pour enregistrer ses données (nom, prénom, courriel, téléphone fixe et mobile). Dès la validation de l'enregistrement un identifiant est créé aléatoirement (randomize) et lui est communiqué via son adresse de courrier électronique. C'est avec cet identifiant que le client fidèle va pouvoir consulter ses Miles et le programme avantages. pour réaliser cette application on a utilisé Eclipse JAVA EE en Dynamic Web Project, ainsi que UML pour réaliser le diagramme de cas d'utilisation et Squirrel pour la connexion à las base de données. Architecture. L'application de consultation possède une architecture basée sur des micro-services avec des machines virtuelles de type conteneur Docker. Il y a un conteneur qui héberge la base de données et un autre le serveur d'application web. Le conteneur avec le service TOMCAT est lié au conteneur qui possède le service DERBY par un lien Docker (option–link). Couche service : implémentée par les classes GerantClientFidele et GerantAvantage assistées par la classe singleton FournisseurDePersistance. Couche médiation : implémentée par la classe ServiceREST annotée avec les annotations propres au framework jax-rs avec délégation à la servlet du framework jax-rs de la distribution JERSEY. Couche métier : implémentée par les classes Avantage et ClientFidele. Ce sont des classes JAVA avec les annotations du framework JPA. Couche d'accès aux données : implémentée par le framework JPA de la distribution Hibernate. Couche de stockage : implémentée grâce au SGBDR APACHE DERBY. Elouazzani Youssouf Projet Personnel Encadré 2 2/6 Elouazzani Youssouf Projet Personnel Encadré 2 SLAM Problème technique. La première utilisation de l'application pâtit d'un temps de latence important ce qui pénalise son utilisateur. En effet c'est à ce moment que la classe qui a la responsabilité du service REST utilise la classe singleton GerantAvantage. Cette dernière réalise une requête SQL et restaure via la couche ORM JPA la liste des avantages qui est ensuite formatée et retournée sur le mobile (téléphone, tablette, etc) du client fidèle qui désire consulter ses Miles. Pour éviter cette latence, il est possible d'utiliser un composant JAVA EE de type SERVLET démarré en mode EAGER par le serveur d'application, c'est à dire dès le déploiement de l'application. Ce composant déléguant au singleton GerantAvantage le soin de restaurer la liste des avantages mais dans ce cas dès le déploiement. Ce qui a pour conséquence de ne plus pénaliser le premier utilisateur de l'application. On a créer un fichier qui nous permet de lancer les deux conteneurs Tomcat et Derby (demarrageContexte.sh) qu'on lance grâce à la commande « bash demarrageContexte.sh » et le conteneur avec le service TOMCAT est lié au conteneur qui possède le service DERBY par un lien Docker (option–link), tout ça grâce à un script UNIX. Le fichier demarrageContexte.sh Après avoir lancer ce script on obtient les adresses des conteneurs Derby et Tomcat : Grâce au fichier « persistence.xml » on a pu se connecter à la base de données : "jdbc:derby://derby:1530//tmp/avantagesDB" "jdbc:derby://172.17.0.4/avantagesDB;create=true" //pour le lanceur Nom de la base : avantagesDB Port de connexion : 1530 Adresse IP : derby Elouazzani Youssouf Projet Personnel Encadré 2 3/6 Elouazzani Youssouf Projet Personnel Encadré 2 SLAM Capture d'écran de l'application sur un appareil mobile. Simulation réalisée grâce à l'émulation de périphérique mobile du navigateur Google Chrome La classe Singleton qui encapsule durant toute l'exécution de l'application une instance de fabrique de gérant de persistance (EntityManagerFactory) : voir annexe 1 Le fichier technique qui configure le comportement de la couche d'accès aux données JPA : voir annexe 2 Elouazzani Youssouf Projet Personnel Encadré 2 4/6 Elouazzani Youssouf Projet Personnel Encadré 2 SLAM Projet Personnel Encadré 2 5/6 Annexe 1 : Annexe 2 : Elouazzani Youssouf Elouazzani Youssouf Projet Personnel Encadré 2 SLAM Ici nous avons utiliser un jeu de test pour simuler l'identifiant que devra utiliser le client, donc pour consulter ses Miles et le programme avantage, le client devra insérer son identifiant dans la barre d'adresse (par exemple DP1115). Elouazzani Youssouf Projet Personnel Encadré 2 6/6