Apache Camel - Présentation

Camel est une boîte noire qui reçoit les messages d'un point final et les envoie à un autre. Dans la boîte noire, les messages peuvent être traités ou simplement redirigés.

Alors pourquoi avoir un cadre pour cela? Dans les situations pratiques, comme le montre l'étude de cas d'introduction, il peut y avoir de nombreux expéditeurs et de nombreux récepteurs, chacun suivant son propre protocole tel que ftp, http et jms. Le système peut exiger de nombreuses règles complexes telles que le message de l'expéditeur A doit être livré uniquement à B & C. Dans certaines situations, vous devrez peut-être traduire le message dans un autre format que le destinataire attend. Cette traduction peut être soumise à certaines conditions en fonction du contenu du message. Donc, essentiellement, vous devrez peut-être traduire entre les protocoles, coller les composants ensemble, définir des règles de routage et fournir un filtrage basé sur le contenu des messages. Ceci est illustré dans la figure suivante -

Pour répondre aux exigences ci-dessus et concevoir une architecture logicielle appropriée pour de nombreuses situations de ce type, les modèles d'intégration d'entreprise ( EIP ) ont été documentés par Gregor Hohpe et Bobby Woolf en 2003. Apache Camel fournit la mise en œuvre de ces modèles et le but de ce tutoriel est d'enseigner vous comment utiliser Camel dans des situations comme celle décrite dans l'introduction.

Apache Camel est un framework open source. Il s'agit d'un middleware orienté message qui fournit un moteur de routage et de médiation basé sur des règles. Vous pouvez définir des règles telles que s'il s'agit d'une commande «lait», la rediriger vers un vendeur de lait et s'il s'agit d'une commande «huile», la rediriger vers un vendeur d'huile, etc. En utilisant Camel, vous pourrez implémenter ces règles et effectuer le routage dans un code Java familier. Cela signifie que vous pouvez utiliser votre IDE Java familier pour définir ces règles dans un environnement de type sécurisé. Nous n'avons pas besoin d'utiliser des fichiers de configuration XML, qui ont généralement tendance à être volumineux. Camel prend en charge la configuration XML via Spring Framework, si vous préférez utiliser XML pour configurer les règles. Vous pouvez même utiliser des fichiers de configuration XML Blueprint et même un DSL Scala, si vous êtes un amoureux de Scala. Cela signifie également que vous pouvez utiliser votre Java préféré, votre IDE Scala ou même un simple éditeur XML pour configurer les règles.

L'entrée de ce moteur peut être un fichier texte délimité par des virgules, un POJO (Plain Old Java Object), XML sont l'un des nombreux autres formats pris en charge par Camel. De même, la sortie du moteur peut être redirigée vers un fichier, une file d'attente de messages ou même votre écran de contrôle pour vous permettre de visualiser les commandes envoyées aux fournisseurs respectifs. Ceux-ci sont appelés les points de terminaison et Camel prend en charge le modèle EIP de point de terminaison de message . Les points de terminaison Camel sont abordés plus loin dans le chapitre Points de terminaison.

Camel est généralement utilisé avec Apache ServiceMix , Apache ActiveMQ et Apache CXF pour implémenter des architectures orientées services.