Table des matières

T3.GT07 Intégration de données

Retour à la liste des groupes de travail
Retour à la thématique
Retour au programme
Retour à la liste des thématiques

DATE / LIEU:

agenda

ANIMATEURS:

FORMAT:

PAD COLLABORATIF:

https://etherpad.in2p3.fr/p/JDEV2015.T3.GT07

Vous pouvez vous servir de ce pad collaboratif pour y inscrire vos commentaires, un résumé / restitution en sera fait qui sera inclus dans le compte rendu du GT.

Thèmes ou Discussion

Nos applications sont amenées à traiter de plus en plus de données provenant de sources différentes, avec des formats et des protocoles différents. Pour pouvoir traiter ces données, différentes solutions existent telles que des ESB ou des ETL. Nous parlerons du projet Apache Camel, qui permet de faciliter les échanges de données.

Support de présentation

jdev2015_t3_stephanederaco_apachecamel_20150702.pdf

Contenu de l'etherpad

JDEV 2015 Groupe de travail T3.GT07 (http://devlog.cnrs.fr/jdev2015/t3.gt07) stephane.deraco@dsi.cnrs.fr

Personnes présentes :

Livre Camel In Action : http://www.manning.com/ibsen/

Transporter les données d'un point A à un point B, avec éventuellement des transformations. Camel n'est pas un ESB, il s'occupe du routage de données. Par contre, la plupart des ESB OpenSource utilisent Apache Camel en tant que moteur de routage de données.

Exemple “Hello World” :

  
  from("file:///data/in").to("file:///data/out")

Ce qu'il y a dans “from” et “to” sont des endpoints. Ils ont la syntaxe d'une URI :

  1. scheme : “file://” (correspond au composant)
  2. ressource : /data/in
  3. paramètres : ?p1=v1&p2=v2&…

Plus de 120 composants différents : http://camel.apache.org/components.html Assez facile d'écrire son propre composant. Il est toujours possible d'injecter des données récupérées par ailleurs dans une route Camel.

Possible d'écrire les routes dans différents langages. Les deux principaux : DSL Java et XML. Possible aussi en Scala, Groovy, …

Comme les Design Pattern pour la programmation, il existe les “Integration Patterns” pour le routage de données : http://www.enterpriseintegrationpatterns.com/ → Concepts et vocabulaire partagé

Un échange est ce qui transite le long de la route. Essentiellement, un échange contient un message. Le message contient un Body et des Headers.

Camel sait automatiquement transformer le Body d'un type vers un autre (Zip, JSON, XML, …)

Projet pérenne : principaux développeurs : RedHat. Utilisé au LHC pour les contrôles des instruments.