Esercizi Laboratorio 6
Completion requirements
Opened: Tuesday, 22 March 2016, 12:00 AM
Due: Monday, 25 April 2016, 12:00 AM
2. Trovaprezzi: sviluppare un programma che implementa un servizio trova prezzi e i suoi clienti.
- Consideriamo 3 negozi web diversi che vendono telefonini e smartphone. Ogni negozio ha una lista di prodotti da vendere. Ogni prodotto è descritto da: nome del produttore, modello, prezzo, negozio in cui e venduto. Ogni negozio mette a disposizione un server che offre la lista completa dei prodotti, su richiesta. Tutti e tre i negozi offrono la stessa API e usano socket per ricevere le richieste. (Tip: scrivere una classe che modella i server e avviare 3 istanze diverse, una per ogni negozio)
- Un server trova prezzi mantiene una lista di prodotti ed il negozio in cui sono venduti. All’avvio del server, contatta i tre negozi per avere tutte le liste. Ogni giorno il server trova prezzi ricontatta i negozi per aggiornare la lista di prodotti di ognuno. Il server trova prezzi offre un API per i clienti che cercano un prodotto. Un cliente invia il nome di un prodotto al server, che risponde con una lista di prodotti con negozio e prezzo, in ordine crescente. Implementare il server ed i clienti, usando socket. Il server deve essere in grado di gestire più clienti alla volta. L’aggiornamento della lista di prodotti si fa ogni 24 secondi (invece di ogni 24 ore).
- Attenzione: l’accesso alla lista di prodotti del server trova prezzi deve essere thread safe. Usare serializzazione per scambiare i prodotti.
1. QUESTO ESERCIZIO E' STATO ANNULLATO A CAUSA MALFUNZIONAMENTO SERVER DUCKWEED
Chi è riuscito a finire l'implementazione può comunque sottomettere la soluzione.
Duckweed: twitter tags
Duckweed è un servizio web che fornisce il ranking degli hashtag più popolari su Twitter giorno per giorno. Può essere contattato per richiedere il ranking di un giorno qualsiasi al seguente link: duckweed.isti.cnr.it:5000/top/20160115 . La data deve essere passata come parametro nel formato YYYYMMDD, nell'esempio corrisponde a 20160115.
Scrivere un programma che esegue una richiesta HTTP GET al servizio descritto precedentemente. La data deve essere passata come parametro da linea di comando. Il programma deve fare la richiesta, ricevere la risposta dal servizio in formato JSON, ordinare i risultati secondo il ranking fornito dal servizio e scrivere l'output ordinato.