Enterprise Integration Patterns (EIP) est un livre de Gregor Hohpe et Bobby Woolf et décrit 65 modèles pour l’utilisation de l’intégration d’applications d’entreprise orientés message sous la forme d’un langage de modèle. Ils nous aident à utiliser des méthodes standardisées pour intégrer les applications, pas besoin de réinventer la roue à chaque fois que vous rencontrez un problème.
L’objectif des modèles d’intégration d’entreprise est de créer un langage commun et un ensemble d’actions de flux de travail afin de les combiner pour créer un processus métier mature et pratique. Il fournit un catalogue de soixante-cinq modèles qui vous aident à concevoir des solutions de messagerie efficaces pour votre entreprise.
Le livre distingue quatre alternatives d’intégration de haut niveau :
- Transfert de fichier
- Base de données partagée
- Invocation de procédure distante
- Messagerie
Les types d’intégration suivants sont introduits :
- Portail d’information
- Réplication des données
- Fonction commerciale partagée
- Architecture orientée services
- Processus métier distribué
- Intégration interentreprises
- Interaction étroitement couplée vs interaction faiblement couplée
Dessinez un diagramme de modèle d’intégration d’entreprise avec un outil en ligne gratuit
L’outil gratuit Enterprise Integration Patterns de Visual Paradigm (outil de diagramme EIP) propose un ensemble de fonctionnalités d’édition qui simplifient et accélèrent la création de diagrammes, telles que le glisser-déposer et le guide d’alignement pour une édition fluide et intuitive. L’outil de diagramme EIP est également fourni avec un ensemble de symboles et de formes EIP qui vous permettent de créer différents types de diagrammes EIP.
Vous pouvez facilement développer vos modèles, puis les produire et les partager via des formats tels que PNG, JPG, GIF, SVG et PDF.
Apprendre EIP avec des exemples et des modèles
Vous pouvez commencer avec un diagramme vierge ou un modèle EIP. Les suivants sont quelques-uns des modèles. Cliquez sur le bouton Modifier pour commencer à modifier immédiatement. C’est gratuit et aucune inscription n’est nécessaire.
Exemple de modèle d’intégration d’entreprise : proxy intelligent
Modifier instantanément en ligne
Exemple de modèle d’intégration d’entreprise : Messagerie composée MSMQ
Modifier l’exemple ci-dessus en ligne
Vous souhaitez adopter d’autres modèles d’intégration d’entreprise ?
Référentiel d’édition en ligne EIP de Visual Paradigm
Cadre de mise en œuvre des PEI
Apache Camel prend en charge la plupart des modèles d’intégration d’entreprise de l’excellent livre de Gregor Hohpe et Bobby Woolf. Basé sur les modèles d’intégration d’entreprise (EIP) pour vous aider à résoudre votre problème d’intégration en appliquant les meilleures pratiques prêtes à l’emploi. Camel prend en charge la plupart des modèles d’intégration d’entreprise de l’excellent livre de Gregor Hohpe et Bobby Woolf, ainsi que les nouveaux modèles d’intégration des architectures de microservices .
Si vous débutez avec Camel, vous voudrez peut-être essayer le Guide de démarrage du Guide de l’utilisateur avant d’essayer d’implémenter ces modèles.
SYSTÈMES DE MESSAGERIE
Canal de messagerie
Comment une application communique-t-elle avec une autre à l’aide de la messagerie ?
Un message
Comment deux applications reliées par un canal de messagerie peuvent-elles échanger une information ?
Comment effectuer des traitements complexes sur un message tout en gardant indépendance et flexibilité ?
Comment pouvez-vous découpler les étapes de traitement individuelles afin que les messages puissent être transmis à différents filtres en fonction d’un ensemble de conditions ?
Comment des systèmes utilisant différents formats de données peuvent-ils communiquer entre eux à l’aide de la messagerie ?
Point de terminaison de message
Comment une application se connecte-t-elle à un canal de messagerie pour envoyer et recevoir des messages ?
CANAUX DE MESSAGERIE
Comment l’appelant peut-il être sûr qu’exactement un destinataire recevra le document ou effectuera l’appel ?
Comment l’expéditeur peut-il diffuser un événement à tous les destinataires intéressés ?
Que fera le système de messagerie avec un message qu’il ne peut pas délivrer ?
Comment l’expéditeur peut-il s’assurer qu’un message sera livré, même si le système de messagerie tombe en panne ?
Comment connecter une application au système de messagerie pour qu’elle puisse envoyer et recevoir des messages ?
Comment connecter plusieurs systèmes de messagerie pour que les messages disponibles sur l’un soient également disponibles sur les autres ?
Qu’est-ce qu’une architecture qui permet à des applications distinctes de fonctionner ensemble, mais de manière découplée, de sorte que des applications puissent être facilement ajoutées ou supprimées sans affecter les autres ?
Modifier la capture de données
Synchronisation des données en capturant les modifications apportées à une base de données et en appliquant ces modifications à un autre système.
CONSTRUCTION DES MESSAGES
Comment utiliser la messagerie pour transmettre des événements d’une application à une autre ?
Lorsqu’une application envoie un message, comment peut-elle obtenir une réponse du récepteur ?
Comment un répondeur sait-il où envoyer la réponse ?
Comment un demandeur qui a reçu une réponse sait-il pour quelle requête il s’agit de la réponse ?
Comment un expéditeur peut-il indiquer quand un message doit être considéré comme obsolète et ne doit donc pas être traité ?
ROUTAGE DES MESSAGES
Comment gérer une situation où la mise en œuvre d’une seule fonction logique (par exemple, la vérification des stocks) est répartie sur plusieurs systèmes physiques ?
Comment un composant peut-il éviter de recevoir des messages sans intérêt ?
Comment éviter la dépendance du routeur sur toutes les destinations possibles tout en conservant son efficacité ?
Comment acheminer un message vers une liste de destinataires spécifiés (statiquement ou dynamiquement) ?
Comment pouvons-nous traiter un message s’il contient plusieurs éléments, chacun pouvant devoir être traité de manière différente ?
Comment combiner les résultats de messages individuels mais liés afin qu’ils puissent être traités dans leur ensemble ?
Comment pouvons-nous remettre un flux de messages liés mais hors séquence dans le bon ordre ?
Comment pouvez-vous maintenir le flux de messages global lors du traitement d’un message composé de plusieurs éléments, dont chacun peut nécessiter un traitement différent ?
Comment gérez-vous le flux global des messages lorsqu’un message doit être envoyé à plusieurs destinataires, chacun pouvant envoyer une réponse ?
Comment acheminer un message consécutivement à travers une série d’étapes de traitement lorsque la séquence d’étapes n’est pas connue au moment de la conception et peut varier pour chaque message ?
Comment acheminer un message à travers plusieurs étapes de traitement lorsque les étapes requises peuvent ne pas être connues au moment de la conception et peuvent ne pas être séquentielles ?
Comment pouvez-vous dissocier la destination d’un message de l’expéditeur et maintenir un contrôle central sur le flux de messages ?
Comment puis-je limiter les messages pour m’assurer qu’un point de terminaison spécifique ne soit pas surchargé ou que nous ne dépassions pas un SLA convenu avec un service externe ?
Comment puis-je échantillonner un message parmi plusieurs dans une période donnée pour éviter que la route en aval ne soit surchargée ?
Comment puis-je retarder l’envoi d’un message ?
Comment puis-je équilibrer la charge sur plusieurs points de terminaison ?
Comment puis-je arrêter d’appeler un service externe si le service est interrompu ?
Comment puis-je appeler un service distant dans un système distribué où le service est recherché à partir d’un registre de services quelconque ?
Comment puis-je définir une série d’actions associées dans une route Camel qui doivent être terminées avec succès (toutes) ou non exécutées/compensées ?
Comment puis-je acheminer un message vers plusieurs points de terminaison en même temps ?
Comment puis-je répéter le traitement d’un message en boucle ?
TRANSFORMATION DES MESSAGES
Comment communiquer avec un autre système si l’expéditeur du message ne dispose pas de tous les éléments de données requis ?
Comment simplifier le traitement d’un message volumineux, alors que vous ne vous intéressez qu’à quelques données ?
Comment pouvons-nous réduire le volume de données des messages envoyés à travers le système sans sacrifier le contenu de l’information ?
Comment traitez-vous les messages sémantiquement équivalents, mais qui arrivent dans un format différent ?
Comment puis-je trier le corps d’un message ?
Comment puis-je exécuter un script qui ne peut pas modifier le message ?
Comment valider un message ?
POINTS FINAUX DE MESSAGERIE
Comment déplacer les données entre les objets du domaine et l’infrastructure de messagerie tout en gardant les deux indépendants l’un de l’autre ?
Comment une application peut-elle consommer automatiquement les messages dès qu’ils sont disponibles ?
Comment une application peut-elle consommer un message lorsque l’application est prête ?
Comment un client de messagerie peut-il traiter plusieurs messages simultanément ?
Comment plusieurs consommateurs sur un même canal peuvent-ils coordonner le traitement de leurs messages ?
Comment un consommateur de messages peut-il sélectionner les messages qu’il souhaite recevoir ?
Comment un abonné peut-il éviter de manquer des messages alors qu’il ne les écoute pas ?
Comment un destinataire de messages peut-il gérer les messages en double ?
Comment un client peut-il contrôler ses transactions avec la messagerie ?
Comment encapsulez-vous l’accès au système de messagerie depuis le reste de l’application ?
Comment une application peut-elle concevoir un service à invoquer à la fois via diverses technologies de messagerie et via des techniques hors messagerie ?
LA GESTION DU SYSTÈME
Comment administrer efficacement un système de messagerie distribué sur plusieurs plates-formes et sur une vaste zone géographique ?
Comment faire passer un message par des étapes intermédiaires pour effectuer des fonctions de validation, de test ou de débogage ?
Comment inspectez-vous les messages qui transitent sur un canal point à point ?
Comment analyser et déboguer efficacement le flux de messages dans un système faiblement couplé ?
Comment puis-je enregistrer le traitement d’un message ?
Les étapes regroupent un ensemble d’EIP dans une unité logique composite pour les métriques et la surveillance.