Expertise Apache ActiveMQ

ActiveMQ est un middleware orienté message (message-oriented middleware, ou « MOM »), permettant de mettre en œuvre des échanges de messages entre applications. Développé en Java, leader sur le marché Open Source, il est distribué par la Fondation Apache.

Dans un système d’information, beaucoup de systèmes hétérogènes qui ne se comprennent pas nativement peuvent avoir besoin de communiquer, et il peut s’avérer indispensable de relier ces applications.

Les entreprises, les institutions, changent continuellement, comme les technologies qu’elles utilisent. En conséquence, leurs systèmes logiciels doivent être capables de s’adapter à ces changements. En effet, il est lourd, pour une entreprise, de recréer ses systèmes d’information à chaque évolution d’un de ses services, ou changement d’organisation en interne … .

C’est à ce moment crucial qu’il faut intégrer de nouveaux composants, ou adapter les composants existants, aussi efficacement que possible. Le moyen le plus simple d’intégrer des composants hétérogènes n’est pas de les recréer en tant qu’éléments homogènes mais de leur fournir une couche leur permettant de communiquer, malgré leurs différences. Cette couche, appelée middleware, permet aux composants logiciels, qui ont été développés indépendamment, et qui s’exécutent sur différentes plates-formes en réseau, d’interagir entre eux.

Terminologie

  • Qu’est-ce qu’un middleware ?

Un middleware (intergiciel) est un logiciel tiers qui crée un réseau d’échange d’informations entre différentes applications informatiques.  Une même technique d’échange d’informations dans toutes les applications impliquées permet leur communication, à l’aide de briques logicielles, quels que soient les ordinateurs, caractéristiques matérielles ou logicielles, systèmes d’exploitation ou protocoles réseau impliqués.

  • Que sont les messages ?

Les messages sont les entités utilisées par les systèmes pour communiquer les uns avec les autres. Les messages circulent dans une direction d’un expéditeur à un récepteur. Identifiés de manière unique, avec un identifiant, ils ont un corps, et les en-têtes et pièces jointes sont facultatives. Les messages disposent de différentes propriétés, de type JMSTimestamp, JMSExpiration, JMSXDeliveryCount … .

  • Qu’est-ce qu’un message broker ?

Un broker de messages est un hub logique qui copie et renvoie des messages vers une ou plusieurs destinations. Il constitue une grande valeur ajoutée entre les sources d’information et les consommateurs d’informations, et est complémentaire d’une architecture orientée services (SOA). Comme en SOA, un broker est une abstraction au niveau de la conception qui peut être mise en œuvre en utilisant des composants logiciels. Le broker de messagerie peut fonctionner en ORB (Object Request Broker), ou OTM (Object Transaction Monitor).

Exemples d’utilisation :

– Routage des messages vers une ou plusieurs destinations ;

– Transformation des messages ;

– Routage de messages en publish-subscribe (ou pub/sub, faisant référence à un style architectural utilisé pour la communication asynchrone entre différents processus, objets ou autres agents) ;

– Agrégation des messages par décomposition préalable en plusieurs messages, envoi, puis recomposition des réponses en un seul message ;

– Récupération de données sur des webservices … .

active-mq-message-broker

Utiliser un message broker central qui peut: recevoir des messages de plusieurs destinations, déterminer la destination correcte et acheminer les message vers le bon canal, tout en implémentant des EIP, est une façon de maintenir un contrôle central sur le flux des messages.

  • Qu’est-ce qu’un message oriented middleware ?

Les MOM constituent une famille de logiciels qui permettent l’échange desdits messages entre les applications présentes sur un réseau informatique. Ils font partie des éléments techniques de base des architectures informatiques, et permettent de coupler les applications. Deux types de fonctionnement majeurs se distinguent :

Point à point : une application produit des messages et une application les lit. Les messages ne sont lus que par une seule application consommatrice. Une fois qu’un message est lu, il est retiré de la file d’attente.

Publish-subscribe : les applications consommatrices des messages s’abonnent à un « sujet » (topic) ou à une catégorie de messages. Les messages envoyés à ce topic restent dans la file d’attente jusqu’à ce que toutes les applications abonnées aient lu le message.

D’autres middleware orientés messages open source existent, comme Kafka, JBoss Messaging, RabbitMQ … .

Caractéristiques

Apache ActiveMQ est le plus populaire et le plus puissant Message Broker du marché open source. Il est reconnu pour son traitement des messages, qui est son plus célèbre atout, après sa rapidité, son extensibilité, sa fiabilité, sa sécurité et sa compatibilité avec de nombreux clients et protocoles. À l’aide du projet Camel qui lui est intégré, il a la possibilité de traiter le messaging d’entreprise selon les modèles d’intégration (EIP). En effet, ActiveMQ est fourni avec un ensemble d’Enterprise Integration Patterns faciles à utiliser.

Egalement disponible pour Linux, ActiveMQ respecte la tradition de la communauté et s’appuie sur d’autres projets de la Fondation Apache pour vivre, comme Camel, ou Jetty (Serveur d’application intégré). ActiveMQ est lui aussi utilisé par d’autres projets majeurs d’Apache, comme ServiceMix ou Geronimo … .

ActiveMQ se décline sous un autre projet, nommé « ActiveMQ Apollo », qui se veut d’être un broker encore plus rapide, plus fiable et plus facile à gérer, utilisant une architecture radicalement différente de threading et d’envoi de message. Multiprotocole, il prend en charge STOMP, AMQP, MQTT, Openwire, SSL et WebSockets, à l’instar d’ActiveMQ.

Une fois installé, ActiveMQ peut être utilisé dans des routes de médiation Talend, par exemple, ou dans les services proposés dans JBoss de RedHat.

Eléments clés

Conformité et compatibilité interlangages: Cette fonctionnalité est importante, car les applications peuvent être écrites dans différents langages comme C / C ++, Python, Ruby, Java, etc. La compatibilité multilangage permet une communication entre des applications très diverses, et permet une intégration transparente. C’est probablement la caractéristique la plus importante pour un middleware orienté messages ;

Prise en charge AJAX et REST: Les webservices et les applications peuvent facilement communiquer, grâce aux standards AJAX et REST (dialogue navigateur <-> serveur) ;

Compatibilité avec divers protocoles de transport: Les messages peuvent être transférés efficacement grâce à une grande variété de protocoles, comme TCP (Transmission Control Protocol), UDP (User Datagram Protocol) et SSL (Secure Socket Layer), par exemple ;

Prise en charge de la persistance: La persistance est la capacité d’une application à préserver son état. En d’autres termes, c’est la capacité qu’un programme puisse se terminer sans que ses données et son état d’exécution ne soient perdus. Dans le contexte d’ActiveMQ, la persistance est principalement utilisée pour des applications liées à la base de données ;

Calcul haute performance et haute disponibilité: Trois niveaux de disponibilité sont possibles (Très Haute Disponibilité/Haute disponibilité/Full Disaster Recovery). ActiveMQ s’assure qu’aucune forme de défaillance n’affecte l’utilisateur final. Pour une application, si une instance échoue, une autre prend le relais, par exemple ;

Sécurité des échanges: ActiveMQ fournit deux couches de sécurité. une couche SSL/TLS permettant d’authentifier le broker auprès des clients, crypter les messages et garantir leur intégrité, et une couche JAAS qui peut authentifier les clients auprès du broker.

Notre accompagnement

Nous pouvons vous accompagner dans le processus de mise en place des communications entre vos différentes applications, le routage de vos messages ou les patterns qui permettent de normaliser les échanges de messages dans un système asynchrone. 

Nous sommes en mesure de :

  • Expertiser la qualité et les performances de vos projets ;
  • Réaliser vos routes Camel et paramétrer ActiveMQ dans vos environnements ;
  • Vous proposer les meilleures possibilités en termes de choix d’architecture … .

Apache, Apache Karaf™, Apache Camel™, Apache ActiveMQ™, Apache Service Mix™, Apache CXF™ the Apache™ feather logo, and the Apache Karaf™ project logo are trademarks of The Apache Software Foundation™.

L'engagement IDFOR

IDFOR est née de la volonté de simplifier la transition numérique de nos clients, améliorer et simplifier la transmission de données, en nous appuyant sur un savoir-faire technique de haut niveau.

Esprit d'équipe

Notre équipe est composée de chefs de projets expérimentés. Compétents et soudés, ils sont au service de vos projets; une composante importante de la qualification des projets.

Approche agile

Nous gérons vos projets dans une approche agile et interactive, avec vos équipes, dans nos locaux et menons des réunions et points d'avancement réguliers avec vos responsables projets.

Méthodologie

Nous mettons en oeuvre des méthodologies professionnelles pour la réussite de vos projets.
Notre démarche: Analyser - Concevoir - Développer - Qualifier - Délivrer.