Assignment 8: Trova prezzi
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. Ogni negozio mette a disposizione un server che offre la lista completa dei prodotti, su richiesta. Tutti i negozi offrono la stessa API e usano socket per ricevere le richieste. (scrivere una classe che modella i server e avviarne 3 istanze diverse, una per ogni negozio)
Un server trova prezzi mantiene una lista di prodotti ed il negozio in cui sono venduti. Al momento dell’avvio, contatta i tre negozi per avere tutte le liste. Ogni 24 ore il server trova prezzi contatta di nuovo i negozi per aggiornare la lista di prodotti di ognuno. Simulare l'intervallo di aggiornamento della lista con un valore introdotto in input.
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.
Attenzione: l’accesso alla lista di prodotti del server trova prezzi deve essere thread safe. Usare serializzazione per scambiare i prodotti.