Università degli studi di Bologna
Facoltà di Ingegneria
Corso di Ingegneria Informatica
PROTOTIPO DI UN
GIOCO DI STRATEGIA
IN RETE
Progetto per il corso di
Reti di Calcolatori LS
Frof. Antonio Corradi
A.A. 2006/2007
Alberto Buccella
0000197022
Specifiche
Butch è un prototipo di gioco in rete realizzato per
sperimentare e approfondire alcuni protocolli studiati
durante il corso.

Specifiche di Progetto:
 Mettere a disposizione del progettista gli strumenti necessari alla
realizzazione di una piattaforma di gioco.
 Fornire gli strumenti necessari all’utente per poter interagire
con il sistema nei limiti delle azioni che gli competono
 Garantire l’integrità dei dati
 Gestire il recovery del sistema con “Ipotesi di guasto singolo”
Bucth
Il gioco prevede che un utente, una volta scelto il proprio
ruolo (Pizzaiolo, Fornitore o Boss), possa:

effettuare il login e il logout

visualizzare lo stato di citta, strade e giocatori

cambiare il nome delle entità relative al priorio giocatore

fare scambi con altri utenti

fare attacchi ad altri utenti

scambiare messaggi con altri giocatori
Comunicazione con i Server
All’atto dell’iscrizione al sistema l’utente riceverà una
lista contenete tutti gli indirizzi dei server presenti e la
salverà nel file “server”

Possibilità di tentare su tutti i server prima di
comunicare un fallimento

Ogni volta che l’utente effettuerà il login il file verrà
aggiornato

Restituzione trasparente dell’indirizzo del server al
quale è meglio collegarsi

Reindirizzamento
S1
5
S2
3
C
4
1
2
S3
Azione Atomica 1/2
INITIAL
INITIAL
No
Log begin_committ
Log abort
Ready to
committ?
Si
WAIT
Log ready
Azione Atomica 2/2
Yes
Any
Log abort
Abort?
READY
No
Abort
Log committ
Type of
message
Commit
COMMIT
ABORT
Log abort
Log committ
Log
End_of_trans
ABORT
COMMIT
Risposta ai Guasti

Heartbeat
Una volta rilevato il guasto il server master:
Avvisare tutti gli altri che si è entrati in una sezione
critica
 Riorganizzare il file “città” e distribuirlo a tutti gli altri
server
 Attendere tutte le risposte e poi comunicare il
ritorno dello stato a regime a tutti

Risposta ai Guasti
Una volta rilevato il guasto i server non master:

Percorrono il vecchio file “città e per ogni strada:
 se il server relativo alla copia passiva è quello caduto
recupera la nuova destinazione e ricrea la copia
 se il server relativo alla copia attiva è quello caduto
attiva la copia che è presente nel proprio server
Avvisare il server master che ha terminato la fase
di riorganizzazione

Attende il messaggio di fine sezione critica e rientra in
stato di regime

Risposta ai Guasti
Risposta ai Guasti
Vantaggi dovuti alla presenza del file “città”:
possibilità di distribuire il carico in maniera equa politiche
di scelta ad hoc a seconda della situazione

possibilità, a patto che venga realizzato un protocollo di
elezione, si non dover sottostare all’“Ipotesi di singolo
guasto”

Riorganizzazione
Riorganizzazione
Organizzazione iniziale:


città

Giocatori

CopiaGiocatori

Strade

CopiaStrade

server
Aggiungere o togliere strade

Aggiungere o togliere server
Considerazioni Finali
Il sistema è stato testato in locale con una simulazione
che ipotizzava la presenza di 5 server

Il sistema si è dimostrato robusto anche a fronte di guasti
singoli

Possibili evoluzioni:
Il sistema è privo di sicurezze
 Non limitarsi alla realizzazione di uno specifico gioco
permettere al progettista di realizzare qualsiasi tipo di
gioco desideri

FINE
Scarica

Risposta ai Guasti