KAMAILIO: UNA MODIFICA PER LOAD BALANCING E QoS Candidato Stefano Poli Docente Prof. Ing. Antonio Corradi
Obiettivi Supporto per la distribuzione di dati di presenza su larga scala Comunicazione tra fonti e fruitori dei dati di presenza anche quando si trovano su server differenti Bilanciamento del carico tra i server PRESENCE SERVICE CON LOAD BALANCING E QoS
Servizio di Presenza Servizio di presenza: esprime la possibilità e la volontà di un utente di comunicare attraverso un insieme di dispositivi. UTENTE 1 PUBLISH SUBSCRIBE NOTIFY UTENTE 2 Presence Server SUBSCRIBE NOTIFY UTENTE 3 Due ruoli: Presentity: colui che pubblica il proprio stato Watcher: colui che riceve le notifiche riguardo lo stato dei presentity Presence Server (Kamailio): porta le informazioni di presenza dai presentity ai watcher Protocollo utilizzato tra client e server: SIP
Protocollo SIP protocollo applicativo usato per instaurare, modicare e terminare sessioni multimediali in una rete basata su IP Caratteristiche: Indipendenza dal protocollo di trasporto (UDP, TCP) Instradamaento in base alla richiesta Separazione tra informazioni di segnalazione e contenuti multimediali Estensibilità (es. SIMPLE) Utilizzabile in mobilità Struttura di un messaggio SIP: Request Line (Status Line): informazioni relative al tipo di richiesta (risposta) Headers: informazioni aggiuntive al messaggio Corpo: informazioni di interesse per il destinatario
SIMPLE Session initiation protocol for Instant Messaging and Presence Leveraging Extensions Estende il protocollo SIP per adattarlo al servizio di presenza Nuovo tipo di evento: presence Metodi PUBLISH, SUBSCRIBE e NOTIFY Utilizzo di XML per descrivere le informazioni Strutturato in elementi definiti dal Presence Information Data Format (PIDF)
Architettura sistema DB centralizzato Comunicazione C-PS: SIP Comunicazione PS-PS: UDP multicast
Sistema coordinamento server PS avvisa via UDP multicast gli altri PS dell arrivo di un PUBLISH PS salva le informazioni di presenza nel DB PS notifica i propri watcher Altri PS estraggono le informazioni dal DB e notificano i loro watcher
Client SIP Linguaggio Java con JAIN SIP Si sottoscrive al servizio di presenza presso un presence server Pubblica informazioni di presenza presso un presence server Ricevere notifiche da uno o più presence server Eventualmente, ridireziona le sue richieste di sottoscrizione e pubblicazione su presence server differenti in caso di indisponibilità di quello scelto
Client SIP - PUBLISH Pubblica informazioni di presenza presso un PS Se il PS non è disponibile, ridireziona la richiesta verso un nuovo PS Se tutti i server sono indisponibili, interrompe l'invio automatico delle richieste
Client SIP - SUBSCRIBE Si sottoscrive al servizio di presenza presso un PS Se il PS non è disponibile, ridireziona la richiesta verso un nuovo PS Se tutti i server sono indisponibili, interrompe l'invio automatico delle richieste
Presence Server Kamailio Modifiche al modulo di presenza Gestione messaggi SUBSCRIBE Meccanismo che controlla e limita la frequenza ed il numero di richieste di sottoscrizione che arrivano al server Gestione messaggi PUBLISH Meccanismo che controlla e limita la frequenza ed il numero di richieste di pubblicazione che arrivano al server
Kamailio Gestione sottoscrizioni Frequenza massima di ricezione delle richieste (congestione nel breve periodo) Numero di watcher globali attivi (congestione server) Numero di watcher attivi verso il presentity richiesto (congestione server/canale) Controllo frequenza e numero di watcher globali attivi
Kamailio Gestione pubblicazioni Frequenza massima di ricezione di PUBLISH globali (congestione nel breve periodo) Frequenza massima di ricezione di PUBLISH di un presentity (risparmio NOTIFY)
Kamailio Gestione pubblicazioni (frequenza presentity) Frequenza massima di pubblicazione globale non superata
Kamailio Gestione pubblicazioni (frequenza presentity)
Kamailio Gestione pubblicazioni Distinzione della frequenza massima globale da considerare a seconda dell attività di un presentity Due livelli di presentity presentity privilegiato : frequenza di pubblicazione supera soglia L presentity non privilegiato : frequenza di pubblicazione non supera soglia L Se il presentity è privilegiato la frequenza massima globale da considerare è S Se il presentity è non privilegiato la frequenza massima globale da considerare è (2/3)*S
Risultati sperimentali - PUBLISH Modulo di presenza originale Modulo di presenza modificato
Risultati sperimentali - SUBSCRIBE Modulo di presenza originale Modulo di presenza modificato
KAMAILIO: UNA MODIFICA PER LOAD BALANCING E QoS FINE Candidato Stefano Poli Docente Prof. Ing. Antonio Corradi