Strumenti Utente

Strumenti Sito


lpr-b:lpr-b-08:esercizi

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
lpr-b:lpr-b-08:esercizi [04/12/2008 alle 14:27 (17 anni fa)] Andrea Corradinilpr-b:lpr-b-08:esercizi [03/09/2009 alle 09:10 (16 anni fa)] (versione attuale) Andrea Corradini
Linea 40: Linea 40:
  
 Prima della terminazione il thread stampa il valore approssimato di pigreco calcolato fino a quel momento. Prima della terminazione il thread stampa il valore approssimato di pigreco calcolato fino a quel momento.
- 
-//Soluzione proposta: [[http://www.di.unipi.it/~andrea/Didattica/LPR08/Soluzioni/TaskPi.java|TaskPi.java]]// 
  
  
Linea 47: Linea 45:
 Modificare il programma dell'esercizio precedente in modo che il valore approssimato di pigreco calcolato dal thread venga stampato dal main. Modificare il programma dell'esercizio precedente in modo che il valore approssimato di pigreco calcolato dal thread venga stampato dal main.
  
-//Soluzione proposta: [[http://www.di.unipi.it/~andrea/Didattica/LPR08/Soluzioni/TaskPiStampaMain.java|TaskPiStampaMain.java]]// 
  
 ===== Thread Pooling e Indirizzi IP ===== ===== Thread Pooling e Indirizzi IP =====
Linea 59: Linea 56:
   * Infine, si scorre l’**ArrayList**, stampando a video gli **InetAddress**.   * Infine, si scorre l’**ArrayList**, stampando a video gli **InetAddress**.
  
-//Soluzione proposta: [[http://www.di.unipi.it/~andrea/Didattica/LPR08/Soluzioni/Resolve.java|Resolve.java]], 
-[[http://www.di.unipi.it/~andrea/Didattica/LPR08/Soluzioni/Translator.java|Translator.java]], 
-[[http://www.di.unipi.it/~andrea/Didattica/LPR08/Soluzioni/nomisimbolici.txt|nomisimbolici.txt]]// 
  
 === Esercizio 2 === === Esercizio 2 ===
Linea 311: Linea 305:
 Modificare l’Esercizio 1 dell'esercitazione precedente in modo che il server notifichi ogni nuovo voto ricevuto a tutti i clients che hanno votato fino a quel momento. La registrazione dei clients sul server avviene nel momento del voto. Modificare l’Esercizio 1 dell'esercitazione precedente in modo che il server notifichi ogni nuovo voto ricevuto a tutti i clients che hanno votato fino a quel momento. La registrazione dei clients sul server avviene nel momento del voto.
  
-=== Esercizio 1: Forum ===+=== Esercizio 2: Forum ===
  
 Si vuole implementare un sistema che implementi un servizio per la gestione di forum in rete. Un forum è caratterizzato da un argomento su cui diversi utenti, iscritti al forum, possono scambiarsi opinioni via rete.  Si vuole implementare un sistema che implementi un servizio per la gestione di forum in rete. Un forum è caratterizzato da un argomento su cui diversi utenti, iscritti al forum, possono scambiarsi opinioni via rete. 
Linea 320: Linea 314:
   - reperimento dell'ultimo messaggio inviato ad un forum di cui è specificato l'argomento.    - reperimento dell'ultimo messaggio inviato ad un forum di cui è specificato l'argomento. 
 Quindi il messaggio può essere richiesto esplicitamente dal client oppure può essere notificato ad un client precedentemente registrato. Quindi il messaggio può essere richiesto esplicitamente dal client oppure può essere notificato ad un client precedentemente registrato.
 +
 +
 +===== Esercizi su Collezioni Sincronizzate e Secure Sockets=====
 +
 +=== Esercizio 1: Crawler ===
 +
 +Si realizzi un programma **Crawler** che analizza tutti i file presenti
 +in una directory specificata e nelle sue sottodirectory, e visualzza tutte le
 +righe presenti in tali file che contengono una determinata parola chiave //P//.
 +
 +Il programma deve attivare due thread,
 +
 +  * un thread produttore che enumera tutti i file e inserisce un riferimento
 +ad ogni file individuato in una coda bloccante;
 +
 +  * un consumatore che estrae i riferimenti ai file dalla coda e, per ognuno
 +di essi, visualizza tutte le righe che contengono la parola chiave //P//.
 +I due thread si scambiano i dati mediante una coda bloccante. Scegliere il
 +tipo di coda bloccante ritenuto più opportuno.
 +
 +
 +=== Esercizio 2: Secure Sockets ===
 +
 +Per prima cosa, tramite **keytool** creare le chiavi pubbliche/private con i vostri dati
 +(che andranno associate al server nel keystore) ed estrarre il certificato che va importato in
 +un truststore (sul client). Usando le chiavi svolgere i seguenti esercizi:
 +
 +  - Effettuare una comunicazione sicura su TCP (come nell’esempio del Web Server visto a lezione) modificando uno degli esercizi assegnati nelle lezioni precedenti in maniera da usare socket sicuri invece dei socket TCP;
 +  - Modificare l’esercizio sulla votazione RMI proposto per l'Esercitazione del 1/12 in modo che la comunicazione tramite RMI sia sicura.
 +
 +In entrambi i casi, dal lato client deve essere presente solo il file con il truststore
 +(non il file con le chiavi). Tutte le password usate (per esempio per il trustore/keystore) 
 +NON devono essere
 +inserite nei file sorgenti, ma (per esempio) passate come parametri da riga di comando
 +o inserite a runtime.
  
 ====== ====== ====== ======
 [[start|Torna alla pagina principale di LPR-B-08]] [[start|Torna alla pagina principale di LPR-B-08]]
lpr-b/lpr-b-08/esercizi.1228400865.txt.gz · Ultima modifica: 04/12/2008 alle 14:27 (17 anni fa) da Andrea Corradini

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki