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