Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Projekt Alcatraz Java RMI / Spread - Gruppe A4. Agenda Architektur des Gesamtsystems Ablauf zwischen Server und Client Ablauf Client 2 Client Serverausfälle.

Ähnliche Präsentationen


Präsentation zum Thema: "Projekt Alcatraz Java RMI / Spread - Gruppe A4. Agenda Architektur des Gesamtsystems Ablauf zwischen Server und Client Ablauf Client 2 Client Serverausfälle."—  Präsentation transkript:

1 Projekt Alcatraz Java RMI / Spread - Gruppe A4

2 Agenda Architektur des Gesamtsystems Ablauf zwischen Server und Client Ablauf Client 2 Client Serverausfälle tolerieren Remote Interface Definition Server Remote Interface Definition Client 2© 2009 FH Technikum Wien

3 3 Architektur

4 Ablauf Server 4© 2009 FH Technikum Wien RMI Registry and SPREAD Deamon running Is Master Server BIND SPREAD WAIT ANZ == Maximu m START GAME ANZ >1 REGISTER FALSE ANZ<4 FORCE START TRUE FALSE TRUE Start Server Backup Server IM BACKUP I HAVE TO WAIT FALSE

5 Registrierungs Form Client 5© 2009 FH Technikum Wien

6 Ablauf Client 6© 2009 FH Technikum Wien START CONNECT REGISTER WAIT MANUAL START PLAY END USER ENTERS DATA LOOKUP REGISTER START BUTTON ANZ == MAX START GAME ON CLIENTS FINISH ANZ== 1 ANZ> 1 START GAME ON CLIENTS

7 Zeitlicher Ablauf 7© 2009 FH Technikum Wien EVERY CLIENT RMI - REGISTRY SERVER BIND LOOKUP SERVER REGISTER START THE GAME UNDEFINED TIMESPAN

8 Client Y Client X Client 2 Client 8© 2009 FH Technikum Wien RMI: Player, Prisoner, Row und Column were sent Zug 1 Do Remote Move WAIT Do Local Move Zug 2 Do Remote Move WAIT Do Local Move RMI: NextOne() Zug 3WAIT

9 Client 2 Client Fehlerfall: –Spielpartner antwortet nicht Timeout Spielabbruch –Der zu ziehende Spieler zieht nicht Human Error – Der Client ist manuell zu beenden –Spielzug Übertragung im Transaction Modus Der nächste in der Reihe bekommt seinen Zug erst, wenn bei alle anderen Clients der Zug erfolgreich zugestellt wurde. 9© 2009 FH Technikum Wien

10 Serverausfälle 10© 2009 FH Technikum Wien W Start Server Start Server Join spread group as slave Initial Backup Master Already Exists Bind to rmi- Registry Client has Looked Up Client has Looked Up Master Server New Clients would be announced to each Backup Normal Backup Server Request Client- Objects from Master Spread Yes No Client want to register

11 11© 2009 FH Technikum Wien Serverausfälle Failure of Master Detected by Backup Failure of Master Detected by Backup Backup becomes Master Backup becomes Master Election of new Master Master Sends Update to Group Verwendung von Active Replication über Spread Election Mode = Der erste der es erkennt Verwendung von Verteilten Transaktion erst wenn jeder die Änderung erhalten hat, gilt sie Failure des Backup Servers Kein Problem. Restart durch Admin Failure des Master Servers:

12 Interface IBackupServer public interface IBackupServer extends Remote { public Boolean IsAlive() throws RemoteException; public Boolean IsMaster() throws RemoteException; public void syncGroup(Object[] data) throws Exception; } 12© 2009 FH Technikum Wien

13 Interface IGameServer 13© 2009 FH Technikum Wien public interface IGameServer extends Remote { public boolean startGameNow() throws RemoteException; public void registerClient(IClient client) throws RemoteException, IImNotMasterServerException; }

14 Klasse GameServer Attribute: –Liste der aktive Server(inklusive MasterServer) –Referenz auf MasterServer –Liste von Games Game wird die einzelnen Clients enthalten Implementiert AdvancedMessageListener Interface dadurch bekommt man Änderungen in der Server Gruppe mit 14© 2009 FH Technikum Wien

15 Interface IGameClient 1/2 public Boolean IsAlive() throws RemoteException; public void doRemoteMove(Player player, Prisoner prisoner, int rowOrCol, int row, int col) throws RemoteException; public void nextOne() throws RemoteException; public void doStartGame(List others,String firstPlayerId) throws RemoteException; 15© 2009 FH Technikum Wien

16 Interface IGameClient 2/2 public String getPlayerName() throws RemoteException; public void setPlayerId(String playerId) throws RemoteException; public String getPlayerId() throws RemoteException; 16© 2009 FH Technikum Wien

17 Klasse GameClient Attribute –IsCurrentActivePlayer –Liste von Clients(Mitspieler) –Liste von Servern(kann auch nur einer sein) –Spielername –SpielerID – wird vom Server vergeben Leitet von UnicastRemoteObject ab dadurch ist der Proxy serialisierbar und somit als Parameter über RMI versendbar System.setSecurityManager(new RMISecurityManager()); Server Namen bzw Adressen werden in einem XML-Config File gespeichert 17© 2009 FH Technikum Wien


Herunterladen ppt "Projekt Alcatraz Java RMI / Spread - Gruppe A4. Agenda Architektur des Gesamtsystems Ablauf zwischen Server und Client Ablauf Client 2 Client Serverausfälle."

Ähnliche Präsentationen


Google-Anzeigen