2012-02-21 12 views
5

Me mojé los pies en la Programación Orientada a Actor con un lenguaje llamado SALSA, que permite a los actores moverse de una máquina a otra.Actores migratorios Erlang/Scala de un nodo a otro

Me preguntaba si esto era algo que podría hacerse usando Scala o Erlang, que son dos lenguajes de programación orientados al Actor que tienen mucho más impulso detrás de ellos.

Si cualquiera de estos idiomas admite esta característica, ¿podría indicarme algún material que haga referencia a cómo implementar algo como esto?

Respuesta

0

Como introducción, eche un vistazo a la muy emocionante akka documentation. Definitivamente vale la pena leerlo. Quizás puedas reconsiderar a tus actores en movimiento de una máquina a otra, porque akka lo hace automáticamente por configuración, hasta donde yo sé.

3

Bueno, Erlang no permite (afaik) mover procesos (por lo menos, el PID está vinculado al nodo). Si desea hacer eso para una función en particular, lo que puede hacer es iniciar un proceso en otro nodo (usando la rpc:call y una función de envoltura, por ejemplo) y pasarle el estado.

Por supuesto, eso funciona si mantiene su estado y no en el diccionario de proceso. Y, por supuesto, el PID del nuevo proceso será diferente, pero puede, por ejemplo, dejar el proceso existente colgando y reenviar los mensajes al nuevo.

Cuestiones relacionadas