Trabalho Sockets201501

Preview:

DESCRIPTION

Enunciado trabalho de Socket

Citation preview

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

    Este trabalho tem como objetivo o desenvolvimento de uma aplicao cliente/servidorque permita que vrios utilizadores em modo distribudo consigam participar devotaes.

    O trabalho ser realizado com o API de sockets em Java. Dever ser feitoindividualmente.

    Descrio do trabalho

    A aplicao distribuda que se pretende implementar dever suportar umsistema de votaes e apurao. Este sistema possui mltiplos itens emvotao, e recebe votos dos utilizadores.

    Os itens em votao tm um prazo mximo, findo o prazo o servidor noaceita mais votaes e calcula o total de votos, respectivas percentagens e itemganhador.

    Por sua vez, um utilizador comea por efetuar um login. Em resposta oservidor envia-lhe uma lista de itens que esto em votao, o que permitir aoutilizador votar em um determinado item.

    Alm dos votantes, existem tambm o administrador do sistema que tma capacidade de introduzir itens para votao e que podero enviar notasinformativas 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 UDPMulticast. O multicast ser utilizado exclusivamente para as notas informativasenviada pelos administradores do sistema.

    Utilize programao multithread quando julgar necessrio.

    De seguida apresentam-se os tpicos fundamentais a implementar naaplicao:

    Com exceo das notas informativas em multicast, toda a comunicaoentre clientes e servidor dever ser feita atravs de sockets Stream. Caso acheconveniente poder usar ObjectStreams para o envio de objetos. Tenha emateno que dever definir com rigor o formato das mensagens da sua aplicaodistribuda 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 seguintesmensagens(Servios): (a) login vlido ou invlido; (b) lista de itens em votao;(c) resposta a um voto (por exemplo,sucesso ou insucesso); (d) notificao dotrmino da votao. Tenha especial ateno ao sincronismo de mensagens decliente/servidor e servidor/cliente.

  • Para alm dos utilizadores deve considerar ainda os administradores dosistema, que tambm interagem com o servidor, utilizando, para o efeito, asmensagens(Servios) como:(a) login; (b) listar itens em votao; (c) adicionar um novo item; (d) enviar notasinformativas.

    Nesta fase do trabalho como sugesto, a gesto de utilizadores poder ser feitade uma forma manual, atravs da manipulao de um arquivo do lado doservidor, onde se guarda a informao dos utilizadores registrados na aplicao,os respectivos logins e passwords. Dever ainda existir informao persistentecomo os itens existentes e com o valor das votaes.

    Esta informao dever ser mantida num arquivo parte, de tal forma que oservidor consiga recuperar toda a informao necessria para manter o servioem caso de uma falha transitria.

    Exemplo Arquitetura da Aplicao:

Recommended