Intégration de systèmes Préparé par: Marc Barassi, Michel Fraser, Louis Martin, Martin Simoneau Collaboration spéciale: François Boucher et Richard Boutin 3/18/14
Intégration de systèmes «L ensemble des stratégies qui permettent les échanges entre les systèmes qui n ont pas été prévus au départ pour discuter entre eux.»
Intégration de systèmes Généralité d intégration logicielle d intégration Messagerie de messagerie Modèle directeurs cibles de messagerie de concept s
A DATA B
Système Application Module/composant Partenaire acteurs A DATA B
Système Application Module/composant Partenaire acteurs A DATA B nature de l information Élément d information Document / fichier Règle métier
Système Application Module/composant Partenaire acteurs A DATA B méthode d échange nature de l information Élément d information Document / fichier Règle métier Transfert de fichier Partage d objet de SGBD Invocation d API Messagerie
Système Application Module/composant Partenaire type conversation Requête / réponse Notification (évènement) acteurs A DATA B méthode d échange nature de l information Élément d information Document / fichier Règle métier Transfert de fichier Partage d objet de SGBD Invocation d API Messagerie
De base Réduction saisie + flexibilité pour utilisateur Réduction dédoublements (règles d affaires) Information plus cohérente plus à jour Automatisation des processus de «bout- en- bout» QU APPORTE L INTÉGRATION? Plus value Surveillance / contrôle Indépendance vis- à- vis des fournisseurs (best of breed)
INTÉGRATION «CLASSIQUE» A B
INTÉGRATION «CLASSIQUE» A B C
INTÉGRATION «CLASSIQUE» A B D C
INTÉGRATION «CLASSIQUE» A B D C E
INTÉGRATION «CLASSIQUE» F A B D C E
d intégration 1 / 6 Point à point Moyeu (hub) Bus de services Bus de messagerie
d intégration 2 / 6 POINT À POINT Caractéristiques Connexion directe entre entités Simple Entente bilatérale (pas de standards) Couplage fort Couplages nombreux Évolution Nouveau système à jusqu à n- 1 couplages par échange Maintenance système à maintenance des points d intégration Adaptée à un nombre restreint de systèmes
d intégration 3 / 6 MOYEU (HUB) Caractéristiques Un des systèmes à intégrer est le point central Relativement simple Couplage fort Routage Évolution Nouveau système à développement dans le moyeu Maintenance système à maintenance dans le moyeu Adaptée si un gros système (ex: ERP) et quelques petits satellites Variante Une base de données est le point central
d intégration 4 / 6 BUS DE SERVICES Caractéristiques Catalogue de services Plus ou moins simple (ex: ESB) Couplage faible Potentiellement un nombre élevé de règles d affaires sur le bus Évolution Nouveau système à enrichissement du catalogue Maintenance système à maintenance du catalogue Adaptée aux systèmes hétérogènes d architecture SOA
d intégration 5 / 6 BUS DE MESSAGERIE Caractéristiques Ajout d un intergiciel (transport / routage ou +) Moins simple Standards d échange Couplage très faible Connecteur Goulot d étranglement potentiel (fiabilité, performance) Évolution Nouveau système à nouveau connecteur Maintenance système à maintenance connecteur Adaptée aux systèmes nombreux et hétérogènes
d intégration 6 / 6 SYNTHÈSE Toutes utiles dans leur contexte s multiples simultanées UQAM Point à point Moyeu - Base de données Services web Messagerie
logicielle 1 / 2 Choix de la couche logicielle pour l intégration IMPACTS SUR L INTÉGRATION Présentation Système Métier Persistance
logicielle 1 / 2 Choix de la couche logicielle pour l intégration IMPACTS SUR L INTÉGRATION Présentation Système 1 API Métier Persistance
logicielle 1 / 2 Choix de la couche logicielle pour l intégration IMPACTS SUR L INTÉGRATION Présentation Système 1 API Métier 2 SQL Persistance
logicielle 1 / 2 Choix de la couche logicielle pour l intégration IMPACTS SUR L INTÉGRATION 3 Scrapping Présentation Système 1 API Métier 2 SQL Persistance
logicielle 2 / 2 Monolithique ou 2- tiers Présentation Métier Persistance 3- tiers ou n- tiers Présentation Métier Persistance Présentation Métier Persistance IMPACTS SUR L INTÉGRATION Présentation Métier Métier Persistance Orientée services Présentation Métier Persistance Présentation Services Persistance
d intégration 1 / 7 65 patrons = 65 solutions Reconnues pour des situations récurrentes Issues de la pratique (colligées par les auteurs) Abstraites (couvrent plusieurs technologies) Forment un langage (pièces d un puzzle) Dédiées principalement à la messagerie ENTERPRISE INTEGRATION PATTERNS S adressent aux architectes et développeurs Contexte d utilisation Description de la solution Icône Exemples Etc.
d intégration 2 / 7 Méthodes d intégration Concepts de messagerie Canal de communication Construction de messages Routage de messages Transformation de messages Point d intégration Gestion système (integration style patterns) (messaging system patterns) (channel patterns) (message construction patterns) (routing patterns) (transformation patterns) (endpoint patterns) (system management patterns) CATÉGORIES
d intégration 3 / 7 CONCEPTS GÉNÉRAUX DE MESSAGERIE X EXPÉDITEUR D1 DESTINATAIRE Messagerie D2 DESTINATAIRE
d intégration 3 / 7 X EXPÉDITEUR Point d intégration CONCEPTS GÉNÉRAUX DE MESSAGERIE D1 DESTINATAIRE Messagerie D2 DESTINATAIRE
d intégration 3 / 7 CONCEPTS GÉNÉRAUX DE MESSAGERIE X EXPÉDITEUR Point d intégration Construction de messages D1 DESTINATAIRE Messagerie D2 DESTINATAIRE
d intégration 3 / 7 CONCEPTS GÉNÉRAUX DE MESSAGERIE X EXPÉDITEUR Point d intégration Construction de messages D1 DESTINATAIRE Messagerie Transformation D2 DESTINATAIRE
d intégration 3 / 7 CONCEPTS GÉNÉRAUX DE MESSAGERIE X EXPÉDITEUR Point d intégration Construction de messages D1 DESTINATAIRE Messagerie Transformation Canal de communication D2 DESTINATAIRE
d intégration 3 / 7 CONCEPTS GÉNÉRAUX DE MESSAGERIE X EXPÉDITEUR Point d intégration Construction de messages D1 DESTINATAIRE Messagerie Transformation Canal de communication Routage D2 DESTINATAIRE
d intégration 3 / 7 CONCEPTS GÉNÉRAUX DE MESSAGERIE X EXPÉDITEUR Point d intégration Construction de messages D1 DESTINATAIRE Messagerie Transformation Canal de communication Routage Filtrage D2 DESTINATAIRE
d intégration 3 / 7 CONCEPTS GÉNÉRAUX DE MESSAGERIE X EXPÉDITEUR Point d intégration Construction de messages D1 DESTINATAIRE Messagerie Point d intégration Transformation Canal de communication Routage Filtrage D2 DESTINATAIRE
d intégration 4 / 7 EXEMPLES DU NIVEAU D ABSTRACTION Types de messages Commande Document Évènement
d intégration 4 / 7 EXEMPLES DU NIVEAU D ABSTRACTION Types de messages Commande Document Évènement Requête / Réponse REQUÉRANT Requête Canal de réponse Canal de requête Réponse FOURNISSEUR
d intégration 4 / 7 EXEMPLES DU NIVEAU D ABSTRACTION Types de messages Commande Document Évènement Requête / Réponse REQUÉRANT FOURNISSEUR
d intégration 5 / 7 PUBLICATION / ABONNEMENT Flux «poussé» (push model) Flux «tiré» (pull model)
d intégration 5 / 7 PUBLICATION / ABONNEMENT Flux «poussé» (push model) Expéditeur Évènement Canal Destinataire Flux «tiré» (pull model)
d intégration 5 / 7 PUBLICATION / ABONNEMENT Flux «poussé» (push model) Expéditeur Évènement Canal Destinataire Flux «tiré» (pull model) Expéditeur 1 3 Évènement Requête / Réponse Canal 2 Destinataire
d intégration 6 / 7 EXEMPLE DE PROCESSUS
d intégration 6 / 7 EXEMPLE DE PROCESSUS
d intégration 7/7 DOCUMENTATION www.enterpriseintegrationpatterns.com Hohpe / Woolf
de messagerie 1 / 3 Pourquoi? Conserver une indépendance vis- à- vis du choix de l outil Les plus utilisés: MQTT Message Queue Telemetry Transport XMPP extensible Messaging and Presence Protocol STOMP Simple Text Orientated Messaging Protocol Advance message queuing Protocol Caractéristiques communes: Protocole réseau TCP/IP entre client et serveur (broker) Orienté message Normé (ou en voie de l être)
de messagerie 2 / 3 Utilisations typiques: Système de messagerie Services sur le web Protocole texte léger Liste de commandes plutôt que d API (moins de 10) Très facile à implémenter (côtés client et serveur) Notion de queue Messages évolués (en- tête, attributs) Notion de transaction Types de conversation supportés: Requête / réponse Notification (évènement) STOMP - CARACTÉRISTIQUES
de messagerie 3 / 3 Utilisation typique: Système de messagerie - CARACTÉRISTIQUES Initiative de la banque JPMorgan 2006, v1.0 normée en 2011 par OASIS Conçu en vue de l intégration de systèmes Protocole binaire riche Types de conversation supportés: À peu près tous
Modèle 1 / 5 Comptoir (exchange) Comptoir Canal de communication Liaison Direct direct 1 à 1 Requête / réponse En éventail fan- out 1 à n Publication / abonnement Queue Thématique topic n à m Publication / abonnement sélectif DISTINCTION
Modèle 2 / 5 Comptoir direct (1 à 1) DIRECT EXCHANGE Message Comptoir Liaison Queue Message X D1
Modèle 2 / 5 Comptoir direct (1 à 1) DIRECT EXCHANGE Distribution de charge sur plusieurs destinataires Message Comptoir Liaison Queue Message X abc abc D1 Clé de routage
Modèle 2 / 5 Comptoir direct (1 à 1) DIRECT EXCHANGE Distribution de charge sur plusieurs destinataires Message Comptoir Liaison Queue Message X abc D1 abc Clé de routage def xyz D2 D3
Modèle 2 / 5 Comptoir direct (1 à 1) DIRECT EXCHANGE Distribution de charge sur plusieurs destinataires Message Comptoir Liaison Queue Message X abc D1 def Clé de routage def xyz D2 D3
Modèle 2 / 5 Comptoir direct (1 à 1) DIRECT EXCHANGE Distribution de charge sur plusieurs destinataires Message Comptoir Liaison Queue Message X abc D1 xyz Clé de routage def xyz D2 D3
Modèle 3 / 5 Comptoir en éventail (1 à n) FAN- OUT EXCHANGE Changement d adresse D1 X D2
Modèle 3 / 5 Comptoir en éventail (1 à n) FAN- OUT EXCHANGE Changement d adresse D1 X D2 D3
Modèle 3 / 5 Comptoir en éventail (1 à n) FAN- OUT EXCHANGE Changement d adresse X D2 D3
Modèle 4 / 5 Comptoir thématique (n à m) TOPIC EXCHANGE Notifications sur un portail étudiant DA E1 CET E2 E3
Modèle 4 / 5 Comptoir thématique (n à m) TOPIC EXCHANGE Notifications sur un portail étudiant DA E1 CET CET.facture.emisssion Clé de routage E2 E3
Modèle 4 / 5 Comptoir thématique (n à m) TOPIC EXCHANGE Notifications sur un portail étudiant DA DA.inscription.debut DA.inscription.fin CET CET.facture.emisssion Clé de routage E1 E2 E3
Modèle 4 / 5 Comptoir thématique (n à m) TOPIC EXCHANGE Notifications sur un portail étudiant DA DA.inscription.debut DA.inscription.fin CET.facture.emission E1 E2 CET CET.facture.emisssion Clé de routage E3
Modèle 4 / 5 Comptoir thématique (n à m) TOPIC EXCHANGE Notifications sur un portail étudiant DA DA.inscription.debut DA.inscription.fin CET CET.facture.emisssion Clé de routage CET.facture.emission DA.inscription.* E1 E2 E3
Modèle 4 / 5 Comptoir thématique (n à m) TOPIC EXCHANGE Notifications sur un portail étudiant DA DA.inscription.debut DA.inscription.fin CET CET.facture.emisssion Clé de routage CET.facture.emission DA.inscription.* DA.*.* CET.*.* E1 E2 E3
Modèle 5 / 5 DOCUMENTATION www.amqp.org rabbitmq.com/getstarted.html
directeurs cibles Adhérence à une norme (ex:, STOMP, ) Généricité (connecteurs inclus) Couplage faible (présomption) Lieu à Canal de communication convenu Temps à Asynchronicité Représentation à Transformation vers format de données standard Signature à Format d échange extensible (JSON, XML ) + Versionnage Simplicité Performance (extensibilité) Fiabilité (QoS, gestion d erreur, panne récepteur/autres, résilience) Notion de transaction Interopérabilité Assurance qualité (automatisation des tests, surveillance/contrôle) Sécurité GUIDES POUR LE CHOIX DE L OUTIL
1 / 2 ALTERNATIVES Messagerie COMPLEXITÉ Connexion Routage Transformation
1 / 2 ALTERNATIVES Messagerie ESB COMPLEXITÉ Connexion Routage Transformation Messagerie Services Sécurité
1 / 2 ALTERNATIVES Messagerie ESB Suite d intégration COMPLEXITÉ Connexion Routage Transformation Messagerie Services Sécurité ESB Gestion processus Moteur de règles Orchestration
2 / 2 OUTILS DE MESSAGERIE Produit Fournisseur Norme Cloud Libre AQ Oracle prop. MSMQ Microsoft prop. Windows Azure Microsoft SwiftMQ ITT Software StormMQ StormMQ Ltee ZeroMQ imatix ZMTP RabbitMQ VMWare ActiveMQ / Qpid Apache OpenAMQ imatix
de concept 1 / 4 Basé sur AccèsDA ASPECTS FONCTIONNELS Ajouts: Lien avec le système DA actuel (relevé de notes) Lien avec le système des Bibliothèques (emprunts de livres) Lien avec SIGA3 et Centre Sportif (changement de nom de la personne)
de concept 2 / 4 Interface web DA SERVICES (JMEAN) MongoDB Dossier de concept respectant les principes de l architecture cible Application du côté fureteur (SPA) Norme HTML, CSS, JS, etc. Mobile Accès au dossier converti (hiérarchique, nosql ) via un API REST Niveau d abstraction CRUD Indépendance face au système d exploitation et au RGBD Appuyer sur des technologies («Best of breed») issues du libre MongoDB, JavaScript, Node.js, etc. Etc. Nous ajoutons aujourd hui l intégration de système à Accès DA. RAPPEL
de concept 3 / 4 Interface web DA SERVICES (JMEAN) MongoDB Dossier Messagerie
de concept 3 / 4 Interface web BIB SIMULATION Emprunts DA SERVICES (JMEAN) MongoDB Dossier Messagerie
de concept 3 / 4 Interface web BIB SIMULATION Emprunts DA SERVICES (JMEAN) MongoDB Dossier Relevé de notes Messagerie DA ALPHA Dossier Oracle
de concept 3 / 4 Interface web BIB SIMULATION Emprunts DA SERVICES (JMEAN) MongoDB Dossier Relevé de notes Changement de nom Messagerie DA ALPHA CS SIMULATION SIGA3 SIMULATION Dossier Oracle
de concept 4 / 4 SERVICES TRANSVERSAUX Démonstration de l authentification avec Google. PROCHAINES PREUVES DE CONCEPT app.get('/etudiants', authed, dossiers.chercher(db));
s 1 / 4 EAI - ENTERPRISE APPLICATION INTEGRATION Branche de l informatique qui s intéresse à l intégration de systèmes Niveau organisationnel Vue globale de l actif informationnel Mise en place progressive
s 2 / 4 STRATÉGIE PROGRESSIVE Messagerie architecture cible A B
s 2 / 4 STRATÉGIE PROGRESSIVE Messagerie architecture cible A B C Messagerie déjà en place D
s 2 / 4 STRATÉGIE PROGRESSIVE Messagerie architecture cible A B C Messagerie déjà en place D
s 2 / 4 STRATÉGIE PROGRESSIVE Messagerie architecture cible A B C Messagerie déjà en place D
s 2 / 4 STRATÉGIE PROGRESSIVE Messagerie architecture cible A B Pont (bridge pattern) C Messagerie déjà en place D
s 3 / 4 COMPLÉMENTARITÉ DANS L ARCHITECTURE CIBLE Bus de services (REST) + Simple + Performant Synchrone Bus de messagerie + Souple (publication/abonnement) + Fiable Asynchrone + Synchrone
s 4 / 4 SYSTÈMES FORTEMENT INTÉGRÉS Défis / risque Fragilité (+ dépendances) Plus de ressources Assurance qualité Sensible aux erreurs Qualité variable des données Dissonance sémantique Sécurité (+ d interactions) Solutions / mitigation Couplage faible Asynchonicité Planification Tests automatisés Mécanisme de validation Erreurs détectées plus rapidement Plus Propriété «sensible partagée» aux des corrections données Modèle canonique Stratégies à développer
FIN DE LA PRÉSENTATION Merci