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