Trabalho Prático Aplicações de Redes 2002 _Objectivo_: * Desenvolvimento de um '/download manager/' para a definição de listas de ficheiros a descarregar por utilizador do sistema. _Exemplos de utilitários com funcionalidades semelhantes (sendo o interface de janelas)_: * WebDownloader (installado nas máquinas; correr |nt| ) * KMago (para KDE) Descrição: Pretende-se desenvolver um sistema que permita a indicação de '/downloads/ ' a efectuar por utilizador. Cada utilizador terá uma lista de ficheiros que pretende descarregar associada a uma conta no sistema onde depois serão fornecidas informações detalhadas sobre o estado de cada '/download/'. O utilizador poderá opcionalmente indicar um servidor remoto com espaço em disco para onde deverão ser depois descarregados os '/downloads/ que entretanto tenham sido efectuados com sucesso. Capacidades gerais do sistema a desenvolver: 1. Controlo de funcionalidades e uso através da /web/. 2. Identificação/reconhecimento do utilizador do sistema através de /username/password/ . 3. Listas de /downloads/ por utilizador do sistema. 4. Informação sobre o estado de cada um dos /downloads/ a efectuar (ver Desc. Detalhada <#pormenores>). 5. Possibilidade de identificação de locais remotos para onde efectuar o descarregamento por /Donwload/. Descrição Detalhada: 1. _*Interface Browser:*_ 1. /Login/ por utilizador. 2. Indicação da localização do ficheiro a descarregar (*http* ou *ftp*). 3. Possibilidade de indicação de hora e data para o descarregamento. Não existindo esses valores o /download/ deverá começar de imediato. 4. Possibilidade de indicação do local para onde descarregar o ficheiro (*http* ou *ftp*), usando ou não outro /username/password /para acesso a esse servidor. 5. Visualização da lista de /downloads/ registados e o seu estado. 2. _*Gestão de Utilizadores:*_ 1. Deve existir uma lista dos utilizadores e respectivas palavras passe para acesso ao sistema. 2. Cada utilizador deverá ter uma lista de downloads associada (vazia caso o utilizador ainda não tenha usado o sistema). 3. A criação/administração de utilizadores pode ser feita manualmente num ficheiro (ver Valorização <#valores>). 3. _*Descarregamento do ficheiro:*_ 1. Por defeito o ficheiro será descarregado numa conta local associada ao utilizador. 2. Poderá ser associada uma cota limite no servidor local ao utilizador. 3. Deve existir a possibilidade de indicar um servidor (ftp ou http) para onde fazer o descarregamento do ficheiro (neste caso pode gravar-se esse ficheiro primeiro localmente e posteriormente no local remoto, ou então tentar fazer os dois passos simultanemente). 4. _*Informação a visualizar sobre os /downloads/:*_ 1. Ficheiro em lista de espera (foi marcada uma hora para o /download/ que ainda não ocorreu). 2. Ficheiro totalmente descarregado. 3. Ficheiro a ser descarregado no momento. 4. Erro ao descarregar o ficheiro. 5. _*Informação ao utilizador sobre o fim do /download/:*_ 1. O utilizador deverá ser avisado do términos do /download/ por /e-mail/. 2. No /e-mail/ deverá ser referido se houve sucesso ou falha no download. Valorização: 1. _*Informação de erros ocorridos*__*:*_ 1. Erro de acesso ao ficheiro de download. 2. Impossibilidade de aceder ao local remoto. 2. _*Gestão de utilizadores*__*:*_ 1. Criação/administração através de interface num /browser/. 3. _*Informação ao utilizador sobre o fim do /download/:*_ 1. O utilizador poderá escolher quando quer receber o aviso (ex.: quando terminar todos os '/downloads/', '/download/' a '/download'/ terminar, desde que se ultrapasse os 30 MB de /download/, etc) 4. _*Resumo do '/download/':*_ 1. Possibilidade de fazer resume dos '/downloads/' tanto em *http* como em *ftp*. Sugestões: 1. _*Criação de áreas por utilizador:*_ Cada utilizador poderá ter uma área/directório onde são guardadas as suas configurações e /downloads/ efectuados. 2. _*Criação de um servidor para /downloads/:*_ Deverá ser criado um /daemon/ que receba registos de /downloads/. O /cgi/ de interface ao utilizador comunicará a esse servidor quais os downloads a efectuar. O acesso à lista de /downloads/ para visualização do utilizador será um detalhe de implementação, podendo estar num ficheiro que o /cgi/ e o /daemon/ acedem ou ser o /cgi/ a perguntar ao /daemon/ sobre a lista do utilizador. 3. _*"Desligar" o serviço quando não estiver a ser utilizado:*_ Uma vez que, na prática, se efectuará o descarregamento para as áreas locais dos alunos, convém desligar o serviço, para que não seja utilizado para encher a área dos utiliadores. Referências *Qualquer dos módulos que não esteja instalado na máquina onde façam o desenvolvimento, pode ser sempre colocado no vosso directório /perl5lib/ (copiando o .pm ou usando o CPAN (caso esteja instalado correctamente )).* *Referências CGI* CGI Simple Common Gateway Interface Class CGI::Cookie Interface to Cookies *Referências LWP* LWP::Simple Procedural LWP interface LWP Library for WWW access in Perl *Referências FTP* Net::FTP FTP client class *Referências HTTP* HTTP::Message Class encapsulating HTTP messages HTTP::Request Class encapsulating HTTP Requests HTTP::Request::Common Construct common HTTP::Request objects HTTP::Response Class encapsulating HTTP Responses HTTP::Status HTTP Status code processing *Referências Mail* Mail::Send Simple electronic mail interface MIME::Entity Class for parsed-and-decoded MIME message *Referências URI* URI Uniform Resource Identifiers (absolute and relative) URI::Escape Escape and unescape unsafe characters *Referências Passwd* crypt Encrypts a string User::pwent By-name interface to Perl's built-in getpw*() functions. _/ Última Actualização: 26/03/2002 17:02 (GMT) /_