TOLERÂNCIA A FALTAS DISTRIBUÍDA
Licenciatura e Pós-Graduação em Informática,
2005/2006 - 1 Semestre


Trabalho prático

Nota prévia: Este enunciado pode ser refinado, com vista a esclarecer enventuais dúvidas que apareçam durante a sua concretização.

Para concretizar o trabalho, os alunos devem utilizar o sistema Appia. Este sistema fornece serviços de filiação e comunicação em grupo com diferentes propriedades e tipos de ordenação.

O objectivo do trabalho é criar um jogo multi-utilizador bastante simples. O jogo ocorre num campo quadrado, sendo cada jogador responsável por proteger uma das paredos do campo de uma bola que se move continuamete. Para este efeito, cada jogador controla um cursor que pode deslocar paralelamente à sua parede. A bola faz ricochete quando embate num cursor ou nas paredes que delimitam o campo. O jogo é ilustrado pela seguinte figura:

Para facilitar o trabalho e permitir que os alunos dediquem mais atenção às componentes de gestão da distribuição e replicação, uma interface gráfica simplificada será fornecida.

A versão disponibilizada aos alunos está concretizada usando uma arquitectura cliente servidor. Cada jogador regista-se num servidor, ao qual indica os movimentos do seu cursor. O servidor é responsável por actualizar todos os jogadores de alterações ao estado do jogo (movimentos dos jogadores e da bola).

Os alunos devem utilizar a comunicação em grupo para replicar o servidor de jogo, de maneira que os clientes possam continuar a jogar mesmo que um dos servidores falhe.

Os alunos devem também concretizar optimizações que permitam diminuir o tráfego entre o servidor e os clientes, assim como o tráfego entre as várias réplicas do servidor.

Agradecimento: O docente agradece a colaboração do Dr. Nuno Carvalho e do Dr. José Mocito na codificação do protótipo a fornecer aos alunos.

O código fornecido está disponível em: PONG_TFD05-v2.tgz e também na área tfd000 da "falua".


A título de exemplo, estão também disponíveis alguns relatórios de anos anteriores:



Luís Rodrigues