Le modèle d’acteurs est un modèle de programmation concurrente, dans lequel la charge de travail est répartie entre des entités s’exécutant en parallèle, les acteurs.
Les acteurs ?
les acteurs sont des entités isolées donc, n'ont pas d'état partagé, l'information ne peut circuler que sous forme de messages.
Les interactions se font au travers des messages reçus, l'acteur, peut traiter la donnée reçue (calcul ou transformation de la donnée), émettre un message vers d'autres acteurs ou même créer un nouvel acteur dont il sera responsable, une sorte d'acteur fils .
Akka, l'implémentation du modèle d'acteurs
Akka est un framework pour la construction de systèmes distribués basés sur les acteurs.
Ce dernier est implémenté dans plusieurs langage tel que JAVA, SCALA , dans lequel il jouit d'une grande tolérance au panne avec pour philosophie "let it crash", car grâce à son système de supervision ( acteur fils sous la tutelle d'un acteur père) , Akka permet de gérer la mort prématurée d'acteurs, ce qui rend le système auto-réparant, de plus les acteurs sont purement asynchrones et peuvent être relocalisés de manière transparente (même sur d'autre JVM).
Gestion des erreurs ...
La gestion des erreurs joue un rôle important dans la forte tolérance au panne de ce modèle, comme chaque acteur est le superviseur de ses acteurs fils, il est notifié par un message système des erreurs qui se surviennent chez ses fils, l'ensemble des réactions à ces messages d'erreurs s’englobent dans une stratégie de supervision au seins de l'acteur qui peut l'amener à réagir de manière différente comme; en essayant de redémarrer un fils à l'arrêt ou bien même escaladant l'erreur à sa hiérarchie.
Ce qu'il faut avoir en tête
On peut se représenter les acteurs comme un ensemble de personnes auxquelles on va déléguer des tâches qu'ils vont traités et comme dans une entreprise chaque acteurs et sous la tutelle d'un autre , à qui il doit rendre des compte (remontés des erreurs) , et aussi il doit pouvoir communiquer pour échanger de l'information avec les autres entités (échange de message) ...
Ressources
Support de présentation PDF