Formation Formation Architecture SOA Architecture SOA
- Formation SPRING A propos d’Objis… Centre de formation depuis 2005 Spécialiste technologies Java/J2ee Formations intra/inter entreprises 70% de pratique Paris – Lyon – Dakar Sponsor salon Solutions Linux 2010 + de 100 tutoriaux Java/j2ee sur Formation Architecture SOA
- Formation SPRING Sommaire Introduction SOA Technologies d'intégration clés Bus de service Routage, transformation, validation Orchestration web services Processus métier Traitement Evènement complexe Moteur de règles Formation Architecture SOA
- Formation SPRING Objectifs 1) Comprendre problématiques SOA 2) Identifier technologies / briques clés SOA 3) Stratégie mise en oeuvre env. SOA / JEE Formation Architecture SOA
- Formation SPRING Apparition architecture SOA : contexte métier Besoin : mettre le système d'information (SI) de l'entreprise au service du business !! AVANT : SI = ensemble d'applications Gestion relation client (CRM) Gestion flux logistique (SCM) Progiciel de gestion entreprise (ERP) Gestion processus métiers (BPM) Entrepot de données (Datawarehouse)... DEMAIN : SI = ensemble de services Formation Architecture SOA
- Formation SPRING Apparition architecture SOA : contexte technique CORBA, EJB et DCOM basés sur RPC Pb : Couplage fort EJB et DCOM liés à une plateforme Pb : manque d'intéropérabilité CORBA EJB complexe CORBA nécessite IDL EJB nécessit(ait) XML complexe : nouveaux standards ouverts XML / Web Services WSDL / SOAP / UDDI JAX-RPC / JAX-WS Formation Architecture SOA
- Formation SPRING Stratégie : pyramide SOA Jusqu'où le SI met en oeuvre SOA ? Formation Architecture SOA 1) Sécurité 2) Transactions 3) Qualité service
- Formation SPRING Standards Web services : Le monde de JAX-WS Formation Architecture SOA SOAP JAXB JAX-R SCHEM A XML JAX-P WSDL MTOM SAAJ JAX-WS Java SE 6 UDDI inclus basé sur Fournit API haut niveau pour utilise Fournit API bas niveau pour Annuaire pour définit manipule Représenté par Fournit clients pour accéder Transformation JAVA / XML
- Formation SPRING Standards Web services JSR 224 : JAX-WS (API haut niveau pour WS) – JSR 181 : métadonnées (annotations) – JSR 109 : Modèle prog. Web Services JEE – JSR 67 : SAAJ (API bas niveau créer/manipuler WS) –
- Formation SPRING Environnement SOA Formation Architecture SOA Services bas niveau Systèmes métiers Services composites Processus métiers orchestrée Services de présentation ES B Service ERPPortailSCMCRM Adaptateurs TransformationTransformation MessagesMessages RoutageRoutage
- Formation SPRING SOA : 5 caractéristiques clés Contrat de service Transparence du service Granularité du service Composition du service Annuaire de service Formation Architecture SOA
- Formation SPRING Caractéristique SOA : interface / contrat de service Formation Architecture SOA Service(s) 1Opération XSD Message In/Out 2Opération XSD Message In/Out
- Formation SPRING Caractéristique SOA N°1 : interface / contrat de service Quelles opérations disponibles entre le client et le service ? Quelles données en paramètres ?Comment solliciter le service ? Solution : WSDL + XSD : description format message XML pour chaque opération WSDL 1.1 complexe Ports ? Bindings ? WSDL 2.0 plus simple Courbe apprentissage plus réduite WS-Adressing Formation Architecture SOA
- Formation SPRING Caractéristique SOA N° 2: Transparence Formation Architecture SOA
- Formation SPRING Caractéristique SOA N° 2: Transparence Appeler un service sans avoir besoin de connaître son emplacement physique sur le réseau Solution 1 : ESB (Enterprise Service Bus) Ex : ServiceMix ( ) Solution 2 : Proxy / Médiateur Ex : Apache Synapse ( WS-Adressing Définir dans le message le endpoint / l'action pour un Web Service basé sur Soap Notion de 'destination logique' Formation Architecture SOA
- Formation SPRING Caractéristique SOA N° 2: Transparence Formation Architecture SOA
- Formation SPRING Caractéristique SOA N° 2: Transparence Formation Architecture SOA
- Formation SPRING Caractéristique SOA N° 3: Granularité et état Ex : besoin d'un service web qui ajoute un utilisateur dans le CRM du SI Solution 1 : Un seul 'gros' service AjouterClient (OrganisationId) → id spécifique CRM PB : limite réutilisabilité du service par autres clients Solution 2 : plusieurs petits' services RechercherOrganisationIdClient(Client) AjouterAdresseClient() Maximiser la réutilisabilité ! La gestion de l'état ajoute de la complexité Ex service nécessitant validation (id en session ?) Formation Architecture SOA
- Formation SPRING Caractéristique SOA N°4 : Composition de services Maximiser la création de services composites et / ou orchestration de services 1 service = Ensemble d'autres services Solution 1 : spec BPEL (orchestration WS) Exemple produit : Ode ( Solution 2 : spec SCA (Service Component Architecture) Exemple produit : Tuscany Formation Architecture SOA
- Formation SPRING Caractéristique SOA N°4 : Composition de services Norme SCA : 2005 (IBM, BEA, Oracle...) Création de services 'composite' 1 service = ensemble de 'composants' Indépendance protocole accès & langages implem Analogie Spring Conteneur Spring (XML)= Composite SCA Bean Spring = Composant SCA Formation Architecture SOA 12
- Formation SPRING Caractéristique SOA N°4 : Composition de services Exemple modélisation pb : Service de Tickets Formation Architecture SOA
- Formation SPRING Caractéristique SOA N°4 : Composition de services Service de Tickets : solution 1 (Composite SCA) Formation Architecture SOA SCADomain scaDomain = SCADomain.newInstance("composite1.xml");
- Formation SPRING Caractéristique SOA N°4 : Composition de services Service de Tickets : solution 2 (Composite SCA) Formation Architecture SOA
- Formation SPRING Caractéristique SOA N°4 : Composition de services Service de Tickets : séquence Formation Architecture SOA
- Formation SPRING Caractéristique SOA N°5 : Annuaire & publication Aujourd'hui peu d'entreprises utilisent UDDI Peu d'annuaires publics (essais de SAP,IBM..) La 'découverte automatique' se heurte au business Réalité : besoin de contrats commerciaux ! En pratique : Pour web services SOAP, un WSDL clair suffit pour lister les services et opérations disponibles Annuaire interne Ex : Juddi Base de données Annuaire LDAP Wiki Solution pro : CentraSite.org MuleSource :Galaxy ( Annuaire WS02 ( Formation Architecture SOA
- Formation SPRING Les technologies d'une plate forme SOA Formation Architecture SOA
- Formation SPRING Technologies plate forme SOA (1/2) BPM : Business Process Management Définir, Visualiser, Déployer des processus métiers impliquant plusieurs organisations Objectif : réduire couts, améliorer agilité business. EDM : Enterprise Decision Management Modifier simplement toutes les règles métiers Via DSL (Domain Specific Language) BRE (Business Rules Engine) BRMS (Business Rule Management System) ESB : Enterprise Service Bus Ex : recevoir fichier Ascii via FTP et le transformer en fichier XML,puis soumettre à WS Notion de 'temps réel' 27
- Formation SPRING Technologie SOA : Complex Event Processor CEP : Complex Event Processor Gérer plusieurs flux de données en temps réel En déduire tableaux de bord stratégiques / tactiques / opérationnels (BAM) Ex fraude : utilisation simultanée carte crédit Ex. produit : Esper ( Ex. produit : Tibco BusinessEvents Formation Architecture SOA
- Formation SPRING Les technologies d'une plate forme SOA : Complex Event Processor Formation Architecture SOA
- Formation SPRING Technologie SOA : Service central de Décision (EDM) Formation Architecture SOA
- Formation SPRING Technologie SOA : Service central de Décision (EDM) Formation Architecture SOA
- Formation SPRING Technologie SOA : Business Activity Monitor (BAM) Formation Architecture SOA Exemple solution BAM de WS02 :
- Formation SPRING Technologie SOA : annuaire de Service Formation Architecture SOA
- Formation SPRING Technologie SOA : annuaire de Service Formation Architecture SOA
- Formation SPRING Roles de l'ESB 1) Connecteurs de données / Adaptateurs HTTP (SOAP,XML), FTP, SFTP, JMS, Fichier... 2) Transformation Ex : transformation XSLT pour flux XML 3) Routage intelligent Basé sur contenu ou en tête message 4) Gestion du service Outils admin déploiement, versionning, config. 5) Monitoring & Logging Suivre en temps réel flux données. Intercepteurs Formation Architecture SOA
- Formation SPRING Roles et utilité de l'ESB 6 ) API d'intégration Ajouter de nouveau adaptateurs spécifiques 7) Gestion de flux Visuellement (ou à travers éditeur XML) créer graphes ou enchainement de séquences 8) Timing Créer actions en fonction du temps / Triggers CONSEIL : valeur ajoutée de l'ESB mitigée si services exposés sous forme de web service Utile si plusieurs formats données à gérer, plusieurs protocoles. Environnement complexe Formation Architecture SOA
- Formation SPRING Architecture ESB dans le SI Formation Architecture SOA
- Formation SPRING Conception : chaine d'intégration Formation Architecture SOA
- Formation SPRING Exemple ESB : ServiceMix Formation Architecture SOA Bus de service Open source / Implémentation JBI (JSR 208)
- Formation SPRING ServiceMix : démarrage 40 Choix 1 : lancer directement bin/servicemix ServiceMix utilise alors conf/servicemix.xml Voir console 'JBI Container (ServiceMix) started' Choix 2 : expliciter un fichier de config : bin/servicemix monfichierconfig.xml ServiceMix utilise alors votre fichier de conf Lors du démarrage, ServiceMix charge tous les services disponibles dan 'hotdeploy' Formation Architecture SOA
- Formation SPRING ServiceMix : configuration avec fichier servicemix.xml 1 2
- Formation SPRING ServiceMix : packaging et déploiement Formation Architecture SOA
- Formation SPRING Exemple scenario simple d'intégration Récupérer message d'une file ActiveMQ Traiter message (Ex : tracer contenu message) 43 ESB ServiceMix Formation Architecture SOA Queue JMS
- Formation SPRING ServiceMix : scenario intégration Récupérer message XML d'une file de message Jargon SMix = Service Unit ''Binding Component' Traiter ce message (Ex : affichage console) Jargon Smix = Service Unit 'Service Engine' Formation Architecture SOA ESB ServiceMix Queue JMS 1 2
- Formation SPRING Exemple scenario simple d'intégration : quels composants ? URL composants ServiceMix :
- Formation SPRING ServiceMix : méthodologie 1 : sélectionner BC et SE 2 : configurer les SU pour le scénario 3 : packager les Sus dans un SA 4 : déployer le SA dans serviceMix
- Formation SPRING ServiceMix : scenario intégration
- Formation SPRING ServiceMix : Exemple xbean.xml Binding Component Formation Architecture SOA Ecoute d'une file de message
- Formation SPRING ServiceMix : scénario intégration Formation Architecture SOA
- Formation SPRING ServiceMix : scénario intégration Formation Architecture SOA 1 2
- Formation SPRING Démo ServiceMix : déploiement service dans 'hotdeploy' Formation Architecture SOA Copier la livraison dans répertoire 'hotdeploy' de ServiceMix ServiceMix informe du déroulement du déploiement du service
- Formation SPRING Démo ServiceMix : test du scénario d'intégration 52 1 : démarrer ESB ServiceMix 2 : démarrer fournisseur de message ActiveMQ 3 : identifier queue 'objis.client.queue' via broker 4 : ajouter un message dans la queue 5 : scruter la console pour voir si message traité - Formation Architecture SOA
- Formation SPRING Démo ServiceMix : test du scénario d'intégration
- Formation SPRING Monitoring JMX 54 Lancer JAVA_HOME\bin\jconsole (jdk 5) ou JAVA_HOME\bin\jvisualvm (jdk 6)
- Formation SPRING Monitoring JMX 55 2 Onglet Mbeans Avec activation JMX Formation Architecture SOA
- Formation SPRING Monitoring JMX : ActiveMQ 56 Configurer le Broker : → Attributs → Opérations Liste des Queues - Formation Architecture SOA
- Formation SPRING Monitoring JMX : ServiceMix 57
- Formation SPRING Monitoring JMX : Statistiques Endpoint 58
- Formation SPRING LOG 59
- Formation SPRING Gestion des erreurs : bonne pratique Utiliser un composant Camel comme intermédiaire Avantage : aucun développement à faire Par rapport à une autre solution de type bean Formation Architecture SOA
- Formation SPRING Sécurité INFO : gestion d'erreurs préalable !!! Vous devez savoir gérer messages d'erreur Authentification & Autorisation & intégrité Solution 1 : passer par un bean A éviter car implique codage Solution 2 : passer par API JAAS Java Authentication and Autorisation Service Authentifier (Login/pwd ou certificat) + Role Pas de code ! Uniquement config → TB ! Autorisation : Fichiers conf\groups.properties Authentification : users-passwords.properties ou users-credentials.properties (si certificats) Formation Architecture SOA
- Formation SPRING Sécurité Formation Architecture SOA
- Formation SPRING Sécurité Solution 1 (simple) : passer par un bean Le bean trace message et contexte de Sécurité Formation Architecture SOA
- Formation SPRING ServiceMix : scénario complexe (calculateur de meilleur tarif) Formation Architecture SOA
- Formation SPRING ServiceMix : scénario complexe Flux de requête Formation Architecture SOA
- Formation SPRING ServiceMix : scénario complexe Flux de réponse Formation Architecture SOA
- Formation SPRING ServiceMix Formation Architecture SOA
- Formation SPRING ServiceMix 4 Nouveauté : OSGi Nouveauté : vues Développeur / Technologie / Noyau 68 Formation ESB ServiceMix
- Formation SPRING Exemple ESB : Mule ESB Formation Architecture SOA 1,5 millions de téléchargements – 2500 mise en production -
- Formation SPRING Plate forme SOA 'Opensource' Combinaison de produits open source remplissant objectifs de chaque brique technologique de la pyramide Critères de choix : Viabilité Architecture Monitoring Extensibilité 'vrai' Open source Formation Architecture SOA
- Formation SPRING Plate forme SOA 'Opensource' Formation Architecture SOA
- Formation SPRING Drools Pour avoir un système 'agile' & 'intelligent', les décisions opérationnelles doivent être gérées, automatisées, améliorées Ces décisions peuvent dépendrent d'éléments extérieurs imprévisibles Coder les règles métiers en Java ne permet pas cette agilité. De plus modifications dépend des développeurs...pas acceptable pour le business !!! Drools permet de modifier les règles métiers d'un programme sans modifier le code Java Formation Architecture SOA
- Formation SPRING Architecture Drools Drools Expert : le moteur Drools Fusion : traitement évènements complexes Drools Flow : combine Règles et Processus métiers Drools Guvnor : Système gestion Règles métiers Drools Solver : algorithme de recherche Plugin Eclipse Formation Architecture SOA
- Formation SPRING Processus métiers Séquence d'activités contribuant au besoin métier BPM utilise les services exposés Formation Architecture SOA
- Formation SPRING Relation BPM / Services / Evènements Formation Architecture SOA
- Formation SPRING Relation Flux BPM / Flux ESB 76 Flux ESB : echange de messages entre systemes Approche 'technique' Utile ssi nombreux protocoles & formats données Routage 'temps réel' Flux BPM : exécuter processus métier Approche 'métier' Lent (pourque tout un processus finisse) Nécessite souvent intervention humaine Notion de 'temps d'attente (wait state) Bonne pratique : utiliser BPM + ESB BPM pour modéliser métier ESB pour routage temps réel + transformation messages
- Formation SPRING JBPM 1) jBPM prend un processus graphique en entrée 2) Un processus est composé d'activités liées par des transitions 3) Le diagramme / graphe sert pour commmunication entre analystes et développeurs Process = flux d'exécution Exécution d'un process = instance du process JBPM gère les instances de process Certaines activités sont automatiques : envoi ou invocation EJB Formation Architecture SOA
- Formation SPRING Déploiement d'un processus 2 options Packager processus en fichier.par Contient diagramme du processus Déployer directement via console web Lorqu'un processus est déployé, il obtient systématiquement nouvelle version Permet de pas 'écraser' instances existantes Facilite audit de chaque version du process Formation Architecture SOA
- Formation SPRING JBPM Certaines activités sont automatiques : envoi ou invocation EJB Certaines activités peuvent être en état d'attente : attente d'une commande client JBPM va gérer et rendre persistant les états Composantes jBPM Moteur Eclipse designer Web modeler : Signavio Formation Architecture SOA
- Formation SPRING JBPM 5 full installer : 'ant install.home' Installation Jboss AS GA Installation Eclipse Helios Installation Drools Guvnor dans Jboss AS Installation Oryx Designer dans Jboss AS Installation console jBPM dans Jboss AS Installation plugin Eclipse jBPM Installation plugin Eclipse Drools Formation Architecture SOA
- Formation SPRING Les risques du couplage faible 1) Les nouveaux standards de communications (XML, SOAP, WSDL, UDDI....) sont ouverts. 2) Les nouveaux standards de communications ont été développé sans une approche sécurité. 3) Si'ils sont utilisés 'tel quels', ils sont complètement non sécurisé ! Exemple : communication Usine / Agences AVANT : Interfaces propriétaires sécurité DEMAIN : services exposés via WS Formation Architecture SOA
- Formation SPRING Exemple B2B AVANT SOA : Communication par VPN Formation Architecture SOA
- Formation SPRING Exemple B2B AVEC SOA : Communication par Web Services Formation Architecture SOA
- Formation SPRING Solutions pour Sécurité 1) Intercepteur SOAP 2) SAML (Secure Assertion Markup Language) & Authentification fédérée (Ex: OpenSSO) 3) Proxy 4) Contrats 5) Certificats 6) Encryption XML 7) Signature 8) Audit Formation Architecture SOA
- Formation SPRING Apache Camel Implémentation de patterns d'intégration (EIP) entre un point A et un point B ( ) Traitement de messages: routage, médiation, transformation, validation, interception, enrichissement Langage spécifique (Domain Specific Language) from(“file:c:\objis\xml”).filter().xpath(expression).to(“jms:dQueue”) Supporte plusieurs protocoles (http, ftp, file,...) Supporte plusieurs formats données (xml, json, text...) CamelContext = 'routes' + 'processors' + 'components' Formation Architecture SOA
- Formation SPRING Apache Camel Formation Architecture SOA
- Formation SPRING Scénario d'intégration simple avec Apache Camel Formation Architecture SOA
- Formation SPRING Apache Camel : objet Exchange Formation Architecture SOA
- Formation SPRING Apache Camel : contexte Camel Formation Architecture SOA
- Formation SPRING Apache Camel : routage intelligent Formation Architecture SOA
- Formation SPRING Drools : les produits Drools Expert : le moteur de règles Drools Fusion : module CEP (Complex Event Proc.) Drools Flow : combine Règles et processus métier Drools Guvnor : BRMS Drools Solver : Algorithme de recherche Plugin Eclipse Formation Architecture SOA
- Formation SPRING Jboss Rules (Drools) : concurrents ILOG (Ibm) Jrules Blaze Advisor .NET : Biztalk OpenRules Jess Formation Architecture SOA
- Formation SPRING Règles métiers : le problème PB Implémentation règles métier 'en dur dans le code' : Maintenance difficile (code spaguetti / if imbriqué !) Evolution : attention à la régression ! MAJ règles réservée au Développeur Vérif règles difficile / MAJ impossible pour analyste + il y a de if, + de prob. performance Formation Architecture SOA
- Formation SPRING Règles métiers : la solution Mise en oeuvre moteur de règles (si règles < 20) : Séparer le QUOI (quelle règle) et COMMENT (algo) Langage déclaratif (ex:SQL) Les analystes écrivent les règles. Le moteur traduit Maintenance accrue car séparation quoi/comment Performances indep Nb Règles (Algo Rete, // exec) Flexibilité : plus simple d'ajouter règles que code Formation Architecture SOA
- Formation SPRING Jboss Rules (Drools) : Règle Formation Architecture SOA
- Formation SPRING Jboss Rules (Drools) : Règle Formation Architecture SOA
- Formation SPRING
Traitement Evènements complexes (CEP) Capturer informations métier : Messages / Evènements Identifier des 'Patterns evenements' Nombreuses applications : BPM (exceptions, monitoring) Finances, Fraude, Réseaux, Defense, Analogie avec application DB “à l'envers” On enregistre requête → données temps réel Remontée d'informations pour pilotage stratégique Ex : BAM (Business Activity Monitor) Formation Architecture SOA
- Formation SPRING ESPER : framework CEP Open Source Traitement volume messages / évènements Besoin d'identifier des 'pattern de messages' Dispo pour Java (Esper) et.NET (Nesper) Langage requête : EPL ( Analogie SQL ) Mise en oeuvre : 4 points clés 1) Créer 'objets évènement' 2) Définir & enregistrer requêtes Esper 3) Spécifier Listeners et/ou souscripteur résultats 4) Définir options de configuration Formation Architecture SOA
- Formation SPRING ESPER : mise en oeuvre en 4 étapes clés Formation Architecture SOA Identifier Objet évènement Configuration Définir souscribteur et/ou listeners Définir et enregistrer La requête EPL
- Formation SPRING ESPER : Listener et souscripteur But commun : écouter résultats requête EPL Souscripteur Contrainte : 1 seul souscripteur par reqûete Avantage : matching direct avec besoin métier Listener Plusieurs listeners possible par requête Inconvénient : besoin de caster résultats Mi Formation Architecture SOA
- Formation SPRING ESPER IO : Intégration sources d'évènements Notion d'Adaptateurs pour sources d'évènements : CSV, DB, Socket, Spring JMS, Stax Formation Architecture SOA Esper IO
- Formation SPRING ESPER : 2 méthodes pour traiter évènements Méthode 1 : pattern d'évènements Corrélation entre évènement dans le temps Présence / Absence d'évènement(s) Méthode 2 : requêtes flux d'évènement Fournit fonctions fenetrage, aggrégation, et analyse d'un flux d'évènement Formation Architecture SOA
- Formation SPRING Travaux pratiques SOA 1) Affectation de produits dans pyramide SOA 2) Création d'un web service SOAP avec Java 6 3) Intégration JMS avec Spring JMS et ActiveMQ 4) Déploiement de services simples dans ServiceMix 5) Services complexes et flux dans ServiceMix 6) Intégration et EIP avec Apache Camel 7) intégration de Camel dans Service Mix 8) Orchestration de services avec Apache ODE 9) Processus métiers avec Jboss Jbpm 10) Mise en oeuvre règles avec Drools Jboss Rules 11) Intégration de Drools dans serviceMix 12) Composition services SCA avec Apache Tuscany Formation Architecture SOA Implémentations couche service : WS / EJB / JMS Intégration technique / Métier Archi SOA
- Formation SPRING Bibliographie Open Source SOA Editions Manning – 450 pages Web Services Up and Running Editions O'Reilly – 318 pages SOA guide de l'architecte Editions Dunod – 360 pages Java SOA Cookbook Editions O'Reilly – 782 pages Formation Architecture SOA