2
Trabalho Sockets - Data Apresentação e Entrega – 21/03/2015 Este trabalho tem como objetivo o desenvolvimento de uma aplicação cliente/servidor que permita que vários utilizadores em modo distribuído consigam participar de votações. O trabalho será realizado com o API de sockets em Java. Deverá ser feito individualmente. Descrição do trabalho A aplicação distribuída que se pretende implementar deverá suportar um sistema de votações e apuração. Este sistema possui múltiplos itens em votação, e recebe votos dos utilizadores. Os itens em votação têm um prazo máximo, findo o prazo o servidor não aceita mais votações e calcula o total de votos, respectivas percentagens e item ganhador. Por sua vez, um utilizador começa por efetuar um login. Em resposta o servidor envia-lhe uma lista de itens que estão em votação, o que permitirá ao utilizador votar em um determinado item. Além dos votantes, existem também o administrador do sistema que têm a capacidade de introduzir itens para votação e que poderão enviar notas informativas da apuração parcial e final dos votos para os utilizadores. Toda a comunicação unicast será feita utilizando os sockets TCP, enquanto que toda a comunicação multicast será feita utilizando sockets UDP Multicast. O multicast será utilizado exclusivamente para as notas informativas enviada pelos administradores do sistema. Utilize programação multithread quando julgar necessário. De seguida apresentam-se os tópicos fundamentais a implementar na aplicação: Com exceção das notas informativas em multicast, toda a comunicação entre clientes e servidor deverá ser feita através de sockets Stream. Caso ache conveniente poderá usar ObjectStreams para o envio de objetos. Tenha em atenção que deverá definir com rigor o formato das mensagens da sua aplicação distribuída e deverá oferecer pelo menos as seguintes mensagens(Serviços) no sentido cliente-servidor: (a) login; (b) obter lista de itens em votação; (c) votação. No sentido servidor-cliente, deverão existir pelo menos as seguintes mensagens(Serviços): (a) login válido ou inválido; (b) lista de itens em votação; (c) resposta a um voto (por exemplo,sucesso ou insucesso); (d) notificação do término da votação. Tenha especial atenção ao sincronismo de mensagens de cliente/servidor e servidor/cliente.

Trabalho Sockets201501

Embed Size (px)

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: