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