Sei sulla pagina 1di 2

Trabalho Sockets - Data Apresentao e Entrega 21/03/2015

Este trabalho tem como objetivo o desenvolvimento de uma aplicao cliente/servidor


que permita que vrios utilizadores em modo distribudo consigam participar de
votaes.
O trabalho ser realizado com o API de sockets em Java. Dever ser feito
individualmente.

Descrio do trabalho
A aplicao distribuda que se pretende implementar dever suportar um
sistema de votaes e apurao. Este sistema possui mltiplos itens em
votao, e recebe votos dos utilizadores.
Os itens em votao tm um prazo mximo, findo o prazo o servidor no
aceita mais votaes e calcula o total de votos, respectivas percentagens e item
ganhador.
Por sua vez, um utilizador comea por efetuar um login. Em resposta o
servidor envia-lhe uma lista de itens que esto em votao, o que permitir ao
utilizador votar em um determinado item.
Alm dos votantes, existem tambm o administrador do sistema que tm
a capacidade de introduzir itens para votao e que podero enviar notas
informativas da apurao parcial e final dos votos para os utilizadores.
Toda a comunicao unicast ser feita utilizando os sockets TCP,
enquanto que toda a comunicao multicast ser feita utilizando sockets UDP
Multicast. O multicast ser utilizado exclusivamente para as notas informativas
enviada pelos administradores do sistema.
Utilize programao multithread quando julgar necessrio.
De seguida apresentam-se os tpicos fundamentais a implementar na
aplicao:
Com exceo das notas informativas em multicast, toda a comunicao
entre clientes e servidor dever ser feita atravs de sockets Stream. Caso ache
conveniente poder usar ObjectStreams para o envio de objetos. Tenha em
ateno que dever definir com rigor o formato das mensagens da sua aplicao
distribuda e dever oferecer pelo menos as seguintes mensagens(Servios)
no sentido cliente-servidor:
(a) login; (b) obter lista de itens em votao; (c) votao.
No sentido servidor-cliente, devero existir pelo menos as seguintes
mensagens(Servios): (a) login vlido ou invlido; (b) lista de itens em votao;
(c) resposta a um voto (por exemplo,sucesso ou insucesso); (d) notificao do
trmino da votao. Tenha especial ateno ao sincronismo de mensagens de
cliente/servidor e servidor/cliente.

Para alm dos utilizadores deve considerar ainda os administradores do


sistema, que tambm interagem com o servidor, utilizando, para o efeito, as
mensagens(Servios) como:
(a) login; (b) listar itens em votao; (c) adicionar um novo item; (d) enviar notas
informativas.
Nesta fase do trabalho como sugesto, a gesto de utilizadores poder ser feita
de uma forma manual, atravs da manipulao de um arquivo do lado do
servidor, onde se guarda a informao dos utilizadores registrados na aplicao,
os respectivos logins e passwords. Dever ainda existir informao persistente
como os itens existentes e com o valor das votaes.
Esta informao dever ser mantida num arquivo parte, de tal forma que o
servidor consiga recuperar toda a informao necessria para manter o servio
em caso de uma falha transitria.
Exemplo Arquitetura da Aplicao:

Potrebbero piacerti anche