fiche des ppe contexte e4

publicité
TRAORE
Chiekhou
BTS SIO SLAM
FICHE DES PPE CONTEXTE E4
PPE Authentification :
L'accès à l'application est soumise à authentification. Celle-ci est implémentée par un
composant distribué de type EJB Session Stateless et par un composant persistant de
type EJB Entity. Ils ont pour nom respectif : AuthentificateurEJB et Utilisateur. Le
composant distribué AuthentificateurEJB implémente la méthode authentifier() qui
contrôle le login et le password saisis dans l'interface Homme-machine. Chaque utilisateur
correspond à un nuplet dans la table UTILSATEUR de la base de données. Un objet de
type Data Transfer Object (DTO) permet de communiquer la réussite ou l'échec de
l'authentification à l'application WEB. L'objet UtilisateurDTO est transmis via le protocole
JAVA RMI à l'application WEB à l'issue du processus d'authentification. Si l'authentification
a réussi alors l'objet DTO contient le nom, le prénom de l'utilisateur et le message a pour
contenu « Bienvenue ». En cas d'échec seul le message est renseigné avec le contenu «
Echec ».
Modèle métier: il n'est composé que du composant EJB Entity auto-persistant dans la
base de données relationnelle à laquelle le serveur WILDFLY est connectée.
Modèle technique : il repose sur un composant distribué de type EJB Session Stateless et
sur une classe qui sert d'objet de transfert (DTO : Data Transfer Object).
Cet objet doit
implémenter l'interface
Fiche PPE du Contexte E4 Lycée Paul Lapie
1
java.io.Serializable afin de pouvoir être encodé (Marshalling) et décodé (UnMarshalling)
dans un format lui permettant d'être acheminé par le réseau du serveur WILDFLY au
serveur TOMCAT.
PPE Caisse Enregistreuse :
Elle est développée grâce aux cadriciels JAVA EE JSF (Java Server Faces) et JPA
(Java Persistence API).
Fiche PPE du Contexte E4 Lycée Paul Lapie
2
La page d'accueil de l'application (login.xhtml) est celle qui permet à l'utilisateur de
s'authentifier. Si l'authentification réussit, la navigation propose le menu général
(menu.xhtml). Selon le choix de l'utilisateur (employé ou gérant) la navigation propose la
page d'enregistrement d'une vente (vente.xhtml) ou celle qui permet de consulter le journal
comptable des ventes (journal.xhtml). C'est le composant JAVA JSF
ComposantAuthentificateur qui interagit avec la page login.xhtml. Il délègue au service
distant implémenté par un composant EJB, l'authentification de l'utilisateur. Le composant
JAVA JSF ComposantVente, quant à lui interagit avec la page vente.xhtml. Il a la
responsabilité d'enregistrer la vente. Le composant JAVA JSF ComposantJournal
interagit avec la page journal.xhtml. Il a la responsabilité de créer un objet valeur
(ValueObject) contenant la liste des ventes utilisée par la page journal.xhtml.
Modèle métier :
l'originalité de l'application est qu'elle repose sur un modèle métier persistant structuré grâce
aux patrons de conception (Design Pattern) Décorateur et Monteur (Builder). Le patron
de conception Décorateur s'adapte bien aux modèles contenant des objets qui représentent
un système d'information de base, ici les coupes de cheveux pour femme, pour enfant et
pour homme, et d'autres objets qui représentent un système d'information optionnel ou
complémentaire, ici les services supplémentaires (couleur, brushing, soins, etc). Le patron
de conception Monteur permet de lui déléguer la responsabilité d'ordonnancer les tâches à
réaliser afin de construire un graphe d'objets représentant une décoration (graphe complexe).
Le modèle métier a vocation à être persistant. La technologie employée à cette fin est la
couche de persistance standard du langage JAVA : JPA (JAVA PERSISTENCE API). Le
produit logiciel libre utilisé pour implémenter cette couche est HIBERNATE.
Fiche PPE du Contexte E4 Lycée Paul Lapie
3
La solution de persistance du modèle décorateur et donc sa correspondance
(mapping) au niveau de la base de données relationnelle est implémentée par une
seule table (solution union). Donc une seule table pour toute la dérivation comprenant
les classes Service, Coupe, Supplément, CoupeHomme, CoupeFemme,
CoupeEnfant, Brushing, Couleur, Shampoing et Soin.
Il est possible qu'une cliente ou qu'un client ne désire pas de coupe mais ne veuille
qu'un ou plusieurs services de type supplément. Par exemple un simple brushing.
C'est ce qui explique la présence de la classe PasDeCoupe. Le patron de conception
Monteur permet de concevoir un ensemble de classes responsables de la construction
d'une structure d'objets représentant un graphe de type décoration, c'est à dire une
liste chaînée. Le Monteur ou Builder est d'ailleurs conçu pour faciliter la création de
graphes d'objets complexes. Dans le cas d'une vente d'un service de coiffure, la
construction doit absolument commencer par la création d'un objet concret de type
CoupeFemme, CoupeEnfant, CoupeHomme ou PasDeCoupe et être « décoré »
par zéro ou plusieurs suppléments. La classe DirecteurDuMontage représente
l'interface du patron de conception. C'est à elle que s'adresse les objets
consommateurs du montage.
La classe MonteurDeServiceImpl implémente l'interface MonteurDeService.
C'est elle qui a la responsabilité de concrètement construire la structure d'objet
représentant la Décoration.
Fiche PPE du Contexte E4 Lycée Paul Lapie
4
PPE Création Utilisateurs :
L'application consiste à analyser (parser) le fichier XML qui contient la liste des
nouveaux comptes utilisateur à créer. Le parsing est de type SAX, c'est à dire qu'il
répond à un comportement de type événementiel.
L'application doit extraire du fichier utilisateurs.xml les informations qui
caractérisent les comptes à créer, puis instancier des objets persistants JPA de la
classe Utilisateur pour enfin les stocker dans la base de données authentificationDB
grâce à l'API JPA (Java Persistence API). Pour aider l'administrateur à choisir le
fichier XML à traiter une interface graphqiue est à envisager. Celle-ci peu-être
implémentée à l'aide de l'API SWING du langage JAVA. Ou bien à l'aide d'une
nouvelle application WEB et à un composant graphique (UI Component) JSF
(Java Server Faces). La distribution Open Source PrimeFaces propose ce type de
composant. Le parsing SAX repose sur l'implémentation de l'interface
ContentHandler ou sur la spécialisation de la classe DefaultHandler. C'est cette
dernière solution qui est retenue ici. Le parsing doit être validant, c'est à dire que le
parseur doit vérifier la concordance du fichier utilisateurs.xml avec sa DTD
(utilisateurs.dtd).
Fiche PPE du Contexte E4 Lycée Paul Lapie
5
DIAGRAMME DE CLASSE DE L'APPLICATION CI-DESSUS:
Fiche PPE du Contexte E4 Lycée Paul Lapie
6
Téléchargement