Intégration d`applications d`entreprise (INTA)
Transcription
Intégration d`applications d`entreprise (INTA)
Master 2 SITW - Recherche Intégration d'applications d'entreprise (INTA) Dr. Djamel Benmerzoug Email : [email protected] Maitre de Conférences A Département TLSI Faculté des NTIC Université Constantine 2 – Abdelhamid Mehri INTA - Master 2 - Recherche 1 Plan Introduction Intégration d’applications d’entreprise Généralités Types d’intégration Typologie d’intégration « technologique» Topologies d’intégration Approches pour l’intégration d’applications Workflow et serveurs d’application Applications basées sur un échange des messages Adaptateurs et Connecteurs INTA - Master 2 - Recherche 2 Plan Les services Web Principe de l’architecture orientée Services Spécifications des services Web Apports des services Web dans l’intégration d’applications Système Multi-agents (SMA) Interaction et mode d’interaction Protocoles d’interaction Apports des SMA dans l’intégration d’applications INTA - Master 2 - Recherche 3 Introduction INTA - Master 2 - Recherche 4 Définition L'Intégration d'applications d'entreprise ou IAE (en anglais Enterprise Application Integration, EAI) est une architecture intergicielle permettant à des applications hétérogènes de gérer leurs échanges. Sa particularité est d’échanger les données en pseudo temps réel. Par extension, l'acronyme EAI désigne un système informatique permettant de réaliser cette architecture en implémentant les flux interapplicatifs du système d'information. INTA - Master 2 - Recherche 5 Pourquoi ? SI = { ensemble d’applications très différentes (progiciels/ logiciels spécifiques ) } Besoin de faire communiquer ces applications entre elles => EAI INTA - Master 2 - Recherche 6 Exemple de solution EAI Point à Point développer des interfaces spécifiques à chaque application et les connecter point à point. Client 1 Client 2 Client 3 Service Métier 1 Service Métier 2 Service Métier 3 => réseau complexe de flux difficile à maintenir et à faire évoluer. 7 Exemple de solution EAI Médiateur Maintenant, toutes les interfaces EAI convergent vers un serveur central qui traite et redistribue les flux vers les applications enregistrées. Client 1 Client 2 Client 3 Couche de Médiation Service Métier 1 Service Métier 2 Service Métier 3 INTA - Master 2 - Recherche 8 Exemple de solution EAI Médiateur Principes Découplage Le client est indépendant du fournisseur de service Le fournisseur de service est indépendant des clients Routage des appels aux services Tous les appels aux services métiers doivent passer par cette couche de médiation INTA - Master 2 - Recherche 9 Exemple de solution EAI Médiateur Avantages Point d'entrée unique vers les Services Réutilisabilité des services métiers Évolutions plus simples Ajout d'un nouveau service métier Nouvelle version d'un service métier INTA - Master 2 - Recherche 10 IAI vs EAI le développement massif des technologies Internet et la possibilité d’utiliser ce réseau et ses protocoles pour y créer de la valeur ajoutée : Internet Application Integration (IAI) INTERNET Entreprise A Entreprise C Entreprise B BtoB IAI AtoA EAI INTA - Master 2 - Recherche 11 IAI vs EAI une adoption généralisée des solutions packagées permettant l’émergence de standards métiers : Enterprise Ressource Planning (ERP), Customer Relationship Management (CRM), Supply Chain Management (SCM) INTA - Master 2 - Recherche 12 Types d’intégration Intégration Intégration Intégration Intégration d’applications d’applications d’applications d’applications par par par par les les les les INTA - Master 2 - Recherche données traitements interfaces processus 13 Types d’intégration Processus métiers Processus métiers Présentation Traitement Données S.I. Entreprise 1 S.I. Entreprise 2 ? Ingénierie « itérative » ? Processus métiers S.I. Entreprise fusionnée Domaines métier Traitement Données communes Modèle des échanges Modèle des échanges B to B Types d’intégration Intégration d’applications par les données Elle consiste à déplacer les données entre les applications, en utilisant, très souvent, des outils de migration, de réplication ou de fédération de données. INTA - Master 2 - Recherche 15 Types d’intégration Intégration d’applications par les traitements Cette approche permet d’intégrer des applications en partageant des services offerts par les composants applicatifs (méthodes, objets, etc.…) techniques utilisées : API, applications composites , e-Services INTA - Master 2 - Recherche 16 Types d’intégration Intégration d’applications par les présentations Intégration simple (niveau de l’interface utilisateur ) techniques utilisées : Portail Web, … INTA - Master 2 - Recherche 17 Types d’intégration Intégration d’applications par les processus Combinaison des trois approches de bases Techniques utilisées: moteur de workflow, Orchestration des processus. INTA - Master 2 - Recherche 18 Types d’intégration Intégration d’applications par les données Intégration d’applications par les traitements Intégration d’applications par les interfaces Intégration d’applications par les processus INTA - Master 2 - Recherche 19 Intégration par les données Gestion de données traditionnelle Bases de données homogènes Architecture centralisée ou distribuée, Évolution vers le "mélange" de données en provenance de plusieurs sources Sources d’information nombreuses et variées: SGBD relationnels/XML, tableurs, fichiers, Interfaces d’accès variées: Langages d’interrogation: SQL, XPath, XQuery, … Modèle de données: relationnel, XML,, tableurs Protocoles de communication: JDBC, ODBC, SOAP, HTTP Interfaces d’appel: ligne de commande, API, formulaire, interface graphique 20 Intégration par les données Objectif : utiliser ces données comme si elles constituaient une seule base de données homogène INTA - Master 2 - Recherche 21 Intégration par les données Plus particulièrement, l’intégration de données doit fournir un accès (requêtes, éventuellement mises-à-jour) uniforme (comme si c’était une seule BD homogène) à des sources multiples (pas seulement des BD) autonomes (sans affecter leur comportement) hétérogènes (différents modèles de données, schémas) INTA - Master 2 - Recherche 22 Intégration par les données INTA - Master 2 - Recherche 23 Intégration par les données qui rendent l’intégration de données difficile Distribution Autonomie Hétérogénéité INTA - Master 2 - Recherche 24 Intégration par les données Architecture générale INTA - Master 2 - Recherche 25 Intégration par les données Approches d’intégration Approche 1 : Intégration matérialisée génération d’un schéma unificateur par exploitation de correspondances entre les bases de données (entrepôt de données). Approche 2 : Intégration virtuelle Les données restent dans les sources Les requêtes sont exprimées sur le schéma global, puis décomposées en sous-requêtes sur les sources Les résultats des sources sont combinés pour former le résultat final INTA - Master 2 - Recherche 26 Intégration par les données Approches d’intégration Approche 3 : travaux sur les approches logiques, les ontologies et les transformations de modèles, INTA - Master 2 - Recherche 27 Intégration par les données Approche 1: intégration matérialisée INTA - Master 2 - Recherche 28 Intégration par les données Approche 1: intégration matérialisée Matérialisation des sources au niveau du modèle global Migration de données vers l ’entrepôt systèmes ETL : Extract, Transform, Load Avantages : performances, personnalisation des données (nettoyage, filtrage), versions Inconvénients : données pas toujours fraîches, cohérence, gestion des mises-à- jour, gestionINTA de- Master gros2 - volumes de données 29 Recherche Intégration par les données Approche 2: intégration virtuelle INTA - Master 2 - Recherche 30 Intégration par les données Approche 2: intégration virtuelle Approche « paresseuse », pas de matérialisation Migration des requêtes vers les sources Avantages : données toujours fraîches, plus facile d’ajouter de nouvelles sources, plus grande échelle, distribution de l’effort Inconvénients : performances, traduction de requêtes, capacités différentes des sources INTA - Master 2 - Recherche 31 Intégration par les données Schémas d’intégration Problèmes Intégration de schéma: comment définir un schéma (modèle) global d’intégration à partir des schémas (modèles) des sources? Fusion de données: comment rendre compatibles, transformer les données en provenance des sources? Mappings/vue d’intégration: comment décrire le lien entre le schéma global et les schémas des sources? INTA - Master 2 - Recherche 32 Intégration par les données Schémas d’intégration Le lien entre schéma global et schémas locaux est défini à travers un mapping (correspondance structurelle) Schéma global M Schéma des sources Si INTA - Master 2 - Recherche 33 Intégration par les données Schémas d’intégration Deux façons principales de définir ce lien Le schéma global en fonction des schémas locaux « global as view » Approche ascendante: on part des sources pour produire le schéma global M = V(S1, …, Sn) Avantages: approche naturelle, traduction des requêtes simple INTA - Master 2 - Recherche 34 Intégration par les données Schémas d’intégration Les schémas locaux en fonction du schéma global « local as view » Approche descendante: on fixe le schéma global et on décrit les sources par rapport à ce schéma fixé Si Vi(M) Avantage: facile à rajouter de nouvelles sources INTA - Master 2 - Recherche 35 Intégration par les données Schémas d’intégration INTA - Master 2 - Recherche 36 Intégration par les données Schémas d’intégration En pratique la création du mapping prend > 50% de l’effort d’intégration! Il est important d'avoir des outils de génération Les difficultés de la génération automatique du mapping Hétérogénéité des schémas et des modèles Les schémas ne captent jamais complètement la sémantique il faut la chercher partout, dans les données, les commentaires INTA - Master 2 - Recherche 37 INTA - Master 2 - Recherche 38 Types d’intégration Intégration d’applications par les données Intégration d’applications par les traitements Intégration d’applications par les interfaces Intégration d’applications par les processus INTA - Master 2 - Recherche 39 Intégration d’applications par les traitements L’intégration d’applications en utilisant une approche « par traitements », du point de vue architectural, repose sur la composition de services. La composition de services est le mécanisme qui permet l’intégration des services pour construire applications à base de services. Le résultat de la composition de services peut être un nouveau service, appelé service composite. INTA - Master 2 - Recherche 40 Intégration d’applications par les traitements Problème: Comment passer d’un ensemble de services à une composition de services correctement structurée Solution: Il faut suivre un certain nombre d’étapes, de la spécification à la composition concrète qui peut être directement exécutée INTA - Master 2 - Recherche 41 Intégration d’applications par les traitements 1. 2. 3. 4. Démarche à suivre: Définition de l’architecture fonctionnelle : cette phase est faite pour identifier les fonctionnalités attendues pour l’application résultant de la composition de service. Identification et sélection des services : selon les fonctionnalités attendues, on détermine les services les plus adaptés à la composition. Médiation entre services : même si à l’étape précédente, les services les plus adaptés ont été sélectionnés, il n’est pas toujours possible de les composer tels quels. Il faut souvent ajouter de la médiation, par exemple sémantique ou syntaxique. Déploiement de la nouvelle application. INTA - Master 2 - Recherche 42 Intégration d’applications par les traitements Méthode de composition Composition par procédé Composition structurelle INTA - Master 2 - Recherche 43 Intégration d’applications par les traitements Composition par procédé La composition de services par procédés consiste à faire l’assemblage de services selon un ordre et un flux d’exécution. L’exécution d’une composition par procédés est réalisée par un coordinateur de services. L’utilisation d’un tel coordinateur implique une composition avec une logique d’exécution qui sera interprétée par ce coordinateur. INTA - Master 2 - Recherche 44 Intégration d’applications par les traitements Composition par procédé Entreprise 1 Entreprise 2 Coordinateur A11 A12 A21 A13 INTA - Master 2 - Recherche A22 45 Intégration d’applications par les traitements La composition par procédés est décrite dans un langage spécifique qui est interprété par le coordinateur. Ce langage permet de décrire la logique d’exécution de l’application dans un langage de haut niveau. Exemple: le langage WS-BPEL INTA - Master 2 - Recherche 46 Intégration d’applications par les traitements WS-BPEL est un langage de procédés basé sur la technologie XML. WS-BPEL permet de construire des procédés interprétables et exécutables par un moteur d’orchestration. Un procédé est composé d’activités qui s’enchaînent grâce à des échanges de données. INTA - Master 2 - Recherche 47 Intégration d’applications par les traitements <process> <partners> <partner name="Customer"/> <partner name="Broker"/> <partner name="GoogleCustomSearch"/> </partners> <sequence> <invoke name="Keywords" partner="Broker" </invoke> <invoke name=« keywords" partner="GoogleCustomSearch" <switch> <reply name=”failure”> ………. </reply> <reply name=”propose”> …………. </reply> </switch> </sequence> </process> ………. </invoke> INTA - Master 2 - Recherche 48 Intégration d’applications par les traitements Composition structurelle Par opposition à la composition par procédés, le contrôle dans une composition structurelle est exprimé à l’intérieur des applications composants. La logique d’exécution, ou d’appels des services, est gérée par chaque composant qui requiert des services. INTA - Master 2 - Recherche 49 Intégration d’applications par les traitements Ce type de composition est effectué principalement à partir de l’usage de langages de description d’architectures formalisés (ADL). L’ADL est un langage pour décrire des architectures d’applications. Dans l’approche d’intégration par les traitements, l’ADL est utilisée pour décrire les composants d’une application, les services utilisés et les liaisons ou méta-informations qui décrivent les mécanismes de résolution de dépendances de INTA - Master 2 - Recherche 50 services. Intégration d’applications par les traitements Exemple : Intégrer une application Java avec le moteur de recherche Google via l’API GoogleCustomSearch App. Java import com.google.api. ………………. ………………. Customsearch.Cse.List list = customsearch.cse().list(keyword); A P I ...................... INTA - Master 2 - Recherche 51 Intégration d’applications par les traitements Exemple des approches basées sur la composition structurelle SCA (Service Composition Architecture) iPOJO (injected Plain Old Java Objects) INTA - Master 2 - Recherche 52 Intégration d’applications par les traitements Contraintes : Les applications composants doivent fournir la liste des fonctions disponibles (API). Inconvénients : Il faut des compétences techniques assez avancées. Les Web services sont la technologie privilégiée. (chapitre 3 de ce module) INTA - Master 2 - Recherche 53 Types d’intégration Intégration d’applications par les données Intégration d’applications par les traitements Intégration d’applications par les interfaces Intégration d’applications par les processus INTA - Master 2 - Recherche 54 Intégration d’applications par les interfaces Solution: Mettre en œuvre un portail Web qui sera le point d'entrée à des applications de l'entreprise. INTA - Master 2 - Recherche 55 Intégration d’applications par les interfaces Principe: Ajouter une couche au-dessus du système d’information donnant accès, via une interface Web, aux différents services de l’entreprise (moteur de recherche, bases de données, messagerie, applications métier, etc.) INTA - Master 2 - Recherche 56 Intégration d’applications par les interfaces Un portail d’entreprise peut être considéré comme son interface. Il est près des clients, des employés, et des partenaires. Les différentes relations business d’une entreprise considérées comme un facteur important pour classifier les portails: B2E: business/employeur, B2C: business/consommateur, B2B: business/business, INTA - Master 2 - Recherche 57 Intégration d’applications par les interfaces Les portails B2E sont utilisés pour : Faciliter le travail collaboratif, Permettre aux responsables de prendre les décisions principales Aider les employeurs dans la conduite des activités quotidiennes. 58 Intégration d’applications par les interfaces Les portails à usage multiple ou B2C (business to customer) s'adressent aux clients des entreprises. Un portail B2C doit améliorer la capacité d'une compagnie d'acquérir, servir et maintenir des clients. En plus, il permet de fournir aux clients des informations sur les produits et les prix proposés par l’entreprise 59 Intégration d’applications par les interfaces Les portails professionnels ou B2B sont destinés au partenariat entre les entreprises. Par exemple, un ensemble d’entreprises peut créer un canal de vente commun sur le marché à travers un portail B2B sur le Web qui offre des informations sur les différents services fournis par les différents partenaires. Exemple: Un modèle concret sur les portails B2B est le portail de voyages qui regroupe une chaîne hôtelière, 60 une compagnie aérienne, une agence de location de voitures…etc. Types d’intégration Intégration d’applications par les données Intégration d’applications par les traitements Intégration d’applications par les interfaces Intégration d’applications par les processus INTA - Master 2 - Recherche 61 Intégration d’applications par les processus Processus métiers Processus métiers Présentation Traitement Données S.I. Entreprise 1 S.I. Entreprise 2 ? Ingénierie « itérative » ? Processus métiers S.I. Entreprise fusionnée Domaines métier Traitement Données communes Modèle des échanges Modèle des échanges B to B Intégration d’applications par les processus Un processus métier est une chorégraphie d’activités incluant une interaction entre participants sous la forme d’échange d’informations. Les participants peuvent être : Des applications Des acteurs humains, D’autres processus métiers. INTA - Master 2 - Recherche 63 Intégration d’applications par les processus Un processus métier peut être interne à une entreprise, ou peut mettre en jeu des entreprises partenaires. Dans ce dernier cas, on parle alors de processus public ou collaboratif. INTA - Master 2 - Recherche 64 Intégration d’applications par les processus Quelques solutions pour l’intégration des processus métiers Workflow et serveurs d’application Middleware: RPC, ORB, MOM Les Web services sont la technologie privilégiée. (chapitre 3 de ce module) INTA - Master 2 - Recherche 65