9
SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

Embed Size (px)

Citation preview

Page 1: SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

SAM – Projekt AlcatrazFossati Christian

Schramek Stefan

Strobl Michael

Vogel Sebastian

Zornig Jürgen

Page 2: SAM – Projekt Alcatraz Fossati 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

Page 3: SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

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

Page 4: SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

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

Page 5: SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

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

Page 6: SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

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

Page 7: SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

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

Page 8: SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

Hilfsklasse Assoziiert Player mit seinem

jeweiligen Client Stub Wird vom RegistryServer erstellt dadurch systemweit einheitliche

PlayerID´s

8© 2011 FH Technikum Wien

PlayerAdapter

Page 9: SAM – Projekt Alcatraz Fossati Christian Schramek Stefan Strobl Michael Vogel Sebastian Zornig Jürgen

Danke für eure Aufmerksamkeit

9© 2011 FH Technikum Wien