Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parNathalie Mahe Modifié depuis plus de 10 années
1
Master SIR (M2) Année Développement en environnement J2EE de Web services pour l'interopérabilité du projet CASTORE ce stage de fin d’étude a été réalise à l’école des mines de Nantes dans le cadre du projet castOre qui est développé à l’école des mine de Nantes en partenariat avec l’université de Nantes code lutin, et xerox. Donc le sujet a été le développement d’un module ws pour l’interopérabilité de la bibliothèque numérique castore avec d’autre system d’archivage ouverte distant, que l’on voit tous de suite Réalisé par : SIDI MOHAMED Cheikhna
2
Plan Introduction Réalisation Perspective Apports et Conclusion
Le déroulement de cette présentation se sera débuté par une introduction pour présenter d’abord le contexte du stage et évidemment un récapitulatif sur l’architecture technique du projet castore et ses principales fonctionnalités on présente aussi dans cette partie les web service proposées par l’archive ouverte HAL que l’on va intégrer dans le projet castore. Puis le travail demandé. En suite on parlera de la partie développement et réalisation, qui explique en détail le travail réalisé. Dans le troisième point on cite l’extension et l’intégration de ce module dans castore. En fin les apport et les compétences retiré de ce stage.
3
Plan Introduction Réalisation Perspective Apports et Conclusion Alors
4
Contexte du stage Castore plate-forme libre de bibliothèque numérique
Introduction Contexte du stage Castore plate-forme libre de bibliothèque numérique Documents transformés en XML Méta données XML en Dublin Core Gestion des droits sur le document Utilisation à travers un client léger Simple et ergonomique État de l’art des technologies du Web centre de ressources multimédia documentaire Alors cstore c’est un projet open-source développé en java et respectant l’architecture à composante, il utilise les normes XML pour la transformation des documents, il est accessible via un client léger et par les technologie de ws : Il traite aussi tous les types des document que se soit txt,pdf,image,video, …etc En plus de ça CASTORE intervient aussi pour assurer la qualité et la normalisation de l’archivage
5
Contexte du stage Architecture technique Modules JDO Introduction
SGBD Système de fichiers Serveur d’application Conteneur WEB Modules JDO Administration Gestion du système Validation des documents Utilisateurs Visualisation des documents Recherche de documents Soumission de documents POJO* *Plain Old Java Object JSP & XSLT & Applets Donc voici l’architecture technique de castore, il met en disposition des utilisateurs, une interface qui leur permet de visualiser les document rechercher et soumettre leur propre document, donc en principe c’est via des pages jsp, car le castore tourne sur le serveur d’application Tomcat, en suite les pages jsp accède aux autres modules du projet. Et donc les document sont échangé avec le système de fichier qui stock et le sgbd en gérant la persistance avec JDO que l’on verra plus tard. Enfin l’administrateur intervient pour la validation des docs en attente de la soumission
6
Contexte du stage HAL( Hyper Archive en Ligne)
Introduction Contexte du stage HAL( Hyper Archive en Ligne) rendre publics des documents scientifiques outil de communication scientifique directe entre chercheurs Consultation des thèses électroniques HAL propose 3 WebServices: WebService Référentiel WebService Submit WebService Search Dans le but du prolongement des activités du projet castore On m'a confié de développer un module web service qui étend la soumission pour d'autres archives ouvertes qui gèrent eux mêmes la littérature grise.( tous qui est thèse rapport de stage,……) Et donc l’une de sec archive est HAL qui permet de déposer et de rendre publics des documents scientifiques de toutes les disciplines, D’autre part, HAL constitue donc un outil de communication scientifique directe entre chercheurs, il permet aussi la consultation des thèses numériques. Cette plateforme propose 3 ws dont le ws référentiel Permet d'accéder en consultation aux référentiels internes de HAL (métadonnées, laboratoires, domaines scientifiques, etc.). Le ws submit : Permet de déposer, compléter, modifier des articles scientifiques. Le ws earch : : Pour consulter ou rechercher les articles scientifiques déposés sur HAL..
7
Web services des archives ouvertes
Introduction Travail demandé Web services des archives ouvertes HAL HAC2 …. I N T E R SGBD Système de fichiers Projet ‘Core’ Facade JDO POJO* *Plain Old Java Object Web Services EJB Portlet Struts Blabla, Comme castore implémente le patterne façade, donc tous les appels des autres modules comme ws,portlet struts doivent passer par les façades en utilisant l’intranet, ensuite tous ces modules sont accessible par le net. Donc Le but principal de l’application est de développer un module de web service pour rendre le projet CASTORE interopérable avec des autres systèmes distants par les technologies de web service. Et plus particulièrement l’archive HAL. I N T R A E
8
Travail demandé Méthode et contrainte de travail Cycle de vie en Y CVS
Introduction Travail demandé Méthode et contrainte de travail Cycle de vie en Y Branche fonctionnelle Branche technique Conception CVS Update Commit Synchronise Le développement en castore suit principalement un cycle en Y incrémental et itératif, son principe est donc dissocier l'architecture technique (Branche technique )et la logique applicative (Branche technique), la branche fonctionnelle comprend les Exigences fonctionnelles. Et la branche technique definit les choix technique adaptée pour assurer les exigences fonctionnelles. et puis ils sont reliées dans la conception qui constitue le développement et la réalisation. Le travail en commun de plusieurs personnes sur un ensemble de fichiers peut poser des problèmes tels que savoir qui a modifié un certain fichier, à quel moment et quel changement a été effectué. Pour pallier ces problèmes liés à la gestion de versions, l’équipe castore utilise l'outil référentiel CVS (Concurrent Versions System) installé sur un serveur . Update a pour effet de mettre à jour les fichiers locaux à partir de versions situées sur le serveur cvs commit demande au serveur de valider et d'intégrer les changements qui ont pu être faits sur les fichiers en local. Synchronize permet de voire la différence entre la version sur la machine du développeur et celle sur le serveur CVS.
9
Plan Introduction Réalisation Perspective Apports et Conclusion
10
Plan Introduction Réalisation Perspective Apports et Conclusion
Dans la seconde partie on verra le travail réalisé,
11
Schéma de l’application
Réalisation Schéma de l’application WS HAL BD Castore core Façade Doc Struts Portlet WS Files D’attente Gestionnaire de sumitte Others WS Interface HAL Voici un schéma qui présente l’architecture que j’ai proposé et développé, qui vous donne à priori une vision globale sur ce que j’ai fait. C’est conçu pour assurer une meilleurs séparation entre les modules car il se découpe en trois couche, La première couche représente le castore-core et les autres modules comme ws et strtus …. Etc, la deuxième couche c’est celle qui sert d’interface entre le module ws-externes et les module de castore, elle contient les données nécessaire pour la soumission,dans un fichier xml, en plus de la file d’attente de la soumission, qui stock l’identifiant du document à soumettre. La couche suivante représente le module ws-externes, qui récupère les information nécessaire à la soumission et se charge d’invoquer le ws pour soumettre le document vers les archives, la dernières couche représentes les ws des archive à interoperer avec castore. InfosArchi XML Gestionnaire De la soumission Couche des données WS Externes CASTORE
12
Mécanisme de fonctionnement
Réalisation Mécanisme de fonctionnement WS HAL BD 1 6 3 7 2 Castore core Façade Doc Struts Portlet WS Files D’attente Gestionnaire de sumitte Others WS Interface HAL 9 4 On va voir comment se fonctionner ce système, d’abord un fois le document est accepté dans castore l’utilisateur peut choisir de le soumettre vers HAL, pour cela le module correspondant va stocker l’Identifiant du document dans la file d’attente de la soumission, puis les autres information complémentaires sont stockés dans le fichier xml associe au document, Et comme le thread de gestionnaire de la soumission est lancé lors du démarrage de castore, il vérifie s’il y a des document à soumettre dans la file d’attente, il retire un élément qui contient l’identifiant du document à soumettre et l’instance de l’archive correspondante il récupère les données nécessaires à partir de la façade du document et a partir du fichier xml. Ensuite il invoque le ws en envoyant le fichier codé en base64 plus sa signature MD5 pour assurer l’intégrité du document, HAL retourne un mot de passe , la version,et le status du client si la soumission se déroule comme prévu ces données sont stockées dans le fichier xml associé et le document retiré de la file d’attente si l’opération échoue le document sera mis dans la files d’attente des echecs. On va détailler dans la site chacune des technologies utilisé 5 InfosArchi XML 8 Gestionnaire De la soumission Couche des données WS Externes CASTORE
13
Préparation de l’environnement
Réalisation Préparation de l’environnement Création du projet Installation de l’environnement Récupération de la totalité des projets Formation et convention Configuration avec MAVEN MAVEN Rapport de style Rapport de couverture de code Rapport de mesure de complexité (Metrics) Gestion des compilations Dans premier temps j’ai procédé à installer l’environnement de développement( comme eclpse tomcat java,…et les différent dependecies et les fichiers jar nécessaires au castore), puis j’ai récupéré la totalité des projets castore comme struts, ws, portlet , etc, …. On a fait aussi une formation sur le projet et sur les différent technologies utilisée dans le projet castore et la convention des codage qui est inspiré principalement du javadoc et quelque méthode d’organisation des projet. Configuration et installation du maven avec eclipse pour faciliter et automatiser certain taches du projet. Donc maven permet, génère automatiquement les différente rapport et document pour chaque projet aussi il se charge de compiler les sources du projet, pour lui permettre de gérer les projet il faut décrire un fichier maven.xml qui décrive de manière déclarative, le projet au sens de Maven
14
Client JAVA du Web Services
Réalisation Client JAVA du Web Services Découverte de HAL Documentation technique Configuration Génération des stubs Axis WSDL2JAVA Message SOAP Mettre en œuvre le Web service Cette partie se débute avec la découverte du web services HAL , Suite à une demande de mon maître de stage, qui est lui même le chef du projet CASTORE, Je suis rentré en contacte avec l’équipe de développement de HAL pour concerter le travail en commun Afin de hisser ces collaborations on m’a livré une documentation technique complète de leur web service, puis je procède à faire les configuration nécessaire en créant un compte sur leur serveur de teste. A partir du fichier WSDL j’ai généré les Stubs qui sont l'ensemble des classes clientes pour l'appel aux web services de HAL. Ceci c'est fait avec AXIS, le moteur Java qui permet aux classes Java d'exporter certaines de leurs méthodes en tant que méthodes de services Web, et qui dispose aussi de l’outils wsdl2java qui permet de gérer les stubs, Les messages sont échangé avec le ws sous forme des message soap qui est un protocole de dialogue inter application, Son objectif est de sérialiser et de désérialiser les objets Java transportés en flux XML SOAP. Puis la mise en œuvre du ws en invoquant leur méthodes nécessaires. Et ça ce fait par la composante soumetteur propre à HAL
15
Soumetteur Interface HAL Création du service
Réalisation Soumetteur Interface HAL Création du service Récupération des informations de la soumission Invocation du service Sauvegarde de retour Notification du soumetteur Global Il constitue une interface spécifique à HAL, il crée le ws depuis le end-point et il Utilise du service pour obtenir un stub. Il est nécessaire de récupérer les information stocké dans le fichier xml associe au document et a partir de la façade de document, Ensuite il invoque le ws en envoyant le fichier codé en base64 plus sa signature MD5 pour assurer l’intégrité du document, On utilise les technologies xml pour sauvegarder les paramètres retournés par le ws. À la fin de ce processus il notifie le soumetteur globale. Donc c’est quoi le soumeutteur globale.
16
Global submitter Thread lancé lors du démarrage de CASTORE
Réalisation Global submitter Thread lancé lors du démarrage de CASTORE Gère les soumissions Redirige vers l’instance de l’archive correspondante. Collecte les informations nécessaires à la soumission. Gestion de la file d’attente de la soumission Gestion de retour d’information C’est un thread lancé lors du démarrage du projet, c’est lui qui constitue le cœur de l’application, il décide à quel instance d’archives ou on doit soumettre le document, Il contient aussi les classes qui collectes les information de la soumission et de retour de ws dans une map qui sera exploité par l’interface HAL ou par les autres éventuelle interface. Il permet aussi de gérer la file d’attente de la soumission dont on va parler dans la suite. Enfin j’ai utilisé l’API dom pour parser et parcourir les fichiers xml, et pour enregistrer les modification au niveaux de ces fichier j’ai utilisé le transformer de xslt,
17
Global submitter File d’attente de la soumission La persistance
Réalisation Global submitter File d’attente de la soumission La persistance JPOX JDO Requêtes JDOQL File d’attente des échecs Cette file permet de contenir une référence de l'instance de l'archive correspondante, ainsi que l'identifiant du document à soumettre, ce dernier permet de récupérer toutes les informations nécessaires à partir de la façde document pour la soumission. Cette file doit être persistante c-a-d conserver son état dans une base de données après l’arrêt du projet castore, La technologie adapté par castore pour gérer la persistance est JPOX qui l’implementation opensources de JDO, JDO vise alors à garantir une indépendance:Du support de stockage, du fournisseur de l'implémentation JDO , et de la plate-forme d'exécution .les requêtes sont faite avec le jdoql et donc pas de requête sql classiques. Une autre file d’attente m’apparaît logique pour traiter les documents qui n’ont pas abouti avec succès, leurs soumissions, suite à une non-conformité des paramètres fournis au web services
18
Intégration dans STRUTS
Réalisation Intégration dans STRUTS Ajout du bouton de la soumission vers HAL Cette page représente une interface struts qui permet à l’utilisateur de faire des action sur ces document tel que le téléchargement la visualisation. Ce bouton là permet de rediriger vers la page ou on doit spécifier l’instance de l’archive et le reste des informations complémentaire, dans le formulaire struts, pour ensuite etre traité dans la servlet action de struts, o va voir d’abord c’est quoi struts quelle sont ces fonctionnalité et comment configurer
19
Intégration dans STRUTS
Réalisation Intégration dans STRUTS Framework Struts Patterns MVC Taglibs de Struts Configuration Utilisation des tiles Struts est un framework Open Source écrit entièrement en JAVA qui permet de construire des applications Web. Struts est construit autour de technologies qui ont fait leurs preuves comme les servlets JAVA, les JavaBeans, le formalisme XML . Struts implémente le design pattern MVC model vue controler. Le modèle MVC cherche à séparer les couches présentation, traitement et accès aux données. Sont des bibliothèques de balises standards livré avec castore dont taglib html qui gère tous ce qui est formulaires et les éléments html la tag logic qui manipule les boucles le if. Etc La manipulation des beans ActionForms au sein des JSP est grandement facilitée par l'emploi des taglibs Struts. La configuration c’est faite en configurant la servlet action dans le descripteur web.xml, aussi struts dispose d’un fichier de configuration ou on va déclarer les formulaire et les action correspondante ainsi que les diffèrents forwards nécessaires. Enfin Pour mieux organiser l’interface utilisateur on a utilisé les tiles qui vise à séparer le code ç a d le header les menu le body
20
Plan Introduction Réalisation Perspective Apports et Conclusion
21
Plan Introduction Réalisation Perspective Apports et Conclusion
On va voir dans cette partie la perspective et l’évolution possible pour ce module
22
Intégration et extension
Perspectives Intégration et extension Intégration dans le module WS Intégration dans le module Portlet …. Utilisation d’autres archives ouvertes Configuration dans le global submitter En raison de faciliter l’intégration dans le future j’ai suivi une architecture un peu flexible, c a dire si on veut intégrer le module wsexterne dans le ws et le porlet ou d’autre module, il suffit d’utiliser l’interface qui ajoute le document dans la file d’attente et enregistre les données complémentaire qui ne sont pas dans la façade du document dans le fichier xml associé au document, donc il ne s’intéresse pas d’attendre que le document soit soumis ou non. Si l’équipe castore décide d’utiliser une archive ouverte autre que Hal il suffit de le configurer dans le gestionnaire globale de la soumission sans grand effet sur les modules castore ni la coche des données.
23
Plan Introduction Réalisation Perspective Apports et Conclusion
24
Plan Introduction Réalisation Perspective Apports et Conclusion
Cette dernière partie résume l’ensemble des apport et compétence tiré de cette expérience professionnelles
25
Résumé Contexte du stage Réalisation du partie WS
Apports et conclusion Résumé Contexte du stage Réalisation du partie WS Thread de la soumission globale La persistance JDO Framework Struts On va faire un petit rafraîchissement sur ce qu’on a vu, Donc le contexte du stage on a vu en gros c’est quoi le projet castore les principaux ws de l’archive ouverte HAL. En suite le schéma de l’application et la mécanisme que le document suit jusqu’à la soumission vers le ws de HAL. Puis on est rentré dans les détaisl de chaque partie qui constitue le gestionnaire globale de la soumission. On a fait le tour sur la persistance des objets castore utilisant l’implémentation JDO, Enfin l’intégration dans le module struts et les fonctionnalité de ce dernier.
26
Apports et conclusion Compétences L’autonomie L’esprit d’équipe
Intégration dans un projet réel L’autonomie L’esprit d’équipe Technologies Acquérir de nouvelles technologies J2EE Approfondir mes connaissances En ce qui concerne les apport retiré de cette expérience professionnel, se divise en deux partie, D’abord les compétences, j’ai pu intégrer un projet réel qui m’a permis de concrétiser mes connaissances , en plus d’un forte capacité d’auto formation et donc une autonomie dans se qui me concerne du projet. Mais aussi appréhender comment travailler dans une équipe competente. Secondo Le travail dans le projet castore m’a permis de découvrir tout un métier de développement java/j2ee, avec de nouvelle technologie comme maven struts, jdo cvs, mais aussi approfondir les connaissance acquise durant mon parcours universitaire. Ce qui va incontestablement renforcer mon parcours professionnel. J’espère avoir éclairci suffisamment le Sujet, Merci de votre attention
27
Merci de votre attention
Questions ? A vous de participer…..!
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.