Rapport de stage : Extension d un moteur de requête au traitement de sources de données hétérogènes



Documents pareils
Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Projet de développement

Un business model d éditeur open source

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Plateforme de capture et d analyse de sites Web AspirWeb

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

Générer du code à partir d une description de haut niveau

Environnements de développement (intégrés)

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Expert technique J2EE

ECLIPSE ET PDT (Php development tools)

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Acquisition Indexation Classement & Recherche & Stockage Consultation. Solution d archivage sur mesure

Paul FLYE SAINTE MARIE

JOnAS Day 5.1. Outils de développements

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Vérifier la qualité de vos applications logicielle de manière continue

Le moteur de workflow JBPM

31 ans - 8 ans d'expérience

MANAGEMENT DES SERVICES INFORMATIQUES

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Développement d'un logiciel VoIP BlackBerry

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Formations 2015 JASPER, REDMINE, TABLEAU, TALEND, SPAGO BI SYNALTIC 24 RUE DE L EGLISE VINCENNES

Objet : demande d emploi

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

Livret de Stages / 2013 Paris & Lyon. Carrières / Recrutement

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Famille IBM WebSphere Application Server

1 JBoss Entreprise Middleware

Bases de données documentaires et distribuées Cours NFE04

Présentation Alfresco

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Offres de stages 2011/2012

Rendez-vous la liberté avec Rational Quality Manager

Jean-Philippe VIOLET Solutions Architect

Cours Bases de données

PostgreSQL. Formations. SQL avancé Calendrier... 18

Formations 2015 JASPER, REDMINE, TABLEAU, TALEND, SPAGO BI ALTIC & SYNOTIS - TRAINING CENTER 24 RUE DE L EGLISE VINCENNES

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

JOnAS 5 Enterprise OSGi javaee compliant

Solutions informatiques (SI) Semestre 1

Livret de Stages / 2015 Paris & Lyon. group.com. Carrières / Recrutement

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Cahier des charges (CDC)

Formation : Langues : Types d Intervention et Secteurs d Activité :

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Note de synthèse du stage

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Ingénieur d Etudes.NET. Involys :.NET,3.5, C#, Vb.net, Asp.net, vb6,sql server2005, Oracle8i, TFS, MSProject, UML, Rational Rose

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

X2BIRT : Mettez de l interactivité dans vos archives

Visual Paradigm Contraintes inter-associations

Introduction aux concepts d ez Publish

Serveur de travail collaboratif Michaël Hoste -

4. SERVICES WEB REST 46

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Petite définition : Présentation :

Business Intelligence simple et efficace avec Excel et PowerPivot

PROSOP : un système de gestion de bases de données prosopographiques

Découvrir Drupal, le CMS Open Source de référence. Michel-Marie MAUDET Linagora /

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

Refonte front-office / back-office - Architecture & Conception -

Constat ERP 20% ECM 80% ERP (Enterprise Resource Planning) = PGI (Progiciel de Gestion Intégré)

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Les technologies du Big Data

Stage Ingénieur en développement logiciel/modélisation 3D

SQL Parser XML Xquery : Approche de détection des injections SQL

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Information utiles. webpage : Google+ : digiusto/

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

L enseignement de méthodes agiles dans un contexte d apprentissage actif

DotNet. Plan. Les outils de développement

Président d Inotekk Gestion de la société, développement du portefeuille clients, gestion et réalisation des projets informatiques

Projet de Java Enterprise Edition

CQP Développeur Nouvelles Technologies (DNT)

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

ANNEXES. Evaluation de la formation à Polytech Lille Département GIS. Enseignements les plus utiles. Enseignements à renforcer

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Livret de Stages 2014 / 2015

Génie logiciel (Un aperçu)

GUIDE DU PARRAIN. Promotion Concepteur Développeur Informatique

Davi Trénou. Analyste/Développeur. Concepteur web. Consultant SAP Logan, H2K2B4 Montréal, QC, CA.

Un serveur d'archivage

EDITORIAL: Revente des produits U2 à Rocket Software

Bien architecturer une application REST

CQP ADMINISTRATEUR DE BASES DE DONNÉES (ABD)

Transcription:

Rapport de stage : Extension d un moteur de requête au traitement de sources de données hétérogènes Auteur : Catherine PINTO DOS SANTOS ALMEIDA Tuteurs : Mr Nel TAURSISSON (Tuteur SKINsoft) Mr Jacques JULLIAND (Tuteur Université) Département informatique Université de Franche-Comté Année 2011-2012

Remerciements En premier lieu, je tiens à remercier Monsieur Geoffroy RIGOULOT, directeur de SKINsoft, de m avoir accueilli en tant que stagiaire au sein de son entreprise. J adresse plus particulièrement mes remerciements vers mon encadrant en entreprise, Nel TAURISSON de m avoir fait profiter de ses connaissances et savoir-faire, ainsi que pour son aide et son soutien pendant toute la durée du stage. Je remercie également Solaine DURPOIX pour sa bonne humeur qui rendait le travail agréable. Je me tourne pareillement vers Monsieur Jacques JULLIAND, encadrant de l université, qui a veillé au bon déroulement des évènements. Je n oublie pas l équipe enseignante grâce à laquelle nous avons pu acquérir les bases nécessaires afin de pouvoir évoluer en milieu professionnel. Finalement, je remercie mes relecteurs, Maria Sofia AMORIM DE OLIVEIRA, José PINTO DOS SANTOS ALMEIDA, et Matthieu QUEHEN pour leur patience et leur gentillesse.

Table des matières 1 Introduction 1 2 Présentation du document 2 2.1 But du document................................ 2 2.2 Cadre du document.............................. 2 2.3 Structure du document............................. 2 3 Présentation de l entreprise 3 3.1 Historique.................................... 3 3.2 Secteur géographique.............................. 3 3.3 Secteur d activité................................ 3 3.4 Marchés..................................... 3 3.5 Personnel.................................... 4 4 Présentation du sujet 5 5 Préliminaires 6 5.1 Nuxeo...................................... 6 5.2 Elasticsearch.................................. 6 5.3 SableCC..................................... 7 5.4 Eclipse...................................... 7 5.5 Subversive.................................... 7 5.6 Maven...................................... 7 5.7 JUnit...................................... 8

6 Travaux Réalisés 9 6.1 Contexte..................................... 9 6.1.1 Un document.............................. 9 6.1.2 Un schéma............................... 9 6.1.3 Un type................................. 9 6.2 Définition d un modèle d indexation..................... 9 6.2.1 Analyse d un moteur d indexation.................. 9 6.2.2 Migration................................ 9 6.2.3 Indexation............................... 9 6.3 Extention d un langage de requêtage..................... 9 6.3.1 La grammaire.............................. 9 6.3.2 Les différents types de requêtes.................... 9 6.3.3 Le moteur de requête......................... 9 6.4 Problèmes rencontrés.............................. 9 7 Conclusion et perspectives 10 Bibliographie 11 Annexes 12

1 Introduction 1

2 Présentation du document 2.1 But du document Le but de ce document est de rendre compte des travaux réalisés au sein de l entreprise SKINsoft, située à Besançon dans le département de la Franche-Comté en France. 2.2 Cadre du document Ce document intervient dans le cadre du stage de la deuxième année de Master Informatique (spécialité Sécurité et Sûreté des Logiciels). Ce stage a commencé le 6 Février 2012 et prend fin le 6 Août 2012. 2.3 Structure du document Se référer à la table des matières. 2

3 Présentation de l entreprise 3.1 Historique L entreprise SKINsoft a été fondée en 2008 par Geoffroy RIGOULOT. 3.2 Secteur géographique SKINsoft a ses installations au 5 Rue du Chateau Rose à Besançon en Franche- Comté. SKINsoft partage ses locaux avec une autre entreprise, L Agence Privée. 3.3 Secteur d activité SKINsoft est une entreprise de recherche et développement en informatique spécialisée dans le développement de solutions de gestion de collections au sens large (collections d art, collections de sciences naturelles, gestion de bibliothèques, gestion d archives, gestion de patrimoine, gestion de médiathèques, etc). Ses principales sources de revenu proviennent principalement de subventions que l état alloue à la recherche informatique, et des contrats de la clientèle pour avoir accès aux différentes solutions proposées (SKINweb, SKINmuseum, SKINlibris, SKINmedia, SKINheritage et SKINshop). 3.4 Marchés Les produits de la société SKINsoft concernent essentiellement des organisations gérant le patrimoine français. L intégration du multi-linguisme dans la suite applicative SKINsoft permet à celle-ci de s ouvrir au marché anglo-saxon. Ses clients sont exculsivement des organismes issus du milieu culturel. On peut retrouver entre autres : Le Louvre d Abu Dabbi, 3

Personnel Présentation de l entreprise le Musée d Orsay, le Musée Grevin, le Musée d Auxerre, l Opéra National, la Comédie Française, la Comédie Nationale de France, les Hospices de Beaune, le Centre National du Costume de Scène, les Arts Décoratifs, le Pôle Archéologique Interdépartemental Rhénan, etc. 3.5 Personnel SKINsoft compte cinq membres dont : Geoffroy RIGOULOT, directeur, Ciprian MELIAN, co-gérant et responsable produit, Nel TAURISSON, responsable Recherche et Développement, Solaine DURPOIX, ingénieure en développement, Bénédicte DROUHARD, documentaliste. 4

4 Présentation du sujet La plateforme sur laquelle repose les applications SKINsoft est d une grande richesse et stocke des données de nature et de sources très différentes (par exemple, des relations sont stockées sous forme RDF 1, des propriétés définies par les utilisateurs dans une base de donnée secondaire). Historiquement, les données étaient, en partie, réindexées dans un moteur d indexation asynchrone Solr [1] qui permettait de faire des requêtes sur l ensemble de ces données. Aujourd hui, SKINsoft a fait évoluer son moteur de stockage de données d une solution SQL 2, vers une solution NoSQL 3 intégrant au plus profond un moteur d indexation (ElasticSearch). L objectif de ce stage est de pouvoir indexer l ensemble des données dans ce même moteur et de développer un langage d interrogation unifié embrassant l ensemble des problématiques. Ainsi, le stagiaire devra : définir et implémenter un modèle d indexation pour les sources externes étendre le langage de requêtage pour intégrer les nouvelle potentialités de recherche : écriture d une grammaire pour le language de requête mise en place du moteur de requêtage pour ce language assurer la compatibilité ascendante en implémentant un traducteur de requête entre les requêtes Solr et le nouveau moteur : écriture de la grammaire du language Solr implémentation de la traduction de l arbre syntaxique Solr vers l arbre syntaxique défini 1. Resource Description Framework 2. Structured Query Language 3. Not Only SQL : désigne une catégorie de système de gestion de base de données destinés à manipuler des bases de données géantes 5

5 Préliminaires 5.1 Nuxeo Nuxeo est un éditeur de logiciel à portée mondiale, qui répond aux besoins d ECM 1. Nuxeo Platform est le socle de la famille de produits Nuxeo. C est une infrastructure de contenu basée sur Java et conçue pour être utilisée comme environnement de développement pour les applications orientées gestion de contenu et de dossiers. Nuxeo Platform est un ensemble extensible et configurable de services de gestion de contenu et de plugins modulaires, qui permet à une organisation de développer des applications horizontales ou verticales. Nuxeoe édite une plateforme open source de gestion de contenu (basée sur Nuxeo Plateform) qui permet aux architectes et développeurs de facilement concevoir, déployer et exploiter des applications métier. 5.2 Elasticsearch Elasticsearch est un moteur de recherche open source qui a été développé par Shay Banon. C est un moteur à la fois puissant et distribué basé sur Lucène 2. La première version est apparue en Février 2010. Il est distribué sous licence Apache. Ce moteur de recherche est composé d un moteur d indexation de documents ainsi que d un moteur de recherche sur les index. Il permet ainsi d effectuer des recherches en temps réel sur de très grands volumes de données. Tout le contenu indexé est lu et écrit en format JSON via les API 3 REST 4 ou Java. 1. Enterprise Content Management 2. Lucene est un moteur de recherche libre écrit en Java qui permet d indexer et de rechercher du texte. C est un projet open source de la fondation Apache mis à disposition sous licence Apache. 3. Application Programming Interface 4. Representational State Transfer : architecture originale du Web 6

SableCC Préliminaires 5.3 SableCC SableCC est un générateur de compilateur open source en Java. Ce framework se base uniquement sur la définition lexicale et grammaticale du langage compilé. Ses quatres principales caractéritiques sont les suivantes : le parser construit automatiquement l AST 5, les noeuds de l AST sont strictement typés, chaque noeud est parcouru un visiteur, le parcours du visiteur est séparé des noeuds. 5.4 Eclipse Eclipse est un projet de la Fondation Eclipse visant à développer tout un environnement de développement libre, extensible, universel et polyvalent. Son objectif est de produire et fournir divers outils gravitant autour de la réalisation de logiciel, englobant les activités de codage logiciel proprement dites (avec notamment un environnement de développement intégré) mais aussi de modélisation, de conception, de test, de reporting, etc. Le projet Eclipse a été créé à l origine par IBM en Novembre 2001 et soutenu par un consortium de fournisseurs de logiciels. La Fondation Eclipse a été créé en Janvier 2004 en tant que société indépendante sans but lucratif dont le but est d agir en tant que responsable de la communauté Eclipse. 5.5 Subversive Subversive est un gestionnaire de versions. Il permet de gérer un projet à partir d un dépot SVN 6. Le but de Subversive est de permettre l intégration de SVN dans Eclipse. La similarité avec le plugin CVS 7 est l un des principes les plus importants. CVS est un système de gestion de versions concurrentes. Il peut aussi bien fonctionner en mode ligne de commande qu à travers une interface graphique. Il se compose de modules clients et d un ou plusieurs modules serveur pour les zones d échanges. Le modèle de CVS est un modèle centralisé, où un serveur central regroupe toutes les sources. 5.6 Maven Apache Maven est un outil open source pour la gestion et l automatisation de production de projets logiciels Java et en particulier Java EE. Il est géré par l organisation 5. Abstract Syntax Tree 6. Subversion 7. Concurrent Versions System 7

JUnit Préliminaires Apache Software Foundation. Maven utilise un paradigme connu sous le nom de POM 8 afin de décrire un projet logiciel, à savoir les dépendances vers d autres projets, les bibliothèques nécessaires à la compilation ainsi que l ordre à suivre pour sa production. Maven impose une arborescence et un nommage des fichiers du projet selon le concept de Convention plutôt que configuration. Ceci permet de réduire la configuration des projets. Maven dispose d un cycle de vie permettant de vérifier avant l éxecution d un but, que tous les buts amonts se sont éxécutés avec succès. 5.7 JUnit JUnit est une bibliothèque des tests unitaires pour le langage de programmation Java. Il a été créé par Kent Beck et Erich Gamma. Le principal intérêt est de s assurer que le code répond toujours au besoin même après d éventuelles modifications. Le but est d automatiser les tests. Ceux ci sont exprimés dans des classes sous la forme de cas de tests avec leurs résultats attendus. JUnit exécute ces tests et les comparent avec ces résultats. 8. Project Object Model 8

6 Travaux Réalisés 6.1 Contexte 6.1.1 Un document 6.1.2 Un schéma 6.1.3 Un type 6.2 Définition d un modèle d indexation 6.2.1 Analyse d un moteur d indexation 6.2.2 Migration 6.2.3 Indexation 6.3 Extention d un langage de requêtage 6.3.1 La grammaire 6.3.2 Les différents types de requêtes 6.3.3 Le moteur de requête 6.4 Problèmes rencontrés 9

7 Conclusion et perspectives 10

Bibliographie [1] Site de Solr. http://lucene.apache.org/solr/. 11

Annexes 12