[ESB open source] Introduction à Apache CAMEL (partie 2/6) : Qu’est ce que « Apache Camel » ?

Publié le 28 janvier 2014 par Hakym


Poste réalisé par Mohamed Karim LILI (Ingénieur logiciel confirmé à OXIA)

Apache Camel est une librairie java open source d’intégration (liberal Apache 2 license), c’est un framework léger qui permet à vos applications de réaliser un  routage intelligent, la transformation de messages, et qui représente un protocole de médiation utilisant les EIP (Entreprise Integration Patterns) avec un large panel de composants prêts à l’utilisation et une DSL (Domain Specific Language) hautement expressive et robuste (en 3 types : Java, XML (Spring based), Scala)..


Au cœur du framewok Camel existe un moteur de routage, ou plus exactement un Routing engine builder. Il vous permet de définir vos propres règles de routage, de décider à partir de quelle source accepter les messages d’entrée, et de déterminer comment les traiter et enfin d’envoyer ces messages transformés vers d’autres destinations. Camel utilise un langage d’intégration qui vous permet de définir des règles de routage complexes qui vont jusqu’au processus métier. Un des principes fondamentaux de Camel est qu’il n’exige aucun format spécifique de données à intégrer, ce qui vous laisse à vous, développeur, une opportunité d’intégrer n’importe quel type de système, sans avoir besoin de convertir vos données en un format « canonique ». Nous devons aussi préciser que Camel n’est pas un ESB (Entreprise Service Bus), bien que certains le décrivent comme un ESB léger pour son support au routage, la transformation et le monitoring, ainsi que l’orchestration. Camel n’a pas de conteneur ou un message-bus fiable, mais il peut être déployé dans un ESB, comme Open-ESB ou ServiceMix. Pour cette raison, on préfère appeler Camel un « framework d’intégration » plutôt qu’un ESB.
Pourquoi utiliser Apache Camel ?
Camel introduit de nouvelles idées dans le monde de l’intégration, c’est pour cela que les auteurs de Camel ont décidé de le créer au lieu d’utiliser un framework existant. Parmi les concepts clés de Camel :
  • Routing and mediation engine
  • Enterprise integration patterns (EIPs)
  • Domain-specific language (DSL)
  • Extensive component library
  • Payload-agnostic router
  • Modular and pluggable architecture
  • POJO model
  • Easy configuration
  • Automatic type converters
  • Lightweight core
  • Test kit
  • Vibrant community

Sommaire

Bibliographie, Netographie et lien utiles
Camel in Action, Clause Ibsen et Jonathan Anstey, Editions MANNING http://camel.apache.org/ http://java.dzone.com/articles/open-source-integration-apache http://refcardz.dzone.com/refcardz/essential-camel-components#refcard-download-social-buttons-display