Choregraphie de services

Pour changer, je vous propose une vidéo d’un petit projet pour illustrer la chorégraphie de services. Pour cela, j’utilise la suite Oracle SOA en version 12.1.

L’objectif est d’expliciter comment réaliser une intégration ou une coordination de services en découpant la complexité. Il est difficile à produire puis à maintenir un système complexe et riches en règles métiers. J’applique donc le principe « diviser pour régner ».

Dans mon exemple, je réalise une intégration dans une base de données afin de vérifier et démontrer plus facilement l’aspect transactionnel.

Le schéma global des services est assez simple :

diapositive5

  • Un service de coordination reçoit la demande d’intégration
  • 3 services sont appelés :
    • L’intégration des champs field1 pour 2 notions (tableA et aTableB)
    • L’intégration des champs field2 pour les mêmes notions
    • L’ajout d’une dépendance particulière.

Voici cette démonstration :

[embedyt] http://www.youtube.com/watch?v=xh2POb-Kj6c[/embedyt]

 

Le code est disponible sur Bitbucket: https://bitbucket.org/middlewaresolutions/soa12-dbadapterdemo

J’y ai finalement ajouté une chorégraphie avec WebService. Il s’agit du projet composite PersistAandBWS. Il est similaire à PersistAandB de la vidéo. Vous le trouverez dans le code git.

Au final, ce cas répond à quelques questions couramment posées :

Comment propager une transaction ?

Réponse : Pour le DirectBinding: c’est automatique. Pour les WebServices référents: préciser WSAT12 + MANDATORY.

Est-il possible de travailler sur une même notion dans plusieurs services ?

Oui. Les opérations sont réalisées dans l’ordre dicté par le service de chorégraphie. L’enregistrement est enrichi progressivement.

Le merge du DBAdapter est-il suffisant et efficace ?

Oui. Il faut toutefois faire attention au mapping avec l’attribut « private-owned » des relations. Par défaut, il est à true, ie. les dépendances ne sont par mergées, il est donc préférable mais plus coûteux de le positionner à false pour recharger les instances liées.

Prise en main de Coherence 12.2.1

La dernière version du DataGrid Java d’Oracle vient de sortir, Coherence 12.2.1. Voici comment démarrer un projet de zéro.

Télécharger le produit

Depuis le site d’Oracle sur http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html

Télécharger les 2 binaires:

  • Coherence Quick install
  • Coherence Quick install Supplemental

Download coherence 12.2

 Installer Coherence

  • Décompresser les 2 archives dans un répertoire commun
  • Installer le package de base dans OracleHome
set COHERENCE_HOME=c:\Oracle\Coherence12.2
java -jar fmw_12.2.1.1.0_coherence_quick.jar ORACLE_HOME=%ORACLE_HOME%
  • Installer les extensions
java -jar fmw_12.2.1.1.0_coherence_quick_supplemental.jar ORACLE_HOME=%COHERENCE_HOME%

Lire la suite

SOA sans ESB

esbUn de mes clients m’a récemment poussé cette vidéo de Martin Fowler et Jim Webber sur une présentation acide sur la SOA et son outillage. Je vous partage ma vision.

En résumé, Martin et Jim attaquent là où ça fait mal: au niveau de l’agilité des processus de construction des intermédiations et sur la complexité des outils. Leur constat est (était?) le suivant:

Middleware propriétaire Technologies Web Centriques
– Non performant
– Coûteux
– Risqué
– Echelle de l’entreprise
– Spécialisé
– Intégration est une activité à part en tiers
– Design évolutif
– Delivry continue
– Pas couteux
– Incrémental
– Croix avec internet
– Intégration contrôlée par le consommateur

En un mot, ils préconisent la mise en oeuvre d’une démarche de services sans ESB car ils portent une complexité trop importante à contrario de l’approche Web. A ce propos, est-ce l’origine de la vague d’API Management actuelle ?

Bref, je comprends complètement leurs critiques. Pour être franc, j’ai moi-même connu des mastodontes tant sur leurs besoins en ressources matérielles que sur leur incapacité à évoluer. Mais…

Lire la suite

Transformation plus agile du Système d’Information

ConferenceLors de la mise en œuvre d’une démarche SOA outillé, je fais souvent le constat que l’interconnexion est assez coûteuse en effort humain. Il faut beaucoup communiquer pour clarifier les mécanismes envisageables, identifier les contraintes, définir les capacités du système, mettre en corrélation avec les patterns existants, etc. tout ceci avec de nombreux interlocuteurs : les chefs de projets, les architectes logiciels, les architectes systèmes, les architectes SOA et les urbanistes. Malgré tous ces efforts et après d’âpre discussions, le propriétaire du système craint alors des impacts sur ses flux existants et veut donc, tout naturellement, minimiser l’impact de ces nouveautés.

Derrière ce constat se cachent 2 problématiques :

  1. le manque de confiance dans la gestion du changement
  2. le manque de contrôle vis-à-vis de cet usage imposé.

Ce constat est exaspérant car il est consommateur d’une énergie folle. Il faut constamment se réunir et se synchroniser pour expliciter les besoins, décrire les données transférées, demander l’exécution d’un service (ensemble de règles) et faire correspondre avec les patterns et les outils d’interconnexions existants. Petit ou gros changements, l’effort humain pour faire aboutir ces besoins est majeur.

Les parties techniques sont souvent les plus simples. Il convient de mettre en place des mécanismes spécialisés portés par le Bus d’entreprise 9 fois sur 10. Voici quelques exemples:

  • Les connecteurs ABAP ou IDOC SAP
  • Les pooling et CDC (Change Data Capture) des bases de données
  • Les API d’accès aux couches natives
  • Exposition de règles par des Web Services

Pour chaque système, une série d’interconnexions est définie, prototypée puis validée.

Bref, chaque système subit l’évolution de son écosystème. En fonction des demandes externes, transverses ou globales, des interfaces supplémentaires sont ajoutées au fur et à mesure.

Lire la suite

AWS Summit 2016

Cela faisait 2 ans que je n’avais pas mis les pieds à un événement AWS. (cf. Blog Sodifrance). J’y suis allé avec quelques questions: Depuis 2014, quelles sont les nouveautés ? Comment Amazon continue à tenir le marché des offres Cloud ? Où en sont les offres PaaS sur le SOA, BPM, API, Micro-Services et Streams ?

Voici un petit aperçu de ma journée et de ce que j’en ai retenu.

Keynote

3h de show de Werner Vogels qui a balayé toutes les fonctionnalités de AWS. Quel marathonien et quel showman !

Lire la suite

L’API Management, fruit de l’économie collaborative

confusionC’est en sortant d’une réunion pénible avec une équipe marketing que j’ai eu envie d’écrire cet article. « Ouvrir le Système d’information aux nouvelles opportunités » qu’ils disent. Mais en posant sur la table un flou d’expression de besoin, je dirai même un flou opaque, nous n’avons abouti à rien… Bref, à par Ubber et son modèle économique, c’est pas très clair. Je vous propose donc de rembobiner la problématique et de repartir sur des bases saines (et moi avec vous).

 
Je ne vous cache pas que de nombreux mots clés ont été échangés durant cette réunion (et les précédentes): API, API Management, développeurs affiliés, etc. Mais comme le disait un auteur inconnu:

Comprendre la solution, c’est bien. Comprendre le besoin, c’est essentiel.

Les exemples de réussites commerciales comme Ubber, BlaBlaCar ou AirB&B font envie à nos dirigeants d’entreprise. On nous le martèle à longueur de journée. Autre exemple, la vague des fintech bouleverse les banques habituées à, disons, une concurrence plus tranquille.

Lire la suite