Une petite introduction à la Connectivity Factory

La Connectivity Factory™ est un ESB qui s’appuie sur des briques d’Apache:

  • Karaf : Le serveur conteneur OSGI
  • ActiveMQ : Le serveur de messageries et de patterns d’intégration via l’api Camel

Figure 1 – Une petite introduction à la Connectivity Factory™


Nous avons connecté Calypso à ActivePivot via la Connectivity Factory™. Pour cela, nous avons créé la route Camel permettant le transfert de messages entre Calypso et ActivePivot.
 La route a été bundlée pour être intégrée dans le conteneur OSGI de la Connectivity Factory™.

Le Camel en bref

Camel est un Framework apparu en 2009. Il permet de transformer des données, de les transférer via de multiples protocoles (ftp, mail, irc, jms). Camel définit des routes afin de transformer/transférer des données entre protocoles :

Figure 2 – Un simple transfert de fichiers par camel

La classe abstraite org.apache.camel.builder.RouteBuilder est ici étendue pour créer la route de C:/Temp à C:/Temp/target.

Les routes Camel peuvent aussi être implémentées au travers de Spring, comme par exemple :

Figure 3 – Un simple transfert de fichiers par Camel, implémenté dans Spring

Quelques mots clés, comme « choice » permettent de paramétrer la route et les traitements en fonction du message (par exemple si le message est un fichier xml ou un fichier csv).

L’Osgi en bref

Osgi est un standard permettant de modulariser une application à travers des bundles. Un bundle est un jar (archive java) auquel on ajoute un manifeste permettant de :

  • Donner un nom au bundle
  • Spécifier les classes dont le bundle a besoin
  • Spécifier les classes que le bundle peut fournir à d’autres bundles

Un bundle a aussi un numéro de version. Ainsi 2 packages com.example peuvent coexister au sein d’un conteneur osgi si leurs versions sont différentes.

Figure 4 – Un exemple de manifeste de bundle pour osgi

Le bundle a la notion de cycle de vie : les bundles peuvent être déployés, démarrés ou arrêtés au sein d’un conteneur osgi. Il existe donc un système d’administration des bundles dans le conteneur osgi. Par exemple dans la Connectivity Factory™, des commandes batch permettent de lister, installer, démarrer, arrêter les bundles.

Figure 5 – Liste des bundles installés dans un osgi conteneur

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *