Professional Documents
Culture Documents
SDIS1415-T3G02
Joo Monteiro
, ei11055@fe.up.pt
Joo Varandas
, ei11082@fe.up.pt
Mauro Costa
, ei11063@fe.up.pt
Miguel Tavares
, ei11069@fe.up.pt
5 de Junho de 2015
ndice
Introduo
Arquitetura
Implementao
Situaes relevantes
Concluso
Referncias
Introduo
Fig 1.
Menu inicial do jogo.
Fig 2.
Ecr de novo jogo.
Arquitetura
Quando um novo
peer entra no jogo, o seu reconhecimento feito por um
tracker
, no qual so armazenados os estados de jogo e informao sobre os
peers
que se encontram em jogo. Ao fazer uma tentativa de resposta, o
peer envia para o
tracker a letra ou palavra e cabe a este atualizar o estado do jogo e envi-lo a todos
os
peers
, uma vez que estes no sabem qual a palavra a ser adivinhada.
A imagem selecionada pelo
host como pista obtida atravs da API do
Flickr. Para isso, recorreu-se ao uso do mtodo flickr.photos.search, ao qual se
fornece o termo de pesquisa utilizado pelo
host como
tag e se organizam os
resultados, permitindo ao utilizador ver nove fotografias por pgina.
Implementao
Ns utilizamos um
tracker como maneira de manter registo dos jogos
(guarda e serve os endereos dos
peers e o estado do jogo). Para o desenvolver
recorremos plataforma
node.js com a framework
Express
. Decidimos utiliz-las
devido familiaridade que tnhamos com elas (uma vez que j havamos usado
ambas anteriormente), bem como sua simplicidade de implementao.
No desenvolvimento dos
peers utilizmos
Java com servidor
Jetty
para a
vertente de rede. A sua escolha baseou-se na na simplificao que permitem no
desenvolvimento de rotas RESTful, utilizadas neste projeto.
As mensagens so responsabilidade do
Communicator.java
, utilizando um
protocolo HTTP e baseando-se num paradigma RESTful. De modo a modularizar a
aplicao, utilizamos funes bsicas de envio de pedidos PUT, POST, GET e
DELETE que recebem o URL alvo e quaisquer parmetros relevantes. Deste modo
conseguimos simplificar as interfaces de comunicao e tornar as componentes
mais independentes e modulares.
Situaes relevantes
Concluso
O trabalho foi desenvolvido ao longo das aulas e fora destas, mas poderia
ter sido realizado de forma mais constante ao longo do tempo, uma vez que grande
parte das funcionalidades foi implementada na fase final do prazo estabelecido.
Como melhoria, poderamos implementar um sistema de jogadas por turnos,
adaptando o
timer j existente para controlar o tempo de jogada de cada
peer e
permitindo a todos os outros verem as suas jogadas em tempo real. Se tivssemos
oportunidade para isso, gostaramos tambm de desenvolver novas
funcionalidades como a troca de mensagens entre
peers ou a implementao de
sistemas de
buffs e
handicaps que permitissem maior interatividade entre
peers
,
bem como o desenvolvimento dos objetivos extra como a tolerncia de falhas e
segurana.
Segue uma breve descrio das contribuies de cada membro do grupo
para o projeto, bem como uma estimativa da percentagem de participao de cada
um no desenvolvimento do mesmo:
Joo Monteiro (15%): juntamente com o resto do grupo, participou na fase
inicial da concepo do projeto; ajudou tambm a delinear as funcionalidades a
implementar e os protocolos a utilizar juntamente com o Mauro. Desenvolveu
tambm com o Mauro as classes da lgica, bem como o relatrio.
Referncias
https://www.flickr.com/services/api/flickr.photos.search.html