Progetto Gennaio 2017

Documenti analoghi
Master Quiz. Matteo Zignani. 18 agosto 2014

Messaggi volatili. Matteo Zignani. 10 gennaio 2015

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

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

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

INFORMATIVA SULL'USO DEI COOKIE

Guida all utilizzo di Campaign Builder

SPORTELLO DIPENDENTE. - Personale amministrativo tecnico ausiliario (A.T.A.);

18/05/2016 MANUALE UTENTE

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Business Community Confindustria

Guida all uso delle bacheche per la pubblicazione di notizie e orari ricevimento docenti sul sito di Ateneo.

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

Progetto B. Utenti. Di conseguenza si potranno avere solo utenti di questi tipi

Il Protocollo HTTP e la programmazione di estensioni Web

Exchangefile 2.0 manuale utente

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

PORTALE NdR. L architettura del sistema

Parte II.4 World Wide Web

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

Fon.Coop - Sistema di Gestione dei Piani di Formazione FCOOP. Manuale Utente Gestione Utenti GIFCOOP

Guida Rapida per i Docenti dell ITIS Galilei

INFORMATICA. Prof. MARCO CASTIGLIONE. Istituto Tecnico Statale Tito Acerbo - PESCARA

testo Saveris Web Access Software Istruzioni per l'uso

Events: Track your favorite artists

Moduli Bluetooth 03 - connessione seriale via BT

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

SVI Nuovo Sistema Revisioni

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Guida per l'installazione del certificato aggiornato della CA Intermedia per i certificati individuali di classe 2 di Trust Italia

2011 Politecnico di Torino 1

Settore Lavoro, Istruzione e Formazione, Politiche Sociali

Le Reti Informatiche

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

ISCRIZIONI ONLINE 2014 II FASE Scuole Verifica domande

Provincia di Reggio Calabria Procedura di Registrazione degli Operatori Economici e Messaggi di Notifica.

2Dove vogliamo arrivare:

Ministero dell Istruzione, dell Università e della Ricerca UFFICIO SCOLASTICO REGIONALE PER IL LAZIO Direzione Generale - Ufficio IV

Certificazione Unica 2016

Sicurezza delle applicazioni web: protocollo HTTP

Manuale Utente CMMG Corso Medici Medicina Generale

Utilizzo collegamento remoto

Programma del Corso. Laboratorio

Accademia NaturalLook

Documento dei requisiti

LA FATTURAZIONE ELETTRONICA Servizio Fatt-PA Lextel

url uniform resource locator

Modulo 1 Information Communication Technology. ICT e computer... Pag. 6 Classificazione dei computer...» 8

I servizi del SITR-IDT

SIREA: SISTEMA DI REVISIONE DELLE ANAGRAFI

Sistema Gestionale Avviso Maplab

GUIDA TECNICA OFFERTA FORMATIVA PUBBLICA NEI CONTRATTI DI APPRENDISTATO PROFESSIONALIZZANTE (All. B Dgr 609 del e D.D del 15.7.

BOLLETTINO DI SICUREZZA XEROX XRX04-005

PROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB

Web e HTTP. path name. host name Realizzato da Roberto Savino.

TELESKILL ITALIA TVC LIVE. Quick User Guide. Giugno 2008 <guide-tvcl-user-v5.0>

ALBO VOLONTARIATO (v. 2.1) UTENTE ORGANIZZAZIONE VOLONTARIATO

M n a u n a u l a e l e o p o e p r e a r t a i t v i o v o Ver /12/2014

INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont)

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Guida alla registrazione

Reti di Calcolatori ed Internet. Reti di Calcolatori ed Internet. Reti di Calcolatori. Reti di Calcolatori. Architettura dei Servizi di Rete

Architetture Web Protocolli di Comunicazione

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Laboratorio di Basi di Dati

Progettazione e Implementazione di API WebSocket per il Gateway Dog

AZIENDA SANITARIA LOCALE DI BARI

MANUALE DI INTEGRAZIONE API SMSSmart (v 2.2)

MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione)

Ingegneria del Software 1: Eclipse

Progetto Istanze On Line. Presentazione OnLine Modello B. 13 Giugno 2014

GUIDA ALLA CONFIGURAZIONE DI RETE DELLE TELECAMERE IP EUKLIS E ALLA CONFIGURAZIONE VIDEO CON GENETEC OMNICAST.

Istruzioni operative per l iscrizione al Portale SardegnaCAT e l accesso alla sezione dedicata alla gara

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

SMS API. Documentazione Tecnica YouSMS HTTP API. YouSMS Evet Limited

Documentazione API web v 1.0

Prof. Pagani Corrado HTML

Manuale Utente per la Gestione dei Revisori degli Enti Locali

Dichiarazione on-line del diritto alle detrazioni d imposta

Guida utente per l accreditamento al sistema di invio notifiche web SEVESO III.0

Planet School Guida per l utente GENERIC (GENITORE) - GUIDA PER L UTENTE GENITORE

Lezione 1 Introduzione

Procedura tecnica di accreditamento dei Registrar

Modulo 1 Software e Reti. Prof.ssa Francesca Rammairone

Telematica II 12. Esercitazione/Laboratorio 4

l'editing delle pagine web non è nella forma ma nella metodologia di costruzione e di pubblicazione.

RICHIESTA CERTIFICATO DI AGIBILITÀ IMPRESE CHE OCCUPANO LAVORATORI DEL SETTORE DELLO SPETTACOLO

Reti di Telecomunicazione Lezione 6

Esercitazione 8. Basi di dati e web

L analisi preliminare

SAP Manuale del firmatario DocuSign

Esercitazioni - 2. Corso Reti ed Applicazioni Mauro Campanella Como 2003

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2013/2014

Cosa è importante: pom.xml Goal Plug-in Repository

Cliens Redigo Versione Aggiornamento al manuale.

POSTALIZZAZIONE Manuale d'uso del modulo di postalizzazione di RipartoIG

Transcript:

UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Progetto Gennaio 2017 Matteo Zignani 12 dicembre 2016 1 PRESENTAZIONE DEL PROBLEMA Le online social network possono essere sfruttate per chiedere piaceri, informazioni o particolari richieste. Tali contenuti possono essere veicolati e diffusi sfruttando le relazioni di amicizia. In questo progetto lo studente deve implementare un rete sociale che permette di chiedere dei favori agli amici. In particolare ogni utente ha la possibilità di richiedere un favore secondo un meccanismo che sfrutta i browser utilizzati dagli amici del richiedente. Il servizio che lo studente deve implementare si basa su un architettura client/server. Il server deve gestire la rete sociale tra gli utenti iscritti, offrendo anche la registrazione di nuovi utenti, e offrire dei servizi per inoltrare delle particolari richieste. A tal fine, il server mette a disposizione diverse risorse richiedibili utilizzando il protocollo HTTP che permettono la gestione, la richiesta e la pubblicazione della richiesta stessa, secondo i vincoli specificati in seguito. 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. 2 API Nelle seguenti sottosezioni vengono descritti le componenti del server e le risorse che esso mette a disposizione. Gli esempi presentati di seguito sono da considerarsi come tali, per- 1

tanto 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 host: localhost:6000 content-type: text/html Il server deve verificare la validità della riga di intestazione e ignorare tutti i campi settati nella definizione dell header ad eccezione del campo "user-agent". Una volta rilevata la stringa vuota di terminazione della richiesta, il server deve eseguire l operazione richiesta dall URL e rispondere secondo il formato HTTP. Si noti che l URL della riga di intestazione della richiesta deve seguire la sintassi specifica di un URL (vedi slide corso). Se la richiesta è andata a buon fine, il formato della risposta è: <messaggio> dove < messag g io > è un messaggio testuale che dipende dalla risorsa invocata. In caso di 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. Ogni richiesta effettuata deve contenere obbligatoriamente il campo user-agent nell header HTTP. Dove specificato le risposte restituite sono in formato JSON. Risposte che non soddisfano il formato specificato rendono il progetto insufficiente. 2

2.2 CREAZIONE DI UN NUOVO UTENTE Al momento dell avvio il server non contiene alcun utente. Per inserire un nuovo utente, il server mette a disposizione la risorsa ag g iung iutente. Tale risorsa accetta come unico parametro valido nomeutente, che indica il nome dell utente che si vuole inserire. Al momento della creazione dell utente viene inizializzato un contatore che memorizzerà il numero di richieste effettuate da ogni browser utilizzato dall utente nomeu t ent e. Un possibile esempio di richiesta valida è: GET /aggiungiutente?nomeutente=mario HTTP/1.0 Utente mario inserito con successo. Browser: Mozilla 5.0 A seguito della precedente richiesta viene inizializzato un contatore e il valore associato al browser Mozilla 5.0 sarà 1. Possibili errori da gestire sono l inserimento di un utente già esistente oppure la mancanza del campo user-agent. 2.3 AGGIUNGERE UNA RELAZIONE DI AMICIZIA Un utente può aggiungere un amico alla sua cerchia utilizzando la risorsa ag g iung i Amico. La risorsa aggiungiamico accetta come unici parametri validi nomeu t ent e e nome Ami co, il primo indica l utente che vuole creare l amicizia, mentre il secondo indica il nome (stringa) dell utente verso cui creare una relazione di amicizia. La relazione di amicizia è bidirezionale, cioè la risorsa non necessita che l utente destinatario della richiesta accetti la creazione. Un possibile esempio di richiesta valida è il seguente: GET /aggiungiamico?nomeamico=ambrogio&nomeutente=mario HTTP/1.0 Amicizia con ambrogio creata con successo Possibili errori da gestire sono l assenza del nodo di destinazione/sorgente della richiesta, la richiesta di creazione di una relazione che già esiste oppure la mancanza del campo useragent. Un utente può visualizzare i propri amici utilizzando la risorsa vedi Amici. La risorsa necessita dell argomento nomeu t ent e: l utente che richiede la lista degli amici. Nel corpo della 3

risposta, ved i Ami ci restituisce un array JSON contenente una serie di oggetti JSON che rappresentano gli amici. Ogni oggetto JSON è costituito da due campi: idutente contenente il nome utente (stringa) dell amico e br ow ser, una stringa indicante il browser più utilizzato dall amico. A tal proposito per ogni utente il server deve tener traccia del numero di richieste suddivise per browser utilizzato (vedi risorsa ag g iung iutente). Un possibile esempio di richiesta valida è il seguente: GET /vediamici?nomeutente=mario HTTP/1.0 [ {"idutente": "ambrogio", "browser": "Chrome"}, {"idutente": "michele", "browser": "Mozilla 5.0"}, {"idutente": "marco", "browser": "Internet Explorer"} ] Nell esempio michele, amico di mario, ho utilizzato prevalentemente Mozilla 5.0 nell effettuare le richieste al server. Possibili errori sono costituiti dall errata sintassi della risorsa, da un nomeutente non esistente oppure dall assenza del campo user-agent. 2.4 CHIEDERE UN FAVORE Un utente può chiedere un favore ad un determinato amico per mezzo della risorsa chiedi Ad Amico. La risorsa prevede tre parametri validi: nomeutente, nome Amico e f avore. Il secondo parametro rappresenta il nome dell amico a cui nomeu t ent e vuole inviare una richiesta. Il terzo parametro f avor e contiene il testo della richiesta da inviare all amico. Si assume che la richiesta sia codificata secondo le specifiche di definizione degli URL (vedi slide). Il richiedente può inviare una richiesta se e solo i browser più utilizzati dal richiedente e dal destinatario sono uguali. Il valore associato al parametro r i chi est a è univoco nella relazione nomeutente-nome Amico, di conseguenza un utente non può inviare più volte la stessa richiesta ad un amico. GET /chiediadamico?nomeutente=mario&nomeamico=ambrogio&richiesta=mi%20presti%20100%20euro host: localhost:6000 content-type: text/html Richiesta inviata 4

Possibili errori possono essere dovuti alla mancata presenza del nome utente, alla mancata relazione di amicizia con l utente specificato oppure ai vincoli imposti dall attacco. 2.5 VISUALIZZAZIONE DELLE RICHIESTE PERVENUTE Un utente può richiedere le richieste che gli sono state inviate usando la risorsa vedirichieste. La risorsa richiede il solo parametro nomeutente e restituisce come risposta un array JSON. Ogni elemento dell array è un JSON object costituito da due campi: idutente e r ichiest a. Il primo contiene l utente che ha inviato la richiesta, mentre il secondo contiene il testo della richiesta. Un possibile esempio di richiesta è il seguente: GET /vedirichieste?nomeutente=mario HTTP/1.0 content-type: text/html [ {"idutente":"mario","richiesta":"mi%20presti%20100%20euro"}, {"idutente":"pino","richiesta":"dove%20ci%20troviamo%3f"} ] 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 70% (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 progettogennaio2017. La mail deve avere come oggetto ProgettoGennaio2017 e contenere nel corpo nome, cognome e numero di matricola dello studente. Il materiale deve essere consegnato entro le 12:00:00 del 06 Gennaio 2017. 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: 5

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 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. 6