Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
BigBlueButton Platform Components
1. 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.
3. 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
9. 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. 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.
11. 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
12. 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
13. 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.
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 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
16. 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.
17. 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
18. 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.
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 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
21. 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
22. 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
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 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…
28. 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
29. bbb-record
• What is bbb-record:
• A utility script to manage the
recording files.
• Technlogies:
• Bash
29
30. 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
31. 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
32. 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.
33. 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