La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.

Presentazioni simili


Presentazione sul tema: "Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S."— Transcript della presentazione:

1 Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S

2 Obiettivi Realizzare una applicazione basata su un modello di comunicazione più evoluto del Client/Server in particolare: Comunicazione via CHAT di utenti P2P

3 Requisiti Ogni utente deve avere la possibilità di:  Collegarsi ad un gruppo di utenti che comunicano via chat,  Inviare messaggi a tutti gli utenti in chat,  Ricevere messaggi da tutti gli utenti in chat,  Uscire da un gruppo di chat. Inoltre…  Realizzare un Server che gestisca l’elenco degli utenti attualmente in chat

4 Struttura del sistema Comunicazione UNO a MOLTI:  Come interconnettere gli utenti? Multicast Ogni utente con tutti gli altri Anello

5 Struttura del sistema Messaggi PrivatiOgni nodo ha visibilità totale dell’anello  Tutti conoscono tutti  Possibilità di invio di Messaggi Privati Connessioni TCP Preservano l’ordine dei messaggiCanali punto-punto come Connessioni TCP  Possibili messaggi di conferma ricezione  Preservano l’ordine dei messaggi

6 Inizializzazione  utente può entrare e uscire dalla chat  Anello fortemente dinamico   nodo deve poter accettare richieste di connessione Per inserire nuovi utenti che si vogliono unire alla chat Per richiudere l’anello dopo l’uscita di un utente dalla chat

7 Inizializzazione Server Gruppo 1: …. Gruppo 2: …. Client Gruppo XIP:Porta Necessità di un Server che fornisca all’utente che vuole inserirsi l’indirizzo di uno degli utenti in chat da contattare

8 Protocolli Client Server info Ci sono n gruppi: 1: ……… 2: ………. ……….. n: ……….. Client Server Gruppo X Nome: Tizio IP: Porta:2563 Server Richiesta informazioni Iscrizione a un gruppo

9 Protocolli Ingresso nel gruppo Uscita dal gruppo Tizi o Caio Client Semproni o Ip: ….. Porta: … Tizio: Inserito Sempronio Ip: …. Porta:…. Tizio: Inserito Sempronio Ip: …. Porta:…. Caio, Ip, porta siamo in n Tizio ip porta, …….. fine TizioCaio Semproni o fine

10 Tolleranza ai guasti Canali punto-punto Bidirezionali  Ad ogni invio di messaggio si attende la conferma di avvenuta ricezione per un certo tempo Se scatta il Timeout  rilevata caduta del nodo  Apertura connessione con il successivo (chiusura anello)  Invio messaggio di notifica  Cancellazione dal Server dell’utente caduto

11 Scalabilità Introduzione di un servizio di Nomi per poter avere diversi Server reperibili dagli utenti attraverso nomi logici Gestore Nomi Server Client Registra IP : Porta OK Cerca IP : Porta

12 Implementazione in Java Utilizzo del package java.net Utilizzo del servizio di Nomi di Ambra Molesini paralleloServer parallelo ServerSocket in attesa di connessioni e un Thread generato per ogni Cliente Multithreaded un thread in ascolto sulla ServerSocket, uno sulla socket di ingresso, e uno sull’interfaccia graficaClient Multithreaded un thread in ascolto sulla ServerSocket, uno sulla socket di ingresso, e uno sull’interfaccia grafica

13 Implementazione del singolo nodo 2 uscite dove accedere in scrittura in mutua esclusione (Socket e Pannello) ed elenco ordinato degli utenti in chat.

14 Messaggi Tutti i messaggi devono avere: Nome del Mittente Flag di Visibilità Contenuto testuale messaggi Privati devono inoltre avere: Nome del Destinatario messaggi di Sistema (Notifica eventi) devono avere come contenuto: Keyword distintiva Informazioni aggiuntive: Ingresso: IP, Porta, e Nome dell’utente che entra Caduta: Nome dell’utente andato in crash Ogni nodo elimina i propri messaggi dopo un giro dell’anello Messaggio Pubblico o Privato

15 Possibili sviluppi futuri Utenti in chat che potrebbero RIFIUTARE l’ingresso di un nuovo utente L’utente che entra potrebbe esprimere PREFERENZE sulla sua posizione nell’anello Messaggi di contenuto non solo testuale: Scambio di file, oppure dati Multimediali (gli utenti si Vedono tramite webcam) Crittografia per aumentare sicurezza dei messaggi privati

16 Conclusioni Sistema Efficiente, Funzionale, e Semplice da usare Nodi Autonomi, che funzionano Senza distinzioni di ruolo Possibile realizzare con questa struttura applicazioni Complesse, Dinamiche, Flessibili ed Affidabili


Scaricare ppt "Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S."

Presentazioni simili


Annunci Google