Servicios y cliente#

En esta sección se describirán los cambios más relevantes que deberán introducirse en los servicios y en el cliente de la práctica.

Servicio principal#

  • El método newService desaparece.

  • El método announce dejará de estar disponible en la interfaz Main para estarlo en la interfaz Announcement.

  • En lugar de recibir los anunciamientos de manera individual, los recibirá subscribiéndose al topic IceStorm adecuado.

  • Además de recibir anunciamientos, también deberá enviarlos para que el resto de servicios y los clientes puedan descubrir su proxy.

  • El tiempo de espera antes de eliminar un servidor por no anunciarse debidamente pasa de 30s a 10s.

  • No se considera necesario el mensaje de newService existente en la versión anterior.

Servicio de autenticación#

  • El servicio deberá subscribirse al canal de anunciamientos de servicios, de modo que sólo aquellos que se estén anunciado correctamente se considerarán servicios válidos.

  • El servicio se anunciará a ese mismo canal de eventos, invocando el método announce cada 10s como máximo.

  • Cada identificación exitosa por parte de un usuario a través de refreshAuthorization deberá ir acompañada de un envío de newToken a través del canal de eventos dedicado a la comunicación entre instancias de este tipo de servicio.

  • Todos los tokens de usuario, ya sean generados por la propia instancia o recibidos a través del topic de IceStorm deberán ser revocados cada 2 minutos.

  • Cuando un token expire, todas las instancias enviarán el revokeToken al topic de IceStorm.

  • Cuando se cree o se elimine a un usuario en una instancia, ésta deberá notificar al resto a través de una llamada a newUser o removeUser en el topic de IceStorm, según corresponda.

  • En todo caso, cualquier mensaje que se reciba a través del topic de comunicación de servicios de autenticación incluye un serviceId, que deberá ser comprobado como un identificador válido.

Servicio de ficheros#

  • El servicio deberá subscribirse al canal de anunciamientos de servicios, de modo que sólo aquellos que se estén anunciado correctamente se considerarán servicios válidos.

  • El servicio se anunciará a ese mismo canal de eventos, invocando el método announce cada 10s como máximo.

  • El servicio deberá enviar al topic pertinente de manera periódica la lista de mediaId disponibles.

  • El servicio deberá enviar siempre un mensaje de announceFiles cuando reciba alguna modificación por parte de un administrador (tanto añadir como eliminar un archivo).

Cliente#

  • El cliente deberá descubrir el servicio principal a través del topic de IceStorm de anunciamientos.

  • En modo administrador, el cliente deberá ser capaz de subscribirse a cualquiera de los canales de eventos descritos en el apartado anterior y mostrar por pantalla, de un modo legible, los eventos que se vayan recibiendo.