Une base de données XML sur le net Responsable : Jean-Luc Massat
Plan Présentation de l’application Fonctionnalités Architecture Gestion Authentification Validation Publication Architecture Technologie Hibernate XML/XSL/DOM4J JSF Démarche Conclusion
Midihaou Content Management System Deux Parties Stockage Mise à jour Présentation Deux Parties Back Office Front office
Nationalité: française Back Office Id:1234567 Nom: Dupont Prénom: Jean Age: 42 Taille:1.78 Nationalité: française Schéma Schéma Collection Collection Collection Doc Doc Doc Doc Doc Doc Doc Doc
Back office 2 types d’utilisateurs Utilisateurs non authentifiés Utilisateurs authentifiés Propriétaire Gestionnaire de collection Administrateur
Gestion des droits Les droits des utilisateurs authentifiés: Un propriétaire peut modifier les documents lui appartenant et voir les autres documents publics Un gestionnaire de collection peut modifier les documents de la collection dont il est responsable L’administrateur a tous les droits sur l’ensemble des collections et des documents
Front office Présentation des informations Accessible au public Serveur HTTP Doc FrontOffice HTML
Fonctionnalités
Gestion Naviguer Rechercher Administrer
Gestion - Naviguer Arborescence Code de couleur Documents Collections Document publique Document partagé Document privé Collections Collection publiée Collection non publiée
Gestion - Rechercher Un objet (Document, collection ou schéma) Recherche précise Recherche large Résultat
Gestion - Administrer Création / Modification / Suppression Configuration présentation modification <schema> <string name="nom"/> <string name="age"/> <string name="site"/> <string name="email"/> </schema> Giraud 22 http://www.midihaou.com giraud@midihaou.com
Fonctionnalités Authentification
Authentification Nécessité pour un utilisateur de s’authentifier pour accéder à l’ensemble de ses documents sur le BackOffice Documents représentant des utilisateurs à partir desquels on se connecte
Email : jean.dupont@yahoo.fr Authentification Doc utilisateur ID = jdupont Password = **** Nom : Dupont Prénom : Jean Email : jean.dupont@yahoo.fr … Authentification propriétaire propriétaire propriétaire Doc ID : Doc1 PROP : jdupont … Doc ID : Doc2 PROP : jdupont … Doc ID : Doc3 PROP : jdupont …
Authentification Les liens authentifiant : Possibilité d’accéder directement à un document via une URL reçue par mail en cas d’oubli de mot de passe Durée de validité du lien limitée Lien sécurisé contenant un ensemble de paramètres permettant de vérifier sa validité (message crypté) Exemple d’un lien authentifiant :
Fonctionnalités Validation
Validation Un document est soumis au schéma de la collection à laquelle il appartient Le schéma est une structure pour un document Un document peut être invalide par rapport à son schéma (donnée non renseignée, modification du schéma…) Il peut demeurer ainsi dans la base
Validation Module de validation de document à partir d’un schéma Erreurs du document transmises au propriétaire du document par mail Administrateur peut déclencher la validation sur l’ensemble des documents Mécanisme de validation des schémas lors de leur création et de leur modification
Fonctionnalités Publication
Publication Une CSS et XSL par défaut Une CSS et XSL par collection Document Collection Une CSS et XSL par défaut Une CSS et XSL par collection Données Au format XML CSS XSL Données globales Document HTML
La XSL par défaut Présentation standard des données XSL <document> <responsable>Jean-Luc Massat</responsable> <url>http://www.dil.univ-mrs.fr/masterinfo/ue.html#M26</url> <email>massat@univmed.fr</email> <text>[b]Résumé[/b] : Il s'agit de présenter...</text> <logo>25632</logo> </document> XSL Présentation standard des données
Stockage des fichiers Génération de fichiers statiques Stockage à plat des fichiers Nom des fichiers préfixés Schéma : sch + id schéma Collection : col + id collection Document : doc + id document Fichier : file + id document
Navigation Collection Schéma Documents Index.html Collection Documents
Architecture
Une architecture en couche Presentation Metier Data Access Object Une architecture en couche SGBD
Circulation des données Presentation Echange des beans entre les couches La couche métier offre des services applicatifs Beans données Metier DAO
Une architecture en couche Présentation Métier Interface Data Access Object Interface
Inversion des dépendances La classe A utilise la classe B A B A Interface Dépendance Le couple (A, Interface) impose les méthodes à implémenter B
Une architecture en couche Présentation Métier Interface SGBD BD XML Data Access Object Data Access Object XML Interface
Présentation Présentation Métier Data Access Object Interface
Des vues MVC Présentation Contrôleur Traitements graphique Traitements métier
Une structure évolutive L’organisation en couche facilite l’ajout de fonctionnalités et la maintenance Meilleure séparation des tâches
Technologies
Hibernate outil d'ORM (object Relationnal Mapping) manipuler les données et assurer leur persistance
La gestion optimiste Problème : mise à jour du même document par plusieurs utilisateur.
XML/XSLT XML(eXtensible Markup Language) langage de balisage format de description des données. XSLT (Extensible Stylesheet Language Transformation) transforme des documents XML dans divers formats comme le HTML,PDF,SVG et ... le XML.
DOM4J DOM4J: API Open Source JAVA Librairie permettant de travailler sur: XML,XPATH, XSLT.
Le Cache Stocker des schémas et documents Augmenter la vitesse de l’application Taille fixée Suppression de l’élément le moins utilisé
Technologie Java Server Faces
Java Server Faces Framework basé sur les technologies JSP et Servlets. JSF est un standard J2EE. Plusieurs implémentations de la norme JSF : RI de SUN MyFaces d’Apache Facelets Modèle de développement événementiel et orienté composant. JSF permet : mapping HTML/Objet modèle riche de composants graphiques réutilisables liaison simple entre actions côté client et code Java coté serveur
Validateurs et Converteurs JSF Implémentation de validateurs JSF Validation à la saisie des formulaires Conversion de données saisies dans un formulaire
Les Messages JSF Permet de stocker des messages Facilite l'internationalisation des applications Aucun texte écrit directement dans notre application
Binding de Composants JSF private inputText input ; composant inputText Type Line composant inputLabel Type Number composant inputSelectOne Type Enum composant inputTextArea Type Text Un composant panelGrid complexe
Composant MyFaces Librairie Tomahawk : Tree2 Date TabbedPane DataScroller FileUpload InputSuggest etc …
Composant MyFaces Tree2
Composant MyFaces TabbedPane
Démarche
Planning V0 V1 Développement Analyse Rapport Conception 1 semaine 3 semaines 2 semaines et demi Analyse Conception Développement Rapport V0 V1
(création, modification, suppression, authentification, présentation) Lotissement V1 Validation Recherche Front office V0 Fonctions de base (création, modification, suppression, authentification, présentation)
Conclusion
Résultat obtenu Implémentation des principales fonctionnalités Évolutivité
Bilan personnel Bilan horaire : 2300 heures Formation et application de nouvelles technologies
Adresses Présentation : http://www.midihaou.is.dreaming.org Subversion : http://www.midihaou-svn.is.dreaming.org Front-Office : http://www.midihaou-frontoffice.is.dreaming.org Back-Office : http://www.midihaou-backoffice.is.dreaming.org