Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parNicolas Barbier Modifié depuis plus de 10 années
1
Semaine 8: Java 2, Enterprise Edition1 Patron dintégration dentreprise Architectures de message asynchrone
2
Semaine 8: Java 2, Enterprise Edition2 Le besoin dintégration dentreprise Plus dune application Souvent des centaines Une simple application trop difficile et inflexible Spécialisation des vendeurs Raisons historiques, fusions Culture politique de lorganisation Les clients perçoivent lentreprise comme un tout, et veulent faire exécuter des fonctions dentreprises qui recouvrent plusieurs applications.
3
Semaine 8: Java 2, Enterprise Edition3 Défis de lintégration inter- entreprise Les réseaux sont lents Les réseaux ne sont pas fiables Il ny a pas 2 applications semblables Le changement est inévitable Plus Intrésèquement à grande échelle et complexe Contrôle limité sur les applications et les participants Implications profondes, impacts daffaire critiques Entrelacé avec la politique corporative Peu de standards existent et ils évoluent encore…
4
Semaine 8: Java 2, Enterprise Edition4 Couplage faible recherché Couplage: mesure de la dépendance entre les applications Dépendance technologique Dépendance sur lieu Dépendance temporelle Dépendance sur les données Waldo et al, 1994: Objects that interact in a distributed system need to be dealt with in ways that are ntrinsically different from objects that interact in a single address space Exemple de couplage fort
5
Semaine 8: Java 2, Enterprise Edition5 Intergiciel basé message Les canaux sont séparés des applications Enleve la dépendance physique Les canaux sont asynchrones et fiables Enleve les dépendances temporelles Les données sont échangées dans des messages complets et autonomes Enleve les dépendances aux formats de données
6
Semaine 8: Java 2, Enterprise Edition6 Une approche asynchrone
7
Semaine 8: Java 2, Enterprise Edition7 Lévolution du paradigme
8
Semaine 8: Java 2, Enterprise Edition8 Plusieurs produits Intergiciels basés message (MOM) IBM MQ Microsoft MSMQ Java Message Service Implémentations Suite dintégration dapplications dentreprise TIBCO, Webmethods, SeeBeyond, Vitria, BEA Integration Service Web asynchrone WS-ReliableMessaging, ebMS (ebXML) Sun JAXMI Microsoft Web Service Extension
9
Semaine 8: Java 2, Enterprise Edition9 Intégration basée message 1. Transporter les messages 2. Concevoir les messages 3. Acheminer le message à sa destination 4. Transformer le message à son format 5. Produire et consommer le message dans lapplication 6. Gérer et tester le système
10
Semaine 8: Java 2, Enterprise Edition10 Les patrons dintégration 1. Le canal de transport des messages 2. La conception des messages 3. La route du message à sa destination appropriée 4. La traduction du message au format approprié 5. La production et la consommation des messages 6. La gestion et le test du système
11
Semaine 8: Java 2, Enterprise Edition11 Bonjour, façon asynchrone Le consommateur Le fournisseur de service Échanges de type Requête-Réponse Deux canaux de communications point à point Des messages de requête et de réponse séparés
12
Semaine 8: Java 2, Enterprise Edition12 Plusieurs consommateurs Chaque composant consommateur a sa propre queue de réponse, son propre canal Comment le fournisseur du service sait-il où envoyer la réponse? A tous – très innéficace Adresse codée- viole le principe dindépendance et de non couplage
13
Semaine 8: Java 2, Enterprise Edition13 Patron adresse de retour Le consommateur fournit une adresse de retour (un canal) Le fournisseur de service répond avec un message dans le canal de réponse. Si ladresse de retour pointe sur un canal différent que celui du consommateur, alors on utilise le chaînage
14
Semaine 8: Java 2, Enterprise Edition14 Multiple fournisseur de service Les messages de requête peuvent être traités par plus dun service fournisseur Les canaux points à points supportent des consommateurs en compétition, dans ce cas-ci un seul service reçoit chacun des messages de requête Le canal enfile dans la queue les requêtes non répondues
15
Semaine 8: Java 2, Enterprise Edition15 Problèmes Les messages peuvent être traités par des services différents Soit par répartion de charge Ou par un aiguilleur Les messages peuvent devenir hors séquence Comment pairer les requêtes et les réponses Envoyer une seule requête à la fois? Très inéficace Se baser sur la séquence naturelle? Faux en réalité
16
Semaine 8: Java 2, Enterprise Edition16 Patron Corrélation Fournir à chaque message un identificateur unique Message ID (Simple, limité) GUID (Globally Uniqaue ID) Clef daffaire (ID de lordre) Le fournisseur copie lidentificateur dans le message de réponse Lémetteur peut pairer les requêtes et les réponses
17
Semaine 8: Java 2, Enterprise Edition17 Un aiguilleur de message Comment pouvons-nous découpler des étapes de traitement individuel? Les messages seront acheminés à des composants différents selon les conditions Les différents canaux dépendront du contenu des messages, de lenvironnement (tests ou production) Nous ne voulons pas charger lémetteur avec la décision Un aiguilleur de message acheminera les messages dun canal à un autre
18
Semaine 8: Java 2, Enterprise Edition18 Un diviseur Comment nous pouvons traiter un message sil contient plusieurs éléments, chacun devant être traité différemment? Nous voulons Traiter chaque élément indépendamment Éviter de produire des éléments absents ou doubles Faire une utilisation efficace des resources du réseau Un diviseur sépare un message agrégé en une série de messages individuels, chacun contenant les données dun seul item
19
Semaine 8: Java 2, Enterprise Edition19 Un aggrégateur Comment combiner plusieurs messages reliés en un seul message? Les messages peuvent être hors séquence Les messages peuvent être retardés Un aggrégateur gère la réconcialition de plusieurs messages en un seul Composant avec état
20
Semaine 8: Java 2, Enterprise Edition20 Un aggrégateur Corrélation Quels messages entrants vont ensemble? Condition de complétude Quand sommes-nous prêt à publier le message résultant? Attendre pour tous Expiration du délai (absolu ou incrémentiel) Après les premiers Un événement externe Algorithme de laggrégation Comment combiner les messages reçus en un seul message résultant Un seul, le meilleur Condenser les données Concaténer les données pour une analyse ultérieure
21
Semaine 8: Java 2, Enterprise Edition21 Lenchère Envoyer un message à un ensemble dynamique de participants, et retourner un message unique qui incorpore les réponses
22
Semaine 8: Java 2, Enterprise Edition22 Un exemple de combinaison Recevoir un ordre, choisir la meilleure offre de chaque item parmi les vendeurs, combiner le tout en un ordre valide
23
Semaine 8: Java 2, Enterprise Edition23
24
Semaine 8: Java 2, Enterprise Edition24 Résumé Un langage visuel simple pour décrire des solutions intégrées Combiner les patrons pour décrire des solutions plus larges Pas un outil compliqué Pas un langage de spécification UML
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.