Arquitectura de Red
La arquitectura de red del sistema es la siguiente:
Como se puede observar en el diagrama, se utilizan dos tipos de sockets (UDP y TCP)
para cumplir con tareas bastante distintas.
La comunicación UDP se utiliza para transmitir información de interés
entre los terminales. Se utiliza este tipo de sockets por tres razones:
-El overhead de los datagramas es menor (menor header) y se requiere de una comunicación
rápida y que no sature la red.
-Permite al software continuar con su tarea facilmente ante cualquier eventualidad con el terminal
al otro lado. Si este se desconecta o hay perdidas de paquetes o el host no existe (o no esta corriendo
su servidor biogym en él), el software siempre podrá continuar, ya que hay un timeout
implementado para esta comunicación.
-La perdida de un paquete no implica ningún problema para el software.
Este tipo de comunicación puede ser iniciado por el software de dos formas: manualmente o
automáticamente. En la primera modalidad, el usuario selecciona un host de su lista y le
pide que reporte su información. En la otra, una hebra del software se encarga de pedir la
información a todos los hosts a intervalos periódicos.
La comunicación TCP se utiliza para enviar todos los datos para realizar un entrenamiento. En
este caso un socket TCP es más idóneo, ya que:
-Para esto se requiere de una comunicación en que se asegure que no se perderán paquetes.
-La información en este caso es más delicada y la comunicación más esporádica,
por lo que el mayor overhead no es un problema.
Esta comunicación es iniciada por el software cuando el usuario decide enviar una tarea de entrenamiento
a un terminal y éste la acepta.