lundi 9 février 2009

Rachat et concentration en Business Intelligence (BI)

La mondialisation impose aux entreprises d'être toujours plus performance et présente sur le marché. Les multinationales n'hésitent pas à investir dans le rachat d'entreprises (croissance externe). La Business Intelligence à le "vent en poupe" et tout le monde essai de prendre des parts de marchés, pour les plus gros qui sont en retard il suffit de racheter un produit/entreprise spécialisé.
Comme on a pu le voir avec Adobe Rachetant Macromédia (3,4Md$), cette concentration peut avoir des effets bénéfiques et compter quelques effets de synergie (1+1=3). Quel rapport avec la BI me direz-vous? Parce que la présentation de rapport est un élément important (Cf. Article rapport dynamique Pdf/Flex/Flash).

IBM :
- Rachat de Datastage (ETL Ascential) - 1,1Md$ - 2005
- Cognos - 5 Md$ - nov. 2007
*/ Cognos rachète Applix [applications financières] - 339 M$ - 06/09/2007
*/ Applix ayant racheté TM1, l'un des plus anciens moteurs OLAP d'analyse multidimensionnelle.

SAP :
- Business Objects - 4,8 Md€ - 08/10/2007
*/ BO avait racheté Cartesis [applications financières] - 225 M€ - printemps 2007
- Virsa Systems 2006
- Outlooksoft
- Pilot Software 02/2007

Oracle : (ETL ODI : Oracle Data Integrator)
- Rachat d'Hypérion - 3,3 Md$ - 01/03/2007
- Sunopsis -> ODI - 2006
- Siebel (progiciel CRM)
- Peoplesoft (ERP)
- HotSip (solutions d’infrastructures pour les opérateurs télécoms)
- ThorTechnologies & Octetstring (securité & gestion des identités)

Informatica : (ETL PowerCenter)
- Rachat de PowerData - 01/10/2008

Focus sur les ETL :
- Genio -> Hummingbird -> OpenText
- Sunopsis -> Oracle ODI
- Datastage : Ardent -> Informix -> Ascential -> IBM

[liste outils BI Open Source] [liste outils BI]

vendredi 6 février 2009

Logiciels Open Source dans la BI

[Article JDN illustré d'images] [Liste des outils BI (non Open Source)]
Le décisionnel est partout, en pleine concentration et expansion. Mais on peut compter sur de nombreux outils Open Source sur le marché permettant au PME de bénéficier de ses solutions.

ETL (Extract Transform Load) - [Etude comparative ETL réalisé par Manapps]
Analyse multidimensionnelle (Cube)
  • Mondrian : serveur OLAP écrit en JAVA (intégré à Pentaho solutions)
  • Palo : server OLAP pour excel
  • Jpivot, Jrubik, FreeOLAP : client Mondriant (bibliothèque)
  • Jpalo : client Palo (bibliothèque)
  • OpenI : rapport dynamique en provenance d'OLAP ...
Générateurs d'états (Reporter)
  • Birt, JasperReports : outil de conception de rapports basé sur Eclipse et un moteur d’exécution installable dans un serveur d’applications J2EE
  • JFreeReport (bibliothèque)
  • Générateur de graphiques :
  • JFreeChart (bibliothèque)
  • MarvelIt : dashboard

Datamining (analyse de données/statistiques)

Portail de Restitution (Web Reporter) - les suites BI
[Article original et le Blog de l'auteur]
[Cf. Outils bureautique/multimédia Open Source]

jeudi 5 février 2009

Ruby et les OLE

OLE : Object Linking and Embedding ("chaînage et incorporation d'objets")
Sorte de bibliothèques de fonctions au format Windows (*.dll)

Pourquoi les OLE sont si importantes ?
Les ole permettent d'accéder à toutes les fonctions des applications windows, et permettent de développer sous le pack office, mais aussi sur tout logiciel respectant cette architecture, ayant une API ou un SDK (c'est le cas de PowerAmc, BusinessObjects, Cognos...). Nous utilisons donc les API pour réaliser nos développement *QUID*.
Il est tout à fait possible d'intéragir avec le langage vba (qui peut comporter des facilités), mais qui est aussi très aisé sous Ruby ;) (créer tout de même un module pour récupérer les constantes).

[RubyDoc OLE] [SimWi's Blog] où se trouve un ex intéressant avec Word.
[Ruby OLE Browser] un script ruby permettant d'instrospecter vos objets/librairies disponibles.

NB: pour travailler avec des formats ouverts (OpenOffice, XML, PDF) on préfera utiliser des gem.

mercredi 4 février 2009

Installation d'une Gem Ruby

Une gem est une petite bibliothèque de classes,fonctions,modules (librairie - package de fonction étendues) pour répondre à un besoin précis. Etant réalisé par la communauté, testé, mise à jour, je vous conseille donc avant chaque développement de ne pas regarder s'il existe une gem (soit en standard, soit à télécharger). [RubyGem] [Documentation Gem] [liste]

Inclure une gem à son programme (équivalent à l'import d'un package java *
import java.rmi.*;*)
require 'rubygems'
require 'monPacket/maJolieGem'

La racine des gem se trouve : ruby\lib\ruby\gems\1.8\gems (ici gem en version 1.8)

Installation de RubyGems (si non installée).
- Télécharger la dernière version de rubygems (rubygems-1.3.1.zip par exemple).
- Décompresser l'archive.
- Ouvrir une fenêtre commande DOS
(Wx+R>tapez "cmd").
- Se positionner dans le répertoire de décompression de l'archive i.e. "C:\Temp\rubygems-1.3.1"
- Exécuter la commande "<>\ruby.exe" setup.rb.


Installation d'une gem : (pré-requis RubyGems doit être installé \bin\gem)
Rien de plus simple il vous suffit de vous rendre en mode command (Wx+R>tapez "cmd") et d'aller dans le répertoire des exécutables (bin) : eclipse\ruby\bin

- Aide : >$ gem --help
- Rechercher une gem avec nom (RegExp) : >$ gem list -r .*nom_gem.*
(ou >$ gem query --remote --name-matches *nom_gem*)
- Installer une gem : >$ gem install --remote *nom_gem*
- Liste des gems distantes disponibles : >$ gem query -r

ex.: installer rails :
>$ gem install rails

Résolution de problèmes :
  • Par ce moyen les dépendances sont automatiquement téléchargées
  • Si vous passez par un proxy, il ne vous sera peut être pas possible d'utiliser le "remote", procédez alors comme suit :
  1. Récuperer le proxy (adresse et port) (propriétés Internet Explorer>Connexions>Paramètres réseau)
  2. Créer une variable d'environnement HTTP_PROXY et y mettre la valeur précédemment récupéré e (Wx+pause>avancé>variables d'environnement) [ou juste pour la session]
  • Certains problèmes peuvent survenir car l'application gem est réalisé sous unix, il y a parfois des incompatibilités dans la gestion des chemins ("\","/"). Il vous suffit alors de :
  1. Chercher le(s) fichier(s) "rake_builder.rb" (faire une copie de sauvegarde)
  2. Remplacer "cmd += " RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path}" # ENV is frozen" par
  3. "cmd += " RUBYARCHDIR=\"#{dest_path}\" RUBYLIBDIR=\"#{dest_path}\"" # ENV is frozen", sauver [article référant]
  • Si vous n'avez pas le fichier "rake_builder.rb" tenter de mettre à jour RubyGem ou si rake n'existe pas (\bin)
  • >$ gem update --system
  • Rake ne fonctionne pas (compilation pour certaine librairie - "rake non reconnue comme commande interne"), le mettre à jour :
  1. >$ gem install -r rake
  2. ajouter le path pour rake : fenêtre dos >$ PATH=%PATH%;C:\eclipse\ruby\bin
  • En utilisant la commande gem, il est possible d'obtenir le message suivant "erreur : Cette application n'a pas pu démarrer car .dll est introuvable. La réinstallation de cette application peut corriger ce problème". Pour résoudre ce problème, il faut placer la (ou les) dll manquante(s) dans le répertoire bin de Ruby. Il est possible de télécharger les dll. Voici les 3 dlls qui peuvent être manquantes : zlib.dll, libeay32.dll, ssleay32.dll
Test de l'installation d'une gem : >$ ruby -e "require 'xml/libxml'"
Aucun message => OK ; -e:1:in `require': no such file to load => KO

mardi 20 janvier 2009

Installation Eclipse/Ruby

Avoir un environnement avec Eclipse/Ruby :
Installation - Install :
*/ Télécharger eclipse, ruby, jre
Installer Ruby dans le répertoire d'eclipse (eclipse\ruby) - (et la jre dans eclipse\jre)


*/ Il vous faut maintenant installer Core Frameworks (commun pour tous les langages) et Ruby IDE :
- Sur la page Dynamic Languages Toolkit downloads (dltk) récupérer un des liens (section "update site" stable)

- Aller ensuite dans Eclipse Help > Software updates...
- Onglet Available Software > Add Site...
- Coller le lien, sélectionner ensuite le Core et l'IDE (pas besoin du sdk, ni des sources)
---> Dynamic Languages Toolkit (DLTK)
-------> Dynamic Languages Toolkit - Core Frameworks
-------> Dynamic Languages Toolkit - Ruby Development Tools
- Cliquer sur Install... > Next > I accept the terms of the license agreements > Finish > Yes


*/ Référencer l'interpréteur pour créer un projet etc. :
- Une fois installé (Core/IDE), aller dans Eclipse Window > Preferences
Une section Ruby est alors créé.
- Aller dans Ruby > Interpreters > Add... ajouter ruby (vous pouvez écrire un chemin relatif à partir du répertoire eclipse)
---> Interpreter Type : Generic Ruby
---> Interpreter Name : ruby (par exemple)
---> Interpreter Executable : ruby\bin\ruby.exe (en chemin relatif)
- Cliquer sur OK > OK

Vous pouvez désormais créer des projets ruby!
NB: Interpreter Librairies [Ruby] est créé dans tout vos projets, vous pouvez alors créer un projet librairies, et faire un lien raccourci dans vos projets pour éviter de recopier l'ensemble des librairies à chaque projet.


*/ Lancer Eclipse avec une JRE autonome (jre dans le répertoire eclipse)
Il suffit de créer un raccourci avec les arguments suivants :
...\eclipse.exe -vm "jre\bin\javaw.exe" -data "workspace"
-refresh -showlocation
Ou bien il est possbile de créer un .bat dans le répertoire eclipse qui contient
eclipse.exe -vm "jre\bin\javaw.exe" -data "workspace" -refresh -showlocation


*/ Maintenant, nous allons créer un projet Ruby pour tester que tout fonctionne correctement. Dans Eclipse :
-
Cliquer sur File > New > Ruby Project
---> Project Name : Temp
---> Cliquer sur Create new project in workspace
---> Cliquer sur Use default interpreter
- Cliquer sur Finish
- Cliquer sur File > New > Empty Ruby Script
---> Source Folder : Temp
---> File : test_install.rb
- Cliquer sur Finish
- Saisir : puts "Ruby c'est trop fort"
- Cliquer sur Run > Run > Always save resources before launching > OK
Dans la fenêtre console, le message apparaît => tout est OK !


*/ RoR:
Projet Aptana - démo - article sur les auto-tests