Blog myBlog = BlogFactory.getWordPressBlog();
Article tagué Java-JEE
Contribution à l’ETL Open Source Talend Open Studio [Mise à jour]
28/03/09
Il y a maintenant de cela exactement un mois, j’ai suivi une formation sur l’ETL Talend Open Studio, et je dois dire qu’il m’a séduit :
- il est Open Source (dans sa version de base : on peut souscrire à une version professionnelle “Talend Integration Suite” disposant de fonctionnalités supplémentaires) ;
- le code généré peut être exporté sous la forme de batchs autonomes écrits en Java (ou en Perl, mais cette fonctionnalité m’intéresse moins), qui ne nécessitent pas de plateforme spécifique (autre qu’une JVM Sun).
Dans le cadre du projet sur lequel je travaille, les bases de données sont de type Informix. Or, Talend Open Studio disposait de peu de composants pour ce type de bases. En particulier, il était gênant de ne pas pouvoir utiliser ces bases en mode transactionnel.
Le produit étant Open Source, j’ai développé ces fonctionnalités, et avec l’autorisation de ma société, qui a sponsorisé ces développements, je les ai livrés à la communauté Talend.
Vous trouverez donc ces différents composants sur Talend Exchange :
- tInformixConnection, permettant d’initialiser une connexion à une base de données Informix ;
- tInformixCommit, permettant de faire un “commit” des opérations effectuées sur une connexion ;
- tInformixRollback, permettant de faire un “rollback” des opérations effectuées sur une connexion ;
- tInformixInput, évolution du composant original permettant de récupérer des données à partir d’une connexion existante ;
- tInformixOutput, évolution du composant original permettant d’insérer des données dans une table en utilisant une connexion existante ;
- tInformixRow, évolution du composant original permettant d’exécuter une requête SQL quelconque en utilisant une connexion existante ;
Mise à jour du 28/03/2009 : Les composants ci-dessus ont subi une mise à jour (correction de bugs, mise à jour des drivers JDBC d’Informix, etc.). De plus, deux nouveaux composants ont été développés :
- tInformixSP, qui n’est pas encore totalement stable. Ce composant permet d’exécuter des procédures stockées et fonctions d’une base de données Informix ;
- tFileDigester, qui permet d’obtenir le “checksum” d’un fichier par différents algorithmes de hachage (MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512) ;
Mise à jour du 11/05/2009 : 4 nouveaux composants développés, et ouverture du support dédié aux composants Talend.
Rumeurs de rachat de Sun par IBM
23/03/09
Depuis quelques jours, une rumeur circule sur Internet (ici, par exemple, et à plein d’autres endroits que l’on trouve avec Google).
Suite à cette nouvelle, un sujet-débat intéressant a été ouvert sur developpez.com.
Dans le cas où cette rumeur serait avérée, il se pose évidemment la question de l’avenir des produits développés/supportés par Sun, alors qu’IBM soutient des produits “concurrents” :
- Netbeans, alors qu’IBM soutient Eclipse ;
- MySQL, alors qu’IBM développe les bases de données DB2 (et dans une moindre mesure Informix)
- Glassfish, alors qu’IBM développe Geronimo, et surtout Websphere
Je ne peux pas faire de pronostics sur la décision que prendra (si les rumeurs sont avérées) IBM, mais j’espère que Sun continuera d’effectuer ses développements.
Tout d’abord, même si Sun et IBM font de l’Open Source, ils ne le font pas de la même façon. Les deux façons de faire sont défendables :
- Sun développe ses produits Open Source sous une licence proche de la GNU/GPL, et vend du service autour
- IBM développe ses produits sous une licence proche de celles d’Apache : la base d’Eclipse, par exemple, sera embarquée dans tous les produits de la gamme payante Websphere. Je comparerais ça avec Fedora, qui est la version de test des futures distributions Red Hat.
Ensuite, les différents produits sont complémentaires. La majorité de la communauté Java s’accorde à dire qu’Eclipse et Netbeans ont chacun ses avantages et ses défauts. Même si la fusion de ces deux IDE est faite en intégrant les avantages de chacun, la disparition d’un des deux seuls acteurs libres du marché risque à terme de ralentir les développements.
Mais attendons donc de voir ce qui va arriver…
Mise à jour le 20 avril 2009 : Finalement, c’est Oracle qui rachètera Sun cet été.
Réinventer la roue carrée
14/03/09
De temps en temps, dans le cadre du travail, on voit des choses amusantes, comme certaines offres d’emploi que l’on reçoit… ou encore des morceaux de code ! J’ai régulièrement l’occasion de faire des audits qualité du code de diverses applications… et récemment, il y en a une avec laquelle je me suis bien amusé.
J’aurais pu choisir de publier ce billet dans la catégorie Humour, un peu à la manière des articles de The daily WTF mais le sujet est malheureusement sérieux : le code en question est réel, il a été développé par une SSII (qui n’est pas celle qui m’emploie, mais dont je tairai tout de même le nom), et est déployé chez un de ses clients… qui se demandait pourquoi l’application avait des problèmes de stabilité et de performance.
Il est facile de critiquer et de se moquer si on n’a rien de mieux à proposer… C’est pourquoi, (avec l’aimable autorisation du propriétaire pour recopier ce code qui, vous allez le voir, n’a rien de confidentiel), je vais développer (ce qui est un bien grand mot pour les quelques lignes que je vais taper) la même fonctionnalité :
- avec les fonctionnalités natives du langage (Java) ;
- en obtenant de meilleures performances.
Mon premier Paris JUG
12/03/09
Après ce compte-rendu de ma deuxième participation à une conférence OpenDay, voici celui de la soirée web au Paris JUG.
Installer un serveur dédié
10/03/09
Le développement, ce n’est pas seulement un travail… c’est aussi une passion : ce sont juste les projets et les technologies qui changent ! Il y a quelques temps, je me suis dit qu’il n’y avait pas de raison pour que mes projets personnels soient moins bien développés que ceux sur lesquels je travaille dans un contexte professionnel. J’ai donc décidé de sécuriser mes développements personnels :
- utilisation d’un gestionnaire de configuration ;
- intégration continue, tests et déploiements automatisés des builds réussis ;
- etc.
Pour cela, il me fallait un serveur, distinct de ma machine de développement.
Sortie de Quotero 1.0
9/03/09
Jeudi dernier, j’ai assisté à mon deuxième OpenDay, sur la sortie de Quotero 1.0 à la Cantine. Pour mémoire, le premier OpenDay auquel j’ai assisté concernait la sortie de la plateforme décisionnelle Open Souce Spago BI 2.0 : j’avais fait un rapide compte-rendu de cette conférence sur le blog technique d’Alcion Group.
Voici donc le compte-rendu de la conférence sur Quotero.
Sortie de Lyria Leonardi 4.2
19/02/09
Je me permet de reprendre un billet du blog java de developpez.com pour signaler la sortie de la nouvelle version de l’outil Leonardi.
Les principales nouveautés de ce produit sont décrites dans le billet que je site : je ne les recopierai donc pas. En revanche, je ferai une (très) rapide présentation de l’outil (un résumé des informations que l’on peut trouver sur le site de Lyria) ainsi que du paradigme MDA auquel il se rattache, pour ceux qui ne le connaissent pas du tout.
Pour simplifier, Leonardi est un générateur d’IHM, qui se base sur le MCD de l’application : on lui donne en entrée le modèle de données, ainsi qu’un certain nombre de paramètres, et il conçoit l’interface de l’application.
C’est cette idée de générer des IHM (voire de manière plus générale du code) à partir du modèle de données qu’on appelle le “paradigme MDA”, qui a maintenant quelques années.
Des outils pour le mettre en pratique arrivent à maturité : même en omettant les solutions propriétaires, Leonardi n’est pas le seul acteur libre sur ce marché : il en existe au moins deux autres que sont AndroMDA et Appfuse.
Cependant, même si ces produits ont le même but, ils n’ont pas la même approche technique :
- Leonardi génère un code spécifique, le “MMI Model” (sous forme XML). Celui-ci est embarqué dans l’application finale, et est parsé dynamiquement à l’exécution par un MMI Engine, qui générera l’interface. Le “MMI Model” est générique, il existe plusieurs “MMI Engines”, spécifiques à la cible désirée (client riche, PDA, application web…).
- AndroMDA et Appfuse sont tous deux basés sur Maven. Chacun dispose de plusieurs “connecteurs” de sortie (JSF, Struts, SpringMVC), et en fonction de celui qui est choisi, ils génèrent le code correspondant. Aucun moteur spécifique à ces produits n’est nécessaire à l’exécution.
Je ne connais pas suffisamment ces différents produits pour pouvoir rentrer finement dans la présentation de leurs différences fonctionnelles. J’espère avoir l’occasion de les tester et de les comparer, mais au vu de mon emploi du temps, j’ai peur que ce souhait soit utopique…
Note : à côté de ces solutions gratuites, il existe plusieurs autres solutions MDA payantes, telles que Celerio de Jaxio. Il semblerait que cette solution offre beaucoup plus de fonctionnalités qu’un Appfuse (par exemple), mais le prix du “ticket d’entrée” n’est pas du tout le même.