SlideShare a Scribd company logo
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

More Related Content

What's hot

What's hot (20)

Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF Superpowers
 
監視 Overview
監視 Overview監視 Overview
監視 Overview
 
OpenMPI入門
OpenMPI入門OpenMPI入門
OpenMPI入門
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
 
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
 
Grafana zabbix
Grafana zabbixGrafana zabbix
Grafana zabbix
 
Hortonworks Data in Motion Webinar Series Part 7 Apache Kafka Nifi Better Tog...
Hortonworks Data in Motion Webinar Series Part 7 Apache Kafka Nifi Better Tog...Hortonworks Data in Motion Webinar Series Part 7 Apache Kafka Nifi Better Tog...
Hortonworks Data in Motion Webinar Series Part 7 Apache Kafka Nifi Better Tog...
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
 
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
 
with NATS with Kubernetesの世界へ
with NATS with Kubernetesの世界へwith NATS with Kubernetesの世界へ
with NATS with Kubernetesの世界へ
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
 
Kubernetes DNS Horror Stories
Kubernetes DNS Horror StoriesKubernetes DNS Horror Stories
Kubernetes DNS Horror Stories
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-
Windows subsystem for linuxで始める組み込みlinux  ラズパイ3のブートイメージを作ってみる-Windows subsystem for linuxで始める組み込みlinux  ラズパイ3のブートイメージを作ってみる-
Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-
 
Fluentd and Kafka
Fluentd and KafkaFluentd and Kafka
Fluentd and Kafka
 
DevOps with GitHub Actions
DevOps with GitHub ActionsDevOps with GitHub Actions
DevOps with GitHub Actions
 
Apache Pulsar Development 101 with Python
Apache Pulsar Development 101 with PythonApache Pulsar Development 101 with Python
Apache Pulsar Development 101 with Python
 

Similar to BigBlueButton Platform Components

Building a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStackBuilding a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStack
Animesh Singh
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...
Design World
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
Yaniv Uriel
 
DockerCon EU 2015: Production Ready Containers from IBM and Docker
DockerCon EU 2015: Production Ready Containers from IBM and DockerDockerCon EU 2015: Production Ready Containers from IBM and Docker
DockerCon EU 2015: Production Ready Containers from IBM and Docker
Docker, Inc.
 

Similar to BigBlueButton Platform Components (20)

WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE Bootcamp
 
Revolutionize the API Economy with IBM WebSphere Connect
Revolutionize the API Economy with IBM WebSphere ConnectRevolutionize the API Economy with IBM WebSphere Connect
Revolutionize the API Economy with IBM WebSphere Connect
 
Building a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStackBuilding a PaaS Platform like Bluemix on OpenStack
Building a PaaS Platform like Bluemix on OpenStack
 
Android Anatomy google io 2008
Android Anatomy google io 2008Android Anatomy google io 2008
Android Anatomy google io 2008
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
 
Wwc developing hyperledger applications v2
Wwc  developing hyperledger applications v2Wwc  developing hyperledger applications v2
Wwc developing hyperledger applications v2
 
Node.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontendsNode.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontends
 
Wwc developing hyperledger applications v4
Wwc  developing hyperledger applications v4Wwc  developing hyperledger applications v4
Wwc developing hyperledger applications v4
 
WebRTC & Asterisk 11
WebRTC & Asterisk 11WebRTC & Asterisk 11
WebRTC & Asterisk 11
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
 
Dubbo in Internet Finance Industry
Dubbo in Internet Finance IndustryDubbo in Internet Finance Industry
Dubbo in Internet Finance Industry
 
Zeebe 0.20.0 Release Webinar - July 22, 2019
Zeebe 0.20.0 Release Webinar - July 22, 2019Zeebe 0.20.0 Release Webinar - July 22, 2019
Zeebe 0.20.0 Release Webinar - July 22, 2019
 
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry) IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
 
Increasing velocity via serless semantics
Increasing velocity via serless semanticsIncreasing velocity via serless semantics
Increasing velocity via serless semantics
 
DockerCon EU 2015: Production Ready Containers from IBM and Docker
DockerCon EU 2015: Production Ready Containers from IBM and DockerDockerCon EU 2015: Production Ready Containers from IBM and Docker
DockerCon EU 2015: Production Ready Containers from IBM and Docker
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
Building cloud native microservices
Building cloud native microservicesBuilding cloud native microservices
Building cloud native microservices
 

Recently uploaded

Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 

Recently uploaded (20)

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 

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.
  • 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: • 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
  • 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? Collaborative document editor. How BigBlueButton uses it? It is the “shared notes” feature in the client.
  • 7. 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
  • 8. MongoDB 8 What is MongoDB? Document-based distributed database. How BigBlueButton uses it? Store the client data in the server side.
  • 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…
  • 27. Matroska Clean (mkclean) A Debian utility package to clean VP8/VP9 webm recordings after processing them. 27
  • 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