Práctica 4: Sincronización de tiempo
Objetivo: Sincronizar en tiempo n servidores.
Desarrollo:
- Nuestro sistema está formada por "n servidores", los cuales a su vez se conectarán a uno de los "n servidores NTP" disponibles que se encuentran en internet, tal como se muestra en la figura inferior.
- Aquí se encuentra el código en Java para "obtener la hora de un servidor NTP que está en internet".
- Una vez que llega la hora del servidor NTP, es necesario cambiar la hora que tiene nuestro servidor por la que acaba de llegar, para eso ocupamos el código Java para "ajustar el tiempo del reloj interno de la computadora".
- Para lograr una mayor exactitud de ajuste, se requiere considerar el tiempo de retraso debido al envío del dato por la red, por lo que es necesario calcular el retraso tomando el tiempo que tarda en viajar la petición de nuestro servidor al servidor NTP y dividirlo entre 2 (debido a que sólo es necesario ajustar el envío). Este tiempo obtenido es sumado al tiempo que envía el servidor NTP a nuestro servidor para lograr una mayor exactitud, y es el que se ajusta en el servidor 2 (tal como se observa en la figura inferior).
- Una vez que los n servidores ya tienen la hora ajustada, entonces cada servidor por separado pregunta la hora a los demas servidores, saca un promedio y ajusta su reloj.
- Para extraer la hora de la computadora e imprimirla, utilizamos el programa en Java para "imprimir la fecha actual de la computadora".
Revisión:
- Se revisará que cada computadora servidor por separado se sincronize de un servidor NTP que se encuentra en internet y posteriormente sincronizar en tiempo los n servidores sacando el promedio de los n servidores (fecha de revision: viernes 12 de abril).