Big Blue Button – Exploring Architecture Part 2 – bbb-web –

Today I am going to explore the second part of interactions within BBB. As i said before when user does something with Big Blue Button  the information is sent to the web server, and web-server  sends it to one of the two places either to bbb-web or bbb-aps.

In this post i will be writing about bbb-web.  bbb-web is used for every not audio or video actions inside the BBB. As an example it is used to  schedule conferences, login/logout, retrieving/saving  data to database, also to  work with uploaded data. So as i found out from the Video Tutorial  bbb-web  is a Grails application. And Grails is Java based web-app framework. “bbb-web” stands on top   of  Tomcat servlet container. Also “bbb-web” uses MySQL  database that keeps information about all data used in BBB (e.g conferences time, user info etc.).

bbb-web uses 2 converters they are  named as “SWFtools”.Swf tools  are used to convert pdf or png presentations, that teacher uploads,  into “swf”  format, otherwise  students won’t be able to see presentations . The action in the Video where user uploads a presentation and it is seen on the website is done by bbb-web that receives png or pdf data and converts it to the flash swf format.

To create thumbnails of the presentation is used tools called Imagemagic and GhostScript, the second task of Imagemagic is to work as SwiftTools in case they fail to convert presentation for any reason. I guess that Imagemagic is not used primarily for this task because small converters work faster.

The last thing in this post i want write about is a tool s called “activemq“. ActiveMQ is an messaging server  that through  Java scripts  sends information about convertion status  bbb-web and bbb-aps (I will talk about bbb-aps in the next post). It is needed to  track errors and make the communication between two essential components of BBB.

This is it for now about the bbb-web. In the next post I am going to get in depth about bbb-aps and how it interacts with the whole system.

About Anatoly Spektor

My name is Anatoly Spektor (originally Anatolijs Spektors) I am Software and Web Developer. I have worked in Seneca Center for Development of Open Technology on Big Blue Button Add-on - Polling Module, Red Hat and some other places :) I am an author of the book 'Eclipse Debugging How To', Muay Thai fighter and amateur photographer ;)
This entry was posted in Project BBB and tagged , , , , , . Bookmark the permalink.

4 Responses to Big Blue Button – Exploring Architecture Part 2 – bbb-web –

  1. Fred Dixon says:

    Thanks for covering our project!

    Regards,… Fred

    BigBlueButton Developer

  2. Fred Dion says:

    Hi Anatoly,

    A few comments on the your “Architecture Part 2” post.

    > As an example it is used to schedule conferences, login/logout, retrieving/saving data to database, also to work with uploaded data.

    BigBlueButton 0.71 doesn’t use mysql to store anything in a database. The requirement for mysql was a holdover from using grails in to create a rudimentary scheduling application in an earlier version, which has since been long depreciated.

    If you look into the bigbluebutton_dev database, you’ll see its empty. This is by design.

    The BigBlueButton API does not let you schedule conference. This is by design … we wanted BigBlueButton to be stateless. You should be able to shutdown/restart, upgrade, or event swap a complete fresh BigBlueButton server and not break your 3rd party application.

    Consider if BigBlueButton let you schedule meetings or held a database of users. You wouldn’t be able to swap in a new BigBlueButton server because your 3rd party app would be dependent on the data in BigBlueButton. If a schedule changed in your app, you would need to update the schedule in BigBlueButton. There would also be the need to back up BigBlueButton.

    There isn’t anything to back up. Even the server were to crash, you could simply install BigBlueButton on a new server and re-apply the security salt.

    Keep up the good work.

    Regards,… Fred

    BigBlueButton Developer

    • Hello Fred,

      Thank you for your comment. Now it made the picture for me much more clearer. I was just a bit confused with MySQL component and thought, that it could do something like store users or scheduling info, but now i understand that it could really be a huge drawback of having to be dependent on the database, if system is supposed to be easily portable.

  3. Muhyi says:

    Great info. I was confused how to set schedule. But after reading this post and, now I understand.

    Fred, it was a nice chat with you in Two thumbs up for the dev team. 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s