SYSTÈME D'INFORMATION TOURISTIQUE



Documents pareils
Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

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

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Offres de stages 2011/2012

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

les techniques d'extraction, les formulaires et intégration dans un site WEB

Le stockage local de données en HTML5

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

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

1. Considérations sur le développement rapide d'application et les méthodes agiles

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova


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

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

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Les Architectures Orientées Services (SOA)

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

Chapitre 1 : Introduction aux bases de données

Les Réunions Info Tonic. Utiliser les logiciels libres dans mon entreprise Mardi 21 janvier 2014

2.1 Liferay en un clin d'oeil Forces, faiblesses, opportunités et menaces Résumé de notre évaluation... 5

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Business & High Technology

Spécifications de l'offre Surveillance d'infrastructure à distance

Gestion collaborative de documents

Créateur de sites Internet. Développeur de logiciels.

Présentation des CMS au CIFOM-EAA

Avanquest Software présente la nouvelle gamme WebEasy 8

Petite définition : Présentation :

Formation Webmaster : Création de site Web Initiation + Approfondissement

Communiqué de Lancement

ECLIPSE ET PDT (Php development tools)

Utiliser Access ou Excel pour gérer vos données

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

NOUVEAUTES de Microsoft Dynamics CRM 2011 REF FR 80342A

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

Espace numérique de travail collaboratif

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

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

ORACLE TUNING PACK 11G

Google Apps for Business

Qlik Sense Desktop. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

GOOGLE, OUTILS EN LIGNE

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Google Tag Manager. Optimisez le tracking de votre site web. Google Tag Manager. Google Tag Manager. Optimisez le tracking de votre site web 26,50

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Joomla! Création et administration d'un site web - Version numérique

Cursus 2013 Déployer un Content Management System

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

LICENCE PROFESSIONNELLE

Formats de fichiers adaptés à l'archivage électronique à moyen et long terme

Contexte : «l e-business» TECHNIQUES DE MARKETING EN LIGNE. Contexte : «l e-business» Création de valeur 02/02/12

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

7.0 Guide de la solution Portable sans fil

contact@nqicorp.com - Web :

Mercredi 15 Janvier 2014

PFE Télécommunications. Pré-rapport à l'issue des 6 premières semaines de stage. Page 1 sur 5 1 %

Projet en nouvelles technologies de l information et de la communication

La plate-forme d'outils collaboratifs de l'i.e.m.n.

Architectures web/bases de données

Careo la solution GRC des artisans, TPE, professions libérales et PME alliant efficacité, facilité d'accès, performance et évolution.

PHP 5.4 Développez un site web dynamique et interactif

TeamViewer 7 Manuel Manager

GLPI (Gestion Libre. 2 ième édition. Nouvelle édition. de Parc Informatique)

TutoJRES Outils et Services Collaboratifs

A5.2.4 Étude d une technologie, d'un composant, d'un outil

Sage CRM. 7.2 Guide de Portail Client

Configuration Et Résolution Des Problèmes Des Services De Domaine Active Directory Windows Server Référence Cours : 6238B

Introduction à Microsoft InfoPath 2010

Le générateur d'activités

ManageEngine IT360 : Gestion de l'informatique de l'entreprise

TeamViewer 9 Manuel Management Console

Utilisation du module Scribe IMPORTATION DES COMPTES

ÉCONOMIE ET GESTION LYCÉES TECHNOLOGIQUE ET PROFESSIONNEL

Rapport De Stage 28 mai au 27 juin Intégration Web Création de site vitrine (SGC)

Utilisation d'outils de WebMapping OpenSource dans une collectivité territoriale Communauté de Communes de l'agglomération Saint-Loise (CCASL)

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Vtiger CRM - Prestashop Connector

Urbanisme du Système d Information et EAI

CONNECTEUR PRESTASHOP VTIGER CRM

COMPÉTENCES TECHNIQUES

Concepts et définitions

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Objet de la consultation : Refonte du site Internet de l'office de Tourisme Loire et Nohain et création des supports de communication Web

Enquête 2014 de rémunération globale sur les emplois en TIC

Système de gestion de contenu

Business Intelligence avec SQL Server 2012

Silfid : Agence de création de site internet, formations et Conseils Retour sommaire

Communiqué de Lancement. Sage Intégrale V4.50

Guide de configuration de SQL Server pour BusinessObjects Planning

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Transcription:

Université Charles-de-Gaulle - Lille 3 Domaine universitaire du "Pont de Bois" rue du Barreau - BP 60149 59653 Villeneuve d'ascq Cedex Tél. : (33) 03.20.41.68.71 Fax : (33) 03.20.41.67.70 Email : contact-xmldoc@grappa.univ-lille3.fr RACCOURCI Agence Web 32 place New Rochelle 17000 LA ROCHELLE Tél. : 05 46 28 17 17 Fax : 05 46 28 17 18 Mémoire de stage SYSTÈME D'INFORMATION TOURISTIQUE POUR LE WEB APPLICATIF Stage : du 2 février au 5 juin 2009 Tuteur universitaire : COULOM Rémi Tuteur professionnel : MARCHAND Nicolas Stagiaire : MACHEN Florent Master ID 2008/2009 Date du rapport : 01/06/09

Machen Florent 2/49

Table des matières REMERCIEMENTS...6 INTRODUCTION...7 PARTIE N 1.L'AGENCE WEB RACCOURCI...8 1.1 Présentation de l'entreprise...8 1.1.1 Historique...8 1.1.2 Présentation des services...9 1.2 Présentation du service informatique...9 1.2.1 Intégration et développement...9 1.2.2 Sites internet...10 1.2.3 Applications touristiques...10 1.3 Présentation des outils de développement...10 PARTIE N 2.SIT - ÉTAT DE L'ART...12 2.1 Norme XML TourinFrance...12 2.1.1 Norme...12 2.1.2 XML...13 2.1.3 TourinFrance...13 2.2 Présentation de la suite touristique...13 2.2.1 Tourism System...13 2.2.2 Tourism Desk et Tourism Manager...14 2.3 Présentation de la concurrence...16 2.3.1 Acogit...16 2.3.1.1 Présentation...16 2.3.1.2 Description...17 2.3.1.2.1 Acogit serveur...17 2.3.1.2.2 Acogit client gwt...17 2.3.1.2.3 Acogit client website...17 2.3.1.3 Comparaison avec la solution Tourism System...18 2.3.2 Constellation...18 2.3.3 Tourinsoft...19 PARTIE N 3.DÉROULEMENT DU STAGE...21 3.1 Importation des données...21 3.1.1 Module hébergement...22 3.1.1.1 Présentation...22 Machen Florent 3/49

3.1.1.2 Données en base Astuss...22 3.1.1.3 Migration des données...22 3.1.1.4 Bilan...23 3.1.2 Module agenda...23 3.1.2.1 Présentation...23 3.1.2.2 Migration des données...23 3.2 Indexation et recherche...24 3.2.1 Définition du besoin...24 3.2.2 Solutions...24 3.2.2.1 Solr...24 3.2.2.2 requêtes en base SQL...25 3.2.3 Bilan...25 3.3 Web services...25 3.3.1 SOAP...25 3.3.2 Existe t il autre chose?...26 3.4 Export des données...27 3.4.1 Définition des besoins...27 3.4.2 Export XML...28 3.4.2.1 Étude de l'existant...28 3.4.2.2 Solutions Envisagées...28 3.4.2.3 Solutions Retenues...28 3.4.3 Export PAO...29 3.4.3.1 Étude de l'existant...29 3.4.3.2 Solution Retenue...29 3.4.3.3 Bilan...30 3.4.4 Export Tableur...30 3.4.4.1 Étude de l'existant...30 3.4.4.2 Solutions Envisagées...31 3.4.4.2.1 Module PHP...31 3.4.4.2.2 Module perl...31 3.4.4.2.3 Module python, ruby ou java...32 3.4.4.3 Solutions Retenues...32 3.4.4.4 Bilan...32 3.4.5 Export PDF...32 3.4.5.1 Étude de l'existant...33 3.4.5.2 Solutions Envisagées...33 3.4.5.2.1 Partenariat...33 3.4.5.2.2 Système de template XSL...33 Machen Florent 4/49

3.4.5.2.3 Utilisation d'un moteur de rendu...34 3.4.5.2.4 Système de template XML vers PDF via HTML...34 3.4.5.2.4.1 Conversion TourinFrance3.10 / HTML...35 3.4.5.2.4.2 Conversion HTML / PDF...35 3.4.5.3 Solutions Retenues et bilan...36 CONCLUSION...38 GLOSSAIRE...39 BIBLIOGRAPHIE...41 ANNEXES...42 Machen Florent 5/49

REMERCIEMENTS Je tiens à remercier tout d'abord Monsieur Jean Marc Gaignard, directeur de l'agence web raccourci, pour m'avoir accueilli si chaleureusement et m'avoir permis d'effectuer mon stage au sein de son entreprise. Je remercie également Monsieur Nicolas Marchand, pour avoir assuré le rôle de tuteur d'entreprise, pour m'avoir fait confiance et avoir contribué au bon déroulement de mon stage. De plus, merci à Monsieur Coulom Rémi et Jérémie Mary, professeurs d'université et tuteurs de stage, pour leur disponibilité lors des différentes demandes d'informations et pour leur soutien durant le stage. Enfin, je voudrais remercier toute l'équipe de la société RACCOURCI pour m'avoir si bien intégré dans l'entreprise et pour avoir contribué au bon déroulement de mon stage de par leur sympathie et leur amabilité. Machen Florent 6/49

INTRODUCTION Dans le cadre de la deuxième année du Master «Mathématiques et Informatique Appliquées aux Sciences Humaines et Sociales» spécialité «Informatique et Document» nous avons été sensibilisés et formés à la gestion des documents électroniques. Afin d'achever la formation, un stage de fin d'étude en milieu professionnel est à effectuer. Pour ma part, j'ai choisi de réaliser mon stage de fin d'étude au sein de la société raccourci situé à La Rochelle. Raccourci est une agence web spécialisée dans la réalisation d'application web pour les professionnels du tourisme. Afin de compléter son offre, la société travaille sur la réalisation d'un système d'information touristique normalisé XML TourinFrance nommé Tourism System. Afin de parfaire son système d'information, l'agence recherche une personne possédant de bonne connaissance en documentation numérique, maitrisant les technologies XML et ayant un goût prononcé pour le développement web. De mon coté, ce stage est l'occasion de me conforter ou m'alerter dans mon projet proffesionnel. L'objectif de la société est de produire une solution complète qui soit entièrement utilisable via un navigateur internet. Ce rapport de stage commencera par présenter la société raccourci. Ensuite, nous définirons la notion de système d'information touristique et nous ferons un état des lieux des SIT en France. Enfin, nous verrons les principales problématiques rencontrées durant le stage. Machen Florent 7/49

PARTIE N 1. L'AGENCE WEB RACCOURCI 1.1 Présentation de l'entreprise 1.1.1 Historique La société Raccourci est une SARL créée en 1995 par Jean Marc Gaignard, ancien journaliste à Radio France. Spécialisée dans le montage vidéos, la société est alors connue sous le nom de "Vidéo évènement". En 1999, suite à une commande, l'entreprise réalise un site afin de diffuser un montage sur le web. L'agence voit alors en internet un domaine porteur et concentre son activité sur ce secteur. Alors composée de deux commerciaux et un développeur, la réalisation de site internet va rapidement devenir le cœur de métier de l'entreprise. Suite à la réorientation de son activité vers le développement, la société est alors rebaptisée "Raccourci". Début des années 2000, alors que le secteur d'activité connaît un ralentissement marqué à La Rochelle (disparition de nombreuses entreprises qui affichaient de fortes ambitions), Raccourci connaît une progression régulière. En 2007, l'entreprise compte une dizaine d'employés, 200 clients et 540 000 de chiffre d'affaires. L'agence remarque que parmi ses clients, la moitié sont des professionnels du tourisme. Elle décide alors de se spécialiser et développe de nouvelles solutions pour les professionnels du tourisme qui sont très dépendant d Internet aujourd hui. Parallèlement, une seconde SARL nommée idnet Marketing est créée en 2008. Son activité se veut complémentaire à celle de Raccourci dans le sens où Raccourci produit le site, et idnet Machen Florent 8/49

Marketing assure la visibilité et la promotion du site sur internet. À la fin du premier trimestre 2009, l'entreprise à un effectif de 18 personnes, près de 300 clients et comptabilise un chiffre d'affaires de 500 000. 1.1.2 Présentation des services Au premier semestre 2009, l'entreprise est composée de trois pôles : un pôle administratif. Situé au rez de chaussée, il est composé de deux personnes. un pôle commercial. Situé au rez de chaussée, il est composé de trois personnes dont un stagiaire. Un pôle informatique. Situé au premier étage, il est composé de deux services : un pôle d'intégration graphique. Situé au premier étage, il est composé de cinq personnes dont deux temps partiel et un stagiaire. un pôle informatique. Situé au premier étage, il est composé de sept personnes dont deux contrats professionnels et trois stagiaires. 1.2 Présentation du service informatique 1.2.1 Intégration et développement Le service informatique comprend deux activités distinctes, l'intégration et le développement. Le pôle d'intégration se charge de la charte graphique et la mise en ligne du produit. Le pôle de développement quant à lui réalise les outils permettant aux intégrateurs de publier les sites. Le stage ici présenté, s'étant attaché aux principes de fonctionnement du système d'information, à été réalisé au sein du pôle de développement. Le pôle de développement comprend également deux parties distinctes. Une partie du service s'attache à la réalisation de site internet ; une autre partie à la réalisation d'outils pour les professionnels du tourisme. Machen Florent 9/49

1.2.2 Sites internet La principale activité de la société est la réalisation de site internet. Par conséquent une partie des effectifs travaille sur des outils permettant de répondre aux besoins des clients (CRM, ERP, intranet, site e-commerce...). Le principale outils reste néanmoins le CMS Astuss. Il s'agit d'un logiciel réalisé par la société permettant la gestion multi-site multi-langue de site Internet. 1.2.3 Applications touristiques L'agence Raccourci s'est progressivement spécialisée dans le domaine du tourisme. Une partie des ressources disponibles pour le développement sont consacrés à l'élaboration d'outils pour les professionnels du tourisme : Tourism Manager, outils permettant de surveiller l'efficacité de son site web. Tourism Desk, outils permettant d'accéder rapidement à toutes les informations touristiques sur un territoire donnée. Tourism System, outils permettant le gestion des données touristiques. 1.3 Présentation des outils de développement D'un point de vue plus technique, l'agence utilise une infrastructure et des technologies conventionnelles dans ce secteur d'activité. Les applications web sont hébergées chez la société nexen sur cinq serveurs basés sur debian etch. Trois serveurs, dits frontaux, s'occupent de la gestion des sites web. Cependant la base de données se trouve un quatrième serveur qui sert également de serveur de fichier. Le cinquième serveur sert de sauvegarde de la base de données et de serveur de mail. Pour le développement des applications, Raccourci dispose de deux serveurs en interne. L'un à une configuration similaire aux serveurs de production afin d'éviter les désagréments des incompatibilités de versions. D'autre part, intégralité des données du personnel sont sur ce serveur. Cela facilite les sauvegardes et les transmissions d'information au sein de l'entreprise. L'autre serveur permet les configurations plus exotique afin de tester de nouvelles solutions (php6, Machen Florent 10/49

extjs3...). D'un point de vue technologique, les applications web sont gérées coté serveur par le couple PHP5/MySQL5. Bien que de nombreuses bannières et animations soient générées par la technologie flash, l'interaction avec le client est dynamisé via javascript (ajax) notamment avec le framework extjs. De plus, pour des raisons de performances, un système de cache d'op code nommé memcache est mis en place sur les serveurs. Le cache permet de stocké les données fréquemment sollicitées et/ou gourmande en ressource pour les serveurs. Ces technologies ont permis la réalisation du CMS Astuss, du Système d'information Touristique Tourism System mais aussi d'outils de développement tel que "Big Brother" qui permet de synchroniser et gérer les versions du CMS Astuss. Machen Florent 11/49

PARTIE N 2. SIT - ÉTAT DE L'ART Un Système d'information Touristique (SIT) est un ensemble d'éléments participant a l'acquisition, au classement, au stockage et à la diffusion de l'information dans le domaine du tourisme au sein d'une organisation. Ce type de système d'information est généralement destinée aux professionnels du tourisme tel que les offices de tourisme, les comités départementaux du tourisme, les comités régionaux du tourisme Le SIT est avant tout un outils permettant de stocker des informations dans le domaine du tourisme. Pour se faire, en septembre 2004, le groupe technique TourinFrance (GTTIF) à publié une nouvelle version de la norme TourinFrance basé sur la technologie XML. 2.1 Norme XML TourinFrance 2.1.1 Norme Le mot norme vient du latin norma qui signifie règle. Une norme désigne une règle, un ensemble de caractéristiques, à suivre afin que quelque chose soit considéré comme étant dans un état normal (par apposition à anormal). La norme a pour énorme avantage de permettre d'échanger relativement simplement toutes pièces, produits, outils qui respectent la même norme. Ainsi, si pour une raison quelconque, par nécessité ou par envie, une autorité décide de substituer un élément par un autre respectant en tout point la même norme, l'opération demandera un minimum de travail. Machen Florent 12/49

2.1.2 XML L'acronyme XML signifie Extensible Markup Language (langage extensible de balisage). Il s'agit d'un langage informatique qui sert essentiellement à stocker, décrire, transformer, transférer des données de type textuel de manière structurées et hiérarchisées. Ce langage est dit extensible car il permet à l'utilisateur de créer lui même ses balises afin de servir au mieux ses intérêts. 2.1.3 TourinFrance La norme Tourinfrance est un document officiel initié par le ministère délégué au Tourisme. L'objectif de cette norme est de fournir au professionnel du tourisme un outil permettant l'échange de données touristiques. En septembre 2004, le groupe technique TourinFrance publie une nouvelle version de la norme qui suis désormais une syntaxe XML. À cette norme est associé un thésaurus comprenant une liste de termes spécifique au domaine du tourisme, reliés entre eux par une relation hiérarchique. Un exemple de fichier normalisé TourinFrance est visible en annexe 1. Cette norme assure théoriquement une interopérabilité entre les différents éditeurs de logiciel ainsi qu'une pérennité et une structuration de l'information. 2.2 Présentation de la suite touristique 2.2.1 Tourism System Tourism System est le Système d'information Touristique à proprement parlé. C'est depuis cet outil que les professionnels du tourisme peuvent gérer leurs établissements (création, modification, suppression). Une série d'applications, appelées webservices, sont associées au SIT afin de permettre la manipulation des données hors du SIT. Via les webservices, il est possible de se servir du SIT comme entrepôt de données ; et demander à un autre prestataire que la société raccourci d'exploiter ces données pour réaliser un site internet. Machen Florent 13/49

2.2.2 Tourism Desk et Tourism Manager D'autres applications complètent les services fournis par le SIT. Nous avons vu que le CMS Astuss permet la diffusion des données sous forme de site web. Cependant, d'autres outils sont à disposition afin d'aider les professionnels dans leur métier. Tourism Desk par exemple et un dérivé de Tourism System. Le desk a vocation à être mis en place dans les offices du tourisme afin d'assister les hôtesses d'accueil à renseigner les potentiels touristes. Cette application permet d'identifier rapidement qu'elles sont les établissements et événements répondant à la demande d'un visiteur. Tourism Manager est une autre application complémentaire du SIT. Le SIT est généralement Machen Florent 14/49

l'outil de travail de l'office de tourisme, un organisme ayant autorité sur l'ensemble d'un territoire. Tourism Manager permet au propriétaire d'un établissement sur ce territoire de gérer sa fiche dans le SIT (description, disponibilité, tarifs...) ; et d'avoir diverses informations (nombre de consultations, statistiques...). Machen Florent 15/49

2.3 Présentation de la concurrence 2.3.1 Acogit 2.3.1.1 Présentation Acogit est une application sous licence GNU/GPL de collecte, d'organisation et de gestion de l'information touristique basée sur le format TourinFrance v3.10. Le développement à été initié par le Comité Régional du Tourisme de Poitou-Charentes, pour la mise en œuvre du système d'information touristique régional mutualisé conformément à la politique de la Région. Apercu du logiciel Acogit, édition d'une fiche Machen Florent 16/49

2.3.1.2 Description Acogit est une application Java/JEE qui fonctionne avec le serveur d'applications libre JOnAS et le serveur de bases de données PostgreSQL. Il utilise aussi les composants libres Spring, Hibernate, XMLBean, freemarker, JUnit et MyFaces. Acogit est actuellement constitué de trois modules distinct qui dialoguent entre eux à l'aide de WebServices SOAP, et du schéma XML Tourinfrance v3.10. Ces trois modules sont : acogit serveur acogit client gwt acogit client website 2.3.1.2.1 Acogit serveur Ce logiciel est la partie serveur, qui est en charge : Du stockage des fiches au format tifv3. De la gestion des droits, qui sont affinés jusqu'à la commune de l'objet touristique, et au "champ" de la fiche. De la mise en œuvre d'un serveur soap, qui sert de base à toutes les autres applications. 2.3.1.2.2 Acogit client gwt Cette partie communique avec l'entrepôt via les WebServices, et est en charge de la production des interfaces utilisateurs pour le renseignement des fiches d'informations. Il s'agit de la partie éditeur de fiche tourinfrance v3.10. 2.3.1.2.3 Acogit client website Cette partie est une "bibliothèque" de fonction permettant l'intégration des informations de l'entrepôt dans un site internet tiers. Un affichage cartographique s'appuyant sur la solution google maps est intégrée à cette solution. Machen Florent 17/49

2.3.1.3 Comparaison avec la solution Tourism System Plus ancienne, la solution Acogit a été une base de travail pour Tourism System. Cependant les deux produits ne sont pas directement en concurrence car ne visent pas les mêmes objectifs. Acogit est un très bon système de stockage, un des système les plus fiable, complet et respectueux de la norme actuellement sur le marché. Cependant, il ne gère pas la publication et la diffusion de données formatées. En effet, les données exportées sont "brutes" et demande un traitement avant affichage. Bien que fournissant de nombreux outils, la solution n'est pas immédiatement exploitable et demande la mise en place d'une équipe informatique. Par ailleurs, acogit nécessite l'installation d'un serveur d'application basé sur la technologie java. Or les infrastructures java sont réputés pour être bien plus lourde que les infrastructures php. 2.3.2 Constellation Constellation se décrit comme étant le leader français des systèmes d informations touristiques. Pour être plus précis, il qualifie son système comme étant un «Destination Management System» (DMS). L'objectif du DMS est de permettre aux autorités publiques du tourisme de gérer, sur une seule et même plateforme orientée web, l ensemble des fonctions critiques d une destination : accueil, marketing, gestion de la relation client et vente en ligne des prestataires de tout un territoire. Contrairement a Acogit et Tourism System ou le logiciel à pour principale objectif la gestion des établissements sur un territoire, Constellation s'attache beaucoup au profilage et prise d'information sur les visiteurs. De plus, la norme officiel de stockage des données touristiques est la norme Tourinfrance3.10. C'est cette norme qui est utilisé par acogit et tourism system. Constellation a quand à lui conçu son propre format qu'il a intitulé Tourinfrance3.11. Même si cette norme s'inspire de la norme officiel, le thésaurus ainsi que les balises ont été adaptés à leurs besoins. Ce format n'est pas compatible avec la norme XML officielle. D'un point de vue plus technique, la plateforme constellation a été bâtie sur le langage.net. Elle intègre également des bases Microsoft SQL Server. Ce produit est maintenu par une société filiale de Microsoft. Machen Florent 18/49

Constellation, sélection des établissements 2.3.3 Tourinsoft Développé par la société Faire-savoir, basé à Lille, spécialisé dans la réalisation de projet internet/intranet/extranet, tourinsoft est la plus ancienne des solutions présentées dans ce document. Il s'agit du premier logiciel labellisé TourinFrance, et du système d'information touristique le plus utilisé en France. L'ancienneté et l'implantation de cette suite en fait le principale concurrent de Tourism System. D'autant plus que cette concurrence est directe du fait que les deux logiciels vise plus ou moins le même public, délivre plus ou moins les même fonctionnalités (export données, pdf), et fournis les mêmes services (site internet...). Cependant, la solution Tourinsoft travaille sur des données stockées au format XML tourinfrance2.2 alors que la norme officiel depuis 2004 est la norme 3.1. Par conséquent, elle accuse un léger retard que certains utilisateurs déplorent. Machen Florent 19/49

La solution étant propriétaire, la comparaison avec TourismSystem n'est pas évidente. il est difficile d'évaluer de manière fiable les performances de chaque système ; et plus encore de connaître son fonctionnement. Une nouvelle version du logiciel serait en cours de développement. Cette nouvelle monture supporterait la norme TourinFrance3.10 et serait OpenSource. Machen Florent 20/49

PARTIE N 3. DÉROULEMENT DU STAGE Le stage de fin d'étude décrit dans ce rapport à eu lieu du 2 février 2009 au 5 juin 2009 avec la société raccourci à La Rochelle. Le stage s'est porté sur le développement du système d'information touristique propriétaire de l'agence. Durant le stage, j'ai eu la chance de pouvoir travailler et réfléchir sur de nombreux points du logiciel. Je vous propose une présentation de chacune des problématiques abordées, les enjeux, les solutions envisagées et retenues. 3.1 Importation des données L'agence web dispose d'un CMS nommé Astuss. Pour cet outil fut développé un certain nombre de module afin de répondre à de nombreux besoins. Parmi ceux ci, certains tel que le module hébergement et le module agenda, furent mis en place afin de répondre aux besoins des professionnels du tourisme. L'association CMS et modules est en place depuis plusieurs années. Les clients y sont familiarisés et une large demande de leurs besoins est satisfaite. La solution Tourism System a pour objectif d'enrichir l'offre de la société. Cependant, certaines fonctionnalités du système d'information entre en doublon avec les fonctionnalités offertes par le CMS. Malgré la plus value offertes par le système d'information, les clients n'effectueront leur migration qu'a la condition qu'ils puissent récupérer leurs données du CMS Astuss. Machen Florent 21/49

3.1.1 Module hébergement 3.1.1.1 Présentation Le module hébergement donne la possibilité aux clients de gérer une liste d'établissement. Cette extension permet de créer, mettre à jour, supprimer des fiches d'établissements afin de les diffuser sur leur site internet. Contrairement à son nom, les établissements ne sont pas uniquement des hébergements, mais également des restaurants, parcs naturels, centres de loisirs Certains clients disposent de plusieurs centaines de fiches qu'ils ne sont pas disposés à perdre. Afin de faire migrer les utilisateurs vers la nouvelle plateforme, toutes ces données doivent pouvoir être importées. 3.1.1.2 Données en base Astuss Les données du CMS sont stockés dans une base de données relationnel MySQL. Afin d'utiliser ce module dans un maximum de cas, une partie de cette base est très générique, et une autre partie très spécifique (en fonction du site, de la langue, de domaine ). Ce module n'ayant pas été conçu à l'origine pour stocker tout type d'établissement, la quasi totalité des données à exporter de la base se trouve être dans les champs spécifiques. 3.1.1.3 Migration des données La migration des données impliquent de transposer un modèle de données relationnels en modèle de données hiérarchiques. De plus, les deux systèmes n'ont été pensés n'y à la même époque, ni pour les mêmes besoins. Malgré une tentative d'export de manière générique et commune à l'ensemble des clients, l'hétérogénéité des données et les différents cas d'utilisation du module nous on conduit à un export au cas par cas. Un développement générique fut développé, puis grâce aux principes de la programmation orienté objet, chaque objet fut surchargé en fonction des besoins spécifiques du client. Machen Florent 22/49

3.1.1.4 Bilan La difficulté de cette migration était plus technique que conceptuel. Cette opération ayant eu lieu au départ de mon stage, cela aura eu au moins deux effets bénéfiques : 1. Découverte de contexte de projet. Suite à cela, je savais où en était la société vis à vis de la manipulation des données. Je savais d'où elle venais, où elle va et comment. Cela m'a également permis de me familiariser à la norme et au thésaurus. 2. Cette mise en situation fut accompagné d'un développement en PHP objet. Cela m'a permis de grandement me perfectionner et apprendre à développer un logiciel en fonction du contexte et de l'existant (avec les avantages et les inconvénients). 3.1.2 Module agenda 3.1.2.1 Présentation Le module agenda donne la possibilité aux clients de gérer une liste événements. Cette extension permet de créer, mettre à jour, supprimer des fiches événements afin de les diffuser sur leur site internet. 3.1.2.2 Migration des données L'importation des données du module agenda ont eu lieu bien après l'import des données du module hébergement. Il n'était pas prévu, d'importer ces données. Cependant, suite à l'insistance de certains clients, la société est revenu sur sa position. Nous repartîmes donc du modèle générique développer pour le module hébergement. Bien que la description d'un évènement soit relativement différente de la description d'un établissement, Le code générique et la programmation objet/orm simplifia grandement la migration. Celui ci pût se faire sans modifier le planning de développement du SIT. Cette expérience m'aura également permis de modifier un code existant. Ce qui est très différent d'initialiser un script. Cette expérience met en valeur un certain nombre de principe de base de la programmation, notamment les commentaires, les lignes courtes... Machen Florent 23/49

3.2 Indexation et recherche 3.2.1 Définition du besoin Dans un système d'information, stocker les données de manière efficace est très important. Cependant, une donnée même stockée qu'il n'est pas possible de retrouver est une donnée perdue. Il est donc nécessaire de permettre aux utilisateurs de retrouver facilement et rapidement les données souhaitées. Pour se faire, il est déjà possible d'effectuer des recherches via la classification de la norme tourinfrance. La recherche s'effectue alors à la manière d'un annuaire, d'une recherche en bibliothèque. Cette méthode demande alors une certaine connaissance du thésaurus, de la classification. Une autre méthode de recherche est généralement préférée : le moteur de recherche. Le moteur de recherche apporte rapidement une solution sans que cela ne demande d'effort de classification de la part de l'utilisateur. Cependant, le moteur de recherche n'a rien de «magique». Pour ce faire, le moteur de recherche à du être conçu et les résultats retournées sont le fruit d'indexation préalable. 3.2.2 Solutions 3.2.2.1 Solr Solr est un moteur de recherche open source écrit en java qui permet d'indexer et de rechercher du contenu. Solr est particulièrement performant et adapté pour l'indexation de contenu au format XML. De plus, il dispose de fonctionnalités permettant une utilisation via le protocole web (http). Par ailleurs, cet outil fut abordé durant le 3ème semestre du master ID ce qui facilite grandement le déploiement d'un tel outil. Cependant, intégrer cet outil implique la mise en place d'une nouvelle technologie sur le serveur (java). Par ailleurs, le moteur de recherche va être amené à jouer un rôle centrale dans le SIT. De nombreuses applications du projet s'appuieront dessus pour fonctionner. Il est donc important d'être sûre et maitriser ce composant. Il faut savoir que le chef de projet de la société avait démissionné ; et qu'au moment où nous Machen Florent 24/49

réfléchissions à cette problématique aucun remplacement n'était encore assuré. La société n'a pas souhaitée s'engager dans cette voix sans directeur technique pour valider la solution. Il fut décidé de développer nous même l'outil afin de le maitriser parfaitement. 3.2.2.2 requêtes en base SQL Afin de mettre en place rapidement une solution que l'on maitrise, le moteur de recherche fut développé en interne. Afin de gagné en performance, le moteur fut développé de sorte à être très spécifique à l'application. De même, pour éviter le parcours de plusieurs centaines de flux XML, certains critères que nous jugions prioritaire furent stockés en base de données. Il fut développé en PHP/MySQL et extjs. 3.2.3 Bilan Les performances du moteurs de recherche sont jugées très satisfaisante. La recherche s'effectuant sur un nombre restreint de champ qui ont été pré définit, la pertinence des résultats est au rendez vous. Cependant, cette technique oblige la multiplication du stockage de l'information (sous forme d'objet sérialisé en mémoire cache, sous forme XML, sous forme de champ prédéfinit en base de données). Cela augmente considérablement les traitements et limite les recherches. 3.3 Web services Le SIT dispose maintenant de données classées, stockées et indexées. De plus elles sont identifiables et récupérables via le moteur de recherche. Afin de les rendre le plus accessible possible, la société à mis en place un certain nombre de web service SOAP 3.3.1 SOAP SOAP est un protocole basé sur la technologie XML. Il permet la transmission de messages entre objets distants ; autrement dit, d'échanger des informations entre deux machines. Une machine sera demandeuse d'information ; l'autre délivrera l'information. Machen Florent 25/49

Pour se faire, les deux machines vont partager un fichier WSDL. Un WSDL est un protocole indépendant du SOAP qui permet de définir les interfaces d'accès, le moyen de communiquer. Grâce à ces deux protocoles, et via le protocole web (http), un objet va invoquer des méthodes d'objets physiquement situés sur un autre serveur. Et ainsi obtenir les informations qu'il souhaite. Le choix de SOAP semble judicieux. Il a été initialement défini par Microsoft et IBM, puis est devenu une recommandation du W3C. Cette technique fut testé au sein de la société il y a quelques mois pour palier à certains ennuis. La mission fut un succès ; et depuis raccourci a recourt le plus souvent possible au web service SOAP. 3.3.2 Existe t il autre chose? Cependant, même si les web services répondent aux besoins de la société, SOAP est il la seule ou la meilleur solution? SOAP reste une technique relativement complexe et lourde à mettre en place. De plus la présence de deux protocoles en plus du protocole HTTP est nécessaire. Or, les deux protocoles ne sont au final qu'une sur couche du protocole HTTP. Les deux protocoles redéfinissent des points qui sont déjà définit dans le protocole HTTP mais qu'il n'utilise pas en HTTP. Le protocole HTTP existe, il est dommage de ne pas l'exploiter. De plus, les sur couches amènent un niveau supplémentaire d'abstraction à l'application. Ce qui complique la compréhension de l'application. Un autre type de web service intitulé REST à été proposé afin d'évaluer les avantages et inconvénients de chacune des solutions dans le contexte du SIT. Cependant, l'idée est restée sans suite. 3.4 Export des données Nous avons vu jusqu'à présent les problèmes rencontrer pour importer, stocker, rechercher et afficher les données du SIT. Une autre problématique qui nous a été confié est l'export des données sous un autre format Machen Florent 26/49

qu'une page web. Sans définir de format précis, il nous a été demandé de prévoir l'export d'une fiche ou d'un jeu de fiche. 3.4.1 Définition des besoins Afin de permettre l'interopérabilité, l'export des fiches au format XML TourinFranceV3.10 est assuré. Cette fonctionnalité est très fortement demandée par les clients de l'agence. En effet, bon nombre d'entre eux ont une partie de leur infrastructure chez d'autres prestataires. Malgré leurs souhaits de modifier leur parc logiciel depuis quelques temps, la migration n'a toujours pas eu lieu car celle ci entrainerai la perte d'une large partie de leurs données dû justement à une absence d'interopérabilité. Suite à cette mésaventure (ou mésaventure de leur collaborateur), ce point est pour eux essentiels afin que cela ne se reproduise. Par ailleurs, l'export vers d'autre logiciel est prévu : Un fichier XML dérivé du format TourinFrance3.10 afin d'exploiter les données au travers de logiciel de PAO (InDesign, XPress, Scribus ). Cet export permettra notamment aux professionnels du tourisme qui le souhaitent de diffuser leurs données à des agences de communication afin de réaliser des brochures publicitaires... Les données au format CSV et XLS afin de pouvoir les exploiter via un tableur. Le tableur reste parmi les clients de raccourci un des logiciels informatique les plus utilisés. L'export de données vers cet outils est donc régulièrement demandé. Enfin, il sera possible d'exporter les données sous forme d'un guide touristique au format PDF. L'aspect visuel du guide pourra être définit par le client via une interface administrateur. Quelque soit le format d'export, le document sera générée à la demande en fonction des critères de recherche de l'utilisateur. Le moteur de recherche du SIT sera réutilisé afin d'identifier les établissements et/ou événement à exporter. Machen Florent 27/49

3.4.2 Export XML 3.4.2.1 Étude de l'existant Dans la solution Tourism System, il a été choisie de stocker les données au format TourinFrance en base SQL. Les données sont donc directement disponible et exploitable. Cependant, il faut noter que les données des fiches XML sont également présente dans la mémoire vive du serveur. D'un point de vue plus technique, les fiches sont stockées sous forme d'objets sérialisés par le système memcached. 3.4.2.2 Solutions Envisagées Dans ce cas de figure, deux solutions sont aisément envisageable : 1. Extraction des données depuis la base de données par requête SQL. Les données étant déjà formatées aucun traitement supplémentaire n'est nécessaire. 2. Reconstitution des fiches XML depuis l'objet sérialisé présent dans le cache. L'accès aux données est alors ultra rapide et peu couteuse en ressource. Les données sont pré formatées mais demandent tout de même à être manipulé avant l'export au client. 3.4.2.3 Solutions Retenues Pour des raisons de simplicité d'utilisation, de maintenance et de mise en place ; la solution de l'export par requêtes en base de données fut privilégiée. En effet, cette solution est plus conventionnelle et plus accessible de prime abord. Pour cet export, il est possible pour le client de demander le téléchargement immédiat des données ; mais également de programmer des téléchargements automatiques sur un serveur de fichier. 3.4.3 Export PAO Tout comme l'export au format XML, l'export PAO (publication assistée par ordinateur) implique un format qui n'est pas directement utilisable par l'utilisateur, mais par un logiciel spécialisé. Cependant, contrairement à l'export XML ou le format de données est définit par une Machen Florent 28/49

norme, les logiciels de PAO n'ont pas une norme commune. 3.4.3.1 Étude de l'existant Cette fonctionnalité n'est disponible sur aucune des solutions de l'agence. Il ne s'agit donc pas d'un portage mais bien de la conception d'un module. De plus, cette offre ne découle pas d'une demande de la part d'un client. En effet, suite aux dialogues qu'entretiens la société avec les professionnels du tourisme, il est apparut que cette offre pourrait répondre à un besoin même si celui ci ne c'est pas encore fait ressentir. Par conséquent, nous n'avons ni cas d'utilisation, ni retour d'expérience à étudier afin de répondre à cet problématique. Les principaux logiciels de PAO que nous avons identifiés sont Adobe InDesign de la société Adobe Systems, QuarkXPress de la société Quark Inc. Après avoir utilisé ces logiciels, il est apparut que tout deux supportés l'import de fichier XML. Par import de fichier XML, il faut comprendre qu'ils sont capable de lire l'arborescence d'un arbre XML et d'extraire le contenu des nœuds. Il s'agit d'une représentation visuelle sommaire de l'arbre dans un panneau latéral où il est possible de déplacer le contenu textuel à la souris. Cependant, il n'est pas possible de connaître le nom des balises. 3.4.3.2 Solution Retenue Cette fonctionnalité n'étant pas issue d'une demande d'un client, elle n'est pas jugée comme prioritaire dans le développement de l'application. Par ailleurs, étant donné que les principaux logiciels de PAO permettent l'import de fichier XML, il a été décidé d'adapter le format de données TourinFrance à un usage ''drag n drop'' par une personne non initié au XML. L'utilisateur via la moteur de recherche du système d'information identifie les établissements et/ou événements de son choix. Les fiches identifiées sont récupérées depuis la base de données au format TourinFrance. Via une feuille de transformation, les fiches sont alors réécrites. Tout comme pour l'export au format XML, il était tout à fait envisageable de reconstituer la fiche depuis le système de cache du serveur. Machen Florent 29/49

3.4.3.3 Bilan Afin de réaliser une application pour un client, recevoir de la part de ce client un ensemble de spécification peut s'avérer très utile. Il est possible dans certains cas de travailler efficacement sans spécification dans le cas où le client suit de près le développement (extreme programming par exemple). Dans le cas présent, sans spécification et sans client, il aurait été préférable de prendre contact avec une agence de communication afin d'obtenir de plus amples informations. 3.4.4 Export Tableur Le tableur reste, parmi les clients de raccourci, un des logiciels informatique les plus utilisés. L'export de données vers cet outils est donc régulièrement demandé. 3.4.4.1 Étude de l'existant Le moteur de recherche du SIT permet d'identifier les établissements ou événements correspondant aux critères de l'utilisateur. Par ailleurs, l'export au format CSV est déjà assuré par un module du CMS Astuss qui fut adapté au SIT. L'export vers un logiciel de type tableur est donc déjà possible. Cependant, certain client de la société éprouve des difficultés à utiliser ce format de données et contacte par conséquent l'agence. Afin d'éviter que ce genre d'appel continue à occuper les développeurs, il a été décider de permettre l'export direct au format du tableur excel (XLS). 3.4.4.2 Solutions Envisagées Pour résoudre cette problématique, il fut décider de concevoir un module supplémentaire pour le SIT. Cependant, au lieu de créer un module indépendant comme pour l'export en CSV, nous avons décider de rendre le module d'export XLS dépendant du module CSV. Quelque soit le format choisie, le module CSV récupère les données et les enregistre au format CSV. Si le format de sortie désiré est le CSV, le fichier est envoyé au client. Si le format de sortie désiré est le XLS, le fichier CSV est envoyé au module XLS qui retournera un fichier excel. Il s'agit donc de réaliser un module de conversion CSV vers XLS. La réalisation de ce Machen Florent 30/49

module est donc purement technique ; mais pose tout de même la question du langage de programmation à employer pour convertir un fichier texte (CSV) en fichier binaire (XLS). 3.4.4.2.1 Module PHP Le langage de programmation PHP est le langage le plus utilisé et le mieux maitrisé dans la société. Adapté pour le développement d'application web, il est donc privilégié pour la plus part des réalisations de la société. Cependant, le module en question n'est pas à proprement parlé une application web. De plus, le module demande la manipulation de chaine de caractères (ce qui n'est pas le point fort du PHP) pour écrire un fichier au format binaire (ce qui n'est pas non plus le point fort de PHP). Malgré cela, certaines librairies permettent la manipulation de fichier CSV et l'écriture de fichier XLS. Deux d'entres elles ont retenues notre attention : PHPEcxel, PHP_writeexcel. 3.4.4.2.2 Module perl Perl est un langage de programmation interprété tout comme le PHP. Cependant, ils n'ont pas tout à fait les mêmes objectifs et sont complémentaires. En effet, perl, contrairement à PHP, manipule très bien les chaines de caractères. De plus, il existe une librairie nommé «SpreadSheet::WriteExcel» qui permet de créer, lire, éditer les fichiers excel. D'ailleurs, la librairie PHP «PHP_writeexcel» est une réécriture en PHP de cette librairie. Par conséquent, le script perl est très semblable au script php. En terme de performance, le script perl lancé en ligne de commande se révèle être deux fois plus performant que le script php. Cependant, l'administrateur système accepte d'installer perl sur le serveur, mais ne souhaite pas rendre perl directement exécutable depuis le serveur web. Le script perl doit donc être lancé depuis un script PHP. Dans ce cas de figure, le gain de performance apporté par perl n'est plus significatif vis à vis du PHP. Dans ces conditions l'utilisation d'un langage peu utilisé dans l'entreprise est un handicap majeur pour l'adoption de la solution. 3.4.4.2.3 Module python, ruby ou java Il aurait également été possible de tester d'autres technologies qui ont potentiellement de meilleurs performances que le PHP pour la conversion de ces données. Cependant, l'amélioration Machen Florent 31/49

des performances de ce module ne justifie pas aux yeux de la société le fait d'augmenter le nombre de technologie à maintenir sur le serveur. Ainsi, les technologies tels que python, ruby ou java, bien qu'envisagées ont rapidement étaient abandonnées. 3.4.4.3 Solutions Retenues Le solution retenue fut la réalisation du module en PHP avec la librairie PHP_writeexcel. Cette librairie est plus légère et plus simple que PHPExcel. Dans l'optique de maitriser l'ensemble des scripts du SIT et de dépendre le moins d'outils n'étant pas conçu par la société, la légèreté et la simplicité de cette librairie a jouée en sa faveur. 3.4.4.4 Bilan Le développement et l'intégration n'ont pas posé de problème particulier. La solution est simple, efficace et aisément maintenable. De plus, la réalisation de ce module m'a permis de découvrir d'autres langages notamment perl et ruby. 3.4.5 Export PDF L'export au format PDF est celui pour lequel les attentes sont les plus importantes. Il s'agit de réaliser un mini guide touristique généré à la demande d'un utilisateur en fonction de ces critères de recherche. 3.4.5.1 Étude de l'existant De nombreuses technologies existent afin de générer des PDF depuis un langage de programmation. Certains comme la libraire PHP FPDF sont dors et déjà employé par la société. Cependant, ces applications sont spécifique à un besoin du CMS Astuss. Le SIT n'est doté d'aucun système équivalent. La conception de l'outil est donc entièrement à réaliser. Machen Florent 32/49

3.4.5.2 Solutions Envisagées 3.4.5.2.1 Partenariat L'export PDF est un projet qui part de zéro, qui doit répondre à de nombreuses attentes et demande un temps de développement conséquent. Par conséquent, il a été envisagé de passer un partenariat avec une société spécialisée dans la conception de brochure publicitaire. Une présentation de la solution était prévue ; cependant, suite à l'absence d'accord commercial qui satisfasse les deux parties, cette solution fut écartée. 3.4.5.2.2 Système de template XSL Les données sont certes stockées dans une base de données relationnelles, mais au format XML. Afin d'effectuer la conversion des données, il fut alors envisagé de réaliser un système de template XSLT. Le langage XML a pour principal objectif la transformation d'un document XML vers un autre format (XML ou non). Ainsi, il sera possible de convertir les fichiers TourinFrance en fichier XSL-FO. De nombreux outils, comme jasper report ou fop, permettent la conversion de fichier XSL-FO en PDF. En fonction du format de sortie, une feuille de transformation XSLT génère une feuille de transformation XSLT qui appliquera une série de template paramétrable sur la ou les feuilles XML à exporter. Cette solution a pour avantage d'utiliser au mieux les avantages du XML. Cependant, cette solution nécessite l'installation d'un processeur XSL FO/PDF. Or, l'installation d'un tel outil ne fait pas l'unanimité au sein du service car cela implique une perte de contrôle sur la transformation des données. Autre inconvénient, la technologie XSL est peu employée dans la société. Malgré un usage important du XML, l'apprentissage du langage XSL par d'autres membres de la société n'est pas d'actualité. De plus, l'utilisation du langage XSL obligerai un développeur à réaliser les templates alors qu'il est préférable d'assigner cette tache aux intégrateurs. Par conséquent, il a été décidé d'abandonner la solution afin de réaliser un système de conversion HTML/CSS vers PDF. Machen Florent 33/49

3.4.5.2.3 Utilisation d'un moteur de rendu L'export des données devant dorénavant s'effectuer depuis le format HTML vers le format PDF tout en tenant compte de la mise en page CSS, la solution demandant le temps de mise en production le plus faible avec le rendu le plus fidèle possible est l'utilisation d'un outil spécialisé dans l'interprétation des pages HTML : le moteur de rendu des navigateurs web. Un test de faisabilité à été effectué avec le moteur de rendu gecko (moteur de rendu de firefox). Hormis le fond d'écran et une certaine variation de la largeur des marges entre les blocs d'une page web, le rendu est similaire en PDF qu'a l'affichage dans une page web. De plus, en installant des extensions flash et un moteur de rendu javascript, il est possible d'afficher la quasi totalité des éléments d'une page web. Bien que cette solution soit efficace, comme pour la solution des templates XSL, il y a présence d'une boite sur laquelle la société n'a pas le contrôle. De plus, l'installation d'un tel système implique l'installation d'outils peu conventionnels sur un serveur web (moteur de rendu HTML et javascript, extension flash, interface utilisateur graphique virtuel) que la société nexen ne semble pas disposer à réaliser. 3.4.5.2.4 Système de template XML vers PDF via HTML Une autre solution possible est la transformation des fichiers XML en HTML afin que les intégrateurs puissent définir l'apparence du PDF. Puis la conversion du fichier HTML en PDF via un langage de programmation tel que le PHP. 3.4.5.2.4.1 Conversion TourinFrance3.10 / HTML L'intérêt de passer par le format HTML est de permettre la conception de gabarit par les intégrateurs. Il est donc nécessaire de mettre en place un système de template. Il existe de nombreux système existant plus ou moins complet tel que smarty, templeet, tinybutstrong Cependant, afin de maitriser l'ensemble du code que raccourci héberge, l'agence préfère développer son propre système de template. Le template est un fichier html. Il décrit la structure de la page produite. Le fichier html doit être valide XML sans pour autant être valide XHTML et/ou HTML. Machen Florent 34/49

Le template est ensuite parcouru par un script PHP. Il s'agit plus précisément d'un parcours à l'aide de la technologie SAX. Lorsque le script rencontre un attribut de type tar «traitement automatique raccourci» le script exécute la procédure décrite en valeur de l'attribut. Les procédures permettent la réalisation d'action très simple : insertion d'un autre template insertion de texte dans l'élément insertion d'image, de carte google maps conditions boucle 3.4.5.2.4.2 Conversion HTML / PDF Une fois le fichier HTML réalisé, reste la génération du PDF. Dans de nombreux langages, il existe des librairies permettant de générer des PDF. Cependant, le PHP est fortement privilégié, d'autant plus que les tests comparatifs entre les librairies des différents langages ne sont pas en défaveur du PHP. De plus, trois librairies PHP ont retenues notre attention car ils permettent la conversion des données aux formats HTML/CSS vers le PDF. Aucune de ces librairies n'est parfaite. En effet, aucune ne supporte la totalité des balises HTML, et le support du CSS est très différent d'une librairie à l'autre. Les trois librairies sont mpdf basé sur fpdf, tcpdf et dompdf. Au cas ou cette solution devait être retenue, la librairie mpdf est celle assurant la meilleure intégration du CSS, une meilleure prise en charge de l'utf8, des polices et une communauté toujours active. Machen Florent 35/49

3.4.5.3 Solutions Retenues et bilan La solution finalement retenue fût l'export en PHP depuis une source HTML/CSS. Cependant, avant d'arriver à cette décision finale, de nombreuses pistes furent explorés et des prototypes réalisés. Les changements de spécification, les changements de politique interne et de direction ont également contribuer à l'évolution de la solution finale. Cependant, ces modifications ont retardés le développement de l'application et au dernier de mon stage, l'ensemble des spécifications fonctionnels ne sont pas assurés. Le projet nécessiterai encore 10 jours de développement afin qu'il soit opérationnel et correctement documenté. De plus, les test unitaires réalisés au cours de développement montre des performances clairement au deçà d'autres solutions envisagées. Par exemple, le nombre limite de fiche exportable est d'environ 70 fiches. Au delà, le serveur stoppe les traitements car ceux ci sont limités en temps et en mémoire accordée. Cependant, ces performances sont jugées satisfaisantes et ne justifie pas le recours à une autre solution. Ce projet fut interrompu à mainte reprise durant le stage. C'est durant le dernier mois de stage qu'il se développa réellement. C'est aussi durant ce dernier mois que le nouveau directeur technique pris poste dans l'agence. Son arrivé changea radicalement la politique de développement de la société. En effet, celui ci privilégie l'utilisation de l'existant. Pour lui, le développement d'un moteur de template ou d'un moteur de recherche, n'est pas concevable à notre époque. Cette philosophie, diamétralement opposée à celle en place depuis le début de mon stage, occasionna de nombreux débats et polémique Tout en remettant en cause le développement des applications en cours. Machen Florent 36/49

CONCLUSION A l'issue du stage, je ne pouvais m'empêcher d'éprouver une certaine frustration, un sentiment de temps de travail gâché. En effet, le projet d'export de données qui fut initialisé dès le début de mon stage fut sans cesse repoussé au point de ne pouvoir être complètement terminé. De nombreuses missions qui me furent assignées ont été suspendues en raison du contexte (absence de chef de projet pour valider le projet, solution trop lourde pour être initié de suite, changement de politique interne ). Une fois ce sentiment dépassé, il s'avère que cette immersion dans le monde professionnel fut extrêmement enrichissante. En effet, la suspension des projets une fois les solutions techniques envisagées exposées ne m'a jamais été reprochée. Mes solutions furent retenues pour être de nouveau examinées lorsque le nouveau chef de projet serai présent. En attendant, les priorités furent réévaluées et de nouvelles taches assignées. Cela m'a permis de travailler sur de très nombreux points de SIT. Import, stockage, indexation, recherche, export dans différent Et d'autres points plus techniques tel que l'authentification multi sites, les requêtes http, les webservices SOAP, REST, système de cache Tout cela rend un stage de quatre mois extrêmement riche et valorisant. Concernant mon projet professionnel, il se révèle malheureusement être plus incertain à la fin qu'au début du stage. Le reproche qui m'a été formulé est «une approche innovante et intéressante, mais déconnecté de la réalité de la société». Autrement dit, il n'est pas nécessaire de prendre autant de recul ; l'important étant de produire une solution jugée satisfaisante par le client. Il m'est demandé d'avoir une approche plus vendeuse et commerciale (notamment sur l'aspect graphique des produits). Je comprends parfaitement la position de l'entreprise, et des efforts ont été fait dans ce sens. Cependant, il s'avère que ce n'est pas dans ce sens que je souhaiterais orienter mon avenir Machen Florent 37/49

professionnel. J'ai pu constater que mon intérêt ne se porte ni sur la vente et valorisation du projet, ni sur l'encadrement et le management de projet. Mais bel et bien sur le développement (analyse et programmation). Mon intérêt est d'autant plus vif que le sujet est incertain et novateur. C'est pourquoi je pense orienter mes recherches d'emploi vers de plus grandes structures et/ou vers un emploi plus proche des études et de la recherche que de la réalisation. Machen Florent 38/49

GLOSSAIRE CMS : Content Management Systems ou système de gestion de contenu (SGC) est une famille de logiciels destinés à la conception et à la mise à jour dynamique de site web ou d'application multimédia. CRM : Les systèmes de gestion des relations clients (Customer Relationship Management) sont des outils permettant aux décideurs de mieux comprendre leurs clients pour adapter et personnaliser leurs produits ou leurs services. CSV : Comma-separated values (CSV) est un format informatique ouvert représentant des données tabulaires sous forme de «valeurs séparées par des virgules». Un fichier CSV est un fichier texte (par opposition aux formats dit «binaires»). Chaque ligne correspond à une rangée du tableau et les cellules d'une même rangée sont séparées par une virgule. e-commerce : e-commerce ou commerce électronique désigne l'échange de biens et de services entre deux entités sur les réseaux informatiques. ERP : Les ERP (Enterprise Resource Planning), aussi appelés Progiciels de Gestion Intégrés (PGI), sont des applications dont le but est de coordonner l'ensemble des activités d'une entreprise autour d'un même système d'information. Intranet : L'intranet est un réseau informatique utilisé à l'intérieur d'une entreprise ou de toute autre entité organisationnelle utilisant les techniques de communication d'internet (IP, serveurs HTTP). Open Source : La désignation Open Source s'applique aux logiciels dont la licence respecte des critères précisément établis par l'open Source Initiative, c'est-à-dire la possibilité de libre redistribution, d'accès au code source, et de travaux dérivés. Machen Florent 39/49

PAO : La publication assistée par ordinateur, communément abrégée PAO (en anglais DTP pour Desktop Publishing), est l'ensemble des procédés informatiques permettant de fabriquer des documents destinés à l'impression. SARL : Une société à responsabilité limitée est une forme de société intermédiaire qui est une société commerciale à responsabilité limitée où la responsabilité est limitée aux apports, mais qui présente des caractéristiques de la société de personnes, notamment parce que les parts détenues dans le capital ne sont pas librement cessibles sans accord de tous ou partie des associés. SAX : Simple API for XML est une interface de programmation pour de nombreux langages permettant de lire et de traiter des documents XML. SIT : Un Système d'information Touristique (SIT) est un ensemble d'éléments participant au stockage, à la gestion, au transfert et à la diffusion de l'information dans le domaine du tourisme au sein d'une organisation. XLS :.xls est une extension de nom de fichier pour tableur au format de Microsoft Excel. Machen Florent 40/49

BIBLIOGRAPHIE Architectural Styles and the Design of Network-based Software Architectures par Roy Thomas Fielding : http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm Patterns of Enterprise Application Architecture par Martin Fowler Spécification http : http://www.w3.org/protocols/rfc2616/rfc2616.html Sécurité PHP5 et MySQLpar Damien Seguy et Philippe Gamache édition eyrolles PHP5 avancé par Eric Daspet et Cyril Pierre de Geyer édition eyrolles Perl pour l'impatient par Sébastien Desreux et Stéphane Tougard documentation php : http://php.net/ documentation XML : http://www.w3schools.com/ Machen Florent 41/49

ANNEXES Annexe 1 : Exemple de fiche XML TourinFrance <?xml version="1.0" encoding="utf-8"?> <tif:oi xmlns="http://www.tourinfrance.net/tourinfrance3/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:tif="http://www.tourinfrance.net/tourinfrance3/"> <!--Dublin Core--> <tif:dublincore> <dc:creator>residence MAEVA L'ESTRAN</dc:creator> <dcterms:created>2008-03-18 14:53:38</dcterms:created> <dcterms:issued>2008-03-18 00:00:00</dcterms:issued> <dcterms:modified>2008-12-04 10:27:30</dcterms:modified> <dcterms:valid>0000-00-00 00:00:00</dcterms:valid> <dc:language>fr</dc:language> <dc:description xml:lang="fr">face à l'océan, dans un domaine paysagé, la résidence d'architecture vendéenne est composée de 5 bâtiments d'un étage. Piscine chauffée, boulodrome, aire de jeux, clubs enfants gratuits en juillet-août : avec Maëva partagez bien plus que des vacances!</dc:description> <dc:description xml:lang="en">this 2-floor hotel, facing the sea, has a heated swimming pool. This residence is comprised of 5 small single-storey buildings whose architecture is reminiscent of the Vendée with most facing south. It has a heated swimming pool. 2 km from the beach of Tanchet. Car needed. On-site Services & Activities Complex with a hotel and residence with haeted swimming pools facing the sea. Located between the Puits d'enfer, a deep cleft in the cliff into which the sea comes crashing at high tide, and the town centre. Leisure: children's playground, petanque. Accommodation - 42 Apartments In all apartments: Kitchen with 2 hot plates, refrigerator, dishwasher and electric coffee-maker, Machen Florent 42/49

Bathroom with bath/shower and toilet, Television, Telephone (paying), Loggia with garden furniture. Apartment for 2 persons Apartment for 3 persons Bedroom for 2/3 persons Suite for 4/5 persons 3 apartments available for persons with reduced mobility </dc:description> <dc:description xml:lang="de">neu!!! Am 1. Juli Eröffnung einer Ferienresidenz der Gruppe PIERRE ET VACANCES auf dem Gelände des Château d'olonne, Rue du Puits d'enfer.</dc:description> <dc:description xml:lang="nl">nieuw!!!! van een hotel*** dat is aangesloten bij de groep Pierre et Vacances, rue du Puits d'enfer in Le Château d'olonne.</dc:description> <dc:identifier>olonne49</dc:identifier> <tif:classification code="02.01.04" xml:lang="fr">hébergement locatif</tif:classification> <tif:controlledvocabulary code="104.02.01.04.01.01">résidences de tourisme</tif:controlledvocabulary> </tif:dublincore> <!--Update--> <!--Multimedia--> <tif:multimedia> <tif:detailmultimedia type="03.01.01" libelle="image" xml:lang="fr"> <tif:url>http://www.otlessablesdolonne.fr/espace/images/diaporama/maeva_l_estran3.jpg</tif:url> <tif:nom>maeva l Estran</tif:Nom> <tif:largeur>600</tif:largeur> <tif:hauteur>350</tif:hauteur> </tif:detailmultimedia> <tif:detailmultimedia type="03.01.01" libelle="image" xml:lang="fr"> <tif:url>http://www.otlessablesdolonne.fr/espace/images/diaporama/maeva_l_estran4.jpg</tif:url> <tif:nom>maeva l Estran</tif:Nom> <tif:largeur>600</tif:largeur> <tif:hauteur>379</tif:hauteur> </tif:detailmultimedia> <tif:detailmultimedia type="03.01.01" libelle="image" xml:lang="fr"> <tif:url>http://www.otlessablesdolonne.fr/espace/images/diaporama/maeva_l_estran5.jpg</tif:url> <tif:nom>maeva l Estran</tif:Nom> <tif:largeur>600</tif:largeur> <tif:hauteur>368</tif:hauteur> </tif:detailmultimedia> <tif:detailmultimedia type="03.01.01" libelle="image" xml:lang="fr"> <tif:url>http://www.otlessablesdolonne.fr/espace/images/diaporama/maeva_l_estran_6.jpg</tif:url> Machen Florent 43/49

<tif:nom>maeva l Estran</tif:Nom> <tif:largeur>600</tif:largeur> <tif:hauteur>355</tif:hauteur> </tif:detailmultimedia> <tif:detailmultimedia type="03.01.01" libelle="image" xml:lang="fr"> <tif:url>http://www.otlessablesdolonne.fr/espace/images/hebergement/residence_de_vacances_maeva_l_estran.jpg</tif: URL> <tif:nom>imgaccueil:residence MAEVA L'ESTRAN</tif:Nom> </tif:detailmultimedia> </tif:multimedia> <!--Contacts--> <tif:contacts> <tif:detailcontact type="04.03.13" libelle="etab/lieu/structure" xml:lang="fr"> <tif:raisonsociale>residence MAEVA L'ESTRAN</tif:RaisonSociale> <tif:adresses> <tif:detailadresse> <tif:adr1>65 rue du Puits d'enfer - La Pironnière</tif:Adr1> <tif:codepostal>85180</tif:codepostal> <tif:commune code="85060">château-d'olonne</tif:commune> <tif:pays code="fr">france</tif:pays> <tif:personnes> <tif:detailpersonne type="04.04.05" libelle="moyens de communication" xml:lang="fr"> <tif:moyenscommunications> <tif:detailmoyencom type="04.02.01" libelle="téléphone" xml:lang="fr"> <Coord>+33 (0)2.51.21.82.10</Coord> </tif:detailmoyencom> <tif:detailmoyencom type="04.02.02" libelle="télécopieur /fax" xml:lang="fr"> <Coord>+33 (0)2.51.33.67.34</Coord> </tif:detailmoyencom> <tif:detailmoyencom type="04.02.04" libelle="mél" xml:lang="fr"> <Coord>sol@maeva.com</Coord> </tif:detailmoyencom> <tif:detailmoyencom type="04.02.05" libelle="site web (URL)" xml:lang="fr"> <Coord>http://www.maeva.com</Coord> </tif:detailmoyencom> </tif:moyenscommunications> </tif:detailpersonne> </tif:personnes> </tif:detailadresse> </tif:adresses> </tif:detailcontact> </tif:contacts> <!--Informations Legales--> <!--Classements--> <tif:classements> Machen Florent 44/49

<tif:detailclassement type="06.04.01" libelle="préfectoral" xml:lang="fr"> <tif:classement type="06.04.01.04.03" xml:lang="fr">3 étoiles</tif:classement> </tif:detailclassement> <tif:detailclassement type="104.06.03.02.01" libelle="maëva" xml:lang="fr"/> </tif:classements> <!--Prestations Liees--> <!--Géolocalisations--> <tif:geolocalisations> <tif:detailgeolocalisation type="08.01.02" libelle="mono-localisé" xml:lang="fr"> <tif:zone type="08.02.07.02" libelle="fermé" xml:lang="fr"> <tif:points> <tif:detailpoint type="08.02.05.11" libelle="principal" xml:lang="fr"> <tif:coordonnees> <tif:detailcoordonnees type="08.02.02.03" libelle="géographiques (UTM compatible avec GPS)" xml:lang="fr"> <tif:longitude>-1.745664</tif:longitude> <tif:latitude>46.474931</tif:latitude> </tif:detailcoordonnees> </tif:coordonnees> <tif:environnements> <tif:detailenvironnement type="08.02.03.06" libelle="au bord de la mer" xml:lang="fr"> <tif:distance unite="01.03.02.02" libelle="m" xml:lang="fr">2000</tif:distance> </tif:detailenvironnement> </tif:environnements> </tif:detailpoint> </tif:points> </tif:zone> </tif:detailgeolocalisation> </tif:geolocalisations> <!--Periodes--> <tif:periodes> <tif:detailperiode type="09.01.01" libelle="accueil" xml:lang="fr"> <tif:dates> <tif:detaildates> <tif:datedebut>2009-04-04</tif:datedebut> <tif:datefin>2009-11-14</tif:datefin> </tif:detaildates> </tif:dates> </tif:detailperiode> </tif:periodes> <!--Clienteles--> <!--Langues--> <!--Modes Reservations--> <!--Tarifs--> <tif:tarifs> <tif:detailtarifs> Machen Florent 45/49

<tif:detailtarif type="13.04.04.07" libelle="week-end (meublé)" xml:lang="fr"> <tif:tarifmin>84</tif:tarifmin> <tif:tarifmax>154</tif:tarifmax> </tif:detailtarif> <tif:detailtarif type="13.04.04.06" libelle="semaine (meublé)" xml:lang="fr"> <tif:tarifmin>260</tif:tarifmin> <tif:tarifmax>1070</tif:tarifmax> </tif:detailtarif> </tif:detailtarifs> </tif:tarifs> <!--Clienteles--> <!--Capacites--> <tif:capacites> <tif:capacitesunites/> </tif:capacites> <!--Offres Prestations--> <tif:offresprestations> <tif:detailoffreprestation type="15.02" libelle="activités" xml:lang="fr"/> <tif:detailoffreprestation type="15.05" libelle="equipements" xml:lang="fr"/> <tif:detailoffreprestation type="15.06" libelle="services" xml:lang="fr"> <tif:detailprestation> <Prestation type="15.06.05" xml:lang="fr">animaux acceptés</prestation> </tif:detailprestation> </tif:detailoffreprestation> </tif:offresprestations> <!--Descriptions Complementaires--> <tif:descriptionscomplementaires> <tif:detaildescriptioncomplementaire type="16.01.04" libelle="descriptif" xml:lang="fr"> <tif:description type="16.02.01" libelle="accueil" xml:lang="fr">nouvelle résidence située dans un quartier calme & à 2km de la plage de Tanchet</tif:Description> </tif:detaildescriptioncomplementaire> <tif:detaildescriptioncomplementaire type="16.01.05" libelle="identification" xml:lang="fr"> <tif:description type="16.02.26" libelle="réservations" xml:lang="fr"/> </tif:detaildescriptioncomplementaire> </tif:descriptionscomplementaires> <!--Thesaurus--> <!--Itineraires--> <!--Plannings--> </tif:oi> Machen Florent 46/49

Annexe 2 : Planning Machen Florent 47/49

Annexe 3 : Template tar <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"></meta> <meta name="author" content="florent@raccourci.fr"></meta> <meta name="robots" content="all"></meta> <title tar:content="raisonsociale"/> </head> <body> <div id="apercuhtml"> <link rel="stylesheet" type="text/css" href="constellation.css" /> <h1 tar:content="raisonsociale"/> <div class="block"> <div class="right"> <span class="categorie" tar:content="classification"/> (<span class="souscategorie" tar:content="controlledvocabulary"/>) </div> <h2 tar:content="raisonsociale"/> <div class="right">{image}</div> <p tar:content="description fr"/> <p/> <h4>chaînes</h4> <ul> <li><span>mercure</span></li> </ul> <h4>environnement</h4> <ul> <li><span tar:content="geolocalisations"/></li> </ul> </div> <div class="block"> <h2>périodes</h2> <p> <strong>accueil</strong> : <span class="date" tar:content="periode"/>. </p> </div> <div class="block" tar:content="parse constellation-contact.html"/> Machen Florent 48/49

<div class="block" tar:content="parse constellation-prestation.html"/> <div class="block" tar:content="parse constellation-tarif.html"/> <div class="block"> <h2>multimédia</h2> <table> <tr> <td tar:content="gmap setsize=250x250 setzoom=14 setmarkers"/> <td tar:replace="multimedia"/> </tr> </table> </div> <div class="block"></div> </div> </body> </html> Annexe 4 : Template tarif <div class="block"> <h2>tarifs</h2> <h3>mode de paiement</h3> <ul> <li tar:replace="modepaiement"/> </ul> <h3>tarifs</h3> <table> <caption>tarifs</caption> <tr> <th>types</th> <th>min</th> <th>max</th> </tr> <tr tar:repeat="i in tarifs"> <td tar:content="i"/> <td tar:content="min"/> <td tar:content="max"/> </tr> </table> </div> Machen Florent 49/49