Progetto per l'a.a. 2009-2010
Realizzare un sistema client-server per la prenotazione di posti su treni passeggeri,
destinato agli addetti delle agenzie di viaggi,
che offra le seguenti funzionalità:
- Server:
- Capacità di gestire multiple connessioni contemporanee.
- Funzioni di supporto a:
- ricerca di un treno, contraddistinto da un numero di codice univoco e caratterizzato da:
- stazione di partenza;
- stazione di arrivo;
- orario di partenza;
- prenotazione di uno o più posti (solo se disponibili). I posti sono numerati. La prenotazione deve essere corredata da un identificativo univoco, in modo da poterla recuperare per la eventuale disdetta;
- disdetta di una prenotazione, con contestuale riassegnazione a "disponibili" dei posti di cui alla prenotazione stessa;
- notifica dell'esito dell'operazione (sia positivo che negativo).
- Client
:
- Capacità di connessione e disconnessione al/dal server.
- Funzioni di supporto a:
- ricerca di un treno;
- prenotazione di uno o più posti (solo se disponibili);
- disdetta di una prenotazione;
- visualizzazione dei messaggi del server.
Note:
La base dati che rappresenta i treni disponibili può essere costituita da uno o più file, che vengono letti dal server all'avvio ed aggiornati alla chiusura del server.
All'interno dell'applicazione server, il record di descrizione di un treno deve contenere almeno:
- nome del treno (ad es. "Freccia viola");
- numero di codice univoco del treno;
- stazione di partenza;
- stazione di arrivo;
- orario di partenza;
- lista/array/elenco dei posti disponibili;
- lista delle prenotazioni correnti, ciascuna delle quali e' caratterizzata da un identificativo univoco.
Il server deve garantire, attraverso opportuni meccanismi di sincronizzazione, che uno stesso posto non venga prenotato da più di un cliente. Solo in caso di disdetta della prenotazione il posto potrà, successivamente, essere prenotato di nuovo.