Lista de requisitos#

Servicio principal#

  • Responder con una referencia válida, cuando la hubiera, el método getAuthenticator.

  • Responder con una referencia válida, cuando la hubiera, el método getCatalog.

  • Responder con una referencia válida, cuando la hubiera, el método getFileService.

  • Lanzar la excepción correspondiente cuando no haya servicio de uno de los anteriores disponible.

  • Recibir los anunciamientos newService y announce de manera correcta.

  • Ignorar los announce cuando vengan de un servicio no anunciado previamente con newService.

  • Ignorar cualquier tipo de anunciamiento de objetos que no sea de las interfaces esperadas.

  • Los servicios que dejen de anunciarse durante 30s son eliminados y nunca más pueden ser devueltos por ninguna de las 3 operaciones de acceso.

  • Comprobar que, tras eliminar un servicio “caducado”, no se puede recuperar de nuevo a través de la función de acceso.

  • Comprobar que si se recibe un newService de un servicio existente previamente, ese identificador queda invalidado (ni el servicio antiguo ni el nuevo se devuelven)

Servicio de autenticación#

  • El servicio se anuncia siguiendo la secuencia correcta.

  • El servicio identifica correctamente al administrador a través de su token.

  • El servicio permite crear un usuario.

  • El servicio permite eliminar un usuario.

  • El servicio guarda los datos de los usuarios de manera persistente.

  • El servicio permite identificar correctamente a un usuario válido, y rechaza usuarios inexistentes/incorrectos.

  • El servicio identifica correctamente si un token es válido a través de isAuthorized.

  • El servicio identifica correctamente al usuario a través de su token usando whois.

  • El servicio revoca automáticamente los token pasados 2 minutos.

  • El servicio revoca un token si el usuario se identifica de nuevo, aunque no hayan pasado los 2 minutos.

Servicio de archivos#

  • El servicio se anuncia siguiendo la secuencia correcta.

  • El servicio notifica al catálogo de todos los archivos en su directorio inicial.

  • El servicio permite que el administrador pueda subir un archivo.

  • El servicio sólo guarda el fichero subido en disco cuando llega completo. En cualquier otro caso, el fichero se descarta.

  • El servicio permite abrir un archivo existente a un usuario válido.

  • El servicio permite descargar un archivo a usuarios autenticados.

  • El servicio detecta cuando expira el token de un usuario y rechaza continuar la descarga hasta recibir un token nuevo y válido.

  • El servicio permite eliminar un archivo al administrador.

  • El servicio calcula los “media id” utilizando el algoritmo especificado.

  • El programa crea objetos de tipo FileHandler sólo cuando son necesarios, bajo demanda.

Cliente#

  • El programa reintenta conectarse en caso de fallo.

  • El programa permite a un usuario identificarse.

  • El programa permite realizar búsquedas anónimas por nombre.

  • El programa permite realizar búsquedas por “tags”.

  • El programa solicita automáticamente un nuevo token en caso de revocación del existente.

  • El programa permite al administrador añadir y eliminar usuarios.

  • El programa permite al administrador renombrar ficheros en el catálogo.

  • El programa permite al administrador subir archivos al servidor de archivos

  • El programa permite al administrador eliminar archivos del servidor de archivos.

  • El programa permite a un usuario válido descargar un archivo.