Projekt Alcatraz Java RMI Spread Gruppe A 4

  • Slides: 17
Download presentation
Projekt Alcatraz Java RMI / Spread - Gruppe A 4

Projekt Alcatraz Java RMI / Spread - Gruppe A 4

Agenda § § § Architektur des Gesamtsystems Ablauf zwischen Server und Client Ablauf Client

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

Architektur © 2009 FH Technikum Wien 3

Architektur © 2009 FH Technikum Wien 3

Ablauf Server RMI Registry and SPREAD Deamon running Start Server FALSE ANZ<4 BIND SPREAD

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

Registrierungs Form Client © 2009 FH Technikum Wien 5

Registrierungs Form Client © 2009 FH Technikum Wien 5

Ablauf Client START USER ENTERS DATA CONNECT ANZ == MAX START GAME ON CLIENTS

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

Zeitlicher Ablauf UNDEFINED TIMESPAN EVERY CLIENT LOOKUP SERVER START THE GAME RMI - REGISTRY

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

Client 2 Client X Client Y Zug 1 Do Remote Move WAIT RMI: Player,

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

Client 2 Client § Fehlerfall: – Spielpartner antwortet nicht Timeout § Spielabbruch – Der

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. © 2009 FH Technikum Wien 9

Serverausfälle Start Server W group Join spread as slave Master Already Exists Bind to

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

Serverausfälle • Failure des Backup Servers Kein Problem. Restart durch Admin • Failure des

Serverausfälle • Failure des Backup Servers Kein Problem. Restart durch Admin • Failure des Master Servers: Failure of Master Detected by Backup Election of new Master Backup becomes 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 © 2009 FH Technikum Wien 11

Interface IBackup. Server public interface IBackup. Server extends Remote { public Boolean Is. Alive()

Interface IBackup. Server public interface IBackup. Server extends Remote { public Boolean Is. Alive() throws Remote. Exception; public Boolean Is. Master() throws Remote. Exception; public void sync. Group(Object[] data) throws Exception; } © 2009 FH Technikum Wien 12

Interface IGame. Server public interface IGame. Server extends Remote { public boolean start. Game.

Interface IGame. Server public interface IGame. Server extends Remote { public boolean start. Game. Now() throws Remote. Exception; public void register. Client(IClient client) throws Remote. Exception, IIm. Not. Master. Server. Exception; } © 2009 FH Technikum Wien 13

Klasse Game. Server § Attribute: – Liste der aktive Server(inklusive Master. Server) – Referenz

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

Interface IGame. Client 1/2 public Boolean Is. Alive() throws Remote. Exception; public void do.

Interface IGame. Client 1/2 public Boolean Is. Alive() throws Remote. Exception; public void do. Remote. Move(Player player, Prisoner prisoner, int row. Or. Col, int row, int col) throws Remote. Exception; public void next. One() throws Remote. Exception; public void do. Start. Game(List<IClient> others, String first. Player. Id) throws Remote. Exception; © 2009 FH Technikum Wien 15

Interface IGame. Client 2/2 public String get. Player. Name() throws Remote. Exception; public void

Interface IGame. Client 2/2 public String get. Player. Name() throws Remote. Exception; public void set. Player. Id(String player. Id) throws Remote. Exception; public String get. Player. Id() throws Remote. Exception; © 2009 FH Technikum Wien 16

Klasse Game. Client § Attribute – – – Is. Current. Active. Player Liste von

Klasse Game. Client § Attribute – – – Is. Current. Active. Player Liste von Clients(Mitspieler) Liste von Servern(kann auch nur einer sein) Spielername Spieler. ID – wird vom Server vergeben § Leitet von Unicast. Remote. Object ab dadurch ist der Proxy serialisierbar und somit als Parameter über RMI versendbar § System. set. Security. Manager(new RMISecurity. Manager()); § Server Namen bzw Adressen werden in einem XML-Config File gespeichert © 2009 FH Technikum Wien 17