Upload
alais-lesage
View
108
Download
0
Embed Size (px)
Citation preview
Une base de données XML sur le net
Responsable : Jean-Luc Massat
Plan Présentation de l’application Fonctionnalités
Gestion Authentification Validation Publication
Architecture Technologie
Hibernate XML/XSL/DOM4J JSF
Démarche Conclusion
Midihaou
Content Management SystemStockage Mise à jourPrésentation
Deux PartiesBack OfficeFront office
CollectionCollectionCollection
Back Office
Doc
Doc
Doc
Doc
DocDoc
Doc
Doc
Schéma Schéma
Id:1234567Nom: DupontPrénom: Jean
Age: 42Taille:1.78
Nationalité: française
Back office
2 types d’utilisateursUtilisateurs non authentifiésUtilisateurs 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
DocFrontOffice
HTMLServeur HTTP
Fonctionnalités
Gestion
Naviguer Rechercher Administrer
Gestion - Naviguer Arborescence Code de couleur
Documents 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ésentationmodification
<schema> <string name="nom"/> <string name="age"/> <string name="site"/> <string name="email"/></schema>
Giraud
22
http://www.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
AuthentificationDoc utilisateur
ID = jdupontPassword = ****Nom : DupontPrénom : Jean
Email : [email protected]…
Doc
ID : Doc1PROP : jdupont
…
propriétairepropriétaire
propriétaire
Authentification
Doc
ID : Doc2PROP : jdupont
…
Doc
ID : Doc3PROP : 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
DonnéesAu format
XML
Document
XSL
CSS
Collection
Donnéesglobales
DocumentHTML
<document>
<responsable>Jean-Luc Massat</responsable>
<url>http://www.dil.univ-mrs.fr/masterinfo/ue.html#M26</url>
<email>[email protected]</email>
<text>[b]Résumé[/b] : Il s'agit de présenter...</text>
<logo>25632</logo>
</document>
La XSL par défaut
Présentation standard des données
XSL
Stockage des fichiers
Génération de fichiers statiques Stockage à plat des fichiers Nom des fichiers préfixés
Schéma : sch + id schémaCollection : col + id collectionDocument : doc + id documentFichier : file + id document
Navigation
SchémaCollection
Collection
Collection
Index.html
Schéma
Documents
Documents
Documents
Architecture
Une architecture en couche
SGBD
Circulation des données
DAO
Metier
Presentation Echange des beans entre les couches
La couche métier offre des services applicatifs
Beansdonnées
Une architecture en couche
Data Access Object
Métier
Présentation
Interface
Interface
Inversion des dépendances
A BDépendance
A Interface
Dépendance
B
La classe A utilise la classe B
Le couple (A, Interface) impose lesméthodes à implémenter
Une architecture en couche
Data Access ObjectXML
Data Access Object
Métier
Présentation
Interface
InterfaceBD
XMLSGBD
Présentation
Data Access Object
Métier
Présentation
Interface
Interface
Des vues MVC
Présentation
Traitementsgraphique
Traitementsmétier
Contrôleur
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
composant inputLabel
composant inputText
composant inputSelectOne
composant inputTextArea
Binding de Composants JSF
private inputText input ;
Un composant panelGrid complexe
Type Line
Type Enum
Type Number
Type Text
Librairie Tomahawk : Tree2 Date TabbedPane DataScroller FileUpload InputSuggest etc …
Composant MyFaces
Composant MyFacesTree2
Composant MyFacesTabbedPane
Démarche
Planning
AnalyseConception
3 semaines 2 semaines et demi
Développement
V0 V1Rapport
1 semaine
V1
ValidationRechercheFront office
Lotissement
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