Lecciones Aprendidas del Desarrollo de      un Sistema de Conferencias                Markos Calderon            BigBlueBu...
Un Sistema de Conferencia Web?        BigBlueButton!
Open Source• BigBlueButton es un proyecto open source de  conferencias web para la educación a distancia• 1068 subscritos ...
Interfaz
Android
Arquitectura
Desarrollo del API
Integraciones / Plugins             API              create               join        isMeetingRunning               End  ...
API• Formato del API:  http://yourserver.com/bigbluebutton/api/[call]?[params]• Seguridad:  – Security Salt (checksum SHA-...
Usando Redis
Redis• Una base de datos rápida, ligera, clave-valor.                   >>   SET foo bar                   =>   OK        ...
Guardar un evento?             A Map of values             {                 module: Chat                 event: SendPubli...
Por que?• Busquedas• Indexar• Procesamiento
Tres pasos y a guardar!=> INCR <eventID>>> eventID -> 100=> HMSET <meetingID>:eventID> {keys:values}>> demo:100 { module:C...
Comunicación entre módulos BBB-APPS                             BBB-WEBEncargado del                        Encargado del ...
Mensajes• Protocolo PUBSUB• Uso de comandos de Redis: PUBLISH y  SUBSCRIBE• Los mensajes son publicados en “canales”
Usando Redis pubsubPublisher://an update is publishedredis.publish(           “channel:participants”,           “{ meeting...
Reproductor HTML5
HTML5 Playback• Al principio, escribimos nuestra propia solucion en javascript  puro. Problems:   – Codigo complejo – difi...
HTML5 Playback
Mas info acerca de BBB?• http://bigbluebutton.org/             bigbluebutton-blog             @bigbluebutton             /...
Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing
Próxima SlideShare
Cargando en…5
×

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

1.087 visualizaciones

Publicado el

Publicado en: Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.087
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
17
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

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

  1. 1. Lecciones Aprendidas del Desarrollo de un Sistema de Conferencias Markos Calderon BigBlueButton Developer mcmarkos86@gmail.com - @markoscalderon
  2. 2. Un Sistema de Conferencia Web? BigBlueButton!
  3. 3. 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!
  4. 4. Interfaz
  5. 5. Android
  6. 6. Arquitectura
  7. 7. Desarrollo del API
  8. 8. Integraciones / Plugins API create join isMeetingRunning End GetMeetings GetMeetingInfo
  9. 9. 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:
  10. 10. Usando Redis
  11. 11. Redis• Una base de datos rápida, ligera, clave-valor. >> SET foo bar => OK >> GET foo => bar
  12. 12. Guardar un evento? A Map of values { module: Chat event: SendPublicMessage user: markos message: hola! timestamp: 122434 …. }
  13. 13. Por que?• Busquedas• Indexar• Procesamiento
  14. 14. 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
  15. 15. Comunicación entre módulos BBB-APPS BBB-WEBEncargado del Encargado del tiempo real BigBlueButton API Actualizaciones: Estado de una Conferencia Participantes Conversión de Presentaciones
  16. 16. Mensajes• Protocolo PUBSUB• Uso de comandos de Redis: PUBLISH y SUBSCRIBE• Los mensajes son publicados en “canales”
  17. 17. 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,… } }}
  18. 18. Reproductor HTML5
  19. 19. 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
  20. 20. HTML5 Playback
  21. 21. Mas info acerca de BBB?• http://bigbluebutton.org/ bigbluebutton-blog @bigbluebutton /bigbluebutton

×