Esercizi Laboratorio 9 e 10
1. Gestione congresso
Si progetti un'applicazione Client/Server per la gestione delle registrazioni ad un congresso. L'organizzazione del congresso fornisce agli speaker delle varie sessioni un'interfaccia tramite la quale iscriversi ad una sessione, e la possibilità di visionare i programmi delle varie giornate del congresso, con gli interventi delle varie sessioni.
Il server mantiene i programmi delle 3 giornate del congresso, ciascuno dei quali è memorizzato in una struttura dati in cui ad ogni elemento corrisponde una sessione (in tutto 12 per ogni giornata). Per ciascuna sessione vengono memorizzati i nomi degli speaker che si sono registrati (al massimo 5).
Il cliente può richiedere operazioni per
- registrare uno speaker ad una sessione;
- ottenere il programma del congresso;
Il cliente inoltra le richieste al server tramite il meccanismo di RMI. Prevedere, per ogni possibile operazione una gestione di eventuali condizioni anomale (ad esempio la richiesta di registrazione ad una giornata e/o sessione inesistente oppure per la quale sono già stati coperti tutti gli spazi d'intervento).
Il cliente è implementato come un processo ciclico che continua a fare richieste sincrone fino ad esaurire tutte le esigenze utente. Stabilire una opportuna condizione di terminazione del processo di richiesta.
2. Gestione forum
Si vuole implementare un sistema che realizzi un servizio per la gestione di forum in rete. Un forum è caratterizzato da un argomento su cui diversi utenti possono scambiarsi opinioni via rete. Il sistema deve prevedere un server RMI che fornisca le seguenti funzionalità:
- apertura di un nuovo forum, di cui è specificato l'argomento (esempio: giardinaggio)?
- inserimento di un nuovo messaggio indirizzato ad un forum identificato dall'argomento (es: è tempo di piantare le viole, per il forum giardinaggio)?
- registrazione di una callback da parte dell'utente. La registrazione si fa inviando al server un oggetto remoto del cliente, e il nome del forum che vuole seguire. Il server notifica al client, mediante la callback registrata , l'invio di ogni nuovo messaggio a quel forum. Un cliente si può registrare a forum multipli, inviando ogni volta l'oggetto per la callback e il nome del forum.