Modèle d'acteur

Un article de Wikipédia, l'encyclopédie libre.

En informatique, le modèle d'acteur est un modèle mathématique qui considère des acteurs comme les seules fonctions primitives nécessaires pour la programmation concurrente. Les acteurs communiquent par échange de messages. En réponse à un message, un acteur peut effectuer un traitement local, créer d'autres acteurs, ou envoyer d'autres messages. L'article de référence date de 1973[1].

Ce modèle est utilisé aussi bien en informatique théorique pour formaliser les interactions concurrentes[note 1], qu’en pratique comme base de réalisation de langages de programmation[note 2] ou d’architectures concurrentes[note 3].

Caractéristiques[modifier | modifier le code]

Le modèle considère que tout est acteur[note 4]. Un acteur est une entité capable de calculer, qui, en réponse à un message reçu, peut parallèlement :

  • envoyer un nombre fini de messages à d’autres acteurs ;
  • créer un nombre fini de nouveaux acteurs ;
  • spécifier le comportement à avoir lors de la prochaine réception de messages.

L’exécution des tâches ci-dessus n’est pas ordonnée, elles peuvent être parallélisées.

L’avancée fondamentale du modèle d’acteur est qu’il découple l’émetteur du message du message lui-même, permettant donc l’asynchronisme des communications et l’introduction de structures de contrôle dédiées à l’échange de messages.

Les destinataires des messages sont identifiés à l’aide d’adresses. Un acteur doit connaître l’adresse de l’acteur à qui il veut envoyer un message. Les adresses des acteurs créés sont connues de l’acteur parent. Les adresses peuvent être échangées par message.

Du fait de l’asynchronisme des communications, de la création dynamique d’acteurs et de l’échange des adresses des acteurs, le modèle est intrinsèquement asynchrone.

Bibliographie[modifier | modifier le code]

(en) Carl Hewitt, Peter Bishop et Richard Steiger, « A universal modular ACTOR formalism for artificial intelligence », IJCAI,‎ (résumé, lire en ligne)

Notes et références[modifier | modifier le code]

Notes[modifier | modifier le code]

  1. On peut citer le π-calcul qui s’inspire du modèle d’Hewitt.
  2. Erlang est le plus connu.
  3. Comme le Cloud Computing, où les acteurs sont les cœurs de calcul.
  4. Comme la programmation orientée objet considère que tout est objet.

Références[modifier | modifier le code]