SOA facile !
             Pour le DSI et le développeur

             en 10 pratiques
             Outillées par
                   Marc Dutoo, Open Wide


19/04/2012                                   1
A propos de l’intervenant

Marc Dutoo
      • Leader EasySOA, responsable pôle R&D chez Open Wide
      • Expert SOA, BPM, ECM
EasySOA
      • Simplifer SOA par le web et l’Open Source autour d’un registre
        et entrepôt de services collaboratif
      • Projet sur 2011-2012 - 4m€ - label System@tic
      • Dirigé par Open Wide, avec INRIA, Nuxeo, Talend, EasiFab, Bull
Open Wide – architecte Open Source
      • ~ 90 employés sur Paris et Lyon, spin off de Thalès
      • Portail, gestion documentaire, Business Intelligence…
19/04/2012                        2
I. Introduction
        II. Pratiques
             1.   Découverte et audit
             2.   Documentation collaborative
             3.   Assainissement SOA
             4.   Tests et simulation
             5.   Et au-delà…




19/04/2012                                      3
SOA, simple ?

SOA est plus que jamais nécessaire
      •   Cloud
      •   Agilité et alignement de l’IT sur le métier
      •   Mais aussi mobilité, Green IT...
      •   … et va devoir passer à l’échelle !


Mais pour autant « simple » ??
      •   XML & SOAP hell
      •   « solutions complètes / intégrées » vs overstandardization
      •   Réunionite
      •   … et pour vous ?
19/04/2012                            4
Découverte et audit

Pour le DSI
      • Pour gérer une SOA, il faut d’abord savoir quels services il y a !
      • Visibilité, audit ; la liste des services et de leurs usages comme
        première métriques
Pour le développeur
      • Pour utiliser un service, il faut d’abord le connaître !
      • répondre une fois pour toute et de manière pratique à la
        question « où est ce WSDL / cet endpoint / cet échange etc. »
             – pour tous, tous les outils & cas d'usage, tous les projets
             – car il peut être dans les spécifications, à côté du source qu'il a généré,
               ou être généré lui-même au runtime par le moteur de services…
             – Pour éviter respectivement le WSDL "design-only" potentiellement
19/04/2012
               obsolète, caché / non publié, ou autogénéré
                                            5
Découverte et audit - comment

Ce qui est à chercher
      • Endpoints : URLs, définition runtime
             – Les moteurs de service publient souvent une page avec des liens vers
               les WSDLs et endpoints de tous les services hébergés
      • Echanges : consommation / dépendance / référence
             – Par monitoring (ex. HTTP tunnel ou proxy) ou configuration / code
      • Configuration voire code : architecture technique
             – Par étude du source et notamment des fichiers de configuration :
               Spring / JEE CDI, EIP, définition de processus…
      • Spécifications métier : vue / processus / architecture métier
             – Par étude des spécifications, voire en versions formelles (Aris, UML)


19/04/2012                                 6
Découverte et audit - exemple




19/04/2012                 7
Découverte et audit – avec EasySOA

Découverte et enregistrement dans EasySOA
      • Endpoints : URLs, définition runtime
             – Découverte web : scraping des liens HTML vers des WSDLs…
      • Echanges : consommation / dépendance / référence
             – Découverte par monitoring des échanges HTTP (proxy) : SOAP, REST
      • Configuration voire code : architecture technique
             – Découverte par parsing dans les artefacts (SCA…), des artefacts par
               Maven ou à partir du classpath d’exécution…
      • Spécifications métier : vue / processus / architecture métier
             – Découverte par export depuis Eclipse SOA (BPMN…)
      • Tout ceci extensible ! Et aussi…
             – Accès aux infos découvertes universel par la GED, export bulk zip
             – Import depuis un registre / entrepôt / db / csv existant
19/04/2012                                8
Découverte et audit – web, monitoring




20/04/2012                                           9
Documentation collaborative

SOA est d'abord de la gestion d’informations!
   • (en plus de produire du code)
   • gérer la liste des services fournis / autorisés
       – à qui, en quelle version, sur quelle période (cycle de vie), avec quelles
         conditions et documentation d'usage
       – La versionner, la publier et la rendre accessible au plus prêt des acteurs
   • puis faciliter son évolution collaborative par les acteurs
       – Métier (!), architecte / développeur, également exploitants
       – Au-delà, pareil pour tout ce qui y est lié : besoins, spécifications, SLA…
Pour le DSI :
      • gestion de ses assets, pérennisation, référence
      • source de métriques de sa SOA, communication ponctuelle ou
         flux d’information aux utilisateurs finaux (état des services)
19/04/2012                           10
Documentation collaborative - 2

Pour le développeur :
   • avoir une référence : par exemple des WSDLs, pour éviter ou
     pallier à la redondance de WSDLs dans le source
   • et référencer côte à côte ses spécifications, endpoints,
     exemples, voire artifacts, tests...
Pour tous : collaboration & communication !
   • Pourquoi ? Comment impliquer les acteurs ? Quel workflow ?
     Voir présentation OpenWorldForum sur Slideshare
Comment : outils
      • Du tableur (liste des services) & système de fichier partagé
      • En passant par SCM, wiki (« github »)
      • A gestion et portail documentaire
19/04/2012                          11
Documentation collaborative – EasySOA

Solution documentaire et collaborative pour le SOA
      • Basée sur la plateforme Nuxeo DM
      • Documents organisés selon un modèle SOA léger
             – Vues, recherche, contribution, workflow ; prévu : wiki
             – Commentaires, prévisualisation annotée, activité sociale, dashboard
             – Services publiés et documentés manuellement et automatiquement
               (apidoc) à l’aide des informations issues des découvertes
      • Ne remplace pas outils et applications de documentation de
             – conception, implémentation, exploitation, mais y lie ou s’y intégre
      • Intégration ouverte avec une gamme d’outils
             – Exemple : choisir le WSDL, plutôt que copier / coller son URL
                 » Dans les outils embarqués (EasySOA Light) : service client…
                 » dans les gammes d’outils intégrés : Eclipse SOA BPMN /
19/04/2012                                12
                   Mangrove…
Documentation collaborative




20/04/2012                                 13
Assainissement - problème

SOA se distingue par des responsabilités IT partitionnées
      • Entre plusieurs acteurs, chacun fournisseur de ses services
      • Les événements SOA sont donc transverses aux “Participants”
             – déploiement d’une nouvelle version d’un service ou d’une application,
               alerte d’exploitation, mais aussi décision à prendre, évolutions…
Problème :
      • ce n’est pas le cadre de collaboration primaire de chacun des
        acteurs (leur propre département ou entreprise)
             – Pas les mêmes personnes, locaux, outils (y compris de collaboration)
             – Collaboration moins bien rodée, outillée, intégrée
      • Ce n’est pas l’usage primaire de leur application, qui est ses
        utilisateurs métier directs par le biais de sa propre UI
19/04/2012                                14
Assainissement – cas concret

      • Donc plus difficile d’impliquer les autres acteurs si nécessaire
      • Et surtout, plus difficile d’en avoir le réflexe !
             – Perte des alertes du niveau applicatif interne pouvant affecter la SOA :
               déploiement d’une nouvelle version d’une application, anticipation des
               pics d’usage, phasage…
Un cas concret :
      • FlowerOrderService consomme CRMContactService, qui est
        exposé par le CRM dont l’usage primaire est pour les
        commerciaux par sa propre interface web
      • Une évolution du CRM peut casser l’intégration « en silence» :
             – Évolution du modèle du Contact, qui est directement exposé en service
             – La syntaxe ou sémantique change : contactId change de « 0x… » à « … »
             – Le comportement change, ex. les contacts peuvent être supprimés
19/04/2012                                15
Assainissement - pourquoi

Et SOA là-dedans ? N’est-il pas déjà la solution ?
      • Si le responsible SOA du CRM n’en dit rien, le responsable
        SOA de Flowers ne peut pas savoir que ça change !
      • … dans la réalité, la gestion SOA est rarement parfaite
             – obtenir de son vis-à-vis, outre le respect des spécifications, un suivi
               des évolutions impactantes dans le temps est difficile, d’autant plus
               qu’elles ne concernent pas son application ni son coeur de métier
      • Il faudrait donc s’en passer ?
             – On peut l’outiller : registre collaboratif EasySOA Core,
               éventuellement aidé d’une supervision Jasmine. Mais oui…
…Il faut supposer que la gestion SOA n’est pas parfaite !
      • Il faut donc s’en protéger et l’assainir
             – détecter les changements d’API
19/04/2012                                 16
Assainissement - API

Qu’est-ce qu’une API ? Une définition de service WSDL !
      • Mais attention, il n’est pas suffisant, car :
             – Il peut être mal défini (tous les champs typés xs:string optionnels)
               => s’en protéger en le redéfinissant mieux et en le wrappant
             – Il gère peu syntaxe et sémantique (“0x…”) et pas comportements
             – REST est mieux (interface unifiée avec invariants), mais malgré tout
      • (bonus) en plus, le WSDL mélange tout
             – RPC, validation du flux côté client vs serveur, modèle de génération
               de code côté client et serveur, non fonctionnel…
             – Pour ceux qui ne veulent pas mélanger : utiliser un modèle plus
               souple tel REST, des services intermédiaires internes “proxy” pour
               séparer le non-fonctionnel et des briques plus spécifiques telles :
                 » RxSchema pour la validation,
                 » SPoRE dans le cas des clients REST scriptés,
19/04/2012                                 17
                 » Schematron pour les définitions clairsemées (sparse)…
Assainissement - principe

      • Des cas de données ou processus peuvent apparaître qui le
        prennent en défaut
Solution : détecter les changements des APIs SOA
      • … une API est donc en fait garantie par l’ensemble couvrant
        des échanges qui l’utilisent dans une SOA
             – Ensemble par exemple issu d’un jeu de test couvrant,
             – d’une capture d’un scenario de test fonctionnel couvrant en recette
             – Tant que le scenario de test est couvrant et les echanges synchrones,
               une même API gardera la même “empreinte”
Au-delà, de même pour garantir ses propres APIs
      • Comparaison de leur empreinte pour mesurer leur évolution
      • Validation par rapport aux APIs et tests mockés issus des specs
19/04/2012                                18
Assainissement - comment

Comment : “le BDD / CI du SOA”
      • Récupération et comparaison régulière des définitions (WSDL,
        WADL, voire JAXWS/RS)
      • Tests fonctionnels pour une API
             – Dans SOA complet (environnement d’intégration) ou simulé
             – Tests drivés depuis le frontend utilisateur (Selenium) ou des services
               intermédiaires, alimentés par des enregistrements (proxy HTTP,
               firebug, httpwatch ; ou SOAPUI)
      • Automatisés dans intégration continue (Jenkins / Hudson)
Voire jusqu’à des tests de sécurité, performances…


19/04/2012                                19
Assainissement – avec EasySOA

Fonctionnement (à venir en 0.4)
      • Enregistrement d’une séance de découverte web par proxy,
        puis rejeu planifié de ces découvertes (brique HTTP Mining)
      • Comparaison du système découvert avec la version initiale
        publiée (interface Sanity Check Dashboard) et génération et
        mise à disposition d’un rapport
Prévu :
      • intégration d’assertions sur tests outillés HTTP Mining,
      • voire de métriques d’exploitation SOA OW2 Jasmine



19/04/2012                         20
Assainissement – dashboard, report UI




20/04/2012                 21
Tests et simulation

Créer des client et serveur de test
      • En utilisant les outils et modèles de programmation
             – classiques, ex. Java : junit, mockito, injection de services de test…
             – adapté aux échanges (en phase d’intégration au niveau de l’application
               ou de tout le système) : HTTP, SOAPUI, Citrus, RestFuse, FraSCAti…
                  » Problème : les données variables (dates) => les fixer partout, ou ne
                    faire que des vérifications partielles (patterns / contains)
      • On peut aussi s’en servir en TDD / BDD
             – développer d’abord des implémentations minimales validant les
               spécifications et leurs tests, les revalider sur l’implémentation finale
      • Si REST « pur » (pas de définition standard) : modéliser l’API
             – A la main d’après la doc en JAXRS, SPoRE / RxSchema…
             – Interactivement d’après exemples : REST Describe & Compile
19/04/2012   – D’après des échanges « live22 avec SOAPUI ; d’après des exemples, si
                                            »
Tests et simulation - 2

      • Simuler un service
             – Car en test, appeler le « vrai » service (fourni par un autre acteur /
               participant au-dessus du Cloud, fut-ce pour le test) est une antipattern
               (sauf bien sûr pour l’intégration)
             – Utiliser son API (éventuellement modélisée) dans le langage /
               paradigme de programmation choisi
             – Ou bien enregistrer des échanges réels, fussent-ils eux-même générés
               par des tests, et les rendre propres et rejouables, voire les variabiliser
               (templates) pour pouvoir en simuler plusieurs usages
                  » le meilleur client d'un service existant : son client métier naturel !
      • SOAPUI
             – Test facile de services SOAP et REST : envoi de requêtes, réponses du
               serveur simulées voire scriptées, usage en HTTP proxy ou tunnel, CI…
             – Mais tout est sauvé dans un gros fichier de configuration XML, donc
               pas diffable, pas maintenable, pas partageable
19/04/2012                                 23
Tests et simulation - EasySOA

HTTP Mining (sera dans 0.4)
      • valorisation et réutilisation des échanges existants
      • Enregistre les échanges HTTP
             – Format JSON issu de Firebug / HTTPWatch
             – par HTTP proxy ou tunnel à configurer côté client
             – Déployé dans Servlet, Filter, prévu : CXF / FraSCAti
      • Permet de les rejouer
      • Permet de jouer des échanges légèrement différents
             – En en générant des templates d’échanges, par heuristiques de
               correlation entre requête et réponse, ex. champs id ou query
             – ces templates sont modifiables, aujourd’hui dans le code (velocity)
      • d’exécuter des assertions sur les réponses
             – Contains, header / content assertions, champs XML ou json…
19/04/2012                                 24
Tests et simulation – EasySOA - 2

SOAPUI
      • Génération de configuration contenant tous les WSDLs d’une
        SOA ; prévu : réintégration versionnée après modifications
Détection de changement d’API entre mocks et réel
Modélisation d’API REST
      • Heuristiques : nombre d’appels d’un ordre de grandeur
        supérieur sur des nœuds « données » vs des nœuds « api »
REST-iser un WSDL – le rendre navigable (pas fait):
      • Ou simplifier en divisant pour régner définition et données
      • En racine, afficher les résultats des opérations sans paramètres
      • Et pour tout résultat, proposer les opérations possibles
19/04/2012   – En correlant les types en entrées et sorties de toutes les opérations
                                           25
Et au-delà…

On peut faire du SOA avec les doigts !
      • Il faut au moins connaître les enjeux et les risques
      • C’est mieux de s’équiper en conséquence
      • EasySOA veut apporter une réponse
             – Suffisamment générique pour HTTP et notamment Java
             – Intégrée avec une gamme de solutions : Talend, Jasmine, Eclipse SOA…
Patterns EasySOA sur le site (à enrichir)
      • http://www.easysoa.org/the-box-o-patterns
      • http://www.easysoa.org/category/all/blog/pattern

                          Merci de votre attention !

19/04/2012                               26
EasySOA – Get involved




                www.easysoa.org
               github.com/easysoa
             easysoa-dev@googlegroups.com


19/04/2012                     27
BONUS




19/04/2012   28
EasySOA - Fiche d’identité


Fiche d’identité EasySOA
    –   5 partenaires
    –   budget : 4m€ sur 2 ans
    –   Labellisé par System@tic
    –   Et un objectif ambitieux…

Rendre simples d’usage les Architectures Orientées Service
  (SOA),
    – Leur usage métier, leur développement, leur exploitation et
      supervision
    – Pour appuyer sur l’accélérateur du moteur SOA dans le Système
      d’Information de l’entreprise !


19/04/2012                          29
EasySOA – But




19/04/2012                   30
EasySOA - But

Le but : rajouter une couche SOA plus légère et agile
  autour du SOA “traditionnel”
      • Grâce à une approche en ligne, sociale et collaborative
        impliquant tous les acteurs du processus SOA :
             – utilisateurs métier, architectes et développeurs, exploitants
      • Permettant
             – La découverte ex nihilo des services existants, leur cartographie, leur
               documentation collaborative
             – L’assainissement et la protection des SOAs existantes, des
               développements en cours mais aussi vis-à-vis des SOAs consommées
             – Le prototypage rapide au-dessus des services et applications
               existantes, sans les impacter
             – La réutilisation des éléments produits (besoins, tests, mockup) pour
19/04/2012
               faciliter la réimplémentation dans une plateforme SOA “classique”
                                           31
EasySOA – Consortium
Un consortium français de leaders de l’Open Source
   • INRIA labs : moteur de services (OW2 FraSCAti),
     modélisation SOA (Eclipse SOA) et monitoring (framework
     Galaxy, en sous-traitance par la startup EasiFab)
   • Talend (ETL) : connecteurs SOA et données aux données et
     solutions existantes, qu’elles soient métier ou SOA
   • Nuxeo (ECM) : plateforme de gestion de documents, pour
     gérer le modèle SOA et son contenu collaborativement
   • Bull (service et infrastructure) : administration et
     supervision du SOA avec OW2 Jasmine et un cas d’usage
   • Open Wide : coordinateur, architecture et intégration
     globale, BPM (avec Eclipse JWT / OW2 Scarbo), cas d’usage

                              32
EasySOA – le programme Compagnons

Une approche proche du terrain, « guerilla »
      • pour faire émerger cas d’usage et besoins récurrents, autour
        du noyau projet, chez nous, nos clients, nos communautés
      • des personnes identifiées, qui nous font confiance, à qui nous
        demandons de partager leurs problématiques
Le principe : un partage réciproque
      • Partagez vos problématiques avec nous,
      • Nous les analysons, puis enrichissons EasySOA (disponible en
        Open Source) pour adresser les plus prometteuses
Ne payez que le spécifique
      • Si vous en voulez : installation et configuration,
        développements spécifiques
19/04/2012                          33

Contenu connexe

PDF
Ouvrir son SI avec la trilogie Portail, SOA, BPM (Solutions Linux 2010 - cycl...
PDF
La SOA au sein des systèmes d'information
PDF
SOA - Architecture Orientée Service : Démystification
PPT
Introduction a la SOA
PPTX
Chp2 - SOA
PDF
SOA - Architecture Orientée Service : Démystification Khaled Ben Driss 17 Avr...
PPT
PDF
eServices-Chp2: SOA
Ouvrir son SI avec la trilogie Portail, SOA, BPM (Solutions Linux 2010 - cycl...
La SOA au sein des systèmes d'information
SOA - Architecture Orientée Service : Démystification
Introduction a la SOA
Chp2 - SOA
SOA - Architecture Orientée Service : Démystification Khaled Ben Driss 17 Avr...
eServices-Chp2: SOA

Tendances (20)

PPTX
Chp3 - ESB
PDF
Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014
PPTX
Architectures orientés services (SOA)
PPTX
Chp1- Introduction aux Technologies Web et SOA
PPTX
Chp2 - Vers les Architectures Orientées Services
PPTX
Cas d'usages d'un ESB - Petals Link - 2011
PDF
SOA - Architecture Orientée Service : Démystification Khaled Ben Driss 21 Nov...
PDF
eServices-Chp1: Introduction
PDF
Mule ESB Summit 2010 avec Ippon
PPSX
SOA - Graduation project
PDF
Soirée SOA - 2010-06-15 - Introduction par Logica
PDF
Partie3 cif et dcif
PDF
Présentation de l'offre IAM de LINAGORA LinID
PDF
Architectures distribuées
PPTX
Architecture orientée service (SOA)
PPT
Présentation SOA
PDF
eServices-Chp3: Composition de Services
PDF
Webinar "Matrice de décision ECM"
PDF
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
PDF
Architectures orientées services
Chp3 - ESB
Présentation du SOA et BPM par Rs2i_AtelierFocusInnovation_06022014
Architectures orientés services (SOA)
Chp1- Introduction aux Technologies Web et SOA
Chp2 - Vers les Architectures Orientées Services
Cas d'usages d'un ESB - Petals Link - 2011
SOA - Architecture Orientée Service : Démystification Khaled Ben Driss 21 Nov...
eServices-Chp1: Introduction
Mule ESB Summit 2010 avec Ippon
SOA - Graduation project
Soirée SOA - 2010-06-15 - Introduction par Logica
Partie3 cif et dcif
Présentation de l'offre IAM de LINAGORA LinID
Architectures distribuées
Architecture orientée service (SOA)
Présentation SOA
eServices-Chp3: Composition de Services
Webinar "Matrice de décision ECM"
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Architectures orientées services
Publicité

Similaire à SOA facile en 10 pratiques avec EasySOA - Alpes JUG (20)

PPTX
Web services SOAP et REST
PPTX
ASFWS 2012 WS Security - REST vs SOAP par Sylvain Maret
PDF
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
PPTX
courwebwebewcourwebwebewcourwebwebewcourwebwebew.pptx
PPT
Bureau Metier - Version 20061010
PDF
Comprendre, utiliser et créer une API
PPTX
Soa & services web
PDF
Démystifions l'API-culture!
PDF
Securite des Web Services (SOAP vs REST) / OWASP Geneva dec. 2012
PDF
Solutions Linux 2010
PPT
education
PDF
PZ_Microservices101_20150210
PPTX
Les plateformes de développement des web services
PDF
Services web soap-el-habib-nfaoui
PDF
Cours services web_fabrice_mourlin
PDF
Plaquette Xerox Codendi
PDF
Seminaire 2010 : Réussir les nouveaux projets web innovants avec Drupal
PDF
cours intoduction Soa_compress_Master.pdf
PDF
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Web services SOAP et REST
ASFWS 2012 WS Security - REST vs SOAP par Sylvain Maret
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
courwebwebewcourwebwebewcourwebwebewcourwebwebew.pptx
Bureau Metier - Version 20061010
Comprendre, utiliser et créer une API
Soa & services web
Démystifions l'API-culture!
Securite des Web Services (SOAP vs REST) / OWASP Geneva dec. 2012
Solutions Linux 2010
education
PZ_Microservices101_20150210
Les plateformes de développement des web services
Services web soap-el-habib-nfaoui
Cours services web_fabrice_mourlin
Plaquette Xerox Codendi
Seminaire 2010 : Réussir les nouveaux projets web innovants avec Drupal
cours intoduction Soa_compress_Master.pdf
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Publicité

Plus de Marc Dutoo (20)

PDF
Bringing Entreprise Search in the Big Data era with PCU - Paris Open Source ...
PDF
OCCIware @ Paris Open Source Summit 2017 - a standard, extensible Cloud consu...
PDF
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
PDF
PCU@RISE 2017 - Building a thesaurus for product search
PDF
OCCIware@CloudExpoLondon2017 - an extensible, standard XaaS Cloud consumer pl...
PDF
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
PDF
OCCIware@OW2con 2016
PDF
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
PDF
OCCIware Cloud Expo London 2016 - Docker Studio, Studio Factory, erocci bus &...
PDF
OCCIware @ Cloud Computing World 2016 - year 1 milestone & Linked Data demo
PDF
OCCIware & Linked Data prototype OW2Con@POSS
PDF
OCCIware - A Framework for Everything as a Service - Cloud Expo London 2015
PDF
EasySOA business case and real world use case 20130220
PDF
Alfresco Meetup - ETL Connector & Talend
PDF
OW2Con2012 Scarbo2 SOA-Consistent BPM
PDF
EclipseConEurope2012 SOA - Models As Operational Documentation
PDF
EclipseConEurope2012 SOA - Talend with EasySOA
PDF
Service Integration Goes Social - Solutions Linux 2012 (OW2 Track)
PDF
Scripts, Apps, APIs : les nouveaux champs de bataille de l'Open Source à l'èr...
PDF
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
Bringing Entreprise Search in the Big Data era with PCU - Paris Open Source ...
OCCIware @ Paris Open Source Summit 2017 - a standard, extensible Cloud consu...
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
PCU@RISE 2017 - Building a thesaurus for product search
OCCIware@CloudExpoLondon2017 - an extensible, standard XaaS Cloud consumer pl...
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
OCCIware@OW2con 2016
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
OCCIware Cloud Expo London 2016 - Docker Studio, Studio Factory, erocci bus &...
OCCIware @ Cloud Computing World 2016 - year 1 milestone & Linked Data demo
OCCIware & Linked Data prototype OW2Con@POSS
OCCIware - A Framework for Everything as a Service - Cloud Expo London 2015
EasySOA business case and real world use case 20130220
Alfresco Meetup - ETL Connector & Talend
OW2Con2012 Scarbo2 SOA-Consistent BPM
EclipseConEurope2012 SOA - Models As Operational Documentation
EclipseConEurope2012 SOA - Talend with EasySOA
Service Integration Goes Social - Solutions Linux 2012 (OW2 Track)
Scripts, Apps, APIs : les nouveaux champs de bataille de l'Open Source à l'èr...
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012

Dernier (9)

PDF
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
PPTX
Projet de Fin d’Études – Plateforme FMS pour la Gestion des FCPR
PDF
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
PDF
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
test pour la présentation foire de Chalôns V1
PDF
Architecture logicielle et Modeles de Conception
PPT
Pratiques des systèmes d'information ppt
PDF
Démystification des QR codes - histoire - utilisations - techniques
PDF
COURS GCDs Chap 9.pdf tous les éléments.
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
Projet de Fin d’Études – Plateforme FMS pour la Gestion des FCPR
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
test pour la présentation foire de Chalôns V1
Architecture logicielle et Modeles de Conception
Pratiques des systèmes d'information ppt
Démystification des QR codes - histoire - utilisations - techniques
COURS GCDs Chap 9.pdf tous les éléments.

SOA facile en 10 pratiques avec EasySOA - Alpes JUG

  • 1. SOA facile ! Pour le DSI et le développeur en 10 pratiques Outillées par Marc Dutoo, Open Wide 19/04/2012 1
  • 2. A propos de l’intervenant Marc Dutoo • Leader EasySOA, responsable pôle R&D chez Open Wide • Expert SOA, BPM, ECM EasySOA • Simplifer SOA par le web et l’Open Source autour d’un registre et entrepôt de services collaboratif • Projet sur 2011-2012 - 4m€ - label System@tic • Dirigé par Open Wide, avec INRIA, Nuxeo, Talend, EasiFab, Bull Open Wide – architecte Open Source • ~ 90 employés sur Paris et Lyon, spin off de Thalès • Portail, gestion documentaire, Business Intelligence… 19/04/2012 2
  • 3. I. Introduction II. Pratiques 1. Découverte et audit 2. Documentation collaborative 3. Assainissement SOA 4. Tests et simulation 5. Et au-delà… 19/04/2012 3
  • 4. SOA, simple ? SOA est plus que jamais nécessaire • Cloud • Agilité et alignement de l’IT sur le métier • Mais aussi mobilité, Green IT... • … et va devoir passer à l’échelle ! Mais pour autant « simple » ?? • XML & SOAP hell • « solutions complètes / intégrées » vs overstandardization • Réunionite • … et pour vous ? 19/04/2012 4
  • 5. Découverte et audit Pour le DSI • Pour gérer une SOA, il faut d’abord savoir quels services il y a ! • Visibilité, audit ; la liste des services et de leurs usages comme première métriques Pour le développeur • Pour utiliser un service, il faut d’abord le connaître ! • répondre une fois pour toute et de manière pratique à la question « où est ce WSDL / cet endpoint / cet échange etc. » – pour tous, tous les outils & cas d'usage, tous les projets – car il peut être dans les spécifications, à côté du source qu'il a généré, ou être généré lui-même au runtime par le moteur de services… – Pour éviter respectivement le WSDL "design-only" potentiellement 19/04/2012 obsolète, caché / non publié, ou autogénéré 5
  • 6. Découverte et audit - comment Ce qui est à chercher • Endpoints : URLs, définition runtime – Les moteurs de service publient souvent une page avec des liens vers les WSDLs et endpoints de tous les services hébergés • Echanges : consommation / dépendance / référence – Par monitoring (ex. HTTP tunnel ou proxy) ou configuration / code • Configuration voire code : architecture technique – Par étude du source et notamment des fichiers de configuration : Spring / JEE CDI, EIP, définition de processus… • Spécifications métier : vue / processus / architecture métier – Par étude des spécifications, voire en versions formelles (Aris, UML) 19/04/2012 6
  • 7. Découverte et audit - exemple 19/04/2012 7
  • 8. Découverte et audit – avec EasySOA Découverte et enregistrement dans EasySOA • Endpoints : URLs, définition runtime – Découverte web : scraping des liens HTML vers des WSDLs… • Echanges : consommation / dépendance / référence – Découverte par monitoring des échanges HTTP (proxy) : SOAP, REST • Configuration voire code : architecture technique – Découverte par parsing dans les artefacts (SCA…), des artefacts par Maven ou à partir du classpath d’exécution… • Spécifications métier : vue / processus / architecture métier – Découverte par export depuis Eclipse SOA (BPMN…) • Tout ceci extensible ! Et aussi… – Accès aux infos découvertes universel par la GED, export bulk zip – Import depuis un registre / entrepôt / db / csv existant 19/04/2012 8
  • 9. Découverte et audit – web, monitoring 20/04/2012 9
  • 10. Documentation collaborative SOA est d'abord de la gestion d’informations! • (en plus de produire du code) • gérer la liste des services fournis / autorisés – à qui, en quelle version, sur quelle période (cycle de vie), avec quelles conditions et documentation d'usage – La versionner, la publier et la rendre accessible au plus prêt des acteurs • puis faciliter son évolution collaborative par les acteurs – Métier (!), architecte / développeur, également exploitants – Au-delà, pareil pour tout ce qui y est lié : besoins, spécifications, SLA… Pour le DSI : • gestion de ses assets, pérennisation, référence • source de métriques de sa SOA, communication ponctuelle ou flux d’information aux utilisateurs finaux (état des services) 19/04/2012 10
  • 11. Documentation collaborative - 2 Pour le développeur : • avoir une référence : par exemple des WSDLs, pour éviter ou pallier à la redondance de WSDLs dans le source • et référencer côte à côte ses spécifications, endpoints, exemples, voire artifacts, tests... Pour tous : collaboration & communication ! • Pourquoi ? Comment impliquer les acteurs ? Quel workflow ? Voir présentation OpenWorldForum sur Slideshare Comment : outils • Du tableur (liste des services) & système de fichier partagé • En passant par SCM, wiki (« github ») • A gestion et portail documentaire 19/04/2012 11
  • 12. Documentation collaborative – EasySOA Solution documentaire et collaborative pour le SOA • Basée sur la plateforme Nuxeo DM • Documents organisés selon un modèle SOA léger – Vues, recherche, contribution, workflow ; prévu : wiki – Commentaires, prévisualisation annotée, activité sociale, dashboard – Services publiés et documentés manuellement et automatiquement (apidoc) à l’aide des informations issues des découvertes • Ne remplace pas outils et applications de documentation de – conception, implémentation, exploitation, mais y lie ou s’y intégre • Intégration ouverte avec une gamme d’outils – Exemple : choisir le WSDL, plutôt que copier / coller son URL » Dans les outils embarqués (EasySOA Light) : service client… » dans les gammes d’outils intégrés : Eclipse SOA BPMN / 19/04/2012 12 Mangrove…
  • 14. Assainissement - problème SOA se distingue par des responsabilités IT partitionnées • Entre plusieurs acteurs, chacun fournisseur de ses services • Les événements SOA sont donc transverses aux “Participants” – déploiement d’une nouvelle version d’un service ou d’une application, alerte d’exploitation, mais aussi décision à prendre, évolutions… Problème : • ce n’est pas le cadre de collaboration primaire de chacun des acteurs (leur propre département ou entreprise) – Pas les mêmes personnes, locaux, outils (y compris de collaboration) – Collaboration moins bien rodée, outillée, intégrée • Ce n’est pas l’usage primaire de leur application, qui est ses utilisateurs métier directs par le biais de sa propre UI 19/04/2012 14
  • 15. Assainissement – cas concret • Donc plus difficile d’impliquer les autres acteurs si nécessaire • Et surtout, plus difficile d’en avoir le réflexe ! – Perte des alertes du niveau applicatif interne pouvant affecter la SOA : déploiement d’une nouvelle version d’une application, anticipation des pics d’usage, phasage… Un cas concret : • FlowerOrderService consomme CRMContactService, qui est exposé par le CRM dont l’usage primaire est pour les commerciaux par sa propre interface web • Une évolution du CRM peut casser l’intégration « en silence» : – Évolution du modèle du Contact, qui est directement exposé en service – La syntaxe ou sémantique change : contactId change de « 0x… » à « … » – Le comportement change, ex. les contacts peuvent être supprimés 19/04/2012 15
  • 16. Assainissement - pourquoi Et SOA là-dedans ? N’est-il pas déjà la solution ? • Si le responsible SOA du CRM n’en dit rien, le responsable SOA de Flowers ne peut pas savoir que ça change ! • … dans la réalité, la gestion SOA est rarement parfaite – obtenir de son vis-à-vis, outre le respect des spécifications, un suivi des évolutions impactantes dans le temps est difficile, d’autant plus qu’elles ne concernent pas son application ni son coeur de métier • Il faudrait donc s’en passer ? – On peut l’outiller : registre collaboratif EasySOA Core, éventuellement aidé d’une supervision Jasmine. Mais oui… …Il faut supposer que la gestion SOA n’est pas parfaite ! • Il faut donc s’en protéger et l’assainir – détecter les changements d’API 19/04/2012 16
  • 17. Assainissement - API Qu’est-ce qu’une API ? Une définition de service WSDL ! • Mais attention, il n’est pas suffisant, car : – Il peut être mal défini (tous les champs typés xs:string optionnels) => s’en protéger en le redéfinissant mieux et en le wrappant – Il gère peu syntaxe et sémantique (“0x…”) et pas comportements – REST est mieux (interface unifiée avec invariants), mais malgré tout • (bonus) en plus, le WSDL mélange tout – RPC, validation du flux côté client vs serveur, modèle de génération de code côté client et serveur, non fonctionnel… – Pour ceux qui ne veulent pas mélanger : utiliser un modèle plus souple tel REST, des services intermédiaires internes “proxy” pour séparer le non-fonctionnel et des briques plus spécifiques telles : » RxSchema pour la validation, » SPoRE dans le cas des clients REST scriptés, 19/04/2012 17 » Schematron pour les définitions clairsemées (sparse)…
  • 18. Assainissement - principe • Des cas de données ou processus peuvent apparaître qui le prennent en défaut Solution : détecter les changements des APIs SOA • … une API est donc en fait garantie par l’ensemble couvrant des échanges qui l’utilisent dans une SOA – Ensemble par exemple issu d’un jeu de test couvrant, – d’une capture d’un scenario de test fonctionnel couvrant en recette – Tant que le scenario de test est couvrant et les echanges synchrones, une même API gardera la même “empreinte” Au-delà, de même pour garantir ses propres APIs • Comparaison de leur empreinte pour mesurer leur évolution • Validation par rapport aux APIs et tests mockés issus des specs 19/04/2012 18
  • 19. Assainissement - comment Comment : “le BDD / CI du SOA” • Récupération et comparaison régulière des définitions (WSDL, WADL, voire JAXWS/RS) • Tests fonctionnels pour une API – Dans SOA complet (environnement d’intégration) ou simulé – Tests drivés depuis le frontend utilisateur (Selenium) ou des services intermédiaires, alimentés par des enregistrements (proxy HTTP, firebug, httpwatch ; ou SOAPUI) • Automatisés dans intégration continue (Jenkins / Hudson) Voire jusqu’à des tests de sécurité, performances… 19/04/2012 19
  • 20. Assainissement – avec EasySOA Fonctionnement (à venir en 0.4) • Enregistrement d’une séance de découverte web par proxy, puis rejeu planifié de ces découvertes (brique HTTP Mining) • Comparaison du système découvert avec la version initiale publiée (interface Sanity Check Dashboard) et génération et mise à disposition d’un rapport Prévu : • intégration d’assertions sur tests outillés HTTP Mining, • voire de métriques d’exploitation SOA OW2 Jasmine 19/04/2012 20
  • 21. Assainissement – dashboard, report UI 20/04/2012 21
  • 22. Tests et simulation Créer des client et serveur de test • En utilisant les outils et modèles de programmation – classiques, ex. Java : junit, mockito, injection de services de test… – adapté aux échanges (en phase d’intégration au niveau de l’application ou de tout le système) : HTTP, SOAPUI, Citrus, RestFuse, FraSCAti… » Problème : les données variables (dates) => les fixer partout, ou ne faire que des vérifications partielles (patterns / contains) • On peut aussi s’en servir en TDD / BDD – développer d’abord des implémentations minimales validant les spécifications et leurs tests, les revalider sur l’implémentation finale • Si REST « pur » (pas de définition standard) : modéliser l’API – A la main d’après la doc en JAXRS, SPoRE / RxSchema… – Interactivement d’après exemples : REST Describe & Compile 19/04/2012 – D’après des échanges « live22 avec SOAPUI ; d’après des exemples, si »
  • 23. Tests et simulation - 2 • Simuler un service – Car en test, appeler le « vrai » service (fourni par un autre acteur / participant au-dessus du Cloud, fut-ce pour le test) est une antipattern (sauf bien sûr pour l’intégration) – Utiliser son API (éventuellement modélisée) dans le langage / paradigme de programmation choisi – Ou bien enregistrer des échanges réels, fussent-ils eux-même générés par des tests, et les rendre propres et rejouables, voire les variabiliser (templates) pour pouvoir en simuler plusieurs usages » le meilleur client d'un service existant : son client métier naturel ! • SOAPUI – Test facile de services SOAP et REST : envoi de requêtes, réponses du serveur simulées voire scriptées, usage en HTTP proxy ou tunnel, CI… – Mais tout est sauvé dans un gros fichier de configuration XML, donc pas diffable, pas maintenable, pas partageable 19/04/2012 23
  • 24. Tests et simulation - EasySOA HTTP Mining (sera dans 0.4) • valorisation et réutilisation des échanges existants • Enregistre les échanges HTTP – Format JSON issu de Firebug / HTTPWatch – par HTTP proxy ou tunnel à configurer côté client – Déployé dans Servlet, Filter, prévu : CXF / FraSCAti • Permet de les rejouer • Permet de jouer des échanges légèrement différents – En en générant des templates d’échanges, par heuristiques de correlation entre requête et réponse, ex. champs id ou query – ces templates sont modifiables, aujourd’hui dans le code (velocity) • d’exécuter des assertions sur les réponses – Contains, header / content assertions, champs XML ou json… 19/04/2012 24
  • 25. Tests et simulation – EasySOA - 2 SOAPUI • Génération de configuration contenant tous les WSDLs d’une SOA ; prévu : réintégration versionnée après modifications Détection de changement d’API entre mocks et réel Modélisation d’API REST • Heuristiques : nombre d’appels d’un ordre de grandeur supérieur sur des nœuds « données » vs des nœuds « api » REST-iser un WSDL – le rendre navigable (pas fait): • Ou simplifier en divisant pour régner définition et données • En racine, afficher les résultats des opérations sans paramètres • Et pour tout résultat, proposer les opérations possibles 19/04/2012 – En correlant les types en entrées et sorties de toutes les opérations 25
  • 26. Et au-delà… On peut faire du SOA avec les doigts ! • Il faut au moins connaître les enjeux et les risques • C’est mieux de s’équiper en conséquence • EasySOA veut apporter une réponse – Suffisamment générique pour HTTP et notamment Java – Intégrée avec une gamme de solutions : Talend, Jasmine, Eclipse SOA… Patterns EasySOA sur le site (à enrichir) • http://www.easysoa.org/the-box-o-patterns • http://www.easysoa.org/category/all/blog/pattern Merci de votre attention ! 19/04/2012 26
  • 27. EasySOA – Get involved www.easysoa.org github.com/easysoa [email protected] 19/04/2012 27
  • 29. EasySOA - Fiche d’identité Fiche d’identité EasySOA – 5 partenaires – budget : 4m€ sur 2 ans – Labellisé par System@tic – Et un objectif ambitieux… Rendre simples d’usage les Architectures Orientées Service (SOA), – Leur usage métier, leur développement, leur exploitation et supervision – Pour appuyer sur l’accélérateur du moteur SOA dans le Système d’Information de l’entreprise ! 19/04/2012 29
  • 31. EasySOA - But Le but : rajouter une couche SOA plus légère et agile autour du SOA “traditionnel” • Grâce à une approche en ligne, sociale et collaborative impliquant tous les acteurs du processus SOA : – utilisateurs métier, architectes et développeurs, exploitants • Permettant – La découverte ex nihilo des services existants, leur cartographie, leur documentation collaborative – L’assainissement et la protection des SOAs existantes, des développements en cours mais aussi vis-à-vis des SOAs consommées – Le prototypage rapide au-dessus des services et applications existantes, sans les impacter – La réutilisation des éléments produits (besoins, tests, mockup) pour 19/04/2012 faciliter la réimplémentation dans une plateforme SOA “classique” 31
  • 32. EasySOA – Consortium Un consortium français de leaders de l’Open Source • INRIA labs : moteur de services (OW2 FraSCAti), modélisation SOA (Eclipse SOA) et monitoring (framework Galaxy, en sous-traitance par la startup EasiFab) • Talend (ETL) : connecteurs SOA et données aux données et solutions existantes, qu’elles soient métier ou SOA • Nuxeo (ECM) : plateforme de gestion de documents, pour gérer le modèle SOA et son contenu collaborativement • Bull (service et infrastructure) : administration et supervision du SOA avec OW2 Jasmine et un cas d’usage • Open Wide : coordinateur, architecture et intégration globale, BPM (avec Eclipse JWT / OW2 Scarbo), cas d’usage 32
  • 33. EasySOA – le programme Compagnons Une approche proche du terrain, « guerilla » • pour faire émerger cas d’usage et besoins récurrents, autour du noyau projet, chez nous, nos clients, nos communautés • des personnes identifiées, qui nous font confiance, à qui nous demandons de partager leurs problématiques Le principe : un partage réciproque • Partagez vos problématiques avec nous, • Nous les analysons, puis enrichissons EasySOA (disponible en Open Source) pour adresser les plus prometteuses Ne payez que le spécifique • Si vous en voulez : installation et configuration, développements spécifiques 19/04/2012 33