Message actif - Active message

Un message actif (en informatique ) est un objet de messagerie capable d'effectuer un traitement seul. Il s'agit d'un protocole de messagerie léger utilisé pour optimiser les communications réseau en mettant l'accent sur la réduction de la latence en supprimant les frais généraux logiciels associés à la mise en mémoire tampon et en fournissant aux applications un accès direct au niveau de l'utilisateur au matériel réseau. Cela contraste avec les systèmes de messagerie informatiques traditionnels dans lesquels les messages sont des entités passives sans puissance de traitement.

Programmation de la mémoire distribuée

Les messages actifs sont une primitive de communication permettant d'exploiter pleinement les performances et la flexibilité des interconnexions informatiques modernes. Ils sont souvent classés comme l'un des trois principaux types de programmation à mémoire distribuée, les deux autres étant le parallèle de données et le passage de messages . L'opinion est que les messages actifs sont en fait un mécanisme de niveau inférieur qui peut être utilisé pour implémenter efficacement les données en parallèle ou le passage de messages.

L'idée de base est que chaque message a un en-tête contenant l'adresse ou l'index d'un gestionnaire d'espace utilisateur à exécuter à l'arrivée du message, le contenu du message étant passé en argument au gestionnaire. Les premiers systèmes de messages actifs transmettaient l'adresse de code à distance réelle sur le réseau, mais cette approche exigeait que l'initiateur connaisse l'adresse de la fonction de gestionnaire à distance lors de la composition d'un message, ce qui peut être assez limitatif même dans le contexte d'un modèle de programmation SPMD (et repose généralement sur l'uniformité de l'espace d'adressage qui est absente de nombreux systèmes modernes). Les nouvelles interfaces de message actives exigent que le client enregistre une table avec le logiciel au moment de l'initialisation qui mappe un index entier à l'adresse locale d'une fonction de gestionnaire; dans ces systèmes, l'expéditeur d'un message actif fournit un index dans la table du gestionnaire distant, et à l'arrivée du message actif, la table est utilisée pour mapper cet index à l'adresse du gestionnaire qui est appelée pour traiter le message.

D'autres variantes de messages actifs portent le code réel lui-même, pas un pointeur vers le code. Le message contient généralement des données. A l'arrivée à l'extrémité de réception, plus de données sont acquises, et le calcul dans le message actif est effectué, en utilisant les données dans le message ainsi que les données dans le nœud de réception. Cette forme de messagerie active n'est pas limitée à SPMD , bien que l'expéditeur et le destinataire doivent partager certaines notions quant aux données accessibles au nœud de réception.

Intégration, utilisation des micro-services, orchestration, architecture ESB

Une implémentation de niveau supérieur pour les messages actifs est également appelée Communication Swarm dans le projet SwarmESB. Le modèle de base des messages actifs est étendu avec de nouveaux concepts et Java Script est utilisé pour exprimer le code des messages actifs.

Les références

  1. ^ Thorsten von Eicken, David E. Culler, Seth Copen Goldstein, Klaus Erik Schauser, " Messages actifs: un mécanisme pour la communication et le calcul intégrés ", Actes du 19e symposium international annuel sur l'architecture informatique (ISCA'92), mai 1992, ACM.
  2. ^ Alan M. Mainwaring et David E. Culler, "Interface de programmation d'applications de message actif et organisation du sous-système de communication" (Spécification AM-2), Département EECS, Université de Californie, Rapport technique de Berkeley No. UCB / CSD-96-918 , octobre 1996.
  3. ^ "La sémantique opérationnelle d'un système de message actif" , ACM Portal. Consulté le 20 juillet 2009
  4. ^ Dan Bonachea et Paul H. Hargrove. "Spécification GASNet, v1.8.1" . Lawrence Berkeley National Laboratory Technical Report LBNL-2001064 , août 2017.

Sources et liens externes