GT-MconfTransfer of technology course             Authors:         Felipe Cecagno     Leonardo Crauss Daronco          Val...
Agenda1. Overview + Initial demonstration2. Architecture and Components    ○ BigBlueButton    ○ Mconf-Web        ■ Activit...
1. Overview + Initial   demonstration
OverviewGT-Mconf - "Sistema de multiconferência paraacesso Interoperável web e móvel"(multiconference system for interoper...
Demonstration                    web portal                                 webconferen                                  c...
2. Architecture
Architecture                 1. BigBlueButton     2. Mobile                                    3. Web portal
Architecture: Our current setupOne physical machine  Intel i7 with 4 cores, 4GB RAM, enough HDOperating System: Ubuntu 10....
2. Architecture1. BigBlueButton
Why BigBlueButton?In the beginning, we were looking for an opensource webconference system with:  ● Audio and video sharin...
Why BigBlueButton?After 1-2 months, we came up with a list of possible solutions: ● Isabel Videoconference ● Global Plaza ...
Why BigBlueButton?Not all of them are open source or for webconference...    webconference       is here!                 ...
Why BigBlueButton?Video/Web conference: ● Isabel ● OpenMeetings ● BigBlueButton ● EVO (not open source) ● DimDim (not open...
Why BigBlueButton?We have also considered developing a new solutionOptions: ● HTML5 ● Flash or a new plug-in     ○ Google ...
Why BigBlueButton?So why BigBlueButton?It has most of what we need:   ● Its webconference        ○ The client runs in the ...
Why BigBlueButton?So why BigBlueButton?Plus: ● Great support from the developers (+3 years of development) ● Active commun...
BigBlueButton - OverviewDeveloped by Blindside Networks, based on CanadaOpen source (LGPL)  Note: uses red5phone, thats un...
BigBlueButton - ArchitectureBuilt on top of ~15 open source components
BigBlueButton - ArchitectureSIP for voice                                             Client: Flash                       ...
BigBlueButton - Architecture                                                                   Modular                    ...
BigBlueButton APIThird-party applications can interact with BigBlueButtonthrough its web APITo: ● Create meetings ● Join a...
BigBlueButton APIWeb APIFormat: API URL + method + parametersExamples:  http://<server>/bigbluebutton/api/ +  ...create?me...
BigBlueButton APIResponses are in XMLExample:   http://<server>/bigbluebutton/api/getMeetingInfo?meetingID=RNP-123...<resp...
BigBlueButton APISecurity modelEach server has a unique 64-char string called saltThe salt is used to calculate a checksum...
BigBlueButton APIWorkflow example                                            Third-party app                            Bi...
BigBlueButton APIUsing the API, BigBlueButton was integrated to several third-party applications:
BigBlueButton RolesUser roles and permissions in a meeting:Viewer ● Users with no authority within the conference ● Can vi...
BigBlueButton RolesUser roles and permissions in a meeting:Important: ● Only the presenter role can be assigned/unassigned...
Things we developed in BigBlueButton● Configurable resolutions                              config.xml
Things we developed in BigBlueButton● Improvements on video windows resizing    ○ Its possible do resize your own video wi...
Things we developed in BigBlueButton● Video windows layout (deprecated)
Things we developed in BigBlueButton● Video dock
Things we developed in BigBlueButton● Overlay buttons
Some technical info about BigBlueButton● Audio codec: 16KHz wide-band Speex● Audio bandwidth: ~48 Kb● Video codec: H.263 (...
2. Architecture2. Web portal(Mconf-Web)
Overview - Why do we need a web app?BigBlueButton provides webconference rooms but you stillneed a system to provide manag...
Overview - Why do we need a web app?BigBlueButton provides webconference rooms but you stillneed a system to provide manag...
About Global PlazaGlobal Plaza or VCC (Virtual Conference Centre)Web application to provide videoconferencing as a service...
About Global Plaza
About Global PlazaUses Isabel as the webconference system                     Isabel interface example
About Global PlazaThe full "Global Plaza stack" is a bit more complicated                         We are using only this  ...
A bit more about Global PlazaMain focus: events! ● Users can create events ● Events can be virtual ● Can be recorded (and ...
Why Global Plaza?We needed a way to test BigBlueButton and its integration withthird-party applications (as fast as possib...
How Mconf-Web worksNote: we will talk about Mconf-Web, that has differences from theoriginal Global PlazaMconf-Web is a fo...
How Mconf-Web worksIt is a social network of users, spaces and eventsUsers can create and join spaces (communities)Users c...
How Mconf-Web worksSpaces can be public or privatePublic spaces ● Viewable by anyone, even by visitors ● Only authorized p...
How Mconf-Web worksWhat about the webconferences? ● Every user has his/her webconference room ● Every space has its webcon...
How Mconf-Web worksUser webconference room ● Its a single room that the user can share with anyone he   wants to ● Only th...
How Mconf-Web worksSpace webconference room:                            The conference is                                r...
How Mconf-Web worksPermissions in the webconferencesIn a users room:  ● Only the owner is a moderator  ● All others are vi...
How Mconf-Web worksHow to join a webconference?Go to your home or space and click "join":Copy and paste the conference lin...
How Mconf-Web worksHow to invite people to a conference? ● Just send them the link    http://mconf.inf.ufrgs.br/webconf/pr...
How Mconf-Web worksWhen invited: ● If the room is private, the user need to enter a password ● If the user is not logged, ...
Other featuresDocuments within a space
Other featuresWall - community messages
Other featuresUsers recent activity and upcoming events
Other featuresLanguagesWe maintain "en" and "pt-br". The   others are from Global Plaza.          (and need to be updated)
Other featuresInternal messages              Notifications in the                      homepage
Other featuresThe rest we will see during the activities...
Implementation detailsMconf-Web is developed in Ruby on Rails (version 3)Rails is a web framework for the Ruby languageA s...
Implementation detailsMconf-Web is developed in Ruby on Rails (version 3)Rails has been a "trending topic" in the web deve...
Implementation detailsIts important to mention that:     The integration with BigBlueButton was developed in              ...
Implementation detailsTwo gems:1. bigbluebutton-api-ruby:Provide methods to communicate with the BBB API.Can be used by an...
Implementation detailsTwo gems:2. bigbluebutton_rails:Has the logic of all the interaction with BigBlueButton (seenext sli...
Implementation detailsTwo gems:2. bigbluebutton_rails:                                Features                            ...
Implementation detailsTwo gems:2. bigbluebutton_rails:                                     Future                         ...
Implementation detailsWith these libraries, we can change our front end applicationand still reuse all the integration wit...
Differences: Mconf-Web and Global PlazaMigration to Rails 3 - it was using Rails 2.3.  This was specially important for ou...
2. Architecture2. Web portal:   Activities
2. Architecture3. Mobile Client(Mconf-Mobile)
Overview● Goal: transparent interaction between desktop and mobile  users● Developing a native Android application● First ...
Architecture● flazr is a Java library which handles the RTMP  communication    ○ Support to Remote Shared Objects develope...
Main functionalities ● View meeting informations
Main functionalities                                  11 ● User status updates    1. Viewer                              1...
Main functionalities ● Raise / lower hand
Main functionalities ● Public and private chat
Main functionalities ● Voice interaction    ○ Tap to speak
Main functionalities ● Voice interaction    ○ Audio configuration
Main functionalities ● Administrative actions    ○ Assign presenter    ○ Kick user    ○ Lower hand    ○ Mute / unmute
Main functionalities ● Video visualization (one at a time)
Main functionalities ● Video capture and publish
BBB-Android and Mconf-MobileBBB-Android accesses directly the BigBlueButton server by aJSP demo application ● Can join fre...
BBB-Android and Mconf-Mobile
BBB-Android and Mconf-MobileCompatible with Android 2.0 and above (~96,7%* of thedevices)Constantly tested on: ● Samsung G...
BBB-Android and Mconf-MobileWe maintain both English and Portuguese (BR) languages ● It is automatically detected by the d...
Mconf-Mobile + Web portal
BBB-Android + Web portalJoin a meeting ● clicking on a hyperlink (in the device browser)
BBB-Android + Web portalJoin a meeting ● scanning a QR Code
BBB-Android security modelOn BigBlueButton 0.71a: ● JSP application removes the need of the security salt (!)On BigBlueBut...
Mobile JSP applicationSupports the calls above: ● getMeetings ● createMeeting ● join
2. Architecture3. Mobile Client:    Activities
3. Transfer of technology
3. Transfer of technology1. Development
Development toolsGoogle Code (http://code.google.com/p/mconf/) ● Wiki ● Issue tracker ● DownloadsGithub (https://github.co...
Developing Mconf-Mobile ● Eclipse + ADT Plugin    ○ Emulator    ○ Debugger    ○ "Live debugging" on a device ● Android SDK...
Developing BigBlueButton ● Development virtual machine of BigBlueButton ● Eclipse    ○ Remote System Explorer Plugin    ○ ...
3. Transfer of technology 2. Deployment
DeploymentMconf-Mobile is easy: you install it in your phone and thats it!But Mconf-Web and BigBlueButton require a server...
DeploymentIdeally, Mconf-Web will be in a standalone machine andmanage several BigBlueButton instances.                   ...
Deployment: BigBlueButtonThe latest version is 0.71a (February 2011).Version 0.8 will be out soon.BigBlueButton runs on Ub...
Deployment: BigBlueButtonAs an open source software, BigBlueButton can be installedfrom source. But this is the hardest wa...
Deployment: BigBlueButtonBigBlueButton also has a very useful script called "bbb-conf"It can:   ● Start/stop/restart the s...
Deployment: BigBlueButtonWe have a script called mconf-bbb-conf that helps adeveloper to setup a BigBlueButton environment...
Deployment: BigBlueButtonTipically you dont want to have the development environmentinstalled in a production environmentb...
Deployment: Mconf-WebIts a Rails application and can be deployed as any other Railsapplication.We use it on Ubuntu (10.04 ...
Deployment: Mconf-WebTo deploy a Rails application you need: ● The source code ● A web server ● An application server     ...
Deployment: Mconf-WebHow-to: ● Install Apache ● Install the Ruby environment ● Install Passenger ● Install the Apache-Pass...
Deployment: Mconf-WebWe have also a script called "mconf-web-conf" that can helpthe setup of a production serverExample:  ...
Deployment: Mconf-WebAlso...We use a library called Capistrano to help the deployment:                                    ...
Deployment: Mconf VMWeve made a virtual machine with: ● Mconf-Web ● BigBlueButton + customizations ● Both enabled to be ac...
Deployment: CloudAnother possibility is to deploy Mconf in the cloud.BigBlueButton has already been used in the Amazon EC2...
Deployment: SecurityHTTPS for Mconf-Web ● Not hard to implement ● Requires configuration in the web server ● Requires some...
Deployment: ScalabilityOne BigBlueButton server supports around 80 voice users and20 webcams** This is the result of the l...
Deployment: ScalabilityHow to improve it: ● Use several servers in a cluster    ○ The easier solution but not the best    ...
4. Feedbacks, statistics and others
Feedbacks and statisticsMconf @ Google Code (wiki + issues)Visitors
Feedbacks and statisticsMconf @ Google Code (wiki + issues)
Feedbacks and statisticsmconf.inf.ufrgs.brCurrent statistics: ● 138 users ● 49 spaces ● ~1200 visits
Feedbacks and statisticsBBB-Android in numbersVersion 0.2 ● Released on May 6th ● 162 downloadsVersion 0.3beta (used on WR...
Feedbacks and statisticsBigBlueButton ● +3 years of development ● Community with ~900   members, ~11k messages ● Increasin...
BigBlueButton Developer SummitThe Mconf Team was invited to give a presentation about theMconf-Mobile project in an online...
Feedbacks and statisticsWe also had some good feedbacks from the BigBlueButtondevelopers, including:  ● Messages in the   ...
5. GT-Mconf in the future +         Debate
Future - 2nd year proposal1. Escalabilidade / Monitoramento2. Integração com padrões de videoconferência3. Suporte a iPhon...
Thank youTime to debate...                         GT-Mconf                    Transfer of technology course              ...
 
 
Some technical info about BigBlueButtonVideo stream flow (end-to-end) ● Video capture (Flash plugin) ● Video publishing - ...
Some technical info about BigBlueButtonAudio stream flow (end-to-end) ● Audio capture (red5phone) ● Audio publishing - RTM...
Upcoming SlideShare
Loading in...5
×

GT-Mconf - Transfer of Technology Course

1,970

Published on

GT-Mconf
Transfer of Technology Course given to RNP members at AUgust 26th 2010
Gives an overall view of the entire project

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

No Downloads
Views
Total Views
1,970
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
71
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

GT-Mconf - Transfer of Technology Course

  1. 1. GT-MconfTransfer of technology course Authors: Felipe Cecagno Leonardo Crauss Daronco Valter Roesler
  2. 2. Agenda1. Overview + Initial demonstration2. Architecture and Components ○ BigBlueButton ○ Mconf-Web ■ Activities ○ Android client ■ Activities1. Transfer of Technology ○ Development ○ Deployment2. Feedbacks, Statistics and Others3. GT-Mconf in the future + Debate
  3. 3. 1. Overview + Initial demonstration
  4. 4. OverviewGT-Mconf - "Sistema de multiconferência paraacesso Interoperável web e móvel"(multiconference system for interoperable access between web and mobile devices)Main objectives: ● Provide a complete webconference environment ● Integration with mobile devices ● Usability ● Open Source ("low cost")Compared to: ● Adobe Connect ● Cisco WebEx
  5. 5. Demonstration web portal webconferen ce system mobile client
  6. 6. 2. Architecture
  7. 7. Architecture 1. BigBlueButton 2. Mobile 3. Web portal
  8. 8. Architecture: Our current setupOne physical machine Intel i7 with 4 cores, 4GB RAM, enough HDOperating System: Ubuntu 10.04BigBlueButton is installed in this machine using Ubuntupackages.This machine has also: ● Mconf-Web running in a virtual machine ● Two other development VMs
  9. 9. 2. Architecture1. BigBlueButton
  10. 10. Why BigBlueButton?In the beginning, we were looking for an opensource webconference system with: ● Audio and video sharing ○ HD video if possible ● Document sharing ● Mobile clients ● Peer-to-peer or client-server ● Multiple clients ● Integrated with collaborative environmentsTo be used for: ● Virtual meetings ● Virtual synchronous classes ● Collaborative work
  11. 11. Why BigBlueButton?After 1-2 months, we came up with a list of possible solutions: ● Isabel Videoconference ● Global Plaza ● Virtual Conference Centre (VCC) ● OpenMeetings ● MediaMosa ● Kaltura ● DimDim ● VMukti ● EVO ● Opencast Matterhorn ● Opencast Steeple ● Access Grid ● CineGrid ● Janet ● BigBlueButton* *It really was the last one in the list
  12. 12. Why BigBlueButton?Not all of them are open source or for webconference... webconference is here! http://www.terena.org/activities/media/
  13. 13. Why BigBlueButton?Video/Web conference: ● Isabel ● OpenMeetings ● BigBlueButton ● EVO (not open source) ● DimDim (not open source anymore)Media management and distribution: ● Global Plaza ● VCC ● MediaMosa ● Opencast Matterhorn ● Kaltura
  14. 14. Why BigBlueButton?We have also considered developing a new solutionOptions: ● HTML5 ● Flash or a new plug-in ○ Google Talks style ● Using code from IVAWhy we decided not to do it: ● Would require too much time given our budget and team size ● Theres no point in starting something new if theres a good open source solution
  15. 15. Why BigBlueButton?So why BigBlueButton?It has most of what we need: ● Its webconference ○ The client runs in the browser (using Flash) ● Open source ● Audio/video sharing ● Document sharing ● Chat ● Easy to setup ● Can be integrated with collaborative systems ○ Ex: Moodle, Sakai, Drupal, etc.
  16. 16. Why BigBlueButton?So why BigBlueButton?Plus: ● Great support from the developers (+3 years of development) ● Active community (~900 members, ~11k messages) ● Good documentation ● Good code base and roadmap
  17. 17. BigBlueButton - OverviewDeveloped by Blindside Networks, based on CanadaOpen source (LGPL) Note: uses red5phone, thats under GPLDevelopment started in 2007Website: http://bigbluebutton.org/Blindsite Networks: http://www.blindsidenetworks.com/
  18. 18. BigBlueButton - ArchitectureBuilt on top of ~15 open source components
  19. 19. BigBlueButton - ArchitectureSIP for voice Client: Flash Server: mostly Java, but not only Asterisk or FreeSWITCH Red5 http://code.google.com/p/bigbluebutton/wiki/ArchitectureOverview
  20. 20. BigBlueButton - Architecture Modular architecture http://code.google.com/p/bigbluebutton/wiki/ArchitectureOverview
  21. 21. BigBlueButton APIThird-party applications can interact with BigBlueButtonthrough its web APITo: ● Create meetings ● Join a meeting ● End meetings ● Get info about current meetings ● Fetch recordings (in the next version)Docs: http://code.google.com/p/bigbluebutton/wiki/API
  22. 22. BigBlueButton APIWeb APIFormat: API URL + method + parametersExamples: http://<server>/bigbluebutton/api/ + ...create?meetingID=prav-123&checksum=ba87d6a8 ...join?fullname=Ana&password=pass&checksum=ba87d6a8 ...isMeetingRunning?meetingID=prav-123&checksum=ba87d6a8 ...end?meetingID=prav-123&checksum=ba87d6a8 ...getMeetingInfo?meetingID=prav-123&checksum=ba87d6a8 ...getMeetings?random=231412&checksum=ba87d6a8
  23. 23. BigBlueButton APIResponses are in XMLExample: http://<server>/bigbluebutton/api/getMeetingInfo?meetingID=RNP-123...<response> (...cont.) <returncode>SUCCESS</returncode> <participantCount>1</participantCount> <meetingID>RNP-123</meetingID> <moderatorCount>1</moderatorCount> <attendeePW>attendee_pass</attendeePW> <attendees> <moderatorPW>mod_pass</moderatorPW> <attendee> <running>true</running> <userID>xczenpd3hhrq</userID> <startTime> <fullName>John Doe</fullName> Tue Aug 13 17:30:44 UTC 2011 <role>MODERATOR</role> </startTime> </attendee> <endTime>null</endTime> </attendees> (cont...) </response>
  24. 24. BigBlueButton APISecurity modelEach server has a unique 64-char string called saltThe salt is used to calculate a checksum, used in all API callsSo only authorized apps can make API calls ● Apps that know the server salt ...create?meetingID=prav-123&checksum=ba87d6a8 ...join?fullname=Ana&password=pass&checksum=ba87d6a8 ...isMeetingRunning?meetingID=prav-123&checksum=ba87d6a8 ...end?meetingID=prav-123&checksum=ba87d6a8 ...getMeetingInfo?meetingID=prav-123&checksum=ba87d6a8 ...getMeetings?random=231412&checksum=ba87d6a8
  25. 25. BigBlueButton APIWorkflow example Third-party app BigBlueButton (e.g. web portal) API User X wants to join his meeting authentication, permission check, etc. isMeetingRunning? XML: No, not running. create XML: Ok, created. join XML: Ok, go to <url> Redirect the user to <url> He will join the session.
  26. 26. BigBlueButton APIUsing the API, BigBlueButton was integrated to several third-party applications:
  27. 27. BigBlueButton RolesUser roles and permissions in a meeting:Viewer ● Users with no authority within the conference ● Can view the presentation, videos and chat ● Ex: students in a virtual classroomPresenter ● The same capabilities as a participant, plus ● Can upload and control presentations ● Can share desktopModerator ● Controls the session: can kick users, switch presenter, mute users, and others.
  28. 28. BigBlueButton RolesUser roles and permissions in a meeting:Important: ● Only the presenter role can be assigned/unassigned during the conference! ● Viewer and moderator roles are defined when the user joins the session.
  29. 29. Things we developed in BigBlueButton● Configurable resolutions config.xml
  30. 30. Things we developed in BigBlueButton● Improvements on video windows resizing ○ Its possible do resize your own video window ○ Better usability
  31. 31. Things we developed in BigBlueButton● Video windows layout (deprecated)
  32. 32. Things we developed in BigBlueButton● Video dock
  33. 33. Things we developed in BigBlueButton● Overlay buttons
  34. 34. Some technical info about BigBlueButton● Audio codec: 16KHz wide-band Speex● Audio bandwidth: ~48 Kb● Video codec: H.263 (Sorenson Spark)● Video bandwidth - depends on the configured quality (values between 0 and 100, we use 80) ○ 160x120: ~88 Kb ○ 320x240: ~224 Kb ○ 640x480: ~420 Kb ○ 1280x720: ~446 Kb● Both audio and video communication are RTMP over TCP
  35. 35. 2. Architecture2. Web portal(Mconf-Web)
  36. 36. Overview - Why do we need a web app?BigBlueButton provides webconference rooms but you stillneed a system to provide management tasks such as: ● User authentication ● Permission control ● Webconference management ○ Manage multiple meetings ○ CRUD (create, read, update, delete) (cont...)
  37. 37. Overview - Why do we need a web app?BigBlueButton provides webconference rooms but you stillneed a system to provide management tasks such as: (cont...) ● Server management ○ Manage multiple servers ○ CRUD ○ Monitoring and load balancing ● Conference scheduling ● Usage statistics ● Access to the recordings (audio, video, presentations) ● Pre-upload of documents
  38. 38. About Global PlazaGlobal Plaza or VCC (Virtual Conference Centre)Web application to provide videoconferencing as a service http://globalplaza.orgDeveloped in the European Global Project http://www.global-project.eu/ "Global Plaza delivers a virtual event service for the Internet, which will enable you to perform videoconferencing, streaming, recording and electronic publishing of your meetings, lectures, training sessions, conferences, congresses or workshops."
  39. 39. About Global Plaza
  40. 40. About Global PlazaUses Isabel as the webconference system Isabel interface example
  41. 41. About Global PlazaThe full "Global Plaza stack" is a bit more complicated We are using only this block, the web application
  42. 42. A bit more about Global PlazaMain focus: events! ● Users can create events ● Events can be virtual ● Can be recorded (and published later) ● Can be streamedEvents can be: ● In person ○ You just have a date and agenda in the website. ● Virtual meetings ○ Using Isabel. Has streaming and recording. ● Virtual congress ○ Large virtual meetings, usually needs an on-site operator.
  43. 43. Why Global Plaza?We needed a way to test BigBlueButton and its integration withthird-party applications (as fast as possible).We found in Global Plaza the features we needed for the firstprototype: ● User authentication ● Permission control ● A web environment to start and manage webconferencesLots of people talking about it in TF-Media lists.Among the open source solutions found, it was the closestrelated to our ideas and needs.
  44. 44. How Mconf-Web worksNote: we will talk about Mconf-Web, that has differences from theoriginal Global PlazaMconf-Web is a fork of Global Plaza (something like a copy).The main difference is that Mconf-Web uses BigBlueButtoninstead of Isabel.But there are many others.
  45. 45. How Mconf-Web worksIt is a social network of users, spaces and eventsUsers can create and join spaces (communities)Users can create and participate in eventsEvents are held inside a spaceEvents have a start and end dateUsers events: that will be held in the space PRAV
  46. 46. How Mconf-Web worksSpaces can be public or privatePublic spaces ● Viewable by anyone, even by visitors ● Only authorized people can alter itPrivate spaces ● Only viewable by authorized people ● Nobody else will be able to see the activity inside this space
  47. 47. How Mconf-Web worksWhat about the webconferences? ● Every user has his/her webconference room ● Every space has its webconference room
  48. 48. How Mconf-Web worksUser webconference room ● Its a single room that the user can share with anyone he wants to ● Only the owner can start the conference ● The room is public, anyone with the link can join ○ Obs: he will be able to set it as private soon The conference is not running
  49. 49. How Mconf-Web worksSpace webconference room: The conference is running!
  50. 50. How Mconf-Web worksPermissions in the webconferencesIn a users room: ● Only the owner is a moderator ● All others are viewersIn a spaces room: ● All members are moderators ● All others: ○ Public space: are viewers ○ Private space: must enter a password to join
  51. 51. How Mconf-Web worksHow to join a webconference?Go to your home or space and click "join":Copy and paste the conference link in the browser: http://mconf.inf.ufrgs.br/webconf/prav http://mconf.inf.ufrgs.br/webconf/leonardo-daronco
  52. 52. How Mconf-Web worksHow to invite people to a conference? ● Just send them the link http://mconf.inf.ufrgs.br/webconf/prav ● Or use the invite dialog:Can invite Mconf users or using emails
  53. 53. How Mconf-Web worksWhen invited: ● If the room is private, the user need to enter a password ● If the user is not logged, he needs to enter his name
  54. 54. Other featuresDocuments within a space
  55. 55. Other featuresWall - community messages
  56. 56. Other featuresUsers recent activity and upcoming events
  57. 57. Other featuresLanguagesWe maintain "en" and "pt-br". The others are from Global Plaza. (and need to be updated)
  58. 58. Other featuresInternal messages Notifications in the homepage
  59. 59. Other featuresThe rest we will see during the activities...
  60. 60. Implementation detailsMconf-Web is developed in Ruby on Rails (version 3)Rails is a web framework for the Ruby languageA simple example of how it compares to other languages: PHP Java Ruby CakePHP Spring OpenLazslo Rails Joomla! Apache Struts Sinatra Drupal http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks
  61. 61. Implementation detailsMconf-Web is developed in Ruby on Rails (version 3)Rails has been a "trending topic" in the web development areain the last years.It is also usually associated to agile developmentmethodologies.We started using it because of Global Plaza and we dontregret it.
  62. 62. Implementation detailsIts important to mention that: The integration with BigBlueButton was developed in libraries (called gems in Ruby) Any Rails application!
  63. 63. Implementation detailsTwo gems:1. bigbluebutton-api-ruby:Provide methods to communicate with the BBB API.Can be used by any Ruby application (not only Rails).
  64. 64. Implementation detailsTwo gems:2. bigbluebutton_rails:Has the logic of all the interaction with BigBlueButton (seenext slide)
  65. 65. Implementation detailsTwo gems:2. bigbluebutton_rails: Features (mostly copied from "Why do we need a web application?") ● Webconference management ○ Manage multiple meetings ○ CRUD (create, read, update, delete) ● Server management ○ Manage multiple servers ○ CRUD ● Server monitoring ● Pre-upload of documents ● Helps verifying user permissions ● And several others...
  66. 66. Implementation detailsTwo gems:2. bigbluebutton_rails: Future (lots of possibilities) ● Load balancing ● Limit the number of users per meeting ● Access to the recordings (audio, video, presentations) ● Server administration ○ Change configs in the server ○ Restart the server ○ Check if everything is OK ● Usage statistics ● And several others...
  67. 67. Implementation detailsWith these libraries, we can change our front end applicationand still reuse all the integration with BigBlueButton.And we can also integrate Mconf/BigBlueButton into otherapplications.(the libraries would work somehow like a Moodle module)
  68. 68. Differences: Mconf-Web and Global PlazaMigration to Rails 3 - it was using Rails 2.3. This was specially important for our gems.Replaced Isabel by BigBlueButton.In Global Plaza, only events have webconference rooms.In Mconf-Web: Users have personal rooms Spaces have roomsLots of changes in the interface.We are trying to make it simpler and easier to use. With that we removed some features that we dont need. Or that are not ready yet for BigBlueButton.
  69. 69. 2. Architecture2. Web portal: Activities
  70. 70. 2. Architecture3. Mobile Client(Mconf-Mobile)
  71. 71. Overview● Goal: transparent interaction between desktop and mobile users● Developing a native Android application● First iniciative on building a mobile client
  72. 72. Architecture● flazr is a Java library which handles the RTMP communication ○ Support to Remote Shared Objects developed by our team● bbb-java is a client side Java API to interact with the BigBlueButton server● bbb-android-core is a native Android library ○ Mostly developed in Java - some code in C++ ○ Some code from the IVA project ○ Integrated with Sipdroid to provide voice functionalities ○ Uses FFmpeg for video encoding and decoding
  73. 73. Main functionalities ● View meeting informations
  74. 74. Main functionalities 11 ● User status updates 1. Viewer 12 1 2. Moderator 3 3. Is transmitting video 10 4. Presenter token 2 4 5. Has raised hand 5 6. Muted 7. Unmuted 8. Speaking 6 9. New public chat message 10. New private chat message 8 11. App notifications 7 9 12. Connection status
  75. 75. Main functionalities ● Raise / lower hand
  76. 76. Main functionalities ● Public and private chat
  77. 77. Main functionalities ● Voice interaction ○ Tap to speak
  78. 78. Main functionalities ● Voice interaction ○ Audio configuration
  79. 79. Main functionalities ● Administrative actions ○ Assign presenter ○ Kick user ○ Lower hand ○ Mute / unmute
  80. 80. Main functionalities ● Video visualization (one at a time)
  81. 81. Main functionalities ● Video capture and publish
  82. 82. BBB-Android and Mconf-MobileBBB-Android accesses directly the BigBlueButton server by aJSP demo application ● Can join freely all the running meetings, also as a moderator ● Needs to know the server addressMconf-Mobile accesses the web portal ● Same permissions as in the web portal ● Can join only his own rooms, rooms from spaces that the user is member and rooms from public spaces ● Just needs to know the mconf.inf.ufrgs.br (or mconf.org)
  83. 83. BBB-Android and Mconf-Mobile
  84. 84. BBB-Android and Mconf-MobileCompatible with Android 2.0 and above (~96,7%* of thedevices)Constantly tested on: ● Samsung Galaxy S (Android 2.2) ● Samsung Galaxy Tab (Android 2.2.1) ● Motorola Milestone (Android 2.0.1)Recommended: Android 2.2 or above* http://developer.android.com/resources/dashboard/platform-versions.html onAugust 2011
  85. 85. BBB-Android and Mconf-MobileWe maintain both English and Portuguese (BR) languages ● It is automatically detected by the device ● Easy to translate to others
  86. 86. Mconf-Mobile + Web portal
  87. 87. BBB-Android + Web portalJoin a meeting ● clicking on a hyperlink (in the device browser)
  88. 88. BBB-Android + Web portalJoin a meeting ● scanning a QR Code
  89. 89. BBB-Android security modelOn BigBlueButton 0.71a: ● JSP application removes the need of the security salt (!)On BigBlueButton 0.8 (under development): ● JSP application requires a checksum with a unique security salt per server ● Salt must be small enough to be entered in the device, probably a 5-char string
  90. 90. Mobile JSP applicationSupports the calls above: ● getMeetings ● createMeeting ● join
  91. 91. 2. Architecture3. Mobile Client: Activities
  92. 92. 3. Transfer of technology
  93. 93. 3. Transfer of technology1. Development
  94. 94. Development toolsGoogle Code (http://code.google.com/p/mconf/) ● Wiki ● Issue tracker ● DownloadsGithub (https://github.com/mconf) ● Public source code repository ● 15 projects under the Mconf organization
  95. 95. Developing Mconf-Mobile ● Eclipse + ADT Plugin ○ Emulator ○ Debugger ○ "Live debugging" on a device ● Android SDK ● Android NDK* All multiplatform tools
  96. 96. Developing BigBlueButton ● Development virtual machine of BigBlueButton ● Eclipse ○ Remote System Explorer Plugin ○ AS Development Tools Plugin ● Adobe Flash Player - Debugger ● SSH + Apache Ant* All multiplatform tools
  97. 97. 3. Transfer of technology 2. Deployment
  98. 98. DeploymentMconf-Mobile is easy: you install it in your phone and thats it!But Mconf-Web and BigBlueButton require a server setup.
  99. 99. DeploymentIdeally, Mconf-Web will be in a standalone machine andmanage several BigBlueButton instances. We can have several servers if needed
  100. 100. Deployment: BigBlueButtonThe latest version is 0.71a (February 2011).Version 0.8 will be out soon.BigBlueButton runs on Ubuntu 10.04 (latest LTS version).You can also install it in other Linux distributions, but itsharder.There are guides to Debian and FreeBSD:http://code.google.com/p/bigbluebutton/wiki/InstallationBigBlueButtonDebianhttp://code.google.com/p/bigbluebutton/wiki/InstallingBigBlueButtonFreeBSD
  101. 101. Deployment: BigBlueButtonAs an open source software, BigBlueButton can be installedfrom source. But this is the hardest way to do it.http://code.google.com/p/bigbluebutton/wiki/InstallingBigBlueButtonThere are also easier options: ● Using the Virtual Machine: you have the entire development and production environments. Great for development and testing, but not the best solution for deployment. ● Installing from packages: ○ Just three apt commands http://code.google.com/p/bigbluebutton/wiki/InstallationUbuntu
  102. 102. Deployment: BigBlueButtonBigBlueButton also has a very useful script called "bbb-conf"It can: ● Start/stop/restart the server ● Check for errors ● Change the IP or domain namehttp://code.google.com/p/bigbluebutton/wiki/BBBConf
  103. 103. Deployment: BigBlueButtonWe have a script called mconf-bbb-conf that helps adeveloper to setup a BigBlueButton environment from theMconf repositoryIt includes: ● the source code ● the right configurations to use SpeexAlso it deploys the source code to be used in the developmentvirtual machineExample: mconf-bbb-conf mconf.inf.ufrgs.br:80https://github.com/mconf/installation-scripts
  104. 104. Deployment: BigBlueButtonTipically you dont want to have the development environmentinstalled in a production environmentbbb-deploy is an Apache Ant script to deploy BigBlueButtonfrom a development environment (most probably thedevelopment virtual machine) to a production serverIt does: ● deploy in one command and no interaction ● backup the old production version ● restore an old versionhttps://github.com/mconf/installation-scripts/tree/master/bbb-deploy
  105. 105. Deployment: Mconf-WebIts a Rails application and can be deployed as any other Railsapplication.We use it on Ubuntu (10.04 or newer).But it should work on any operating system that has support toRuby on Rails (almost all of them have).
  106. 106. Deployment: Mconf-WebTo deploy a Rails application you need: ● The source code ● A web server ● An application server Rails application Passenger Apache
  107. 107. Deployment: Mconf-WebHow-to: ● Install Apache ● Install the Ruby environment ● Install Passenger ● Install the Apache-Passenger module ● Copy the application code to a configured pathMore information at:http://code.google.com/p/mconf/wiki/MconfWebDeploymentManual
  108. 108. Deployment: Mconf-WebWe have also a script called "mconf-web-conf" that can helpthe setup of a production serverExample: mconf-web-conf --install-packages production mconf-web-conf --install-ruby mconf-web-conf --setup-prodDetails at:http://code.google.com/p/mconf/wiki/MconfWebDeploymentWithScript
  109. 109. Deployment: Mconf-WebAlso...We use a library called Capistrano to help the deployment: Your development machineNot required, but recommended.
  110. 110. Deployment: Mconf VMWeve made a virtual machine with: ● Mconf-Web ● BigBlueButton + customizations ● Both enabled to be accessed by Mconf-MobileIt can be used to: ● Have a fast testing version of Mconf ● Have a pre-configured development environmentMore information at:http://code.google.com/p/mconf/wiki/MconfVM
  111. 111. Deployment: CloudAnother possibility is to deploy Mconf in the cloud.BigBlueButton has already been used in the Amazon EC2cloud. Theres information about it in their wiki + mailing lists.Mconf-Web can also be deployed in infrastructure clouds likeAmazons, but we have not tested yet.Also, Mconf-Web can be deployed in application clouds, suchas Heroku (http://www.heroku.com/)
  112. 112. Deployment: SecurityHTTPS for Mconf-Web ● Not hard to implement ● Requires configuration in the web server ● Requires some development on Mconf-MobileRTMPS for BigBlueButton ● Theres people talking about it in the mailing lists ● It seems possible, but we dont know how hard it is
  113. 113. Deployment: ScalabilityOne BigBlueButton server supports around 80 voice users and20 webcams** This is the result of the lastest stress test and is very dependent on the machine whereBigBlueButton is installed (Xeon 3450 quad core 2.66 Ghz with hyperthreading).
  114. 114. Deployment: ScalabilityHow to improve it: ● Use several servers in a cluster ○ The easier solution but not the best ○ Individual rooms will still be limited to the capacity of 1 server ● Use several audio servers ○ BBB uses FreeSWITCH for voice, that can be scaled ● Use several video servers ○ It requires allowing several Red5 instances to run in parallel
  115. 115. 4. Feedbacks, statistics and others
  116. 116. Feedbacks and statisticsMconf @ Google Code (wiki + issues)Visitors
  117. 117. Feedbacks and statisticsMconf @ Google Code (wiki + issues)
  118. 118. Feedbacks and statisticsmconf.inf.ufrgs.brCurrent statistics: ● 138 users ● 49 spaces ● ~1200 visits
  119. 119. Feedbacks and statisticsBBB-Android in numbersVersion 0.2 ● Released on May 6th ● 162 downloadsVersion 0.3beta (used on WRNP 2011) ● Released on May 28th ● 351 downloadsVersion 0.4 ● Released on August 25thVersion 0.5 ● Will be released on Android Market soon
  120. 120. Feedbacks and statisticsBigBlueButton ● +3 years of development ● Community with ~900 members, ~11k messages ● Increasing worldwide interest in the software Interest in BBB during the last Terenas TF-Media meeting
  121. 121. BigBlueButton Developer SummitThe Mconf Team was invited to give a presentation about theMconf-Mobile project in an online developer summiton August 28thhttp://bigbluebutton.eventbrite.com/
  122. 122. Feedbacks and statisticsWe also had some good feedbacks from the BigBlueButtondevelopers, including: ● Messages in the mailing lists ● Blog posts ● References in presentations
  123. 123. 5. GT-Mconf in the future + Debate
  124. 124. Future - 2nd year proposal1. Escalabilidade / Monitoramento2. Integração com padrões de videoconferência3. Suporte a iPhone OS4. Melhorias no núcleo do BBB5. Melhorias no aplicativo Android6. Melhorias no Portal WEB7. Status de usuário
  125. 125. Thank youTime to debate... GT-Mconf Transfer of technology course Authors: Felipe Cecagno Leonardo Crauss Daronco Valter Roesler
  126. 126.  
  127. 127.  
  128. 128. Some technical info about BigBlueButtonVideo stream flow (end-to-end) ● Video capture (Flash plugin) ● Video publishing - RTMP over TCP to the video server (Flash plugin) ● Stream forward (Red5 server) ● Video receiving (Flash plugin) ● Video playback (Flash plugin)
  129. 129. Some technical info about BigBlueButtonAudio stream flow (end-to-end) ● Audio capture (red5phone) ● Audio publishing - RTMP over TCP to the video server (red5phone) ● Audio forward from Red5 to FreeSWITCH (or Asterisk) ● Audio forward from FreeSWITCH (or Asterisk) to Red5 ● Audio receiving (red5phone) ● Audio playback (red5phone)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×