Вы находитесь на странице: 1из 54

2009/2010 LICENCE PRO-SIL : PROJET TUTORE

Groupe : Yahsine,Resnay, Kojo, Amadou, Alain



Tuteur : Moez Essaidi




Ad Hoc reporting


Page 1
SOMMAIRE
I) CAHIER DES CHARGES .......................................................................................................................2
Lobjectif du projet : ..................................................................................................................................... 2
Environnement du projet :........................................................................................................................... 2
Lquipe: ...................................................................................................................................................... 2
Les moyens mis en place :............................................................................................................................ 3
II) AD HOC REPORTING, DFINITIONS ...................................................................................................8
III) ETUDE DE LEXISTANT .................................................................................................................. 10
IV) ODBIS VS LES PRODUITS EXISTANTS ............................................................................................ 11
V) ETAT DE LART ................................................................................................................................ 12
VI) SPECIFICATIONS FONCTIONNELLES .............................................................................................. 18
VII) SPECIFICATIONS TECHNIQUES...................................................................................................... 28
VIII) ANALYSE ET CONCEPTION ............................................................................................................ 32
IX) DEVELOPPEMENT ........................................................................................................................ 42
X) SITE ET SUPPORT ............................................................................................................................ 48
XI) CONCLUSION ............................................................................................................................... 50



Ad Hoc reporting


Page 2
I) CAHIER DES CHARGES

L o b j e c t i f d u p r o j e t :
Ralisation de fonctionnalits dun module de adhoc reporting.
Ce type de logiciel doit permettre des utilisateurs non informaticiens dune entit de
paramtrer et raliser des rapports selon leurs critres. Le rapport affichera des donnes sous
une reprsentation qui peut tre un mlange de texte et de graphiques.

E n v i r o n n e me n t d u p r o j e t :
Utilisation doutils open source.
Architecture JEE.
Interfaces web pour la cration et la consultation des rapports, dashboard et sources de
donnes.

C e t r a v a i l s e s t d r o u l e e n p l u s i e u r s p h a s e s :
Etude de lexistant Odbis Beta1.
Etablissement de ltat de lart et tude des produits existants et de leurs diffrents
packages open source.
Spcifications fonctionnelles.
Spcifications techniques.
Etablissement du planning.
Etude et conception du module.

L q u i p e :
5 personnes : Yahsine, Resnay, Kojo, Amadou et Alain
Un responsable de projet est nomm afin dorganiser le travail et les relations avec le
tuteur.
Les connaissances en JEE sont nulles au dpart du projet.
Les connaissances en technique du web ne sont pas identiques et faibles de toute manire.
Ad Hoc reporting


Page 3
L e s mo y e n s mi s e n p l a c e :
Un groupe Google est cr afin de pouvoir disposer dune zone collaborative ou on peut
dune part lancer des discussions sur diffrents thmes et dautre part avoir une zone
commune pour partager des documents.
Notre tuteur mettra en cours de projet celui-ci sur SourceForge qui est une plateforme
dhbergement de projet open source. Les sources que nous produirons et ceux de la
version Beta1 seront disposition dans un dpt SVN.
Nous installons sur nos machines lenvironnement de dveloppement Eclipse en version
JEE.
Une version stand alone de la Beta1 est galement installe afin que nous puissions
voir comment fonctionnent les lments dj raliss.
Une base de donne PostgreSql et un serveur Web Tomcat doivent tre galement
installs pour que cela fonctionne.
En ce qui concerne la gestion du projet par elle-mme et afin de ne pas avoir installer
une application de plus, nous avons cr un compte sur PlanZone pour le groupe et nous
avons demand lextension de ce compte afin que le nombre maximum dutilisateurs
puisse permettre aux autres groupes den profiter. Il sagit dune gestion de projet en ligne
et nous pourrons ainsi essayer de mettre en pratique ce que nous verrons dans les
diffrents cours ce sujet.
Ce logiciel est accessible par une barre installe en plugin dans Firefox :


Ad Hoc reporting


Page 4
Exemple du Planning du projet Odbis :


Dtails des actions dune activit :


Ad Hoc reporting


Page 5
Exemple daffichage sur une activit :




Ad Hoc reporting


Page 6

L e t r a v a i l e n q u i p e , l a r p a r t i t i o n d e s t c h e s :
Notre premire runion avec notre tuteur a lieu le 23 Novembre 2009. Aprs avoir clarifi les besoins,
il est convenu deffectuer des recherches individuelles pour que chacun sapproprie le projet et
lexistant pour tre capable de revenir avec des questionnements.
a) Nous convenons de la date du 02/12/09 pour la remise sur le groupe Google dun document
individuel concernant ltude des fonctionnalits :

Fonctionnalits Membre de lquipe
Les donnes Martial
Administration Yashine
Dasboard Resnays
Rapports Alain
Requtes Amadou

b) En ce qui concerne ltat de lart, le travail de recherche et de rdaction est rparti de la mme
manire :
Produit tudier Membre de lquipe
Pentaho Martial
LogiXml Yashine
Pentaho Resnays
Birt Alain
Jasper Report Amadou

c) En fonction des comptences, les tches seront rparties comme suit :
Spcialit Membre de lquipe
Modlisation et Bdd Martial
IHM et Site Yashine
Code Java Resnays
Modlisation Alain
Support Amadou


Ad Hoc reporting


Page 7

d) Calendrier rcapitulatif des faits principaux durant le projet
Date Avancement
14/12/2009 Dcision dune runion systmatique le Jeudi
15/12/2009 Mise disposition des documents dcrivant les fonctionnalits
18/12/2009 Essai daffichage de rapport en .rptdesign trouv sur le net
22/12/2009 Inscriptions sur SourceForge
22/12/2009 Installation du plugin dEclipse pour Subversion
06/01/2010 Etude de lIHM de Intelliview
07/01/2010 Carte du site
08/01/2010 Apprentissage lutilisation de SVN
19/01/2010 Etude des modles objet des systmes de charting afin de dfinir le ntre.
Cela comprend, Excel, Google Chart, Trinidad.
21/12/2010 Travail sur le modle CWM
29/01/2010 Les premiers lments de code produits partir de la modlisation sont
dlivrs.
31/01/2010 Les palettes de couleur sont mises sur SVN
03/02/2010 Site du projet en ligne pour test
08/02/2010 Phase de rtro-conception avec BoUml sur Birt Core Module
14/02/2010 Le code de la premire itration de la DataTable est dpos
15/02/2010 Mise sur Svn du code du chart engine et celui permettant de tester.
20/02/2010 Simplification du modle DataTable pour la premire itration
01/03/2010 Prparation de la soutenance, expos et document daccompagnement





Ad Hoc reporting


Page 8

II) AD HOC REPORTING, DFINITIONS

A d h o c :

Ad hoc est une expression latine signifiant cette fin . Elle est gnralement utilise pour indiquer
quune solution est conue pour traiter un problme spcifique, non-gnralisable et quelle nest pas
adapte d'autres buts. On rencontre souvent ce terme lorsque lon parle dorganismes, comits, ou de
commissions crs au niveau national ou international pour une tche spcifique. Dans d'autres
domaines, cela peut concerner par exemple un protocole de rseau sur mesure et avoir parfois une co-
notation indiquant une solution improvise utilisant des moyens de fortune (cela ne concerne pas notre
domaine dtude).

R e p o r t i n g :
Le reporting est utilis pour prsenter priodiquement des rapports sur les activits et rsultats d'une
entit, ceci afin den informer les responsables, gestionnaires ou toute personne (interne ou externe)
concerne par ces activits.
Ces rapports vont rpondre des interrogations types : Que se passe-t-il ? , Que va-t-il se
passer ? , ou Pourquoi cela sest-il pass ? . Les informations utilises afin de construire ces rapports
sont extraites dentrepts de donnes qui peuvent tre multiples et locaux ou dports.
La technique inclut les moyens mis en uvre pour offrir lutilisateur une prsentation facilement
lisible ou imprimable.

A d h o c r e p o r t i n g :

Beaucoup dapplications logicielles sappuient sur une base de donnes accessible par un ensemble
limit de requtes et de rapports. Typiquement, ces lments sont prprogramms et optimiss.
A loppos, le ad hoc reporting permet aux utilisateurs de crer eux-mmes des requtes par
lutilisation dinterface graphique et sans avoir besoin de passer par lutilisation du langage SQL.
Comme de tels systmes ont tendance dgrader svrement les performances du systme, on les utilise
plutt de paire avec un data warehouse.
Comme dautres outils tels le data warehousing et le data mining, le ad hoc reporting est une branche
de la business intelligence.
Ad Hoc reporting


Page 9
D f i n i t i o n i s s u e s d e Wi k i p e d i a :

Business Intelligence : Linformatique dcisionnelle (en anglais : DSS pour Decision Support System ou encore
BI pour Business Intelligence) dsigne les moyens, les outils et les mthodes qui permettent de collecter,
consolider, modliser et restituer les donnes, matrielles ou immatrielles, d'une entreprise en vue d'offrir une
aide la dcision et de permettre aux responsables de la stratgie d'entreprise davoir une vue densemble de
lactivit traite.
Ce type dapplication utilise en rgle gnrale un entrept de donnes (ou datawarehouse en anglais) pour
stocker des donnes transverses provenant de plusieurs sources htrognes et fait appel des traitements par
lots pour la collecte de ces informations.


Data warehouse : Le terme entrept de donnes (data warehouse) dsigne une base de donnes utilise pour
collecter et stocker de manire dfinitive des informations volatiles provenant d'autres bases de donnes. Chaque
information collecte se voit affecter une date, ou un numro de version pour viter de recouvrir une information
dj prsente dans la base de donnes et permettre de suivre l'volution de cette information au cours du temps.
Parfois les informations des diffrentes bases de donnes d'une entreprise sont collectes dans un seul entrept
de donnes, ou alors il existe diffrents entrepts de donnes en fonction du sujet ou du mtier en rapport avec
chaque information (datamart).Les informations collectes serviront faire des statistiques, des recherches et des
rapports. Les entrepts de donnes sont utiliss notamment en informatique dcisionnelle.




Ad Hoc reporting


Page 10
III) ETUDE DE LEXISTANT

O d b i s B e t a 1 :

Ce module utilise diffrentes technologies et chacun va essayer pendant les deux premires semaines de
comprendre ce quil peut.
Cela comprend ltude de la structure du projet dans Eclipse aussi bien que le fonctionnement des
diffrents lments et du Serveur Tomcat.
Notre tuteur nous a fourni une version standalone qui est une archive .war directement installable.
Ltude de lexistant ce niveau consiste voir comment est implmente une application web de ce
type au niveau du serveur et le rle des diffrents fichiers.
Dun autre cot le fonctionnement de cette maquette nous a permis de nous forger une ide de base du
besoin client et des fonctionnalits attendues. Cette tape tait donc ncessaire pour pouvoir aborder les
spcifications.

Ad Hoc reporting


Page 11
IV) ODBIS VS LES PRODUITS EXISTANTS

ODBIS se veut tre diffrents des autres produits de business intelligence que nous avons pu tudier et
ceci sur les points suivants :
Software As Service intgrant lensemble des fonctionnalits ncessaires aux utilisateurs partir
dune mme application Web sans tre forc dutiliser diffrents modules.
Utilisation dApi standards.
Intgration du mta modle CWM permettant lchange de mtadonnes avec nimporte quelle
autre application ou dpt de donnes dun environnement distribu de WareHousing.
Architecture multicouche bas sur Spring qui apporte dans le projet toutes les fonctionnalits au
niveau de la scurit.
Architecture SaaS dOdBis


Ad Hoc reporting


Page 12
V) ETAT DE LART
Q U E L Q U E S P R O D U I T S E X I S T A N T S
PENTAHO:
La suite BI de PENTAHO est un produit open source qui fournit une large gamme de solutions :
reporting, analyse de donnes, tableaux de bord et intgration de donnes (ETL).
FONCTIONALITES IMPLEMENTEES:
REPORTING :
Fournit des tats de synthse dans des formats populaires tels que le pdf, XLS, HTML et
texte. Le reporting de Pentaho est bas sur le projet JFreeReport.
ANALYSE :
Fournit des possibilits tendues d'analyse qui inclut des vues de table pivot bases sur
JPivot (JPivot est un client OLAP disposant d'une interface Web), des affichages graphiques
avancs (en utilisant SVG ou Flash), des widgets de tableau de bord, le data mining, un
portail et l'intgration de workflow. En plus, les services de tableurs de Pentaho permettent
lutilisateur daller fouiller et sortir des charts en utilisant Excel.
DASHBOARDS :
Tous les composants, par exemple reporting ou analyse, peuvent contribuer au contenu des
tableaux de bord de Pentaho. Ce service fournit des composants daffichage rutilisables
(widgets) comme des cadrans(dial), indicateurs (gauge) ou des graphiques(charts) qui
peuvent tre inclus dans des applications JSPs, ou dans les portails conformes la norme
JEE JSR-168.
DATA MINING :
Incorpore Weka, qui est une collection d'algorithmes dapprentissage machine ddis au
data mining. Ces algorithmes sont combins avec des technologies OLAP pour permettre
l'analyse intelligente de donnes. Les outils de data mining peuvent, en analysant des
donnes historiques, crer des modles prdictifs et distribuer cette information en utilisant
les services de reporting et d'analyse de Pentaho.

Ad Hoc reporting


Page 13
INTEGRATION DES DONNEES :
Elle est ralise par un outil d'ETL appel Kettle, acquis par Pentaho. L'outil fournit
l'interface utilisateur graphique pour la dfinition de la tche et une grande flexibilit pour le
traitement des donnes.
JASPERREPORTS:
Jasper Reports est une librairie open source qui permet de gnrer des rapports partir de sources de
donnes.
Pour utiliser les rapports il faut dabord crer un modle (template) de reprsentation de ces donnes
qui une fois compil et rempli avec des donnes fournira une sortie de type variable :
impression
fichier PDF
fichier HTML
fichier XLS
fichier CSV
fichier XML
La source de donnes est indique dans le fichier XML de description.
Cette librairie ninclut pas dinterface graphique utilisateur qui faciliterait la conception, il faut donc soit
gnrer le modle directement par programme partir de lAPI, soit utiliser un diteur, ou bien utiliser
un outil GUI de style I REPORT. Cette option est illustre par la figure ci-dessous :


Ad Hoc reporting


Page 14
BIRT:
BIRT (Business Intelligence and Reporting Tools) est un projet open source de la fondation Eclipse qui
permet de raliser des rapports dans des formats multiples dont HTML et PDF.
a) BIRT utilise pour effectuer le rendu des rapports deux types de fichiers :
1. un fichier de donnes XML.
2. un modle (template) reprsentant la forme du rapport au format rptdesign (propritaire
BIRT).


b) Au niveau du design, BIRT peut tre utilis de deux faons :

Sous Eclipse via un plugin permettant la conception des tats et de gnrer le rapport.
En runtime utilisant du code java install sur un serveur JEE qui utilise lApi Design Engine. Cette
dernire mthode ne permet que de lancer la gnration du rapport.



c) Pour laffichage, on peut utiliser lutilitaire Birt Viewer qui est un servlet installer dans Tomcat.
Ad Hoc reporting


Page 15


Dtails des API de BIRT

Diagramme des composants les plus importants de BIRT

Ad Hoc reporting


Page 16
B i b l i o t h q u e s o p e n s o u r c e d e C h a r t i n g
JFreeChart
JFreeChart est une librairie open source en Java permettant de gnrer des graphiques tels que :
Les camemberts (2D et 3D)
Les histogrammes (normal et empil, avec effet 3D)
Les graphiques de types courbes ou nuages de points
Les sries chronologiques ou style candle.
Les graphiques combins
Les diagrammes de Pareto
Les digrammes de Gantt
ICharts
JCharts est un utilitaire 100% Java produisant divers types de graphiques. Il a t conu et
ralis de A Z par des volontaires, pour afficher des graphiques par le biais de Servlets, de
pages JSP et d'applications Swing.
CeWolf
CEWOLF peut tre utilis dans les applications web Servlet/JSP, pour incorporer des
graphiques complexes de toutes sortes (ligne, camembert, histogramme, chart, tracs, etc.).
La Page JSP qui contient le graphique n'est encombr par aucun code Java. Toute la
configuration est dcrite par des balises XML.
JccKit
JCCKit (pour Java Chart Constuction Kit) est une petite librairie Java (< 100Ko) trs flexible
permettant la cration de graphiques et tracs scientifiques.
JChart2d
Il s'agit d'un gadget swing (JComponent), utilis pour rendre de manire prcise, l'affichage
dynamique de tupples en strip-chart. Il a t conu pour les travaux d'ingnierie o la
prcision est plus importante que l'esthtique du rendu. Les points forts sont la configuration
trs minimaliste, les chelles et lgendes automatiques, le processus d'excution est scuris.
LApi est bien documente et claire.
Ad Hoc reporting


Page 17
DataVision
DataVision est un outil de reporting Open Source similaire Crystal Reports. Les tats
peuvent tre conus dans un diteur graphique par glisser-dposer de composants. Les tats
sont excuts, affichs et imprims depuis l'application, ou exports en HTML, XML, PDF,
LaTex2e, DocBook, ou en fichiers textes dlimits par tabulation ou virgule. Les fichiers
exports en LaTex2e et DocBook peuvent ensuite tre utiliss pour produire des sorties en
PDF, texte, HTML, PostScript et plus.
ART
ART est un outil web portable, trs lger, de requte de reporting. Trs facile personnaliser,
il produit des graphiques et exporte ses sorties dans divers formats par le biais de plugins.
JGraphT
JGraphT est une librairie Java open source de production de graphiques. Il fournit des objets
issus de la thorie des graphes.
JGraphT supporte divers types de graphiques.
La visualisation des graphiques utilise la librairie Jgraph.

QN Plot
QN PLOT fournit des composants Swing permettant de crer des graphiques. Les
graphiques permettent le rendu d'un grand jeu de donnes en temps rel.
Les coordonnes sont de type BigDecimal, permettant une prcision variable
Les performances sont leves
Toutes les classes sont thread-safe
La mise lchelle des graphes seffectue automatiquement.




Ad Hoc reporting


Page 18
VI) SPECIFICATIONS FONCTIONNELLES


Le module concevoir doit permettre aux utilisateurs de travailler en ligne la ralisation de rapports
personnaliss sans utiliser doutils spcifiques sur le poste client.
Lapplication doit pouvoir allier la simplicit dtablir des rapports la puissance de crer des rendus
qui peuvent tout de mme tre complexes.
Il doit sappuyer sur des standards open source et correspondre larchitecture dfinie par la norme
J EE. Il sagit entre autre dun ensemble de standards pour le dveloppement darchitectures multi-tiers.
Cest plus un ensemble de spcifications quun produit. La communaut se repose sur les concepteurs
pour adhrer ces spcifications. Toute implmentation de cette spcification doit donc contenir un
ensemble dextensions du framework standard de base.




Elaborer un module de Ad Hoc Reporting
Editer les
Requtes
Editer des
Rapports
Editer des
DashBoards
Administrer le
module
Editer les
Sources de
Donnes
Ad Hoc reporting


Page 19
C A H I E R D E S C H A R G E S F O N C T I O N N E L
FONCTIONALITES DE LEDITEUR DE RAPPORTS

But :

Le ad hoc reporting permettant aux utilisateurs de crer eux-mmes des requtes par lutilisation
dinterface graphique, ceux-ci doivent avoir la possibilit de prsenter les donnes extraites galement
de manire non standard.
Lutilisateur doit pouvoir crer, visualiser et modifier un rapport. Celui-ci peut tre construit partir de
diffrents composants (widgets) communiquant de linformation pertinente lutilisateur consommateur
du rapport ou de rapports dj existants qui sont alors inclus.
Il est intressant de pouvoir enregistrer un rapport comme un modle afin de pouvoir tre rutilis
comme base de cration.

Lditeur de rapport doit mettre disposition dautres outils de la suite BI, des informations sur la
reprsentation des donnes sous un format standard. Le XML semble tout fait conseill. Deux formats
de ce type sont majoritairement utiliss : rptdesign de BI RT et jrxml de J asperReport.



Elaborer un
module de Ad
Hoc Reporting
Editer les
Requtes
Editer des
Rapports
Editer des
DashBoards
Administrer
le module
Editer les
Sources de
Donnes
Ad Hoc reporting


Page 20
ORGANIGRAMME FONCTIONNEL

1.1 Slectionner une
source de donnes

2.1 Visualiser dans
lditeur

3.1 Inclure un rapport
dans un rapport

4.1 Exporter un
rapport dans un format
standard
5.1 Synchroniser la
gnration dun
rapport avec la
source de donnes
1.2 Slectionner un type
de rapport existant
2.2 Visualiser dans
les conditions de
lutilisateur
3.2 Inclure le contenu
dun fichier extrieur
4.2 Importer un
rapport.
5.2 Prvoir la
publication dun
rapport
1.3 Slectionner les
lments qui composent
le rapport
3.3 Modifier le contenu.
1.4 Tester le rapport
1.5 Enregistrer comme
modle


CARACTERISATION DES FONCTIONS
Ref Fonctions Critres Flexibilit
Construire un rapport
1.1 Slectionner une source de donnes Liste des sources de donnes
impratif
1.2 Slectionner un type de rapport pr-existant. Liste des formats disponibles
Liste des formats dj dfinis
Ngociable
1.3 Slectionner les lments qui composent le
rapport
Liste des Widgets disponibles
impratif
1.4 Tester le rapport Ecran
Bouton de dclenchement
Format de visualisation
impratif
1.5 Enregistrer comme modle Choix du groupe de modle
Choix du nom
ngociable
Visualiser un rapport
2.1 Visualiser dans lditeur Ecran
Bouton de dclenchement
impratif
2.2 Visualiser dans les conditions de lutilisateur Affichage direct dans un navigateur
ngociable
Modifier un rapport
Editer des
rapports

Construire

Visualiser

Modifier

Echanger

Plannifier
Ad Hoc reporting


Page 21
3.1 Inclure un rapport dans un rapport Format du rapport
Chemin daccs au rapport
Positionnement du rapport
ngociable
3.2 Inclure le contenu dun fichier extrieur Chemin daccs au fichier
Positionnement du contenu
ngociable
3.3 Modifier le contenu. Elments concerns
Nouveau contenu
Nouvelle prsentation
impratif
Echanger Des rapports
4.1 Exporter un rapport dans un format standard Choix du format
Chemin du document de sortie
Trs ngociable
4.2 Importer un rapport. Chemin du document dentre
Choix du format
Trs ngociable


Planifier un rapport (plutt du domaine de ladministration)
5.1 Synchroniser la gnration dun rapport avec la
source de donnes
Choix du rapport
Choix du type de synchronisation

Trs ngociable
5.2 Prvoir la publication dun rapport Choix du rapport
Choix du type de publication
Choix du type de date
Choix de la priodicit

Trs ngociable






Ad Hoc reporting


Page 22
FONCTIONALITES DE LEDITEUR DE Requtes

But :

Le ad hoc reporting permettant aux utilisateurs de crer eux-mmes des requtes par lutilisation
dinterface graphique, ceux-ci doivent avoir la possibilit dutiliser soit le langage SQL, soit de
construire la requte de manire interactive en slectionnant les attributs intervenants, ceux afficher,
les filtres, etc

ORGANIGRAMME FONCTIONNEL


1.1 Slection des
champs

2.1 Saisir les
paramtres
3.1 Nommer la
requte

4.1 Slectionner la requte
modifier
5.1 Choisir le format
1.2 Gestion des
conditions
2.2 Lancer la requte 3.2 4.2 Editer comme en 5.2 Slectionner le
chemin
1.3 Gestion des
classements
2.3 Visualiser les
donnes extraites
3.3

CARACTERISATION DES FONCTIONS
Ref Fonctions Critres Flexibilit
Elaborer une requte
1.1 Slectionner les objets (tables/vues) Listes des objets (tables/vues) de la source Impratif
Elaborer un
module de Ad
Hoc Reporting
Editer les
Requtes
Editer des
Rapports
Editer des
DashBoards
Administrer
le module
Editer les
Sources de
Donnes
Editer des
requtes

Elaborer

Tester

Enregistrer

Modifier

Exporter
Ad Hoc reporting


Page 23
concerns
1.2 Slectionner les champs Liste des champs de chaque objet Impratif
1.3 Indiquer les critres de slection Filtre sur les valeurs des champs ou sur des
fonctions
impratif
1.4 Indiquer un ordre de tri Options de tri sur un champ de la requte Impratif
Tester une requte
2.1 Saisir les paramtres Choix des valeurs Impratif
2.2 Lancer la requte Bouton/lien dexcution Impratif
2.3 Visualiser les donnes extraites Tableau dun chantillon des n ( dfinir)
premiers enregistrements.
Impratif
Enregistrer une requte
3.1 Nommer la requte Choix du nom (par rapport ceux qui existent
dj).
Bouton/Lien denregistrement
Impratif
Modifier une requte existante
4.1 Slectionner la requte modifier Liste des requtes sauvegardes Impratif
4.2 Editer la requte comme au n1 Impratif
Exporter une requte
5.1 Choisir le format Liste des formats dexports Ngociable
5.2 Slectionner le chemin Chemin daccs aux rpertoires
Bouton/Lien dexport
Ngociable



Ad Hoc reporting


Page 24
FONCTIONALITES DE LEDITEUR DE DONNEES

But :

Dfinir, lorigine des donnes exploites par le rapport et la faon de se connecter au service qui les
procure.
Les sources de donnes peuvent tre des bases de donnes, des fichiers xml, des fichiers csv etc.

ORGANIGRAMME FONCTIONNEL


1.1 Slectionner le type de la
source
2.1 Slectionner la connexion
dupliquer
3.1 Slectionner la connexion 4.1 Slectionner la
connexion
1.2 Indiquer les paramtres
de connexion
2.2 Cloner la connexion 3.2 Modifier comme en 1 4.2 Supprimer
1.3 Tester la connexion 2.3 Modifier comme en 1 3.3
1.4 Sauvegarder la connexion
1.5

Elaborer un
module de Ad
Hoc Reporting
Editer les
Requtes
Editer des
Rapports
Editer des
DashBoards
Administrer
le module
Editer les
Sources de
Donnes
Editer des
donnes

Crer unesource

Dupliquer source

Modifier source

Supprimer une source
Ad Hoc reporting


Page 25
CARACTERISATION DES FONCTIONS

Ref Fonctions Critres Flexibilit
Crer une source de donnes
1.1 Slectionner le type de source Liste de types de sources Impratif
1.2 Indiquer les paramtres de connexion Choix des valeurs
Contextuel selon le type choisi
Impratif
1.3 Tester la connexion Bouton/Lien Impratif
1.4 Sauvegarder la connexion Bouton/Lien Impratif
1.5
Crer une source de donnes selon un modle (create as)
2.1 Slectionner la source existante Liste des sources de donnes Impratif
2.2 Dupliquer la source slectionne Bouton/Lien Impratif
2.3 Modifier la source comme en 1. Impratif
Modifier une source de donnes
3.1 Slectionner la source Liste des sources existantes Impratif
3.2 Modifier la source comme en 1 Impratif
3.3
Supprimer une source de donnes
4.1 Slectionner la source Liste des sources existantes Impratif
4.2 Supprimer la source Bouton/Lien Impratif



Ad Hoc reporting


Page 26
FONCTIONALITES DE LEDITEUR DE DASHBOARDS

But :
Les tableaux de bord sinscrivent dans une approche de pilotage.
Cela ce traduit par la surveillance de l'activit, dans sa capacit remplir ses objectifs stratgiques. Les
tableaux de bords sont des formats agrgs de prsentation de contenu. Ils mettent en scne les
indicateurs cls et les objectifs stratgiques en les confrontant. Trs visuel, le tableau de bord permet de
savoir rapidement si l'entreprise est en avance ou en retard sur son plan stratgique
Les tableaux de bord permettent d'avoir accs des donnes totalement agrges en prsentant des
tendances, des carts par rapport aux objectifs fixs. Suite la remonte de ces indicateurs, une analyse
plus fine pourra tre labore par des oprationnels plus impliqus localement.
Un mot cl rencontr dans cette forme de reporting est KPI : Key Performance Indicators.
Comme dans les autres sous-modules, les utilisateurs doivent pouvoir dterminer eux-mmes
lagencement des composants graphiques servant visualiser les indicateurs.
Ils auront au pralable pu choisir ces indicateurs en indiquant les champs, critres et paramtres qui
serviront produire les donnes qui seront affiches.


Elaborer un
module de Ad
Hoc Reporting
Editer les
Requtes
Editer des
Rapports
Editer des
DashBoards
Administrer
le module
Editer les
Sources de
Donnes
Ad Hoc reporting


Page 27
ORGANIGRAMME FONCTIONNEL

1.1 Identification 2.1 Liste des charts
disponibles
3.1 Prsentation par
dfaut

4.1 Liste des types 5.1 Indiquer la
priodicit
1.2 Champ de la
mesure
2.2 Liste des styles 3.2 Dplacement des
indicateurs
4.2 5.2
1.3 Critres 2.3 Liste des palettes 3.3
1.4 Paramtres

CARACTERISATION DES FONCTIONS
Ref Fonctions Critres Flexibilit
Choix des indicateurs
1.1 Identification Choix des valeurs Impratif
1.2 Champ de la mesure Liste des champs Impratif
1.3 Critres Choix des valeurs Impratif
1.4 Paramtres Choix des valeurs Impratif
1.5
Choix de laffichage
2.1 Liste des charts disponibles Liste de choix Impratif
2.2 Liste des styles Liste de choix Impratif
2.3 Liste des palettes Liste de choix Impratif

Positionnement des indicateurs
3.1 Prsentation par dfaut Liste de choix Impratif
3.2 Dplacement des indicateurs Choix de valeurs Impratif
3.3
Choix du type de rendu
4.1 Liste des types Liste de choix Impratif
4.2

Choix de la priodicit
5.1 Indiquer la priodicit Liste de choix Impratif
5.2

Editeur de
dashboards

Choix des
indicateurs

Choix type
affichage

Positionnement

Choix type de
Rendu

Choix priodicit
Ad Hoc reporting


Page 28
VII) SPECIFICATIONS TECHNIQUES

E n v i r o n n e me n t :

1. La plate-forme de dveloppement est Microsoft Windows XP ou Linux.
2. Les outils utiliss sont principalement : Eclipse, Subversion, StarUml, BoUml
3. En ce qui concerne les bibliothques graphiques ddies : jFreeChart
4. Le dploiement de lapplication a t test sur Tomcat 6.0.20 avec PostgreSql 8.4





Ad Hoc reporting


Page 29
A r c h i t e c t u r e J E E




Dans notre cas nous sommes uniquement en prsence dun serveur web, il ny a aucun serveur
dapplication.

Ad Hoc reporting


Page 30

EIS : Entreprise Information system
La partie IHM de la couche prsentation va tre prise en charge par des pages HTML ou des JSP
(compiles au niveau du serveur Web).
La partie contrleur tant assure par des Servlets
Servlet, dfinition :
Une servlet est un composant Web java gr par un container et qui gnre du contenu dynamique.
Comme d'autre technologies Java bases sur les composants, les servlets sont des classes indpendantes
de la plateforme et sont compiles en bytecodequi peut tre charg et excut dynamiquement sur un
serveur web. Les containers, quelquefois appels moteurs de servlet, agissent comme des extensions du
serveur web. Les servlets interagissent avec les clients Web par l'intermdiaire des requtes/rponses
gres par le container de servlets.
Le traitement dun formulaire par une servlet suit le schma suivant :
1. Rcupre ou demande les donnes
2. Enregistre ou transmet les donnes
3. Rpond la requte

La partie container du serveur web va grer le dcodage des types MI ME, le cycle de vie des servlets et
peut galement grer les aspects scurit.
Ad Hoc reporting


Page 31

A r c h i t e c t u r e g n r a l e d u P r o j e t O D B I S





Ad Hoc reporting


Page 32
VIII) ANALYSE ET CONCEPTION

Dans cette partie du document, nous allons reprendre le dcoupage en thme tabli lors de la description
des fonctionnalits pour laborer les dtails qui permettront, en passant par ltablissement de
diagrammes de classes, de passer la phase de codage.
Ltude des cas dutilisation nest que partielle et le primtre dtude dtaille est restreint ldition
de rapport en se concentrant sur ce qui concerne la gnration des graphiques (Charts) et des tableaux
(DataTable).

L e s c a s d u t i l i s a t i o n :
UC > Arri ve sur le site

Ad Hoc reporting


Page 33
UC > CHOIX PAR LUTILISATEUR DE LEDITION DUN RAPPORT


UC > EDITION RAPPORT > MAQUETTE F 1.1 ET 1.3 > SELECTION SOURCE DE DONNEES

Ad Hoc reporting


Page 34
UC> EDITION RAPPORT > MAQUETTE F 1.1 ET 1.3 > SELECTION DUN COMPO> CHART



UC > EDITION RAPPORT > MAQUETTE F 1.1 ET 1.3 > SELECTION DUN COMPO.> DATATABLE




Slection dun DataTable
Slection des donnes dans la
DataSource
Choix du Style de rendu
Ad Hoc reporting


Page 35
UC > EDITION RAPPORT > DIAGRAMME DE SEQUENCE


Ad Hoc reporting


Page 36
UC > CHOIX PAR LUTILISATEUR DE LEDITION DES REQUETES

USE CASES > EDITION DUNE REQUTET > MAQUETTE F 1.3


Ad Hoc reporting


Page 37
C o n c e p t i o n , d i a g r a mme s d e c l a s s e s :

BaseEntity : afin qu'une classe POJO puisse tre persistante, elle doit tre dclare en utilisant
l'annotation @Entity et possder un attribut Id. Le rle de cette classe abstraite est d'apporter aux classes
concrtes cette caractristique (champ priv et accesseurs). C'est un peu comme Object pour les classes
Java.
NameEntity : elle apporte un nom et une description.
DataSource (javax.sql Interface DataSource): interface reprsentant une "source de donnes". Cette
"source de donnes" est en fait une simple fabrique de connexions vers la source de donnes physique.
Son utilisation permet de sadapter des changements comme par exemple le dplacement dune base
dun serveur vers un autre.
Charts et Dataset : afin de crer un graphique en utilisant JFreeChart, on doit utiliser un Dataset qui
possde une rfrence sur une DataSourcepour aller chercher les donnes. Le DataSet est ensuite utilis
afin de crer un J FreeChart laide dune ChartFactory
Fig : Diagramme de classe des packages org.odbis.domain et
org.odbis.domain.metadata
Ad Hoc reporting


Page 38




Fig : Diagramme des classes du package org.odbis.domain.reporting

Les objets de type Chart permettent dincorporer dans un rapport un graphique de type variable
(camembert, courbes, histogramme etc..).
Les objets de type DataTablepermettent de reprsenter des donnes sous formes tabulaires.

Ad Hoc reporting


Page 39

Fig : Diagramme des classes du package org.odbis.services

Ad Hoc reporting


Page 40
D I A G R A MME D E D E P L O I E ME N T






Ad Hoc reporting


Page 41
Mo d l e d e s d o n n e s d e l a b a s e P o s t G r e S q l









Ad Hoc reporting


Page 42
IX) DEVELOPPEMENT
S t r u c t u r e d u n p r o j e t A p p l i c a t i o n We b
Une application web base sur les technologies Java doit se prsenter au niveau du serveur sous une
forme hirarchique standardise:
Cette hirarchie doit tre implante au niveau du rpertoire contenant les applications de notre serveur
dapplication Tomcat, sur mon ordinateur par exemple :


Rpertoire Contenu
/wwwAlain
Rpertoire racine de notre application, cest ici que seront stockes
les pages (X)HTML et JSP.
/wwwAlain/images
On rangera dans le rpertoire images toutes les images auxquelles
on fera rfrence dans nos pages
/ wwwAlain /WEB-INF
Ce repertoire contient toutes les resources qui ne sont pas la
racine. Cest ici entre autres que lon va trouver notre descripteur de
deployment. Il faut noter quaucun fichier situ ce niveau nest
accessible pour tre rendu cot client, Tomcat ne le rend pas visible.
/ wwwAlain /WEB-INF/classes
Cest le repertoire qui contient les servlets et les classes utilitaires.
Si nos classes sont organises en packages la structure interne de
WEB-INF/classes le refltera par des sous rpertoires.
/ wwwAlain /WEB-INF/lib
Ce rpertoire contient les fichiers Java Archive dont dpend notre
application. Par exemple, cest lendroit o on placer un JAR
Ad Hoc reporting


Page 43
contenant un driver JDBC. En rgle gnral on y trouvera les
fichiers situs dans le rpertoire src/lib de nos projets sous Eclipse.


Un serveur dapplication peut hberger plusieurs applications, chaque application expose son contenu
grce son descripteur de dploiement.
Ce contenu apparat dans lexplorateur de projet qui, en fonction de la perspective utilise (JavaEE dans
notre cas), affiche les diffrentes composantes dcrites dans le fichier web.xml







Perspective Java
Perspective JEE
Ad Hoc reporting


Page 44
S t r u c t u r e d u p r o j e t Od b i s d a n s E c l i p s e













Ad Hoc reporting


Page 45
Dtails du fichier descripteur de dploiement web.xml, seuls on t conservs les lments les plus
significatifs pour nous.



On peut voir que par exemple toute les requtes concernant des pages *.xhtml seront prises en charge
par le servlet identifi par Faces Servlet qui fait rfrence la classe javax.faces .webapp.FacesServlet.
Au niveau du context, on peut voir galement que lapplication fera appel contextConfigLocation qui
reprsente la configuration dcrite dans le fichier xml situ /WEB-I NF/config/web-application-
config.xml.

Ad Hoc reporting


Page 46
C o d a g e d e s C h a r t s e t D a t a T a b l e
Les Charts et DataTable
Ils peuvent tre rendu laide de plusieurs palettes de couleurs qui sont dfinies par le type
ChartColor.
public class ChartColor extends Color {
public final static Color copper = new Color(173, 108, 80);
public final static Color frostedAlmond = new Color(204, 184, 159);
public final static Color paleGold = new Color(183, 140, 95);
Ainsi que les palettes :
public static Paint[] simplyElegant() {
return new Paint[] { copper, frostedAlmond, paleGold, antelope,
purplePassion, silverBlue, silverMink, mahogany };
}
Le rendu des Datable est effectu sous la forme dun lment Table HTML
public class TableRender{
private String width;
private String html;
private DataTable table;
..
private void buildHtml(){
StringBuilder sb = new StringBuilder();
sb.append("<table ");
sb.append(" width=\"");
sb.append(this.width+"\"");
sb.append(" border=\"");
sb.append(this.border+"\"");
sb.append(">");
for(List<String> row :table.getRows()){
sb.append("<tr>");
//ajoute les colonnes
for(String cell :row)
{
sb.append("<td>");
sb.append(cell);
sb.append("</td>");
}
sb.append("</tr>");
}
sb.append("</table>");
this.html = sb.toString();
Ad Hoc reporting


Page 47
La Servlet effectuant le charting:

public class ChartServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private DataSetProvider provider=new DataSetProvider();
private ChartEngine chartEngine=new ChartEngine();



protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
String type=request.getParameter("type");
// creation du chart...
if(type.equalsIgnoreCase("pie")){
this.createChartPie(request, response);
}else if(type.equalsIgnoreCase("barV3D")){
this.createChartbarV3D(request, response);
}else if(type.equalsIgnoreCase("XYArea")){
this.createChartXYArea(request, response);
}
}
//Insertion de limage gnr dans le flux de retour vers le client

public void createChartPie(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
response.setContentType("image/png");
String titlePie="Repartition des notes";
OutputStream outPie = response.getOutputStream();
String[][] pieDataSetQuery=provider.getPieDatasetQuery();
JFreeChart pieChart =
chartEngine.createPieChart(titlePie,pieDataSetQuery);
ChartUtilities.writeChartAsPNG(outPie, pieChart, 300, 300);
request.setAttribute("pie", pieChart);
outPie.close();
}



Ad Hoc reporting


Page 48
X) SITE ET SUPPORT
H e b e r g e me n t d e s s o u r c e s e t s i t e d u p r o j e t
Site Source forge o les sources du projet sont hbergs dans un dpt SVN :


Site du projet www.odbis.com

Ad Hoc reporting


Page 49





Ad Hoc reporting


Page 50
XI) CONCLUSION
Nous allons passer en revue les diffrents points techniques et mthodologiques que nous avons
rencontrs lors de ce projet et dcrire les enseignements que nous avons pu en tirer en les mettant en
relation avec les diffrentes matires au programme.
Si les acquis techniques sont du domaine de limmdiat (quoiquil y existe un phnomne d
laccumulation), les acquis mthodologiques seront obtenus davantage par ltude postriori du
droulement du projet ou chacun pourra voir ce qui a ou non fonctionn.

A ) L e s u j e t

Pour la plupart dentre nous les concepts de business intelligence, adhoc reporting ne voulaient pas dire
grand-chose lors de notre arrive en formation.
Le projet Odbis nous a fait dcouvrir un secteur de linformatique dentreprise, les outils dcisionnels, et
cela nous a permis entre-autre dutiliser quelques logiciels de dmo et dacqurir un minimum de
connaissance technique et de vocabulaire dans ce domaine.
Le sujet nous a attir car il tait le reflet dun besoin industriel et quil utilisait des technologies
inscrites notre programme.


B ) L e s t e c h n o l o g i e s u t i l i s e s
JEE

La courbe dapprentissage a t trs plate car elle comprend la prise en main avec plus ou moins de
matrise des lments suivants:

1. Java
2. Dtails de JEE
Diffrents types de serveurs
Servlet
Persistance
Framework
Structure des projets
Implmentation des applications
3. XML
4. Nombreux framework
5. Vocabulaire important acqurir.
6. Nombreuses utilisations de design pattern inconnus au dbut du projet et de toute faon non
maitriss.
Ad Hoc reporting


Page 51

Une majeure partie de ces diffrents lments a t vue en cours et nous avons donc pu tirer un plus
grand profit dans les cas o le cours a eu lieu aprs notre propre exploration.

Bien qu'il nintgre pas de serveur d'application, le projet Odbis a permis de voir concrtement un
exemple d'implmentation d'architecture JEE.

SVN et la gestion des versions

Lors des cours, chacun a pu travailler sur sa machine avec son IDE de dveloppement. Dans le cadre
d'un projet rel, chaque dveloppeur travaille sur un module et le gestionnaire de versions permet de
centraliser, d'homogniser et de synchroniser le code produit pendant le cycle de dveloppement.
Nous avons appris extraire et rintgrer des sources sur le repository, par contre laspect partage
des sources lorsque plusieurs dveloppeurs travaillent en mme temps sur un module na pas pu tre
abord faute de temps et du manque de matire produite.

C ) S p c i f i c a t i o n s

Le travail de recherche sur les outils de reporting et ltude de leur documentation a apport une forte
valeur ajoute. Pour certains qui ont t jusqu leur installation et ltude de leur utilisation, le bnfice
a t encore plus important.
Dune manire gnrale nous avons tous amlior notre capacit chercher de linformation ( travers
la multitude de sources existant sur le web) et arriv en faire ressortir l'essentiel. Cela a rsult en une
monte en comptence proportionnelle au temps investi.
Le cahier des charges tant trs rduit, ltape des spcifications a reprsent une exprience quelque
peu droutante puisque pour la plupart nous tions plus habitus faire ce que lon nous demande qu
nous interroger sur le que va-t-on faire ? .


D ) G e s t i o n d u p r o j e t

La mise en place de loutil PlanZone et son utilisation dans plusieurs groupes a permis de mettre en
application les concepts vus en cours de gnie logiciel.

Par contre, nous navons pas dispos dassez de temps pour pratiquer son utilisation au quotidien. Les
aspects techniques du projet ont pris le pas sur laspect gestion. Un projet un peu moins exigeant nous
aurait srement permis dtre plus prs de la ralit du travail en entreprise.

Le mode de dveloppement itratif choisi tait nouveau pour nous tous.
Ad Hoc reporting


Page 52

E ) Mo d l i s a t i o n

Etude et manipulation de diffrents outils UML :

La recherche du bon outil nous a beaucoup aids par la suite sur d'autres modules comme le GL4.
La mise en pratique a permis de faire le rapprochement avec le cours dUML et d'aborder le passage du
diagramme des classes aux tables relationnelles.

Le passage des cas dutilisation vers les diagrammes de squence avec ltablissement au fil de leau de
linventaire des classes participantes sest peu peu impos comme plus naturel. Nous avons pu
observer enfin la dure ralit : tant que ce nest pas modlis, ce nest pas codable.

Nous avons utilis la rtro-conception pour inclure dans nos modles des composants externes et avons
pu dans certains cas renforcer notre comprhension de concepts vus dans les cours de Java.


Mtadonnes et modle CWM :

Nous avons commenc aborder ce mta modle qui permet aux diffrentes applications de la Business
intelligence de communiquer laide dune grammaire commune. Cest ce que lon appelle un
teasing et certains auront peut-tre le loisir dapprofondir ce modle.
Dans le cadre dOdbis, nous avons cess de linclure dans notre modlisation assez rapidement car il y
avait trop de connaissances acqurir pour obtenir un minimum de matrise.


Dveloppement itratif:

Comme il a t dit plus haut, le mode de dveloppement itratif choisi tait nouveau pour nous tous.
Nous avons pu dcouvrir lusage que nous devions faire voluer limplmentation mais aussi partir de
buts simplifis par rapport aux spcifications. Lenrichissement itratif du modle, en faisant trs simple
au dpart, a t une dcouverte.


Ad Hoc reporting


Page 53
F ) L o p e n s o u r c e


Le projet Odbis nous a fait dcouvrir l'envers du dcor .
Nous avons tous t jusqu lors, plus ou moins consommateurs d'outils et utilitaires open source et
souvent gratuits. Ce projet a permis de voir une certaine manire d'initier et de construire un projet open
source. (Etat de l'art, conception, modlisation, etc..., jusqu' la mise disposition du livrable final)
Le fait dtre impliqu dans un tel projet a soulev chez certains des questionnements qui nous ont
amens claircir la diffrence entre Logiciel Libre et Open Source :
Lopen source est davantage un mouvement de dveloppeurs qui vise perfectionner la qualit
du code source et le logiciel libre est issu dun mouvement qui se concentre sur les liberts
accordes lutilisateur.
Si on fait le rapprochement avec les informations obtenues lors du cours ERP5, la transparence
de lOpen Source permet dvaluer la qualit ( condition quon prenne le temps de le faire) en
accdant aux sources, listes de bugs, suivi de celles-ci, etc mais elle nimplique en rien que le
logiciel est de qualit.
Enfin nous avons pu effleurer la problmatique des licences lors de la publication dun logiciel puisque
celui-ci devra tre diffus avec une licence et cela implique dtudier en dtails les diffrents
composants utiliss pour le dveloppement et leur licence.
Il faut dterminer si ces licences sont compatibles avec les utilisations prvues.
Voir sil ny a pas de problme de licence contaminante (par exemple tout logiciel avec au moins
un composant sous licence GPL doit tre diffus sous licence GNU GPL.)

Вам также может понравиться