Messaggi volatili. Matteo Zignani. 10 gennaio 2015



Documenti analoghi
Master Quiz. Matteo Zignani. 18 agosto 2014

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

Questua: aste online social

News sharing. Matteo Zignani. 21 dicembre 2013

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

Progetto Gennaio 2013: Social Chat Internazionale

Progetto Gennaio 2017

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Influenza da browser

Progetto Gennaio 2016

Progettazione di un Database

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

Gestione degli appelli e verbalizzazione degli esami online GUIDA DOCENTI. (versione 1.0 del )

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Università Politecnica delle Marche. Progetto Didattico

LA CASELLA PEC Dipartimentale

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

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Hub-PA Versione Manuale utente

Software Servizi Web UOGA

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI SCRIVANIA PER GLI UFFICI SUAP

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

CAMBIO DI GESTIONE DEGLI ESEMPLARI RICHIESTI DALLE BIBLIOTECHE

Gecom Paghe. Comunicazione per ricezione telematica dati ( Rif. News Tecnica del 14/03/2014 )

Come utilizzare il nuovo HelpDesk Maggioli Informatica

Il calcolo delle provvigioni con Excel

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari

Corso di Reti di Calcolatori T

Accreditamento Soggetti Formatori in materia di Sicurezza sul Lavoro

Liberare la memoria allocata dinamicamente.

Regione Campania Procedura di Registrazione degli Operatori Economici e Messaggi di Notifica.

Direzione Programmazione Sanitaria. Scarico Dati Sanità. Manuale Utente. Versione 1.0.0

LO STATO DI AVANZAMENTO DELLE PRATICHE INVIATE TELEMATICAMENTE E LA GESTIONE DELLE CORREZIONI

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Allegato) all art.4 punto 5 Informatizzazione del Magazzino

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE

SU Suap. IS357_03_01 Lettera aggiornamento SUAP vers Pagina 1 di 10

1. GESTIONE DEL PASS OE FUNZIONI DEL CRUSCOTTO

Portale tirocini. Manuale utente Per la gestione del Progetto Formativo

FINE ANNO BOLLE / FATTURE PER E/SATTO

Manuale per i Fornitori

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

Codice identificativo dell aggiornamento: A

Gestione dei servizi all utenza. 3. Autorizzazioni

Tabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo Webservice

Protocollo Informatico (D.p.r. 445/2000)

Manuale d'uso. Manuale d'uso Primo utilizzo Generale Gestione conti Indici di fatturazione Aliquote...

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

flusso delle informazioni... 2 password... 3 password/ inserimento di una nuova richiesta... 4 le condizioni di vendita... 6

DTW DECODER. Per la gestione del servizio SMS, bisogna agire tramite il pannello di controllo posto a bordo delle macchine di ispezione:

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

Sistema per scambi/cessioni di Gas al Punto di Scambio Virtuale

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

Guida alla procedura di inserimento materiale didattico sui minisiti degli insegnamenti

GESTIONE ANAGRAFICA ARTICOLI. Consente l inserimento, la modifica o l eliminazione dell anagrafica articoli. Per l inserimento di un nuovo articolo:

Guida operativa per il versamento in conservazione dei documenti informatici gestiti nel sistema P.I.Tre

Corso di Informatica

Tipi di utente Pagina di Accesso BUW prevede due tipi di utente

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Manuale Utente Delibera 99/11 li/

Contagion: il tuo amico è il vero nemico...etchi

MANUALE UTENTE Fiscali Free

Istruzioni per il programma ANDI

RICHIESTE INTERVENTO

Manuale d uso. Fatturazione elettronica attiva

SIAR - Versione

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Guida alla Navigazione e Utilizzo dell Area Fattura PA

Corrispondenza tra AOO di Ateneo Modalità operative. Corrispondenza fra uffici appartenenti ad AOO diverse della stessa amministrazione

ISTRUZIONI SULLE OPERAZIONI DI CAMBIO ANNO CONTABILE 2005/2006 LIQUIDAZIONE IVA - STAMPA REGISTRI - CHIUSURA/APERTURA CONTI

Guida alla Navigazione e Utilizzo dell Area Fattura PA

STUDIUM.UniCT Tutorial per gli studenti

ISTRUZIONI PER L UTILIZZO DELLA SCHEDA INFORMATIZZATA E MODALITA DI INVIO DEI DATI - L. R. 162/98 PROGRAMMA

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

SIRTEL. Sistema Informativo per la Rendicontazione Telematica degli Enti Locali. Schema di funzionamento del processo per l Ente Locale

CitySoftware PROTOCOLLO. Info-Mark srl

COMUNICAZIONE DELLE OPERAZIONI DI RESTITUZIONE AI SENSI DELL ART. 23, COMMA 1-BIS, DEL D. LGS. 231 DEL 2007 MANUALE OPERATIVO

Classe 5 Bi Laboratorio di informatica Esercitazione di gruppo: configurazione server Apache

Guida alla registrazione on-line di un NovaSun Log

DIPARTIMENTO DI SCIENZE DEL FARMACO. Prenotazione degli Appelli d esame Online. Guida Studenti VOL. Verbalizzazione OnLine.

OSSERVATORIO REGIONALE CONTRATTI PUBBLICI DI LAVORI, SERVIZI E FORNITURE

Sommario 1. Home Tickets Nuove richieste Knowledge Base Documenti Referenti... 5

Inizializzazione degli Host. BOOTP e DHCP

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Manuale Utente. Gestione Richieste supporto Data Warehouse. Della Ragioneria Generale dello Stato. Versione 1.0. Roma, Ottobre 2015

PROGETTO WEB SERVICES DOGANE SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE

Manuale Utente Albo Pretorio GA

SOMMARIO... 3 INTRODUZIONE...

Manuale Servizio NEWSLETTER

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

3 FASE - GESTIONE DELL IMPRESA

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Reti di Calcolatori. Il Livello delle Applicazioni

Palazzetto del Biliardo Tournaments

Creare diagrammi di Gantt con Visio 2003

Q U E S T U R A di V A R E S E Ufficio di Gabinetto

Transcript:

UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Messaggi volatili Matteo Zignani 10 gennaio 2015 1 PRESENTAZIONE DEL PROBLEMA Lo studente deve sviluppare un servizio di messaggistica che limita l invio e la ricezione dei messaggi solo agli utenti che appartengono alla cerchia degli amici del mittente. Ogni messaggio, inoltre, è caratterizzato da una data di scadenza che ne limita il ciclo di vita. Scaduto il messaggio, questo viene cancellato e non è più disponibile per la sua visualizzazione. 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 e rendere disponibili alcune risorse per l invio dei messaggi. A tal fine, il server mette a disposizione diverse risorse richiedibili utilizzando il protocollo HTTP che permettono la creazione di utenti e di relazioni d amicizia, l invio e la ricezione dei messaggi. 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) oppure putty (Windows). Le funzionalità verranno testate dal docente con questi due strumenti. Il server DEVE essere MULTITHREAD; di consequenza come meccanismi di getstione dei thread sono ammessi sia thread-pool sia... 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, pertanto nella costruzione delle richieste e delle risposte HTTP ci si deve rifare alla sintassi HTTP presentata nel libro di testo. 1

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 tutti i metodi di accesso HTTP ma solo un 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, tranne nel caso in cui si esplicitamente menzionato il contrario nella descrizione della risorsa. 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 ha importanza. I field name nell header HTTP NON sono case-sensitive. 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 idutente, che indica il nome dell utente che si vuole inserire. Un possibile esempio di richiesta valida è: 2

GET /aggiungiutente?idutente=mario HTTP/1.0 Utente mario inserito con successo. Possibili errori da gestire sono l inserimento di un utente già esistente. 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 idutente e id Amico, 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. Non è necessario che l utente destinatario della richiesta accetti la creazione della relazione. Un possibile esempio di richiesta valida è il seguente: GET /aggiungiamico?idamico=ambrogio&idutente=mario HTTP/1.0 Amicizia con ambrogio creata con successo Possibili errori da gestire sono l assenza del nodo di destinazione/sorgente della richiesta o la richiesta di creazione di una relazione che già esiste. 2.4 LISTA DEGLI AMICI Un utente può visualizzare i propri amici utilizzando la risorsa vedi Amici. La risorsa necessita dell argomento i du t ent e: l utente che richiede la lista degli amici. Nel corpo della risposta, ved i Ami ci restituisce serie di righe, ognuna delle quali contenente lo username dell amico. Ogni riga rispetta il formato: idutente :< nomeutente > Si noti la presenza dei doppi apici prima e dopo la stringa idutente. Un possibile esempio di richiesta valida è il seguente: 3

GET /vediamici?idutente=mario HTTP/1.0 "idutente": ambrogio "idutente": michele "idutente": marco Possibili errori sono costituiti dall errata sintassi della risorsa oppure da un nome utente non esistente. Un secondo insieme delle risorse disponibili riguarda l invio e la ricezione dei messaggi temporizzati. I messaggi possono essere inviati solo ad amici. Conseguentemente le eventuali risposte ad un messaggio possono essere inviate solo agli amici. Ogni messaggio (nuovo o risposta) è caratterizzato da un identificatore univoco all interno del servizio. L identificatore del messaggio è contenuto del campo id m es. Ad ogni messaggio è associata una data di creazione e una durata. La data di creazione è relativa al momento dell inserimento del messaggio sul server, mentre la durata indica dopo quanti secondi dalla data di creazione il messaggio deve essere cancellato dal server. Per esempio se l utente A invia al suo amico B il messaggio Ciao alle ore 12:00 del 23/12/2014 con durata 30 sec, il server memorizza il messaggio con data di creazione uguale a 23/12/2014 12:00:23 (data di inserimento del messaggio nel server) e dovrà cancellare il messaggio alle ore 12:00:53 del 23/12/2014. 2.4.1 INVIO DI UN MESSAGGIO La risorsa invi a permette ad un utente di inviare un messaggio ad un amico specificandone la durata. La risorsa richiede tre parametri: idutente: lo username dell utente che vuole inviare un messaggio id Amico: lo username dell amico a cui si vuole inviare un messaggio text: il testo del messaggio. Si assuma che il testo sia codificato secondo le specifiche URL (vedi slide corso e classe StringQuery) dur at a: la durata in secondi del messaggio L invio del messaggio comporta l inserimento del messaggio stesso nel server. Ad ogni messaggio inserito è associato un identificatore univoco all interno del servizio. L identificatore del messaggio viene restituito nel messaggio di risposta del server. La risposta non segue 4

un formato specifico ma deve obbligatoriamente contenere un indicazione del valore dell identificatore. Il campo id Amico accetta un solo destinatario, quindi non è ammesso l invio multiplo. Per inviare lo stesso testo a più utenti si deve invocare la stessa risorsa mantenendo il testo e modificando il destinatario. Un possibile esempio di richiesta valida è il seguente: GET /invia?idutente=mario&idamico=michele&text=ciao+da+mario&durata=30 HTTP/1.0 id_mes: 10 Possibili errori possono essere causati dalla mancata presenza degli utenti, da un valore non naturale assegnato al campo durata oppure dalla mancata relazione di amicizia tra mittente e destinatario. 2.4.2 VISUALIZZAZIONE MESSAGGI RICEVUTI La risorsa vedi Messag g i permette ad un utente di vedere tutti i messaggi non scaduti inviatigli. La risorsa prevede un solo parametro denominato i du t ent e, indicante l utente che vuole interrogare la risorsa. La risposta generata da vedi Messag g i è costituita una serie di righe, ognuna delle quali corrisponde ad un messaggio. Ogni riga segue il seguente formato: id_mes:<id_msg>&from:<nome_utente>&testo:<testo_msg>&ttl:<secondi_mancanti> dove il campo t tl indica quanti secondi rimangono prima della scadenza del messaggio sul server. Un possibile esempio di richiesta valida è il seguente: GET /vedimessaggi?idutente=mario HTTP/1.0 id_mes:1&from:ambrogio&testo:come+stai&ttl:40 id_mes:5&from:aldo&testo:pizza+alle+10&ttl:45 id_mes:7&from:giovanni&testo:questo+%c3%a9+matto&ttl:45 id_mes:10&from:giuseppa&testo:ti+amo+tanto&ttl:33 Possibili errori possono essere dovuti all assenza di idutente nella rete sociale. 5

2.4.3 SEGNALA COME SPAM La seguente risorsa deve essere implementata anche da coloro che sono risultati insufficienti nel primo progetto di Febbraio. Un utente può segnalare un messaggio come spam attraverso la risorsa seg nal aspam. La risorsa riceve due parametri: idmessag io: identificatore del messaggio segnalato come spam idutente: username dell utente che il messaggio come spam. La risorsa elimina il messaggio dall insieme dei messaggi ricevuti dall utente i du t ent e. Il seguente vincolo deve essere implementato solo da chi consegna per la prima volta il progetto di Febbraio: se un utente segnala più di 3 messaggi inviati dallo stesso amico come spam, il server elimina la relazione di amicizia. Un possibile esempio di segnalazione di spam è dato dalla seguente richiesta: GET /segnalaspam?idutente=mario&idmessaggio=10 HTTP/1.0 host: localhost:8000 id_mes 10 segnalato come spam 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 progettofebbraio2015-2. La mail deve avere come oggetto ProgettoFebbraio2015-2 e contenere nel corpo nome, cognome e numero di matricola dello studente. Il materiale deve essere consegnato entro le 23:59.59 del 10 febbraio 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 Eventuali errori sintattici riscontrati nell implementazione del protocollo HTTP rendono il progetto insufficiente. 6

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