Esame%20di%20Reti%20di%20Calcolatori%20LS - PowerPoint PPT Presentation

About This Presentation
Title:

Esame%20di%20Reti%20di%20Calcolatori%20LS

Description:

Esame di Reti di Calcolatori LS Andruccioli Daniele 171701 Gli elementi del sistema ORB ha la funzione di servizio di nomi. Gestore ha la funzione di server: gestisce ... – PowerPoint PPT presentation

Number of Views:105
Avg rating:3.0/5.0
Slides: 18
Provided by: Daniel1572
Category:

less

Transcript and Presenter's Notes

Title: Esame%20di%20Reti%20di%20Calcolatori%20LS


1
Esame di Reti di Calcolatori LS
  • Andruccioli Daniele 171701

2
Gli elementi del sistema
  • ORB
  • ha la funzione di servizio di nomi.
  • Gestore
  • ha la funzione di server gestisce i nomi dei
    client registrati (siano giocatori o tavoli) e
    mantiene aggiornate dinamicamente le liste dei
    client attivi.
  • Tavolo
  • come client deve registrarsi e fare il login e il
    logout nel Gestore, come server fornire deve
    fornire i metodi che servono ai giocatori per
    unirsi al tavolo.
  • Giocatore
  • deve registrarsi e fare il login e il logout nel
    Gestore e può unirsi a uno o più tavoli.

3
Interazioni logiche con il Gestore
Gestore
Registra
Tavolo
Registra
Login
Login
Tavolo
Logout
Logout
Dai Lista Tavoli
Dai Lista Tavoli
Dai Lista Giocatori
Tavolo
Tavolo
Tavolo
4
Interazioni logiche con i tavoli
Tavolo
Unisciti
Inizio Partita
Fine Partita
Tavolo
Tavolo
Inizio Partita
Fine Partita
Inizio Partita
Fine Partita
5
File IDL
  • module OG
  • interface Giocatore
  • boolean notificaServer(in string messaggio)
  • boolean notificaPartita(in boolean stato)
  • interface Tavolo
  • boolean unisciti(in string nome)
  • boolean notificaTavolo(in string messaggio)
  • boolean notificaServer(in string messaggio)
  • interface Gestore
  • boolean registrazioneTavolo(in string nome)
  • boolean registrazioneGiocatore(in string nome)
  • string loginTavolo(in string nome)
  • boolean logoutTavolo(in string nome)
  • string loginGiocatore(in string nome)

6
Metodi remoti del Gestore (1)
  • boolean registrazioneTavolo(String nome)
  • Serve per registrare un tavolo.
  • Se è già presente un tavolo con quel nome fra
    quelli già registrati restituisce false,
    altrimenti aggiunge il nome fra i registrati e
    restituisce true.
  • boolean registrazioneGiocatore(String nome)
  • Serve per registrare un giocatore.
  • Se è già presente un giocatore con quel nome fra
    quelli già registrati restituisce false,
    altrimenti aggiunge il nome fra i registrati e
    restituisce true.
  • string loginTavolo(String nome)
  • Serve per il login di un tavolo.
  • Se è già presente un tavolo con quel nome fra
    quelli nella lista o se il tavolo non è
    registrato restituisce false, altrimenti aggiunge
    il nome alle lista, notifica lazione agli
    interessati e restituisce true.
  • boolean loginGiocatore(String nome)
  • Serve per il login di un giocatore
  • Se non è presente un giocatore con quel nome fra
    quelli in lista o se il giocatore non è
    registrato restituisce false, altrimenti rimuove
    il tavolo dalla lista, notifica lazione agli
    interessati e restituisce true.

7
Metodi remoti del Gestore (2)
  • string logoutTavolo(String nome)
  • Serve per il logout di un giocatore
  • Se non è presente un giocatore con quel nome fra
    quelli in lista restituisce false, altrimenti
    rimuove il tavolo dalla lista, notifica lazione
    agli interessati e restituisce true.
  • boolean logoutGiocatore(String nome)
  • Serve per il logout di un giocatore
  • Se non è presente un giocatore con quel nome fra
    quelli in lista restituisce false, altrimenti
    rimuove il tavolo dalla lista, notifica lazione
    agli interessati e restituisce true.
  • boolean notificaTavoloDown(String nome)
  • Serve per segnalare se un tavolo è caduto
  • Se il tavolo non fa parte della lista restituisce
    false, altrimenti fa il logout del tavolo e
    restituisce true.
  • boolean notificaGiocatoreDown(String nome)
  • Serve per segnalare se un tavolo è caduto
  • Se il giocatore non fa parte della lista
    restituisce false, altrimenti fa il logout del
    tavolo e restituisce true.

8
Metodi del Tavolo
  • boolean unisciti(String nome)
  • Serve al giocatore per unirsi al tavolo
  • Se il tavolo non è disponibile restituisce false,
    mentre se è disponibile, aggiunge il giocatore
    alla lista e restituisce true.
  • boolean notificaTavolo(String messaggio)
  • Serve agli altri tavoli per notificare lo stato
    della propria partita
  • boolean notificaServer(String messaggio)
  • Serve al Gestore per notificare il login e il
    logout di un tavolo o di un giocatore

9
Metodi del Giocatore
  • boolean notificaServer(in string nessaggio)
  • Serve al Gestore per notificare il login e il
    logout di un tavolo
  • boolean notificaPartita(in string nome)
  • Serve al tavolo per notificare linizio o la fine
    della partita
  • Se il valore di ingresso è true, significa che è
    iniziata la partita, se è false significa che la
    partita è finita

10
Implementazione del Messaggio
  • ltMessaggiogt
  • ltTavoligt
  • ltTavologt
  • ltNomeTgtnomeltNomeTgt
  • ltAzioneTgtaddltAzioneTgt
  • lt/Tavologt
  • ltTavologt
  • ltNomeTgtnomeltNomeTgt
  • ltAzioneTgtremltAzioneTgt
  • lt/Tavologt
  • ...
  • lt/Tavoligt
  • ltGiocatorigt
  • ltGiocatoregt
  • ltNomeGgtnomeltNomeGgt
  • ltAzioneGgtaddltAzioneGgt
  • lt/Giocatoriegt
  • ltTavologt
  • ltNomeGgtnomeltNomeGgt

11
Valutatore del Messaggio
  • Public String valuta(ListaBeanElementi
    listaTavoli, ListaBeanElementi listaGiocatori,
    String input)
  • Se si devono aggiornare sia la lista di tavoli
    che quella di giocatori
  • public String valutaTavoli(ListaBeanElementi
    listaTavoli, String input)
  • Se si deve aggiornare solo la lista di tavoli
  • public String valutaGiocatori(ListaBeanElementi
    listaGiocatori, String input)
  • Se si deve aggiornare solo la lista di giocatori
  • Le liste sarebbero potute essere implementate in
    qualsiasi modo, ma si è scelto di farlo
    utilizzando i java bean in modo che sia garantita
    la coerenza delle liste di giocatori allinterno
    della classe tavolo.

12
Interfaccia utente
13
Reazione a cadute nalla rete
Connetti
Tavolo
Nessuna Risposta
14
Reazione a cadute nalla rete
Connetti
Tavolo
Nessuna Risposta
Segnala down
Gestore
15
Reazione a cadute nalla rete
Connetti
Tavolo
Nessuna Risposta
Segnala down
Connetti
No Risposta
Gestore
16
Reazione a cadute nalla rete
Connetti
Tavolo
Nessuna Risposta
Segnala down
Connetti
No Risposta
Logout
Notifica
Gestore
Tavolo
Notifica
Notifica
Notifica
Notifica
Tavolo
17
Conclusioni
  • Questa è unarchitettura generale che può andare
    bene per varie applicazioni multigiocatatori in
    rete. A seconda del gioco ogni tavolo può
    prevedere dei metodi per il gioco, oppure
    generare dei processi che si occupino della
    gestione della partita.
  • Evoluzioni del sistema possono prevedere di
    attribuire un punteggio ai giocatori che viene
    modificato alla fine di ogni partita.
Write a Comment
User Comments (0)
About PowerShow.com