Your SlideShare is downloading. ×
Markos calderon   lecciones aprendidas del desarrollo de un sistema de web conferencing
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

846

Published on

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

No Downloads
Views
Total Views
846
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×