Comprendre l'architecture logicielle orientée événement
Objectifs de formation
- Dresser la liste des composants d’une architecture logicielle basée sur les événements.
- Expliquer les avantages d'une architecture logicielle orientée événements.
- Présenter des cas d'utilisation des événements de plate-forme.
- Décrire les caractéristiques d'un événement de plate-forme.
Avant de commencer ce module
Nous savons que vous êtes impatient de commencer ! Toutefois, avant de vous lancer dans ce module, vous devez être à l’aise avec certains concepts pour parvenir à le terminer.
Ce module vous apprend comment publier des événements de plate-forme à l’aide d’Apex, de l’API REST, des flux et des processus. Il vous propose également de vous abonner à des événements de plate-forme à l’aide de déclencheurs Apex, de flux, de processus, d’un composant Lightning, d’un outil s’appuyant sur CometD et de l’API Pub/Sub. Afin de pouvoir comprendre ce module, vous devez connaître au moins une de ces technologies. Pour être en mesure de relever le défi pratique de ce module, vous devez disposer de connaissances sur les déclencheurs Apex. Voici une liste de parcours et de modules que vous pouvez suivre pour découvrir Apex.
- Si vous n’avez aucune connaissance sur un langage de programmation orienté objet, suivez ce parcours : parcours Développement des compétences relatives au code Apex
- Si vous avez quelques connaissances sur un langage de programmation orienté objet, consultez ces modules : Concepts Apex de base et base de données, Déclencheurs Apex et Test Apex.
- Pour en savoir plus sur CometD, consultez le guide du développeur de l’API Streaming.
- Pour en savoir plus sur l’API Pub/Sub, consultez la documentation de l’API Pub/Sub.
Comprendre l'architecture logicielle orientée événement
Votre système de commande a-t-il expédié un colis ? Est-ce que votre imprimante a besoin de nouvelles cartouches d'encre ? Quelle que soit la notification que vous souhaitiez recevoir, la plate-forme de messagerie d'entreprise Salesforce assure la livraison de notifications personnalisées sécurisées et évolutives, au sein de Salesforce et issues de sources externes. Avec les événements de plate-forme, vous pouvez surveiller vos systèmes et communiquer les modifications à d'autres systèmes.
Le paradigme d'une communication orientée événement s'articule autour d'un modèle producteur-souscripteur : un émetteur diffuse un message qui est capté par un ou plusieurs récepteurs. C'est le même principe que la transmission par radio : une tour émettrice diffuse un signal radio et les récepteurs le captent s'ils sont sur la bonne fréquence.
Toujours comme dans transmission radio, la communication orientée événement circule de l'émetteur au récepteur. Les événements sont envoyés que les récepteurs les écoutent ou non, et les récepteurs n'accusent pas réception des événements. La communication orientée événement a lieu en temps réel ou, plus précisément, en quasi-temps réel. Les ondes radio voyagent à la vitesse de la lumière, mais les systèmes logiciels et matériels orientés événements présentent généralement une certaine latence.
Dans le module Trailhead Bases de l’API de la plate-forme, nous faisons une analogie avec le radar d’un bateau pirate pour représenter la détection des événements. Cette analogie fonctionne bien pour la diffusion des événements de capture des données de modification, qui sont fondés sur la modification des enregistrements Salesforce. Ce modèle de communication ne nécessite qu'un souscripteur. Mais dans le cas des événements de plate-forme, la communication fait intervenir deux parties : un émetteur et un récepteur. Une architecture orientée événement comprend deux composants.
Composants des systèmes orientés événements
Avant d'aller plus loin, définissons quelques termes.
ÉvénementChangement d’état d’une importance significative dans un processus commercial. Par exemple, la création d’une commande est un événement significatif, car le centre de traitement des commandes s’attend à recevoir une notification avant de traiter une commande.
Message d’événement
Message contenant des données sur l’événement. On appelle aussi cela une notification d'événement. Par exemple, un message d’événement peut être une notification de création de commande contenant des informations à son sujet.
Producteur d’événements
Source de publication d’un message d’événement. Il peut par exemple s’agir d’une application de création de commande.
Canal d’événements
Flux d’événements via lequel un producteur d’événements envoie des messages d’événement et les consommateurs d’événements lisent ces messages. Pour les événements de plate-forme, le canal s’applique à un seul événement de plate-forme ou à un canal personnalisé qui regroupe les messages d’événement de plusieurs événements de plate-forme.
Consommateur d’événement
Abonné à un canal qui reçoit des messages par ce biais. Il peut s'agir d'une application d'exécution de commande à notifier en cas de nouvelle commande.
Le schéma ci-dessous illustre une architecture logicielle basée sur les événements.
La plate-forme de messagerie d'entreprise Salesforce offre tous les avantages d'une architecture logicielle orientée événements. Les événements de plate-forme sont les messages d'événement que vos applications envoient et reçoivent. Ils simplifient le processus consistant à communiquer des changements et à y répondre sans vous demander de rédiger une logique complexe. Les producteurs et les souscripteurs communiquent les uns avec les autres via les événements de plate-forme. Plusieurs souscripteurs peuvent écouter le même événement et accomplir des opérations.
Imaginons qu'une agence de presse appelée Cloud News envoie à ses clients abonnés des événements concernant les dernières informations sur l'état de la circulation et des routes dans une station de haute montagne. Le contenu de ces événements ne se limite pas à la nouvelle elle-même : il inclut également des informations comme son degré d'urgence et la localisation de l'incident. Les abonnés reçoivent ces événements et peuvent déterminer les mesures à prendre, sur la base de l'urgence de la nouvelle.
Tout cela semble parfait, mais quelles sont les applications de ces événements de plate-forme dans le monde réel ? L'utilisation des événements de plate-forme ne se limite naturellement pas aux agences de presse. Voici quelques applications utiles.
Exemples d'utilisation des événements de plate-forme
Examinons quelques scénarios faisant usage des événements de plate-forme. Dans ces scénarios, Salesforce et les systèmes externes communiquent au moyen de messages d'événements de plate-forme. Dans le premier scénario, une application de Salesforce informe les applications externes d'exécution de commande d'un ordre d'expédition de produit. Dans le deuxième scénario, une application produit externe informe Salesforce d'un retour de marchandise. Le dernier scénario explique comment les messages d'événement sont utilisés dans Salesforce à l'aide de déclencheurs.
Plate-forme vers application externe : Exécution d'une commande dans l'application d'un fournisseur
Lorsqu’une opportunité est fermée comme gagnée dans Salesforce, votre entreprise a obtenu un contrat avec un client. Imaginons que vous ayez recours à des fournisseurs pour expédier des produits associés à une opportunité. Chaque fournisseur possède une application externe qui traite les ordres d’expédition pour des produits spécifiques. L'application externe écoute les événements de plate-forme. Lorsqu'une opportunité se ferme, un déclencheur, qui fait partie d'une application de commande de produit dans Salesforce, publie un message d'événement de plate-forme. Chaque application de fournisseur est informée de l’événement. Le fournisseur responsable de l’expédition du produit spécifique crée l’expédition.
Application externe vers application de la plate-forme : Traitement des retours de marchandise dans Salesforce
Imaginons que quelqu'un souhaite retourner un produit acheté à un fournisseur. Un système externe envoie les demandes de retour marchandise à Salesforce afin qu'elles soient traitées. Le système externe publie un événement de plate-forme pour avertir Salesforce du retour marchandise. Un déclencheur Salesforce écoute l'événement, le reçoit et accomplit certaines opérations. Par exemple, le déclencheur peut avertir le représentant commercial du retour et envoyer un e-mail de confirmation au client.
Plate-forme à plate-forme : Réaffectation d'enregistrements de pistes
Quand une piste est affectée dans Salesforce, un déclencheur vérifie les requêtes et les opportunités ouvertes associées au propriétaire de la piste. Selon les enregistrements associés, le déclencheur publie un événement qui est reçu par l'application Salesforce. Selon les informations contenues dans l'événement, l'application réaffecte la piste et crée une publication Chatter.
Dans ce scénario, vous pouvez effectuer les mêmes actions en utilisant Flow Builder. Mais en utilisant les événements de plate-forme, vous bénéficiez du modèle de programmation orienté événement et d'une méthode de programmation standard sur l'ensemble de vos applications.
Caractéristiques des événements de plate-forme
Maintenant que vous savez quand utiliser les événements de plate-forme, plongeons-nous un peu dans leurs composants et leurs caractéristiques.
Vous définissez les données personnalisées contenues dans les événements de plate-forme. Tout comme dans le cas des objets personnalisés, les événements de plate-forme sont définis dans Salesforce. Vous créez une définition d'événement de plate-forme en lui donnant un nom et en ajoutant des champs personnalisés. Voici un exemple de définition de champs personnalisés pour un événement d'actualité de l'agence Cloud News.
Nom/étiquette de champ | Nom d'API du champ | Type de champ |
---|---|---|
Location | Location__c | Longueur de texte : 100 |
Urgent | Urgent__c | Case à cocher |
News Content | News_Content__c | Zone de texte (longue) |
Événements de plate-forme et objets Salesforce
Un événement de plate-forme est un type spécial d’entité Salesforce, similaire à un objet Salesforce à de nombreux égards. Un message d’événement est une instance d’un événement de plate-forme, de la même façon qu’un enregistrement est une instance d’objet Salesforce. Contrairement aux enregistrements, vous ne pouvez pas modifier ni supprimer un message d’événement, ni en afficher dans l’interface utilisateur de Salesforce.
Vous pouvez créer des autorisations de lecture et de création pour les événements de plate-forme. Les autorisations sont accordées aux utilisateurs via des profils ou des ensembles d'autorisations.
Utiliser les événements de plate-forme dans les applications natives et externes
Les événements de plate-forme permettent de faire circuler des messages d'événement au sein de Salesforce, mais aussi vers et depuis des applications externes. Les applications de la plate-forme Salesforce utilisent une méthode Apex pour publier des événements et un déclencheur Apex ou le composant Lightning API Emp pour les consommer. Comme alternative au code, vous pouvez publier des événements avec l’outil déclaratif Flow Builder. Les applications externes publient des événements à l’aide de l’API sObject ou de l’API Pub/Sub, et consomment des événements à l’aide de CometD ou de l’API Pub/Sub. Comme vous pouvez le voir, les possibilités d'utilisation des événements de plate-forme sont nombreuses !
Utilisez les événements de plate-forme aux fins suivantes :
- Pour envoyer et recevoir des données d’événement personnalisé avec un schéma prédéfini
- Pour publier des événements ou y souscrire dans Apex
- Pour plus de souplesse dans la publication et le traitement des événements au sein de la plate-forme Salesforce comme en dehors
Dans la prochaine unité, nous verrons comment définir un événement de plate-forme et publier des événements.
Ressources
- Platform Events Developer Guide
- Bases de l’API de la plate-forme
- Trailhead : Fondamentaux de la capture de modification de données
- Streaming API Developer Guide
- Streaming API Developer Guide : Message Durability
- Apex Developer Guide
- Référence du composant : Composant Web Lightning de l’API Emp
-
Documentation de l’API Pub/Sub