Pretende-se realizar um programa distribuído que, dado um número de opções e de utilizadores humanos, suporte a tomada de decisão acerca de qual a opção a escolher.
O programa deve ter dois modos de operação, nomeadamente: modo definição de sessão e modo votação.
No modo definição de sessão, um utilizador define quais as opções e quais os utilizadores que vão participar numa dada votação. Esta informação deve ficar registada num servidor. Cada sessão deve ter um nome diferente.
No modo votação, o utilizador especifica o nome da sessão e é-lhe mostrado o estado actual (quem já votou e em que opção). O utilizador pode então votar pela primeira vez ou alterar o seu sentido de voto. Caso se atínja a unanimidade ou sistema não deve permitir mais alterações.
O utilizador deve poder votar, independentemente dos restantes utilizadores estarem ou não a usar a aplicação neste instante. Deve também poder votar, mesmo que não consiga comunicar com as máquinas dos restantes utilizadores (quando a comunicação é restablecida, o sistema deve automáticamente re-conciliar as cópias).
Se vários utilizadores estiverem a votar simultaneamente, devem ver as actualizações feitas em tempo de execução, sem relançar a aplicação.
Os alunos devem conceber uma demonstração que ilustre a funcionalidade requerida.
Estações SUN. Software ISIS e outro software que os alunos julguem conveniente.