File Transfer / Cliente Servidor

Ola a todos:

Tenho um trabalho academico, que menciono de seguida.
Como é algo extenso, gostaria de saber se algum de vos tem algo feito neste campo que me possa fornecer…
Ou, na impossibilidade disso, de me dar algumas dicas ou partes de codigo, por onde começar.
Como sou um novato em java, isto vai ser complicado de desenvolver de raiz, pelo que a vossa ajuda seria imprescindivel. O trabalho é feito em Eclipse e MySQL

O enunciado é:

1->Pretende-se com este trabalho de avaliação o desenvolvimento de uma aplicação cliente/servidor que
permita realizar a transferência de ficheiros de e para um servidor para um número indeterminado de
clientes. O servidor e os clientes poderão estar em computadores diferentes interligados através de uma
rede de comunicações.
2->Funcionalidades
As funcionalidades devem ser bem integradas no sistema de modo a criar uma ou várias aplicações de
utilização simples e intuitiva. O sistema de Transferência de Ficheiros deve permitir funcionalidades para
gestão de utilizadores. Segue-se o resumo das funcionalidades:
Funcionalidades para administradores:
? Gerir utilizadores;
o Dados do utilizador: login, password, quota (espaço máximo permitido).
Funcionalidades para utilizadores:
? Alterar a própria password;
? Enviar ficheiros para o servidor (upload);
? Ir buscar ficheiros ao servidor (download);
? Consultar espaço utilizado e espaço máximo permitido;
? Apagar ficheiros;
? Consultar lista de ficheiros;
? Criar e apagar directorias;
? Renomear ficheiros e directorias.
3->Características internas da aplicação:
? O sistema deve fazer uso de uma base de dados para registar a informação relacionada a
gestão de utilizadores.
? Os utilizadores apenas podem ter acesso aos seus ficheiros.
? O cliente interage com o servidor. O servidor interage com a base de dados.
? O tamanho do bloco de bytes que são transferidos de cada vez deve ser ajustado de modo a
conseguir um bom equilíbrio entre o desempenho e os recursos necessários.
? Esta aplicação deve permitir múltiplas ligações.
Serviço de localização:
? Criação de um serviço de localização (SL) que poderá ser executado numa máquina diferente da
do servidor. O servidor quando se inicia deve informar o SL do IP e do porto em que se encontra.
Para o cliente interagir com o servidor deverá primeiro inquirir o SL acerca do IP e do porto em
que se encontra o servidor. Após obter a localização do servidor, o cliente já poderá interagir
directamente com o servidor. Toda a interacção com o SL deverá ser realizada através de Java
RMI

Desde ja, o meu MUITO obrigado