mardi 28 janvier 2014

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


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

0 commentaires :

Enregistrer un commentaire

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.