Rapport de stage Licence professionnelle CDOOAM Migration de rapports d analyse décisionnelle et modification d un intranet LECLERC Thomas 06/06/2014 Tuteur : Isabelle Jacques. Maître de stage : William Bosdure
J ai effectué mon stage de fin de Licence professionnelle Informatique de l Université de Besançon au sein de l entreprise Jaeger-LeCoultre, manufacture de haute horlogerie, du 3 mars 2014 au 6 juin 2014. Au cours de ce stage, j ai eu pour mission de migrer des rapports d analyse décisionnelle sous un nouvel outil. Cette mission m a permis de travailler sur la base de données AS400, la suite de logiciels pour informatique décisionnelle Cognos d IBM, les logiciels d alimentation par ETL et les cubes de données. J ai aussi eu l occasion de travailler sur la modification du système d authentification de l intranet de l entreprise, développé en Java, dans le but d utiliser les comptes utilisateurs Windows au lieu d identifiants stockés en base de données pour renforcer la sécurité et la facilité de maintenance. Mots-clés : Jaeger-Lecoultre, Haute horlogerie, Reporting, AS400, Informatique décisionnelle, Analyses décisionnelles, Bases de données, Java, SSO, Active directory. My end-of-study intership for the professional degree of the Besançon University, occured at the Swiss fine watchmaking factory Jaeger-LeCoultre from march 3rd to june 6th 2014. During this internship, I had to migrate reports from an old to a new software. This mission gave me the opportunity to work with Databases, the business Intelligence software suite Cognos and IBM s AS400. I also worked on modifying the Intranet s authentication system. The purpose of this modification is to be able to login with Windows accounts instead of those stored in database, to improve security and ease of maintenance. Keywords: Jaeger-LeCoultre, fine watchmaking, Reporting, AS400, Business Intelligence, Business analysis, Databases, Java, SSO, Active Directory 1
Remerciements Je tiens particulièrement à remercier William Bosdure pour m avoir pris en charge et suivi durant ces trois mois de stage. Il a su me guider et m accompagner sur toute la durée des développements de mon stage. Je souhaite remercier aussi Virginie Carrez pour son soutien, sa patience et ses explications dans les différentes étapes de mes projets. Elle a toujours été à l écoute et disponible pour répondre à mes questions et suivre le déroulement de mon travail. Je remercie ensuite toute l équipe informatique qui, par son accueil chaleureux m a permis de rapidement m intégrer au sein du service, ainsi que tout le personnel de la manufacture que j ai eu l occasion de rencontrer au cours de ce stage. Enfin, je voudrais remercier Frédéric Michaud pour m avoir permis de réaliser ce stage dans l entreprise Jaeger-LeCoultre et la confiance qu il m a accordée. 2
Sommaire Remerciements... 2 Introduction... 5 Présentation de l entreprise... 6 1. Carte d identité de la manufacture... 6 2. Histoire... 7 3. Le groupe Richemont... 8 4. L informatique au sein de la manufacture... 9 a. Le réseau... 9 b. Le service informatique... 9 Présentation du sujet... 11 1. Outils utilisés...11 a. AS400...11 b. Suite de logiciels Cognos...12 c. Autres outils...13 2. Missions...13 a. Migration des rapports de Compta-Logistique...13 b. Modification de l authentification de l intranet...15 Cahier des charges... 16 1. Migration Impromptu...16 a. Etude de l existant...16 b. Refonte du catalogue de vues métier...16 c. Migration des rapports...17 d. Définition des droits d accès et publication des rapports...18 2. Étude de l utilisation d un ETL...18 3. Intranet SSO...19 3
Réalisation... 20 1. Migration Impromptu Cognos...20 a. Étude de l existant...20 b. Construction du modèle et des vues métier...21 c. Migration des rapports...24 d. Etude des ETL...27 2. Mise en production après migration...28 a. Définition des droits d accès...28 b. Publication des rapports...29 3. Modification de l authentification de l intranet...31 a. Étude de technologies...31 b. Mise en place...31 Bilan... 35 1. Travail réalisé...35 2. Bilan personnel...35 3. Bilan général...36 Bibliographie... 38 Annexes... 40 Annexe 1 : Fonctionnement de Cognos...40 Annexe 2 : Comparatif de logiciels d ETL (Extract Transform and Load)...41 Annexe 3 : étude de technologies SSO pour l intranet...42 4
Introduction La formation de Licence professionnelle SIL CDOOAM (Conception et Développement Orientés Objet d Application multi-tiers) de l Université de Franche-Comté se termine par un stage en entreprise se déroulant sur 15 semaines. Ce stage représente une étape importante de mon cursus puisqu il me permet de mettre en œuvre les connaissances acquises lors de ma formation, d évoluer dans le monde de l entreprise et de développer une première expérience professionnelle. J ai eu la chance de pouvoir effectuer mon stage au sein de la manufacture Jaeger- LeCoultre (montres et pendules de haute horlogerie) au Sentier en Suisse, sous la tutelle de William Bosdure, chef de projet informatique. Les sujets à traiter durant ce stage correspondaient à ce que je recherchais pour mettre en application les connaissances acquises au cours de mes études. C est aussi l opportunité de découvrir le fonctionnement d une entreprise de taille conséquente (plus de 1300 collaborateurs), son organisation ainsi que le travail d un service informatique dans ce type d environnement. Durant ces 15 semaines, du 3 mars 2014 au 6 juin 2014, j ai pu apprendre à travailler dans une équipe dynamique et découvrir leurs méthodes de travail. Ce stage m a aussi amené à utiliser de nouvelles technologies et outils que je ne connaissais pas pour mener à bien les missions qui m ont été confiées. Dans ce rapport, après une présentation de l entreprise, j exposerai le sujet de façon générale, puis plus spécifiquement les différentes tâches et missions à accomplir dans un cahier des charges, à savoir la migration de rapports d analyse décisionnelle d un ancien outil vers un nouveau, ainsi que la modification du système d authentification de l intranet. Je poursuivrai par la présentation des réalisations effectuée, pour finir sur un bilan du stage de fin de Licence professionnelle. 5
Présentation de l entreprise 1. Carte d identité de la manufacture Activité : Horlogerie de luxe Adresse : rue de la Gollisse 8 CH-1347 LE SENTIER VAUD SUISSE Téléphone : 00 41 21 845 02 02 Site Internet : www.jaeger-lecoultre.com Création : 1833 Situation géographique : Au cœur du Jura Vaudois, dans la vallée de Joux. Effectif au 02/04/2012 : + 1300 Personnes à la manufacture : ~47 % d hommes / ~53% de femmes ~24 % résidants en Suisse ~76 % de frontaliers. Moyenne d âge du personnel : Figure 1 : situation géographique ~37 ans / ancienneté : ~10 ans Objectif : Etre la référence dans l Art horloger 6
2. Histoire Au début du XVIII ème siècle, ce sont la France et l Angleterre qui dominent l horlogerie. Lorsqu au milieu du XIX ème siècle les horlogers suisses commencent à produire des montres de haute valeur, cette domination se trouve remise en cause. C est dans cette période que les montres portables, jusqu alors signes de réussite sociale deviennent accessibles à un plus grand nombre. Antoine LeCoultre L un des acteurs majeurs de ce renouveau est Antoine LeCoultre, qui fonde son premier atelier en 1833 à la suite de l invention d une machine à tailler les pignons. Il conçoit alors des machines-outils capables de produire des composants d une précision jamais atteinte à cette époque. On compte parmi ses inventions le Millionomètre (instrument de mesure permettant pour la première fois de mesurer le micron) ou encore le remontoir à bascule (permettant de remonter la montre et de régler l heure à l aide d une seule et même couronne : une montre sans clé). Le Millionomètre Ses enfants, héritant de son esprit de pionnier et d inventeur, poursuivent l expansion de la marque en publiant chaque année de nombreux brevets et en produisant un nombre croissant de mouvements et de calibres. En 1899, la société est l une des plus importantes de la Vallée de Joux. Edmond Jaeger En 1903 Jacques-David, petit-fils d Antoine LeCoultre s associe avec Edmond Jaeger, un fabriquant de chronomètres basé à Paris. La marque étend alors sa renommée sous le nom Jaeger-LeCoultre. Depuis près de 200 ans la marque a su conserver l esprit d innovation et de créativité de son fondateur et parmi les créations les plus remarquables on peut citer : La montre sans clé qui permet de s affranchir de l utilisation d une clé (facile à perdre) pour remonter la montre La pendule Atmos qui tire son énergie des changements de température ; elle peut ainsi fonctionner longtemps (plusieurs centaines d années) et n a pas besoin d être remontée. Le calibre 101 qui est le plus petit mouvement mécanique jamais La pendule Atmos réalisé. Celui-ci détient le record du plus petit calibre mécanique au monde depuis 1929. 7
La Reverso qui permet de retourner le cadran pour ne pas l abimer lors d activités à risques (au départ, des matchs de polo). Le calibre 145 créé en 1907 qui a été le mécanisme le plus fin pendant longtemps avec 1.38 mm d épaisseur On peut aussi noter que la marque est spécialiste dans le domaine des complications c est-à-dire tout ce qui n est pas de l affichage de l heure (répétitions minutes, calendriers, calendriers perpétuels, calendriers lunaires, chronomètre, jours de la semaine ) et qui est ajouté en plus de l heure classique. Depuis sa création en 1833, l entreprise Jaeger-LeCoultre n a cessé de grandir d un petit atelier familial à une manufacture qui compte aujourd hui plus de 1300 employés. La société fabrique ses montres du début à la fin, ce qui implique de réunir jusqu à 180 corps de métiers différents sous un même toit. Située au Sentier dans la Vallée de Joux en Suisse, l entreprise compte près de 80% d employés français du fait de sa proximité de la frontière. 3. Le groupe Richemont Le groupe Richemont possède un éventail unique de marques de produits de luxe les plus réputées au monde. Ces marques produisent et commercialisent un large panel de produits de luxes tels que des montres, des vêtements, de la joaillerie, des briquets, des stylos L objectif du groupe est de développer ses marques de manière à accroitre son chiffre d affaires et son bénéfice à long terme, tout en préservant la réputation et l intégrité des marques Parmi les marques du groupe Richemont on retrouve par exemple Cartier (Joailleries, montres et parfums), Chloé (Prêt à porter), Mont Blanc (Stylos et montres), Piaget (montres) ou encore Purdey & sons (Armes de chasse). Jaeger-LeCoultre est entrée dans le groupe Richemont en 2000. 8
4. L informatique au sein de la manufacture a. Le réseau La manufacture dispose d un réseau local d environ 750 postes de travail et de près de 50 serveurs. Plusieurs types de serveurs sont accessibles : serveurs de données, serveurs d impression, serveurs de profils contrôlant les accès, et un AS400 (IBM) pour gérer les données industrielles, commerciales, de comptabilité et du personnel. Tous les postes de travail sont liés au réseau de manière à pouvoir accéder aux informations depuis n importe où. Ces derniers utilisent le système d exploitation Windows 7 et les serveurs utilisent principalement Windows Server 2008. b. Le service informatique Le département informatique de la manufacture est composé de 17 personnes et s organise autour de 3 pôles dirigés par Frédéric Michaud : Le pôle systèmes et réseau dirigé par Éric BAS: Gestion et maintenance du parc informatique comprenant près de 750 postes personnels, 60 imprimantes réseau et 50 serveurs. Ce pôle s occupe aussi de l installation, la configuration et le dépannage de près de 140 logiciels et gère tous les aspects de sécurité, d accès et de sauvegarde. L objectif principal étant d assurer une disponibilité constante et une robustesse des systèmes. Le pôle projets et développement d applications dirigé par William BOSDURE : il fournit les solutions logicielles adaptées et évolutives pour pouvoir gérer l ensemble des processus métier de la manufacture que ce soit la production, la distribution ou encore la comptabilité. Le pôle gestion et organisation du système d information : Administration des bases de données et des règles d alimentation. Ce pôle soutient et coordonne les projets d organisation logistique (GEMINI) et transverses. Mon stage s est déroulé au sein du pôle Projets et développement d application sous la tutelle de William Bosdure. 9
Systèmes d information & Organisation MICHAUD Frédéric Projet et Développement Applications Systèmes et Réseaux BOSDURE William BAS Eric Fabrication Gestion Projet ARPHANT Julien SAP GEMINI Gestion Projet CLEMENT Fabien Administration Systèmes MEKKI Mohamed Administrateur des systèmes Gestion du parc Fabrication / Ventes Distribution / SAV BMDM SAP GEMINI Webmaster Intranet Support & Développement DEBOST Claude Web Développement GUITON Jérémie Gestion Projet KU spécialiste FONTEIN Ernestine Opération IT PONSOT Nadine Help Desk & support Administration Budget / secrétariat Formation Fabrication et achats Intranet + Web / CRM Support & Développement GROS Mickael Support & Développement VUILLAUME Emilien Support & Développement MDM Information Responsable Project Administration de la base de données COURTET Frédéric Sécurité et Communication PERRIER Cyril Apprentie MULLER Justine Sécurité et Sauvegardes Gestion du Réseau LAN / WIFI / WAN Gestion des équipements Smartphones / Téléphones CARREZ Virginie BI COGNOS Fabrication & Supply chain Intérimaire Support & Développement NAFA Madjid Figure 1 : Organigramme du service informatique de Jaeger-LeCoultre 10
Présentation du sujet 1. Outils utilisés a. AS400 Le serveur de bases de données utilisé au sein de la manufacture est un AS400. L AS400 est un serveur multi-utilisateurs et multi-tâches distribué par IBM, qui fonctionne avec un système d exploitation propriétaire orienté objet, l OS400. Cet OS (Operating System) fonctionne principalement par l intermédiaire de commandes en langage CL (AS/400 Control Language). L AS400 héberge une base de données de type DB2 qui possède toutes les fonctionnalités d une base de données moderne. L architecture de l AS400 possède une structure en couches séparant les éléments matériels et logiciels. Ainsi un programme dialogue avec le matériel via une interface machine indépendante de la technologie. Cette couche logicielle (appelée micro-code) isole les applications du matériel ce qui fait que lors d un changement de technologie processeur, seule la couche logicielle est réécrite. On préserve ainsi l intégrité de l interface machine Le fonctionnement de cette machine est construit sur une notion d objets (éléments présents sur la machine) et de travaux (tâches présentes sur la machine avec un début et une fin). Les différents objets sont regroupés dans des bibliothèques. Un objet est identifié par son nom et son type. La terminologie base de données parle de tables, lignes ou tuples, et colonnes. La terminologie AS400 décrit des fichiers, des enregistrements caractérisés par leur format, et découpés en zones ou champs. Un objet fichier AS400 décrit une organisation de données selon un ou plusieurs Formats nommés, et éventuellement les modalités d'accès à celles-ci. Les données sont contenues dans des Membres dépendants du fichier. Il y a plusieurs types de fichiers : Fichier physique : il décrit le format de ses données, lesquelles sont contenues dans un membre (ou plusieurs). On y trouve le nom des zones, le type, la taille, une description, une liste de champs clés et d autres éléments optionnels. 11
Fichier logique : il ne contient pas de données. Ces fichiers sont des vues particulières des fichiers physiques. On peut renommer les champs ou encore les réorganiser. Fichiers écrans et imprimantes : ils déclarent des formats d échange. b. Suite de logiciels Cognos Cognos Business Intelligence est une suite de logiciels pour l informatique décisionnelle supportée par IBM depuis 2008. Elle se compose d un ensemble de logiciels utilisés pour des activités de reporting et d analyse décisionnelle (annexe 1). Cette suite permet aux utilisateurs ne possédant pas de connaissances techniques d extraire des données, de les analyser et de créer des rapports. Cognos est actuellement disponible en version 10.2.1. La suite Cognos se compose principalement de : Cognos Framework Manager : permet la création d un «modèle» qui est une représentation des données sous la forme d un catalogue de vues métiers, plus adaptées et compréhensibles pour les utilisateurs finaux. On utilisera ces vues métier pour créer des rapports d analyse ou des cubes de données. Cognos Connection : interface web qui donne accès à un ensemble d outils pour la création de rapports (Cognos Analysis, Report Studio, Query Studio, Business Insight, ). Les outils qui composent cet ensemble se différencient principalement au niveau de la complexité des rapports que l on peut créer et des fonctionnalités qu ils proposent. Par exemple Report Studio possède plus de fonctionnalités et permet de créer des rapports plus complexes que Query Studio. Cognos Administration : zone d administration de Cognos 10, accessible via le portail web. Cognos Transformer : logiciel pour la création de cubes de données à partir d un catalogue créé dans Framework Manager On peut trouver au sein de cette suite d autres applications que je n ai pas utilisé. 12
c. Autres outils J ai aussi travaillé sur d autres outils dont certains ne m étaient pas inconnus. Parmi ceux-ci : Eclipse : environnement de développement intégré libre extensible, universel et polyvalent, permettant potentiellement de créer des projets de développement mettant en œuvre n'importe quel langage de programmation. Je connaissais déjà ce logiciel car je l ai utilisé régulièrement au cours de mes études. Tomcat : Serveur web qui permet l exécution de Servlets Java, il inclut aussi un serveur http. J avais déjà utilisé cet outil avant le stage. Impromptu : logiciel de reporting auparavant distribué par la société Cognos qui a été rachetée par IBM en 2008. Le logiciel n est plus supporté au profit de la suite de logiciels Cognos. 2. Missions a. Migration des rapports de Compta-Logistique Les données relatives à la logistique et à la comptabilité sont situées dans une base de données décisionnelle (une bibliothèque sur l AS400 nommée DWJAEGERF) séparée de la base principale. Cette base décisionnelle est alimentée à partir des données de la base principale par des programmes qui extraient, trient et remanient une partie de ces données pour n avoir que les informations pertinentes pour les services ciblés. Actuellement cette base de données décisionnelle est alimentée par des programmes RPG (Report Program Generator, langage de programmation pour AS/400) qui sont exécutés toutes les nuits. Les données contenues dans la base décisionnelle sont exploitées à l aide de rapports qui sont des présentations de données sous différentes formes (listes, tableaux croisés, graphiques ) et filtrées via différents paramètres. 13
L outil utilisé pour créer et exécuter ces rapports est actuellement le logiciel Cognos Impromptu. Ces rapports sont importants pour les services de comptabilité, logistique, SAV, contrôle interne et le service clients car ils permettent d effectuer des analyses détaillées sur les chiffres d affaires, les ventes, les stocks, les clients Figure 2 : Exemple de rapport "Liste des clients par zone géographique" sous Impromptu Le logiciel Impromptu n étant plus supporté par IBM (qui a racheté Cognos en 2008), il est nécessaire de migrer ces rapports vers une plateforme plus actuelle qui est déjà utilisée dans d autres services : la suite de logiciels Cognos. La mission principale de mon stage a donc été la migration des rapports de logistiquecomptabilité sous la suite Cognos 10 avec tous les changements inhérents à la migration. Cette mission inclut : Une étude des rapports existants : une bonne partie des rapports n est plus utilisée, certains datent de plus de 10 ans. Un nettoyage de la base décisionnelle : certaines tables ne sont plus utiles car les rapports basés sur celles-ci ne sont plus d actualité. Une refonte du catalogue des vues métier sous Cognos Framework Manager. 14
La réécriture de chaque rapport sous Cognos Un éventuel remplacement de l alimentation de la base décisionnelle en programmes RPG par un logiciel d ETL (Extract Transform and Load). b. Modification de l authentification de l intranet En plus de cette mission, j ai eu à étudier et effectuer la modification du système d authentification de l intranet de la manufacture. Le but de cette tâche est d utiliser les comptes Windows pour gérer les comptes utilisateurs (identifiants) et les droits d accès à l intranet. L intranet de la manufacture est conçu en Java EE (Enterprise Edition), et utilise des informations présentes dans la base de données de l AS400 pour réaliser l authentification des utilisateurs. Dans l optique de faciliter la maintenance, de renforcer la sécurité et le confort des utilisateurs, on souhaite utiliser les comptes utilisateurs définis dans l Active Directory Windows pour procéder à l authentification. L intranet se présente sous la forme d un portail composé de plusieurs applications comme par exemple l intranet produits, la configuration des bracelets ou encore l intranet du contrôle 1000 heures. 15
Cahier des charges 1. Migration Impromptu a. Etude de l existant Le logiciel Impromptu a été mis en place il y a près de 15 ans. Les rapports ont été construits au fil du temps selon les besoins de chaque service et en accord avec le fonctionnement de l époque. Le fonctionnement et l organisation de l entreprise évoluant au cours du temps, certaines données deviennent inutiles et donc certains rapports ne sont plus utilisés. De même, un certain nombre de collaborateurs sont répertoriés dans la liste des droits d accès d Impromptu mais ne font plus partie de l entreprise. Pour pouvoir correctement migrer les rapports d Impromptu vers Cognos et éviter de travailler sur des rapports obsolètes, il est essentiel de connaitre ceux qui sont utilisés, les collaborateurs qui les utilisent et à quelle fréquence. Le premier travail à effectuer est donc de contacter chaque utilisateur répertorié dans Impromptu pour faire une liste de tous les rapports utilisés. Après avoir listé les utilisateurs effectifs et les rapports utilisés, il faut déterminer quelles tables de la base de données décisionnelle sont utilisées par les rapports et lesquelles ne le sont pas. Cela sert à nettoyer la base décisionnelle de toutes les données superflues ou devenues obsolètes pour ne conserver que les informations pertinentes. Nettoyer la base de données implique aussi une modification des programmes d alimentation de la base. b. Refonte du catalogue de vues métier Pour pouvoir utiliser les données dans des rapports, il faut créer des vues métier. Ces vues métiers sont en fait une représentation plus orientée utilisateur des données pour faciliter la manipulation de celles-ci par les utilisateurs. La création de ces vues consiste à trier, filtrer, renommer et organiser les informations pour qu elles soient plus compréhensibles et qu elles correspondent au mieux aux besoins des utilisateurs. On peut, par exemple, regrouper des informations provenant de tables différentes dans une même entité pourvu que celles-ci soient reliées dans le modèle. 16
Pour ce faire il faut créer un modèle dans Cognos Framework Manager dans lequel on insère les tables source de la base de données et les relations entre elles. Un modèle est une collection de métadonnées pour une source de données. Ces métadonnées décrivent les informations et leurs relations. Ce modèle utilise un formalisme de type MERISE avec des tables, des relations et des cardinalités. A partir de ce modèle, on créée les vues métier en sélectionnant les colonnes des tables que l on veut avoir dans celles-ci. Cette étape est importante car la bonne construction du modèle influe sur le bon fonctionnement des rapports et surtout sur la justesse des résultats obtenus. c. Migration des rapports La partie suivante est la migration des rapports sous Cognos 10. N existant pas d outil de compatibilité entre Impromptu et Cognos 10, la migration doit s effectuer au cas par cas en recréant chaque rapport sous Cognos à l aide de Query Studio, Report Studio ou tout autre logiciel de reporting de la suite Cognos. Il faut donc étudier chaque rapport et le reproduire sous Cognos sachant que ce dernier possède des fonctions différentes d Impromptu, ce qui implique une construction parfois différente des rapports. La migration concerne les ensembles de rapports : Suivi des Marges : Ces rapports sont utilisés par le service Contrôle de Gestion pour suivre les marges réalisées sur les ventes. Ces analyses sont basées sur les quantités facturées, les chiffres d affaires, les coûts, et les marges. Mapics COM : Ces rapports sont utilisés par le service clients et certains par le SAV pour établir des statistiques de délai de livraison, des statistiques sur les commandes, gérer les portefeuilles d articles, les consommations de fournitures ou encore afficher des listes de clients. Statistiques de vente : Ces rapports sont utilisés par le contrôle de gestion pour établir des statistiques de vente, des analyses de chiffres d affaire ou des palmarès de ventes d articles. 17
d. Définition des droits d accès et publication des rapports Une fois les rapports migrés, il faut définir les utilisateurs ayant accès aux rapports ainsi que les règles d accès à ceux-ci. Les différents services de l entreprise sont regroupés dans des pôles d activité (Commercial, Service Après-ventes, Fournitures ). Au niveau de la base de données, l activité est représentée par une colonne ACTIV qui correspond au numéro du pôle d activité et présente dans presque toutes les tables. Les différentes activités possèdent un libellé récupérable dans une table nommée PENVIR. Dans ce contexte, les utilisateurs faisant partie d une activité ne sont pas censés avoir accès aux données liées à une autre activité. C est donc sur ce critère que seront filtrées les informations visibles par les utilisateurs. Il faut ensuite publier ces rapports sur la GED (Gestion Electronique de Documents) pour que les utilisateurs puissent les exécuter. La GED est une plateforme de gestion de documents sous la forme d un site intranet. On y référence les documents et outils pour lesquels on peut spécifier un chemin pour un exécutable. On assigne ces outils à des utilisateurs qui peuvent y accéder et les exécuter à partir de leurs menus GED personnels. 2. Étude de l utilisation d un ETL Une autre partie de la mission est d étudier une éventuelle alimentation de la base décisionnelle par ETL pour remplacer les programmes RPG existants. Le RPG est un langage de programmation sur AS400 qui est un serveur de données distribué par IBM. Les programmes RPG actuels définissent les règles d alimentation de la base décisionnelle. Si la société décide de changer de système de base de données, ces programmes devront être remplacés par une autre solution. C est là où les ETL entrent en jeu. Un ETL (Extract, Tranform and Load) est un logiciel de chargement de données depuis une source vers une destination. Ces programmes fonctionnent avec des connecteurs vers les différentes technologies (Bases de données, fichiers, Web Services, ) ce qui les rend évolutifs et adaptables à de nombreuses technologies. Il existe actuellement plusieurs solutions d alimentation par ETL, certaines payantes et d autres open-source. On m a donc confié la tâche d étudier certaines de ces solutions pour déterminer laquelle serait la plus adaptée en fonction des performances, de la prise en main et 18
du prix. Nous avons décidé de porter notre attention sur la solution Stambia (payante) et la solution Talend (en version open-source et licence payante). 3. Intranet SSO À la suite du projet de migration des rapports, j ai eu un autre projet à réaliser concernant le système d identification sur l intranet. Actuellement, les utilisateurs accèdent à l intranet à l aide d identifiants présents dans une table sur l AS400. Afin de simplifier la gestion des comptes et la sécurité, on m a demandé d étudier les technologies permettant une authentification basée sur l Active Directory de Windows, et de modifier l intranet en conséquence. L Active Directory est un service centralisé d identification et d authentification mis en œuvre par Microsoft pour les réseaux Windows. Active Directory répertorie les éléments du réseau tels que les comptes utilisateurs, les serveurs, les postes de travail, les dossiers partagés Il permet donc de mettre en place des stratégies de groupe régulant l accès aux différents matériels et applications. Active Directory utilise les services d annuaire LDAP (Lightweight Directory Access Protocol). Le but de cette modification est de centraliser les comptes utilisateurs afin de réduire la gestion de ceux-ci, et de renforcer la sécurité en évitant la multiplication de mots de passe. Il existe deux principales solutions pour atteindre ce but : Les solutions SSO : SSO (Single Sign-On) est un protocole (ou méthode) qui permet à un utilisateur de ne procéder qu à une seule authentification pour accéder à plusieurs applications informatiques. Ainsi, les utilisateurs ne rentrent qu une fois leurs identifiants à l ouverture de session et peuvent alors accéder à d autres applications tel l intranet. Les API java : l intranet de Jaeger-LeCoultre étant réalisé en Java, une autre solution est l utilisation d une API Java permettant la communication avec d autres services comme LDAP qui est un service d accès à l Active Directory Windows. Cette solution implique de devoir entrer ses identifiants pour pouvoir accéder à l intranet, mais évite la multiplication des données d authentification. J ai donc eu pour mission, dans un premier temps, d étudier les différentes possibilités pour pouvoir décider laquelle utiliser. La suite du projet consiste en la modification du code Java de la page d accueil de l intranet pour permettre une authentification basée sur l Active Directory. 19
Réalisation Pour aborder correctement le sujet, j ai décidé, dans un premier temps, de me familiariser avec les outils mis à ma disposition, notamment l utilisation de l AS/400 et de la suite de logiciels Cognos. Ne connaissant pas du tout l AS/400 ni le CL (Control language), j ai tout d abord découvert les principales commandes pour pouvoir travailler sur le serveur, manipuler les fichiers et effectuer des requêtes. J ai pu aussi dans cette première période, me familiariser avec la suite Cognos d IBM qui sert au traitement et à la manipulation des données. Cette suite est utilisée pour produire des rapports, créer des vues métier et des cubes de données. Cette phase de découverte m a aussi permis de bien appréhender le sujet et de prendre un peu de recul pour bien cerner la demande. La première étape du projet de migration des rapports a consisté en la récolte d informations sur l utilisation des rapports. 1. Migration Impromptu Cognos a. Étude de l existant Pour avoir une bonne base sur laquelle démarrer la migration, j avais besoin de connaitre les utilisateurs qui se servent encore du logiciel Impromptu et quels rapports sont utilisés. J ai donc envoyé un mail à toutes les personnes présentes dans la liste des accès Impromptu. Après avoir reçu les réponses, j ai pu éliminer une bonne partie des rapports qui n étaient plus utilisés ainsi qu une grosse partie des utilisateurs, certains n étant plus dans l entreprise ou ayant changé de département. C est une étape très importante car elle m évite de porter mon attention sur des rapports qui ne sont pas utilisés et ainsi gagner du temps. Pour déterminer les fichiers (tables) utilisés, j ai d abord essayé avec la date de dernière utilisation des fichiers. En effet chaque fichier possède une date de création et une date de dernière utilisation. Cependant cette dernière ne peut être vue qu à titre indicatif puisque elle est modifiée à chaque accès au fichier et aurait pu être changée lors d une simple requête SELECT que j aurais pu effectuer. J ai donc été obligé d explorer chaque rapport pour dresser la liste des tables de la base de données décisionnelle qui sont utilisées. Cette liste me permettra d une part de nettoyer la 20
base décisionnelle, et de construire le modèle de données qui sera utilisé dans les nouveaux rapports. Quelques utilisateurs m ont demandé de modifier des rapports pour mieux répondre à leurs besoins. Ceci m a donné l occasion d assister à des réunions et d être en relation directe avec les «clients» pour étudier leurs demandes. Ça a été le cas pour le département SAV Rhabillage qui m a demandé de modifier deux rapport dont un qui était fait en Query 400 et que nous avons décidé de passer sous Cognos 10. Query 400 est un programme pour AS400 qui permet de faire des requêtes et d extraire des données de la base. La query utilisée par le SAV se basant sur des fichiers temporaires fait par d autres query, qui elles-mêmes se basent sur d autres query, il m a fallu remonter la chaine de query pour déterminer les fichiers sources concernés. J ai aussi assisté à des réunions avec le service SAV Fourniture qui souhaitait avoir la possibilité de produire leurs propres rapports. Nous avons décidé pour ce faire de créer un cube de données pour leur permettre de facilement naviguer dans les données. b. Construction du modèle et des vues métier La construction du modèle se fait avec le logiciel Cognos Framework Manager. Les autres applications de la suite Cognos se basent sur ce modèle pour la création de rapports et de cubes de données. Pour construire le modèle, il faut importer les tables dans Framework Manager à partir d une connexion à la base de données. Ce dernier récupère automatiquement le schéma des tables et le format des colonnes. Il faut ensuite construire les relations entre les tables en définissant quelles colonnes sont prises en compte dans les relations. Ces relations sont munies de cardinalités tout comme dans le formalisme MERISE étudié lors de mon cursus. 21
Figure 3 : Exemple de tables avec leurs relations Après avoir construit le modèle de base, on passe aux vues métier. Le but des vues métier est de faciliter la compréhension et la manipulation des données par les utilisateurs. Il s agit donc de présenter les données sous une autre forme avec des noms plus explicites. Dans ces vues on peut aussi définir de nouvelles colonnes qui correspondent à des calculs ou des concaténations de chaines pour créer de nouvelles données. 22
Il est possible de construire des vues à partir de plusieurs tables et ainsi regrouper des informations dans une même entité : Figure 4 : Vue métier "Article" sur Cognos Framework Manager Par exemple, la vue Article est formée à partir des tables PARTICL, PARTMOD, PARTLIG, PARTFAM, PARTNAT, PARTCOL, PARTTYP, PARTMAT. Cette vue regroupe ainsi les informations d un article avec les informations du modèle, de la ligne de produits, de la famille de produits, de la nature du produit, de la matière, de la collection et du type d article au lieu d avoir ces informations dans des tables séparées. Toutes les colonnes sont renommées pour avoir des données plus faciles à comprendre et à manipuler. L ensemble des vues métier produites sont publiées sous la forme d un pack qui sera importé dans les différents outils de la suite Cognos pour y être exploité. Les utilisateurs voulant créer des rapports n auront accès aux données qu à travers ce pack de vues métier. 23
c. Migration des rapports Une fois le modèle réalisé, je suis passé à l étape de migration des rapports. Cette étape consiste à reproduire les rapports qui sont sous Impromptu dans Cognos 10. Il faut pour chaque rapport, définir les informations utilisées, les filtres et les tris appliqués à ces données. Le but de cette migration est de disposer des outils sous un logiciel plus récent tout en conservant la présentation et l organisation des rapports pour ne pas changer les habitudes des utilisateurs, et obtenir les mêmes résultats que les anciens rapports. J ai débuté la migration par le dossier Mapics COM (32 rapports). MAPICS est un logiciel de gestion (ERP, Enterprise Resource Planning ou progiciel de gestion intégré) des opérations au sein d une manufacture, qui possède notamment un système de nomenclature d articles propre. Dans le dossier Mapics COM on trouve des analyses de statistiques fournitures, livraison, commandes ou de portefeuilles d articles. J ai ensuite migré le répertoire Suivi des marges (6 rapports) qui contient des rapports sur les marges et les écarts de chiffres d affaire et de quantités. Ces rapports ont été migrés sans trop de difficultés à part quelques résultats différents des rapports originaux, qui m ont fait modifier le modèle, notamment les cardinalités des relations. A part pour quelques cas, les rapports de ces dossiers ont tous été retranscrits à l identique sous Cognos. Pour certains, j ai été contacté par les services concernés pour apporter des modifications et améliorations. i. Cas des rapports «Prix spéciaux sur factures» et «Factures à 0» Le service SAV Rhabillage, qui s occupe des réparations et des garanties, a profité de la migration pour demander la modification de deux rapports. Le rapport «Prix spéciaux sur factures» est utilisé chaque fin de mois pour contrôler les remises appliquées aux commandes clients qui reviennent pour réparation. Le rapport «Factures à 0» affiche la liste des factures avec un montant égal à zéro. Ce rapport n est pas réalisé avec Impromptu mais en Query 400. Pour migrer les deux rapports du SAV Rhabillage, notamment celui qui était sous Query 400, j ai dû ajouter des tables à la base de données décisionnelle pour pouvoir les intégrer au modèle. Ajouter des tables dans cette base implique de changer des programmes d alimentation et les fichiers de description de la bibliothèque. En effet chaque bibliothèque de l AS400 possède un fichier de description de sa structure. Dans ce fichier se trouvent les structures de chaque fichier avec le format et la description de tous les champs. Il est impératif que cette 24
description corresponde à la structure de sortie des programmes d alimentation afin d éviter toute erreur lors de l alimentation de la base. Pour le rapport «Prix spéciaux sur factures», il m a fallu ajouter des colonnes dans la table utilisée comme le type de garantie, l assistante qui a pris en charge la facture ou encore le statut de la commande. La table en question se nomme ECEB01et est alimentée par une Query. Il ne suffit pas de modifier la structure de la table, il faut aussi modifier la Query pour qu elle alimente ces nouvelles colonnes. Comme cette Query se base sur des fichiers créés par d autres Query qui se basent elles-mêmes sur d autres, il faut remonter cette chaine de Query pour trouver celle de base qui prend les données dans les fichiers physiques, y ajouter les nouvelles colonnes puis modifier toutes les Query qui en découlent pour obtenir ces données dans le fichier final. Le rapport «factures à zéro» était, quant à lui, exécuté directement en Query 400. Au départ le SAV voulait juste rajouter quelques données au rapport mais nous avons finalement décidé de le passer sous Cognos 10. La Query en question produisait directement un affichage. Or il est nécessaire d avoir un fichier dans la base pour extraire les données sous Cognos. J ai donc modifié la Query pour qu elle alimente un fichier que j ai créé dans la base décisionnelle. ii. Utilisation d un cube de données pour les statistiques de ventes Le dernier dossier à migrer, Statistiques de ventes, contient des analyses de chiffres d affaire et de ventes qui sont utilisées par le SAV Fournitures. Le responsable du service souhaitant pouvoir mettre en place de nouvelles analyses, nous avons décidé d utiliser un cube de données pour réaliser ces rapports. Un cube de données est une représentation restreinte mais intelligente des données. Il sert à extraire des valeurs (chiffres d affaire, quantités vendues, marges ) en fonction d axes d analyse appelés aussi dimensions (par date, par article, par client ). Ici le cube utilise les données de la base décisionnelle qui elle-même utilise les données de la base principale. Le logiciel utilisé pour créer le cube est Cognos Transformer. Le cube se base sur les données des vues métiers créées à partir du modèle de Cognos Framework Manager. Lors de la création du cube, il faut définir les dimensions (axes d analyse) et les mesures. À l intérieur des dimensions se trouvent les niveaux qui permettent d affiner les axes d analyse. Une dimension peut comporter plusieurs niveaux et branches de niveaux qui convergent vers un niveau inférieur. On obtient alors une hiérarchie de niveaux. 25
Pour ce cube, il y a 7 dimensions : Article, Environnement, Marché, Groupe de clients, Pays, Date et Exercice fiscal. Ces dimensions vont permettre de couvrir les besoins d analyse des utilisateurs pour les statistiques de ventes. Ces dimensions possèdent plusieurs niveaux et parfois plusieurs branches de niveau comme la dimension article. En effet il est possible d accéder aux références article par la hiérarchie Nature, par Matière, Type d article, Calibre, Collection, Année de création ou Tête de montre. Figure 5 : Dimensions et niveaux du cube Statistiques ventes Figure 6 : Mesures du cube Statistiques Ventes 26
Ce sont les mesures que l on affiche en fonction des axes d analyse. On peut par exemple extraire la quantité facturée et le chiffre d affaire par marché puis client ou encore les écarts de valeurs par famille d article puis référence article. Le cube apporte à l utilisateur une facilité d utilisation ainsi qu une certaine autonomie vis-à-vis du service informatique. En effet le but du cube est de donner la possibilité aux utilisateurs de produire leurs propres analyses, mais aussi des performances accrues puisque toutes les informations sont pré-calculées et stockées dans un fichier sur le serveur. L avantage par rapport aux analyses statiques développées précédemment est la possibilité de se déplacer à travers les niveaux. Par exemple, si on créée un rapport sur la quantité par nature d article, il est possible de descendre aux niveaux inférieurs soit la famille de produit, puis la ligne de produit, puis le modèle et enfin les références articles. Le cube devant permettre aux utilisateurs de créer leurs propres rapports, je n ai pas migré tous les rapports à l identiques, notamment pour les analyses de quantités facturées et de CA. À la place j ai réalisé un ensemble d analyses de base de façon à couvrir tous les axes et niveaux. Par la suite ce sera le service ciblé qui créera des rapports correspondant mieux à leurs demandes sans passer par des procédures de demandes au service informatique. La dernière étape concernant le cube de donnée consiste à automatiser la création de ce dernier tous les jours pour que les données qu il contient soient à jour. Pour cela on utilise un fichier muni d une extension.bat. Les.bat sont des fichiers de commandes MS-DOS qui sont interprétés par Windows. Dans mon cas, le fichier nécessaire à la création du cube est le fichier du projet Transformer qui a l extension.pyj. Le cube est construit à partir de celui-ci dans Transformer. Ce fichier se trouve dans un dossier «Model». Dans le fichier.bat, une commande copie le.pyj dans le dossier supérieur pour éviter d utiliser le fichier de base pour les opérations. On y trouve ensuite une commande qui lance le.pyj dans Transformer et créé le cube correspondant. On intègre ensuite l exécution du.bat dans les tâches planifiées du serveur. Cette étape de migration a été la plus longue mais n a pas posé de grosses difficultés. d. Etude des ETL Dans le cadre de la migration vers Cognos, J ai à étudier différents logiciels d ETL. Nous avons décidé de porter notre attention sur la solution Talend et Stambia, sur les recommandations de partenaires qui les utilisent. J ai donc téléchargé et testé les logiciels. J ai pu 27
obtenir une démonstration en directe de la solution Stambia par la société qui le vend. Ces tests et démonstrations m ont permis de produire un comparatif (Annexe 2) pour que William puisse prendre la décision d utiliser ou non ces logiciels, et si oui lequel. Cette décision n a pas encore été prise. 2. Mise en production après migration a. Définition des droits d accès Pour définir les droits d accès, il faut placer les utilisateurs dans des groupes sur lesquels seront appliqués des filtres portants sur l activité (SAV, Commercial, Fournitures ). Les utilisateurs se connectant au portail Cognos avec leurs identifiants Windows, il faut au préalable créer des groupes spécifiques dans l Active Directory de Windows et y ajouter les utilisateurs. L ajout de groupes à l Active Directory s effectue par le biais d une demande à l équipe technique. Puis on créée des groupes Cognos dans la zone d administration du logiciel. Ces groupes Cognos se basent sur les groupes Windows et peuvent contenir plusieurs de ces derniers. J ai donc créé 5 groupes Windows et leurs équivalent dans Cognos: MJLC COGNOS LOGISTIQUE (Windows) => Logistique (Cognos) : groupe général qui contient les membres de tous les autres groupes COGNOS MJLC COGNOS LOGISTIQUE COM => Logistique Commerciale MJLC COGNOS LOGISTIQUE SAV FOU => Logistique SAV Fournitures MJLC COGNOS LOGISTIQUE EXT => Logistique EXT MJLC COGNOS LOGISTIQUE SAV RHB => Logistique SAV Rhabillage Après avoir créé les groupes Cognos, il faut appliquer des filtres de contenu sur les vues métiers. Cette manipulation se fait dans Cognos Framework Manager. On y définit les données que chaque groupe peut voir en filtrant le Code Activité présent dans les vues. Ainsi le groupe «Logistique Commerciale», lors de l exécution d un rapport, ne pourra visualiser que les données de l activité 3 qui correspond à Commerciale. Ces filtres évitent de diffuser largement certaines informations «sensibles» aux services qui ne sont pas censés y avoir accès. 28
Figure 7 : Filtres sur l'activité pour la vue Article b. Publication des rapports Une fois les droits d accès définis, il faut publier les rapports et autoriser les utilisateurs à y accéder. Cette étape consiste à répertorier tous les rapports dans la GED (Gestion électronique de documents) et à les affecter aux utilisateurs. Pour cela, on dispose d un formulaire ou l on rentre les informations relatives au document : Un nom Une description Un support : sur quel logiciel est lancé l outil Un chemin pour l exécutable Une activité : Atelier, Commerciale, Stocks Un thème : Statistiques, Inventaire, Portefeuille Chaque document possède un numéro d outil. C est une tâche assez longue puisqu il faut rentrer chaque rapport séparément. 29
Pour affecter les outils aux utilisateurs, il faut remplir un fichier Excel composé de 3 colonnes : utilisateur, numéro d outil et date d affectation. On trouve une ligne par outil et par utilisateur comme ceci : Figure 8 : Fichier Excel des affectations pour la GED Ce fichier est chargé dans un petit programme qui ajoute les lignes du tableau dans le fichier de l AS400 qui contient les associations entre utilisateurs et outils. Une fois cette manipulation effectuée, les utilisateurs concernés peuvent avoir accès aux outils et les exécuter depuis leur menu GED : Figure 9 : Accès aux outils via le menu GED 30
3. Modification de l authentification de l intranet a. Étude de technologies Après une étude des technologies existantes (Annexe 3) permettant la modification du système d authentification de l intranet, j ai choisi de m orienter vers les APIs Java car plus faciles à mettre en oeuvre. En effet, ces APIs fournissent un ensemble de fonctionnalités qui permettent la communication avec LDAP (Lightweight Directory Access Protocol), le service d annuaire utilisé par l Active Directory. Il existe plusieurs API LDAP dont les principales sont : JNDI : API plutôt abstraite et lourde à mettre en place et à utiliser. Elle est présente dans l API de base de Java. À l utilisation, on rencontre des problèmes de terminologie (certains termes JDNI servent à désigner des objets ou actions différentes des mêmes termes dans LDAP). Apache Directory Client API : Remplaçant de JNDI, cette API est relativement facile à utiliser et plus simple que JNDI. UnboundID API : Solution la plus intéressante, qui ressemble à l API Apache mais encore plus simple, et à priori la plus performante. J ai donc décidé d utiliser UnboundID API. Cette API autorise la mise en place d une connexion sécurisée en SSL (Secure Sockets Layer) pour éviter la communication d informations en clair, ce que ne permet pas JNDI. b. Mise en place La mise en place de cette technologie consiste à modifier le code de la page gérant l authentification. Cette authentification était auparavant accomplie en comparant les informations saisies par l utilisateur aux informations présentes dans la base de données. Désormais l authentification se fait en interrogeant l annuaire LDAP qui permet de rechercher au sein de l Active Directory Windows. L Active Directory est organisé de façon hiérarchique et forme une arborescence d organisations, groupes et utilisateurs, qui reflète généralement le modèle organisationnel de l entreprise. Les branches de base sont nommées Domain Components (DC). Les branches plus profondes de l annuaire peuvent représenter des unités d organisation (organizational units OU), des personnes ou machines (Common Name CN ou user identifier UID). Exemple : 31
dc=fr dc=exemple / \ ou=machines ou=gens / \ cn=ordinateur cn=jean On peut alors former un chemin d accès appelé Distinguished Name (DN), fabriqué à partir de ces composants en partant du plus précis vers le plus général. Par exemple : cn=ordinateur,ou=machines,dc=exemple,dc=fr cn=jean,ou=gens,dc=exemple,dc=fr Un élément de l annuaire possède toute une panoplie d attributs comme par exemple : Common Name : nom de la personne de la forme «LECLERC Thomas (JLC-CH)» Mail : adresse email samaccountname : Login utilisé pour l authentification Windows de la forme «thomas.leclerc» postalcode : code postal title : position occupée par exemple «stagiaire» Le service LDAP permet l interrogation et la modification de l Active Directory. Pour accéder à un élément, il faut fournir un DN (Distinguished Name). Lors de la validation des identifiants saisis par l utilisateur, la page d accueil de l intranet (index.jsp) appelle une classe Servlet Java nommée frame.java, qui s occupe de l authentification et de l affichage de la page suivante. J ai donc modifié ce fichier en supprimant la partie du code concernée pour la remplacer par du code produit à l aide de l API UnboundID. 32
La vérification des identifiants et mots de passe se fait en effectuant une opération de Bind qui consiste à initier une session LDAP avec des identifiants, en utilisant une connexion précédemment créée. Si LDAP refuse cette session, cela signifie que le couple login / mot de passe est incorrect. Le problème est que l opération de Bind ne peut s effectuer qu avec le DN (Distinguished Name) et le mot de passe. Or le DN est formé à l aide du CN (Common Name), tandis que les utilisateurs utilisent le samaccountname comme login. Il faut donc au préalable récupérer le DN correspondant au samaccountname pour pouvoir effectuer le Bind et ainsi authentifier l utilisateur. On obtient alors l algorithme suivant : L une des contraintes du projet était de pouvoir conserver les comptes génériques qui sont stockés dans une table de l AS400. Ces comptes servent souvent à se connecter avec le nom d un service, et des droits limités. Pour respecter cette contrainte, j ai en fait conservé le code de la version précédente qui était utilisé pour l authentification en recherchant dans la table de l AS400. Dans l algorithme précédent, si le samaccountname n existe pas dans LDAP, alors on recherche le login fourni dans la base de données de l AS400 au lieu d afficher un message d erreur de login. 33
J ai modifié le code de l authentification en ne travaillant au départ que sur l intranet concernant les produits. Il existe en effet plusieurs intranets conçus pour des utilisations différentes, articulés autour d un portail permettant d accéder à ceux-ci. Je n ai donc modifié qu un site, sans le mettre en production, pour, dans un premier temps, présenter cette solution à l équipe et montrer le fonctionnement et l utilisation de ces APIs. J ai ensuite modifié le portail pour avoir une vue plus globale du fonctionnement de l intranet et des liens entre les différentes applications. Les opérations d authentification sur les différents sites intranet sont enregistrées dans plusieurs tables de l AS400. On y retrouve le login de l utilisateur, la localisation, la date et l heure de connexion ainsi que l application concernée. Le changement précédent implique de modifier ces tables en augmentant la taille du champ NOM (représentant le login) puisque les logins utilisés ne sont plus les mêmes qu avant et sont plus longs. Pour chaque application on trouve une table contenant les utilisateurs et leurs droits pour l application et une table contenant les opérations d identification sur cette application. 34
Bilan 1. Travail réalisé Au niveau du projet de migration des rapports, les objectifs principaux ont été menés à bien. En effet, tous les rapports ont été migrés et sont maintenant utilisables sous Cognos 10. En plus de la migration, certains rapports ont pu être améliorés pour mieux correspondre aux demandes. Le service SAV Fournitures peut désormais créer ses propres analyses, ce qui permet de produire des rapports plus pertinents tout en allégeant le travail du service informatique. En revanche je n ai pas eu le temps de nettoyer la base de données décisionnelle des données inutiles. Peut-être cela sera-t-il fait durant la suite de mon stage. En ce qui concerne l alimentation de la base de données décisionnelle par des logiciels d ETL, mon responsable de stage, William Bosdure n a pas encore pris la décision d employer ou non ces technologies. Pour la partie authentification de l intranet, j ai pu mettre en place un nouveau système qui permet de s identifier à l aide des comptes Windows et ce pour toutes les personnes de la manufacture ainsi que les personnes des filiales à travers le monde. Cette modification n est pas encore passée en production mais j espère pouvoir mener ce projet à son terme durant la suite de mon stage. La suite de mon stage, qui va durer jusqu au 31 aout, me permettra de suivre la mise en production de mon travail, suivre le déploiement des outils et terminer certaines tâches. 2. Bilan personnel Au niveau personnel, je dois dire que ce stage a été particulièrement intéressant, même s il n est pas terminé puisque l entreprise m a embauché pour 3 mois supplémentaires. J ai eu l occasion de travailler sur des outils et des technologies nouvelles pour moi comme l AS400, les bases de données DB2 ou encore les cubes de données. Contrairement à mon premier stage de DUT que j ai effectué dans une petite entreprise de création de sites web (5 personnes), j ai pu découvrir le fonctionnement d une entreprise de taille importante (près de 1300 collaborateurs) et de renommée internationale. Le travail réalisé par le service informatique est, comme j ai pu le constater, d une importance capitale pour le 35
bon fonctionnement et le développement d une telle entreprise. En effet toutes les données qui transitent sont gérées par informatique, et par conséquent il est nécessaire de fournir une infrastructure solide et des solutions logicielles de qualité. J ai pu mettre en application les connaissances acquises au cours de mon cursus notamment en bases de données, en programmation orientée objet et en langage Java. L une des facettes du stage qui m a le plus intéressé a été la relation client. J ai beaucoup apprécié d étudier les demandes des utilisateurs avec eux, de discuter des possibilités et de trouver les solutions les plus pertinentes pour arriver à un résultat qui satisfait le client. Ce dialogue permet aussi de mieux comprendre le fonctionnement des services et mieux cerner le but des demandes. J ai aussi eu l occasion d assister aux différentes réunions d équipe. Lors de ce stage, on m a demandé différentes études de technologie sur les ETL et les APIs Java pour LDAP, que j ai présentées et expliquées lors de réunions de suivi de projets. La réunion de clôture d Exercice m a fourni un aperçu des stratégies et des projets du service informatique, de la vision à long terme, ainsi que ce qui a été mis en place durant l année. J ai pu assister aussi aux points de situation, qui se déroulent toutes les semaines au sein de l équipe projets et développements, pour faire le point sur l ensemble des projets en cours, leur avancement ou leur stagnation, ainsi que les nouveaux projets. 3. Bilan général Ce stage de fin de Licence professionnelle a donc été une expérience professionnelle très enrichissante. En plus d avoir appris à utiliser de nouvelles technologies, j ai eu l occasion de travailler avec des clients ne possédant pas de connaissances techniques en informatique. J ai pu ainsi me rendre compte qu il fallait adopter un langage et un vocabulaire adapté, moins technique pour pouvoir être compris des utilisateurs et répondre aux demandes de façon pertinente. Cette expérience me conforte dans le choix de mon cursus. J ai pu avoir un aperçu du travail de développeur et du travail en équipe. Ce dernier aspect m attire particulièrement et permet de profiter des connaissances et de l expérience des autres membres de l équipe. La suite de ce stage va me permettre de réaliser d autres projets et de découvrir encore plus le travail de développeur. Je suis surtout enchanté de pouvoir continuer à travailler avec les mêmes personnes, une équipe compétente et dynamique et ainsi de pouvoir continuer cette expérience. 36
Lexique Active Directory : Nom du service d'annuaire de Microsoft. Cet annuaire recense toutes les personnes mais aussi les objets du réseau. Il permet à un utilisateur de retrouver et accéder à n importe quelle ressource identifiée par ce service. Active directory contient les informations des comptes utilisateurs et permet de mettre en place des stratégies de groupe pour réguler l accès aux ressources. API (Application Programming Interface) : Ensemble ou bibliothèque normalisée de classes, de fonctions et de constantes permettant d accéder aux services d une application, par l intermédiaire d un langage de programmation. AS400 : Ordinateur créé par IBM pour gérer les données et les applications de gestion des entreprises. A la manufacture, il s agit d un ordinateur AS400 du modèle iseries. Base de données décisionnelle : base de données utilisée pour collecter, ordonner, journaliser et stocker une partie ou l ensemble des données fonctionnelles d une entreprise, dans le but de fournir un socle pour l aide à la prise de décisions par le biais de statistiques et de rapports. Une BD décisionnelle sert aussi à «délester» les bases opérationnelles des requêtes pouvant nuire à leurs performances. Cube de données : Vue restreinte d une base de données décisionnelle permettant d extraire des mesures (compte, dénombre ou somme des valeurs, des personnes, des événements) en fonction d axes d analyses. ETL (Extract Transform and Load) : Technologie informatique permettant d'effectuer des synchronisations massives d'information d'une base de données vers une autre. Les ETLs permettent de récupérer des informations dans une base, les remanier puis les injecter dans une autre base. Informatique décisionnel (Business Intelligence): Exploitation des données de l entreprise dans le but de faciliter la prise de décision par la compréhension du fonctionnement actuel et l anticipation des actions. Java : Langage de programmation orienté objet maintenu par Oracle Corporation. Le principal objectif de Java est de fournir des logiciels facilement portables sur plusieurs systèmes et plateformes. LDAP (Lightweight Directory Access Protocol) : Protocole permettant l interrogation et la modification des services d annuaire comme l Active Directory Windows. Query 400 : Programme propriétaire d IBM pour AS400, utilisé pour extraire, arranger et analyser des données stockées sur l AS400. RPG (Report Program Generator) : Langage programmation pour AS400, développé par IBM. SSO (Single Sign-On) : méthode permettant à un utilisateur de ne procéder qu'à une seule authentification pour accéder à plusieurs applications informatiques (ou sites web sécurisés). 37
Bibliographie Produits Cognos et AS400 : Centre d aide IBM : http://www-01.ibm.com/support/knowledgecenter/ Guide d utilisation de Cognos Framework Manager : http://public.dhe.ibm.com/software/data/cognos/documentation/docs/fr/10.1.1/ug_best.pdf Guide d utilisation de Cognos Transformer : http://public.dhe.ibm.com/software/data/cognos/documentation/docs/fr/10.1.1/ug_cogtr.pdf Guide d utilisation de Report Studio : http://public.dhe.ibm.com/software/data/cognos/documentation/docs/fr/10.1.1/ug_cr_rptstd.pdf Commentcamarche.net, introduction à l AS400 : http://www.commentcamarche.net/contents/12-introduction-aux-systemes-as-400 Xdocs, commandes de l AS400 : http://www.xdocs400.com/spip.php?article47 Volubis AS400 : http://www.volubis.fr/news/liens/courshtm/as400/as400_introdb2.htm Site concernants les ETLs : Site de l ETL Talend : http://fr.talend.com/ Sites de l ETL Stambia : http://stambia.com http://stambia.org Le site developpez.com, ETLs : http://business-intelligence.developpez.com/tutoriels/etl-open-source/ Tutoriel Talend : http://www.talendforge.org/tutorials/ 38
APIs Java pour LDAP et solutions SSO : UnboundID API : https://www.unboundid.com Apache LDAP API : http://directory.apache.org/api/ API ldaptive : http://www.ldaptive.org/ Kerberos sur le site du MIT : http://web.mit.edu/kerberos/ JOSSO : http://www.josso.org 39
Annexes Annexe 1 : Fonctionnement de Cognos AS400 - DWJAEGERF Base de données décisionnelle Framework Manager Modèle relationnel Cognos Transformer Cube de données 40
Annexe 2 : Comparatif de logiciels d ETL (Extract Transform and Load) 41
Annexe 3 : étude de technologies SSO pour l intranet Solutions SSO Le but de ces solutions est de n avoir à s identifier qu une seule fois pour accéder aux applications. JOSSO : solution tout en un pour implémentation d un SSO pour accéder aux applications web ou services. JOSSO fonctionne sur le principe de sessions. Il existe 2 versions : JOSSO1 : préférable pour une configuration particulière avec des comptes spéciaux ou des développements spécifiques. JOSSO2 : Solution plus rapide à mettre en œuvre, préférable pour un contrôle standard et une implication moins importante du service informatique. Disponible en 2 éditions, Enterprise Edition : $6,700 / an, 2000 utilisateurs max. accès au support commerciale et des performances accrues. Community Edition : gratuit, pas de support commercial KERBEROS : protocole au fonctionnement différent. Utilise un système de clé secrète et de tickets pour l authentification fournis par un «Centre de distribution de clé» (KDC). Fonctionnement : (1) Le client demande une clé et un TGT (Ticket Granting Ticket) au service d authentification (2) Le service d authentification fournit ceux-ci au client (3) Le client fournit le TGT au TGS (Ticket Granting Service) (4) Le TGS envoi au client un autre ticket pour accéder au serveur (5) Le client envoi le ticket au serveur (6) Le serveur accepte la connexion et synchronise avec le client Ce système de tickets permet d éviter les risques d interception frauduleuse de mots de passe puisque ceux-ci ne sont pas transmis directement à chaque connexion à un service. 42
API Java Les tickets sont limités dans le temps ce qui renforce encore plus la sécurité. Kerberos est le protocole par défaut de l Active Directory de Windows et il est gratuit. Contrairement aux solutions précédentes, les API nous permettent d accéder aux services d authentification comme l Active Directory en contactant le service LDAP qui permet d exploiter ce dernier. Ce ne sont donc pas vraiment des solutions SSO puisque l on doit fournir des identifiant pour accéder aux applications. Les APIs permettent de gérer les comptes avec l Active Directory Toutes les API sont gratuites JNDI : API assez abstraite, plutôt lourde à mettre en place. Présente dans l API de base de Java. Problèmes de terminologie, certains termes de JNDI servent à désigner des objets différents des mêmes termes dans LDAP Ldaptive Netscape API Apache Directory Client API : remplaçant de JNDI et JLDAP, relativement facile à utiliser. UnboundID API : solution la plus intéressante, ressemble à l API Apache mais encore plus simple, et à priori la plus performante. 43
Exemples simples d utilisation des APIs avec récupération du mail d un utilisateur : JNDI : Properties env = new Properties(); env.put(context.initial_context_factory, "com.sun.jndi.ldap.ldapctxfactory"); env.put(context.provider_url, "ldap://server.example.com:389/"); env.put(context.security_principal, "uid=test.user,ou=people,dc=example,dc=com"); env.put(context.security_credentials, "password"); env.put("java.naming.ldap.version", "3"); LdapContext connection = new InitialLdapContext(env, null); SearchControls searchcontrols = new SearchControls(); searchcontrols.setsearchscope(searchcontrols.subtree_scope); searchcontrols.setreturningattributes(new String[] { "mail" }); String mail = null; NamingEnumeration<SearchResult> results = connection.search("dc=example,dc=com", "(uid=john.doe)", searchcontrols); while (results.hasmore()) { SearchResult result = results.next(); Attributes attributes = result.getattributes(); Attribute attribute = attributes.get("mail"); if (attribute!= null) { Object o = attribute.get(); if (o!= null) { mail = String.valueOf(o); } } } Apache LDAP Client API : LdapConnection connection = new LdapNetworkConnection( "localhost", 389 ); connection.bind( "ou=example, dc=com", "password" ); EntryCursor cursor = connection.search( "ou=system", "(objectclass=*)", SearchScope.ONELEVEL ); String mail = null ; while ( cursor.next() ) { Entry entry = cursor.getentry(); assertnotnull( entry ); mail = entry.getattributevalue( mail ) ; } cursor.close(); UnboundID API : LDAPConnection connection = new LDAPConnection("server.example.com", 389, "uid=test.user,ou=people,dc=example,dc=com", "password"); SearchResult searchresults = connection.search("dc=example,dc=com", SearchScope.SUB, "(uid=john.doe)", "mail"); String mail = null; if (searchresults.getentrycount() > 0) { SearchResultEntry entry = searchresults.getsearchentries().get(0); mail = entry.getattributevalue("mail"); } 44