Jump to section

Une architecture orientée événements, qu'est-ce que c'est ?

Copier l'URL

Une architecture orientée événements est un modèle d'architecture logicielle utilisé pour la conception d'applications. Dans un système orienté événements, la structure centrale de la solution repose sur la capture, la communication, le traitement et la persistance des événements. C'est ce qui différencie ce type de système du modèle traditionnel orienté requêtes.

De nombreuses applications modernes sont conçues selon le modèle de l'architecture orientée événements, comme les frameworks basés sur l'engagement client qui nécessitent l'utilisation de données sur les clients en temps réel. Les applications orientées événements peuvent être créées à l'aide de n'importe quel langage de programmation, car l'architecture orientée événements est une approche et non un langage. Une architecture orientée événements est faiblement couplée. Elle est donc adaptée aux architectures d'applications modernes distribuées.

Une architecture orientée événements est faiblement couplée parce que les producteurs d'événements ignorent quels consommateurs d'événements écoutent un événement et que chaque événement ignore les conséquences de son apparition.

Un événement désigne tout phénomène ou changement d'état significatif au niveau du matériel ou d'un logiciel système. Il ne faut pas confondre un événement et une notification d'événement, c'est-à-dire une notification ou un message envoyé par le système pour signaler à une autre partie du système qu'un événement s'est produit.

Les événements peuvent être causés par des actions internes ou externes. Ils peuvent être provoqués par des utilisateurs (clics de souris ou frappe sur le clavier, par exemple), provenir d'une source externe (un capteur) ou être générés par le système (lors du chargement d'un programme, par exemple).

Ce type d'architecture implique des producteurs et des consommateurs d'événements. Un producteur d'événements détecte ou reconnaît un événement et le représente sous forme de message. Il ignore quels seront les consommateurs et les conséquences de chaque événement. 

Lorsqu'un événement a été détecté, il est transmis du producteur d'événements au consommateur via des canaux d'événement, où une plateforme de traitement les prend en charge de façon asynchrone. Les consommateurs d'événements doivent être informés lorsqu'un événement se produit. Ils peuvent traiter l'événement ou être seulement affectés par ce dernier. 

La plateforme de traitement des événements exécute la réponse adaptée à chaque événement et envoie l'activité en aval aux consommateurs concernés. Cette activité permet de visualiser le résultat d'un événement. 

Apache Kafka est une plateforme distribuée de diffusion de données fréquemment utilisée pour le traitement des événements. Elle peut gérer la publication, le stockage et le traitement de flux d'événements en temps réel, ainsi que l'abonnement à ces événements. Apache Kafka prend en charge de nombreux cas d'utilisation différents pour lesquels un débit élevé et une bonne évolutivité sont essentiels. En réduisant au minimum la nécessité d'intégrations point à point pour le partage des données dans certaines applications, cette plateforme peut réduire la latence à quelques millisecondes seulement. 

Il existe d'autres gestionnaires d'événements de type middleware qui peuvent servir de plateforme de traitement des événements.

Une architecture orientée événements peut être basée sur un modèle de publication/abonnement ou sur un modèle de flux d'événements.

Modèle de publication/abonnement

Ce modèle est une infrastructure de messagerie basée sur des abonnements à des flux d'événements. Lorsqu'il est utilisé, chaque fois qu'un événement se produit ou est publié, il est envoyé aux abonnés qui doivent en être informés.

Modèle de flux d'événements

Avec un modèle de flux d'événements, les événements sont enregistrés dans un journal. Au lieu d'être abonnés à un flux d'événements, les consommateurs d'événements peuvent accéder à n'importe quelle partie du flux et le rejoindre à tout moment. 

Il existe différents types de flux d'événements :

  • Le traitement des flux d'événements s'appuie sur une plateforme de diffusion de données en continu, telle qu'Apache Kafka, pour ingérer des événements et des processus, voire transformer le flux d'événements. Le traitement des flux d'événements peut permettre d'y détecter des tendances importantes.
  • Le traitement des événements simples correspond aux cas où un événement déclenche immédiatement une action au niveau du consommateur d'événements.
  • Le traitement des événements complexes oblige un consommateur d'événements à traiter une série d'événements afin de détecter des schémas récurrents.

Avec une architecture orientée événements, les entreprises peuvent se doter d'un système flexible capable de s'adapter aux changements et prendre des décisions en temps réel. L'évaluation de la situation en temps réel signifie que les décisions métier, qu'elles soient manuelles ou automatisées, peuvent être prises en exploitant toutes les données disponibles qui reflètent l'état actuel de vos systèmes. 

Les événements sont capturés régulièrement à partir de sources d'événements telles que des périphériques IoT, des applications et des réseaux. Les producteurs et les consommateurs d'événements peuvent ainsi partager en temps réel les informations d'état et de réponse. 

Les entreprises peuvent ajouter une architecture orientée événements à leurs systèmes et applications pour améliorer l'évolutivité et la réactivité de leurs applications, ainsi que pour accéder aux données et au contexte qui leur permettent de prendre des décisions éclairées.

Aujourd'hui, les architectures d'applications cloud-native faiblement couplées et les architectures orientées événements, développées selon des méthodes agiles et des principes DevOps, exigent une approche de l'intégration tout aussi évolutive et agile. 

Selon Red Hat, l'intégration agile est une stratégie de connexion des ressources qui allie des technologies d'intégration, des techniques de distribution agile et des plateformes cloud-native dans le but d'accélérer la distribution des logiciels tout en renforçant la sécurité. 

Nous vous proposons des plateformes d'intégration et des logiciels de gestion qui vous permettent de connecter rapidement les technologies et microservices existants dans des environnements de cloud hybride et prennent en charge votre architecture orientée événements grâce à l'intégration agile.

Essayez Kafka gratuitement

Accédez à Red Hat OpenShift Streams for Apache Kafka, un service Kafka entièrement hébergé et géré pour les applications basées sur les flux.

Keep reading

Article

L'intégration, qu'est-ce que c'est ?

Vous souhaitez savoir en quoi consiste l'intégration ? Découvrez ce que c'est, comment l'adopter et pourquoi elle est plus efficace avec des solutions Open Source.

Article

Apache Kafka, qu'est-ce que c'est ?

Apache Kafka est une plateforme distribuée de diffusion de données en continu, capable de publier des flux d'enregistrement en temps réel, de les stocker, de les traiter et d'y souscrire.

Article

Une API, qu'est-ce que c'est ?

Une API, ou interface de programmation d'application, est un ensemble de définitions et de protocoles qui facilite la création et l'intégration de logiciels d'applications.

En savoir plus sur l'intégration

Produits

Red Hat Integration

Ensemble complet de technologies d'intégration et de messagerie.

Red Hat Runtimes

Un ensemble de produits, d'outils et de composants qui facilitent le développement et la maintenance des applications cloud-native.

Red Hat Process Automation

Un ensemble de produits pour automatiser les décisions et processus métiers de manière intelligente. Comprend Red Hat Decision Manager, Red Hat Process Automation Manager et Red Hat Runtimes.

Red Hat Cloud Services

Services gérés et hébergés de plateforme, d'applications et de données qui rationalisent l'expérience dans le cloud hybride, réduisant ainsi les coûts d'exploitation et la complexité liés à la distribution des applications cloud-native.

Ressources

Formations

Cours gratuit

L'intégration agile avec Red Hat : présentation technique

Illustration - mail

Ce type de contenu vous intéresse ?

Inscrivez-vous à notre newsletter Red Hat Shares.