Dossier Odb is Beta 2

Embed Size (px)

DESCRIPTION

ODBIS is an open source infrastructure to build and deliver On-Demand Business Intelligence Services. The ODBIS platform constitutes a future perspective to provide SaaS deployment model for business intelligence applications. ODBIS offers a unified and innovative multi-layered architecture to support different business intelligence needs, this includes: (i) Core business intelligence services which cover essential data warehousing tasks as meta-data management, data integration, reporting and analysis; all built in an integrated manner using standard APIs. (ii) Services for data warehousing projects management and models design based on a model-driven approach using the 2 Track Unified Process (2TUP) and the Model Driven Architecture (MDA) standards. (iii) Services for a centralized administration which provide an enterprise-grade security including authorities, roles, users and groups management mainly based on spring security.

Citation preview

  • 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 m e 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 m o y e n s m i 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 W i 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 IREPORT. 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

    JEE. 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 BIRT et jrxml de JasperReport.

    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 m e 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 bytecode qui 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 MIME, 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 > Arrive 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 m m e 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 DataSource pour aller chercher les donnes. Le DataSet est ensuite utilis

    afin de crer un JFreeChart 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 DataTable permettent 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 M M E D E D E P L O I E M E N T

  • Ad Hoc reporting

    Page 41

    M o 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 W e 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 O d 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-INF/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("");

    for(List row :table.getRows()){

    sb.append("");

    //ajoute les colonnes

    for(String cell :row)

    {

    sb.append("");

    sb.append(cell);

    sb.append("");

    }

    sb.append("");

    }

    sb.append("");

    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 m e 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 ) M o 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.)