markos calderon lecciones aprendidas del desarrollo de un sistema de web conferencing

22
Lecciones Aprendidas del Desarrollo de un Sistema de Conferencias Markos Calderon BigBlueButton Developer [email protected] - @markoscalderon

Upload: startech-conference

Post on 22-Nov-2014

1.060 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Lecciones Aprendidas del Desarrollo de un Sistema de Conferencias

Markos CalderonBigBlueButton Developer

[email protected] - @markoscalderon

Page 2: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Un Sistema de Conferencia Web?

BigBlueButton!

Page 3: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Open Source

• BigBlueButton es un proyecto open source de conferencias web para la educación a distancia

• 1068 subscritos en la lista de correo de desarrollo

• Comunidad activa: +14000 mensajes

• +3 años de desarrollo

• Traducido en mas de 35 idiomas

• Google Summer of Code 2010

• 9 releases

• Installation in 30 minutes!

Page 4: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Interfaz

Page 5: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Android

Page 6: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Arquitectura

Page 7: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Desarrollo del API

Page 8: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Integraciones / Plugins

API

createjoin

isMeetingRunningEnd

GetMeetingsGetMeetingInfo

Page 9: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

API

• Formato del API:http://yourserver.com/bigbluebutton/api/[call]?[params]

• Seguridad:– Security Salt (checksum SHA-1)

• Llamadas del API:create?name=Test&meetingID=test01&record=true&checksum=1234

• Respuesta:

Page 10: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Usando Redis

Page 11: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Redis

• Una base de datos rápida, ligera, clave-valor.

>> SET foo bar=> OK>> GET foo=> bar

Page 12: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Guardar un evento?

A Map of values{ module: Chat event: SendPublicMessage user: markos message: hola! timestamp: 122434 ….}

Page 13: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Por que?

• Busquedas• Indexar• Procesamiento

Page 14: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Tres pasos y a guardar!

=> INCR <eventID>>> eventID -> 100

=> HMSET <meetingID>:eventID> {keys:values}>> demo:100 { module:Chat, event:… }

=> LPUSH <meetingID>:events <eventID>>> demo:events 100

Page 15: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Comunicación entre módulos

BBB-APPSEncargado del

tiempo real

BBB-WEBEncargado del

BigBlueButton API

Actualizaciones:Estado de una Conferencia

ParticipantesConversión de Presentaciones

Page 16: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Mensajes

• Protocolo PUBSUB• Uso de comandos de Redis: PUBLISH y

SUBSCRIBE• Los mensajes son publicados en “canales”

Page 17: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Usando Redis pubsubPublisher:

//an update is publishedredis.publish(

“channel:participants”, “{ meetingID:conf123, type:USER_LEFT,… }”

);

Subscriber:

redis.subscribe(“channel:participants”, updatesHandler);

//The updatesHandlerclass UpdatesHandler{ onMessage(String channel, String message){ //process the message of channel:participants

//{ meetingID:conf123, type:USER_LEFT,… } }}

Page 18: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Reproductor HTML5

Page 19: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

HTML5 Playback

• Al principio, escribimos nuestra propia solucion en javascript puro. Problems:– Codigo complejo – dificil de mantener– Compatibilidad en todos los browsers– Soporte para nuevos modulos

• Ahora, usamos popcorn.js

Page 20: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

HTML5 Playback

Page 21: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing

Mas info acerca de BBB?

• http://bigbluebutton.org/

bigbluebutton-blog

@bigbluebutton

/bigbluebutton

Page 22: Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing