P2P Reliable Multicast Messenger Progetto e realizzazione di un software peer to peer per comunicazioni di gruppo.

Slides:



Advertisements
Presentazioni simili
Gestione di un Sistema di Talk multiutente
Advertisements

Amministrazione dei servizi di stampa. Sommario Introduzione ai servizi di stampa Introduzione ai servizi di stampa Terminologia della stampa Terminologia.
Il livello di trasporto
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Concetti introduttivi
Reti di Calcolatori IL LIVELLO RETE.
ADSL VOIP Voice Over IP.
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
Reti di Calcolatori LS Universitá degli Studi di Bologna Remotizzazione del Framework Unibo-env Autrice: Leticia Riestra Ainsua.
Un sistema software per la vendita di prodotti on-line Università degli studi di Bologna Facoltà di ingegneria Reti di calcolatori L-S Studente: Rinaldi.
Proxy-based infrastructure for LBS availability Reti di Calcolatori L-S Andrea Licastro
Replicazione delle risorse: UN CASO DI STUDIO
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori L-S AA Presentazione di Roberto Gamboni Progetto di Giuseppe Vitalone,
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa
Esercitazione sulla creazione di una raccolta locale Tutorial.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
66. Rubrica La Rubrica vi consente di raccogliere gli indirizzi di posta elettronica. Potete accedere dalla rubrica dallinterno del programma di posta.
FAX SERVER Inviare e ricevere fax da ogni PC collegato alla rete mantenendo un numero di rete urbana xxxx Ing.Emiliano De Rossi – Area Telecomunicazioni.
File system distribuito transazionale con replicazione
Modulo 2 - U.D. 3 - L.4 Ernesto Damiani - Sistemi di eleborazione dell'informazione.
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
Reti di calcolatori 14 novembre 2003 INFORMATICA GENERALE Scienze per Operatori dei Servizi Giuridici Anno Accademico
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Introduzione all‘app Lync Windows Store Lync 2013.
Scheda di riferimento rapido per le funzioni video Avviare una videochiamata 1.Passare il puntatore del mouse sulla foto di un contatto e fare clic sul.
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
Selezionare dal Menu “Strumenti” la voce “Servizi”
Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali in ambito distribuito Studente: Luca Monaco Anno Accademico
Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.
Università degli Studi di Roma “Tor Vergata”
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
PROTOTIPO DI UN GIOCO DI STRATEGIA IN RETE Alberto Buccella Università degli studi di Bologna Facoltà di Ingegneria Corso di Ingegneria Informatica.
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
STUDIO SULLA REPLICAZIONE DEGLI AGENTI NEL SISTEMA SOMA Andrea Sambi.
Bonjour Post-It servizio di post-it distribuito di Elisa Rondini.
Progetto di un sistema di comunicazione di gruppo con multicast causale Reti di Calcolatori L-S Marco Canaparo Matricola
Overlay network strutturate per applicazioni peer to peer Lorenzo Castelli.
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori LS – AA Presentazione di Davide Sansovini Professore: Antonio Corradi.
Progetto di un Gestore di Nomi Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2003/2004 Autore: Molesini Ambra.
Protocolli avanzati di rete Modulo 3 -Wireless network Unità didattica 3 -Medium Access Control (MAC) Ernesto Damiani Università degli Studi di Milano.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
R.E.V.E.N.G.E. RELIABLE AND VERSATILE NEWS DELIVERY SUPPORT FOR AGENCIES Corso di Reti di Calcolatori LS – AA Professore: Antonio Corradi Referente.
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
Proxy-based infrastructure for LBS availability Bucco Nicola matr
Middleware per la sincronizzazione di ambienti eterogenei Progetto di Reti di Calcolatori LS Emanuele Crescentini matr Ingegneria Informatica LS.
Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi.
Reti di Calcolatori LS - Fabio Poli 15 Giugno 2006 Sviluppo di un player di Campo Minato multigiocatore con supporto di Chat MultiCast.
Proxy based infrastructure for LBS availability Reti di Calcolatori LS Serena Agresti.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 4 – OSPF.
Controllo congestione. Controlli: della congestione e di flusso Problema Controllo della congestione Evitare che più mittenti inseriscano troppi dati.
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
JDICS Java Dynamic Infrastructure for C/S systems Laura Galli matr Reti di calcolatori LS, Prof. A.Corradi A.A
CORSO INTERNET la Posta elettronica
Comunicazioni. 5.1 POSTA ELETTRONICA 5.1 POSTA ELETTRONICA.
Pari Gioia Reti Di Calcolatori LS A.A. 2003/04.
Il software Aleph caratteristiche e funzionalità Aleph500 v ersione seminario a cura di Libera Marinelli Università di Genova - Centro di servizi.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Sicurezza nei sistemi aziendali. La complessità dei sistemi informatici, la sempre maggiore integrazione tra elementi eterogenei, la crescita dell’accessibilità.
28/06/2016Francesco Serafini INDICO Parte 2. 28/06/2016Francesco Serafini CREAZIONE EVENTI Gli eventi possono essere creati in qualsiasi categoria, che.
Transcript della presentazione:

P2P Reliable Multicast Messenger Progetto e realizzazione di un software peer to peer per comunicazioni di gruppo

Introduzione Il progetto Il progetto consiste nella realizzazione di un software di messaggistica istantanea, senza la presenza di un server centralizzato, che fornisca alcune garanzie di affidabilità. Obiettivi Questo progetto si pone anche l’obiettivo di sperimentare protocolli di comunicazione alternativi a quelli esistenti per scontrarsi con le difficoltà che ne derivano.

Architettura Peer

Struttura di un Pacchetto Corpo del messaggioMittente del pacchettoID della conversazione Tipo di pacchetto: ATOMIC:token per le operazioni atomiche NEWUSER:creazione nuovo utente NEWCONV:creazione nuova conversazione MESSAGE:messaggio testuale DISCOVER:scoperta di nuove conversazioni HEART:heartbeat per la rilevazione dei crash

Struttura di un Peer

Atomicità Operazioni che richiedono atomicità: Inserimento di un nuovo utente (per garantire la consistenza dell’id) Aggiunta di una conversazione (per garantire la consistenza dell’id) Invio di un messaggio (per garantire la relazione d’ordine) Il protocollo è il seguente: 1.L’utente che deve eseguire una operazione atomica incrementa il valore di una variabile locale booked che rappresenta il numero di richieste di prenotazione del token, 2.Appena arriva il token se la variabile booked è maggiore di zero l’utente si impossessa del token, decrementa il valore di booked ed esegue l’operazione atomica inviando il messaggio relativo, 3.Quando il messaggio torna al mittente viene rilasciato il token. Un token di anello + uno per ogni conversazione Per garantire ordinamento e sincronizzazione

Affidabilità (1) Ipotesi di guasto Non sono ammessi guasti simultanei di due utenti consecutivi nell’anello (TTR<TBF), Non sono ammessi guasti in fase di inserimento nell’anello. Replicazione Meccanismo di replicazione passivo a copie calde Ogni peer è copia del successivo tenendo traccia dei messaggi che il successivo ha ricevuto ma non ha ancora inviato al suo successivo. Ogni peer possiede una nextQueue che viene aggiornata a ogni conferma di invio ricevuta dal successivo (checkpoint event-driven). Il successivo, al suo crash, viene escluso dall’anello e la nextQueue del precedente viene inviata al nuovo successivo. Per evitare perdita e duplicazione dei messaggi

Affidabilità (2) Protocollo 1.A estrae un pacchetto dalla outQueue, lo invia a B e lo inserisce nella sua nextQueue (checkpoint), 2.B riceve il pacchetto, lo analizza e lo inserisce nella sua outQueue, 3.B estrae il pacchetto dalla outQueue, lo invia a C e invia la conferma ad A, 4.A toglie il pacchetto dalla sua nextQueue (checkpoint). Quando B va in crash si esegue la seguente procedura di recovery: 1. A si accorge del crash di B perché non riesce più a inviargli pacchetti HEART, 2. A chiude la sendSocket con B e apre una nuova sendSocket con C, 3. A invia a C tutti i pacchetti che sono nella nextQueue, 4. C deve controllare che i pacchetti in arrivo da A non siano già presenti nella sua coda di ingresso. Indispensabile per evitare la duplicazione dei pacchetti !!!! Chiamiamo A, B e C tre peer consecutivi nell’anello.

Protocolli (1) Inserimento nell’anello 1.A si collega al sistema specificando l’indirizzo IP e la porta della serverSocket di B e imposta immediatamente la sua receiveSocket collegata con B. 2.B in modo atomico invia un messaggio NEWUSER nell’anello al fine di avvisare gli utenti dell’inserimento di un nuovo utente (aggiornamento del MAXID). 3.Quando il NEWUSER arriva al precedente di B esso provvede ad impostare A come nextNext (successivo del suo successivo). 4.Quando il NEWUSER torna a B esso provvede ad inviare ad A le seguenti informazioni: 1.MAXID degli utenti 2.MAXID delle conversazioni 3.Le informazioni dell’utente C che diventerà il successivo di A 4.Le informazioni dell’utente successivo a C che diventerà il successivo del successivo di A 5.La outQueue e la nextQueue 5.A riceve le informazioni ed aggiorna le sue strutture locali. 6.B imposta la sua sendSocket collegata con A. 7.A imposta la sua sendSocket collegata con C. 8.C imposta la receiveSocket collegata con A. Chiamiamo A l’utente che si vuole collegare al sistema, B l’utente al quale A si collega e C l’utente successivo a B. Se all’indirizzo specificato da A non viene trovato nessun utente il sistema provvede alla creazione dell’anello che consiste nel collegare la sendSocket di A con la sua receiveSocket e di impostare gli utenti successivi uguali ad A. Infine inserisce nell’anello il token ATOMIC.

Protocolli (2) Creazione di una conversazione 1.A crea la conversazione specificandone il titolo. 2.A invia in modo atomico un messaggio NEWCONV al fine di aggiornare il MAXID delle conversazioni. 3.A inserisce nell’anello un messaggio DISCOVERY che indica id e titolo della conversazione. 4.A inserisce nell’anello il token ATOMIC relativo alla conversazione creata. Monitoraggio delle conversazioni 1.A un DISCOVERY contenente id e titolo della conversazione. 2.Se A non possiede nella propria lista (conversations) la conversazione con id specificato la aggiunge altrimenti ignora il messaggio. 3.A ritrasmette il DISCOVERY. Chiamiamo A l’utente che vuole creare una nuova conversazione.

Protocolli (3) Comunicazione tra gli utenti 1.L’utente scrive e invia un messaggio relativo a una joinedConversation. 2.Viene inviato in modo atomico un pacchetto MESSAGE che indica id del mittente, id della conversazione e testo del messaggio. 3.Gli utenti che sono iscritti alla conversazione visualizzeranno il messaggio e ritrasmetteranno il pacchetto. 4.Il mittente del pacchetto visualizzerà il proprio messaggio e lo toglierà dall’anello. Uscita dall’anello B rileva il crash di C quando non riesce ad inviargli pacchetti HEART, B stabilisce una connessione con D e lo imposte come suo next, D invia le informazioni di E a B che lo imposta come nextNext, B invia la nextQueue a D che la aggiunge alla sua inQueue controllando che non ci siano pacchetti doppi, B invia ad A le informazioni relative a C che A imposterà come suo nextNext. Vettore delle conversazioni a cui l’utente sta partecipando AEBD C

Conclusioni Protocollo alternativo per la gestione dell’anello (no gestore, no time-out, no election-token). Motivazioni: Difficile dimensionare il time-out (quanti utenti collegati?) Ulteriore ritardo nelle comunicazioni (time-out per ogni crash) Notevole utilizzo delle risorse (trasmissioni continue) Struttura semplice per realizzare il multicast ma poco adatta per applicazioni real-time (un software di messaggistica istantanea richiede che il ritardo nelle comunicazioni sia il minimo possibile).