fond

Qu'est-ce qu'Apache CAMEL ?

Camel est un framework d'intégration pour entreprise permettant le routage de message. Il permet de créer un moteur de routage performant.
decoration

Apache Camel, c’est quoi ?

Apache Camel est un framework d'intégration open-source.

À quoi sert Apache Camel ?

Son but est de faciliter la communication entre différentes applications sans avoir à se préoccuper des protocoles d’échanges. C’est ce qu’on appelle un constructeur de moteurs de routage. Il permet d’exprimer simplement comment router des messages à partir d’une source vers une ou plusieurs destinations.

Le lien entre Apache Camel et les ESB

Malgré cela, il est important de noter qu’Apache Camel ne constitue cependant pas un ESB à lui tout seul. En effet, un ESB (Entreprise Service Bus) est une infrastructure logicielle qui facilite l'intégration et la communication entre différentes applications et services ; et qui dispose de conteneurs ou de systèmes de bus de messagerie par exemple. Or, ce n’est pas le cas d’Apache Camel !

Camel est néanmoins utilisé comme un des composants principaux par Apache Servicemix, qui constitue un ESB open source basé sur JavaLangage de développement très populaire !

à quoi sert un ESB ?

Les avantages d’Apache Camel

La force d'Apache Camel réside dans sa simplicité et sa performance. Son approche avec JAVA en natif, lui permet d'être robuste et facilement intégrable dans n'importe quel projet. Camel est une technologie mature, donc très bien documentée avec une communauté importante.

Apache Camel se montre particulièrement avantageux lorsqu’un système d'information est confronté à un besoin croissant d'interconnexion entre les applications dans des environnements complexes.

Pour ce faire, les systèmes comme Apache Camel possèdent différents connecteurs, simplifiant l’interconnexion des applications. Un connecteur est un module logiciel qui permet à Camel d'interagir avec différents systèmes externes.

Et ça tombe bien, car Apache Camel en possède plus de 200.

Camel propose également un panel développé de possibilités tels que :

  • Du Routage et de la médiation
  • Des EIP (Entreprise Integration patterns)
  • Un Domain-specific language (DSL)
  • Des librairies extensibles
  • Une architecture modulaire
  • Une configuration facile
  • Un poids très léger
  • Une approche POJO
  • Une conversion automatique de type
  • Une capacité à tester élevée

En plus de ça, de nombreux starteurs comme celui de Spring Boot permettent de le mettre en place rapidement, avec des microservices qui s'intègrent facilement avec Apache ServiceMix. Les starters Serverless quant à eux, permettent aux développeurs de créer et de déployer des fonctions ServerlessLe terme serverless se dit d'un traitement qui ne nécessite pas de serveur (à comprendre ici : dont on ne s'occupe pas du serveur) directement sur Apache ServiceMix, en utilisant des technologies telles que Apache OpenWhisk ou Apache Camel K.

Et pour couronner le tout Apache Camel est open source et gratuit.

Inconvénients d’Apache Camel et retour d'expérience

De notre expérience, on peut noter quelques inconvénients d'Apache Camel qui sont souvent liés directement à la manière dont on doit l'utiliser.

Comme évoqué précédemment, Camel tourne sur Java natif, cependant, son utilisation est cloisonnée à l’emploi d’opérateurs Camel. Se plonger pour la première fois dans un projet Apache Camel, c’est faire face à une syntaxe qui peut paraître relativement exotique et par conséquent, il peut y avoir un certain temps d’adaptation.

De ce cloisonnage, émerge une autre problématique. Il peut sembler tentant de vouloir utiliser Apache Camel pour remplacer une APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. classique et l’utiliser pour créer l’entièreté du backend d’une application. Cependant, bien que ce soit techniquement possible, il faut garder en tête l’objectif initial d’Apache Camel, car ses opérateurs ne sont pas adaptés pour effectuer toute une logique métier.

Enfin, le dernier aspect négatif à nos yeux est la compréhension du flux d'exécution du code. Cette problématique n’est néanmoins pas spécifique uniquement à Apache Camel. Lorsque l’on travaille sur un système dont le fonctionnement se rapproche de celui d’un ESB, contrairement à une API classique où le flux est généralement plus linéaire et facile à suivre, on est souvent amené à mettre en œuvre des routes et des patterns d'intégration complexes, ce qui peut rendre plus difficile le fait de comprendre quand et comment chaque partie du code est exécutée.

L'expertise Apache Camel AXOPEN

AXOPEN réalise de nombreux projets d'intégration de données basés sur Apache CAMEL, souvent intégré dans le serveur Apache Service Mix. Aussi, forts de nos diverses expériences, nous pouvons vous accompagner sur plusieurs points :

  • Conseil et aide dans la mise en place d'Apache Camel
  • Développement de routes Apache Camel
  • Montée de version Apache Camel

Pour plus d'information sur Apache Camel, n’hésitez pas à nous contacter.

Notre vidéo en lien

Nos Références clients