Note de lecture : Service Design Patterns, par Robert Daigneau

Note : 5 ; Des patterns qui sont plutôt des exemples d’implémentation…

Ce texte, ce devrait être en principe le complément des Enterprise Integration Patterns de Gregor Hope. Dans la pratique, il n’est pas à la hauteur de son ainé, même s’il nous permet d’apprendre certaines choses sur les web services, qu’ils soient SOAP ou REST.

En pratique, ce texte de 270 pages est découpé en 7 chapitres. Il faut aussi compter les annexes qui ajoutent une trentaine de pages de glossaire et référence de patterns. Les 10 pages du premier chapitre servant d’introduction ne nous apprennent pas grand chose, passons ! Le second chapitre est plus conséquent, en nombre de pages d’abord car on en compte 40, mais surtout par le contenu. C’est de « style de web services » dont il est question, de 3 styles plus précisément : RPC, orienté messages et orienté ressources. Ce chapitre focalise sur les considérations d’architecture liées à ces 3 styles, c’est donc en fait la véritable introduction au reste du livre ! En tout cas, le contenu est digne de Martin Fowler.

Au chapitre 3, on consacre 30 pages aux patterns d’interaction client-serveur. J’ai particulièrement aimé le pattern dédié à la négociation de média, et dans une moindre mesure celui sur les services liés. De manière générale, on reste ici sur des choses assez simples.

Le chapitre 4 est plus conséquent, il couvre sur 50 pages les patterns de gestion des réponses. Il s’agit là de patterns à caractère architecturaux. Le chapitre n’est pas très convainquant, trop de place est consacrée à du code d’implémentation qui dépasse largement le cadre de l’illustration des patterns. C’est le cas du DTO, par exemple.

Au chapitre 5, il est question de « styles d’implémentation » sur une trentaine de pages. Il laisse une impression mitigée, car certains patterns nous éclairent comme le workflow adapter et l’opération script (entre autre), mais leur illustration souffre d’un manque de clarté. Encore une fois, le code n’est pas à la hauteur et les diagrammes de séquence (une bonne idée), hélas plutôt mauvais.

Le chapitre 6 consacré à l’infrastructure est le gros morceau du livre, avec plus de 60 pages. Tout comme le chapitre précédent, les sujets sont en principe plutôt bons (dispatcher, asynchronous handlers…) mais le texte échoue à rendre cela passionnant.

Enfin, au chapitre 7, nous consacrons notre attention à la gestion du changement : versionning des services, compatibilité ascendante, etc… Les 40 pages dédiées au sujet ont une allure nettement plus « pattern » que la prose des 2 chapitres précédents. De bonnes idées et réflexions à utiliser et développer !

Globalement, je garde une impression mitigée de ce livre. L’assemblage de patterns est assez hétéroclite. J’ai l’impression que l’auteur à d’avantage cherché à couvrir le terrain qu’à construire un langage de patterns cohérent. De plus, ces patterns n’ont pas la qualité que j’en attend : exprimer de manière claire et synthétique l’essence de la solution, le contexte d’usage avec ses forces et faiblesses. On mise bien trop sur un exemple de code d’implémentation trop lourd pour servir d’explication. Mauvaise pioche !

D’un autre côté, le texte recèle un nombre respectable de patterns tout à fait intéressant et utilisables directement lors de la mise en place de web services. Qui plus est, l’auteur fait un bon effort pour clarifier à quel style de web service chaque pattern est adapté. Au final, une lecture pas indispensable, mais qui n’est pas une perte de temps non plus.

Référence complète : Service Design Patterns – Robert Daigneau – Addison Wesley / Signature series 2012 – ISBN : 978 0 321 54420 9

Publicité

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.