Les défis de l’intégration d’entreprise
- Les styles d’intégration d’entreprise.
- Architecture orientée services versus orientée événements.
- Le style Messaging.
- Introduction aux EIP.
Travaux pratiques
Appropriation de l’étude de cas.
Le framework Apache Camel
- Camel et les EIP.
- Anatomie des messages.
- Constituants d’une route (exchange, endpoints, processor, router, transformer), modèle Pipe and Filter.
- Implémentation d’une route en java DSL et Spring DSL (XML).
- Travailler le contenu des messages via les langages de script (simple, XPath, SpEL…).
- Composants Endpoint : file, mail, ActiveMQ, JMS, direct.
Travaux pratiques
Conception de routes : transfert de fichiers vers des queues JMS, diffusion d’informations par mail.
Transformer le contenu des messages
- EIP Message Translator : les différentes techniques (Processor, Beans, DSL, Expressions).
- EIP Content Enricher : enrich versus pollEnrich.
- Transformation XML : XSLT, marshaling / unmarsharling.
- Composants prédéfinis de transformation de format (csv, xml, json, zip…).
- Transformation à l’aide de templates (Velocity, Freemarker).
- Concevoir ses propres convertisseurs.
Travaux pratiques
Transformer le contenu de messages véhiculés par les routes précédemment créées.
Composants endpoint et gateway
- Les composants Camel.
- Communication en mémoire (Direct, SEDA, VM), via des services web (CXF, CXFRS, Restlet), asynchrones (JMS).
- Accès bases de données : JDBC, JPA.
- Activation périodique de routes : Timer, Quartz.
- Utilisation de gateway : CamelProxy et annotations @Consume et @Produce.
Travaux pratiques
Intégration d’applications existantes, proxification de services web (SOAP et REST), utilisation de gateway.
Routage des messages
- Filtrage et diffusion de messages.
- Routage statique : content-based router, recipientList.
- Routage dynamique : routingSlip, dynamicRouter.
- Load balancing et failover.
Travaux pratiques
Implémentation de stratégies de routage, mise en œuvre du load balancing.
Suivi d’activités et gestion des erreurs
- Suivi d’activité des routes : Log et Wiretap, la JConsole.
- Erreurs recouvrables ou non, stratégies associées.
- Traitements d’erreurs prédéfinis : DefaultErrorHandler, DeadLetterChannel, LoggingErrorHandler.
- Relivraison après erreur.
- Gestion des exceptions : onException().
Travaux pratiques
Ajout de métriques, historisation de messages, gestion d'erreurs.