40
Projet M1 Sujet 21 : Développement d'un logiciel simplifié de type Business Object Professeur Tuteur : Thierry Spriet

Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Embed Size (px)

Citation preview

Page 1: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

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

type Business Object Professeur Tuteur : Thierry Spriet

Page 2: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

1 Introduction....................................................................................................................4 1.1 Cadre du projet .......................................................................................................4 1.2 Objectif...................................................................................................................4 1.3 Système existant .....................................................................................................4 1.4 Utilisateurs..............................................................................................................4 1.5 Organisation ...........................................................................................................4 1.6 Rappel sur les solutions envisagées .........................................................................5

2 La plate-forme SPAGOBI...............................................................................................5 2.1 Présentation ............................................................................................................5 2.2 Fonctionnement du Projet avec SpagoBI.................................................................5 2.3 Installation..............................................................................................................6

2.3.1 Installation de Tomcat avec eXo-Portal ...........................................................6 2.3.2 Installation de SPAGOBI ................................................................................6

2.4 Démarrage ..............................................................................................................7 3 Extraction des données : Talend Open Studio..................................................................7

3.1 Pourquoi Talend Open Studio? ...............................................................................7 3.2 Présentation de Talend Open Studio........................................................................8 3.3 Intégration avec SpagoBI......................................................................................12

4 BIRT ............................................................................................................................13 4.1 Présentation ..........................................................................................................13 4.2 Installation............................................................................................................13 4.3 Utilisation et Intégration avec SPAGOBI..............................................................14 4.4 Création de rapports pré générés ...........................................................................14

4.4.1 Introduction...................................................................................................14 4.4.2 Créer une source et un jeu de données. ..........................................................15

4.4.2.1 Définition de la source de données ............................................................15 4.4.2.2 Extraction à partir d'une base de données...................................................15 4.4.2.3 Manipulation d'un jeu de données (data set)..............................................17

4.4.3 Conception d'un rapport ................................................................................18 4.5 Créer une librairie .................................................................................................18 4.6 Créer un template de rapports................................................................................19 4.7 Ajouter un rapport à SpagoBI................................................................................20

4.7.1 Introduction...................................................................................................20 4.7.2 Créer un dossier ............................................................................................20 4.7.3 Ajouter les rapports.......................................................................................21 4.7.4 Tester et valider les rapports..........................................................................22 4.7.5 Exécution......................................................................................................23

5 Hibernate......................................................................................................................24 5.1 Introduction ..........................................................................................................24 5.2 Présentation d’Hibernate.......................................................................................24 5.3 Utilisation d’ Hibernate.........................................................................................25

6 QBE .............................................................................................................................27 6.1 Présentation ..........................................................................................................27 6.2 Paramètrage ..........................................................................................................27 6.3 Fonctionnement ....................................................................................................31

7 Problèmes rencontrés :..................................................................................................34 7.1 Difficultés et problèmes rencontrés .......................................................................34 7.2 Forums .................................................................................................................35

8 Organisation du travail .................................................................................................36 9 Conclusions ..................................................................................................................38

Page 3: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

10 Annexes :..................................................................................................................39 10.1 Notice d’installation SPAGOBI ............................................................................39 10.2 Versions et liens des fichiers utiles........................................................................39

10.2.1 Documentation :............................................................................................39 10.2.2 Fichiers nécessaires au fonctionnement de SpagoBI : ....................................39

Page 4: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

1 Introduction

1.1 Cadre du projet Ce projet est développé pour une utilisation au sein de l’université d’Avignon. 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 pour un non informaticien d’obtenir des informations en provenance de plusieurs tables simultanément.

1.2 Objectif Nous devons mettre en place une solution pour permettre à un non informaticien de faire des requêtes (si possible graphiquement) sur ces bases de données. Le choix qui a été fait au 1er semestre est de mettre en œuvre une solution basée sur des composants Open Source relatifs au domaine de la Business Intelligence.

1.3 Système existant IL y a 2 bases de données répertoriées :Une pour la gestion du personnel (Oracle) et l’autre pour la scolarité et les diplômes et maquettes (PostgreSQL), nommée freebo. C’est cette dernière que nous allons utiliser. Un serveur linux a été mis à notre disposition à l’IUP. Nous travaillons chez nous sur un système d’exploitation Windows XP et un système MAC.

1.4 Utilisateurs Nous devons trouver une solution pour un utilisateur novice en langage SQL. Nous pouvons toutefois compter sur la présence de contrôleur de gestion, maîtrisant le langage SQL.

1.5 Organisation Un serveur Unix nous a été dédié au sein de l'IUP. Pour s'y connecter, nous disposions d'un compte et nous y accédions par le protocole ssh. Le récupération/dépôt de fichiers s'est faite par sftp grâce à un tunnel ssh. C'est sur ce serveur que la base de données freebo a été installée. Afin de tester SpagoBI sur cette base, il nous a fallu faire un « dump » de la base dont voici les principales commandes sous postgreSQL :

a) Dumper une base : pg_dump -D {nom_de_la_base} > {nom_du_fichier.dump}

Page 5: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

b) Recréer une base à partir d’un dump :

psql -e {nom_de_la_base} < {nom_du_fichier.dump} Un fichier de 800Mo a été crée à la suite de cette étape. Pour ré-injecter la base sur notre propre machine de tests, il nous a fallu téléchargé ce fichier sur le serveur puis exécuter le fichier dump dans notre SGBD.

1.6 Rappel sur les solutions envisagées Au cours du 1er semestre nous nous sommes intéressé aux logiciels libres de Business Intelligence de logiciel type Business Object (le plus connu) mais en open source : Nous avons retenu SpagoBI et Pentaho. Ce sont des plates-formes de Business Intelligence possédant un profil relativement similaire en terme de fonctionnalisées. Le fait que SpagoBI ne nécessitant aucun ajout payant pour faire fonctionner sa plate-forme nous a fait opté pour cette solution. 2 La plate-forme SPAGOBI

2.1 Présentation SpagoBI est une solution OpenSource pour le développement de projets de type Business Intelligence, proposé par la société italienne Engineering Ingegneria Informatica. Il n'y a donc pas de fonctionnalités volontairement absentes et réservées pour une version commerciale comme c'est le cas pour Pentaho. Cette solution offre donc une couche logicielle complète comprenant toutes les étapes de l’intelligence décisionnelle (voir rapport 1er semestre) comme les fonctions de Reporting, OLAP, de data mining, dashboards, QBE, collecte des données (ETL)… SpagoBI permet un développement très flexible permettant de « mixer » l’open source avec des solutions propriétaires. Son grand avantage est donc sa capacité d’intégration, ce qui permet de travailler indépendamment par briques séparées et une meilleure répartition du travail. Son inconvénient principal est que c’est une solution jeune dans un secteur en pleine évolution, il faut donc se tenir régulièrement au courant quant à l’ajout de nouveaux composants et de fonctionnalités. Site Web : http://spagobi.eng.it

2.2 Fonctionnement du Projet avec SpagoBI Rappel : l’objectif est de permettre à l’utilisateur final de faire des requêtes graphiques sur une base de données.

Page 6: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Pour cela nous découperons les phases principales du projet conformément aux étapes d’un projet de Business Intelligence.

• La collecte de données se fera par Talend Open Studio qui est un outil d'ETL en cours d’intégration avec la plate-forme SpagoBI.

• La préparation de la partie Reporting sera réalisée par BIRT. • La partie modélisation par Hibernate. • La partie requête graphique de l’utilisateur final par le SpagoBIQbeEngine

SpagoBI propose en téléchargement une version démo, celle ci propose au développeur des « portlets », des applications qui, placées dans un portail web, servent alors de conteneurs. Ces portlets prédéfinis qui permettent d’accéder aux fonctionnalités (reporting, QBE, etc…) de SpagoBI. Suivant les conseils de l’équipe technique d’ IEE nous sommes donc parties de la version démo qui offre aux nouveaux utilisateurs de SpagoBI un socle complet pour débuter avec le produit.

2.3 Installation SpagoBI peut fonctionner sur les plates-formes Windows et Unix (linux, MacOS X,...). Pour fonctionner, SpagoBI requiert essentiellement trois éléments : − Installation d'un serveur d’application sur lequel reposera la plate-forme de Business

Intelligence. Trois types de serveurs d'applications, écrits en Java sont proposés : Tomcat, Jboss et Jonas. Pour sa stabilité et sa simplicité d'installation, nous avons opté pour Tomcat. Le serveur doit être installé au préalable avec « exo-portal ». Produit par une startup française « EXO Plateform », il s'agit d'un portail permettant d'inclure des portlets.

− Installation d'une JDK. − Installation d'OpenOffice. Les différentes versions des fichiers concernant le serveur d'application et SpagoBI sont téléchargeables sur le site http://forge.objectweb.org/ respectivement dans les projets eXo et SpagoBI. Note : Pour les noms et versions exactes des fichiers, cf 10.1 Notice d'installation de SpagoBI.

2.3.1 Installation de Tomcat avec eXo-Portal L'installation de Tomcat avec eXo-Tomcat est simpliste. Il suffit de télécharger l'archive et de la décompresser dans le répertoire où SpagoBI sera installé.

2.3.2 Installation de SPAGOBI Avant le 06 avril 2007, aucun installeur graphique de SpagoBI n'existait. La démarche à suivre en consistait en l'installation, en plus des trois éléments (Java, OpenOffice, Tomcat avec eXo-Portal), de la « metabase de données » (Oracle, PostgreSQL, mySQL, HSQLDB) utilisée par SpagoBI, de ses drivers, la configuration d'un JNDI (pour la connexion de SpagoBI à sa source de données (la metabase), l'installation d'un « cms repository » (System de management de contenu), l'installation de la plateforme SpagoBI avec des configurations légères et enfin l'installation des moteurs souhaités (Birt, QBE,...).

Page 7: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Cette solution nous a posé de nombreux problèmes (de très nombreuses erreurs bloquantes suites aux nombreuses étapes dans l'installation), c'est pourquoi nous avons opté pour l'installateur graphique où l'on suit les étapes interactives à l'écran. A un stade de l'installation, une liste de moteurs est proposée, nous prendrons alors soin, entre autres, de sélectionner SpagoBirtReportEngine (cf 4. Birt) et SpagoBIQBEEngine (cf 6. QBE).

2.4 Démarrage Une fois SpagoBI correctement installée, la plate-forme peut être démarrée. Pour ce faire, il est nécessaire d'exécuter le script /Spago/exo-portal/StartSpagoBI.sh ( StartSpagoBI.bat sous Windows) qui se charge de lancer la metabase de donnée et surtout le serveur d'application. Pour stopper l'application, il faut exécuter le script StopSpagoBI.sh. Note : La ligne de commande détail le démarrage de l'application (ex : démarrage de chacun des moteurs SpagoBI) et l'on peut voir une erreur qui apparaît plusieurs fois : [ERROR] PersistentManagerBase - No Store configured, persistence disabled Cette erreur est connue car de nombreux utilisateurs la voient mais sur le forum officiel, l'équipe technique de SpagoBI nous a informé qu'elle était non bloquante et qu'il ne fallait pas s'en soucier. Une fois démarrée, SpagoBI est accessible par le biais d'un navigateur Internet à l'adresse : http://serveur:8080/sbiportal La première page détaille les profils sous lesquels l'utilisateur peut se connecter pour accéder aux fonctionnalités qui lui correspondent. Il y a 4 types d’utilisateurs de SpagoBI: 1.Administrator: gère la configuration et les aspects de sécurité. Sous ce profil nous allons créer un répertoire pour entreposer les documents (rapports) et définir les droits d’accès. 2.Developer: Pour créer ou modifier les documents. En important les rapports pré générés de BIRT dans le répertoire adéquat. 3.Tester: Pour tester les documents (rapports en l’occurrence) que nous rajoutons via la partie administrateur et développeur. Ensuite il a la possibilité de valider ou non le document. 4.User: Peut utiliser tout les documents dont la mise en exploitation a été validé par les précédents, l’usage, l’accès et les droits des documents sont limités par les paramètres définis précédemment. C’est donc pour un user que nous allons concevoir les étapes suivantes afin d’aboutir sur la partie QBE. 3 Extraction des données : Talend Open Studio

3.1 Pourquoi Talend Open Studio? L'université d'Avignon utilise des données provenant de plusieurs bases de données (ex : Diplômes, Scolarité), qui ne sont pas forcément implémentées au sein du même système de

Page 8: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

gestion de base de données (ex : postgreSQL, Oracle) et des utilisateurs appartenant à l'administration de l'université éprouvent le besoin de faire des requêtes à partir de ces différentes bases. Cette étape de la Business Intelligence, appelée fonction d'ETL, est présente dans notre projet car elle permet de collecter des données provenant de plusieurs bases de données, ce qui ne peut se faire par le simple biais de requêtes SQL. Il s'agit bien sûr d'un travail que seul un informaticien pourra faire car il est indispensable de connaître le langage SQL. Il pourra ainsi au préalable créer de nouvelles bases de données répondant aux besoins précis des utilisateurs finaux. Talend Open Studio (ou TOS) est un outil d'ETL open source, capable d’extraire des données de différentes bases de données. Cet outil propose une solution « clés en main », offrant un logiciel téléchargeable et exécutable de façon autonome sur un système d'exploitation. En outre, Talend peut s'intégrer à la plateforme SPAGOBI qui, jusqu’il y a peu, était dépourvu de solution d'outil d'intégration de données. Etant donné nos problèmes rencontrés lors de l'installation de SpagoBI avant la sortie de l'installeur graphique, nous avons découvert et pris en main Talend Open Studio dans sa version clé en main.

3.2 Présentation de Talend Open Studio Le logiciel est téléchargeable sous forme d'une archive sur le site officiel (http://www.talend.com/download.php), qu'il suffit de décompresser pour installer l'application. L'outil d'ETL est, depuis quelques mois disponible dans un version écrite en Java (qui fait suite à une version écrite en Perl), ce qui donne la possibilité au programmeur d'ouvrir un projet TOS au sein du logiciel Eclipse. C'est cette version que nous avons choisit d'utiliser. Après avoir décidé de l'ouverture ou de la création d'un nouveau projet, l'application, nous offre une apparence de style « TreeView » familière à Eclipse. On peut y voir les vues suivantes : le référentiel (Repository), l’espace de travail (WorkSpace), les sorties/erreurs/logs. Et l’aperçu Schéma/code.

Page 9: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 1 : Interface de Talend Open Studio

Le Repository donne accès à deux types essentiels de projet : les « Business Models » et les « Job Design ». Le premier type permet de modéliser des processus métiers alors que celui qui nous intéresse, le Job Design, permet lui d’associer les composants qui nous permettront de manipuler les flux de données provenant de différentes bases. Des liens vers ces bases doivent être configurés avant toute chose. C’est ainsi qu’il est nécessaire d’ajouter des « connections » à l’élément « metadata/DB Connections » du repository (clique-droit, new connection). Une connexion par base de données est nécessaire. Les paramètres à fournir sont les suivants : type de la base : mySQL/PostgreSQL/Oracle … url de la connexion : sous la forme « jdbc:typeDeBase://adresse:port/baseDeDonnées login/password : pour la connexion à la base de données adresse du serveur du serveur de base de données numero de port du serveur de base de données nom de la base de données

Page 10: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 2 : Paramètres de connexion à une base de données

Nous avons décidés de tester TOS au travers d’un exemple auquel on peut être confronté dans le cadre de notre projet, mysql sera le SGBD. Voici trois bases de données, datab1 : table student : id_student (numeric), name_student (varchar) table speciality : id_speciality (numeric), name_speciality (varchar) table match1 : id_speciality (numeric), id_student (numeric) datab2 table course : id_ course (numeric), name_ course (varchar) table speciality : id_speciality (numeric), name_speciality (varchar) table match2 : id_speciality (numeric), id_course (numeric) datab3 table student : id_ student (numeric), name_ student (varchar) table course : id_ course (numeric), name_ course (varchar) table match3 : id_ student (numeric), id_course (numeric) La base datab1 permet de savoir que tel étudiant (student) appartient à telle filiere (speciality), grâce à la table match1. Cette base est actuellement remplit. La base datab2 permet de savoir que tel étudiant (student) suit tel cours (course), grâce à la table match2. Cette base est actuellement remplit. La base datab3 permet de savoir que tel cours (course) appartient à telle filiere (speciality), grâce à la table match3. Cette base est actuellement vide, et c’est celle-ci que nous voudrions remplir à partir des 2 premières afin qu’elle nous fournisse les informations demandées.

Page 11: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Ce problème fait appel à des composants de la catégorie « database » qui vont nous permettre d’extraire, d’assembler et d’injecter des données dans des bases suivant ces 3 étapes :

a) Extraction des données des 2 bases datab1 et datab2 Utilisation de 4 composants « tMySQLInput» pour : - extraire la liste des étudiants à partir de datab1 (tMySQLInputDB1_student) - extraire la liste des correspondances entre les étudiants et leur filière à partir de

datab1 (tMySQLInputDB1_match1) - extraire la liste des cours à partir de datab2 (tMySQLInputDB2_course) - extraire la liste des correspondances entre les cours et les étudiants à partir de

datab2 (tMySQLInputDB2_ match2)

figure 3 : Paramètres du composant tMySQLInputDB1_student

b) Multiplexage des données Utilisation du composant central « tmap » qui permet de sélectionner les données entrantes, les conditions et leur destination.

Paramétrage du composant tMap

Comme peut le voir sur la figure 3, le paramétrage du tMap nous propose une vue à gauche des 4 entrées de données, correspondant au 4 tMySQLInput. Le « join » entre

Page 12: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

les divers champs sont à définir en reliant simplement les champs concernés, d’où la présence de traits violets sur la gauche de la fenêtre. Ensuite, nous relions les données à extraire (id_Student et id_course) au composant newOutput1, dont nous verrons le rôle juste après, à droite de la fenêtre de paramétrage du tMap.

c) Injection des données dans la base vide Il est enfin nécessaire d’injecter ces données pertinentes (id_Student et id_course) dans la 3ème base, datab3. Ceci est fait en partie grâce au composant newOutput1 du tMap qui est lié au composant tMysqlOutput_2 présent sur le job. Ce dernier est paramétré pour interagir avec datab3, la base à remplir.

figure 4 : Vue complète du job

Il reste alors à démarrer le job grâce à l’icône de la flèche verte, qui doit s’exécuter avec succès. On peut ensuite constater dans notre base de données datab3, que les champs (id_Student et id_course) sont tous là et qu’ils correspondent. Cette base remplit donc à présent son rôle : nous savons que tel étudiant suit tel cours. Note : TOS bénéficie de plus d’une communauté très dynamique. De nombreuses mise à jour sont régulièrement publiées et le forum est très actif, ce qui nous a permis de surmonter quelques difficultés dans la prise en main du logiciel ou des bugs d’un version antécédentes (cf 7.1 Difficultés et problèmes rencontrés).

3.3 Intégration avec SpagoBI Il est à noter que nous avons seulement utilisé une infime partie des possibilités de TOS, en limitant notre production à des tests pour générer une base de données à partir de plusieurs. Une étude approfondie des bases de données « cibles » et des besoins devrait permettre une utilisation optimisée de cette étape.

Page 13: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

4 BIRT 4.1 Présentation Le projet BIRT, Business Intelligence and Reporting Tools est un plug-in Eclipse open-source qui propose un système de création de rapports ( ou états ) pour les applications Web. Il se compose d’un outil de conception de rapports basé sur Eclipse et d’un moteur d'exécution installable dans un serveur d'applications J2EE. L'utilisation de BIRT peut se résumer de la façon suivante :

figure 5 : Schéma de l’utilisation de BIRT

En ce qui concerne l’affichage des données. 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 du viewer de BIRT. Il y a plusieurs choix possible pour le format de la prévisualisation :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é.

4.2 Installation Le projet BIRT propose plusieurs téléchargements mais seul Birt version 2.0.1 fonctionne avec le SpagoBIBirtEngine. http://download.eclipse.org/birt/downloads/build.php?build=R-R1-2_0_1-200602221204 Il faudra donc veiller à prendre la version full comprenant la partie outil de conception (Report Designer) et la partie moteur d'exécution (Report Engine et donc le SpagoBIBirtEngine).

Page 14: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

4.3 Utilisation et Intégration avec SPAGOBI La partie BIRT est essentiellement axée pour le développeur. Sachant que le but d'un rapport est d'afficher des données, dans notre projet nous allons utiliser BIRT pour 2 objectifs :

• Créer quelques rapports pré générés que nous chargerons par la suite dans SpagoBI. Ces rapports finis seront directement exécutables pour l’utilisateur dans SpagoBI.

• Dans un second temps, nous avons explorer les fonctionnalités de Birt pour faciliter la préparation de rapport :

Nous avons la possibilité de créer un template qui est un modèle de présentation au niveau design et/ou niveau contenu pour construire des rapports. Nous pouvons aussi personnaliser la librairie comprenant l’ensembles des composants et des données nécessaire pour la préparation des rapports sous Birt.

Pour ce faire nous avons d’abord suivi le tutorial pour créer un rapport afin de maîtriser l’outil BIRT. Puis une fois cette étape de conception maîtrisée nous avons développé les différentes étapes qui vont constituer la création de rapports personnalisées avec la base freebo.

4.4 Création de rapports pré générés

4.4.1 Introduction On commence par la création d’un projet Eclipse (même si BIRT ne nécessite pas la création d'un projet Eclipse d'un type particulier un type de projet nommé 'projet d'état' est tout de même proposé).

figure 6 : Créer un nouvel état

Page 15: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Puis on crée un nouveau rapport : Nous avons ici la possibilité de sélectionner un modèle prédéfini (template) de rapport parmi une liste.( Liste simple, groupées, rapport vierge, graphique etc…) Nous verrons plus tard comment pour concevoir notre propre template. Une fois crée le rapport est disponible dans la zone d'édition.

4.4.2 Créer une source et un jeu de données. Nous allons devoir paramétré une source de données (data source) et un jeu de données (data set) correspondant d’une part à la base de données sur laquelle nous travaillons et d’autre part sur le contenu. Une data source est une connexion à une base de données telle qu’une connexion JDBC. Une data set est une description des données sur lesquelles on va travailler. Les requêtes SQL seront le plus souvent utilisées.

4.4.2.1 Définition de la source de données Chaque rapport est associé à un ou plusieurs jeux de données qui seront manipulés pour définir la structure des données du rapport. En ce qui nous concerne, nous allons par la suite utiliser des bases de données relationnelles accessibles par JDBC découlant de TOS pour définir notre source de données.

figure 7 : Sélection du type de la nouvelle source

4.4.2.2 Extraction à partir d'une base de données Si BIRT prend en charge la connexion à la base de données et l'extraction des données, il faut néanmoins préciser d'une part les informations de connexion (le driver notamment): et d'autre

Page 16: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

part la requête SQL à utiliser. Pour ce faire dans l'assistant de création il faut indiquer les paramètres suivants : le driver JDBC, la chaîne de connexion JDBC (sous la forme « jdbc:typeDeBase://adresse:port/baseDeDonnées), le nom d'utilisateur et le mot de passe (optionnel).

Figure 8 : Ajout nouvelle source de données

Nous pouvons ajouter le driver correspondant à la base dans la partie « Gérer les pilotes ». Ainsi nous avons ajouté le driver postgreSQL que nous avons récupéré : jdbc.postgresql.org/download.html En ce qui concerne la base oracle on utilisera le driver : « ojdbc14.jar drive » et pour la base mysql : « mysql-connector-java-3.1.14-bin.jar »

figure 8 : Ajout du driver

L'étape suivante consiste à créer un ou plusieurs 'jeu de données' qui seront associés à la source de données.

Page 17: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

4.4.2.3 Manipulation d'un jeu de données (data set)

figure 9 : Nouveau jeu de données

Une fois défini, le jeu de données apparaît dans la vue 'Exploration des données'. 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. Les propriétés du jeu de données sont éditables, il est notamment possible de rajouter des champs calculés : On va indiquer la requête SQL à utiliser. Exemple d’un jeu de données qui est utile pour notre projet :

figure 10 : Jeu de données

Page 18: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Nous pourrons aussi regrouper des données provenant de différentes différents type de DataSources (de 2 bases de données mysql et oracle par exemple) en utilisant « Join Data Set » et créer autant de jeux de données que nécessaire. Nous avons ainsi un ensemble de jeux de données prêt à utiliser.

figure 11 : Explorateur de données

4.4.3 Conception d'un rapport Pour ce qui est du contenu nous pouvons maintenant utiliser l’éditeur proposé par Birt pour : • Choisir le composant que nous désirons insérer dans le rapport parmi les différents types proposés par Birt : les composants permettant d'afficher les données sous forme textuelle (Texte, tableau, liste), ou sous forme de graphiques • Sélection des données à afficher. Ces données peuvent provenir directement du jeu de données ou être calculées par des fonctions javascript prédéfinies. • La dernière étape consiste à la présentation du rapport en personnalisant l’entête par exemple( en ajoutant le nom d’utilisateur, Titre, date et le logo de l’université, police, couleurs). Nous avons maintenant conçu un rapport.

4.5 Créer une librairie Nous avons la possibilité de créer une librairie qui pourra être importé dans n’importe quel rapport et template BIRT afin de réduire significativement le temps de conception. Par exemple, si des composants d’une libraire tel que le logo ou des requêtes sur la base à travers un tableau ou une diagramme, sont utilisés de nombreuses fois au cours de la conception de nouveaux rapports alors la librairie contiendra ces éléments et permettra une réutilisation plus facile.

Page 19: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Les composants qui peuvent être ajoutés à la librairie incluent les data sources et sets, les paramètres des rapports, les tableaux, graphes, thèmes et images… La nouvelle librairie à une extension '.rptlibrary'. Une fois la librairie crée et sauvegardée le développeur pourra importer la librairie pour l’utiliser dans la conception de rapports. Il pourra facilement inclure les composants aux rapports grâce à un simple drag-and-drop. De même un simple import de la librairie suffira pour l’adapter au rapport utilisé. Explications : http://www.theserverside.com/tt/articles/article.tss?l=EclipseBRT

4.6 Créer un template de rapports Nous allons vu que lors de la création d’un rapport nous avons le choix entre plusieurs modèles, Birt donne la possibilité de créer nos propres modèles (template )de rapports adaptés à nos besoins. Ce modèle proposera une structure et un design prédéfini qui facilitera le développement ultérieur de nouveaux rapports.

figure 12 : Création d’un template

Une fois le template crée on le publie. Il sera maintenant disponible dans la liste de templates proposés dans Birt lors de l’ajout d’un nouveau rapport. En particulier nous avons vu comment proposer un template avec une entête adaptée (logo de l’université). La création de template pourra être particulièrement utile dans le cas ou nous souhaiterions personnaliser la présentation des rapports générés par QBE dans SpagoBI. Cette fonctionnalité étant en cours de développement nous n’avons pas pu la tester.

Page 20: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 13 : Exemple de rapport BIRT sur la base freebo

4.7 Ajouter un rapport à SpagoBI

4.7.1 Introduction L’ajout de rapports pré générés dans Birt à SpagoBI peut être particulièrement utile pour l’utilisateur final dans le cas ou celui ci peut disposer d’un développeur/gestionnaire de la base pouvant lui proposer une liste de rapports adaptés à ces besoins. Les étapes principales pour exécuter un rapport pré-généré de Birt dans SpagoBI sont : 1. Créer un répertoire pour mettre les rapports 2. Importer les rapports crées dans Birt dans ce répertoire. 3. Tester le Document valider le document (passer l’état de test à release) se logger en bidev ou bitest. Sinon dans l’étape suivante 4. Exécuter le Document en se loggant en user staff_gen par exemple (nous avons également ici la possibilité de valider le document) A noter qu’une modification sur la base de données entraîne une modification de l’affiche du rapport pré-généré dans SpagoBI.

4.7.2 Créer un dossier Afin de pouvoir insérer les rapports et les rendre accessible il faudra créer au préalable un répertoire dans l’arborescence de SpagoBi pour les entreposer. Pour cela nous allons suivre les indications du paragraphe 6.2.1.FUNCTIONALITIES MANAGEMENT du document quickstart. De fait il conviendra de s’identifier en biadmin/biadmin pour pouvoir créer un répertoire. Ensuite il faudra aller dans l’onglet « Document and tree management ».

Page 21: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 14 : Document and tree management

Puis sélectionner « functionnalies tree » pour apercevoir l’arbre complet.

figure 15 : Functionnalities management

Ensuite il suffira de cliquer sur une racine et de sélectionner insert pour insérer un nouveau répertoire.

4.7.3 Ajouter les rapports L ‘étape suivante ne nécessite pas nécessairement de changer d’identifiant mais il est conseillé de le faire à partir du profil développeur : bidev/bidev. Il faudra aller dans l’onglet « development Environnment » et changer la vue en arbre en cliquant sur l’image du milieu

Page 22: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Puis conformément aux indications du quickstart(6.3.4.DOCUMENT CONFIGURATION), pour importer les rapports crées dans Birt dans le répertoire de notre choix il faudra cliquer sur l’icône « insert ».

figure 16 : Document configuration

De la on remplira les champs label/name/Engine (BirtEngine) Puis on ira chercher le « report » ou il se trouve, et enfin on cochera dans quel répertoire on veut le mettre.

figure 17 : Ajout du fichier de report dans SpagoBI

4.7.4 Tester et valider les rapports Maintenant afin de vérifier si le rapport est bien exécutable, on se peut se connecter, soit on reste connecté en biadmin, soit en bidev/bidev soit en « tester » (qui est le profil spécifique aux tests et aux validations).

Page 23: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Pour tester si l’exécution marche bien et changer ensuite l’état de « development » à « released » . Il suffit ensuite de cliquer sur le rapport et de sélectionner « execute » pour lancer l’exécution du rapport (à noter que selon les droits on peut changer l’état du rapport)

4.7.5 Exécution

Voilà le rapport est correctement installé sur la plate-forme SpagoBI, il ne reste plus qu’à s’identifier en tant utilisateur (staff_gen par exemple) Puis aller l’onglet navigation, ou l’on verra apparaître l’arbre des répertoires avec les documents présents.

figure 18 : Navigation

On exécute le rapport sur un simple clic gauche.

figure 19 : Exemple de rapport dans SpagoBI

Page 24: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Sources : Présentation et Fonctionnement de BIRT : http://www.eclipsetotale.com/articles/BIRT.html Par ailleurs présence de nombreux tutoriaux sur le site officiel: http://www.eclipse.org/birt/phoenix/tutorial/ 5 Hibernate

5.1 Introduction Pour faire fonctionner QBE à partir de notre propre source de base de données il est nécessaire définir au préalable un nouveau modèle de la base de données. Ce modèle doit être réalisé à l’aide de Hibernate et consiste en la création d’un fichier (jar). Ce fichier est en fait un « datamart », sorte d’entrepôt de données qui décrit la « structure » de la base de données sur laquelle on souhaite appliquer du QBE depuis SpagoBI.

5.2 Présentation d’Hibernate Hibernate est un plugin Eclipse qui nous permet de manipuler les données d'une base de données relationnelle sous forme d'objet (ie un framework de mapping objet/relationnel. Ou de persistance objet des données.). Le fait de manipuler directement les données d'une base sous forme d'objet est beaucoup plus pratique, cela nous permet de nous défaire de toute la couche SQL.

figure 20 : Une architecture en couche (Source : hibernate.org)

Page 25: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

De plus, cela permet de définir clairement la limite entre la persistance et la couche métier, ce qui se révèle très utile dans le cas d'une application trois-tiers. Nous allons, cependant, nous intéresser à une couche plus basse d'une architecture applicative, la couche d'accès aux données. Celle-ci permet d'interfacer le code métier avec une source de données. L'intérêt est de pouvoir changer de base de données en n'ayant besoin de ne modifier que la couche d'accès. L'utilisation de Hibernate permettra d'utiliser n'importe quelle BDD, tout en gardant le code Java identique. Pour l'exemple ici, cela dit, nous allons nous servir de MYSQL. Pour télécharger la dernière version d'Hibernate (3.2.0), il suffit d'aller le chercher sur sourceforge http://sourceforge.net/project/showfiles.php?group_id=40712&package_id=12778

5.3 Utilisation d’ Hibernate Pour créer notre fichier datamart.jar, nous devons suivre une procédure précise. Dans Eclipse (où Hibernate est installé), on crée tout d’abord un nouveau « projet Java ». A ce projet, on ajoute (new) un nouveau fichier de configuration Hibernate, « hibernate.cfg.xml ». C’est ce fichier qui prend en paramètres les données utiles pour la connexion avec la base de données souhaitée :

figure 21 : Ajouter un fichier de configuration Hibernate

Page 26: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 22 : Configurer le fichier cfg

Type de la base : mySQL/PostgreSQL/,… Driver de la base : exemple pour postgreSQL : org.postgreSQL.Driver url de la connexion : sous la forme « jdbc:typeDeBase://adresse:port/baseDeDonnées login : login pour la connexion à la base de données password : mot de passe pour la connexion à la base de données On prend soin de placer se fichier dans le répertoire qui contient les sources du projet. Nous configurons la « console hibernate » associée au fichier précédent, puis nous devons générer le code Hibernate. Cette étape permet de générer des classes (.java) pour toutes les tables de la base de données et les fichiers de mapping xml associés que nous pouvons apercevoir dans l’arborescence du projet au sein d’Eclipse. Il nous reste alors à exporter le projet sous la forme d’une archive jar : datamart.jar.

figure 23 : Exporter le fichier

Page 27: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Le fichier est maintenant prêt à être importé dans SpagoBI. 6 QBE

6.1 Présentation Query By Example est l’outil intégré à la plateforme SPAGOBI pour créer des requêtes à partir d’une interface graphique. Cette fonctionnalité est importante dans notre projet car elle va permettre à l’utilisateur final, non informaticien, d’interroger une base de données sans connaître le langage SQL et afficher des résultats pertinents.

6.2 Paramètrage QBE permet, au sein de SpagoBI, d’interroger une base de données au travers d’un « datamart ». Pour ce faire, il est tout d’abord nécessaire de modifier des fichiers de configuration de la plateforme de Business Intelligence pour renseigner la présence d’une nouvelle connexion à un base de donnée au travers de QBE. Il faut ainsi modifier les 5 fichier xml suivants (« exo-home » signifie le répertoire désignant le serveur Tomcat avec exo-portal).

a) Dans exo-home/conf/server.xml, on indique les paramètres de définition d’une nouvelle source de données comme une ressource d’application d’un serveur JNDI. Il convient de rajouter ces lignes à l’intérieur de la balise <GlobalNamingResources> :

<Resource name="jdbc/sbifoodmart2" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/sbifoodmart2"> <parameter> <name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>org.postgresql.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:postgresql://localhost:5432/freebo</value> </parameter> <parameter> <name>username</name> <value>freebo</value> </parameter> <parameter> <name>password</name> <value>freebopass</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter>

Page 28: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

<name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter> </ResourceParams> où jdbc/sbifoodmart2 est le nom de la ressource JNDI (le choix de ce nom vient du fait que la ressource JNDI de démonstration était nommée jdbc/sbifoodmart).. b) Dans exo-home/conf/catalina/localhost/SpagoBIQbeEngine.xml, on indique au moteur

QBE l’existence d’une nouvelle source de données en remplaçant la ligne désignant l’ancienne par celle désignant la nouvelle :

<ResourceLink name="jdbc/sbifoodmart2" type="javax.sql.DataSource" global="jdbc/sbifoodmart2"/> à l’intérieur de la balise contexte. c) On ajoute cette même ligne dans le fichier exo-home/conf/catalina/localhost/spagoBI.xml d) Dans

exo-home/webapps/SpagoBIQbeEngine/WEB-INF/conf/data_access.xml, on associe le nom de la source de donnée (« jdbc/sbifoodmart2 ») à un nom que l’on a choisi : « Foodmart2 » (le choix de ce nom vient du fait que la source de donnée de démonstration était nommée Foodmart).

e) Enfin, dans le fichier exo-home/webapps/SpagoBIQbeEngine/WEB-INF/web.xml, on ajoute ces 4 ligne dans la balise <Webapp> :

<resource-ref> <description>Foodmart2 db</description> <res-ref-name>jdbc/sbifoodmart2</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

Les fichiers de configuration modifiés, il faut maintenant importer et déployer le datamart au sein de la plateforme de Business Intelligence. Pour ce faire, il est nécessaire de démarrer SpagoBI et d’aller sur la page du moteur de QBE par le navigateur à l’adresse http://localhost:8080/SpagoBIQbeEngine/ .

Page 29: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 24 : Page d’accueil du moteur QBE de SpagoBI

Après avoir cliqué sur le logo, il est nécessaire de se logger en tant qu’administrateur de SpagoQBEEngine. Ces administrateurs et leur mot de passe sont définis dans le fichier exo-home/webapps/SpagoBIQbeEngine/WEB-INF/conf/autorization.xml Il est à noter que les mots de passes sont cryptés dans ce fichier. Pour les générer, Engineering Ingegneria Informatica a prévu un utilitaire (QbeEnginePasswordGenerator.sh sous Unix, QbeEnginePasswordGenerator.bat sous Windows) à télécharger à cette adresse : http://forge.objectweb.org/project/download.php?group_id=204&file_id=7921 Voici son interface, très simple :

figure 25 : Interface du générateur de SpagoBIQbeEngine

Il est à noté que le script .bat ne fonctionne pas sous Windows mais uniquement sous unix avec une erreur non bloquante lors de son lancement. Maintenant loggé en administrateur, nous pouvons charger notre datamart, en lui donnant un nom logique qui correspond à celui de l’argument « name » de la balise « connection » ajoutée dans le fichier exo-home/webapps/SpagoBIQbeEngine/WEB-INF/conf/data_access.xml. et en allant le chercher sur le disque à l’aide du bouton parcourir :

Page 30: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 26 : Chargement du datamart dans SpagoBIQbeEngine

Une fois cette étape effectuée, le datamart « Foodmart2 » apparaît en haut de l’écran :

figure 27 : Ajout du datamart dans SpagoBIQbeEngine

Le datamart peut donc être lancé depuis cette page. Pour cela, il convient de cliquer sur son icône correspondante représentant un loupe (la crois sert à supprimer le datamart). Il nous est alors demandé le « dialect » de la source de donnée (mySQL, postgreSQL, Oracle,…)

figure 28 : Sélection du dialect du nouveau datamart

Un clique sur la disquette et l’on peut faire des requêtes graphiques sur notre base de données.

Page 31: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

6.3 Fonctionnement L’interface QBE se présente ainsi :

figure 29 : Interface du moteur de QBE

On aperçoit toutes les tables (qui rentrent dans la fenêtre) de notre base de données « freebo », qui laissent apparaître leurs champs lorsqu’elles sont cliquées. Cette première étape est appelée « Field Selection » comme l’indique l’onglet (haut de la page » sélectionné. On trouve ensuite des étapes facultatives dans l’interrogation de la base : - conditions : conditions sur les champs de données sélectionnés. - Ordering : pour classer ses résultats - Grouping : pour les grouper - View Query : pour voir la requête SQL générée par le moteur - Save Query : pour la sauvegarder Ensuite, l’étape obligatoire : Execute Query pour générer les résultats associés à la requête de l’utilisateur. Ceux-ci s’affichent alors à l’écran :

Page 32: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 30 : Affichage des résultats d’une requête QBE Ici on affiche toutes les filières de la base dont le type est « iut ». Comme on peut le voir, il est possible de les exporter sous plusieurs formats « connus » tels que pdf, xls, xml,… La démonstration que nous venons de voir s’effectue depuis la page du moteur QBE de SpagoBI et sous le login d’un administrateur QBE. Ce paraît évident, c’est qu’un utilisateur lambda puisse effectuer une telle opération depuis l’interface principale de SpagoBI et sous son login ou du moins un appartenant au type « utilisateur » (« Users »). Pour ce faire, il est nécessaire de définir un document de « type datamart » au sein de SpagoBI. Une fois connecté sur SPAGOBI en biadmin / biadmin (profil « technicien»), il faut aller sur l’onglet « document and tree management », sélectionner les documents de type « QBE », montrer les templates en cliquant sur « Show document templates ». Les différents templates s’affiche, il convient alors de télécharger celui à modifier. C’est dans ce fichier xml que l’on remplacera les lignes existantes par celle-ci : <QBE> <DATASOURCE name="Foodmart2" dialect="org.hibernate.dialect.PostgreSQLDialect" /> <DATAMART name="Foodmart2"/> </QBE> en rapport avec le nouveau datamart à « exploiter ». Il faut à présent charger ce fichier modifié grâce au bouton « parcourir », puis sauvegarder.

Page 33: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

figure 31 : Interface de modification des templates QBE

Ainsi, un utilisateur (et non un technicien), loggé sous staff_gen/staff_gen peut accéder aux fonctionnalité du moteur QBE depuis l’interface principale de SpagoBI.

figure 32 : Aperçu de l’Interface Utilisateur du moteur QBE dans SpagoBI

Page 34: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

7 Problèmes rencontrés :

7.1 Difficultés et problèmes rencontrés

- L’installation « manuelle » de SpagoBI en ligne de commandes nous a posé des problèmes sur les différents systèmes sur lesquels nous avons essayé : Windows XP, Linux et Mac OS souvent avec des erreurs différentes. Heureusement, en avril 2007, Engineering Ingegneria Informatica proposait un installeur graphique de la plate-forme Open Source. - Nous avons parlé de nos difficultés à faire des requêtes graphiques au sein de SpagoBI (QBE) sur la base de données que M. Spriet a installé sur notre serveur à l'IUP. La taille de la base de données à manipuler étant conséquente (800 Mo), cela a entraîné une portabilité délicate et des temps de chargement assez long pendant la manipulation. L’encodage des caractères du fichier de Dump de la base a également du être modifié. Nous avons du procéder sur des bases d ‘exemples de nos crues pour toutes les phases de tests et d’apprentissages.

- Pour installer la base de donnée sur une machine Windows, il est nécessaire que le disque soit partitionné en NTFS, ce qui exclu les autres modes.

- Talend Open Studio a posé un problème bloquant sur un composant (tmap), ce que nous avons signalé sur le forum officiel. Il s’agissait d’un bug reconnu par l’équipe de développement, il nous a fallu changé de version de logiciel (lien sur le forum : http://www.talendforge.org/forum/viewtopic.php?id=476) pour passer de la M3 à la RC1.

- Trouver les bonnes versions des solutions intégrées à SpagoBI, par exemple SpagoBIBirtEngine ne tourne qu’avec Birt version 2.0.1. et cela n’est pas indiqué implicitement.

- La solution étant jeune et en pleine évolution, les points manquants et défaillants sont encore nombreux et en cours de résolutions.

- De plus la communauté Internet étant peu développée et très peu active, les cas de blocage furent nombreux et mirent du temps à se résoudre.

- Difficulté évidente à « s’auto former ».

- La réalisation de ce fichier pour la base de donnée du projet freebo, nous a engendré 8 erreurs pour huit classes distinctes. Il a donc fallu supprimer ces classes (ainsi que les fichiers de mapping xml associés) du projet pour pouvoir créer le .jar. Dans le cas contraire, le .jar que l’on importe dans SpagoBI génère une erreur bloquante qui affiche les deux caractères ‘]>’ au sein de la page web en lieu et place des tables et champs de la base de données.

Page 35: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

7.2 Forums Voici les sujets que nous avons crée où dont nous avons participé dans différents forums: - Forum officiel de SpagoBI (http://forge.objectweb.org/forum/?group_id=204) : Sujet : « Problem with the jndi server definition » http://forge.objectweb.org/forum/forum.php?thread_id=3448&forum_id=862 Sujet : « how to change the QBE datasource » http://forge.objectweb.org/forum/forum.php?thread_id=3402&forum_id=862 Note : ce sujet est resté sans réponse. Sujet : « Errors when launching spagoBI » http://forge.objectweb.org/forum/forum.php?thread_id=3354&forum_id=862 - Forum officiel de Talend Open Studio (http://www.talendforge.org/forum/) : Sujet : « How to connect 2 databases » http://www.talendforge.org/forum/viewtopic.php?id=406 Sujet : « DBConnection problem » http://www.talendforge.org/forum/viewtopic.php?id=429 Sujet : « tmap editor error » http://www.talendforge.org/forum/viewtopic.php?id=476 Sujet : « A beginning error with DBConnections » http://www.talendforge.org/forum/viewtopic.php?id=475 - Forum de Hardware.fr (http://forum.hardware.fr/) Sujet : « Problème d'encodage de caractères » http://forum.hardware.fr/hfr/OSAlternatifs/Codes-scripts/probleme-encodage-caractere-sujet_63206_1.htm Note : ce sujet fait suite au problème d’encodage du fichier dump de la base freebo. - Forum de Developpez.com (http://www.developpez.net/forums/) Sujet : « Comment installer birt sous MacOs X » http://www.developpez.net/forums/showthread.php?p=2067015#post2067015 Sujet : « Hibernate et le QBE » http://www.developpez.net/forums/showthread.php?p=1953381#post1953381 Sujet : « [SpagoBI] Recherche de documentation » http://www.developpez.net/forums/showthread.php?p=1953122#post1953122

Page 36: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

Sujet : « Si qqun connait spagoBI » http://www.developpez.net/forums/showthread.php?p=1952741#post1952741 Sujet : « Recherche ETL pour SPAGOBI » http://www.developpez.net/forums/showthread.php?t=283818 8 Organisation du travail

• Semaines du 21 janvier au 5 février o Analyse comparative technique des solutions SpagoBI et Pentaho

• 7 février : o Choix de la solution avec monsieur Spriet

• Semaine du 12 au 18 o Proposition de planning o Prévision pilotage o Développement de la Page Web du projet.

• Semaine du 19 au 25 février o Installation Tomcat et java JDK à nos domiciles. o Recherche d’informations pour le choix de l’ETL, l’outil d’extraction de bases

de données (la partie principale de notre projet) o Entre Kettle (le plus répandu) et Talend Open Studio (en voie d’intégration

avec la plate-forme SpagoBI) nous avions d’abord pensé utiliser Kettle, puisque Kettle marche avec du java et Talend Open Studio avec du Perl.

o Mais le 28 février, nous avons appris que Talend Open Studio venait de sortir une version qui supporte java. Donc le choix de l’ETL s’est porté sur Talend Open Studio.

• Semaine du 25 au 4 Mars

o Installation Tomcat et SpagoBI à nos domiciles

• Semaines du 4 Mars au 6 Avril o Tentatives d'installation d'eXo-Tomcat pour SpagoBI sur le serveur de l'IUP. o Prise en main de Talend Open Studio (outil d'ETL) et de Birt (générateur de

rapport).

• Semaines du 10 Avril au 11 mai o Prise en main de Birt pour la création de « reports » sur des données

implémentées au sein d'un SGBD (postgreSQL dans notre cas) d’exemples personnalisés.

o Tests pour le fonctionnement de la partie « qbe » (Query by example) de SpagoBI pour pouvoir faire des requêtes graphiques en ligne sur une base postgreSQL.

o Installation et prise en main d'Hibernate (plugin Eclipse de framework de mapping objet/relationnel)

o Conception d’un datamart nécessaire pour le fonctionnement de SPAGOBI sur notre base de données.

• Semaines du 12 Mai au 28 Mai

Page 37: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

o Essais pour faire fonctionner le « qbe » sur la base de données de M Spriet se trouvant sur Harry (nécessité de faire un « dump » de la base).

o Développement final du site Web du projet. o Essais pour pouvoir présenter au sein de SpagoBI des rapports concernant la

base de données de M Spriet. o Création de templates et de « reports » avec BIRT sur des données

implémentées au sein de la base de données fournie (postgreSQL dans notre cas).

o Ajout de ces « reports » dans SPAGOBI (test sous XP et MacOS X). o Facultatif : installation de SpagoBI sur le serveur de l'IUP avec Talend Open

Studio et BIRT (nécessité de l'installation d'un serveur X sur le serveur).

Page 38: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

9 Conclusions Le domaine de la Business Intelligence regroupe des fonctionnalités très demandées dans le domaine de l’informatique. Les outils de ce type sont complexes, lourd à mettre en place et le plus souvent payants. Mais depuis quelques temps, certains logiciels, à l’image de SpagoBI, proposent des solutions open source et gratuites. Ces produits sont encore jeunes mais tout à fait utilisables et évoluent à grands pas. La découverte, l’installation et l’utilisation de SpagoBI nous a permis de voir qu’il était possible de remplir l’objectif de notre projet à travers cette solution. Une fois installée et configurée, cette plate-forme de Business Intelligence nous a prouvé qu’à travers celle-ci, nous pouvions créer des groupes d’utilisateurs, interroger n’importe quelle base de données graphiquement et dresser des rapports prédéfinis sur les données qui évoluent au sein de la base. Ainsi, les utilisateurs non-informaticiens peuvent accéder en ligne comme ils l’entendent aux données dispersées dans le système d’informations et les mettre en forme pour les exploiter. Ce rapport présentes toutes les marches à suivre pour

- installer et paramétrer SpagoBI - extraire des informations à partir de plusieurs bases de données (ETL) - définir de nouvelles connexions vers dans nouvelles bases de données pour pouvoir les

interroger graphiquement en ligne au sein de SpagoBI (Hibernate, QBE) - définir des rapports prédéfinis, intégrés dans SpagoBI qui évoluent avec les données

physiquement implémentées (BIRT) Nous avons du faire face à la complexité et la taille de la solution à développer. Malgré le fait que nous nous intéressions seulement à la partie création graphique de rapports, nous avons conclu qu’il était indispensable d’aborder les différentes étapes d’un projet de Business Intelligence pour pouvoir exécuter le QBE. Cela a entraîné des contraintes de temps d’apprentissage conséquent qui ont fait qu’au niveau de l'organisation et de la gestion du projet nous avons du passer par une longue phase d’apprentissage en parallèle pour comprendre les concepts fondamentaux de la solution. Par ailleurs, parmi les orientations qui peuvent être envisagées : SpagoBI donne la possibilité d’utiliser le scheduler intégré à TOS afin d’automatiser l’accès aux bases de données. Une étude des besoins de l’utilisateur devrait permettre l’optimisation de l’exploitation de la base de données pour explorer les possibilités qu’offrent TOS et pour spécifier son intégration. De même pour construire une librairie Birt et des templates (que nous avons mentionné précédemment). Concernant la définition des utilisateurs, nous avons la possibilité de créer de façon complète et détaillée des groupes d’utilisateurs afin d’adapter clairement les accès aux besoins des utilisateurs. Et ainsi fournir un schéma complet des utilisateurs. Une plate-forme libre de Business Intelligence peut difficilement se réduire à du QBE et du reporting et l’on peut très bien imaginer à terme remplacer une solution propriétaire. Ce qui s’avère fortement intéressant et mérite d’être étudié plus largement.

Page 39: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

10 Annexes :

10.1 Notice d’installation SPAGOBI Il est recommandé d’installer d’abord Tomcat avec exo-Portal, puis l’installation graphique de SpagoBI. Ensuite les installations de Birt, Hibernate ( plug-ins Eclipse ) et Talend Open Studio. Toutes les sources et les notices se trouvent dans les liens suivants.

10.2 Versions et liens des fichiers utiles

10.2.1 Documentation : Installation Graphique : HowToUseSpagoBIInstaller--1.9.2.pdf http://forge.objectweb.org/project/download.php?group_id=204&file_id=7927 Installation manuelle : SpagoBI_eXoTomcat_Installation_Manual_1.4.3.pdf.zip http://forge.objectweb.org/project/download.php?group_id=204&file_id=7704 Configurer SpagoBI : SpagoBI_How_To-1.6.pdf http://forge.objectweb.org/project/download.php?group_id=204&file_id=7661 Pour débuter avec SpagoBI : QuickStart-0.9.2.pdf.zip http://forge.objectweb.org/project/download.php?group_id=204&file_id=7660 Petite aide visuelle pour SpagoBI : petite_aide_visuelle_spagobi.pdf http://www.altic.org/actualite/98.shtml Livret blanc de Talend Open Studio (Installation et prise main): Documentation sur BIRT (site officiel) : http://www.eclipse.org/birt/phoenix/ Documentation BIRT (site référence français) : http://www.eclipsetotale.com/articles/BIRT.html

10.2.2 Fichiers nécessaires au fonctionnement de SpagoBI : - exo-portal-1.1.4-tomcat.zip http://forge.objectweb.org/project/download.php?group_id=151&file_id=8171 - Espace de téléchargement de SpagoBI et de ses moteurs : http://forge.objectweb.org/project/showfiles.php?group_id=204

Page 40: Projet M1 Sujet 21 : Développement d'un logiciel simplifié ...projetspagobi.free.fr/docs/rapport_sem2.pdf · SpagoBI propose en téléchargement une version démo, celle ci propose

- SpagoBIInstaller-1.9.2-04062007.zip http://forge.objectweb.org/project/download.php?group_id=204&file_id=7970 - SpagoBIQbeEngine-bin-1.9.2-03302007.zip http://forge.objectweb.org/project/download.php?group_id=204&file_id=7921 - OpenOffice : http://download.openoffice.org/index.html - JDK : http://developers.sun.com/downloads/ - Birt 2.0.1 http://download.eclipse.org/birt/downloads/build.php?build=R-R1-2_0_1-200602221204 Note : Nous vous conseillons de prendre birt-report-designer-all-in-one-2_0_1. - Eclipse http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.2.2-200702121330/eclipse-SDK-3.2.2-macosx-carbon.tar.gz - Hibernate (JBossIDE-1.5-ALL.zip à dézipper) http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=72248&release_id=382687