Auto-recuperación de sistemas distribuidos inspirada en la naturaleza
Publicado: el 16 abril, 2018 por AdminKonrad / Konrad Lorenz
Si se entiende un sistema distribuido es una colección de elementos (ej. Robots, máquinas virtuales, procesos, agentes, etc…) los cuales se comunican utilizando una red y cooperan para realizar una tarea específica (Raynal, 2013) y por auto-recuperación se entiende que un sistema detecte por sí mismo que componentes están fallando y reemplace, repare o elimine componentes sin interrumpir dicha tarea (Lalanda, Mccann, & Diaconescu, 2013); a uno se le podría venir a la mente auto-recuperación de sistemas distribuidos la imagen de la saga de Terminator (Figura 1.) de un robot o un conjunto de robots con la capacidad de repararse a sí mismo.
Figura 1. Terminator
Parte de la investigación que realizo busca auto-recuperar sistemas distribuidos y en mi caso la realidad se aleja un poco del icónico Terminator. En mi caso, tomando como fuente de inspiración la naturaleza, es posible apreciar por ejemplo como los enjambres de insectos son capaces de sobrevivir a adversidades como un todo y realizar tareas de búsqueda de alimento aunque algunos insectos fallen. Esto se conoce como un ejemplo de auto-organización (Bicocchi & Zambonelli, 2007) y es allí donde mediante la observación de dichos fenómenos es posible analizar y sintetizar las reglas principales que hacen esto posible.
Adicionalmente en mi caso, lo que he hecho hasta ahora es diseñar una simulación de sistema distribuido (Rodríguez, Gómez, & Diaconescu, 2017b). Simulación, en el sentido de ser un programa que permite definir diferentes ambientes de sistema distribuido como agentes móviles (ej. insectos) explorando un espacio que puede ser bidimensional o que incluso puede verse como una red de computadores.
Figura 2. Sistema distribuido que forma una red de tipo Bosque de Estrellas (Forest Hub & Spoke)
Para mí un sistema distribuido se ve cómo la Figura 2. ¿Un poco diferente a Terminator no? En este punto podemos pensar cómo funciona nuestro correo electrónico. Una persona revisa su correo y se ve a través del navegador web en una sola ventana. Sin embargo, la información de nuestros correos está copiada en diferentes servidores (que son computadores también o máquinas virtuales) distribuidas en el mundo y dichos servidores pueden estar conectados de diferentes formas -Incluso como en la Figura 2.
Ahora pensemos un poco en que esos servidores pueden fallar y desaparecer. En ese sentido lo que necesitaría es tener sincronizada una copia de mis datos en cada uno de los servidores. Para esto en mi caso que es inspirado en la naturaleza, utilicé algoritmos basados en inteligencia de enjambres y hacer posible que los agentes exploren y coleccionen copias de la información que está distribuida en esa red (Rodríguez, Gómez, & Diaconescu, 2017a). Pensemos en insectos moviéndose en dicha red y copiando los datos. Dichos insectos a pesar de dañarse pueden copiar los datos debido a que sus dinámicas de movimiento basadas en feromonas les permiten explorar de una forma eficiente el espacio.
Adicionalmente, es posible que mi red cree nuevos insectos si fallan los canales de comunicación y recuperarlos (Rodríguez, Gómez, & Diaconescu, 2017), mediante su movimiento entre servidor y servidor es posible detectar cuando fallan y crear copias. El problema aquí es determinar cuántas copias de insectos se pueden crear, pues si se generan demasiadas copias de agentes móviles en un caso como el del correo electrónico muchos recursos computacionales serán utilizados y si son pocos los agentes móviles pueden no replicar la información en dicha red de forma rápida.
Llegando un poco a Terminator en lo que me encuentro trabajando ahora es en hacer que mis agentes móviles reconstruyan la estructura de la red. En dichas películas, había unos robots que podían reconstruir su estructura (y parecían de mercurio líquido). Por ahora si mi red de la Figura 2 desaparece espero poder reconstruirla. Por ahora les cuento que en algunos experimentos ya esta parte de la aventura llamada investigación me está funcionando, ha sido todo un reto y aún continúo trabajando en esto. Espero contarles cómo me fue en una futura entrega de semillas.
Mg. PhD (c). Arles Ernesto Rodríguez Portela
Docente de Ingeniería de Sistemas
Fundación Universitaria Konrad Lorenz
Referencias:
Bicocchi, N., & Zambonelli, F. (2007). Autonomic communication learns from nature. Potentials, IEEE, 26(6), 42–46. http://doi.org/10.1109/MPOT.2007.906119
Lalanda, P., Mccann, J. A., & Diaconescu, A. (2013). Autonomic Computing: Principles, Design and Implementation. Springer.
Raynal, M. (2013). Distributed Algorithms for Message-Passing Systems. Berlin, Heidelberg: Springer Berlin Heidelberg. http://doi.org/10.1007/978-3-642-38123-2
Rodríguez, A., Gómez, J., & Diaconescu, A. (2017). Exploring Complex Networks with Failure-Prone Agents. In O. Pichardo-Lagunas & S. Miranda-Jiménez (Eds.), 15th Mexican International Conference on Artificial Intelligence, MICAI 2016 (pp. 81–98). Cham: Lecture Notes In Computer Science. http://doi.org/10.1007/978-3-319-62428-0_7
Rodríguez, A., Gómez, J., & Diaconescu, A. (2017). Replication-Based Self-healing of Mobile Agents Exploring Complex Networks. In Y. Demazeau, P. Davidsson, J. Bajo, & Z. Vale (Eds.), Advances in Practical Applications of Cyber-Physical Multi-Agent Systems: The PAAMS Collection: 15th International Conference, PAAMS 2017, Porto, Portugal, June 21-23, 2017, Proceedings (pp. 222–233). Cham: Springer International Publishing. http://doi.org/10.1007/978-3-319-59930-4_18
Rodríguez, A., Gómez, J., & Diaconescu, A. (2017). Towards a Self-healing Multi-agent Platform for Distributed Data Management. In Y. Demazeau, P. Davidsson, J. Bajo, & Z. Vale (Eds.), Advances in Practical Applications of Cyber-Physical Multi-Agent Systems: The PAAMS Collection: 15th International Conference, PAAMS 2017, Porto, Portugal, June 21-23, 2017, Proceedings (pp. 350–354). Cham: Springer International Publishing. http://doi.org/10.1007/978-3-319-59930-4_36