Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1
Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce una piattaforma integrata utilizzabile da un qualunque PC con qualunque sistema operativo. E disponibile in forma pacchettizzata per Ubuntu o come Virtual Machine. 2
Il Progetto Nasce nel 2007 all'università di Carleton (USA) Dalla necessità di implementare una soluzione tecnica in grado di permettere l erogazione di contenuti didattici a distanza. Viene inizialmente sviluppato e utilizzato internamente dalla università per raggiungere gli studenti fuori sede. 3
Il Progetto Dal 2009 il progetto si apre ai contributi esterni Con l apertura della bigbluebuttondev mailing list si pongono le basi per la creazione della community attorno alla quale si continua tuttora a sviluppare il progetto. 4
La community Ad oggi la community conta 1326 iscrizioni alla developers mailing list. (sviluppatori) 600 iscrizioni alla users mailing list (utenti) Il progetto Ha 65 fork su GitHUB. Tradotto in 35 lingue. 5
E l ossatura di alcuni servizi commerciali bigmarker.com buddymeeting.com dozeo.com 6
Come funziona BigBlueButton Our vision is that starting a web conference should be as easy as clicking a single metaphorical big blue button[...] http://www.bigbluebutton.org/ 7
Come funziona BigBlueButton WEB Server Client Desktop Browser (Flash e Java). Audio (microfono e speaker). Video (webcam). Si occupa di Inizializzare le conferenze. Gestire il livello di autenticazione degli utenti. BigBlueButton Server Si occupa di: Erogare le Conferenze. Registrare le Conferenze. Mostrare le Conferenze registrate. 8
L Interfaccia del Client Desktop Gestione Funzionalità Client Lavagna Interattiva Chat Rooms Gestione Utenti Gestione Audio 9
Funzionalità Audio-video conferenza nella quale le modalità di partecipazione degli utenti possono essere gestite dal moderatore. Chat comune per tutti i partecipanti con la possibilità di avviare una chat privata con i singoli utenti. Lavagna interattiva in grado di Mostrare una presentazione (caricata e controllata dal docente/moderatore). Permettere al docente la scrittura sulla stessa attraverso l apposito pannello. La lavagna è inoltre in grado di effettuare la conversione automatica del formato dei file per la presentazione. 10
Architettura interna Nginx ( engine x ) funge da proxy per bbb-web e bbb-apps per abilitare il supporto a RTMPT (RTMP tunneling). Fornisce il client principale della piattaforma. 5 Canale dei messaggi tra bbb-web e bbb-apps. 6 Applicazione basata su framework Grails che gestisce la creazione e la programmazione delle conferenze. Si occupa anche della gestione dei login e logout durante la conferenza. Applicazione red5 responsabile della sincronizzazione di tutti i partecipanti alla conferenza. 7 Resta in attesa degli eventi generati dagli utenti (mute/unmute, ecc) e invia i corrispondenti comandi a freeswitch. 3 Responsabile della conversione in flash delle slide delle presentazioni in pdf. 8 Server per il voice conferencing. 4 Responsabile della conversione in flash delle slide delle presentazioni in pdf nel caso in cui swftools non sia in grado. Si occupa anche della generazione delle thumbnails. 9 Applicazione per il Desktop Sharing. 1 2 10 Applicazione per L audio-video Conferencing. 1 8 6 7 10 5 3 2 9 4 11
Architettura interna Front end Conversione slide VOIP CORE BigBlueButton usa nginx come server proxy allo scopo di: 1) Inoltrare le chiamate in entrata al Client BigBlueButton. 2) Inoltrare le chiamate alle API a Tomcat6 (in ascolto sulla porta 8080) 3) Fornire il tunnel HTTP quando i client usano il protocollo RTMPT (tramite porta 80) invece del RTMP (che utilizza la porta 1935). 12
Connettersi All'aula Le connessioni alla piattaforma vengono gestite tramite un meccanismo di richieste tramite url e checksums generati a partire da un token (Security Salt). Grazie a questo meccanismo è possibile la gestione delle funzionalità della piattaforma (avvio e gestione delle conferenze) attraverso altri software. La gestione dell autenticazione nelle aule avviene tramite password che permettono di differenizare il livello di acceso tra i docenti (moderatori) dagli allievi (partecipanti). 13
Caratteristiche della piattaforma Ambiente integrato Setup ambiente in 30 min. Repositories dedicati per Ubuntu. bbb-conf Ambiente di sviluppo out of the box. Architettura Modulare Componenti Software. Funzionalità modulari del Client Web. 14
Uso in Azienda Sistema dedicato di Web Conferencing che consente: - Meeting aziendali interni tra individui e/o sedi geograficamente distanti. - Formazione dei dipendenti con un ricorso mirato e limitato a strutture e/o risorse tecniche esterne all azienda. - La possibilita di gestire in maniera Interattiva i progetti dei clienti. AUMENTARE LA COMUNICAZIONE 15
Integrazioni Disponibili LMS (Learning Management Systems) 16
CMS (Content Management Systems) Groupware 17
API Le A.P.I. per l interfacciamento della piattaforma con altri software sono ben documentate. Esistono esempi di codice di interfacciamento alla piattaforma realizzati nei linguaggi: 18
Branding e Sviluppo Da un server funzionante (o dalla VM) è possibile ottenere un ambiente di sviluppo funzionante in pochi passi: bbb-conf --setup-dev tools Effettua il download e il setup degli strumenti necessari allo sviluppo (groovy, grails, Open Source Flex SDK, OpenJDK, Git ). git clone git://github.com/bigbluebutton/bigbluebutton.git Clona il codice dell'intero progetto all'interno dell'ambiente di sviluppo. bbb-conf --setup-dev client Configura l'ambiente di sviluppo per lo sviluppo del client: modifica la piattaforma in modo che il venga servito il client in sviluppo. 19
Test sul Campo SERVER FISICO Caratteristiche tecniche della macchina host CPU 2x (4 core fisici con HT) Frq. 2,6 GHz RAM 4GB Ram SERVER VIRTUALE CPU 1x (2 virtual core) Frq. 2 GHz RAM 4GB Ram Client simultanei 60 15 Wecams attive 20 12 Attivo Attivo Impiego medio CPU 70% 40% Impiego medio RAM 63% 68% Desktop sharing Banda impiegata (solo audio) 3.6 Mbits/sec 1 Mbits/sec - Versione piattaforma 0.8 stable. - I test sono stati condotti con nell ottica di mantenere la qualità dell audio a livelli ottimali. - Desktop sharing su finestra a 800x600 px. La dimensione e la frequenza di refresh del desktop condiviso influenzano le prestazioni della piattaforma. 20
Stress Test http://www.bigbluebutton.org/2010/05/11/bigbluebutton-stress-test-reaches-over-160-simultaneous-users / 21
Licenze Il codice sorgente della piattaforma e di alcuni progetti correlati (es. Client per piattaforma Android) è disponibile su GitHUB e rilasciato con licenza LGPL (GPL per red5 phone). Per poter integrare l'architetura su prodotti Commerciali è necessario effettuare una sbrandizzazione (perchè il brand BibBlueButton e il relativo logo sono coperti da copyright) 22
Links e Riferimenti Sito Ufficiale http://www.bigbluebutton.org/ Installazione http://code.google.com/p/bigbluebutton/wiki/installationubuntu Sviluppo http://code.google.com/p/bigbluebutton/wiki/developingbbb API http://code.google.com/p/bigbluebutton/wiki/api 23
GRAZIE PER L'ATTENZIONE 24