This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CUGS Distributed Systems Programming Assignment Marcus Brohede, Gunnar Mathiason, and Sten F. Andler May 13, 2008 1 Introduction This document describes a programming assignment intended for students taking the CUGS Distributed Systems course. It describes a programming exercise that lets students program a bit of Java and CORBA. The classical Byzantine Generals Problem (Lamport, Shostak & Pease 1982) is used as base for a simple game. 2 Aim The aim of this programming assignment is to give students hands-on experi- ence in programming in a distributed environment using Java and CORBA. It also intends to give students a practical understanding of the Byzantine Generals problem, it’s applicability in distributed systems, and how it can be solved by Byzantine agreement. 3 Game Description A number of generals face a deadly army and on the eve of battle they must decide on a coarse of action. To win the battle a majority must carry out the same orders (attack, wait, or retreat). Therefore, they want to be sure that no traitor general can ruin there plans by sending malicious counter commands. The generals have decided to agree using Byzantine agreement 1 (see for example Burns & Wellings (2001) pp 561-564). The following constraints should hold for your system: • Every message that is sent is delivered correctly. • The receiver of a message cannot guarantee who the sender is, i.e., messages are not signed. • Not sending a message is not allowed. When the generals have reached an agreement, the battle takes place. The result of the battle is based on how well the generals have agreed. For example, an incorrect decision loses the battle, i.e., the traitors have been successful. Battles are also influenced by a strength relation, e.g., to win a battle by attack the attacker must be significantly stronger than it’s enemy.battle by attack the attacker must be significantly stronger than it’s enemy....
View Full Document