Skip to content

Hit #7

Latest

Choose a tag to compare

@SebaJuarez SebaJuarez released this 24 Mar 07:06
· 2 commits to main since this release
b5574cb

🚀 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:
    1. Nodos activos en la ventana actual.
    2. 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