BigBlueButton
Components
Components Overview of the
BigBlueButton Platform
1
* RIADVICE's products and services for BigBlueButton are not endorsed or certified by BigBlueButton Inc. BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.
Presentation
Plan
2
Terminology
Languages and framework
Components: From their order in
appearance to the user starting from
the front-end
Terminology
• Client:
• HTML5 Client.
• Web Client.
• Server components:
• Components running in the server, most
of the times without any front-end direct
feedback.
• Media streams:
• Audio conference, listen only audio.
• Webcams.
• Screensharing.
• Messages / Data streams:
• Data exchanged between the server
components in json format through redis.
3
Programming
Languages,
Frameworks
& Build Tools
• Languages:
• Node.js
• Java
• Scala
• Groovy
• Ruby
• Bash
• Python
• Frameworks:
• Meteor
• Akka
• Grails
• Build Tools
• sbt
• gradle
4
HTML5 Client
• Technologies
• Meteor.js (Frontend & Backend)
• MongoDB.
• How is it used in BigBlueButton?
• The frontend client.
5
Etherpad
6
What is Etherpad?
Collaborative document editor.
How BigBlueButton uses it?
It is the “shared notes” feature in the client.
Nginx • What is nginx?
• Web server
• Reverse proxy
• Load balancer
• HTTP cache
• How BigBlueButton uses it?
• Web server for:
• Presentation slides
• Recordings’
playback.
• Reverse proxy for:
• HTML5 client
• BigBlueButton Web
• Freeswitch
• Etherpad (Shared
notes)
• Webhooks
• WebRTC SFU
7
MongoDB
8
What is MongoDB?
Document-based distributed database.
How BigBlueButton uses it?
Store the client data in the server side.
WebRTC SFU
• What is WebRTC SFU?
• A media server agnostic application that
implements a control plane for multi party
media exchange, focused on providing a
SFU architecture.
• How BigBlueButton uses it?
• Exposes a client facing API to handle video,
listen only and screen sharing negotiation
and media switching
• Responsible for controlling Kurento
(webcams, screen sharing, listen only) and
FreeSWITCH (listen only)
• Responsible for interfacing and translating
events between media servers and the BBB
core through Redis (akka-apps and recording
events)
9
10
Kurento
Media
Server
What is Kurento Media Server (KMS)?
• Kurento is a WebRTC media server
• A set of client APIs making simple the
development of advanced video applications,
• Group communications, transcoding,
recording, mixing, broadcasting and routing of
audiovisual flows.
How BigBlueButton uses it?
• Broadcasting webcams.
• Broadcasting listen only audio.
• Broadcasting screen-sharing.
FreeSwitch
11
What is FreeSwitch?
FreeSWITCH is a Software Defined Telecom Stack
enabling the digital transformation from
proprietary telecom switches.
How BigBlueButton uses it?
FreeSwitch handles the incoming audio streams
by doing:
• Transcoding
• Multiplexing
• Broadcasting
BigBlueButton Common Message
12
What is BigBlueButton Common
Message?
A JVM library that contains Java classes for handling
redis connections and Scala classes for the exchanged
messages.
Which projects uses it?
bbb-fsesl-client
bbb-common-web
akka-apps
BigBlueButton Common Web
13
Technologies
Java
What is BigBlueButton Comomn
Web?
A Java library that contains shared classes for
BigBlueButton Web.
How BigBlueButton uses it?
Only used by BigBlueButton Web as a dependency.
BigBlueButton Web
• Technologies:
• Grails server application with Groovy code
• What is BigBlueButton Web?
• A JVM facade exposing the BigBlueButton API.
• How BigBlueButton uses it?
• Provides a set of API with XML and JSON
responses.
• It shares the meeting life-cycle with Akka
Apps.
• Handles the documents conversion.
14
Presentation
Checker
• What is Presentation Checker?
• A java utility to run checks on uploaded
documents.
• What is Presentation Checker is used?
• It mainly check that PowerPoint are compliant
with LibreOffice converter:
1. Check for embedded EMF.
2. Check for small tile background image.
3. Find the presence of hidden slides.
15
Akka Apps
16
What is Akka Apps?
A scala server application managing
the state of the meetings.
How BigBlueButton uses it?
It shares the meeting life-cycle with
BigBlueButton Web.
BigBlueButton FSESL (FreeSwitch
Events Service Layer)
• What is BigBlueButton Web?
• A JVM library to handle FreeSwitch
events.
• How BigBlueButton uses it?
• Used by Akka FSESL.
17
Akka FSESL
(FreeSwitch
Events
Service
Layer)
18
What is Akka FSESL?
•An JVM server application.
How BigBlueButton uses it?
•Receives audio events sent from
the client through Redis and
transforms them to FreeSwitch
events and vice-versa.
Redis
Server
19
What is redis?
• Redis is an open source (BSD licensed),
in-memory data structure store.
How BigBlueButton uses it?
• Pub/Sub for messages exchange
between the following components:
• akka-apps
• akka-fsels
• client
• Database storage
• Meeting recorded events
LibreOffice
Server
• What is LibreOffice Server?
• LibreOffice is an open-source office
suite, and a successor to
OpenOffice.org (commonly known as
OpenOffice).
• How BigBlueButton uses it?
• Used to convert office
documents to PDF.
• Starting from 2.3 it is runs
inside a Docker container.
20
Poppler
• What is Poppler?
• A PDF rendering library based
on xpdf-3.0
• How BigBlueButton uses it?
• Used for pdf manipulation
• pdfinfo
• pdfseparate
• pdfwrite
• pdftotext
21
ImageMagick
• What is ImageMagick?
• An image manipulation utilities.
• How BigBlueButton uses it?
• Create slide SVG.
• In BigBlueButton web to create
thumbnails of the slides.
• Resizing images.
• Create PNG files for iOS.
22
Record & Playback
• What is Record & Playback?
• It is Ruby project that handle everything related to the recording after the
meeting end.
• How is Record & Playback used in BigBlueButton?
• It is used inside the recording workers for 6 of the 8 steps of the recordings
processing:
• Archiving.
• Sanitizing.
• Generate captions. (Calls a python scripts)
• Processing.
• Post-scripts (might include more than a single step)
• Publishing.
Recording
Workers
• 2.2
• bbb-rap-archive-worker
• bbb-rap-events-worker
• bbb-rap-process-worker
• bbb-rap-sanity-worker
• bbb-rap-publish-worker
• 2.3
• bbb-rap-starter
• bbb-rap-resque-worker
24
A set of ruby application running in threads to handle the
recordings processing after the meeting end.
FFmpeg
25
What is FFmpeg?
• A cross-platfrom library and
utilities for recording, conveting
and streaming for audio & video.
How BigBlueButton uses it?
• Recordings’ processing.
Recordings
Playback
Formats
26
Presentation: An
HTML playback with
all chat, presentation,
whiteboard
annotations,
webcams, audio,
screensharing
External video have been
introduced in the new
player.
Screenshare: A single
video with
screensharing only
and audio
Podcast: Create a
single audio file.
Notes: Shared notes
export to pdf, html…
Matroska Clean
(mkclean)
A Debian utility package to
clean VP8/VP9 webm
recordings after processing
them.
27
bbb-config
• What is bbb-config:
• A utility script to manage the
platform services, handling the
necessary configuration and
checking the configuration validity.
• Technlogies:
• Bash
28
bbb-record
• What is bbb-record:
• A utility script to manage the
recording files.
• Technlogies:
• Bash
29
LTI Integration
• What is BigBlueButton Web?
• A JVM application with an integration for
Learning Tools Interoperability.
• How BigBlueButton uses it?
• BigBlueButton is certified by IMS Global to
support IMS Learning Tools Interoperability (LTI)
1.0.
• Used by tools like Edux…
30
Web-hooks
31
What is web-hooks:
•A node.js server application
that listens to the meetings
flowing events and send them
to registered endpoints.
Technlogies:
•Node.js
Demo
Application
32
What is bbb-demo?
•A Tomcat container with
demo pages allowing
creating meeting for testing
features only.
Technologies:
•A tomcat server with JSP
pages.
Special Thanks
ALL THE BIGBLUEBUTTON
CONTRIBUTORS WHO HELPED
IMPROVING THIS PRESENTATION
ZENTRUM FÜR DATENVERARBEITUNG -
JOHANNES GUTENBERG UNIVERSITÄT
MAINZ
HUMBOLDT-UNIVERSITÄT ZU BERLIN |
COMPUTER- UND MEDIENSERVICE

BigBlueButton Platform Components

  • 1.
    BigBlueButton Components Components Overview ofthe BigBlueButton Platform 1 * RIADVICE's products and services for BigBlueButton are not endorsed or certified by BigBlueButton Inc. BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.
  • 2.
    Presentation Plan 2 Terminology Languages and framework Components:From their order in appearance to the user starting from the front-end
  • 3.
    Terminology • Client: • HTML5Client. • Web Client. • Server components: • Components running in the server, most of the times without any front-end direct feedback. • Media streams: • Audio conference, listen only audio. • Webcams. • Screensharing. • Messages / Data streams: • Data exchanged between the server components in json format through redis. 3
  • 4.
    Programming Languages, Frameworks & Build Tools •Languages: • Node.js • Java • Scala • Groovy • Ruby • Bash • Python • Frameworks: • Meteor • Akka • Grails • Build Tools • sbt • gradle 4
  • 5.
    HTML5 Client • Technologies •Meteor.js (Frontend & Backend) • MongoDB. • How is it used in BigBlueButton? • The frontend client. 5
  • 6.
    Etherpad 6 What is Etherpad? Collaborativedocument editor. How BigBlueButton uses it? It is the “shared notes” feature in the client.
  • 7.
    Nginx • Whatis nginx? • Web server • Reverse proxy • Load balancer • HTTP cache • How BigBlueButton uses it? • Web server for: • Presentation slides • Recordings’ playback. • Reverse proxy for: • HTML5 client • BigBlueButton Web • Freeswitch • Etherpad (Shared notes) • Webhooks • WebRTC SFU 7
  • 8.
    MongoDB 8 What is MongoDB? Document-baseddistributed database. How BigBlueButton uses it? Store the client data in the server side.
  • 9.
    WebRTC SFU • Whatis WebRTC SFU? • A media server agnostic application that implements a control plane for multi party media exchange, focused on providing a SFU architecture. • How BigBlueButton uses it? • Exposes a client facing API to handle video, listen only and screen sharing negotiation and media switching • Responsible for controlling Kurento (webcams, screen sharing, listen only) and FreeSWITCH (listen only) • Responsible for interfacing and translating events between media servers and the BBB core through Redis (akka-apps and recording events) 9
  • 10.
    10 Kurento Media Server What is KurentoMedia Server (KMS)? • Kurento is a WebRTC media server • A set of client APIs making simple the development of advanced video applications, • Group communications, transcoding, recording, mixing, broadcasting and routing of audiovisual flows. How BigBlueButton uses it? • Broadcasting webcams. • Broadcasting listen only audio. • Broadcasting screen-sharing.
  • 11.
    FreeSwitch 11 What is FreeSwitch? FreeSWITCHis a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches. How BigBlueButton uses it? FreeSwitch handles the incoming audio streams by doing: • Transcoding • Multiplexing • Broadcasting
  • 12.
    BigBlueButton Common Message 12 Whatis BigBlueButton Common Message? A JVM library that contains Java classes for handling redis connections and Scala classes for the exchanged messages. Which projects uses it? bbb-fsesl-client bbb-common-web akka-apps
  • 13.
    BigBlueButton Common Web 13 Technologies Java Whatis BigBlueButton Comomn Web? A Java library that contains shared classes for BigBlueButton Web. How BigBlueButton uses it? Only used by BigBlueButton Web as a dependency.
  • 14.
    BigBlueButton Web • Technologies: •Grails server application with Groovy code • What is BigBlueButton Web? • A JVM facade exposing the BigBlueButton API. • How BigBlueButton uses it? • Provides a set of API with XML and JSON responses. • It shares the meeting life-cycle with Akka Apps. • Handles the documents conversion. 14
  • 15.
    Presentation Checker • What isPresentation Checker? • A java utility to run checks on uploaded documents. • What is Presentation Checker is used? • It mainly check that PowerPoint are compliant with LibreOffice converter: 1. Check for embedded EMF. 2. Check for small tile background image. 3. Find the presence of hidden slides. 15
  • 16.
    Akka Apps 16 What isAkka Apps? A scala server application managing the state of the meetings. How BigBlueButton uses it? It shares the meeting life-cycle with BigBlueButton Web.
  • 17.
    BigBlueButton FSESL (FreeSwitch EventsService Layer) • What is BigBlueButton Web? • A JVM library to handle FreeSwitch events. • How BigBlueButton uses it? • Used by Akka FSESL. 17
  • 18.
    Akka FSESL (FreeSwitch Events Service Layer) 18 What isAkka FSESL? •An JVM server application. How BigBlueButton uses it? •Receives audio events sent from the client through Redis and transforms them to FreeSwitch events and vice-versa.
  • 19.
    Redis Server 19 What is redis? •Redis is an open source (BSD licensed), in-memory data structure store. How BigBlueButton uses it? • Pub/Sub for messages exchange between the following components: • akka-apps • akka-fsels • client • Database storage • Meeting recorded events
  • 20.
    LibreOffice Server • What isLibreOffice Server? • LibreOffice is an open-source office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). • How BigBlueButton uses it? • Used to convert office documents to PDF. • Starting from 2.3 it is runs inside a Docker container. 20
  • 21.
    Poppler • What isPoppler? • A PDF rendering library based on xpdf-3.0 • How BigBlueButton uses it? • Used for pdf manipulation • pdfinfo • pdfseparate • pdfwrite • pdftotext 21
  • 22.
    ImageMagick • What isImageMagick? • An image manipulation utilities. • How BigBlueButton uses it? • Create slide SVG. • In BigBlueButton web to create thumbnails of the slides. • Resizing images. • Create PNG files for iOS. 22
  • 23.
    Record & Playback •What is Record & Playback? • It is Ruby project that handle everything related to the recording after the meeting end. • How is Record & Playback used in BigBlueButton? • It is used inside the recording workers for 6 of the 8 steps of the recordings processing: • Archiving. • Sanitizing. • Generate captions. (Calls a python scripts) • Processing. • Post-scripts (might include more than a single step) • Publishing.
  • 24.
    Recording Workers • 2.2 • bbb-rap-archive-worker •bbb-rap-events-worker • bbb-rap-process-worker • bbb-rap-sanity-worker • bbb-rap-publish-worker • 2.3 • bbb-rap-starter • bbb-rap-resque-worker 24 A set of ruby application running in threads to handle the recordings processing after the meeting end.
  • 25.
    FFmpeg 25 What is FFmpeg? •A cross-platfrom library and utilities for recording, conveting and streaming for audio & video. How BigBlueButton uses it? • Recordings’ processing.
  • 26.
    Recordings Playback Formats 26 Presentation: An HTML playbackwith all chat, presentation, whiteboard annotations, webcams, audio, screensharing External video have been introduced in the new player. Screenshare: A single video with screensharing only and audio Podcast: Create a single audio file. Notes: Shared notes export to pdf, html…
  • 27.
    Matroska Clean (mkclean) A Debianutility package to clean VP8/VP9 webm recordings after processing them. 27
  • 28.
    bbb-config • What isbbb-config: • A utility script to manage the platform services, handling the necessary configuration and checking the configuration validity. • Technlogies: • Bash 28
  • 29.
    bbb-record • What isbbb-record: • A utility script to manage the recording files. • Technlogies: • Bash 29
  • 30.
    LTI Integration • Whatis BigBlueButton Web? • A JVM application with an integration for Learning Tools Interoperability. • How BigBlueButton uses it? • BigBlueButton is certified by IMS Global to support IMS Learning Tools Interoperability (LTI) 1.0. • Used by tools like Edux… 30
  • 31.
    Web-hooks 31 What is web-hooks: •Anode.js server application that listens to the meetings flowing events and send them to registered endpoints. Technlogies: •Node.js
  • 32.
    Demo Application 32 What is bbb-demo? •ATomcat container with demo pages allowing creating meeting for testing features only. Technologies: •A tomcat server with JSP pages.
  • 33.
    Special Thanks ALL THEBIGBLUEBUTTON CONTRIBUTORS WHO HELPED IMPROVING THIS PRESENTATION ZENTRUM FÜR DATENVERARBEITUNG - JOHANNES GUTENBERG UNIVERSITÄT MAINZ HUMBOLDT-UNIVERSITÄT ZU BERLIN | COMPUTER- UND MEDIENSERVICE