SISTEMAS TOLERANTES A FALTAS e TEMPO-REAL

Licenciatura em Informática
2001/2002 - 2 Semestre


Trabalho prático

O trabalho pretende introduzir mecanismos de tolerância a faltas em jogos de computador multi-utilizador. Para isso, será fornecidos aos alunos um protótipo bastante simples de um jogo desenvolvido na linguagem Java. O jogo possui dois componentes: a saber:

Apesar de extremamente simples, este protótipo captura as interacções existentes em muitas concretizações disponíveis actualmente.

Na versão sem tolerância a faltas, o servidor não se encontra replicado e os clientes interagem com o servidor usando ligações ponto-a-ponto sem qualquer capacidade de reconfiguração. Tipicamente, um comando (por exemplo, um movimento) dado na interface cliente é enviado para o servidor que posteriormente informa todos os clientes da alteração provocada no estado do jogo.

Pretende-se dotar esta arquitectura de mecanismos de tolerância a faltas, permitindo aos jogadores continuarem a jogar mesmo que o servidor falhe.

Para satisfazer estes requisitos não funcionais, os alunos devem usar o sistema de comunicação em grupo Appia. Este sistema fornece serviços de filiação e comunicação em grupo com diferentes propriedades e tipos de ordenação.

Em particular, os alunos devem explorar o serviço de chamadas a procedimentos remotos replicados desenvolvido por alunos desta cadeira no ano lectivo de 2000-2001. O enunciado desse ano pode ser encontrado aqui e o relatório final do sistema incluído na distribuição pode ser consultado (aqui).

É fornecido um protótipo do jogo sem mecanismos de tolerãncia a faltas. O código está disponível (num zip (prototipo.zip)). Leia também as as notas de introdução ao código (também disponível em pdf).

O trabalho deve abordar facetas com diversos graus de complexidade.

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



Luís Rodrigues