Trabalho prático de Java – “Monitor de sítios web”

Propaganda
FEUP > DEEC > MRSC >
Programação em Comunicações
Trabalho prático de Java – “Monitor de sítios web”
Neste trabalho pretende-se que o aluno implemente uma aplicação em Java que verifique
periodicamente o estado de uma lista de sítios na web, envie notificações por e-mail dos
respectivos estados, e guarde, quando disponível, uma cópia local do ficheiro principal de cada
sítio.
Dada uma lista de sítios (URIs), a aplicação deverá verificar se cada sítio está acessível. Caso
esteja, a aplicação deverá guardar um cópia local do ficheiro principal do sítio quando ainda não
exista uma ou quando se verifique que o sítio foi actualizado desde a última verificação.
De modo a permitir a diferenciação local de ficheiros com o mesmo nome mas de sítios
diferentes, cada ficheiro deverá ser copiado para dentro de uma directoria com um nome
relacionado com o URI do sítio, a qual deverá ser criada pela aplicação. Para o caso dos URIs
que não especifiquem qual o nome do ficheiro a pedir, poderá assumir um nome por omissão
para o ficheiro local do tipo index.html.
No fim de cada sessão de verificação a aplicação deve enviar um email de notificação. O e-mail
deverá conter uma linha por sítio com os respectivos URI e estado:
ƒ
Caso o sítio esteja acessível deverá apresentar o código de estado da resposta HTTP
(RFC 2616) bem como a data/hora da última actualização do sítio.
ƒ
Caso o sítio não esteja acessível, a aplicação deverá indicar qual o código de estado da
resposta HTTP devolvida ou outra indicação para o caso do servidor HTTP ou host não
estarem acessíveis ou não existirem.
Neste trabalho deverá implementar os comandos/respostas dos protocolos HTTP e SMTP
necessários ao bom funcionamento da aplicação.
A aplicação deverá suportar o recurso opcional de um proxy HTTP. Para isso deverá ser
possível especificar o proxy bem como um eventual porto (por omissão é 80) como parâmetro
de entrada.
Deverá ser indicado através de um parâmetro de entrada qual o MTA a utilizar para o envio dos
e-mails de notificação.
A aplicação deverá poder receber os pedidos via linha de comando através de parâmetros. A
seguir é apresentada a especificação dos parâmetros que terão de ser suportados pela aplicação.
$>
java
WebMon
ficheirocomlistadesítios
emaildenotificação mtalocal [proxy[:porto]]
periodoemsegundos
A lista de URIs contida em ficheirocomlistadesitios é de tamanho variável e poderá, por
exemplo, ter o seguinte conteúdo:
http://www.google.com
http://www.fe.up.pt
http://www.sapo.pt
http://paginas.fe.up.pt/~jaime
http://paginas.fe.up.pt/~jaime/0607/PC/PC.htm
http://paginas.fe.up.pt/~jaime/0607/PC/Trabalho_Pratico_Java.pdf
©2006 Jaime Dias
(cont.)
Valorização:
1. Melhorar a aplicação de modo a que esta possa enviar os e-mails directamente para o
servidor SMTP do destinatário (MTA destino) sem recorrer ao MTA local
(mtalocal).
2. Guardar localmente a página completa: para além do ficheiro principal deverão também
ser descarregados outros possíveis ficheiros nele referenciados (imagens, scripts, css…).
©2006 Jaime Dias
Download