Mettre en place un bus de services d'entreprise (ESB) 9 février 2010 David Grospelier Consultant Noveli blog.noveli.fr Benjamin Guinebertière Architecte DPE Microsoft blogs.msdn.com/benjguin date
Plan Introduction BizTalk Server 2009 et l’ESB Toolkit V2 Windows Azure Platform AppFabric Windows Server AppFabric Fédération des différentes technologies Conclusion date
Les problématiques d’intégration Nous traitons dans cette session des problématiques d’intégration Quel que soit le métier de l’entreprise, les problématiques sont identiques date
Connectivité & Interopérabilité S’interconnecter avec un nombre grandissant d’applications, de partenaires et respecter de plus en plus de standards / normes
Agilité S’adapter aux changements du SI
Rapidité Respecter des plannings serrés et ne pas pénaliser le métier de l’entreprise
Montée en charge Suivre les évolutions de l’entreprise
Compétitivité Réduire les coûts et offrir un retour sur investissement rapide
Comment répondre aux problèmes de l’intégration ? Il ne suffit pas de connecter les applications entre elles en point à point Interfaces complexes Peu de réutilisation Pas de montée en charge Peu de visibilité Coûts de maintenance Pas d’agilité : impact direct sur le business de l’entreprise JD Edwards Service SAP Java Appl. .Net Appl. CICS Service AS/400 MS CRM Oracle L’intégration d’applications n’est pas simplement l’action de les connecter Les connexions point à point amène de la complexité dans le SI et des coûts exponentiels date
L’architecture SOA idéalisée Entreprise Client Client Une épine dorsale dans le SI Une abstraction des services Un respect des standards L’exposition de services simples La réutilisation de services par composition La gouvernance du SI via des outils adaptés et des métriques Gouvernance Enterprise service bus (ESB) Business Process Managment (BPM) Integration Server Service Service date
L’agilité via la composition de services Consommateur Consommateur Consommateur Transparence de l’emplacement et version des services Conversion de protocole Transformation de format des données ESB Invocation de service Orchestration de services Gestion d’erreur et resoumissions Fournisseur de service Fournisseur de service Fournisseur de service
Rôles d’un ESB La connexion Synchrone, Asynchrone, standards, protocoles Le changement Intermédiation Liaison dynamique (au moment de l’exécution) Noms logiques Extensibilité Le suivi Traces techniques et métiers Devient nécessaire dès qu’on relie un grand nombre de services
BizTalk Server 2009 Serveur d’intégration Microsoft Connectivité (LOB, SGBDR, protocoles, normes, …) Montée en charge Architecture de publication / souscription Outillage pour le suivi technique et métier Orchestration de processus métiers Excellent socle pour une architecture SOA
ESB Toolkit v2.0 Complément de BizTalk : Guides d’implémentation, bonnes pratiques et exemples Collection de composants complémentaires pour faciliter la mise en œuvre de certains scénarios Une gestion d’erreur avec corrections / resoumissions Et surtout, l’ajout de plus d’agilité : Résolution dynamique de partenaires Résolution dynamique d’itinéraires Transformations dynamiques et chaînées Intégration avec UDDI
BizTalk Server 2009 / ESB Toolkit V2 On/Off-Ramps Management Portal Core Web Services ESB Toolkit v2.0 ESB Toolkit Core Resolvers Adapter Providers Itinerary Services Exception Management BizTalk Server Core Composants BizTalk Adapters Host Environment UDDI 3.0 BAM Transformation Engine Business Rules Engine Orchestration Engine Pub Sub Engine MMC Console BAM Portal Visual Studio
Démonstration BizTalk Server 2009 et ESB Toolkit v2
Scénario métier initial Application de saisie de CR de consultation Saisie d’un CR Contient des données structurées: - Infos sur le patient - Infos sur le médecin - Date consultation - Médicament prescrit - CR de la consultation (texte libre) - Date du prochain rdv CR structuré (XML) Processus métier dans l’ESB Génération de comptes rendus Production d’un OpenXML Archivage dans un système de fichier local Archivage documentaire
Démo Processus métier d’archivage initial -> Publication dans le bus de services -> Itinéraires et orchestration de processus métiers -> Composition avec des services du bus
Evolution du scénario métier Pour des raisons règlementaires, certains documents doivent être stockés par un tiers agréé Les documents concernés sont les CR produits pour les disciplines autres que la médecine du sport Pour la médecine du sport, l’archivage ne change pas
Evolution du scénario métier initial Application de saisie de CR de consultation Saisie d’un CR Contient des données structurées: - Infos sur le patient - Infos sur le médecin - Date consultation - Médicament prescrit - CR de la consultation (texte libre) - Date du prochain rdv CR structuré (XML) Nouvelle branche de l’itinéraire Processus métier dans l’ESB Archivage documentaire distant Génération de comptes rendus Production d’un OpenXML Archivage dans un système de fichier local Archivage par un tiers (hébergeur agréé) Archivage documentaire
Démo Evolution du processus d’archivage -> Déploiement d’un nouvel itinéraire sans impact sur l’existant
Windows Azure Platform AppFabric
AppFabric Windows Azure Platform AppFabric Service Bus (ex BizTalk Services) Access Control Services Windows Server AppFabric Hébergement dans IIS de WF et WCF (nom de code DUBLIN) Cache distribué (nom de code Velocity)
Capacités d’AppFabric Service Bus Annuaire de services Identité fédérée et contrôle d’accès Messagerie applicative Connectivité La connectivité assure un lien réseau de bout en bout Traverse les NAT et pare-feu Permet la connectivité de récepteur mobiles ou connectés de façon intermittente Les fonctionnalités de messagerie applicative proposent divers mécanismes de communication à travers ce lien Communication bidirectionnelle / peer-to-peer Tampon (buffer) de messages dans les nuages pour l’intégration de type REST L’annuaire de services permet de savoir quels services et applications déclarent écouter sur le Bus URI stables Format Atom Pub
Contrôle d’accès au bus Simplifie et automatise les requêtes avec autorisations complexes Fournit un niveau d’abstraction pour l’authentification fédérée à base d’assertions (claims) Etablit facilement une relation de confiance sécurisée Données et applications Applications / Utilisateurs
Principe de fonctionnement Service Bus http(s) | sb://xyz.servicebus.windows.net/solution/a/b Gestion de noms Route Abonnement Frontal Msg NLB Msg Client Service NAT pare-feu @IP dynamique
Windows Azure Platform AppFabric Service Bus & Access Control Scénario Processus métier dans l’ESB ADatum (…) Génération de comptes rendus Archivage documentaire Service d’archivage Windows Azure Platform AppFabric Service Bus & Access Control
Service d’archivage externalisé chez ADatum Démo Service d’archivage externalisé chez ADatum
Windows Server AppFabric
AppFabric (rappel) Windows Azure Platform AppFabric Service Bus (ex BizTalk Services) Access Control Services Windows Server AppFabric Hébergement dans IIS de WF et WCF (nom de code DUBLIN) Cache distribué (nom de code Velocity)
WCF et WF en .NET Framework 4 Workflow Service Host Management Endpoint Persistance (Instances) Persistence Behavior Activity Library message Receive Send Monitoring Tracking Behavior ... WCF = Windows Communication Foundation WF = Windows Workflow Foundation
Windows Server AppFabric (nom de code “Dublin”) .NET Framework Windows Server AppFabric Services Management Tools IIS/WAS Workflows Evolution de WAS/IIS et du rôle de serveur d’applications de Windows pour exécuter et gérer des services WCF et WF Disponible en 2010 IIS Manager Modules PowerShell Persistence Hosting Monitoring Caching Runtime Databases Persistence Monitoring
Fédération des différentes technologies
Rôle des différentes technologies BizTalk / ESB Serveur d’intégration Serveur de gestion de processus (BPM) Bus de service d’entreprise Windows Azure Platform AppFabric Internet Service Bus Contrôle d’accès Windows Server AppFabric Serveur d’application
Enterprise service bus (ESB) Enterprise service bus (ESB) Internet Service Bus Internet service bus Entreprise A Entreprise B Client Client Client Client Enterprise service bus (ESB) Enterprise service bus (ESB) Service Service Service Service Service
Windows Azure Platform AppFabric Service Bus & Access Control Scénario BizTalk Server 2009 & ESB Toolkit V2 Processus métier dans l’ESB ADatum Windows Server AppFabric Processus de décision (archivage Moyen/Long terme) (…) Génération de comptes rendus MSMQ Service de réception de documents Archivage documentaire Internet service bus Windows Azure Platform AppFabric Service Bus & Access Control
Fédération des différentes technologies Démo Fédération des différentes technologies
Conclusion
Conclusion La SOA (*) est un type d’architecture, pas un produit Divers produits concourent à la mise en œuvre d’un ESB C’est encore plus vrai dans des scénarios d’entreprise étendue (*) SOA = Service Oriented Architecture, Architecture orientée service