Une nouvelle version d’ActorFx intègre des algorithmes de type MapReduce. ActorFX est un modèle d’objets dynamiquement distribués, non-descriptif et indépendant du langage. Avec cette nouvelle mouture, ActorFx propose un framework et une infrastructure sur laquelle des structures de données hautement disponibles et d’autres entités logiques peuvent être implémentées.
La fonctionnalité MapReduce est illustrée via l’exemple du Word Count. Cette démonstration repose sur trois types d’acteurs : les mappers, les reducers et les aggrégateurs. Les mappers traitent des fichiers de textes bruts, et les convertissent en dictionnaire de données. Ces dictionnaires sont ensuite envoyés aux reducers, qui “lisent le dictionnaire sérialisé et accumulent ces informations dans un dictionnaire temporaire qui trace les nombres totaux de mots pour chaque reducer. Lorsque chaque reducer a reçu les messages “done” de chacun des mappers qui l’alimentaient, le reducer sérialise son dictionnaire temporaire dans un fichier et transmet le nom de ce fichier à l’aggrégateur“, qui s’occupe de produire la sortie finale.
Une fonctionnalité clé de ActorFx 0.5 est d'intégrer la programmabilité inter-acteur. Cela permet aux acteurs de créer et supprimer d’autres acteurs. La version précédente nécessitait un client externe pour aider à gérer le cycle de vie des acteurs.
Comme d’autres librairies récentes de Microsoft, les diagnostiques sont désormais effectués via l’infrastructure Event Tracing for Windows (ETW).
On compte maintenant 4 types d’acteurs prêts à l’emploi, le plus récent étant l’acteur StatelessActorApp.
EmptyActorApp : cet acteur vous permet de lancer des services d’acteur “vide”, qui sont des services d’acteur sans aucun comportement prédéfini. Il est possible d’y rajouter une intelligence en s’appuyant sur les méthodes d’acteurs contenues dans les “assemblies”.
ListActorApp : cet acteur vous permet de lancer un service d'acteurs de listes, avec des opérations sur listes pré-établies.
DictionaryActorApp : cet acteur vous permet de lancer des services d’acteur de type dictionnaire, qui intègrent des opérations de clé-valeur.
StatelessActorApp : en fait mal nommé ; ces services d’acteur peuvent en effet garder un état, mais la sauvegarde de cet état est géré en dehors de l’espace d’exécution des acteurs. Du point de vue de ce moteur d'exécution, les services de cet acteur sont sans état. Cet acteur et ses services associés sont donc un premier pas vers un système d’enregistrement externe à l’espace d’exécution des acteurs.
Plus d’informations sont disponibles dans la documentation d'Actor Runtime Manager.