Progetto Gennaio 2016

Documenti analoghi
Dopo Natale puoi... Matteo Zignani. 20 dicembre 2013

Master Quiz. Matteo Zignani. 18 agosto 2014

Messaggi volatili. Matteo Zignani. 10 gennaio 2015

News sharing. Matteo Zignani. 21 dicembre 2013

Questua: aste online social

Progetto Febbraio Appello 1: Diffusione di tweets sul grafo di Twitter

Progetto Gennaio 2013: Social Chat Internazionale

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

Laboratorio di Reti, Corsi A e B. Text-Twist. Progetto di Fine Corso A.A. 2016/17

Perché il linguaggio C?

Progetto: Dama. 1 - Descrizione. 2 - Regole del gioco. Appello di febbraio 2003

Pagina 1 di 6. Client SOAP di test per i servizi del Sistema di Interscambio. Indice

Come creare un nuovo Prodotto per ebay con Var.

Inoltrare un messaggio.

IMPOSTAZIONI SITO. Figura 1. Figura 2. CSI Area Portale Pagina 1

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

COMUNICAZIONI tra PA e beneficiari in fase di presentazione, istruttoria e pagamenti. Ordinanza 57/2012 e ss.mm.ii Ordinanza 23/2013 e ss.mm.ii.

Come creare un nuovo Prodotto per ebay

Tecnologia dell Informazione

Al sistema lo studente accede tramite CODICE FISCALE e PIN (il PIN viene attribuito dalla Segreteria Studenti ad immatricolazione avvenuta).

Infor LN Guida utente per Cataloghi prodotti

Gestione appelli con rifiuto del voto. Istruzioni per i docenti. Versione 3.0

ISTRUZIONI PRODOTTO VISUALIZZAZIONE E STAMPA MOD

Il comando provoca il salvataggio dello stato e la terminazione dell esecuzione.

Manuale operativo di amministrazione del Portale Aziende BPM

Guida pratica all attivazione della componente applet per la firma digitale interna al portale VestaNET

Homework 2. 1 Il problema. Corso di Fondamenti di Informatica II. 26 Novembre L'Albero dei divisori

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Istruzioni per la Compilazione Online Domanda Servizio Civile

GREENTRANET Linee guida per Volontari

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015

Creazione di un flusso audio base tra dispositivi Barix

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Funzioni, Stack e Visibilità delle Variabili in C

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10

Presentazione Domande di Disoccupazione Agricoli e/o A.N.F. Internet Versione 1.0

Struttura di un applicazione Instant Developer

Guida alla registrazione al Sistema di Gestione dell Albo Fornitori di REALE GROUP

Interfaccia a Linea di Comando di Windows (Prompt dei comandi) Dott. Ing. Giuseppe Serano

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano)

AWN. Manuale utente Web Mail. Rev AWN ArchiWorld Network. Pag. 1 / 49. v Manuale utente della Web Mail

Registro Lezioni e Diario Docenti

INSERIMENTO... pag. 2. GESTIONE... pag. 6. REPORT... pag. 7. ESITI ON-LINE... pag. 8

Modulo III - Creazione di documenti, presentazioni e report

Parte II.4 World Wide Web

Strumenti per l automazione del testing di applicazioni web Javascript-based

data: 26/04/05 versione: 0.3

ACCESSO AI PORTALI DIREZIONALI REGIONALI

Sistema Operativo (Software di base)

MANUALE UTENTE. Portale Web Scambio sul posto GSE IMPRESE DI VENDITA. stato documento draft approvato consegnato

Manuale di istruzioni per Nidigratis Super Amministratore

OBIETTIVI. Conoscere i concetti di base dell Informatica. Conoscere i principi e gli strumenti di base della programmazione

Fiat Group Purchasing Supplier Quality SQP Manuale Utente Versione 1, Novembre 2008

Guida all utilizzo dell Area web riservata ai docenti

Guida all uso del sistema gestionale schede online per attività commerciali e turistiche

IL NUOVO TOOL E-SOLUTIONS DHL e-billing

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

Sistemi Operativi corso A, a.a

ASSOCIAZIONE NAZIONALE ALPINI - PROTEZIONE CIVILE. Servizi Informatici Protezione Civile ANA. Progetto V A. All interno della. Community Network ANA

D B M G Il linguaggio HTML

unicampania.it guida operativa alla configurazione della posta elettronica di Ateneo

Modulo 445. Manuale utente

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO IX.2014

Nuova Piattaforma Intercent-ER: manuali per gli Operatori Economici

Ambiente di sviluppo STEP 7 Micro/Win

9.3 Funzionalità utente RL Sblocco di un piano in attesa di validazione Funzionalità utente Guest Funzionalità utente Comunale

Istituto di Istruzione Superiore Statale Carlo Emilio Gadda PIANO DI LAVORO ANNO SCOLASTICO 2015/2016. I.I.S.S '' C. E. GADDA Sede di FONOVO

Portale fornitori di Coni Servizi S.p.A.

Guida all utilizzo dell area riservata

Come aggiornare il firmware sulle stampanti largo formato

Elaborato di Fondamenti di Informatica 2007/08. Claudio Guidi

OGGETTO: aggiornamento della procedura Risultati Elettorali dalla versione alla versione

E-commerce B2B Manuale utilizzo piattaforma

Dipartimento Affari Interni e Territoriali Direzione Centrale per i Servizi Demografici INA-SAIA. SSLProxy. Manuale Utente. versione 1.

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sicurezza e Permission in Android

MANUALE DI AMMINISTRAZIONE

Operazione Trasparenza

EasyCourse/EasyTest Descrizione file Excel di input

MANUALE D USO di GESTIONE PEC2 PER IL SERVIZIO POSTECERT POST CERTIFICATA (modalità Avanzata)

Manuale d uso della Posta TBS. Oracle Collaboration Suite

Struttura Logica del S.O:

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Architettura Model-View-Controller (MVC)

ORGANIZZAZIONE DI SISTEMI OPERATIVI E RETI

Gestione Avvisi e Comunicazioni

OGGETTO: aggiornamento della procedura Ambiente dalla versione alla versione

Definizione di metodi in Java

COLLEGAMENTO AL P.R.A. PER VISURA TARGHE

LABORATORIO di Reti di Calcolatori

<Nome Tabella>.<attributo>

Le nuove modalità di utilizzo delle dichiarazioni d intento dall

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

Cooperazione Applicativa INPS

Registrazione aziende per esportazione negli USA di prodotti alimentari diversi dalla carne e a base di carne

e-procurement Hera QUICK REFERENCE MANUALE PER TRATTATIVE IN BUSTA CHIUSA

ESSE3 GUIDA DEL PRODOTTO CONCORSI GESTIONE REFERENZE

Creare l array presentato nei lucidi ([pippo, pluto, etc])

Transcript:

UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Progetto Gennaio 2016 Matteo Zignani 15 dicembre 2015 1 PRESENTAZIONE DEL PROBLEMA In alcuni casi il lascito del Natale è costituito da un insieme di regali indesiderati. Questo fenomeno è la fortuna di molti siti di aste online, che dopo le festività vedono incrementare il numero di oggetti messi all asta in attesa che qualche cliente faccia un offerta. Questo sistema delle aste ha un piccolo difetto, specialmente in queste occasioni: può capitare che un nostro amico tenti di acquistare un oggetto che lui stesso ci ha regalato. Il progetto che lo studente deve sviluppare tenta di risolvere questo inconveniente. In particolare il servizio da implementare prevede che un utente iscritto possa vendere un oggetto e garantisce che l oggetto non possa essere visualizzato e acquistato da uno dei suoi amici. Il servizio, quindi, deve gestire gli utenti connessi e la compravendita degli oggetti. Alla base dell architettura client/server su cui si fonda il progetto, abbiamo una rete sociale rappresentante le relazioni di amicizia tra gli utenti iscritti. In generale il servizio permette di vendere e acquistare oggetti senza offendere i nostri amici. L erogazione del servizio è garantita e gestita da una serie di API che il servizio stesso mette a disposizione. Le API e le modalità di richiesta delle stesse saranno descritte nella sezione successiva. Lo studente deve sviluppare solamente la parte server dell architettura descritta. Per quanto riguarda il client si possono utilizzare per la fase di test: telnet (Linux e Mac), putty (Windows). Le funzionalità verranno testate dal docente con questi due strumenti. Il server DEVE essere MULTITHREAD. 1

2 API Nelle seguenti sottosezioni vengono descritti il formato delle API e le risorse offerte dal server inerenti la gestione della social network e della compravendita di oggetti. Gli esempi presentati di seguito sono da considerarsi come tali, pertanto nella costruzione delle richieste e delle risposte HTTP ci si deve rifare alla sintassi HTTP presentata sul libro di testo. 2.1 FORMATO DELLA RICHIESTA Il server riconosce come valide le richieste che seguono il protocollo HTTP. In particolare il server riconosce solo richieste con metodo di accesso di tipo GET. Per questo motivo lo studente NON deve implementare un server HTTP completo ma un suo piccolo sottoinsieme. Un esempio di possibile richiesta valida può essere: GET <URL Risorsa con eventuali parametri> HTTP/1.0 Il server deve verificare la validità della riga di intestazione e ignorare tutti i campi settati nella definizione dell header. Una volta rilevata la stringa vuota di terminazione della richiesta, il server deve eseguire l operazione richiesta dall URL e rispondere secondo il protocollo HTTP. Se la richiesta è andata a buon fine, il formato della risposta è: <messaggio> dove < messag g io > è un messaggio testuale che dipende dalla risorsa invocata. Nel caso di un qualsiasi errore il formato della risposta sarà: HTTP/1.0 400 ERRORE <messaggio> Anche in questo caso < messag g io > contiene un messaggio di errore dipendente dalla risorsa invocata. Vincoli imposti sulle richieste: Tutte le seguenti risorse, parametri e valori sono case-sensitive. L ordine dei parametri nella richiesta non conta. Risposte che non soddisfano il formato specificato rendono il progetto insufficiente. 2

2.2 VENDITA DI UN OGGETTO Un utente nomeutente può vendere un oggetto utilizzando la risorsa vendi. La risorsa vendi accetta come nomi di parametri validi nomeog g et to e prezzo. Il primo indica il nome (stringa) dell oggetto da vendere mentre il secondo ne specifica il prezzo (numero intero). Un possibile esempio di richiesta di vendita valida è il seguente: GET /vendi?nomeoggetto=lampadaikea&prezzo=20&nomeutente=aldo HTTP/1.0 Oggetto lampadaikea messa in vendita per 20 euro 2.3 ACQUISTI DISPONIBILI Un utente nomeu t ent e può visualizzare gli oggetti messi in vendita utilizzando la risorsa vedipr odot ti. La risorsa non prevede nessun parametro oltre a nomeutente. Si noti che la risorsa restituisce SOLO oggetti che sono stati messi in vendita dai NON-amici dell utente che effettua la richiesta. Per esempio se A e B sono amici e A vende una lampada, quest ultima non comparirà nella lista degli oggetti in vendita richiesta da B. Un possibile esempio di richiesta valida è il seguente: GET /vediprodotti?nomeutente=aldo HTTP/1.0 lampadaikea 20 sediainfaggio 50 sopramobileinceramica dentieradellanonna 1500 Il corpo della risposta contiene una serie di linee di testo e ogni linea segue il formato < pr odot to >< spazio >< prezzo >. 3

2.4 COMPRARE UN OGGETTO Un utente nomeu t ent e può comprare un oggetto utilizzando la risorsa compr a. Questa risorsa necessita dell argomento nomeog g et t o in cui si deve specificare il nome dell oggetto da comprare. Una volta che l oggetto è stato comprato non è più disponibile nella lista degli oggetti in vendita restituita dalla risorsa vedipr odot ti. Un possibile esempio di richiesta di acquisto valida è la seguente: GET /compra?nomeoggetto=lampadaikea&nomeutente=aldo HTTP/1.0 lampadaikea è tuo!!! 2.5 VENDITE EFFETTUATE Un utente nomeutente può verificare quali oggetti messi in vendita dall utente stesso sono stati venduti per mezzo della risorsa vediv endi te. La risorsa non prevede alcun parametro oltre a nomeutente. Si noti che la risorsa restituisce SOLO gli oggetti che sono stati messi in vendita dall utente loggato e successivamente venduti. Un possibile esempio di richiesta valida è il seguente: GET /vedivendite?nomeutente=aldo HTTP/1.0 lampadaikea dentieradellanonna 1500 2.6 CREAZIONE DELLA SOCIAL NETWORK Per quanto riguarda la rete sociale che impone i vincoli sulla vendita, essa viene caricata al momento della creazione del servizio e non può essere modificato durante l esecuzione dello stesso. Il caricamento avviene per mezzo di un file chiamato listaamici.txt e che contiene una lista degli archi non orientati presenti nella rete sociale. Ogni riga del file rappresenta un arco e segue il formato: 4

<nomeutente>-<nomeutente> dove < nomeutente > rappresenta un segnaposto (< e > non vanno inseriti). Lo studente deve prevedere una classe per il caricamento della social network da un file. Il file listaamici.txt si trova sul sito del corso di Reti come materiale di supporto al progetto. 3 MODALITÀ DI CONSEGNA Il progetto è individuale e verranno presi provvedimenti nel caso ci sia il sospetto di una eventuale copiatura. In particolare non verranno ammessi alla discussione del progetto e quindi saranno automaticamente esclusi dall appello quei progetti con almeno un file con indice di similarità superiore al 55% (moss, tool di Stanford). Questo per non incentivare progetti scritti singolarmente ma frutto di brain-storming troppo di gruppo. Il linguaggio da utilizzare per lo sviluppo è Java. Il codice del progetto e i relativi jar delle librerie utilizzate devono essere inviati al docente in una directory compressa (zip o tar.gz) denominata progettogennaio2016. La mail deve avere come oggetto ProgettoGennaio2016 e contenere nel corpo nome, cognome e numero di matricola dello studente. Il materiale deve essere consegnato entro le 23:59:59 del 14 gennaio 2015. Valgono tassativamente le seguenti regole: Il codice che non compila non verrà considerato I progetti consegnati dopo la data di consegna non saranno ritenuti validi Per essere considerato sufficiente e quindi ammissibile per la discussione, il progetto deve implementare correttamente tutte le funzioni precedentemente illustrate. Principali criteri di valutazione del codice: Gestione di possibili errori nell input da parte dell utente Modularità del codice e rispetto del paradigma ad oggetti Gestione oculata delle eccezioni Uso appropriato dei commenti Gestione e risoluzione di eventuali problematiche legate alla concorrenza sia lato client sia lato server Per chiarimenti, dubbi potete contattare il docente all indirizzo matteo.zignani@unimi.it, specificando come oggetto obbligatorio ProgettoReti. Eventuali modifiche al testo del progetto saranno comunicate sulla pagina web del corso. 5