Hoy voy a comenzar una serie de post dedicados a el desarrollo de la práctica de la asignatura Sistemas Distribuidos de la UNED, esto es un tutorial Java RMI. No voy a poner todo el código tal cual, sino que mas bien vamos a ver la estructura de clases que se necesitan para el desarrollo de la misma y también los trozos de código más importantes referidos a Java RMI. Supongo que sí que pondré el código de las interfaces, dejando a cada uno la implementación de los métodos.
En este primer post vamos a ver el enunciado para ponernos en situación y ver un poco lo que vamos a necesitar.
En primer lugar me gustaría dar las gracias a Fermin por su espléndido tutorial que recomiendo que veais. Os dejo el enlace:
Bueno, manos a la obra.
El propósito de la práctica es el desarrollo de un software que implemente un sistema de almacenamiento de ficheros en la nube usando Java RMI. Para ello actuaran tres tipos de actores:
1. Servidor: Se encarga de controlar el proceso de almacenamiento de ficheros y de gestionar los recursos de almacenaje. Publica tres servicios:
- Servicio Autenticación.
- Servicio Gestor.
- Datos.
2. Repositorios: Son las responsables de guardar en sus dispositivos de almacenamiento los ficheros que los clientes suben a la nube. Publica dos servicios:
- Servicio Cliente-Operador.
- Servicio Servidor-Operador.
3. Clientes: Son los propietarios de los ficheros.
Sólo se admite la gestión de ficheros y no la creación de un árbol de carpetas por cada cuenta de cliente en el repositorio. No obstante, en cada repositorio se creará una carpeta que alojará todos los ficheros de un cliente concreto. Publica un servicio:
- Servicio Disco-Cliente
OPERATIVA.
Inicialmente la entidad servidor levanta sus tres servicios: Autenticación, Gestor y Datos.
El/Los repositorio/s se autentican en el sistema mediante el servicio de Autenticación del servidor, devolviéndole éste un identificador único. El repositorio a partir de este momento está listo para almacenar los ficheros de los clientes.
El/Los cliente/s se autentican en el sistema mediante el servicio de Autenticación del servidor, devolviéndole éste un identificador único. En este momento, el servidor le asigna al cliente un repositorio y guarda esta relación a través del servicio Datos y manda crear una carpeta en el dispositivo de almacenamiento del repositorio mediante el servicio Servidor-Operador. Esta carpeta tendrá por nombre el identificador único del cliente y dentro se alojarán todos sus ficheros en propiedad.
Una vez que el cliente está registrado en el sistema, podrá realizar las operaciones de subida/bajada/borrado de ficheros en la nube. Operaciones gestionadas por el servidor y ejecutadas en la carpeta que cada cliente tiene en el repositorio que le corresponde.
Además el cliente puede pedir un listado de otros clientes conectados al sistema y permitirles el acceso para la descarga de sus ficheros.
Bueno, hasta aquí el planteamiento. En el próximo post empezaremos a plantear la solución y a codificarla.
Un saludo.
Hola, me parece muy interesante el articulo para enteder RMI. Pero no esta completo, verdad?