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
Scarica

presentazione