Repository navigation
🚀 Release: Implementación del Sistema de Inscripciones en Ventanas de Tiempo
📌 Descripción
En esta versión, se ha agregado un sistema de inscripciones en las ventanas de tiempo, coordinado por el nodo D (Registro de Contactos). Ahora, los nodos C (Clientes TCP) deben registrarse en una ventana futura y solo pueden ver a los nodos C activos en la ventana actual.
Cada N segundos, el nodo D actualiza las ventanas, moviendo los registros de la inscripción futura a la ventana activa.
Además, se ha incorporado persistencia en JSON, facilitando el seguimiento ordenado de las inscripciones y permitiendo verificar los resultados esperados.
🔧 Funcionamiento
Nodo D (Registro de Contactos con Inscripciones)
- Mantiene dos registros:
- Nodos activos en la ventana actual.
- Nodos registrados para la próxima ventana.
- Cada N segundos, mueve los registros de la inscripción futura a la actual y habilita una nueva ventana de inscripciones.
- Almacena las inscripciones en un archivo JSON (
logs-registros/inscripciones.json).
Nodo C (Cliente TCP)
- Se registra en D y espera hasta la próxima ventana para ser activado.
- Solo puede conocer a los nodos activos en la ventana actual.
- Se conecta a los nodos activos y establece comunicación con ellos.
✅ Cambios en el Programa
📌 Registro de Contactos (RegistroContactos)
- Implementa la lógica de las ventanas de tiempo y manejo de inscripciones.
- Guarda el registro de inscripciones en JSON para mantener un historial ordenado.
- Permite a los nodos C consultar la lista de inscripciones activas.
📌 Persistencia de Inscripciones (PersistenciaRegistroVentanas)
- Se encarga de la lectura y escritura del archivo JSON con los registros de cada ventana.
- Crea el directorio de logs (
logs-registros/) si no existe. - Permite almacenar múltiples ventanas en un historial ordenado.
📌 Gestión de Ventanas (GestorInscripciones)
- Mantiene dos estructuras:
- inscripcionesActuales: nodos activos en la ventana en curso.
- inscripcionesFuturas: nodos registrados para la próxima ventana.
- Cada N segundos, mueve los nodos de inscripcionesFuturas a inscripcionesActuales y guarda el estado en JSON.
- Permite a los nodos C registrarse de forma sincronizada.
▶️ Instrucciones de Uso
Para testear, ejecutar el archivo Bash "test_hit7.sh" que se encuentran en /src/scripts.
Ejemplo de ejecución:
/bin/bash /ComunicacionTCP/src/scripts/test_hit7.sh