Formation 1 Formation ESB ServiceMix ESB ServiceMix
- Formation SPRING Sommaire Introduction SOA / ESB / JBI 4 2 exemples scénarios d'intégration Notions clés ServiceMix 10 BC, SE, SU, SA, Endpoint Fichiers jbi.xml, xbean.xml Relation serviceMix, ActiveMQ, Camel 2 exemples de scénario d'intégration Exploitation ServiceMix 29 Installation et démarrage Déploiement de services Sécurité Monitoring JMX Gestion Logs 2
- Formation SPRING Objectifs 1) Comprendre problématiques SOA 2) Comprendre ESB : role dans SOA 3) Comprendre notions clés : BC, SE, SU, SA 4) Déployer des services dans ServiceMix 5) Surveiller les services déployés 3 Formation ESB ServiceMix
- Formation SPRING Stratégie : pyramide SOA Jusqu'où le SI met en oeuvre SOA ? 4 1) Sécurité 2) Transactions 3) Qualité service Formation ESB ServiceMix
- Formation SPRING ESB : le problème 5 Formation ESB ServiceMix
- Formation SPRING Architecture ESB dans le SI 6 Formation ESB ServiceMix
- Formation SPRING Conception : chaine d'intégration 7 Formation ESB ServiceMix
- 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. 8 Formation ESB ServiceMix
- Formation SPRING Roles 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 9 Formation ESB ServiceMix
- Formation SPRING ESB JBI (Java Business Integration) 10 Bus de service Open source / Implémentation JBI (JSR 208) Formation ESB ServiceMix Binding Component (BC) : Transporter données vers bus
- Formation SPRING Exemple flux 11 Formation ESB ServiceMix
- Formation SPRING packaging et déploiement d'un service 12 Voir exemple scénario intégration : Formation ESB ServiceMix
- Formation SPRING Contenu message dans le bus 13 Voir exemple scénario intégration : Formation ESB ServiceMix
- Formation SPRING Configuration integration : fichier xbean.xml 14 Voir exemple scénario intégration : Formation ESB ServiceMix Déclaratioin des consommateurs / Producteurs Endpoints autour du Bus Branchement concrete consommateur / producteur
- Formation SPRING JBI : 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 (livrable zip) dans ServiceMix Formation ESB ServiceMix
- Formation SPRING ServiceMix : exemple déploiement d'un service (1 SA = plusieurs SU) Formation ESB ServiceMix
- Formation SPRING Exemple scénario complexe (calculateur de meilleur tarif) 17 Formation ESB ServiceMix
- Formation SPRING Exemple calculateur meilleur tarif : flux de requête 18 Formation ESB ServiceMix
- Formation SPRING Exemple calculateur meilleur tarif : flux de réponse 19 Formation ESB ServiceMix
- Formation SPRING Exemple scenario simple d'intégration Récupérer message d'une file ActiveMQ Traiter message (Ex : tracer contenu message) 20 ESB ServiceMix Formation ESB ServiceMix Queue JMS
- Formation SPRING Exemple scenario simple d'intégration : quels composants ? URL composants ServiceMix :
- Formation SPRING Exemple scenario simple d'intégration Récupérer un message d'une file de message' → SU type BC → BC servicemix-jms Traiter ce message (Ex : affichage console) → SU type SE → SE servicemix-bean 22 ServiceMi x Formation ESB ServiceMix Queue JMS
- 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 27 1 : démarrer ESB ServiceMix 2 : démarrer fournisseur de message ActiveMQ 3 : créer une queue 'client.objis.queue' via broker 4 : ajouter un message dans la queue 5 : scruter la console pour voir si message traité
- Formation SPRING Démo ServiceMix : test du scénario d'intégration
- Formation SPRING ServiceMix : autres scénario disponible dans 'examples' Formation ESB ServiceMix
- Formation SPRING ServiceMix : démarrage 30 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 ESB ServiceMix
- Formation SPRING ServiceMix : configuration avec fichier servicemix.xml 1 2
- Formation SPRING Gestion des erreurs Que faire en cas de pb de routage, transformation, connectivité ? Avertir automatiquement les administrateurs Solution 1 : queues d'erreurs Solution 2 : “dead letter” queue Attention au choix du pattern de message : Requete/Reponse ? 32 Formation ESB ServiceMix
- Formation SPRING Gestion des erreurs : cas Message Requete / Reponse (In-Out) INFO : si pattern de message Requete/Reponse, alors en cas d'erreur (Ex : exeption dans un bean), le message est retourné dans la réponse Pas forcement scénario souhaité ! 33 Formation ESB ServiceMix
- Formation SPRING Gestion des erreurs : cas Message Requete (In only) INFO : si pattern de message 'Requete' alors en cas d'erreur (Ex : exeption dans un bean), le message est retourné dans le bus Pas forcement scénario souhaité...message perdu ! Besoin au moins de logger pour tracer ou auditer. 34 Formation GlassFish ESB
- 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 35 Formation ESB ServiceMix
- 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) 36 Formation ESB ServiceMix
- Formation SPRING Sécurité Formation ESB ServiceMix
- Formation SPRING Sécurité Solution 1 (simple) : passer par un bean Le bean trace message et contexte de Sécurité 38 Formation ESB ServiceMix
- Formation SPRING Monitoring JMX Par défaut, monitoring jmx désactivé. Activation dans conf\servicemix.conf Attribut 'createJmxConnector' conteneur à 'true' 39 Formation ESB ServiceMix
- Formation SPRING Monitoring JMX 40 Lancer JAVA_HOME\bin\jconsole (jdk 5) ou JAVA_HOME\bin\jvisualvm (jdk 6)
- Formation SPRING Monitoring JMX Onglet Mbeans Sans activation JMX Onglet Mbeans Avec activation JMX Formation ESB ServiceMix
- Formation SPRING Monitoring JMX : ActiveMQ 42 Configurer le Broker : → Attributs → Opérations Liste des Queues Formation ESB ServiceMix
- Formation SPRING Monitoring JMX : ServiceMix 43
- Formation SPRING Monitoring JMX : Statistiques Endpoint 44
- Formation SPRING LOG 45
- Formation SPRING LOG : analyse d'un 'Appender' 46 Attribut ’TreshHold’ : impose de ne laisser passer sur la console uniquement des logs de type INFO. Attribut ’class’ qui fixe précisement le type de sortie Forme du log (Layout) : ici le PatternLayout précise d’écrire la date (%d), le nom de la classe sans le package [%c(1)], et le message de log (%m).
- Formation SPRING LOG : comprendre le fichier log4j.xml Le premier endroit à regarder : balise XML root présente tout en bas du fichier conf/log4j.xml Ici, les logs seront écrits à 2 endroits (appender) : –dans la console (CONSOLE) et –dans un fichier (FILE). Dans la terminologie Log4j, un appender répond à la question : ou envoyer les logs ? De nombreux types d’appenders existent, dont HTMLAppenders sortie (logs sous forme de page HTML) et SMTMAppender (envoie des logs dans boîte mail via SMTP)
- Formation SPRING Bonne pratique : logs Rotatifs
- Formation SPRING Bonne pratique : log par service 1 3 2
- Formation SPRING Approche visuelle : outil Chainsaw SocketAppender : envoi des logs vers une Socket Chainsaw 'écoute' sur cette socket Chainsaw affiche logs en couleur suivant niveau log
- Formation SPRING Approche visuelle : outil Chainsaw SocketAppender : envoi des logs vers une Socket
- Formation SPRING Transaction Cas type : traitement 'transactionnel' message JMS Soit le message disparait de la queue Soit le message reste dans la queue Mise en oeuvre via implémentation JCA + JMS ServiceMix utilise SEDA pour gestion flux messages Staged Event-Driven Architecture : décomposer une archi complexe en un ensemble d'étapes liés par des queues Configuration transactions dans conf/tx.xml 52 Formation ESB ServiceMix
- Formation SPRING Intégration Nagios Outil JmxQuery : intégration SNMP / JMX Envoi régulière de requêtes JMX à partir de Nagios 53 Formation ESB ServiceMix 1 2
- Formation SPRING ServiceMix 4 Nouveauté : OSGi Nouveauté : vues Développeur / Technologie / Noyau 54 Formation ESB ServiceMix
- Formation SPRING Mailing list Utilisateurs : Fichier configuration : oyESBConfigSyntax.html 55 Formation ESB ServiceMix
- Formation SPRING Bibliographie Open Source ESB in Action Editions Maning – 546 pages Open Source SOA Editions Manning – 450 pages Building SOA based Applications Editions Packt Publishing – 301 pages 56 Formation ESB ServiceMix