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

Janus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingJanus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingLorenzo Miniero
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTCArt Matsak
 
Building Business Workflows with AWS Step Functions
Building Business Workflows with AWS Step FunctionsBuilding Business Workflows with AWS Step Functions
Building Business Workflows with AWS Step FunctionsAmazon Web Services
 
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...confluent
 
Challenges in HCI for Mobile Devices
Challenges in HCI for Mobile DevicesChallenges in HCI for Mobile Devices
Challenges in HCI for Mobile DevicesAmol Kamble
 
Test Automation Tool comparison – HP UFT/QTP vs. Selenium
Test Automation Tool comparison –  HP UFT/QTP vs. SeleniumTest Automation Tool comparison –  HP UFT/QTP vs. Selenium
Test Automation Tool comparison – HP UFT/QTP vs. SeleniumAspire Systems
 
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker ContainersKafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containersconfluent
 
Mobile Ecosystem
Mobile EcosystemMobile Ecosystem
Mobile EcosystemPragati Rai
 
Mastering Media with AV Foundation
Mastering Media with AV FoundationMastering Media with AV Foundation
Mastering Media with AV FoundationChris Adamson
 
Event Driven Architecture: Mistakes, I've made a few...
Event Driven Architecture: Mistakes, I've made a few...Event Driven Architecture: Mistakes, I've made a few...
Event Driven Architecture: Mistakes, I've made a few...confluent
 
User interface design
User interface designUser interface design
User interface designSlideshare
 
Load Testing using Continuous Integration tools
Load Testing using Continuous Integration toolsLoad Testing using Continuous Integration tools
Load Testing using Continuous Integration toolsRick Pitts
 
End to-end monitoring with the prometheus operator - Max Inden
End to-end monitoring with the prometheus operator - Max IndenEnd to-end monitoring with the prometheus operator - Max Inden
End to-end monitoring with the prometheus operator - Max IndenParis Container Day
 
ActiveMQ In Action
ActiveMQ In ActionActiveMQ In Action
ActiveMQ In ActionBruce Snyder
 
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...VijiPriya Jeyamani
 
Testplant: 10 Steps to State of the Art Software Testing
Testplant: 10 Steps to State of the Art Software TestingTestplant: 10 Steps to State of the Art Software Testing
Testplant: 10 Steps to State of the Art Software TestingTestplant
 
Efficient monitoring and alerting
Efficient monitoring and alertingEfficient monitoring and alerting
Efficient monitoring and alertingTobias Schmidt
 
Data Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDBData Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDBconfluent
 

What's hot (20)

Janus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingJanus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 Beijing
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 
Building Business Workflows with AWS Step Functions
Building Business Workflows with AWS Step FunctionsBuilding Business Workflows with AWS Step Functions
Building Business Workflows with AWS Step Functions
 
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
 
Challenges in HCI for Mobile Devices
Challenges in HCI for Mobile DevicesChallenges in HCI for Mobile Devices
Challenges in HCI for Mobile Devices
 
Test Automation Tool comparison – HP UFT/QTP vs. Selenium
Test Automation Tool comparison –  HP UFT/QTP vs. SeleniumTest Automation Tool comparison –  HP UFT/QTP vs. Selenium
Test Automation Tool comparison – HP UFT/QTP vs. Selenium
 
static libraries and dynamic libraries
static libraries and dynamic librariesstatic libraries and dynamic libraries
static libraries and dynamic libraries
 
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker ContainersKafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
 
Mobile Ecosystem
Mobile EcosystemMobile Ecosystem
Mobile Ecosystem
 
Mastering Media with AV Foundation
Mastering Media with AV FoundationMastering Media with AV Foundation
Mastering Media with AV Foundation
 
Event Driven Architecture: Mistakes, I've made a few...
Event Driven Architecture: Mistakes, I've made a few...Event Driven Architecture: Mistakes, I've made a few...
Event Driven Architecture: Mistakes, I've made a few...
 
User interface design
User interface designUser interface design
User interface design
 
Load Testing using Continuous Integration tools
Load Testing using Continuous Integration toolsLoad Testing using Continuous Integration tools
Load Testing using Continuous Integration tools
 
End to-end monitoring with the prometheus operator - Max Inden
End to-end monitoring with the prometheus operator - Max IndenEnd to-end monitoring with the prometheus operator - Max Inden
End to-end monitoring with the prometheus operator - Max Inden
 
ActiveMQ In Action
ActiveMQ In ActionActiveMQ In Action
ActiveMQ In Action
 
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
 
Testplant: 10 Steps to State of the Art Software Testing
Testplant: 10 Steps to State of the Art Software TestingTestplant: 10 Steps to State of the Art Software Testing
Testplant: 10 Steps to State of the Art Software Testing
 
Efficient monitoring and alerting
Efficient monitoring and alertingEfficient monitoring and alerting
Efficient monitoring and alerting
 
Data Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDBData Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDB
 

Similar to BigBlueButton Platform Components

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...Amir Zmora
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampIvan Gracia
 
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 ConnectArthur De Magalhaes
 
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 OpenStackAnimesh Singh
 
Android Anatomy google io 2008
Android Anatomy google io 2008Android Anatomy google io 2008
Android Anatomy google io 2008Trinh Duy Hung
 
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 .NETYaniv Uriel
 
Wwc developing hyperledger applications v2
Wwc  developing hyperledger applications v2Wwc  developing hyperledger applications v2
Wwc developing hyperledger applications v2LennartF
 
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 frontendsEugene Fidelin
 
Wwc developing hyperledger applications v4
Wwc  developing hyperledger applications v4Wwc  developing hyperledger applications v4
Wwc developing hyperledger applications v4LennartF
 
WebRTC & Asterisk 11
WebRTC & Asterisk 11WebRTC & Asterisk 11
WebRTC & Asterisk 11Sanjay Willie
 
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 ImagesC4Media
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services ArchitectureRanjan Baisak
 
Dubbo in Internet Finance Industry
Dubbo in Internet Finance IndustryDubbo in Internet Finance Industry
Dubbo in Internet Finance IndustryHuxing Zhang
 
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, 2019Zeebe
 
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) Animesh Singh
 
Increasing velocity via serless semantics
Increasing velocity via serless semanticsIncreasing velocity via serless semantics
Increasing velocity via serless semanticsKfir Bloch
 
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 DockerDocker, Inc.
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case StudyMichael Lihs
 
Building cloud native microservices
Building cloud native microservicesBuilding cloud native microservices
Building cloud native microservicesBrian Pulito
 

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

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Recently uploaded (20)

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
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.
  • 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