À retenir
- Découplage : l'émetteur et le récepteur n'ont pas besoin de se connaître ni d'être connectés en même temps.
- Évolutivité : on peut ajouter des centaines d'abonnés sans modifier le code de celui qui publie.
- Asynchronisme : l'expéditeur continue son travail immédiatement après avoir publié, sans attendre que les abonnés aient lu le message.
Le modèle publication–abonnement est un mode de communication où l'expéditeur d'un message (le publiant) ne l'envoie pas directement à un destinataire précis. Au lieu de cela, il diffuse l'information sur un canal thématique, et tous ceux qui se sont manifestés au préalable pour ce thème (les abonnés) reçoivent automatiquement une copie. C'est un peu comme s'abonner à un hashtag sur un réseau social : vous recevez tous les messages liés à ce mot-clé sans connaître personnellement chaque auteur.
Étymologie
Il s'agit de la traduction française du concept anglo-saxon Publish-Subscribe, souvent abrégé sous l'acronyme Pub/Sub. Ce terme met en avant les deux actions fondamentales du système : l'acte de mettre à disposition une information et celui de s'inscrire pour la recevoir.
Exemples d'usage
- Une application boursière : un serveur publie les variations du cours de l'or, et des milliers d'utilisateurs abonnés reçoivent l'alerte instantanément.
- Domotique : un capteur de température publie une mesure, et à la fois l'écran du salon et l'application mobile de l'utilisateur se mettent à jour car ils sont abonnés au flux de ce capteur.
Cas d'usage
On utilise ce modèle dans les architectures de microservices pour faire communiquer des logiciels de manière indépendante, dans les systèmes de notifications en temps réel, ou encore pour traiter de gros volumes de données provenant d'objets connectés (IoT).
Bonnes pratiques
Il est crucial de bien nommer les thématiques (topics) pour éviter la confusion. Il faut aussi prévoir une gestion des pannes : que se passe-t-il si un abonné est hors ligne au moment de la publication ? Utiliser un message broker (courtier de messages) robuste comme Kafka ou RabbitMQ est recommandé pour garantir la distribution.
Synonymes
Antonymes
Conseil
Si vous débutez, voyez ce concept comme une solution pour rendre votre système flexible. Si un composant tombe en panne ou si vous souhaitez en ajouter un nouveau, le reste de votre application continuera de fonctionner normalement tant que le système de messagerie est actif.
Questions fréquentes
Quelle est la différence avec le modèle Point-à-Point ?
En Point-à-Point, un message est envoyé à une file d'attente et un seul destinataire le consomme. En Publication-Abonnement, un seul message peut être reçu par une multitude d'abonnés simultanément.
Qu'est-ce qu'un 'Broker' dans ce contexte ?
C'est le chef d'orchestre (le serveur) qui reçoit les messages des publiants et les redistribue intelligemment aux bons abonnés.