Note de lecture : Open Source ESBs in Action, par Tijs Rademakers & Jos Dirksen

Note 5 : Un propos qui serait clair s’il n’était alourdi par la présentation de 2 ESBs et qui a prématurément vieilli.

Pour bien comprendre ce qu’est un ESB, le mieux reste encore de le mettre en pratique. C’est l’objet de ce livre : mettre en œuvre non pas un mais deux ESB et de comparer leurs cas d’utilisation. 11 chapitres sur 235 pages regroupées en 3 parties auxquelles il faut ajouter les 50 pages d’annexes sont nécessaires à ce défi.

La première partie est dévolue à la découverte du monde de l’intégration en général et de l’ESB en particulier. Le premier chapitre nous parle des cas d’utilisation des ESBs dans le monde des architectures J2EE. En fait, il va plus loin que cela en nous proposant un « hello world » avec chacun d’entre eux. C’est une bonne mise en jambe.

Après la présentation générale, vient l’architecture. Mule et ServiceMix (car c’est d’eux dont on parle) sont présentés du point de vue des concepts architecturaux, en empruntant largement les représentations officielles. Mais les auteurs montrent aussi les différents concepts en illustrant avec des fragments de code. Là aussi, c’est tout bon.

Présenter 2 ESBs présente aussi des difficultés. Ce chapitre 3 consacré à la mise en œuvre jongle entre les 2 plateformes. Cela rends la lecture compliquée et les 35 pages de ce chapitres semblent denses, sinon fouillis. Il eut été préférable de consacrer un chapitre à chacune des cibles.

Cette première partie se conclut par le chapitre 4 au cours duquel on va réaliser un mini-projet d’intégration avec Mule et avec ServiceMix. On y trouve aussi une évocation de Spring Intégration, encore balbutiant au moment de l’écriture de l’ouvrage mais qui soulève apparemment l’enthousiasme des auteurs.

La seconde partie est une plongée en profondeur dans les fonctionnalités des ESB. Il compte également 4 chapitres. On débute par le chapitre 5 où il est question de traitements sur les messages. On y évoque bien entendu le content-based routing, la validation et la transformation des messages. Le tout abondamment illustré de code avec en complément de Mule et surtout de ServiceMix : Apache Synapse et Camel.

Le chapitre 6 traite des connecteurs, de la manière dont ils s’intègrent et ils s’utilisent. On y passe en revue la connexion aux fichiers, à JMS, l’accès aux données via JDBC au mail, à JNDI ou au FTP. Chaque fois ServiceMix semble un peu mieux traité que son rival. Les 50 pages de ce chapitre ont un peu des allures de catalogue mais tout est clairement expliqué, illustré de schémas et de code, donc c’est O.K.

Le sujet peut paraître désuet aujourd’hui, pourtant il reste important : l’accès aux services Web SOAP est le thème du chapitre 7. Les deux plateformes s’appuient sur CXF aussi bien pour invoquer que pour être appelés. Le WSDL est déjà lui-même un peu touffu, il ne faut pas s’étonner que ce chapitre ne soit pas très simple d’accès. Last but not least, ce chapitre évoque aussi quelques normes WS telles que WS-Security ou WS-Adressing. Ca ne fait rien pour alléger le propos.

Cette seconde partie se conclut par un chapitre dévolu à la gestion d’erreurs et à la sécurisation des ESBs. C’est pratiquement un challenge d’y comprendre quelque chose. Mais c’est surement un sujet sur lequel on peut revenir plus tard, une fois que l’on s’est réellement approprié le sujet. Car les explications ne sont pas évidentes quand on débarque…

La 3ème partie est consacrée à des « case studies » qui s’avèrent en fait être un peu plus que des études de cas, mais des sujets avancés dans la mise en œuvre d’ESB. Le premier chapitre de cette dernière partie qui en compte 3 est consacrée aux Enterprise Integration Patterns de Gregor Hope. Après une courte introduction au sujet, on plonge dans la réalisation d’un système de réservation pour 3 restaurants en intégrant progressivement différents patterns des EIP. On passe ainsi du CBR au publish-subscribe tout en allant chercher des données en base… cela devient plutôt complexe surtout qu’il faut de surcroit faire cela sur 2 plateformes.

Je me demandais à quel moment on allait parler de monitoring. La réponse est : c’est au chapitre 10 ! On continue avec notre cas d’utilisation sur les restaurants et c’est aussi l’occasion d’aborder d’autres patterns comme le Message Store (c’est une base de données XML, eXist qui est utilisée ici). Comme on pouvait s’y attendre, on aborde aussi JMX. Là aussi devoir traiter 2 plateformes complique terriblement le propos. C’est d’ailleurs Mule qui tient la corde ici, il est mieux outillé pour gérer les instances de production. Pour ServiceMix, il faut en gros se tourner vers JConsole…

L’ouvrage se conclut sur le chapitre 11 et l’intégration d’un moteur de workflow ! Ca ne rigole plus et c’est même un peu trop pour le livre. Logiquement, c’est jBPM qui a été choisi. Mais on consacre aussi quelques pages à Apache ODE (qui semble aujourd’hui moribond). Je pense qu’on aurait pu faire l’économie de ce chapitre pour mieux traiter séparément les deux ESBs dans le reste du livre.

Les sujets abordés deviennent parfois ardus, mais le texte est globalement de bonne qualité et bien illustré. Comme je l’ai dit, il est rendu complexe par le traitement parallèle, je dirais presque schizophrénique de deux plateformes. Plus gênant, les exemples de code ne semblent pas fonctionner directement. Ils demandent au minimum un peu de bricolage. Trop pour que l’on s’amuse à tous les tester. Autre grand regret : la vitesse d’obsolescence. Le texte traite de ServiceMix 3.x au moment même ou ServiceMix (qui est très différent) apparaît. On en est aujourd’hui à la version 4.5.x ! Il en va de même pour Mule qui était en version 2.0 au moment de la rédaction et qui est aujourd’hui en 3.4 !

Pour ces raisons, je ne saurais conseiller ce texte aujourd’hui. Il mériterait une mise à jour, car les évolutions de ces deux ESBs sont maintenant en rythme de croisière, avec le travail de fond nécessaire sur les exemples. Malheureusement, je ne pense pas que cela arrivera…

open-source-esb-inaction-manning

Référence complète : Open Source ESBs in Action – Tijs Rademakers & Jos Dirksen – Manning 2009 – ISBN : 1933988215 ; EAN13: 9781933988214

Open-Source ESBs in Action: Example Implementations in Mule and ServiceMix

http://www.goodreads.com/book/add_to_books_widget_frame/1933988215?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

ScrumBeer de Juin

C’est devenu traditionnel, pour connaitre le nombre de participants à une ScrumBeer, on prends le nombre d’inscrits sur Meetup et on divise par 4 ! Donc nous étions 6. Que croyez-vous que cela nous fasse ?

Eh bien, rien du tout ! Comme on dit à propos des open-spaces : “les personnes qui sont là sont les bonnes personnes”. Il manque juste Yannick sur cette photo, il n’est arrivé qu’après, tant pis pour lui.

scrumBeerJuin-Groupe02

Chaque ScrumBeer nous amène au moins un nouveau venu à l’agilité. Ce soir-là c’était Eric. Nous nous sommes cette fois encore livrés à l’exercice de faire comprendre ce qu’est être agile plutôt que comme faire de l’agile ! C’est toujours un plaisir quand l’auditoire est bon. Peu importe qu’il soit restreint.

Pas d’agenda comme d’habitude à ces soirées (est-ce pour cela que nous sommes peu nombreux ?). Arnaud a commencé par nous montrer les post-it électrostatiques Zapsense. A essayer absolument !

D’ailleurs, on a essayé : On a marqué notre territoire ; c’est nous le French SUG, et on est méchants !

scrumBeerJuin-FrenchSUG01

La discussion a aussi porté sur l’innovation : Agilité et innovation fonctionnent-ils en synergie ou sont-ils antinomiques ? Personnellement je pense que la nature fondamentalement émergente de l’approche agile en fait un moteur naturel de l’agilité. Il parait qu’en peinture, on ne saurait être créatif si l’on sait déjà où on veut arriver … c’est probablement vrai en bien d’autres domaines. J’en suis convaincu concernant notre propre domaine.

Arnaud (encore lui, le traitre) en a lâchement profité pour m’asséner un article sur le sujet que je dois donc lire. Je vous l’assène à mon tour !

Autre sujet qui est venu sur la table : le plaisir au travail. Pour moi, c’est un facteur important, essentiel même. En fait c’est en partie lui qui nous permet de faire du bon travail. Alors si atteindre nos objectifs professionnels et prendre du plaisir sont deux objectifs qui ne convergent pas, quelles décisions devons-nous prendre ?

Je vais clore ce nouveau chapitre des Scrum Beer avec Martine : une habituée des évènements agile sur Bordeaux qui nous a fait le plaisir de se joindre à nous ce soir !

scrumBeerJuin-Martine

A la semaine prochaine, pour le Scrum Boat !

Agile France 2013, bonus track

J’ai couvert tout ce à quoi j’ai assisté … mais il y a en a beaucoup auxquelles je n’ai pas assisté. J’ai essayé de rassembler ici le matériel éparse sur lequel j’ai pu mettre la main.

J’en rate beaucoup, j’en suis sûr. Si vous avez d’autres liens, faites suivre ! Je les ajouterais.

Blogs et autres liens utiles

Les autres présentations

Ne cherchez pas un ordre corrélé au programme, ce n’est pas le cas. Have fun !

L’agilité en maintenance logicielle

Communautés de pratiques en pratique

Sport et théatre avec Christophe Keromen

Christophe nous proposait 2 présentations. Tout d’abord, ce que le sport m’a appris de l’agilité

Puis la même déclinaison à propos du théâtre

Peter Stevens : Agile values, French values

Les paradoxes du leadership

Les articles qui parlent des autres présentations

IP v6 par pigeons voyageurs, c’est possible et c’est prévu : RFC 6214

Bien sûr, c’est une plaisanterie. Au départ c’était même un poisson d’avril lancé en 1990 sous la dénomination RFC 1149. Il n’en reste pas moins que cette RFC émise en bonne et dû forme (la traduction française est disponible ici) est parfaitement implémentable … et implémentée !

Une mise à jour de cette norme eu lieu en 1999 sous la dénomination RFC 2549, y ajoutant la notion de qualité de service.

Cette dernière mouture de la RFC, la 6214 émise en 2011 prends en charge l’IP v6.

Chaque version de la RFC devient plus élaborée que la précédente, et en développe les concepts. Est ainsi développé le cas du “tunelling” lorsque certains porteurs en mangent d’autre emportant leur “payload” dans leur système digestif. Pour autant que celui-ci ait été écrit sur un support résistant aux sucs gastriques…

IP v6 par pigeons voyageurs, c’est possible et c’est prévu : RFC 6214

Note de lecture : Alfresco Developer Guide, par Jeff Potts

Note : 5 ; Très complet, mais un poil indigeste.

Avec ses 500 pages, cet ouvrage ne cache pas ses ambitions de couvrir le sujet en profondeur. Il n’est découpé qu’en neuf chapitres, mais complétés d’annexes assez volumineuses couvrant les API sous forme de manuel de référence sur 70 pages.

Le chapitre 1 nous fait le tour du propriétaire sous l’angle de l’architecture. C’est ma fois fort réussie.

Au chapitre 2, on s’attaque au développement d’une extension d’Alfresco en utilisant Eclipse. Le but essentiel semble être de prendre de l’aisance sur l’environnement de travail. Toutefois j’ai trouvé la démarche un peu confuse.

Le chapitre 3 est particulièrement consistent, mais aussi très complet. Il aborde une facette différente d’Alfresco mais plus importante encore : la programmation de définition de contenus : création de nouveaux types, de propriétés, relations et facettes. Puis viennent les aspects qui viennent s’y greffer : programmation avec Java, les Web Services et PHP, customisation de l’IHM et des recherches, etc… Bref c’est particulièrement complet, mais le style rend tout cela hélas pas très facile à appréhender.

Le chapitre 4 fait suite assez logiquement, car il trait de tous les automatismes de traitement qui peuvent se greffer sur les contenus : actions, transformateurs, extracteurs, etc… Cela n’est en fait utile que si l’on a bien sûr l’intention de basculer de l’intelligence métier sur la gestion de contenu…

Le chapitre 5, moins utile de mon point de vue évoque la customisation de l’IHM d’Alfresco, donc utile seulement si l’on veut donner un accès à l’IHM du progiciel aux utilisateurs. J’avoue que je finis par être un peu noyé par ces fragments de code ou de XML que j’ai du mal à rattacher à quelque chose. C’était déjà un peu vrai dans les chapitres précédents, mais ça l’est plus encore ici.

Le chapitre 6 est particulièrement important, du moins à mes yeux : il évoque l’API Rest d’Alfresco. Hélas, le texte part du postulat de l’utilisation de cette API depuis des pages HTML, depuis du code JavaScript. De mon point de vue cela réduit nettement l’intérêt et la portée du chapitre.

Un large chapitre, le chapitre 7, est consacré aux « worflows avancés », donc ceux s’adossant à jBPM. Si les aspects en contact avec Alfresco présentent un peu d’intérêt (mais je cherche toujours comment lier un document à une instance de workflow, comme je le fais pour Documentum…), la description en profondeur de jBPM sort un peu du cadre de cet ouvrage à mon avis. D’ailleurs il y a des livres sur jBPM, même chez PACKT publishing !

Le chapitre 8 est assurément le plus volumineux de l’ouvrage, car ses 80 couvrent le Web Content Management. Le lien entre WCM et ECM (alors que c’est sans aucun doute l’un des intérêts d’Alfresco) ne m’apparaît pas clairement montré. Mais il faudrait que je mette mon nez de plus près dans ce chapitre pour m’en assurer.

Le dernier chapitre aborde la sécurité, aspect souvent complexe sur les systèmes d’ECM. Mais on fait bel et bien le tour de la question : authentification (essentiellement avec LDAP), SSO et permissions.

De manière générale, je dirais que l’ouvrage semble faire le tour de la question. Ou plus exactement, il aborde tous les sujets, même s’il nous laisse aller vers la documentation pour couvrir complètement en largeur tous les sujets. Si l’on avait voulu le faire, le livre aurait probablement fait 2000 pages ! Donc le parti pris était surement le bon. Il n’en reste pas moins que le traitement du sujet est assez aride, et comme je dis plus haut, un peu indigeste.

Enfin bon, le livre fait le boulot. Si vous développez avec Alfresco, ce sera sans aucun doute un plus de l’avoir près de vous.

alfresco-dev-guide

Référence complète : Alfresco Developer Guide, Customizing Alfresco with actions, web scripts, web forms, workflows and more – Jeff Potts – Packt Publishing 2008 – ISBN : 978 1 847193 11 7

Alfresco Developer Guide

http://www.goodreads.com/book/add_to_books_widget_frame/1847193110?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Cloud Application Architectures, par George Reese

Note : 3 ; Ou plus exactement : Aborder Amazon EC2 pour l’ingénieur système

Aborder le Cloud quand on a pas grande idée de la chose est un exercice difficile. Le livre de George Reese a pour but de nous mettre le pied à l’étrier. En vérité, avec ses 160 pages, ce n’est pas un bien gros ouvrage. Aussi n’est-il pas surprenant de constater qu’il se focalise sur un cas particulier : le déploiement d’applications en IAAS sur Amazon EC2. Même les autres offres Amazon sont mises de côté (j pense bien sûr à S3). C’est en fait principalement les aspects système liés au déploiement sur EC2 qui sont développés ici.

Le premier chapitre se focalise sur les cas d’usage du cloud computing et les aspects économiques qui lui sont attaché.

Le second chapitre détaille l’offre Amazon, les concepts qu’il faut connaître lorsque l’on pénètre dans cet écosystème : EC2, S3 ; elastic IP, Région, EBS, etc… On y manipule déjà ces objets via les commandes permettant de créer et gérer ces différents objets. De quoi donner une dimension plus concrète au propos.

Le troisième chapitre « avant la transition » revisite le modèle économique afin de nous aider à faire un choix sur le modèle de déploiement. Les différents aspects à considérer (sauvegarde, sécurité, disponibilité, scalabilité, aspects légaux) sont abordés. J’ai bien aimé ce chapitre qui oblige à se poser de nombreuses questions préalablement à l’établissement d’une « architecture cloud ».

Le chapitre 4 est une partie assurément importante du livre car elle présente des cas d’architecture d’applications cloud. Hélas les 30 pages de ce chapitre sont plus une introduction qu’un traitement en profondeur.

Les chapitres 5 et 6 sont dédiés à la sécurité d’une part et au « disaster recovery planning » d’autre part. Ce sont deux éléments très importants d’une architecture cloud. Si la partie dédiée à la sécurité s’avère plutôt traitée en profondeur, donnant pas mal d’éléments de réflexion, le chapitre 6 donne plutôt quelques éléments sur le DRP, mais guère plus.

Qui dit « cloud » dit « scaling » et « élasticité ». Le chapitre 7 est dédié à cette question, mais là encore le point est traité assez légèrement.

Au-delà des 7 chapitres de ce livre, on notera 2 annexes dédiées à Rackspace et GoGrid. Ecrits par les CTO de ces deux entreprises, il s’agit hélas plutôt de brochures publicitaires pour ces deux offres.

En conclusion, ce livre apparaît pour moi plutôt comme une introduction au Cloud et plus particulièrement à IAAS avec EC2. Il a clairement le mérité d’amorcer les pistes de réflexions (au demeurant pas si évidentes) liées au déploiement de solutions Cloud. Il est loin d’être une référence exhaustive sur le sujet. Peut-être n’est-ce pas plus mal, car le sujet évolue vite, tout comme les différentes offres, et cela permet d’avoir un certain état de l’art en 160 pages ! L’inconvénient est l’obsolescence très rapide de ce livre.

L’offre Cloud avance et évolue à la vitesse de la lumière. Je crains qu’un texte accusant déjà 3 ans ne puisse être toujours être considéré comme pertinent.

cloud-computing-architectures

Référence complète : Cloud Application Architectures, Building applications and infrastructure in the cloud – George Reese – O’Reilly 2009 – ISBN : 978 0 596 15636 7

Cloud Application Architectures: Building Applications and Infrastructure in the Cloud

http://www.goodreads.com/book/add_to_books_widget_frame/0596156367?atmb_widget%5Bbutton%5D=atmb_widget_1.png