Migration de rapports d'analyse décisionnelle et modification d'un ...

45
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

Transcript of Migration de rapports d'analyse décisionnelle et modification d'un ...

Page 1: 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

Page 2: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 3: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 4: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 5: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 6: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 7: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 8: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 9: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 10: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 11: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 12: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 13: Migration de rapports d'analyse décisionnelle et modification d'un ...

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é.

Page 14: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 15: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 16: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 17: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 18: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 19: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 20: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 21: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 22: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 23: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 24: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 25: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 26: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 27: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 28: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 29: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 30: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 31: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 32: Migration de rapports d'analyse décisionnelle et modification d'un ...

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 :

Page 33: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 34: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 35: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 36: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 37: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 38: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 39: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 40: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 41: Migration de rapports d'analyse décisionnelle et modification d'un ...

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

Page 42: Migration de rapports d'analyse décisionnelle et modification d'un ...

41

Annexe 2 : Comparatif de logiciels d’ETL (Extract Transform and Load)

Page 43: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 44: Migration de rapports d'analyse décisionnelle et modification d'un ...

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.

Page 45: Migration de rapports d'analyse décisionnelle et modification d'un ...

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");

}