Repenser le budget : la voie de l’informatique décisionnelle
Migration de rapports d'analyse décisionnelle et modification d'un ...
-
Upload
truongkhanh -
Category
Documents
-
view
220 -
download
1
Transcript of Migration de rapports d'analyse décisionnelle et modification d'un ...
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
1
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
2
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.
Remerciements
3
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
Sommaire
4
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
5
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.
Introduction
6
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 :
~37 ans / ancienneté : ~10 ans
Objectif :
Etre la référence dans l’Art horloger
Présentation de l’entreprise
Figure 1 : situation géographique
7
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.
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é).
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.
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
réalisé. Celui-ci détient le record du plus petit calibre mécanique au monde depuis 1929.
Edmond Jaeger
Antoine LeCoultre
Le Millionomètre
La pendule Atmos
8
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.
9
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.
10
Systèmes
d’information &
Organisation
MICHAUD
Frédéric
Projet et
Développement
Applications
BOSDURE
William
Systèmes et
Réseaux
BAS Eric
Administration
Systèmes
MEKKI
Mohamed
Opération IT
PONSOT
Nadine
Support &
Développement
DEBOST Claude
Web
Développement
GUITON Jérémie
Support &
Développement
GROS Mickael
Gestion Projet
ARPHANT Julien
Gestion
Projet
CLEMENT
Fabien
Administration
de la base de
données
COURTET
Frédéric
Apprentie
MULLER Justine
Administrateur
des systèmes
Gestion du
parc
Help Desk &
support
Administration
Budget /
secrétariat
Formation
Webmaster
Intranet
Fabrication
Fabrication /
Ventes
Distribution / SAV
BMDM SAP
GEMINI
Fabrication et
achats
Intranet + Web /
CRM
SAP GEMINI
Support &
Développement
VUILLAUME
Emilien
BI COGNOS
Fabrication &
Supply chain
MDM
Information
Responsable
Project
Support &
Développement
CARREZ Virginie
Gestion
Projet
KU
spécialiste
FONTEIN
Ernestine
Sécurité et Communication
PERRIER Cyril
Sécurité et
Sauvegardes
Gestion du
Réseau LAN /
WIFI / WAN
Gestion des
équipements
Smartphones /
Téléphones
Intérimaire
Support &
Développement
NAFA Madjid
Figure 1 : Organigramme du service informatique de Jaeger-LeCoultre
11
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.
Présentation du sujet
12
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é.
13
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.
14
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 …
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 logistique-
comptabilité 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.
Figure 2 : Exemple de rapport "Liste des clients par zone géographique" sous Impromptu
15
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.
16
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.
Cahier des charges
17
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.
18
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
19
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.
20
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
Réalisation
21
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.
22
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.
23
Il est possible de construire des vues à partir de plusieurs tables et ainsi regrouper des
informations dans une même entité :
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.
Figure 4 : Vue métier "Article" sur Cognos Framework Manager
24
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
25
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.
26
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
27
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
28
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.
29
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.
Figure 7 : Filtres sur l'activité pour la vue Article
30
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 :
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
Figure 8 : Fichier Excel des affectations pour la GED
31
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 :
32
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.
33
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.
34
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.
35
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
Bilan
36
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.
37
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).
Lexique
38
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/
Bibliographie
39
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
40
Annexe 1 : Fonctionnement de Cognos
Annexes
AS400 -
DWJAEGERF
Framework
Manager
Cognos
Transformer
Cube de
données
Modèle
relationnel
Base de
données
décisionnelle
41
Annexe 2 : Comparatif de logiciels d’ETL (Extract Transform and Load)
42
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.
43
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.
API Java
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.
44
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");
}