SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig...
-
Upload
godehard-lahner -
Category
Documents
-
view
109 -
download
3
Transcript of SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig...
SAM – Projekt AlcatrazFossati Christian
Schramek Stefan
Strobl Michael
Vogel Sebastian
Zornig Jürgen
2© 2011 FH Technikum Wien
Architektur
Spieler 1
Spieler 2 Spieler 3
Spieler 4
Client Kommunikation
Registrierung
Spread Group
Master
Slave
Slave
Slave
Spread
Daemon
Spread
Daemon
Spread
DaemonRMI
Registry
RMI
Registry
RMI
Registry
RMI
Registry
Spread
Daemon
Grober Ablauf:
1. Clients registrieren sich an einem Master Registrierungsserver
2. Spiel über P2P Verbindungen ohne Serverbeteiligung
3© 2011 FH Technikum Wien
Ablauf Registrierungsserver - Client
ClientStart
Register
Server voll
Spiel nicht voll
Client wartet auf Spielstart
zu wenig Teilnehmer OK
abmelden
Server voll
Server init. Spiel
Spiel gestartet
Force Start
4© 2011 FH Technikum Wien
Ablauf Client to ClientSpiel
gestartet
Benutzer Eingabe (GUI)
Zug
Zug an Spieler 1
Zug an Spieler n
[Timeout]ja
nein
Fehlermeldung an restliche Spieler
Nächster Spieler an der Reihe
Bin ich am Zug
nein
Warten auf Zug
5© 2011 FH Technikum Wien
Start Server
Master existiert Master Server
Backup initialisieren
Backup Server
Synchronisation über Spread
Nein
Ja
Spread
Lookup Client
Serverausfälle
Registry Server
interface IRegistryServer {PlayerAdapter createPlayer(String name)
throws NameAlreadyInUseException;void register(PlayerAdapter player)
throws GameRegistryException;void unregister(PlayerAdapter player)
throws GameRegistryException;void forceStart(PlayerAdapter player)
throws GameStartException;}
6© 2011 FH Technikum Wien
Interfaces
Client
interface IClient { void reportNewMaster(String host, int port);
bool isAlive() throws RemoteException;
bool startGame(List<IClient> players) throws GameStartException;
void doMove(Player player, Prisoner prisoner, int rowOrCol, int row, int col) throws MoveException;
void yourTurn(); void playerAbsent(PlayerAdapter player);}
7© 2011 FH Technikum Wien
Interfaces
Hilfsklasse Assoziiert Player mit seinem
jeweiligen Client Stub Wird vom RegistryServer erstellt dadurch systemweit einheitliche
PlayerID´s
8© 2011 FH Technikum Wien
PlayerAdapter
Danke für eure Aufmerksamkeit
9© 2011 FH Technikum Wien