Quand Tom Baeyens inaugure le BPM Professional Group

Quand on pense BPM et Open-Source, on pense toute de suite à jBPM ou Activiti ! Derrière ces 2 projets, un même homme : Tom Baeyens ! On ne pouvait rêver mieux pour inaugurer le BPM Professional Group au zLocalHost de Zenika ! Ce ne sera pas le seul intervenant de cette soirée, car Fayçal Mehrez viendra nous parler d’indicateurs de performance en entreprise et de l’usage de BPM dans ce cadre !

A la découverte d’Effektif, avec Tom Baeyens !

Effektif, c’est la nouvelle structure de Tom Baeyens, qui s’éloigne maintenant d’Activiti et Alfresco pour une nouvelle aventure. Mais ce n’est pas pour faire la promotion de son outil qu’il sera là ce soir, mais bien pour nous parler de BPM.

image

Pourquoi BPM ?

C’est une question essentielle, car il serait irréaliste de penser que BPM est une évidence pour les entreprises. Il s’en faut de beaucoup. Nous ne sommes que 40 ce soir, et non des centaines !

Le BPM, c’est avant tout voir les processus de l’entreprise comme des activités répétables. Un outil BPM modélise non pas des processus, mais des templates de processus ! les processus eux-mêmes en sont les instances.

Par rapport à ces processus, et oserais-je dire par rapport à la « normalisation de ces processus », BPM permet une agilification avec une réelle facilité d’amélioration et de déploiement de ces nouvelles versions de processus. Nous aurons l’occasion de revenir sur cette conjonction entre agilité et BPM qui est en fait bien plus complexe, lors d’une prochaine rencontre. Pour Tom Baeyens, cela s’articule en 4 éléments principaux.

1 – L’organisation des tâches

Un modèle BPM permet non seulement de définir, mais surtout d’implémenter « qui fait quoi », et d’éviter ainsi les incompréhensions entre acteurs.

2 – Le bon niveau de contrôle

Un moteur BPM permet de garantir le respect des règles telles qu’elles sont définies et appliquées. Hum ! Voici une déclaration qui a bien plus des relents de Taylorisme que d’agilité ! Toutefois, le BPM permet aussi de laisser libre le fonctionnement au niveau ui est décidé ! D’ailleurs l’un des apports les plus intéressants d’Effektif est l’intégration d’une notion de « case management » au sein de l’outil !

3 – Transparence sur ce qui se passe

Un moteur BPM permet de centraliser les informations sur l’activité, permettant de savoir qui fait quoi, mais aussi de remonter aux causes racine d’un problème en s’appuyant sur un audit trail.

4 – Coordination de grand volumes de processus

Un moteur BPM permet de monitorer ce qui se passe sur plusieurs milliers (millions ?) d’instance de processus simultanément, et d’assurer la consistence de leur traitement. Comme le dit Tom, cela permet aussi de surveiller les « employés distraits ». Quand je vous parlais de Taylorisme…

image

Qu’est-ce qui a changé ?

Le BPM n’est pas un nouveau-né ! C’était déjà un sujet d’actualité au début ou au milieu des années 90 quand la modélisation était l’une de mes activités principales ! Mais le paysage a incontestablement changé ces dernières années. Tom Baeyens concentre son propos sur 3 points

1 – Le cloud dans l’entreprise

L’utilisation des services est aujourd’hui une évidence, que les DSI le veulent ou non. Et dans ce cas, elles se font tout simplement contourner ! Toutefois les reservoirs d’information n’ont pas disparu des entreprises, et il faut savoir fonctionner en environnements hybride !

2 – Focus sur l’expérience utilisateur

Les applications d’entreprise sont traditionnellement mauvaises sur cet aspect. Et au sein des applications d’entreprises, les applications BPM seraient plutôt les pires ! Pourtant, être incapable de proposer une expérience utilisateur de qualité dans ce domaine n’est pas une fatalité : IFTT fait un excellent travail à cet égard, avec ses « recettes » !

Autre problème dans ce domaine : la surcharge d’emails ! Hélas, s’en passer semble illusoire, car l’email reste le plus petit dénominateur commun ! Mais les outils de case management tels que Yammer, Jive, Huddle ou Asana permettent d’entretenir des « discussions riches » auxquelles on peut ajouter du contexte et garder tout le monde dans le même échange !

3 – Le point de souffrance du BPM

Le BPM est une problématique métier. Hélas, il ne faut pas longtemps pour que cela devienne un projet IT ! Et avec cette transition arrive les questions de management « lourd », les temps de cycle long… Il est nécessaire de séparer la partie « expérience utilisateur » de la partie « projet IT ». Car ne rêvons pas : la customisation nécessitant de faire des développements restera vrai !

Voici Effektif

Effektif permet de laisser entre les mains des utilisateur métier la modélisation des processus, tant que celle-ci reste simple. Et l’on s’inspire ici de ce que fait IFTTT ! Puis l’outil dispose d’API pour permettre d’y adjoindre des traitements « custom »!

Il est temps de passer à la démo. Plutôt que de la décrire, je vous propose cette vidéo, hélas d’assez mauvaise qualité : je n’étais pas très bien placé et tenir un appareil photo à bout de bras pour filmer pendant 20 minutes … eh bien il y a mieux ! Désolé donc pour l’effet « mal de mer » si vous avez le courage de la regarder !

Techniquement, Effektif s’appuie sur des choses assez simples : Tomcat et MongoDB ! Et encore, seul le moteur de servlet de Tomcat est réellement utilisé. Pour Tom Baeyens, le début de l’aventure commence bien, avec le reconnaissance de la validité de son modèle par le Gartner ou Tech Crunch. Et bien d’autres choses dans la roadmap…

Vous avez raté la performance de Tom et ma prose vous laisse de marbre ? Voici la vidéo !

BPM dans un contexte industriel, par Fayçal Mehrez

C’est d’analyse de la performance d’entreprise avec le PLM dont Fayçal va parler. Pas évident d’évoquer ce sujet qui n’est pas réellement attendu par le public !

Quand on parle PLM, on pense souvent « outil de PLM ». Mais le PLM c’est avant tout un processus, un concept structurant de gestion de produit pour dire à une société comment elle doit fonctionner. Décidément, je suis verni ce soir : après le Taylorisme, voici venir l’ERP dans son habit de lumière !

Trêve de plaisanterie : ce dernier point fait la jonction avec l’univers du BPM, car la démarche PLM passe par la mesure de la performance, une chose que permet justement les moteurs de BPM !

Il y a 3 axes à cette démarche :

  • Une méthodologie de performances
  • Une démarche de transformation
  • Une approche BPM
image

Parlons de performances

Attention, quand on parle « performances », on pense souvent à la performance financière uniquement. C’est une erreur. Par exemple, dans un processus RH, la performance ne concerne pas le coût du processus d’embauche, un aspect qui est en fait souvent marginal, mais bien l’adéquation par rapport aux besoins futurs de l’entreprise, la réduction du turn-over, etc.

Par ailleurs, la performance ne se décrète pas, mais se construit.

Mais aussi, dans un cadre PLM, on peut avoir un objectif stratégique de réduction du « time to market ». Cet objectif se décline en objectifs opérationnels, comme par exemple réduire le délai de développement.

Pour ce faire, on développera plusieurs axes :

  • Améliorer la conception
  • Réduire les volumes de développement
  • Multiplier les ressources

Quels outils pour mettre en oeuvre cela ?

C’est également une démarche de transformation

Il n’y a pas d’outil unique dans cette démarche. L’un des classiques est le Balanced Scorecard. Fayçal préfère la « feuille de route stratégique ». On parle bien de feuille de route, et non de carte ! Si j’ai bien compris, elle aide à partir des objectifs stratégiques à décliner les objectifs opérationnels à l’aide d’une approche type « 5 pourquoi ». Mais en vérité, je ne pense pas avoir tout suivi correctement.

L’autre volet de cette transformation, ce sont les hommes ! 80% de la performance vient de l’humain. Aussi est-il important de donner du sens à ces changements. Enfin un point commun avec l’agile ! Et n’oublions pas que la première étape d’une transformation est une baisse de performance !

L’apport du BPM

Le BPM permet de donner de la cohérence aux processus. La finalité du PLM est intrusive : obtenir des processus répétitifs et contrôlables. De nombreux aspects de l’intérêt du BPM dans une démarche PLM me rappellent les finalités de l’urbanisation des systèmes d’information (décidément, je boirais la coupe jusqu’à la lie) : partir de standard de processus, permettre l’alignement sur les processus (alignement d’un peu tout).

Petites reflexions personnelles

Ne nous voilons pas la face : nous étions venus pour Tom Baeyens ! Il ne nous a pas déçu, autant par la clarté de sa perception du BPM que par sa démonstration d’Effektif !

Le thème abordé en seconde partie est assez éloigné de mes préoccupations. Mais il met en relief certains éléments que je percevais quelque peu : le monde du BPM reste fondamentalement assez éloigné de celui de l’agilité. Un avis à tempérer toutefois avec la flexibilité qu’il permet d’une part, et l’ajout de dimensions « non prédictives » d’autre part !

Bref, cette session m’aura aussi alimenté en reflexions sur le BPM et l’agilité, bien plus que je ne l’espérais. Et cela nous donnera du grain à moudre pour une future rencontre « BPM Pro » !

Note de lecture : Activity in Action, par Tijs Rademakers

Note : 7 ; Un bon ouvrage au standard « in action » pour accompagner une immersion dans Activity, malgré quelques frustrations.

Activity, c’est le « spin off » de JBPM par ses créateurs. Mais, ainsi qu’il est expliqué en introduction, ce n’est pas un fork mais une réécriture complète, avec les choix de conception que l’équipe aurait voulu prendre à l’époque !

Mais revenons au livre. L’auteur est un des comiters principaux du projet, ce n’est pas non plus un auteur débutant. Tout ce présente donc sous les meilleurs auspices pour commencer. La prose est conséquente : 400 pages sur 15 chapitres distribués en 4 parties inégales. Il est temps de rentrer plus en profondeur.

Les quelques 80 pages de la première partie regroupent 4 chapitres et sont une introduction à BPMN 2.0 et Activity. On commence par une présentation générale d’activity, de son architecture et l’incontournable « hello world » précédé d’une installation basique. C’est réussi. Le chapitre suivant a pour but de nous présenter BPMN 2.0. C’est fait avec pédagogie et bien illustré, mais aussi assez superficiel et on sort de là un peu frustré. La présentation de l’outillage Activity est un peu touffue, probablement parce que cet environnement l’est aussi un peu : il manque d’homogénéité et est un peu de pièces rapportées. Espérons que cela s’améliore à l’avenir.

Avec 35 pages, le chapitre 4 est le gros morceau de cette première partie, on y débute l’implémentation de l’étude de cas, avec configuration Maven, définition de processus, implémentation de tâches en Java et tests unitaires. Honnêtement, ça fait un peu trop de chose pour être vraiment clair.

La seconde partie est consacrée à l’implémentation de processus avec Activiti, c’est donc le cœur du livre. On y compte 150 pages et 5 chapitres, ce qui le met à égalité avec la 3ème partie. Là où le chapitre 4 était un peu brouillon, le chapitre 5 reprends les choses calmement et implémente un BPM simple mais non trivial, avec une implémentation d’un script task et de différents service tasks. On va même jusqu’au déploiement. C’est bien fait et clair. Le chapitre 6 nous permet de faire des choses plus avancées (sous-processus, points de décision) et couvre aussi l’accès à JPA depuis Activity et la mise en place de listeners sur les tâches. La gestion des erreurs (en Java ou en définition de processus) est traitée avec sérieux au chapitre 7, un bon point ! C’est aussi le cas sur les options de déploiement abordées au chapitre 8, bien que je reste sur ma faim sur la façon dont l’utilisation de l’interfaçage ReST est abordé. Le chapitre 9 qui clos cette partie n’est pas mon préféré. Seul la partie OSGi m’aurait intéressée si elle avait été abordée clairement !

La troisième partie se focalise sur les aspects avancés d’Activity. Le chapitre 10 fait un peu pot-pourri entre des aspects avancés de modélisation (sous-tâches, délégation), la connexion au LDAP ou les tâches multi-instances, ça manque un peu de cohérence. Le chapitre 12 est plus « focus » car il traite d’un aspect important : l’intégration. L’utilisation d’Apache Camel et de Mule ESB font le gros de ce chapitre. C’est une bonne idée, car cela donne un exemple avec ESB et un autre avec « ESB light ». L’intégration d’un moteur de règle n’est pas nécessairement l’aspect qui m’aurait intéressé de prime abord, mais le chapitre 13 qui le traite et clair, bien écrit et même source d’inspiration. Je ne dirais pas la même chose du chapitre 14 qui traite de l’intégration avec Alfresco.

Alfresco est le principal comiter Activity et parler de cette intégration sonne comme un passage obligé, mais personnellement j’en retire peu de choses. Ca fait plutôt plaquette publicitaire. Cette partie se conclut par un passage par le monitoring de production e l’intégration avec Esper : utile, intéressant et bien fait.

La quatrième partie ne compte qu’un seul chapitre et 25 pages. L’objectif est de nous permettre de monitorer les processus en production. Concrètement on entre dans le modèle de données d’Activity et on fait un petit tour dans le Job Executor. Pas grandiose mais nécessaire.

Activity in Action fait bien le boulot, il est à la hauteur du standard « in action » de Manning. Le texte est bien écrit et les illustrations aident. Les exemples par contre sont plus problématiques : ils sont souvent non seulement complexes et volumineux, mais insuffisants tels qu’ils figurent dans le texte. Il est nécessaire d’avoir recours au code source complet.

Personnellement, mon regret est une approche très « Activity centric », où les fonctions du logiciel sont subordonnées aux hooks qu’offre le framework. Etant essentiellement conçu en ce sens, l’approche est compréhensible. Toutefois Activity possède aussi un ensemble d’API ReST permettant de l’utiliser de l’extérieur à la façon d’une appliance. Je suis d’avantage intéressé par cette architecture et je soupçonne que de nombreuses personnes le sont également. Très peu de contenu est orienté en ce sens. A mon avis, l’ouvrage aurait bénéficié d’un ou deux chapitres en ce sens, même si cela avait dû être au détriment d’autres sujets.

Malgré ces quelques frustrations, le contrat est bien rempli. Pour qui veut s’initier à Activity, voilà un excellent compagnon.

image

Référence complète : Activity in Action, Executable business processes in BPMN 2.0 – Tijs Rademakers – Manning 2012 – ISBN : 978 1 617290 12 1

Activiti in Action

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

Note de lecture : L’EAI par la pratique, par François Rivard et Thomas Plantain

Note : 4 ; Noyé !

J’ai éprouvé de l’intérêt et des regrets à la lecture de ce livre. De l’intérêt tou d’abord : des livres sur l’EAI, il n’y en a finallement pas des masses et ils volent souvent un peu trop haut, évoquant les flux d’échanges B2B et autres intégrations de systèmes. Mais ils évoquent rarement la mise en œuvre pratique : ce n’est pas le cas de celui-ci.

Ici, on est de plein pied dans la réalisation de flux EAI, en l’occurrence avec Vitria. Pour illustrer cela, on dispose d’une étude de cas dont je dois dire qu’elle a juste la bonne complexité, ni trop ni trop peu. Et pour structurer cette mise en œuvre, les auteurs nous proposent une démarche étagée en 4 niveaux :

  • Conception : On modélise le processus métier les tableaux de bord désirés d’un coté et l’architecture technique (y compris les besoins en terme de connecteurs applicatifs de l’autre).
  • Mise en œuvre : Déploiement des configurations EAI et référentiel d’intégration.
  • Réalisation : il s’agit là de l’implémentation des processus métier avec le produit, de la réalisation des tableaux de bord, des échanges B2B et autres mappings.
  • Exploitation : On évoque ici le suivi d’exploitation fonctionnel et technique.

La partie « mise en œuvre » évoque également dans 2 chapitres qui leurs sont dédiés, l’utilisation de Tibco Rendez-vous et de WebMethod.

Alors, pourquoi ai-je noté si sèchement ? Eh bien, hélas, cette belle approche est malheureusement mise à mal par le traitement trop « outil » du sujet. Plutôt que de faire apparaître les traits essentiels, nous sommes noyés sous une avalanche de détails (souvent peu utiles) de réalisation, de copies d’écrans, etc. qui masquent complètement le fond. On ne sait même plus où on en est dans l’approche évoquée ci-desus. Bref, les auteurs auraient dû tailler dans le lard, alléger les détails et réduire le volume du texte des 400 pages qu’il accuse à 250 pages environ.

Dommage !

image

Référence complète : L’EAI par la pratique – François Rivard et Thomas Plantain – Eyrolles 2003 – ISBN : 2-212-11199-1

L'eai Par La Pratique

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

Note de lecture : Loosely Coupled, par Doug Kaye

Note: 7 ; Du Web Service à l’ESB

Tout d’abord une précision: si vous cherchez un ouvrage sur la mise en oeuvre technique des Web Services, ce n’est pas le bon livre. Cela dit, il en existe plein et celui-ci viendra en complément, car ce livre ne traite pas de mise en œuvre technique, mais d’aspect architecturaux liés à l’utilisation des Web Services dans un contexte SOA. Les grandes questions que pose cet ouvrage sont : comment puis-je utiliser les Web Services pour effectuer l’intégration de systèmes ? Quels sont les briques technologiques qui manquent et comment les compenser ? Bien sûr, ayant lu ce livre presque 5 ans après sa parution, j’en ai raté l’approche novatrice en bonne partie car ce sont ni plus ni moins que les bases de l’ESB que l’auteur pose ici ! Mais même en arrivant après la bataille, le texte éclaire l’approche Web Service proposée ici (attachement + couplage faible + asynchronisme) qui a été emmprunté par l’ESB et peut nous permettre de mieux exploiter ceux-ci correctement. Allons voir plus en détail le contenu des 320 pages de l’ouvrage.

Le livre est intelligemment découpés en 20 chapitres dont la longueur varie de 10 à 25 pages. Le format du livre étant également plus petit qu’à l’accoutumée, chaque chapitre se lit donc aisément, ce qui est une bonne chose.

La première partie, intitulée « perspectives » est composée de 5 chapitres. Elle campe les besoins d’infrastructures d’une architecture d’intégration de services, d’abord en rappelant l’historique au chapitre 1 (Corba, COM, DCE, EAI, etc…), ce qui est synthétique et bien fait. Ensuite le chapitre 2 met en perspective les Web Services avec les technologies vues précédemment et les avantages relatifs de cette technologie. Le chapitre 3 nous projette dans l’extrapolation, l’évolution des technologies « en devenir » et des « mainstream » pour stigmatiser l’importance des Web Services. Les chapitres 4 et 5 sont complémentaires et servent de charnière pour le reste du livre : que manque-t-il à la technologie Web Services pour être une pièce maîtrise du SOA et de l’intégration de services.

Aux 58 pages de cette première partie succède une seconde partie longue de 82 pages et intitulée « concepts ». les 5 chapitres qui la compose détaillent les paradigmes que l’auteur juge importants par rapport au SOA. Le chapitre 6 développe la volet intégration et poursuit une discussion commencée au chapitre 2. Les chapitres 7 et 8 nous aident à comprendre les corollaires d’une architecture d’intégration basée sur les Web Services et pourquoi le style orienté document doit être favorisé par rapport au style RPC. Les chapitres 8 et 9 sont dédiés à l’architecture asynchrone et pourquoi ce style doit être favorisé en intégration de services.

La troisième partie « technologies » est consacrée … eh bien au volet technologique ! Ce sont de nouveau 5 chapitres et 90 pages qui sont dédiés à cette avant-dernière partie. Le volet « sécurité » s’y taille la part du lion, avec 2 chapitres et 46 pages. Le premier chapitres met en évidence les besoins (intégrité, authentification, non-répudiation, etc…) rien de bien original mais fort bien expliqué. Le second chapitre propose des solutions, bien que celles-ci soient souvent, disons originales (comme le XML firewall). Un chapitre est consacré aux transactions et plus précisément aux transactions applicatives. La surcouche orchestration n’est évoquée que brièvement car elle sort du cadre de cet ouvrage, tout comme l’aspect déploiement qui est traité assez légèrement.

La dernière partie « stratégie » interpelle les managers. Quid de la qualité de service (chapitre 16) ? Qu’en est-il des SLA et de l’externalisation de services (chapitres 19 et 20). Enfin la gestion de projets d’intégration est traitée aux chapitres 17 et 18.

Bref, voilà un ouvrage qui vaut le détour. Il n’est pas purement technique et ne vous apprendra pas à développer ou utiliser des Web Services mais donne des clés pour créer une architecture intelligente basée sur cette technologie.

image

Référence complète : Loosely Coupled, the missing pieces of web services – Doug Kaye – RDS press 2003 – ISBN : 1-881378-24-1 ; EAN : 9 781881 378242

Loosely Coupled: The Missing Pieces of Web Services

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

Note de lecture : Business Process management with JBoss jBPM, par Matt Cumberlidge

Note : 3 ; Ciblant l’analyste, un ouvrage trop superficiel et d’avantage focalisé sur le processus de réalisation que sur l’outil ! Dommage.

Difficile de faire autrement que de comparer ce livre à son pendant adressant OSWorkflow ! Même type d’ouvrage, même éditeur et même taille, l’auteur du premier est même relecteur du second. Bref, deux ouvrages courant dans la même catégorie ! Mais autant j’ai été accroché par le premier, autant j’ai été déçu par celui-là. Explications.

En réalité, dès le départ, on s’aperçoit que cela va être difficile : le premier chapitre n’évoque guère jBPM en guise d’introduction. On y évoque plutôt le processus d’analyse et de modélisation. Va pour les 20 premières pages.

Le second chapitre évoque de manière plus détaillée le processus de modélisation du BPM à l’aide d’une étude de cas ici introduite. Ce livre n’étant pas réellement un ouvrage de BPM, le traitement de ce sujet est quelque peu léger, sinon naïf. Et l’on est arrivé page 52 (sur 200) et toujours pas de jBPM à l’horizon.

On en parle enfin au chapitre 3, où tout le processus d’installation et de configuration est détaillé, un peu trop à la façon « pour les nuls » à mon goût. Mais on finit quand même par aborder le sujet qui m’intéresse ici en premier lieu, c’est-à-dire jPDL (on est quand même page 74). Au final nous avons quand même droit ici à 25 pages de matière réellement pertinente.

Le chapitre 4 évoque l’interface utilisateur, c’est-à-dire les formulaires JSP que l’on peut construire directement sur la plateforme jBPM.

Le chapitre 5 revient sur le leitmotiv des auteurs : le processus de développement. Nous avons toutefois droit à 7 pages particulièrement intéressantes sur l’intégration de systèmes : juste de quoi nous mettre l’eau à la bouche, mais clairement pas assez pour nous délivrer une information pertinente et utilisable !

Le chapitre 6 « proof of concept implémentation » noie pas mal d’informations importantes sous couvert de processus de développement (encore lui), mais sont toutefois évoqués : configuration, déploiement et même monitoring et BAM avec la plateforme SeeWhy. Ce dernier volet est tout à fait intéressant, à la fois par l’évocation de SeeWhy que par le fait que l’intégration en est bien décrite.

Le dernier chapitre sur le « process improvement » n’est que du bla-bla, oubliez-le.

Bref, ce livre est une grosse déception, je n’y aie trouvé que 50 à 60 pages d’informations utiles. D’un autre coté je n’ai pas ici une couverture complète du sujet me permettant de jauger si cet outil correspond à mes besoins. Je doute que vous-même y trouviez votre bonheur.

image

Référence complète : Business Process management with JBoss jBPM, a practical Guide for Business Analysts – Matt Cumberlidge – Packt publishing 2007 – EAN: 9 781847192 36 3

Business Process Management with Jboss Jbpm

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

Note de lecture : OSWorkflow, par Diego Adrian Naya Lazo

Note : 7 ; Un tour d’horizon clair concis et efficace

Est-il possible de faire un tour d’horizon introductif d’OSWorkflow en moins de 200 pages ? De toute évidence : oui, et cela sans faire particulièrement de concessions au sujet traité. Cet opuscule est en effet découpé en 8 chapitres, chacun focalisé sur une facette précise.

Le premier chapitre, comme il se doit traite de la vue d’ensemble d’une SOA animée par un moteur d’orchestration et de la vue de cette architecture par le WfMC. 20 pages suffisent à cela.

Le second chapitre nous donne déjà toutes les clés sur les capacités d’OSWorkflow en nous présentant les éléments les plus importants de la définition d’un workflow avec OSWorkflow et comment le tester !

A partir du chapitre 3, on rentre dans des aspects plus pointus : écrire du code Java qui s’interfacera avec le moteur de Workflow ! Les choses sont exposées simplement et progressivement, on n’est jamais perdu.
Le chapitre 4 termine les aspects applicatifs généraux en évoquant l’intégration du moteur au sein d’une application.

C’est à partir du chapitre 5 que sont traités les aspects avancés. Ils ouvrent de nouvelles perspectives et sont rafraichissants sur ce point. Le chapitre 5 (justement) est un bon essai en ce sens, mais tout en donnant une bonne idée sur ce qu’est l’intégration d’un moteur de règles, il n’est guère convaincant. Et quitte à parler Open-Source, pourquoi ne pas avoir plutôt évoqué Jess ?

L’intégration de Quartz, évoquée au chapitre 6 est plus intéressante, car elle permet d’imaginer des architectures non seulement basées sur des workflows, mais également asynchrones . Là encore les exemples sont suffisamment simples et complets pour donner une bonne idée de la chose.

J’ai particulièrement apprécié le chapitre 7 et son traitement des CEP (complexe events processing) avec ESPER. C’est en fait la première fois que je vois évoqué concrètement la mise en œuvre de ce concept. Bravo !

Le chapitre 8 est un peu l’inattendu de cet ouvrage, puisqu’il ne traite rien de moins que le BAM ! L’implémentation est faite avec Pentaho BI (qui est plutôt une suite qu’un framework Open-Source), mais l’ensemble est convaincant.

Voici donc un opuscule qui remplit globalement ce que l’on attend de lui : un tour d’horizon du moteur de workflow, avec des exemples. Il vous sera incontestablement utile si vous souhaitez mettre en œuvre OSWorkflow, mais seulement au début, car il limite ses ambitions aux aspects introductifs, ce qui constitue le point faible du livre.

image

Référence complète : OSWorkflow, a guide for Java developers and architects to integrating open-source Business Process Management – Diego Adrian Naya Lazo – Packt Publusing 2007 – EAN : 978 1 847191 52 6

Osworkflow: A Guide for Java Developers and Architects to Integrating Open-Source Business Process Management

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

Note de lecture : Service Oriented Java Business Integration, par Binildas C. A.

Note : 7 ; Du concret sur l’ESB, mais un texte qui accuse aussi son âge…

Pas facile de s’y retrouver au sein du concept technico-marketing qu’est l’ESB ! Ce dont on a surtout besoin, c’est du concret. Et c’est exactement ce que l’auteur nous propose ici. Malgré son titre généraliste, le livre se focalise presqu’exclusivement sur la mise en œuvre de l’ESB open-source d’Apache, ServiceMix et de la norme JBI qu’il dessert.

En fait, les 2 premiers chapitres sont consacrés à la vue générale des problématiques d’intégration. Le premier chapitre présente les banalités habituelles sur l’ESB (mais plutôt bien présentées) et le second se focalise sur l’aspect plus technique en introduisant JBI et les « integration patterns ». Ce n’est qu’au chapitre 3 (on est déjà page 57) que ServiceMix, ou plutôt la vue globale de son architecture, est introduit.

A partir du chapitre 4, on passe en revue les différents types de binding, selon une complexité croissante. Tout d’abord un binding simple, dit conventionnel (chapitre 4), puis un binding « contract last » avec XFire (chapitre 5). Un binding plus complexe à trois niveaux est abordé au chapitre 8, mettant en œuvre des EJB, tandis que le binding de POJO est enfin abordé au chapitre 9. Puis c’est le tour de l’approche « gateway » ou « contract first » avec Axis (chapitre 10).

Les chapitres 6 et 7 font figure d’interludes. Il était difficile d’aller bien loin sans aborder les concepts de packaging et de déploiement des services ServiceMix, c’est chose faite au chapitre 6. De même, il est parfois utile de compléter la panoplie de bindings proposés par l’ESB, c’est l’objet du chapitre 7.

La problématique du transport est aussi un domaine où l’ESB permet une certaine souplesse. Le chapitre 11 montre comment accéder un Web Service au travers de JMS. Au chapitre 12, on voit comment effectuer le binding entre Java et XML (le langage natif de l’ESB) en utilisant en autre XStream. Enfin le chapitre 13 aborde le point plus complexe mais aussi plus exotique des proxys JBI.

Les derniers chapitres peuvent être vus comme des aspects avancés, donc pas forcément indispensables de prime abord. Le chapitre 14 aborde la problématique de versioning des Web Services, utile dans le cadre d’un SI « évolutif ». Le très long chapitre 15 traduit en services ServiceMix de nombreux integration patterns. L’agrégation de services est abordée au chapitre 16. Il s’agit d’un sujet plutôt avancé et c’est tant mieux car le propos n’est pas des plus clairs. On finit en ordre dispersé par un chapitre fourre-tout, avec les transactions, la sécurité le clustering et la vie des bêtes au chapitre 17. J’espère qu’il y a mieux ailleurs car ce n’est pas la joie.

Comme on le voit, c’est un tour d’horizon plutôt complet qui nous est proposé sur 400 pages. Il s’adresse clairement aux architectes. On y aborde les concepts et le code. Si le code Java est clair, il est fort dommage (et c’est mon reproche principal) que les configurations ServiceMix pourtant complexes soient aussi peu décortiquées. Leur compréhension reste ardue.

Ce type d’ouvrage est hélas sujet à l’obsolescence. Ne nous voilons pas la face, c’est bien le cas ici. ServiceMix (pour ne parler que de lui) a déjà changé de version majeure depuis un moment. Il n’a plus nécessairement la pertinence qu’il avait au moment de sa sortie…

service-oriented-java-bi

Référence complète : Service Oriented Java Business Integration – Binildas C. A. – Packt Publishing 2008 – EAN : 978 1 847194 40 4

Service-Oriented Java Business Integration

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

Note de lecture : BPEL pour les services Web 2ème édition, par Matjaz B. Juric, Benny Mathew & Poornachandra Sarang

Note : 4 ; Hélas assez ennuyeux.

BPEL est, en quelque sorte, le modèle d’exposition du SOA. Ni les produits ni les ouvrages ne se bousculent pour autant au portillon, toutefois. J’étais donc assez content d’avoir mis la main sur un de ces livres, celui-ci étant traduit en français, en prime ! J’avoue ne pas en avoir eu pour mon argent (il faut aussi dire que le livre est particulièrement cher).

Le livre se découpe en deux grandes parties : la première est consacrée à la description de BPEL, avec une assez longue introduction sur les Web Services, la seconde est dédiée au survol de deux outils : Oracle BPEL Server et Microsoft Biztalk, ce dernier n’étant traité que de façon superficielle.

La première partie (celle sur BPEL), débute par 2 chapitres introductifs. Le premier introduit les concepts généraux de SOA, des ESB et de l’orchestration de services en général. Sans être un chef d’œuvre, il donne un bon panorama de la question. Le second introduit les normes liées au Web-Services et la pente est plutôt raide, j’ai fini par décrocher.

De cette première partie, ce sont en fait les chapitres 3 et 4 qui traitent réellement de la grammaire BPEL. Ils sont à mon sens les plus importants de l’ouvrage et me laissent un sentiment mitigé. Certes, le boulot est fait et la grammaire présentée, mais on sent l’auteur souvent plus pressé de présenter des fragments de XML que d’exposer l’explication correspondante. J’avoue que le propos est souvent difficile à suivre, à défaut d’être passionnant (ce qu’il n’est pas), et j’ai régulièrement perdu pied. Au final, le livre m’a quand même bien aidé à voir la « big picture ».

L’une des plus-values de ce livre est probablement de montrer comment tout cela se met en œuvre avec un serveur BPEL. Deux d’entre eux sont présentés, mais c’est surtout Oracle BPEL server qui illustrera le propos. Les chapitres 5 et 6 (soit 125 pages) sont consacrés à cela.

Le chapitre 5 est particulièrement intéressant car il expose non seulement l’architecture d’Oracle BPEL server mais explique également comment les fichiers sources sont organisés, comment s’effectue le déploiement, ainsi que l’utilisation des outils de développement (a.k.a. BPEL Designer). Le chapitre 6 consacré aux aspects avancés du produit est également intéressant, surtout grâce à la présentation de l’intégration de WSIF au sein de l’outil.

La partie dédiée à Biztalk server qui termine l’ouvrage (chapitre 7) est un ajout dont on aurait bien pu se passer : la présentation est inintéressante et présente essentiellement un défilé de copies d’écrans sans réellement exposer la philosophie et l’architecture du produit. On en ressort aussi ignorant qu’on y est entré.

Si vous cherchez un ouvrage traitant sérieusement de BPEL, soyez lucide, il y a peu de choix. Celui-ci n’est peut-être pas obligatoire, mais vous allez tomber (ou retomber) dessus assez vite. Mais le livre ne fait pas briller les yeux. Les middleware de workflow ne sont pas forcément non plus des sujets « trendy » d’où le déficit d’ouvrages…

bpel-services-web

Référence complète : BPEL pour les services Web 2ème édition, Orchestration de services web avec BPEL : guide pour architectes et développeurs – Matjaz B. Juric, Benny Mathew & Poornachandra Sarang – Packt publishing 2006 – EAN : 978 1 847192 16 5

Bpel Pour Les Services Web: Deuxime Edition

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

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