Laboratorio di Reti, Corsi A e B. Text-Twist. Progetto di Fine Corso A.A. 2016/17

Documenti analoghi
Laboratorio di Programmazione di Rete Laurea Triennale in Informatica Applicata Progetto di fine Corso - A.A. 08/09

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

SISTEMI DI ELABORAZIONE

Manuale utente. Ministero delle Infrastrutture e dei Trasporti. GEIW_ManualeUtente_GestioneIstruttoria_UtenteImpresa-1.0.docx

SISTEMI DI ELABORAZIONE

Guida alla Configurazione del Client di posta Microsoft XP Outlook 2006

INTERNET Ing. Giovanni Pozzi

Posta elettronica: primi passi con gmail (inviare, ricevere, leggere, eliminare mail

Architetture di rete. 4. Le applicazioni di rete

LABORATORIO di Reti di Calcolatori

GUIDA PER LA COMPILAZIONE DELLA DOMANDA

Manuale utente Soggetto Promotore Erogatore Politiche Attive

SISPOR Sistema informativo a Supporto del Programma Operativo Occupazione FSE 2007/2013. Manuale Utente REGISTRAZIONE UTENTE

Software Servizi Web UOGA

Manuale per il Farmacista

Manuale Fornitori Istruzioni per l utilizzo del Portale e-procurement

Portale S.i.ASIM. Manuale Azienda

Comune di Montecarlo Porcari - Villa Basilica Gestione Associata SUAP PORTALE AIDA

Sommario. Introduzione. Di cosa si tratta?

Contest grafico Applicazione mobile Area Clienti3

Manuale Utente. Modulo TS INPS release 1.0

Guida Tecnica di compilazione

Seconda Università degli Studi di Napoli

ISTRUZIONI PER L ATTIVAZIONE E LA REGISTRAZIONE DELLE UTENZE SUI SULL APPLICATIVO ALI

Manuale cassa integrazione in deroga

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

SERVIZIO DI CONSULTAZIONE ELENCHI PEC

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

Manuale utente per Avvocati

LINEE GUIDA e ISTRUZIONI TECNICHE

Utilizzo delle Maschere in Microsoft Access

Manuale Utente di registrazione alla BDAP (Banca Dati delle Amministrazioni Pubbliche) Bilanci Armonizzati

Laboratorio di Programmazione di Rete-A Laurea Triennale in Informatica. a.a.08/09 Progetto di fine Corso

SERVIZIO DI HELPDESK - ISTRUZIONI PER L USO

MANUALE UTENTE GUIDA ALL UTILIZZO DEL FORMATIVE -REGIONE MARCHE PROFILO PROFESSIONISTA

MANUALE UTENTE. Portale Web Scambio sul posto GSE IMPRESE DI VENDITA. stato documento draft approvato consegnato

IL NUOVO TOOL E-SOLUTIONS DHL e-billing

Come funziona:

GUIDA ALLA REGISTRAZIONE AL SERVIZIO

Sistema per la gestione dell accreditamento e monitoraggio della formazione continua in medicina (ECM_L) Guida all applicazione

PROCESSO DI ATTIVAZIONE FIRMA AUTOMATICA E FIRMA REMOTA ATTIVAZIONE FIRMA

CitiManager - Guida rapida per titolari di carta

ALLEGATO Specifiche di Interfaccia

Guida Utente Registrato SIMIT

18/05/2016 MANUALE UTENTE

GUIDA ALL USO DEL SERVIZIO WiFiNext E RISOLUZIONE DELLE PRINCIPALI PROBLEMATICHE

INDICAZIONI OPERATIVE PER L ACCESSO AL SERVIZIO DI CODIFICA STRUMENTI FINANZIARI E SEGNALAZIONI EX ART.129 TUB

Istruzioni per la gestione della password personale

ACCESSO AI PORTALI DIREZIONALI REGIONALI

COME REGISTRARSI AL PORTALE

GUIDA ALLA COMPILAZIONE ON LINE DELLA DOMANDA DI AMMISSIONE ALLA PROVA FINALE

APP MOBILE. Requisiti...2. Lingue disponibili Store Home page...6. Documenti Personali...8. Comunicazioni aziendali...

Configurazione Posta Elettronica istituzionale con

GUIDA OPERATIVA PER L ACCREDITAMENTO NEL REGISTRO DEI REVISORI LEGALI

Sistema IAM REGISTRAZIONE UTENZA GUIDA OPERATIVA PER L UTENTE. 23 dicembre 2016

GUIDA ALLA COMPILAZIONE DEL PIANO DEGLI STUDI ON-LINE

Manuale versione Mobile (Smartphone Tablet)

Via Sandano 47bis/ Correzzola Loc. Villa del Bosco (PD)

Manuale Utente. di registrazione alla BDAP. (Banca Dati delle Amministrazioni Pubbliche) Bilanci Armonizzati. Versione 1.0

Registrazione aziende per esportazione negli USA di prodotti alimentari diversi dalla carne e a base di carne

DOCUMENTO PER SUPPORTARE LE ATTIVITA DI REGISTRAZIONE DELLE IMPRESE CONTO TERZI AL PORTALE E FACILITARE L OTTENIMENTO DELLE CREDENZIALI DI ACCESSO

Progetto: Dama. 1 - Descrizione. 2 - Regole del gioco. Appello di febbraio 2003

INSTALLAZIONE - CONFIGURAZIONE

Struttura di un applicazione Instant Developer

DOCUWEB Documentazione on-line

1. COME ISCRIVERSI AL CONCORSO

Istruzioni per la Compilazione Online Domanda Servizio Civile

INVIARE MESSAGGI CON UN SEMPLICE CLIC

Utilizzo della Piattaforma da parte dei Soggetti di per sé accreditati ai sensi dell art.1 comma 5 e 6 della Direttiva n.170/2016. Istruzioni ON-LINE

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Sommario. Introduzione. Di cosa si tratta?

Manuale cliente finale portale accertamenti delibera 40

Manuale NoiPA. Guida all accesso del Portale NoiPA

Provincia di Verona. Sistema Informativo Territoriale Provinciale. Guida alla localizzazione delle opere pubbliche in SITP

Manuale Utente di registrazione alla BDAP (Banca Dati delle Amministrazioni Pubbliche) Bilanci Armonizzati

Manuale per la gestione dei calendari delle attività formative Piani formativi approvati e presenti su PG2F. Soggetti Presentatori

portineria Centralino di Terraneo Istruzioni d uso per l utente 10/02 - NC PART. B9576C

Utilizzo delle Maschere in Microsoft Access

Manuale Utente del Portale MyTerna. La Registrazione

Aste Oxanet. Guida all utilizzo

Acquisto corsi online da parte di aziende

6. Gestione delle pratiche

Servizio Nazionale di Valutazione del Sistema Educativo di Istruzione e di Formazione anno scolastico 2004/2005

SOCIETÀ ENERGETICA LUCANA

Guida utente per l accreditamento al sistema di invio notifiche web SEVESO III.0

Clicca su Immatricolazione

Portale dei Servizi Telematici pagamenti Vademecum per gli utenti. Premessa. HomePage del Portale

GUIDA ALL ISCRIZIONE. Indice

Modello a scambio di messaggi

Manuale utente sito LabCal

EPOD.com MAGAZZINO RICAMBI MANUALE D USO. Aggiornamento 01/05/2010 pag.1

Portale dei Servizi Telematici pagamenti Vademecum per gli utenti. Premessa. HomePage del Portale

Regione Puglia. Dipartimento Sviluppo Economico, Innovazione, Istruzione, Formazione e Lavoro. Sezione Formazione Professionale

INDICE. REGISTRAZIONE: pag. 1. PER UTENTI GIA REGISTRATI CHE HANNO DIMENTICATO USERNAME E PASSWORD pag. 4. INSERIMENTO DOMANDA: pag.

Plugin Gestione Circolari Sviluppato da Scimone Ignazio

MANUALE ISCRIZIONE E DOMANDA ON-LINE AI CENTRI RICREATIVI ESTIVI 3-6 E 6-11 ANNI DEL COMUNE DI UDINE

Registro Custodie Manuale per l utente

ISCRIZIONI ONLINE 2014 II FASE Scuole Verifica domande

Transcript:

Laboratorio di Reti, Corsi A e B Text-Twist Progetto di Fine Corso A.A. 2016/17 1.Descrizione del problema Il progetto consiste nello sviluppo di un gioco multiplayer online. All inizio di una partita il server fornisce ai giocatori una lista di lettere, quindi i giocatori devono formare delle parole con quelle lettere. Alla fine il server fornisce una classifica dei giocatori in base al numero e alla lunghezza delle parole trovate. Il server mantiene anche una classifica universale degli utenti. Per giocare gli utenti si devono registrare, quindi possono: effettuare il login iniziare una nuova partita partecipare alla partita (su invito) consultare la classifica generale effettuare logout Componenti Text-Twist deve essere implementato mediante 2 componenti principali, che interagiscono usando diversi protocolli e paradigmi di comunicazione di rete ( TCP, UDP e RMI). Le componenti sono le seguenti: TwistClient Gestisce l interazione con l utente, tramite una user interface (testuale o grafica) e comunica con il TwistServer per eseguire le azioni richieste dall utente. La sua struttura è quella di un thin-client, in quanto la realizzazione delle principali funzionalità è demandata al server. In seguito indicheremo con TwistClient(u) la componente TwistClient associata all utente u. TwistServer Gestisce la fase di registrazione, memorizza tutti gli utenti registrati e i loro punteggi totali, riceve richieste di creazione di partite e gestisce le partite: invia le lettere agli

utenti, riceve le parole, calcola i punteggi e invia la classifica ai giocatori. Poiché il client ha una struttura thin, tutte le strutture dati utilizzate per queste funzionalità sono gestite dal server stesso. 2.Funzionalità principali a. Registrazione utenti Quando un utente u apre l applicazione, TwistClient(u) offre la possibilità di effettuare la registrazione o il login. Per la registrazione, TwistClient(u) richiede il nome utente e la password, che vengono quindi spediti, tramite RMI, al TwistServer che verifica se il nome dell utente esiste già nel sistema. se non esiste, lo aggiunge alla lista di utenti e restituisce un messaggio di conferma. se esiste, restituisce un messaggio di errore b. Login TwistClient chiede all utente di inserire la password, e invia username e password al TwistServer, usando RMI. In questo passo vengono inviati tutti i dati del cliente che servono per le altre funzionalità (in base al design specifico dell applicazione). Il TwistServer verifica la correttezza dei dati e risponde con un messaggio di conferma. c. Richiesta nuova partita Un utente A inserisce i nomi degli N utenti con cui intende giocare, U1, U2,.., UN, N 1 (almeno un opponente) e TwistClient(A) invia tali nomi al TwistServer, usando una connessione TCP. TwistServer verifica che ogni Ui sia online e avvisa ogni Ui dell invito, usando una callback RMI messa a disposizione da ogni TwistClient(Ui). Per ogni utente Ui, TwistClient(Ui) notifica l invito al giocatore e lo memorizza in una lista locale di inviti. Dopo aver richiamato tutte le callback, TwistServer conferma l inoltro dell invito all utente A, chiude la connessione TCP e richiama anche la callback di A. Se uno degli utenti non risulta online l utente A riceve un messaggio di errore. d. Setup nuova partita Quando l invito viene notificato al TwistClient(u), l utente u può scegliere (in autonomia) di visualizzare gli inviti, usando il menu offerto da TwistClient(u). Ci possono essere vari inviti disponibili (arrivati in modo asincrono), però l utente deve scegliere di rispondere a uno di loro. L invito può essere accettato o rifiutato. La risposta viene inviata al server su una connessione TCP. Quando un invito viene accettato, gli altri vengono rimossi dalla lista locale del cliente.

Se tutti gli utenti accettano l invito, la partita può essere iniziata. Altrimenti, dopo 7 minuti, la partita viene annullata dal server (gli utenti che hanno accettato ricevono un messaggio di errore). e. Avvio nuova partita Una volta ricevuta la risposta da tutti i giocatori, il server invia, usando le stesse connessioni TCP su cui ha ricevuto la risposta, le lettere per la partita. I TwistClient ricevono le lettere, chiudono la connessione TCP e comunicano agli utenti che il gioco è pronto. Quando gli utenti confermano, i TwistClient mostrano le lettere e accettano le parole dal giocatore per un periodo di 2 minuti. Quando i 2 minuti finiscono, TwistClient ferma l input dall utente e invia le parole al server, usando il protocollo UDP. Il server aspetta un massimo di 5 minuti per ricevere le parole. Se in questo tempo un utente non invia nessun messaggio, riceverà 0 punti per la partita. Ogni TwistClient può avere solo una partita attiva ad un certo momento, mentre il server deve essere in grado di gestire più partite in contemporanea. Tip: è messo a disposizione un file contenente un dizionario di parole in inglese. Per generare le lettere iniziali, è sufficiente scegliere una parola di 6-7 lettere e permutare le lettere prima di inviarle ai giocatori. f. Invio risultati partita Il punteggio di un giocatore viene calcolato come la somma dei punteggi per ogni parola trovata. Ogni parola riceve un punteggio uguale al numero di lettere utilizzate. Solo le parole valide ricevono un punteggio ed una parola risulta valida se usa solo le lettere a disposizione ed è inclusa nel dizionario. Tutti i giocatori di una partita sono registrati ad un canale multicast. I risultati della partita (il punteggio e la classifica di questa partita) vengono inviati in multicast a tutti i giocatori della partita. I punteggi vengono usati per la classifica della partita in corso, ma vengono anche sommati al punteggio generale dei giocatori. In questo modo, partita dopo partita, gli utenti accumulano dei punti, che contribuiscono alla loro classifica generale. g. Visualizzazione classifica generale Il sistema offre la possibilità di visualizzare la classifica generale degli utenti. La richiesta viene inviata al TwistServer che risponde con la lista ordinata di utenti e il loro punteggio totale. La comunicazione avviene mediante TCP, e la connessione viene chiusa dopo che il server invia la classifica.

Il server deve avere un meccanismo che gli consenta di memorizzare in modo persistente il proprio stato, che comprende gli utenti registrati e il loro punteggio. In questo modo lo stato può essere ripristinato in caso di crash inaspettato del server. h. Logout TwistClient(u) invia un messaggio RMI al server che mette l utente offline (non può ricevere inviti). L utente dovrà effettuare il login, nel caso in cui usi successivamente l applicazione. 3.Interfaccia utente Offre opzioni all utente per eseguire le varie funzionalità: Fornire il nome utente e la password per la registrazione. Fornire il nome utente e la password per il login. inserire le parole composte con le lettere a disposizione Visualizzare la classifica generale. Logout La realizzazione dell interfaccia può essere: testuale mediante riga di comando, nella soluzione base, (opzionale) grafica: quest ultima soluzione risulta più avanzata e consente di gestire meglio le operazioni asincrone. 4.Modalità di svolgimento del Progetto Il progetto deve essere svolto singolarmente. Il materiale consegnato deve comprendere: il codice dell applicazione e di eventuali programmi utilizzati per il test delle sue funzionalità Le istruzioni necessarie per compilare il codice sorgente ed eseguirlo la relazione in formato pdf che deve contenere: una descrizione generale dell architettura del sistema, motivando le scelte che non siano già indicate nel testo del progetto. uno schema generale dei thread attivati, con particolare riferimento al controllo della concorrenza, e delle strutture dati utilizzate. per ogni componente e struttura dati utilizzate, una descrizione delle classi definite (preferibilmente usando anche UML).

Solo per il corso B: il codice eseguibile ( 2 archivi eseguibili.jar, uno per il client, l altro per il server) con indicazioni precise sulle modalità di esecuzione. L organizzazione e la chiarezza della relazione, nonché l organizzazione del codice e i commenti, influiranno sul voto finale. 5.Modalità di sottomissione del progetto Corso A: relazione e codice sorgente devono essere consegnati sia in formato elettronico, sul sito del corso, ( https://elearning.di.unipi.it/course/view.php?id=79 ), sia in formato cartaceo, presso la portineria del Dipartimento, Corso B: relazione, codice e eseguibili devono essere consegnati solo in formato elettronico sul sito del corso ( https://elearning.di.unipi.it/course/view.php?id=78 ), seguendo il link all assignment che sarà disponibile per ogni appello. Non si accettano sottomissioni in ritardo.