Comunicazione remota

Transcript

Comunicazione remota
Comunicazione remota sincrona
di gruppo
Prof. Filippo Lanubile
Tipologia di applicazioni
• Conferenza testuale
– Chat
– Instant Messaging
• Audioconferenza
• Videoconferenza
Prof. Filippo Lanubile
1
Funzioni aggiuntive
• Application sharing
– consente di vedere e interagire con una applicazione condivisa
• Whiteboarding
– consente di vedere e interagire con una sorta di "lavagna"
condivisa
• File transfer
– consente di trasferire file in background a uno o più partecipanti
• Controllo accessi
– consente ad un amministratore di controllare l’accesso al
meeting
Prof. Filippo Lanubile
Chat
• Tra le prime ((1988)) applicazioni Internet per la
comunicazione remota sincrona
• Comunicazione M-M fra utenti identificati da un nickname
• La comunicazione di gruppo avviene all’interno di canali
– Metafora di stanze in cui gli utenti possono entrare e dialogare con
gli altri presenti
• Un gruppo comunica associandosi ad un canale esistente o
creando un nuovo canale
– La gestione dei canali è lasciata agli utenti (operatori di canale)
o ai bot (client automatici)
• Si possono anche inviare messaggi privati a un'altra persona
sul canale
• Si possono scambiare file in modo riservato
– Direct Client-to-Client (DCC)
Prof. Filippo Lanubile
2
Internet Relay Chat (IRC)
• Orientato alla connessione
• Un utente accede a una rete IRC tramite
un client che si connette a un server
• Client IRC:
– miRC, Miranda IM, webchat, ChatZilla
– Bot (client automatico): scopi molteplici tra cui mantenere
aperto un canale
• Bouncer
– proxy che mantiene aperta la connessione tra client e server
anche in caso di malfunzionamento
• Un server IRC può connettersi ad altri server per
espandere la rete
– Una rete IRC è formata da un insieme di server interconnessi
tra loro
Prof. Filippo Lanubile
Instant messaging
• M
Messaggii iimmediati
di ti ttra i presenti
ti iin una lilista
t di contatti
t tti
personali
• La funzione di presenza (presence awareness)
permette di sapere chi dei contatti è connesso ed è
effettivamente contattabile
– Feature distintiva rispetto a IRC chat
• E’ possibile rendersi invisibili o avvisare chi non è
online lasciandogli un messaggio
• Comunicazione 1-1 o M-M
• Sistemi di IM
– ICQ, Windows Live Messenger, Yahoo Messenger,
Jabber/XMPP
Prof. Filippo Lanubile
3
Extensible Messaging and Presence
Protocol (XMPP)
• Protocolli ((e tecnologie)
g ) di instant messaging
g ge
presence awareness basati su XML
– Alternativa aperta ai sistemi chiusi di IM
• Breve storia
– 1999: nasce Jabber project
– 2001: nasce Jabber Software Foundation (JSF) oggi XMPP
Standards Foundation
– 2004: IETF standardizza Jabber con il nome di eXtensible
Messaging and Presence Protocol (XMPP)
• Le estensioni, XMPP Extension Protocols (XEP, in
passato JEP) permettono di aggiungere altre
funzionalità
• API disponibili per svariati linguaggi di programmazione
http://xmpp.org/xmpp-software/libraries/
Prof. Filippo Lanubile
Client Jabber/XMPP
• Applicativo in grado di aprire una connessione
TCP, inviare e ricevere messaggi XMPP (basati
su XML)
• Ne esistono di diversi tipi
–
–
–
–
PC / browser/ cellulare
Protocollo singolo / multiprotocollo
Liberi / proprietari
Piattaforma singola / multipiattaforma
http://xmpp.org/xmpp-software/clients/
http://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients
Prof. Filippo Lanubile
4
Server Jabber/XMPP
• Funzionalità base
–
–
–
–
–
–
Registrazione e autenticazione utenti
Inoltro messaggi per utenti online
Memorizzazione messaggi per utenti offline
Gestione lista contatti e informazioni di presenza
Comunicazione verso altri server Jabber/XMPP
Gateway verso sistemi di IM proprietari
http://xmpp.org/xmpp-software/servers/
http://en.wikipedia.org/wiki/Comparison_of_XMPP_server_software
Prof. Filippo Lanubile
Architettura Jabber/XMPP
• Architettura client-server ibrida simile a
email/SMTP e chat/IRC
– Connessioni client-server e server-server
Prof. Filippo Lanubile
5
Multiple Point Of Presence (MPOP)
• Utenti associati a un id univoco detto JID:
user@server/resource
• Gli utenti possono connettersi contemporaneamente con lo
stesso JID da dispositivi diversi
– Ogni dispositivo riceve un identificatore di risorsa e un numero di
priorità
– I messaggi in arrivo sono inoltrati alla risorsa con priorità più alta
– Per mandare un messaggio a un dispositivo specifico:
userid@domain/risorsa_target
“
”
montague.lit
capulet.lit
JID: [email protected]/pda
Priority: 5
:-)
JID: [email protected]/office
Priority: 3
JID: [email protected]/home
Priority: 0
Protocollo “core” XMPP
• Comunicazione tra entità
attraverso flussi (streams)
di dati in formato XML
– Root del flusso: <stream/>
• Stanzas: figli di primo
livello
<presence/>
<message/>
<iq/>
Prof. Filippo Lanubile
6
Stanzas
<message/>
– Meccanismo push per inviare informazioni da una
entità a un’altra
<presence/>
– Meccanismo publish-subscribe per inviare a tutte le
entità (broadcast) informazioni di disponibilità o
presenza (online, occupato, …)
<iq/>
– (info/query) è un meccanismo di richiesta/risposta,
simile ad HTTP
Prof. Filippo Lanubile
Scenario di IM tipico
jabber.capulet.lit
jabber.montague.lit
Conn. fissa: 5222
jabber.shakespeare.lit
Prof. Filippo Lanubile
7
Scenario di IM tipico: 1
Romeo inizia a negotiare
uno stream con il server
jabber.montague.lit
jabber.capulet.lit
Romeo e Giulietta
Stream
Stream
jabber.montague.lit
Conn. fissa: 5222
<iq type=‘get’
from=‘[email protected]/pda’>
<query xmlns=‘jabber:iq:roster’/>
xmlns= jabber:iq:roster />
</iq>
jabber.shakespeare.lit
Prof. Filippo Lanubile
Scenario di IM tipico: 2
Romeo riceve la lista dei contatti
scambiando delle strofe (stanzas) di
tipo <iq/> con il server
jabber.montague.lit
jabber.capulet.lit
Romeo e Giulietta
iq: Roster
iq: Roster
jabber.montague.lit
Conn. fissa: 5222
<iq type=‘result’
to=‘[email protected]/pda’>
<query xmlns=‘jabber:iq:roster’>
<item jid=‘[email protected]’/>
<item jid=‘[email protected]’/>
jabber.shakespeare.lit
<item
jid=‘[email protected]’/>
</query>
</iq>
Prof. Filippo Lanubile
8
Scenario di IM tipico: 3
Romeo invia una strofa di tipo presence
a jabber
jabber.montague.
montague lit
lit, che è propagata
a tutti I suoi contatti:
<presence
from=‘[email protected]/pda’/>
jabber.capulet.lit
Romeo e Giulietta
Presence
[server magic here]
jabber.montague.lit
Conn. fissa: 5222
Conn. temporanea: 5269
<presence
from=‘[email protected]/pda’
to=‘[email protected]’/>
jabber.shakespeare.lit
<presence
from=‘[email protected]/pda’
to=‘[email protected]’/>
…
Prof. Filippo Lanubile
Scenario di IM tipico: 4
• Romeo e Giulietta
Presence
jabber.montague.lit
Conn. fissa: 5222
Conn. temporanea: 5269
Se sono online
online, i contatti di Romeo gli
rispondono con una
strofa di tipo
Presence
presence:
<presence
jabber.capulet.lit
to=‘[email protected]/pda’
from=‘[email protected]/balcony’/>
<presence
to=‘[email protected]/pda’
@
g
p
from=‘[email protected]/chamber’/>
<presence
jabber.shakespeare.lit
to=‘[email protected]/pda’
from=‘[email protected]/
home’/>
Prof. Filippo Lanubile
9
Scenario di IM tipico: 5
Romeo e Giulietta si scambiano una strofa
di tipo message:
Romeo e Giulietta
Message
<message
from=‘[email protected]/pda’
jabber.capulet.lit
to=‘[email protected]’>
<body>hi!</body>
</message>
Message
Message
jabber.montague.lit
<message from=
from=‘juliet@capulet
juliet@capulet.
lit/balcony’ to=‘romeo@montague.
lit/pda’>
jabber.shakespeare.lit
<body>hi yourself!</body>
</message>
Conn. fissa: 5222
Conn. temporanea: 5269
Prof. Filippo Lanubile
Audioconferenza
• Conference call su rete telefonica tradizionale
– Public Switched Telephone Network (PSTN)
• Voice over IP (VoIP)
– Trasporto dei dati:
• RTP (Real-time Transport Protocol) proposto da IETF
– Gestione delle chiamate
•
•
•
•
H.323 proposto da Int. Telecommunications Union (ITU)
SIP (Session Initiation Protocol) proposto da IETF
Jingle proposto da Google e XMPP Standards Foundation
Skype
Prof. Filippo Lanubile
10
Caratteristiche VoIP (1/2)
• Sensibile al ritardo:
– Ritardo
Rit d end-to-end
dt
d
• audio: < 150 msec buono, < 400 msec accettabile
• Comprende i ritardi a livello di applicazione (impacchettamento) e il
ritardo di rete
• Ritardi superiori risultano frustranti, o impediscono addirittura la
conversazione
– Ritardo jitter
• termine con il quale si indica la variabilità dei ritardi subita dai
pacchetti dello stesso flusso
• Ma
M tollerante
t ll
t alla
ll perdita
dit
– perdite occasionali causano solo marginali interferenze
• Inizializzazione della sessione
– Come fa il chiamante ad allertare indirizzo IP, numero di porta,
algoritmi di codifica?
Prof. Filippo Lanubile
Caratteristiche VoIP (2/2)
• Fornitura
F it
di llarghezza
h
di banda
b d
– 64 kbps per ogni conversazione attiva
• Uso di UDP perché traffico time-sensitive
– un datagramma UDP inviato ogni 20 ms
• Recupero degli errori (su UDP)
• Ritardo di riproduzione adattativo al lato client
– Il ricevente tenta di riprodurre ciascun blocco dopo q
millisecondi
illi
di d
dopo che
h è stato
t t generato
t
– Se il blocco non arriva in tempo utile, il ricevente lo scarta e lo
considera perso
– ritardo di riproduzione minimo con il vincolo che la perdita sia al
di sotto dei pochi punti percentuali
Prof. Filippo Lanubile
11
RTP (Real Time Protocol)
Specifica la struttura di un pacchetto
standardizzata per i campi dati audio/video
Prof. Filippo Lanubile
Librerie RTP
• forniscono
un’interfaccia a livello
di trasporto che
estende UDP:
– numeri di porta,
indirizzi IP
– identificazione del tipo
di carico
– numero di sequenza
– marcatura temporale
Prof. Filippo Lanubile
12
RTP e QoS
• QoS (Quality of Service)
– livello di prestazioni adeguato per un corretto
funzionamento dell’applicazione
• RTP non offre alcun meccanismo che assicuri
la consegna in tempo dei dati o fornisca altre
garanzie in termini di QoS
g
• L’incapsulamento RTP è visibile solo al sistema
terminale
– non dai router intermedi
Prof. Filippo Lanubile
SIP (Session Initiation Protocol)
• Utili
Utilizzato
t per iiniziare,
i i
modificare
difi
o tterminare
i
sessioni fra uno o più partecipanti
– permette ai partner di scoprire i rispettivi indirizzi e
numeri di porta
– permette ai partner di concordare le modalità con cui
scambiarsi i dati
– sessioni multimediali, ma anche chat
• Per
P glili iindirizzi
di i i sii usano glili URI (IETF)
(IETF):
– sip:[email protected]
• sip => trasporto UDP o TCP
– sips:[email protected]:5062
• sips: => trasporto TLS
Prof. Filippo Lanubile
13
Servizi offerti da SIP
• Impostazione della chiamata
– Consentire al chiamante di connettersi al ricevente
– Consentire ai partecipanti di accordarsi sulle codifiche dei
media
– Permettere di terminare le chiamate
• Determinazione dell’attuale indirizzo IP del ricevente
– mappa l’identificatore mnemonico all’attuale indirizzo IP
• Gestione della chiamata, fornisce procedure che
permettono di:
p
–
–
–
–
aggiungere nuovi flussi di media
cambiare la codifica durante la chiamata
invitare nuovi partecipanti
trasferire o mettere in attesa
Prof. Filippo Lanubile
Chiamata verso un indirizzo IP noto
•
•
•
•
Ali invia
Alice
i i un messaggio
i INVITE
a Bob che comprende le
indicazioni del suo numero di
porta, del suo indirizzo IP. Vuole
ricevere l’audio codificato nel
formato AVP 0 (PCM codificato
con legge ).
Bob invia un messaggio di
risposta che comprende, oltre alla
stringa 200 OK, anche le
indicazioni del suo indirizzo IP e
le preferenze di codifica (GSM).
i messaggi SIP possono essere
inviati sia con TCP sia con UDP.
Qui sono inviati con RTP/UDP
Di default, il numero di porta di
SIP è 5060
Prof. Filippo Lanubile
14
Impostare una chiamata
• Negoziazione del codec:
– Supponiamo che Bob non abbia un codec PCM con legge m.
– Avrebbe risposto con 606 Not Acceptable, elencando nel
messaggio tutti i codec che può utilizzare
– Alice sceglie uno dei codec e invia un altro messaggio INVITE
• Rifiutare la chiamata
– Bob p
può semplicemente
p
non accettare la chiamata inviando un
codice di risposta di rifiuto come “occupato”, “fuori servizio”,
“servizio a pagamento” o “vietato”
• I media possono essere inviati su RTP o su altro
protocollo
Prof. Filippo Lanubile
Esempio di un messaggio SIP
INVITE sip:[email protected] SIP/2.0 • Qui non si conosce
l’indirizzo IP di Bob:
Via: SIP/2
SIP/2.0/UDP
0/UDP 167
167.180.112.24
180 112 24
sarà necessaria
l’intermediazione dei
From: sip:[email protected]
servizi di SIP
To: sip:[email protected]
• Alice invia e riceve
Call-ID: [email protected]
messaggi SIP usando il
numero di porta di
Content-Type: application/sdp
default 5060
Content-Length: 885
• Alice specifica
l’intestazione e riceve il
c=IN
IN IP4 167
167.180.112.24
180 112 24
i SIP su UDP
messaggio
m=audio 38060 RTP/AVP 0
• Assomiglia ai messaggi HTTP
• sdp = session description protocol
• Call-ID è unico per ogni chiamata.
Prof. Filippo Lanubile
15
Traduzione dei nomi e localizzazione degli utenti
• Il chiamante ha solo il nome o l’indirizzo e-mail del
destinatario
• Ha
H bi
bisogno di conoscere l’i
l’indirizzo
di i
IP d
dell’attuale
ll’
l host
h
d l
del
destinatario:
– L’utente si sposta
– Protocollo DHCP
– L’utente ha differenti dispositivi IP (PC, PDA,…)
• I risultati si basano su:
– momento della giornata (al lavoro, a casa)
– chiamante (non
(
si desidera che il capo
p ci rintracci a casa))
– status del ricevente (le chiamate vengono dirottate su una
segreteria telefonica se il destinatario sta già parlando con
qualcuno)
• Servizi forniti dai server SIP
– Server di registrazione SIP
– Server proxy SIP
Prof. Filippo Lanubile
Server di registrazione SIP
• U
Un utente
t t (Bob)
(B b) è associato
i t a un server di registrazione
i t i
SIP
al quale l’applicazione, quando viene lanciata, invia un
messaggio di registrazione.
• Il server di registrazione di Bob memorizza il suo attuale
indirizzo IP
REGISTER sip:domain.com SIP/2.0
Via: SIP/2.0/UDP 193.64.210.89
From: sip:[email protected]
To: sip:[email protected]
Expires: 3600
Prof. Filippo Lanubile
16
Proxy SIP
• Alice invia un messaggio di invito al suo server proxy
– Contiene l’indirizzo sip:[email protected]
• Il proxy è responsabile dell’instradamento dei messaggi
SIP
– il messaggio può dover passare attraverso più proxy
• Il chiamato risponde attraverso la stessa serie di proxy
• Il proxy recapita ad Alice il messaggio di risposta
– contiene l’indirizzo IP di Bob
• Meccanismo analogo a quello di un server DNS locale
Prof. Filippo Lanubile
Esempio
•
•
•
•
•
•
•
•
Procedura seguita da [email protected]
per avviare una sessione vocale IP con
[email protected]
(1) Ji
Jim iinvia
i un messaggio
i INVITE all
proxy SIP di umass
(2) Questo fa una ricerca e quindi
rilascia il Messaggio al server di
registrazione
(3) dato che Keith non è più presente
nel server di upenn, quest’ultimo invia
una risposta di ri-direzione verso
[email protected]
(4) Il proxy umass trasmette un INVITE
al server di registrazione SIP di
eurecom
(5) che conosce l’indirizzo e rilancia
l’INVITE al terminale 197.87.54.21, su
cui gira il client SIP di Keith
(6-8) viene inviata una risposta SIP
verso il client SIP
(9) I media vengono scambiati
direttamente tra i due client.
Prof. Filippo Lanubile
17
SIP vs. H.323
• SIP è di origine
i i IETF
• H.323
H 323 è di origine
i i ITU
– Internet Engineering Task
Force
– International
Telecommunication Union
• SIP adotta il principio KISS:
keep it simple stupid
– adotta molti concetti del
Web, di DNS e dell’email
• SIP è un componente
monolitico
– Lavora con RTP, ma non lo
richiede
– Può essere combinato con
altri protocolli e servizi
• H.323 è una famiglia
completa di protocolli
integrati verticalmente per
le conferenze multimediali:
– segnalazione, registrazione,
controllo di ammissione,
trasporto e codec
Prof. Filippo Lanubile
Videoconferenza
• Videoconferenza da
telefono analogico
(POTS)
– ITU H.324
• Videoconferenza da
telefono
f
digitale
(ISDN)
• Videoconferenza su IP
– H.323 o SIP
• Terminali sw o hw
– Web conferencing
– Access Grid
– ITU H.320
Prof. Filippo Lanubile
18
www.webex.com
WebEx
• Web conferencing
software as a service
(SaaS)
• Altamente scalabile
– Cisco Collaboration
Cl d
Cloud
– Fino a migliaia di
partecipanti
Prof. Filippo Lanubile
bigbluebutton.org/
BigBlueButton
• Open Source Web
Conferencing
– 14 componenti OS
http://bigbluebutton.org/components
• Asterisk
• Tomcat
• …
– Google Code
http://code.google.com/p/bigbluebutton/
Prof. Filippo Lanubile
19
Servizio GARR Vconf
http://vconf.garr.it/
• A disposizione degli utenti della rete
GARR per la comunicazione audio-video
tra sedi diverse
• MCU (Multipoint Control Unit) per
permettere a tre o più partecipanti di
condividere una “stanza virtuale” comune
– Video Codec: H.261, H.263, H.263+,
H.263++, H.264
– Audio Codec: G.711, G.722, G.723.1, G.728,
G.729, MPEG-4 AAC-LC, MPEG-4 AAC-LD,
Polycom® Siren14™ / G.722.1 Annex C
– Protocolli: H.323, SIP
• Sistema dedicato alla prenotazione e alla
gestione delle stanze virtuali
• Possibilità di trasmettere in streaming il
contenuto della videoconferenza.
Prof. Filippo Lanubile
Access Grid
www.accessgrid.org
•
I i
Insieme
di risorse
i
– multimedia large-format displays
– presentation and
interactive environments
– interfaces to Grid middleware and
to visualization environments
•
a supporto dell’interazione tra
gruppi (più che tra individui)
Attrezzatura per sala incontro con
venue server
– 2 PC per il controllo del sistema e
per il processing Audio/Video
– Polycom MGC-25
– Echo Canceller
– Matchmaker
– Video camere, proiettori (...)
Prof. Filippo Lanubile
20
AG Virtual Venue Client
• Chat basata su XMPP
• RAT:
– Robust Audio Tool
• Vic
– Video Conferencing
Tool
• Applicazioni condivise
– Shared Presentation
( t)
(ppt)
– Shared Browser
– TigerBoard (shared
whiteboard)
– AGVCR (AG
recording software)
Prof. Filippo Lanubile
Access Grid in un corso di
Global Software Development
con progetti Australia-Canada
e Canada
Canada-Italia
Italia
Prof. Filippo Lanubile
21
Schema riassuntivo per caratterizzare
strumenti di comunicazione sincrona di gruppo
Features
MUST
SHOULD
MAY
Features
Video
Text Chat
Audio
File sharing
Scalabilità
partecipanti
Presentazioni
PowerPoint
Controllo sui
partecipanti
WhiteBoard &
Annotation
Compatibilità
OS
Co-browsing
Compatibilità
browser
Application
Sharing
Session
Recording
Remote
Control
Sicurezza
Voting
Quality of Service:
high | medium | low
Costi
Prof. Filippo Lanubile
MUST
SHOULD
MAY
server side: high | medium | low
client side: high | medium | low
22