MOM > MOM (Message-Oriented Middleware)
Le terme
message-oriented middleware (MOM)
, désigne une famille de logiciels qui permettent l'échange de messages entre les
applications présentes sur un réseau informatique. Les
MOM
font partie des éléments techniques de base des architectures informatiques.
Ils permettent une forme de couplage faible entre applications.
Caractéristiques
Transport de messages
. Les messages comportent deux parties: l'en-tête technique, utilisée par le MOM
et les données qui peuvent être dans n'importe quel format.
Communication asynchrone
. L'application émettrice d'un message et l'application réceptrice du message n'ont pas besoin d'être actives en même temps. La file d'attente reçoit le message de l'application émettrice et le stocke jusqu'à ce que l'application réceptrice vienne lire le message.
Routage
. Les messages peuvent être routés entre MOM
. Par exemple, pour router un message entre deux sites distants disposant chacun d'un MOM
installé localement.
Transformation des données
. La plupart des MOM
permettent de changer le format des données contenues dans les messages pour les adapter à l'application réceptrice. Cette capacité est proche de celle des outils d'EAI (enterprise application integration) dont ils constituent parfois le noyau.
Persistance des messages
. Les messages présents dans les files d'attente peuvent être sauvegardés sur un support physique pour en assurer la conservation en cas de panne.
Fiabilité
. Chaque message envoyé par une application fait l'objet d'un accusé de réception par le MOM
. Chaque application qui consomme un message envoie un accusé de réception au MOM
. Couplé avec la persistance, ce mécanisme permet de garantir qu'aucun message ne sera perdu dans son transfert entre les applications.
Principes de fonctionnement
Les
MOM
ont deux modes de fonctionnement principaux :
Point à point
: une application produit des messages et une application les consomme. Les messages ne sont lus que par un seul consommateur. Une fois qu'un message est lu, il est retiré de la file d'attente.
Publish-subscribe (par abonnement)
: les applications consommatrices des messages s'abonnent à un topic (sujet, 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.
MOM > Kafka
Apache Kafka est un projet à code source ouvert d'agent de messages développé par l'Apache Software Foundation et écrit en Scala .
Le projet vise à fournir un système unifié, en temps réel à latence faible pour la manipulation de flux de données.
Sa conception est fortement influencée par les journaux de transactions.
Kafka est utilisé principalement pour la mise en place de "data pipeline" temps réel mais ce n'est pas sa seule application possible dans le monde de l'entreprise.
|
|
|
Il est aussi de plus en plus utilisé dans les architectures micro services comme système d'échange, dans la supervision temps réel et dans l'
IOT
.
Kafka
apporte sa capacité à ingérer et diffuser une grande quantité de données, couplé à un framework de data stream processing,
il permet le traitement complexe et en temps réel des données.