Projet M1 Sujet 21 : Développement d`un logiciel simplifié de type

publicité
Florent Dubien
Antoine Pelloux
IUP GMI Avignon
Projet M1
Sujet 21 : Développement d'un logiciel simplifié de type
Business Object
Professeur Tuteur : Thierry Spriet
1. Cadre du projet .......................................................................................................... 3
2. Logiciel d’édition graphique de requêtes sur des bases de
données................................................................................................................................. 3
2.1 Objectif ....................................................................................................................... 3
2.2 Organisation.............................................................................................................. 3
2.3 Fonctionnalités ........................................................................................................ 4
2.4 Système existant ..................................................................................................... 4
2.5 Utilisateurs ................................................................................................................ 4
3. Présentation de la Business Intelligence .................................................. 4
4. Pourquoi le Reporting ?....................................................................................... 6
5. Développer le projet sous Eclipse avec Birt .......................................... 6
5.1 Présentation BIRT Project .................................................................................. 7
5.1.2 Fonctionnement .......................................................................................................... 8
5.1.3 Avantages: ................................................................................................................ 10
5.1.4 Inconvénients:........................................................................................................... 10
5.2 Analyse ..................................................................................................................... 10
6. Solution 2: Pentaho .............................................................................................. 11
6.1 Présentation ............................................................................................................. 11
6.2 Fonctionnement ..................................................................................................... 11
6.3 Avantages et inconvénients .............................................................................. 12
6.3.1 Avantages ................................................................................................................. 12
6.3.2 Problèmes constatés et besoins.................................................................................. 14
6.4 Analyse ..................................................................................................................... 14
7. SPAGO ......................................................................................................................... 14
7.1 Présentation ............................................................................................................. 14
7.2 Fonctionnement ..................................................................................................... 15
7.3 Analyse ..................................................................................................................... 15
Glossaire : ................................................................................................................................. 17
1. Cadre du projet
Ce projet est développé pour une utilisation au sein de l’université d’Avignon.
Le logiciel doit permettre à un non informaticien de faire des requêtes de base sur une
représentation modélisée de bases de données références.
•
La première partie correspond à faire des "vues" pour modéliser des entités ou des
relations en utilisant des tables issues de bases de données multiples (Mysql, Postgresql
au moins).
Cette partie est utilisée par un informaticien pour créer le monde modélisé pour les
utilisateurs finaux.
•
La deuxième partie permet aux utilisateurs de faire des requêtes standards sur le monde
défini ci-dessus.
On doit pouvoir construire (si possible graphiquement) des requêtes de différents types :
select avec conditions where, select avec jointures, select avec group by
2. Logiciel d’édition graphique de requêtes sur des bases de
données
2.1 Objectif
Plusieurs bases de données sont utilisées au sein de l’université d’Avignon. Elles regroupent
des données relatives à la comptabilité, la gestion du personnel (Oracle), la scolarité et les
diplômes et maquettes (PostgreSQL).
Le besoin se fait ressentir d’obtenir des informations en provenance de plusieurs tables
simultanément. Une solution serait l’acquisition d’un logiciel du type de Business Object ou
équivalent ; le choix qui a été fait est de mettre en œuvre une solution basée sur des
composants Open Source.
2.2 Organisation
Cette application sera accessible depuis l’intranet par une URL.
On divisera le développement du logiciel en 2 parties :
1. La mise en place de requêtes transversales aux différentes bases de données.
2. une interface utilisateur proposant à des non informaticiens de définir eux-mêmes des
requêtes.
2.3 Fonctionnalités
L’utilisateur aura la possibilité de faire des requêtes sur les différentes bases de données de
l’université sans pour autant devoir maîtriser le langage SQL. Ainsi on cherchera une façon
simple, ergonomique et intuitive de manipuler les données dont il a besoin. Pour cela un
« monde virtuel » regroupant ces informations et permettant un usage efficace et étendu tout en
donnant une vision d’ensemble serait tout indiqué.
Une fois la requête construite, le résultat devra s’afficher à l’écran.
2.4 Système existant
Actuellement, lorsque qu’un utilisateur cherche des informations en relation avec les
différentes bases de données, il n’a pas d’autre solution que de le faire avec des applications
séparées, ce qui est très contraignant.
Bases de données répertoriées :
•
la gestion du personnel (Oracle)
•
la scolarité et les diplômes et maquettes (PostgreSQL).
2.5 Utilisateurs
•
•
Contrôleur de gestion, maîtrisant le langage SQL.
Utilisateur novice.
3. Présentation de la Business Intelligence
La business intelligence (ou informatique décisionnelle en français) est l'ensemble des
technologies apportant une aide à la décision.
Elle regroupe tous les moyens (collecter, stoker, exploiter) qui permettent le traitement des
données de l’entreprise, souvent hétérogènes, et surtout de construire une information de synthèse
(des indicateurs, par exemple) permettant une meilleure analyse et compréhension du
fonctionnement de cette entreprise.
On peut regrouper les différentes étapes de la chaîne de décision de la manière suivante :
Etape 1 : la collecte et l’extraction des données
La collecte des données est une fonction remplie par une famille d'outils dénommée ETL (Extract
Transform Load). L'outil d'ETL se charge de récupérer ces données et de les centraliser dans une
base de données particulière, l'entrepôt de données.
Etape 2 : La structuration des données.
Cet « entrepôt de données » (ou datawharehouse) offre un pré traitement des données et un accès
orienté vers l’analyse.
Les données viennent d'applications transversales ou disséminées à travers l'entreprise, et sont
regroupées en vue de produire une vision plus globale lors de l'étape de restitution. Et ainsi
permettre aux responsables de l’entreprise et aux analystes de prendre des décisions plus
pertinentes, d’où le nom d’informatique décisionnelle.
Etape 3 : Le traitement des données.
Cette étape consiste, selon la structuration des données effectuées, à fournir des indicateurs pour
préparer au mieux l’étape suivante…
Etape 4 : L ‘exploitation des données.
Une fois les données stockées, nettoyées, consolidées et accessibles, elles sont utilisables. Selon
les besoins, différents types d'outils d'extraction et d'exploitation seront envisagés.
• Analyser les données avec les outils de type OLAP pour les analyses
multidimensionnelles. (cf. glossaire)
• Rechercher des liens peu visibles par une méthode d’analyse : le Data Minning. C’est un
processus d’extraction de connaissance, adapté au traitement de grands volumes de
données. Ces données peuvent être stockées soit dans un entrepôt de données (Data
Warehouse ou DataMart.) soit dans des bases de données relationnelles.
• Assister les décideurs en situation, avec les tableaux de bord présentant les indicateursclés de l'activité.
• La restitution des données se fait via une fonction de « Reporting ». Le « Reporting »
permet aux gestionnaires :
o de sélectionner les données
o de trier, regrouper ou répartir ces données selon les critères de leur choix
o de réaliser divers calculs
o de présenter les résultats d’une manière synthétique ou détaillée, le plus souvent
graphique selon leurs besoins ou les attentes des dirigeants de l’entreprise. Ainsi la
génération de rapport en pdf ou sur une page html est très fréquente
Etape 5 : Présentation
Cette étape, la plus visible pour l'utilisateur, régit les conditions d'accès de l'utilisateur aux
informations. Elle assure le fonctionnement du poste de travail, le contrôle d'accès, la prise en
charge des requêtes, la visualisation des résultats sous une forme ou une autre. Elle utilise toutes
les techniques de communication possibles (outils bureautiques, requêteurs et générateurs d'états
spécialisés, infrastructure web, télécommunications mobiles, etc.).
Etape 6 : Administration
C'est la fonction transversale qui supervise la bonne exécution de toutes les autres. Elle pilote le
processus de mise à jour des données, la documentation sur les données (les méta-données), la
sécurité, les sauvegardes, la gestion des incidents.
Source :Certaines informations sont reprises du wikipedia.
4. Pourquoi le Reporting ?
L’étape centrale du projet concernant la Business Intelligence est le Reporting mais ce n’est pas
la seule.
À partir des bases de données fournies il va falloir permettre à l’utilisateur de générer un rapport
avec les données dont il a besoin.
Dans notre cas, il faut gérer l’accès à différentes bases de données et proposer une interface
simple pour la création des requêtes et l’affichage.
Les outils de Reporting proposent la réalisation de rapports selon un format prédéterminé. Les
bases de données sont interrogées selon les requêtes SQL préparées lors de l'élaboration du
modèle. Le rapport peut ensuite être diffusé sur l'Intranet, périodiquement en automatique ou
ponctuellement à la demande.
L'outil d'élaboration du modèle du rapport offre des fonctions spécifiques de calcul et de
présentation (graphiques) afin de concevoir des comptes rendus pertinents.
Nous avons exploré plusieurs solutions, la première consistait à se renseigner dans le monde du
libre aux outils de Reporting permettant le traitement des bases de données recherché.
Ensuite nous avons découvert l’existence de logiciels Open Source couvrant l’ensemble des
activités de Business Intelligence.
Nous présentons ici un outil spécifique de Reporting ainsi que 2 solutions de plateforme de
Business Intelligence.
5. Développer le projet sous Eclipse avec Birt
Eclipse est un environnement de développement intégré extensible, universel et polyvalent,
permettant potentiellement de créer des projets de développement mettant en œuvre n'importe
quel langage de programmation.
Sa spécificité vient du fait de son architecture totalement développée autour de la notion de plugin.
5.1 Présentation BIRT Project
5.1.1 Définition :
Le projet BIRT, Business Intelligence and Reporting Tools, propose un système de création de
rapports pour les applications Web.
BIRT est un projet open source pour des web applications, en particulier celles développées en
Java et J2EE.
L'utilisation de BIRT peut se résumer de la façon suivante :
Chaque rapport est décrit dans un fichier (au format XML). L'éditeur associé à ce type de
fichiers permet de construire graphiquement le rapport (à la façon d'un traitement de texte).
Le but d'un rapport est d'afficher des données. Pour chaque rapport, l'outillage de BIRT
propose une vue 'Explorateur de données' qui permet la définition d'une ou plusieurs 'sources de
données' (par exemple une base de données relationnelles) et d'un ou plusieurs 'jeux de données'
extraits de la source de données (par exemple les champs renvoyés par une requête SQL). Les
'jeux de données' constituent les données à afficher.
L'édition du rapport se fait en mode graphique en insérant les différents composants
graphiques proposés (Texte, image, tableau, liste, graphique, ...). Les valeurs affichées par ces
composants peuvent être soit statiques, soit extraites des 'jeux de données', soit calculées en
utilisant des formules prédéfinies et des scripts écrits en JavaScript.
A tout moment, le concepteur du rapport peut demander son exécution directement à partir des
menus de BIRT. La prévisualisation se fait au format HTML ou PDF.
La mise en exploitation se fait en déployant le rapport sur un serveur d'applications J2EE dans
lequel le moteur d'exécution BIRT a été installé. Le rapport sera alors accessible par une URL
dont les paramètres permettent notamment d'indiquer le format de génération (PDF ou HTML).
Sources :
http://www.eclipse.org/birt/phoenix/intro/
http://www.eclipsetotale.com/articles/BIRT.html
5.1.2 Fonctionnement
Les données peuvent être récupérées par programmation. BIRT permet d'associer du code Java
ou JavaScript aux différents évènements qui ponctuent la génération d'un rapport. En définissant
un jeu de données de type script le développeur va pouvoir faire appeler par BIRT du code lors
de la phase de construction du jeu de données. Le code JavaScript est à saisir dans l'onglet 'Script'
de l'éditeur de rapport. Le code Java est à placer dans des classes implémentant des interfaces
prédéfinies par BIRT, une propriété optionnelle du rapport permet d'indiquer la classe Java qui
gère les événements.
La conception d'un rapport se fait graphiquement en utilisant l'éditeur proposé par BIRT.
Pendant la phase de développement, le rapport peut être exécuté de différentes façons :
- l'onglet 'Aperçu' de l'éditeur affiche le résultat au format HTML.
- les options suivantes du menu Fichier 'Aperçu au format PDF' et 'Aperçu au format HTML'
déclenchent la génération du rapport au format sélectionné et ouvre Acrobat Reader ou un
navigateur Web.
Pour l’exemple : Extraction à partir d'une base de données
BIRT prend en charge la connexion à la base de données et l'extraction des données ; pour ce
faire, il faut préciser d'une part les informations de connexion et d'autre part la requête SQL à
utiliser.
Dans l'assistant de création d'une source de données de type JDBC, il faut indiquer : le driver
JDBC, la chaîne de connexion JDBC, le nom d'utilisateur et le mot de passe.
L'étape suivante consiste à créer un 'jeu de données' associé à la source de données et à indiquer
la requête SQL correspondante. L'assistant de création d'un jeu de données permet la visualisation
de la structure des tables et l'édition de la requête SQL.
5.1.3 Avantages:
•
•
•
•
•
BIRT prend en charge la connexion à la base de données et l'extraction des données, il
faut préciser d'une part les informations de connexion et d'autre part la requête SQL à
utiliser.
Fonctionnement sous Eclipse permettant de profiter de la puissance du logiciel.
Développement en Java.
Documentations nombreuses et détaillées, présence de tutoriaux et de démonstrations,
FAQ et Forum d'entraide francophones, communauté très étendue.
Présence de nombreux plugins, d’où la possibilité de trouver les mieux adaptés pour
résoudre les problèmes rencontrés.
5.1.4 Inconvénients:
•
•
Birt est un moteur de rapport, et se limite à cette fonction ; donc il ne gère pas l'accès au
rapport.
Les personnes pouvant accéder aux rapports ne peuvent que consulter les rapports mais
pas modifier leur structure. Ce qui implique qu’un simple utilisateur ne peut qu’utiliser
des rapports pré-générés et non pas créer un rapport personnalisé.
5.2 Analyse
Pour l’utilisation de Birt 3 solutions prédominent :
La première serait d’utiliser Birt Project tel quel et développer à coté les briques dont nous avons
besoin. Il faudrait notamment développer 2 outils :
Le premier pour interface graphique telle qu'il la faudrait (manipulation d'objets graphiques) est
quasiment impossible à réaliser avec une application web "classique". A partir du moment ou
nous envisageons application web, du fait de l’utilisation d’un navigateur Il faut obligatoirement
développer une interface graphique soit par du langage type Ajax soit en cherchant un
hypothétique plug-in approprié.
Et le second concernant la complexité des requêtes à générer. Pour permettre une utilisation
ergonomique de Birt par l’utilisateur non informaticien, Birt donne la possibilité de créer des
règles en javascript. Il faudrait dans ce cas envisager de construire un éditeur dynamique de
rapport
Il apparaît que cette solution serait très coûteuse en temps de conception et de développement
puisqu’il faudrait concevoir l’interface utilisateur en amont de la connexion et en aval pour la
construction des requêtes et l’affichage. Cela comporte de plus de nombreuses inconnues par
rapport aux méthodes à employer .
• Par ailleurs une solution toute faite existe sous le nom de Actuate’s Birt Project . Mais elle
constitue un logiciel sous licence. selon le prix, ça peut être une solution.
• Enfin, on peut utiliser Birt comme simple générateur de rapport dans le cadre d’une
solution plus complète : les plates-formes de Business Intelligence.
Il existe des logiciels qui sont des plateformes de Business Intelligence et qui regroupent toutes
les fonctions. Le plus connu est Business Object.
Cependant nous allons nous intéresser aux logiciels libres de Business Intelligence de logiciel
type Business Object mais en open source, Pentaho est l’un d’eux.
6. Solution 2: Pentaho
6.1 Présentation
Pentaho est une solution OpenSource type Business Object
(http://www.france.businessobjects.com/) et propose un ensemble d'outils développés en
environnement Java, qui couvrent les fonctions de reporting, d'analyse, de data mining, gestion
des processus...
Contrairement aux autres projets décisionnels en libre créés jusqu'à présent, Pentaho envisage de
développer une plate-forme complète, qui devrait se suffire à elle-même, pour utiliser l'ensemble
des fonctions décisionnelles (Reporting, analyse, data mining, workflow…).
6.2 Fonctionnement
Pentaho est une plateforme de BI et regroupe un ensemble de techniques adaptées :
• Le stockage de la source de donnée sur n’importe quelle base de données du moment qu'il
existe un driver JDBC (La technologie de la plateforme WEB peut être TOMCAT ou
JBOSS ).
• La collecte de données se fait par KEETLE qui permet de récupérer des données de
différentes sources (Excel, texte tabulé, autre SGBD ... ) c’est l'ETL permettant le lien
entre la plateforme et la base de données.
• L'analyse multidimensionnelle (Mondrian pour la constitution d'hyper cube).
• De Reporting, confiés par défaut à JfreeReport.
On peut si l’on veut utiliser JasperReport ou BIRT, chacun ayant ses avantages et ses
inconvénients ( voir plus loin).
• La mise en place du process de génération de rapports ou d’évènements (Shark ou
Hibernate qui est un plug-in Eclipse).
6.3 Avantages et inconvénients
6.3.1 Avantages
•
On peut faire des graphiques avec Pentaho Report Designer.
•
•
•
•
•
•
•
•
•
•
•
•
Pentaho est un projet open source, relativement jeune. Il ne faut donc pas le considérer
comme un produit fini. Il y a de nombreux pré-requis, comme par exemple l'installation
d'un serveur d'applications.
Plateforme complète de solutions.
Choix entre une plate-forme pré-configuré pour une installation rapide ou bien installation
avancée.
Choix de l’outil pour générer les tableaux de bord (JasperReport via iReport, BIRT, ou
JFreeReport).
Supporte les bases de données Oracle, Post-gresql et Mysql.
Développement en Java.
3 possibilités sont offertes dans le déploiement et l’utilisation de Pentaho:
o Possibilité de combiner des fonctionnalités avec d’autres applications.
o Possibilité d’utiliser des composants clés en mains des solutions de Pentaho (
notamment pour le Reporting) : les applications out-of-the-box peuvent s’adapter
à d’autres applications.
o L’utilisation la plate-forme en entier.
Présence d’interface graphique avec l’utilisateur.
Gestion des utilisateurs prises en compte.
Le logiciel de Report Design Wizard marche avec Eclipse, mais Eclipse n’est pas
obligatoirement requis pour le Pentaho Report Designer.
Possibilité d’utiliser des moteurs de workflow pour interfacer/initier avec les rapports.
Les composants Pentaho BI peuvent facilement être encapsulés dans des pages web, aussi
bien des pages Portail que des pages JSP personnalisées.
Deux types de règles métier sont supportées par la plateforme Pentaho BI : Les règles
requête et les règles JavaScript. Une règle requête est simplement un requête SQL qui
retourne des lignes de données qui peuvent être répétées et traitées par d’autres
composants. Une règle JavaScript vous donne la possibilité d’écrire n’importe quelle type
de fonction dont nous aurions besoin.
6.3.2 Problèmes constatés et besoins
Le principal problème est certainement la complexité et la quantité des solutions
proposées et de trouver lesquelles conviendraient.
• Par ailleurs, du fait que ce soit une solution libre, la mise en œuvre est soumise
certaines difficultés:
o Il y a des outils ( briques) manquants, c’est pourquoi Pentaho propose des
services payants d’une part pour compléter son produit (le module
d’administration, par exemple)
o Et d’autre part des services pour comprendre « l’environnement Pentaho ».
Il est à noter que la documentation est assez faible.
o Difficulté évidente à « s’auto former » (une formation semble nécessaire)
o Communauté des utilisateurs réduite.
• Formation pour installer les différentes briques assez conséquente.
•
6.4 Analyse
La solution comprenant l’installation complète de la plate-forme assurerait une utilisation
modulable et robuste.
Toutefois cela nécessite une grosse formation pour l’installation et la mise en place de toute
l’architecture.
D’un autre coté, une solution Pentaho Reporting out-of-the-box comprenant la brique de
Reporting de Pentaho serait une solution plus légère, nécessitant le moins de ressources et de
temps de formation.
Par ailleurs, la bibliothèque de fonctions Reporting Jfreereport, écrite en Java, est désormais
intégrée dans le projet Pentaho par défaut.
www.jfree.org/
Nous avons précédemment mentionné les 2 autres produits open source de Reporting
supportées par Pentaho :
Birt et Jasper report (www.jaspersoft.com/ ) qui ne présentent à priori pas plus de possibilités
sur l’usage prévu. Ainsi utiliser Birt reviendrait à se rajouter du temps de formation évitable.
7. SPAGO
7.1 Présentation
SpagoBI est une solution OpenSource pour le développement de projets de type Business
Intelligence. Cette solution offre une couche logicielle complète comprenant les fonctions de
Reporting, OLAP*, de data mining, dashboards, QBE*, collecte des données (ETL)…
Architecture de Spago
SpagoBI permet un développement très flexible permettant de « mixer » l’open source avec
des solutions propriétaires. Il est donc possible d’utiliser conjointement un moteur propriétaire
comme Business Object ou encore le moteur de Reporting BIRT.
7.2 Fonctionnement
SpagoBI est une plateforme d’intégration et non une plateforme à part entière avec des outils
définis. Cette solution utilise seulement quelques outils basiques permettant de réaliser ses
fonctions principales mais sont but est surtout de construire sa propre plateforme grâce à sa
compatibilité avec de nombreux produits, propriétaires ou libres.
Plusieurs produits open source sont sujets à nous intéresser tout au long du processus de mise
en forme des données :
• La collecte de données se fait par KETL ou Clover (outils d'ETL).
• Le Reporting peut être réalisé par BIRT ou JasperReport.
7.3 Analyse
SpagoBI se présente comme une solution appropriée à notre projet. Elle est open source et
permet surtout une grande flexibilité grâce à ses nombreuses compatibilités avec des outils de
Reporting, ou encore d’extractions de données. Il faut cependant noter que cette flexibilité ne
comporte pas que des avantages. En effet, il faut soit-même construire sa solution, ce qui
demande bien évidemment une bonne maîtrise de son domaine.
Par rapport à Pentaho Spago est bâti sur les même briques ( KETL, etc..) mais n’offre pas de
solutions out-of-the-box
Site Web : http://spagobi.eng.it
Glossaire :
•
Un framework est un ensemble de bibliothèque permettant le développement rapide
d'applications. Il fournit suffisamment de briques logicielles pour pouvoir produire
une application aboutie. Ces composants sont organisés pour être utilisés en
interaction les uns avec les autres (voir urbanisation). Ils sont en principe spécialisés
pour un type d'application. Il existe plusieurs types de Framework et pour notre cas :
Framework d'infrastructure système : pour développer des systèmes d'exploitation, des
interfaces graphiques, des outils de communication. (Exemple : Framework .Net,
Eclipse, NetBeans)
•
Business Intelligence : informatique décisionnelle (en anglais : DSS pour Décision
Support System ou encore BI pour Business Intelligence) désigne les moyens, les
outils et les méthodes qui permettent de collecter, consolider, modéliser et restituer les
données d'une entreprise en vue d'offrir une aide à la décision et de permettre aux
responsables de la stratégie d'une entreprise d’avoir une vue d’ensemble de l’activité
traitée. http://fr.wikipedia.org/wiki/Business_Intelligence
•
Le terme mapping objet/relationnel (ORM) décrit la technique consistant à faire le lien
entre la représentation objet des données et sa représentation relationnelle basé sur un
schéma SQL
•
OLAP : Online Analytical Process (OLAP), désigne les bases de données
multidimensionnelles destinées à l'analyse et il s'oppose au terme OLTP qui désigne
les systèmes transactionnels. Ce terme a été défini par Ted Codd il y a plus de 10 ans
au travers de 12 règles que doit respecter une base de données si elle veut adhérer au
concept OLAP.
•
QBE : Interrogation par l'exemple est un langage de requêtes (comme SQL)
révolutionnaire et concurrent à SQL destiné aux bases de données relationnelles. C'est
ce qu'utilise Access 2.0 (Microsoft).
Téléchargement