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

1,158 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,158
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×