mardi, décembre 28, 2010

JGroups : tour d'horizon

0 commentaires
Actuellement, le besoin de rendre les systèmes ou les applications interopérables est indéniable. Pour ce faire, de nombreuses technologies ont vues le jour. Il peut s'agir des MOM (Message-Oriented Middleware), des protocoles de communication entre les applications clientes et serveurs (REST, Soap, RMI, ...), de solutions propriétaires utilisées pour permettre la communication entre les serveurs pour des problématiques de réplication ou de synchronisation ou même de solutions basées sur le paradigme NoSQL.
Cependant, il est important de ne pas oublier que nos couches basses restent les protocoles TCP ou UDP et que répondre par un grand concept tel que MOM, réplication de serveurs ou cache distribué sur une problématique ne permet pas de savoir ce qui se trame derrière... 
Un produit souvent méconnu est utilisé en interne pour les problématiques de communication entre serveurs et même si, à ce jour, je ne connais pas d'implémentations de MOM qui l'utilise, il pourrait être un très bon candidat pour ces dernières en interne. Il s'agit de JGroups.
Aussi, cet article va tenter de donner un rapide tour d'horizon sur JGroups en présentant ses concepts. Il s'appuiera sur sa version stable courante, à savoir la version 2.11.0.
A noter que ce tour d'horizon s'appuie très fortement sur le manuel de référence de JGroups.

lundi, décembre 20, 2010

lundi, décembre 06, 2010

JMX pour les nuls... - Chargement dynamique de MBeans - Partie 6

0 commentaires
Cet article toujours dans la lignée de ma petite série d'articles sur JMX (cf. introduction, partie 1 portant sur les généralités, partie 2 portant sur les différents MBeans et le concept de Notification, partie 3 sur les agents JMX, partie 4 sur les classes de base et partie 5 sur le MBeanServer) sera plus accès sur les capacités de chargement dynamique des MBeans. Cependant, il n'abordera que succinctement cette partie car il est nécessaire  d'avoir une très bonne connaissance du fonctionnement du classloader et qu'un simple article ne saurait l'aborder comme il se doit.


lundi, novembre 29, 2010

dimanche, novembre 21, 2010

JMX pour les nuls... - Les classes de base - Partie 4

0 commentaires
Cette quatrième partie sur JMX (cf. introduction, partie 1 portant sur les généralités, partie 2 portant sur les différents MBeans et le concept de Notification et partie 3 sur les agents JMX) permettra de présenter les classes de bases de JMX c'est-à-dire les classes qui sont manipulées en interne par les API de JMX à savoir :







  • ObjectName
  • ObjectInstance
  • Attribute
  • AttributeList

lundi, novembre 08, 2010

JMX pour les nuls... - Les agents JMX - Partie 3

0 commentaires
Cette troisième partie sur JMX reste dans la continuité de la série d'article sur ce sujet (cf. introduction, partie 1 portant sur les généralités et partie 2 portant sur les différents MBeans et le concept de Notification) en introduisant plus précisément ce qu'est un agent JMX et à quoi il sert.
Les articles qui feront suite préciseront les concepts manipulés par un agent JMX beaucoup plus en profondeur.

mercredi, novembre 03, 2010

JMX pour les nuls... - Les différents MBeans et la notion de Notification - Partie 2

1 commentaires
Mon précédent article portant sur la présentation générale de JMX a permis de poser les bases quant aux concepts fondamentaux. Cette seconde partie ainsi que les suivantes consistent en une descente plus en profondeur dans les entrailles des spécifications en reprenant les différentes notions vues précédemment. 

Ainsi, cette partie traitera des différents MBeans et du concept notification.

mercredi, octobre 27, 2010

mardi, octobre 26, 2010

JMX pour les nuls... - Introduction

0 commentaires
Certains l'auront peut être remarqué mais cela fait un moment que je n'ai rien posté sur mon blog. En fait, j'ai été un peu occupé à faire quelque chose qui me tenait à coeur depuis un moment... : la lecture complète des spécifications JMX (ouais, ça va, on s'amuse comme on veut/peut... ;-) ). Du coup, je me suis dit que cela pouvait également intéresser d'autres personnes qui aurait pu être découragées par la version agrégée de la spécification (ie. contenant la JSR 3 - Java Management Extensions (JMX) Specification - en version 1.4 et la JSR 160 - Java Management Extensions (JMX) Remote API - en version 1.0) qui fait très exactement 290 pages et qui se veut être, à ce jour, la dernière en date.

jeudi, septembre 23, 2010

Désolé... ;-)

0 commentaires
Voilà, je tenais à m'excuser auprès de mes fidèles lecteurs (comment ça personne ne lit ce blog...??? :( ) parce que je ne sais pas si vous avez remarqué mais j'avais mis un compteur pour la sortie d'ubuntu 10.10.

mercredi, septembre 08, 2010

NoSQL au Paris JUG

0 commentaires


Voilà! C'est la rentrée!... et c'est aussi la rentrée de tous les User Group : cela annonce une année bien chargée en conférences (et donc en émotion ;-) ) et il est probable qu'il y en ait pour tous les goûts! Donc plus aucune excuse pour ne pas trouver chaussure à son pied!

lundi, juin 14, 2010

Sooner is better

0 commentaires
Bon, voilà, cela fait un moment que je n'ai pas bloggé... manque d'inspiration peut être... manque de temps ou changement des priorités pour consacrer plus de temps à la lecture de livres en retard...
Dans cet article, je voudrais revenir sur un point que j'avais légèrement abordé dans ce post portant sur les livrables mais en le développant pour se focaliser sur une petite réflexion portant sur l'importance de s'intégrer aux processus de compilation et de livraison au plus tôt... en fait, pour être plus précis, je n'avais pas vraiment abordé cette problématique mais cela vient du même constat... ;-)

samedi, mai 15, 2010

RTFM ou de l'importance de savoir lire une documentation

1 commentaires
Ce petit article est plus une tranche de vie ayant pour objectif de montrer l'importance de savoir lire une documentation qu'un "vrai" post intéressant...
Il est vrai que savoir trouver son information s'applique énormément dans le monde Open Source où il est crucial de savoir fouiller (documentation, forum, ...) lorsqu'un fait technique (anomalie? framework incomplet? cas d'usage délirant? ...) a lieu mais cela s'applique aussi dans notre vie de programmeur de tous les jours.

jeudi, mai 13, 2010

JMX et Firewall

0 commentaires
Cet article fait suite à mon post précédent qui, je le rappelle, pour ceux qui auraient eux le courage de le lire jusqu'à la fin ;-), avait pour objectif de rappeler en quoi JMX (Java Management eXtension) pouvait être une bonne réponse aux problématiques de supervision et d'administration dans une application (au sens large du terme). Cet article portera sur le sujet que je voulais initialement traiter, à savoir, comment accéder à un serveur JMX se trouvant derrière un Firewall. Cette problématique est indiquée sur le site de Sun/Oracle mais je vais, ici, faire un résumer de la méthode à suivre.

mercredi, mai 05, 2010

JMX ou comment administrer et superviser son système...

4 commentaires
Je n'ai encore fait aucun article sur JMX (Java Management eXtension). Pourtant, je pense qu'il s'agit d'une technologie indispensable pour toute application qui se veut un minimum sérieuse et industrialisable. Dans ce post, je ne parlerai pas de "comment ça marche" ou je ne fournirai pas de tutoriaux. Il s'agit juste d'un petit coup de gueule parce que j'en ai marre d'entendre toujours les mêmes inepties sur JMX...

Bon, pourquoi JMX me direz-vous? Encore une technologie? Encore un nouveau truc dans mon architecture à mettre en œuvre sur lequel il va falloir faire monter des gens en compétence et qu'il va falloir maintenir?

mercredi, avril 07, 2010

Orchestration ou Routage?

2 commentaires
Orchestration ou routage? Telle est la question qui se pose souvent... En effet, il est important de se poser la question sur la solution à adopter pour gérer, par exemple, des transformations ou du routage de messages dans un système asynchrone : s'agit-il de médiation technique ou de quelque chose de plus complexe (ie. de logique métier)?

PEtALS Link vient de mettre à disposition un livre blanc traitant du sujet en proposant différentes pistes pour choisir la solution d'implémentation.

D'ailleurs, j'en profite également pour mettre le lien vers la présentation de PEtALS ESB qui a eu lieu au JUG de Poitou Charentes.

jeudi, avril 01, 2010

Le plugin release (un peu) démystifié

2 commentaires

J'ai déjà longuement parlé de maven 2 dans des posts précédents (Petites astuces avec maven 2, De l'art du livrable et  Retour sur la mise en œuvre d'un environnement de développement). Ici, je vais revenir sur le plugin release en version 2.0 en explicitant ce que font ses goals prepare et perform plus concrètement.
En effet, il peut être utile de vouloir savoir quels sont les actions appelées et comment il est possible d'y ajouter son petit grain de sel... ;-)
Il est à noter que je ne reviendrai pas sur l'intérêt d'utiliser un tel plugin (ce n'est pas le sujet qui m'intéresse ici et d'autres blogs ou livres le feront mieux que moi) même si je ferai un petite piqure de rappel sur ce qu'il permet.

dimanche, mars 28, 2010

Petites astuces avec maven 2

0 commentaires
Ce post aura pour principal objectif de répertorier un ensemble d'astuces et de pointeurs sur maven2 (cela m'évitant également de rechercher dans mes liens ;-) ). Ne voulant pas répéter ce qu'y a déjà été traité par d'autres sites ou blogs, je me contenterai seulement de faire des références.

dimanche, mars 21, 2010

Retour sur le salon Linux Open Source

1 commentaires

Voilà, le salon Linux Open Source a fermé ses portes. Résultat des courses, 3 jours bien remplis où j'ai pu assister à pas mal de conférences sur divers sujets tels que :

  • l'atelier sur "Développement logiciel collaboratif : bonnes pratiques, premiers bilans"
  • la keynote sur "Oracle et l'Open Source :stratégie et initiatives - de Linux à MySQL via la virtualisation, GlassFish, Eclipse, les languages dynamiques de scripting, etc"
  • la table ronde sur "Interopérabilité : les standards ouverts à la base des architectures"
  • la table ronde sur "Progiciels : le logiciel libre envahit le domaine fonctionnel"
  • la table ronde sur "Virtualisation : retours sur investissement et bonnes pratiques de la virtualisation"
  • et le cycle OW2 : "Optimiser votre infrastructure d'entreprise avec les solutions innovantes du Consortium OW2" où j'ai plus précisément assisté aux présentations suivantes :
    • "Prenez de l'avance avec la nouvelle génération du décisionnel Open Source grâce à l'initiative OW2 Business Intelligence"
    • "Gestion autonomique des infrastructures du nuage pour le PaaS avec JASMINe : état des lieux et perspectives"
    • "Mettez la Data Integration dans votre ESB avec Talend et PEtALS"
    • "Comment gérer efficacement vos documents avec eXo DMS et la solutions BPM Bonita"
    • "Outils d'audit et diagnostic pour les développeurs et administrateurs d'applications Java EE"
La rédaction de CRs est en cours et ils seront disponibles sur le blog de So@t d'ici peu.
Merci à PEtALS Link pour le passe VIP et à So@t pour m'avoir permis de participer au Salon. C'était vraiment sympa de revoir et de discuter avec l'équipe de PEtALS Link, les personnes d'Orange L@bs, de FraSCAti et d'OW2, Alexis de Sun, Emmanuel de Silverpeas et tous mes anciens collègues.

Longue vie à l'Open Source!

Anomalies sur la mise en forme

0 commentaires

Je viens de constater qu'il y avait quelques problèmes de mise en forme avec le plugin que j'utilise pour la coloration syntaxique (SyntaxHighlighter) sur certains navigateurs.
En effet, il y a, au moins, les anomalies suivantes :
Aussi, je m'excuse pour ces soucis (qui ne sont pas de mon ressort...) mais, du coup, il peut s'avérer que certains fichiers présents dans les posts soient erronés...

lundi, mars 15, 2010

Spring Integration vs. Apache Camel

4 commentaires
Lors d'un post précédent, j'avais parlé des EIPs (Enterprise Integration Patterns) en expliquant qu'il s'agissait de Patterns permettant de normaliser les échanges de messages dans un système asynchrone.
Dans cet article, je vais tenter de présenter succinctement deux de ses implémentations : Spring Integration et Apache Camel.
En fait, pour être plus précis, je vais plutôt tenter de présenter la vision que j'en ai ainsi que la façon dont je les ai compris.
Ainsi, ce post n'a pas pour objectif de les détailler de manière exhaustive car ils sont trop complets pour cela et qu'un seul post ne pourrait suffire à les aborder tous les deux (leurs documentations font d'ailleurs, pour Spring Integration, plus de 130 pages, et pour Apache Camel, plus de 580 pages... cqfd... ;-) ) mais juste, comme je l'ai dit précédemment dit, d'aider à comprendre leurs différences (quelles soient conceptuelles ou structurelles).
Je ne reviendrai pas sur les concepts des EIPs ni de JBI que j'utiliserai dans la suite et pour cela, je vous renvoie sur internet ou sur mes posts précédents (ici et ).
Concernant les versions utilisées, cela n'a pas vraiment son importance ici car je m'intéresserai surtout aux principes de ces deux frameworks mais à titre indicatif, il s'agit des versions 2.0 pour Apache Camel et 1.3.0 pour Spring Integration (il me semble qu'il n'y a pas de modifications flagrantes dans les versions courantes qui sont 2.2.0 pour Camel et 2.0.0.M2 pour Spring Integration).

mercredi, février 24, 2010

JRebel ou comment accélérer le développement

0 commentaires
Dans des posts précédents (ici et ), j'avais parlé d'une façon d'utiliser maven 2 pour fournir, entre autre, une solution pour accélérer le déploiement d'applications web avec Cargo. Cependant, afin d'optimiser le temps de développement, il est préférable, plutôt que d'avoir à redéployer l'application web à chaque modification de son contenu (que ce soit sa vue, son contrôleur ou son modèle) ou de ses librairies tierces (ce qui est connu pour être un anti-pattern), de n'avoir pas à le faire mais d'avoir plutôt un mécanisme permettant de prendre les modifications à chaud afin de pouvoir tester le plus rapidement possible.
Il existe différentes approches telles que :
  • l'utilisation du plugin WTP d'Eclipse en lançant le conteneur de Servlet ou le serveur d'application directement au sein d'Eclipse,
  • l'utilisation du plugin Sysdeo sous Eclipse pour le conteneur de Servlet Tomcat,
  • ...
Cependant, aucune de ces solutions ne m'avait convaincu et je continuais à utiliser la bonne vieille ligne de commande.
Jusqu'au jour où j'ai entendu parlé de JRebel... Cette solution, bien que payante, remporte l'unanimité des suffrages dans la communauté open-source en raison de sa simplicité et de sa puissance.
Suite à l'obtention d'une licence gracieusement offerte par ZeroTurnaround lors du 2ième anniversaire du Paris JUG (merci à eux et longue vie aux JUGs!!), je ne pouvais que tester à mon tour...
Cet article va donc donner mon retour d'expérience.

dimanche, février 21, 2010

De l'art du livrable

2 commentaires
Au cours de certaines missions, je suis arrivé à un constat qui était que le processus de génération d'un livrable était souvent délaissé au profit de l'effort de développement de l'application.
C'est vrai qu'il peut être concevable qu'il ne s'agit que de la dernière étape d'un processus de développement, cependant, avec l'introduction de cycles courts (agilité, ...), pouvoir fournir rapidement un livrable de qualité au client est primordial.
Dans un post précédent, j'avais parler de la façon dont j'avais en place maven dans un processus d'usine logicielle. J'y avais également abordé succinctement comment il était possible de générer un livrable.
Ce post présente donc plus précisément comment cela est possible avec maven (je ne reviendrai pas sur le pourquoi car cela me parait évident dans le sens où c'est ce que verra le client final et que, tout le monde le sait, la première impression est très souvent importante - un peu comme lorsque l'on offre un cadeau à quelqu'un, l'emballage à son importance même si, au final, le cadeau est pourri... ;-) - ).

vendredi, février 12, 2010

Utilisation du remote debugger

0 commentaires
Juste parce que j'ai la flemme de toujours rechercher le lien et parce que je trouve que cet article explique et résume très bien l'utilisation du remote debug, je me permets de mettre un lien vers l'excellent blog de Fabrice Dewasmes :
http://jtruc.dewasmes.net/?p=162


java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n MonMachin

mardi, janvier 26, 2010

Ouvrages recommandés

0 commentaires


Ce post présente les ouvrages (techniques) que je recommande vivement... cependant, certaines références ne sont plus disponibles puisque l'éditeur O'Reilly a décidé de fermer sa branche française... dommage... mais les éditions anglaises sont toujours là!

lundi, janvier 04, 2010

Retour sur la mise en œuvre d'un environnement de développement

2 commentaires
Cet article présente la mise en œuvre que j'ai appliquée lors de la mise en place d'un environnement de développement devant s'interfacer, dans une démarche pseudo-agile, avec des outils d'intégration continue.
Il présentera, dans un premier temps, le contexte et les problématiques puis, dans un second temps, comment j'ai tenté de répondre à ces problématiques que ce soit d'un point de vue méthodologique que d'un point de vue technique. Bien sûr, les choix et les implémentations utilisés sont discutables, mais c'est aussi pour cela que j'ai créé ce blog (afin de faire partager mon expérience et d'avoir un retour) ;-)
Il ne présentera ni l'utilité des outils d'intégration continue ni celle d'une démarche agile (ce projet ne fonctionnait pas en agile mais mettait en œuvre quelques-unes de ses pratiques) qui sont très bien expliqués sur d'autres sites ou blogs. Enfin, il est à noter que ce projet possédait un existant et que mon rôle n'était pas de remettre en cause les solutions retenues.