Aktores Implementando Akka Actor Model en C# (1) El Proyecto

Llegó la hora de escribir sobre el proyecto:


https://github.com/ajlopez/Aktores


Estoy implementando los primeros pasos hacia un modelo de actores, con pasaje de mensajes, tomando ideas de Akka. Ya había trabajado algo en Node.js, y en C# directo, teniendo actores que se mandan mensajes entre sí, pero esta vez quiero seguir el camino de Akka, paso a paso, como por ejemplo, tener nombres de actores, en un árbol, sistema de actores distribuidos, y la supervisión de agentes.


El estado del proyecto a hoy:



Veamos la implementación actual de actores:



Primero, un Actor es una clase abstracta, a implementar en cada caso por nosotros en cada sistema de actores que armemos. El resto del sistema no conversa con un actor directamente, sino a través de un ActorRef. Por ejemplo, para enviar un mensaje, hay un método Tell en el ActorRef. Internamente, tampoco lo envía a procesar al actor directamente, sino que cada actor tiene una Mailbox, y es a ese componente al que el ActorRef envia el mensaje. El objeto Actor es un objeto pasivo: no consulta la Mailbox directamente, sino que hay hilos de ejecución que van a ir consultando las tareas pendientes a hacer (como enviar un mensaje X a un actor A). Y el sistema internamente se asegura que al actor A sólo llegue a procesar UN mensaje por vez, para que el programador del actor no tenga que preocuparse por concurrencia desde múltiples hilos. Vean que, notablemente, el Actor no tiene una referencia a Mailbox. Pero eso es tema para próximos posts.


Nos leemos!


Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 1389, 15035, 18049, 18471, 5374. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>