Estre proyecto de plataforma de agentes pretende dar una solucion distribuida al problema planteado, esta plataforma de agentes basa su funcionamiento en 5 componentes listadas a continuación:
-
Client
-
Message_Handler
-
Message_Resolver
-
Directory Facilitator
-
AMS
Nuestro cliente de la plataforma de agentes posee varias funcionalidades y su mayor importancia recae en ser la entidad encargada de adicionar o consultar registros a la misma. Además está construido sobre la biblioteca cmd de python y tiene una funcionalidad adicional de levantar un socket local para la comunicación transparente con el servicio pedido
Primera entidad de la sección de mensajería de la plataforma, posee dos servidores que responden a las peticiones de los clientes y los Message_Resolvers, ademas responde también a los pedidos de descubrimiento de los mismos.
Entidad de la plataforma que se encarga de realizar los pedidos entrantes, por cada pedido que obtiene de algun Message_Handler, resuleve las consultas pertinentes tanto en el AMS como el DF.
Base de datos compartida, que trabaja sobre RAM cuya principal propiedad radica en rapida recuperación de errores y estrategia de tolerancia a fallos de tipo crash y replicación de grado 2.
DHT basado en kademlia pero con variaciones y sin abarcar la totalidad del algoritmo, no utilizamos la republicación de (llave, valores),en cuanto a los tiempos y como tradicionalmente se implementa, es distinto, se utilizó rpc y en este caso rpyc por sus facilidades. Con laas constantes del algoritmo identicas a excepcón del alpha=1 para aumentar la velocidad ya que en el caso de python es demasiado lento el cambio de contexto. Usamos una capa de abstracción para esta red kademlia y le llamamos AgentManager(Servicio de rpyc al igual que kademlia y que hereda del mismo tipo Service) para facilitar el acceso a los datos desde entidades ajenas a la red. Desde la creación de la instancia de nodo kademlia mantenemos una hebra q se encarga de eliminar la las entradas a