La Virgen

La Virgen
Primavera en la Virgen

sábado, 5 de marzo de 2011

Acceso a servidor NTP en JAVA

Buenas tardes lectores:
Hoy vamos a hablar de un tema muy importante cuando estamos desarrollando aplicaciones que van a utilizar servicios de máquinas remotas. Un ejemplo de este escenario lo tenemos en bancos, comercios electrónicos, aplicaciones empresariales distribuidas, etc. Todos estos equipos en cualquier momento van a utilizar un servicio de una máquina remota. Por ejemplo un usuario en españa puede realizar una compra a través de internet en la página de ebay de hongkong. Obviamente la hora local del equipo del usuario no será la misma que la del servidor en hongkong. Otro ejemplo lo podemos ver cuando en una red consultamos la hora de reloj de varias máquinas. Estas consultas nos darán como resultado que ningún reloj posee exactamente la misma hora que otro de la red. Obviamente esto nos debe de llevar a pensar: ¿que va a pasar si cada uno utiliza su propia hora de reloj para realizar las transacciones en un banco? Pues es posible que un cliente pueda sacar dinero de un puesto en el que son las 9:35 y seguidamente vaya a otro puesto en el que son las 9:33 y vuelva a sacar dinero. La segunda transacción aparecería antes de la primera. A simple vista esto no debería de suponer mucho problema, son transacciones de reintegro al fin y al cabo. No obstante si mezclamos transacciones de reintegro, de ingreso y transferencias, la cosa se complica
Veamos ahora una imagen de un ejemplo de escenario para este caso:
Ejemplo de redes privadas con servidor NTP
Ejemplo de redes privadas con servidor NTP
Como ya os estaréis imaginando, la solución al problema se basa en establecer un reloj maestro para todos los equipos. Este reloj debe de tener una tasa de error muy baja, para evitar los errores lo mejor posible. Cualquier equipo de cualquier red deberá de acceder a este servidor para recoger el valor real de hora y así asignarlo correctamente a cualquier transacción, pedido, modificación, etc. que haga.
Después de esta breve introducción, vamos al turrón.
Como tampo es plan de machacaros, simplemente os voy a dejar una librería hecha en java que, a través de un servidor NTP al que ésta se conecta, obtiene la hora y nos la devuelve.
Los archivos se han subido en formato ODT debido a que wordpress no nos deja subir un archivo de código.

5 comentarios:

  1. Me venía de perlas tu aporte pero los ficheros no existen :(.

    ResponderEliminar
  2. No te preocupes, creo que lo tengo en casa. En 1 o 2 días lo colgaré para que sea accesible

    Un saludo.

    ResponderEliminar
  3. Hola SkawMaster,
    a mi también me venían muy bien, así que he estado buscando y los he encontrado aquí
    http://support.ntp.org/bin/view/Support/JavaSntpClient
    Espero que te sirvan.

    Gracias BLAKEscIence!!

    ResponderEliminar
  4. Hola, los archivos los podrias subir? de antemano gracias

    ResponderEliminar
  5. Hola Raul,

    Tienes los ejemplos aquí:

    http://support.ntp.org/bin/view/Support/JavaSntpClient

    Un saludo.

    ResponderEliminar