Mule ESB Travail de Bachelor réalisé en vue de l’obtention du Bachelor HES par : Djavan SERGENT Conseiller au travail de Bachelor : Peter Daehne, Professeur HES Genève, 11.05.2015 Haute École de Gestion de Genève (HEG-GE) Filière Informatique de gestion Déclaration Ce travail de Bachelor est réalisé dans le cadre de l’examen final de la Haute école de gestion de Genève, en vue de l’obtention du titre de Bachelor en Informatique de Gestion. L’étudiant a envoyé ce document par email à l'adresse remise par son conseiller au travail de Bachelor pour analyse par le logiciel de détection de plagiat URKUND, selon la procédure détaillée à l’URL suivante : http://www.urkund.fr/student_gorsahar.asp. L’étudiant accepte, le cas échéant, la clause de confidentialité. L'utilisation des conclusions et recommandations formulées dans le travail de Bachelor, sans préjuger de leur valeur, n'engage ni la responsabilité de l'auteur, ni celle du conseiller au travail de Bachelor, du juré et de la HEG. « J’atteste avoir réalisé seul le présent travail, sans avoir utilisé des sources autres que celles citées dans la bibliographie. » Fait à Genève, le 11.05.2015 Djavan SERGENT Mule ESB SERGENT Djavan i Remerciements Je tiens à remercier toutes les personnes qui ont rendu ce projet possible, en commençant par M. Peter Daehne, directeur de ce travail, M. Stéphane Labaye qui a supervisé le stage ainsi que M. François Bonvallat, responsable du projet et du développement. Je remercie également les collaborateurs de la RTS pour leurs explications et leurs conseils avisés. Enfin, je remercie tous ceux qui m’ont relu, corrigé, conseillé et soutenu. Mule ESB SERGENT Djavan ii Résumé Ce document a pour but de faire un tour d’horizon des fonctionnalités de Mule ESB. Il est structuré comme ceci : 1. Une petite introduction sur la notion d’ESB. 2. Une étude de marché et une analyse des besoins. 3. Une présentation du bus choisi. 4. Une explication sur la méthode de modélisation des prototypes. 5. Une présentation des prototypes réalisés ainsi que leur analyse. 6. Une explication de la mise en production. 7. Une évaluation des prototypes. 8. Une conclusion technique. 9. Une évaluation personnelle. 10. Un glossaire. Au travers de ces différents chapitres, Mule ESB 3.6.1 est testé afin d’en déterminer les points forts/faibles et les possibilités de migration pour les processus déjà en place au sein de la RTS. Bonne lecture ! Mule ESB SERGENT Djavan iii Table des matières Déclaration......................................................................................................... i Remerciements ................................................................................................ ii Résumé ............................................................................................................ iii Liste des tableaux ........................................................................................... vi Liste des figures .............................................................................................. vi 1. Introduction ................................................................................................ 1 2. Analyse de marché .................................................................................... 2 2.1 Définition des besoins ................................................................................. 2 2.2 Plan d’analyse .............................................................................................. 3 2.3 Analyse des résultats et recommandations ............................................... 3 3. Présentation du bus : Mule ESB .............................................................. 5 3.1 Prise en main ................................................................................................ 5 3.2 Messages ...................................................................................................... 6 3.3 Éléments du flux .......................................................................................... 7 3.3.1 Connecteurs ............................................................................................ 7 3.3.2 Transformateurs ...................................................................................... 8 3.3.3 Composants ............................................................................................ 8 3.3.4 Étendues ................................................................................................. 9 3.3.5 Filtres ...................................................................................................... 9 3.3.6 Contrôles de flux ....................................................................................10 3.3.7 Gestion des erreurs ................................................................................10 3.4 Les nouveautés ...........................................................................................10 3.4.1 Anypoint Studio ......................................................................................11 3.4.2 DataSense Language Query ..................................................................12 3.4.3 Project Environment Settings .................................................................13 3.4.4 CloudHub Sandbox ................................................................................13 3.4.5 Watermarks ............................................................................................13 3.4.6 Prochaine version ..................................................................................14 3.5 Langages et développement ......................................................................14 3.5.1 XML – XSLT ...........................................................................................14 3.5.2 Java .......................................................................................................14 3.5.3 MEL .......................................................................................................15 3.5.4 Expressions régulières ...........................................................................15 3.5.5 Fichiers « .properties » ...........................................................................15 3.5.6 Autres possibilités ..................................................................................15 4. Modélisation des flux .............................................................................. 16 4.1 Principe de modélisation standardisée .....................................................16 Mule ESB SERGENT Djavan iv 4.2 Outils et logiciels ........................................................................................16 4.2.1 ArgoUML ................................................................................................16 4.2.2 Draw IO ..................................................................................................17 4.3 Exemples de modèles .................................................................................18 5. Prototypes ................................................................................................ 19 5.1 Éléments génériques ..................................................................................20 5.2 N°1 : Rtsinfochip .........................................................................................21 5.3 N°2 : Thumbfile Dispatch ............................................................................25 5.4 N°3 : Betasuisse (JSON) .............................................................................28 5.5 N°4 : Betasuisse (XML) ...............................................................................33 5.6 N°5 : Move and Rename ..............................................................................37 5.7 N°6 : Import Récursif ..................................................................................41 5.8 N°7 : Thumbfile Requester .........................................................................45 5.9 N°8 : Sparkex ...............................................................................................49 5.10 N°9 : MassDL ...............................................................................................52 6. Mise en production .................................................................................. 60 6.1 Fichiers de propriétés .................................................................................60 6.2 Gestion d’erreurs ........................................................................................60 6.3 Transformateurs globaux ...........................................................................61 6.4 Runtime CE ..................................................................................................62 6.5 Monitoring ...................................................................................................62 6.5.1 MMC ......................................................................................................62 6.5.2 JMX........................................................................................................63 6.6 Le flux console ............................................................................................64 7. Evaluation des prototypes ...................................................................... 68 7.1 Tests ............................................................................................................68 7.2 Récapitulatif des composants utilisés ......................................................74 7.3 Problèmes rencontrés ................................................................................78 8. Conclusion ............................................................................................... 79 9. Evaluation personnelle ........................................................................... 81 10. Glossaire .................................................................................................. 82 Bibliographie .................................................................................................. 83 Annexe 1 : Tableau comparatif des ESB ...................................................... 86 Annexe 2 : Console Management JMX ......................................................... 87 Annexe 3 : Console Management JMX ......................................................... 88 Mule ESB SERGENT Djavan v Liste des tableaux Tableau 1 : Critères et besoins ..................................................................................... 2 Tableau 2 : Représentation des flux ............................................................................18 Tableau 3 : Tableaux récapitulatifs des tests ...............................................................68 Tableau 4 : Récapitulatif des composants utilisés .......................................................75 Liste des figures Figure 1 : Logos des ESB............................................................................................. 4 Figure 2 : Tutoriels officiels Mule ESB .......................................................................... 5 Figure 3 : Composition d’un Message Mule .................................................................. 6 Figure 4 : Transport de propriétés Inbound .................................................................. 7 Figure 5 : Transport de propriétés Outbound ................................................................ 7 Figure 6 : Schéma général d’un flux ............................................................................. 7 Figure 7 : Interface Anypoint Studio ............................................................................11 Figure 8 : Documentation automatique générée par Mule ...........................................12 Figure 9 : Interface Query Builder ................................................................................12 Figure 10 : Gestion d’environnements multiples ..........................................................13 Figure 11 : Interface ArgoUML ....................................................................................17 Figure 12 : Interface Draw IO ......................................................................................17 Figure 13 : Exemple de modélisation UML ..................................................................18 Figure 14 : Exemple de vue « Message Flow » ...........................................................18 Figure 15 : Exemple de vue « Configuration XML ».....................................................18 Figure 16 : Modèle UML Rtsinfochip ...........................................................................22 Figure 17 : Modèle Mule Rtsinfochip ...........................................................................22 Figure 18 : Modèle UML Thumbfile Dispatch ...............................................................26 Figure 19 : Modèle Mule Thumbfile Dispatch...............................................................26 Figure 20 : Modèle UML Betasuisse JSON .................................................................29 Figure 21 : Modèle Mule Betasuisse JSON .................................................................29 Figure 22 : Modèle UML Betasuisse XML ...................................................................34 Figure 23 : Modèle Mule Betasuisse XML ...................................................................34 Figure 24 : Modèle UML Move and Rename ...............................................................38 Figure 25 : Modèle Mule Move and Rename ...............................................................38 Figure 26 : Modèle UML Import Récursif .....................................................................42 Figure 27 : Modèle Mule Import Récursif .....................................................................42 Figure 28 : Modèle UML Thumbfile Requester ............................................................46 Figure 29 : Modèle Mule Thumbfile Requester ............................................................47 Figure 30 : Modèle UML Sparkex ................................................................................50 Figure 31 : Modèle Mule Sparkex ................................................................................50 Figure 32 : Modèle UML MassDL ................................................................................54 Figure 33 : Modèle Mule MassDL ................................................................................55 Figure 34 : Gestion d’erreurs et définition d’un transformateur global ..........................61 Figure 35 : Changement de runtime ............................................................................62 Figure 36 : Mule Management Console .......................................................................63 Figure 37 : Modèle UML Management-Console ..........................................................65 Figure 38 : Modèle Mule Management-Console ..........................................................65 Mule ESB SERGENT Djavan vi 1. Introduction « L'ESB est une nouvelle architecture qui exploite les services web, les systèmes orientés messages, le routage intelligent et la transformation. L'ESB agit comme une colonne vertébrale légère et omniprésente de l'intégration à travers laquelle les services logiciels et les composants applicatifs circulent » Roy W. Schulte, Gartner Inc, 2003. Aujourd’hui, les éditeurs sont multiples et les applications très nombreuses. Toutes les possibilités offertes par ces solutions n’ont pour limite que leur communication entre elles. En effet, n’étant pas éditées par les mêmes acteurs, on se retrouve très rapidement face à des applications qui ne peuvent pas échanger d’informations. Le rôle du bus de service d’entreprise (ESB) est de combler ce gap. L’ESB représente une technique informatique intergicielle chargée d’assurer la communication entre des applications qui n’ont à l’origine pas été conçues pour fonctionner ensemble. Cette technique est basée sur plusieurs principes tels que les annuaires sémantiques partagés ou la communication par messages. Un ESB, c’est avant tout une architecture. Les intérêts des ESB sont multiples, et comportent notamment la standardisation des concepts (XML, JMS, Web ServiceQ), le routage intelligent, une architecture distribuée orientée service ou encore une grande fiabilité grâce à l’absence de point individuels de défaillance. Tous ces avantages permettent une excellente souplesse et une grande précision dans leur intégration au sein d’une entreprise. Ce travail de Bachelor, effectué pour la RTS, met en pratique l’intégration de ces concepts dans la réalisation de prototypes simples qui permettent de migrer de la version actuellement en place de l’ESB à la dernière version en date, Mule 3.6. La plupart du temps, il s’agit de traiter de petits fichiers de métadonnées. Par exemple, faire communiquer la gestion logicielle des archives avec le robot physique contenant la très grande majorité des archives, en passant par le Web Service qui gère la base de données et les autorisations. Les prototypes ont pour but de mettre en avant les points forts et faibles de cette nouvelle version et de définir le potentiel du bus d’entreprise Mule édité par Mulesoft, tout en le comparant aux autres acteurs majeur du domaine tel que WSO2 ou Talend dans une analyse de marché. Mule ESB SERGENT Djavan 1 2. Analyse de marché L’analyse de marché s’est portée sur les différentes solutions pouvant répondre aux besoins de la RTS. Les produits ont été évalués selon les critères énoncés ci-dessous sur la base des informations disponibles sur Internet (sites officiels, forums, évaluations par des tiers). 2.1 Définition des besoins Tableau 1 : Critères et besoins Critère Besoin Fonctionnalités, Le produit doit comporter un maximum de extensibilité et flexibilité fonctionnalités courantes aux ESB (connecteurs, transformateurs, contrôleurs de flux etc.). Il doit également permettre d’implémenter des fonctionnalités qui ne lui seraient pas natives. Facilité d’utilisation Le produit doit être facile d’utilisation et permettre de créer/améliorer de nouveaux processus rapidement. Communauté et Le produit doit être activement soutenu et doit bénéficier documentation d’une documentation de qualité. C’est le critère principal. Connecteurs disponibles Minimum : WS – File – REST – HTTP – FTP – JDBC. Prix Les solutions propriétaires ne sont pas exclues pour autant que leurs fonctions justifient leur prix. Performances Il ne s’agit que de faire transiter de petits fichiers de métadonnées. La performance n’est donc pas un critère déterminant. Fiabilité La robustesse et la tolérance aux pannes du produit sont d’importants facteurs à prendre en compte. Sécurité Aucun besoin lié à la sécurité. Mule ESB SERGENT Djavan 2 2.2 Plan d’analyse Les données recueillies sont de type qualitatif. Comme il existe beaucoup de bus de services d’entreprise différents, tant open source que propriétaires, l’étude se porte principalement sur les plus connus. Six bus ont étés sélectionnés sur la base de leur notoriété et de la quantité d’information disponible : Nom Editeur Type Mule ESB 3.5 ................................ MuleSoft ....................................... Open source Talend ........................................... Talend .......................................... Open source Fuse .............................................. Red Hat ........................................ Open source WSO2 ........................................... WSO2 ........................................... Open source Biztalk ........................................... Microsoft ....................................... Propriétaire WebSphere ................................... IBM ............................................... Propriétaire La différence entre le nombre de bus open source et propriétaires s’explique par le fait que l’on privilégie une solution libre. Les informations sont regroupées dans un tableau1 afin de permettre de comparer les fonctionnalités de chaque ESB sur une base commune. La liste des fonctions n’est donc pas exhaustive et se concentre sur les fonctions importantes et non standard. 2.3 Analyse des résultats et recommandations En analysant objectivement les résultats, on se rend compte de deux faits importants du point de vue de la collecte des informations : Premièrement, la quantité d’informations disponible varie très largement d’un ESB à un autre. La plupart d’entre eux, surtout les logiciels propriétaires, sont peu précis quant à leurs fonctions et doivent être utilisés pour prendre pleinement conscience de leur potentiel. Malheureusement, il est impossible de tester chacun d’eux dans le cadre du projet et il faut donc se fier aux observations et aux tests d’autres personnes. Deuxièmement, les informations provenant en grande partie des sites officiels, il est difficile d’obtenir un avis objectif sur le produit. Chaque éditeur propose un ensemble de fonctions, de connecteurs (voir 3.3.1 ci-dessous) et une interface graphique plus ou 1 Voir annexe 1 Mule ESB SERGENT Djavan 3
Description: