High Available Instant Messaging Service Fabio Bombardi [email protected] 1 Agenda • • • • • • Chi sono Obiettivi Architettura Protocolli Demo Sviluppi Futuri 2 CHI SONO • Fabio Bombardi • Reg # 0000165168 • Mail: – [email protected] – [email protected] • Web: – http://www.shadowsheep.it 3 OBIETTIVI • Realizzazione di un servizio di Instant Messaging che garantisca un certo grado di affidabilità per quanto riguarda: – Alta disponibilità del servizio – Persistenza dei messaggi non recapitati 4 ARCHITETTURA • Architettura del sistema (SERVER) (CLIENT) register (online) talk login talk register logout (online) (offline) (offline) 5 PROTOCOLLI (1/6) • Registrazione Nick: pippo ip: Register 0.0.0.0 (callback) • Aggiunta di un utente alla propria lista di contatti My Contacts Nick: pippo Ip: 0.0.0.0 Offline Nick: pippo Registered Registered Client Client List -List -- -pluto Nick: Nick: pluto Ip: 0.0.0.1 Ip:Online 0.0.0.1 Online ---… --… ---Nick: Nick: pippo pippo ip: 0.0.0.0 ip: 0.0.0.0 Offline Offline Nick: pipo ip: 0.0.0.0 addContact (callback) 6 PROTOCOLLI (2/6) • Online / Offline pippo login (callback ) (offline) (online) multicast Nick: pippo ip:Nick: 0.0.0.0 pippo channel online ip: 0.0.0.0 online Nick: pippo ip: 0.0.0.0 online Registered Client List --Nick: pluto Ip: 0.0.0.1 Online --… --Nick: pippo ip: 0.0.0.0 Online offline My Contacts (online) Nick: pippo Ip: 0.0.0.1 offline Online (online) 7 PROTOCOLLI (3/6) paperino • Comunicazione (online) pluto pippo msg msg (online) (online) • Comunicazione (offline) My Contacts Nick: paperino Ip: n.a. Offline (offline) Offline Msgs Nick: paperino Msg: “ciao!!!” pluto Nick: paperino send (callback) msg: “ciao!!!” (online) 8 PROTOCOLLI (4/6) • Comunicazione (Offline Online) paperino Online (callback ) Offline Msgs Empty (offline online) Send (callbackFrom: ) pluto msg: “ciao!!!” 9 PROTOCOLLI (5/6) • Replicazione del server (1/2) – Ipotesi di guasto singolo – Copie fredde (1 sola copia slave) – Aggiornamento Time Driven infoupdate (callback ) master slave 10 PROTOCOLLI (6/6) • Replicazione del server (2/2) update (callback ) SLAVE MASTER CRASHED MASTER NEW MASTER 11 Demo • Demo Applicazione 12 SVILUPPI FUTURI • Rendere più robusta la replicazione del server (e.g. clusterizzazione dei server, protocolli di heartbeat, etc.) • QoS • Crittografia dei messaggi • Persistenza dell lista dei contatti locale • Possibilità di rifiutare i messaggi da parte di un particolare destinatario • Etc. 13