+ All Categories
Home > Technology > GT-Mconf - Transfer of Technology Course

GT-Mconf - Transfer of Technology Course

Date post: 12-May-2015
Category:
Upload: mconf
View: 1,895 times
Download: 2 times
Share this document with a friend
Description:
GT-MconfTransfer of Technology Course given to RNP members at AUgust 26th 2010Gives an overall view of the entire project
Popular Tags:
129
GT-Mconf Transfer of technology course Authors: Felipe Cecagno Leonardo Crauss Daronco Valter Roesler
Transcript
Page 1: GT-Mconf - Transfer of Technology Course

GT-Mconf

Transfer of technology course

Authors:Felipe Cecagno

Leonardo Crauss DaroncoValter Roesler

Page 2: GT-Mconf - Transfer of Technology Course

Agenda1. Overview + Initial demonstration2. Architecture and Components

○ BigBlueButton○ Mconf-Web

■ Activities○ Android client

■ Activities1. Transfer of Technology

○ Development○ Deployment

2. Feedbacks, Statistics and Others3. GT-Mconf in the future + Debate

Page 3: GT-Mconf - Transfer of Technology Course

1. Overview + Initial demonstration

Page 4: GT-Mconf - Transfer of Technology Course

OverviewGT-Mconf - "Sistema de multiconferência paraacesso Interoperável web e móvel"(multiconference system for interoperable access between web and mobile devices)

Main objectives:● Provide a complete webconference environment● Integration with mobile devices● Usability● Open Source ("low cost")

Compared to:● Adobe Connect● Cisco WebEx

Page 5: GT-Mconf - Transfer of Technology Course

Demonstrationweb portal

webconference system

mobile client

Page 6: GT-Mconf - Transfer of Technology Course

2. Architecture

Page 7: GT-Mconf - Transfer of Technology Course

Architecture

1. BigBlueButton

2. Mobile

3. Web portal

Page 8: GT-Mconf - Transfer of Technology Course

Architecture: Our current setupOne physical machine Intel i7 with 4 cores, 4GB RAM, enough HD

Operating System: Ubuntu 10.04

BigBlueButton is installed in this machine using Ubuntu packages.

This machine has also:● Mconf-Web running in a virtual machine● Two other development VMs

Page 9: GT-Mconf - Transfer of Technology Course

2. Architecture

1. BigBlueButton

Page 10: GT-Mconf - Transfer of Technology Course

Why BigBlueButton?In the beginning, we were looking for an open source webconference system with:

● Audio and video sharing○ HD video if possible

● Document sharing● Mobile clients● Peer-to-peer or client-server● Multiple clients● Integrated with collaborative environments

To be used for:● Virtual meetings● Virtual synchronous classes● Collaborative work

Page 11: GT-Mconf - Transfer of Technology Course

Why BigBlueButton?After 1-2 months, we came up with a list of possible solutions:

● Isabel Videoconference● Global Plaza● Virtual Conference Centre (VCC)● OpenMeetings● MediaMosa● Kaltura● DimDim ● VMukti● EVO ● Opencast Matterhorn● Opencast Steeple● Access Grid● CineGrid● Janet● BigBlueButton*

*It really was the last one in the list

Page 12: GT-Mconf - Transfer of Technology Course

Not all of them are open source or for webconference...

Why BigBlueButton?

http://www.terena.org/activities/media/

webconference is here!

Page 13: GT-Mconf - Transfer of Technology Course

Why BigBlueButton?Video/Web conference:

● Isabel● OpenMeetings● BigBlueButton● EVO (not open source)● DimDim (not open source anymore)

Media management and distribution:● Global Plaza● VCC● MediaMosa● Opencast Matterhorn● Kaltura

Page 14: GT-Mconf - Transfer of Technology Course

Why BigBlueButton?We have also considered developing a new solution

Options:● HTML5● Flash or a new plug-in

○ Google Talk's style● Using code from IVA

Why we decided not to do it:● Would require too much time given our budget and team

size● There's no point in starting something new if there's a good

open source solution

Page 15: GT-Mconf - Transfer of Technology Course

Why BigBlueButton?So why BigBlueButton?

It has most of what we need:● It's webconference

○ The client runs in the browser (using Flash)● Open source● Audio/video sharing● Document sharing● Chat● Easy to setup● Can be integrated with collaborative systems

○ Ex: Moodle, Sakai, Drupal, etc.

Page 16: GT-Mconf - Transfer of Technology Course

Why BigBlueButton?So why BigBlueButton?

Plus:● Great support from the developers (+3 years of development)● Active community (~900 members, ~11k messages)● Good documentation● Good code base and roadmap

Page 17: GT-Mconf - Transfer of Technology Course

BigBlueButton - OverviewDeveloped by Blindside Networks, based on CanadaOpen source (LGPL) Note: uses red5phone, that's under GPLDevelopment started in 2007

Website: http://bigbluebutton.org/

Blindsite Networks: http://www.blindsidenetworks.com/

Page 18: GT-Mconf - Transfer of Technology Course

BigBlueButton - ArchitectureBuilt on top of ~15 open source components

Page 19: GT-Mconf - Transfer of Technology Course

BigBlueButton - Architecture

http://code.google.com/p/bigbluebutton/wiki/ArchitectureOverview

Client: FlashSIP for voice

Server: mostly Java, but not only

Red5

Asterisk or FreeSWITCH

Page 20: GT-Mconf - Transfer of Technology Course

BigBlueButton - Architecture

http://code.google.com/p/bigbluebutton/wiki/ArchitectureOverview

Modular architecture

Page 21: GT-Mconf - Transfer of Technology Course

BigBlueButton APIThird-party applications can interact with BigBlueButton through its web API

To:● Create meetings● Join a meeting● End meetings● Get info about current meetings● Fetch recordings (in the next version)

Docs: http://code.google.com/p/bigbluebutton/wiki/API

Page 22: GT-Mconf - Transfer of Technology Course

BigBlueButton APIWeb API

Format: API URL + method + parameters Examples: http://<server>/bigbluebutton/api/ +

...create?meetingID=prav-123&checksum=ba87d6a8 ...join?fullname=Ana&password=pass&checksum=ba87d6a8 ...isMeetingRunning?meetingID=prav-123&checksum=ba87d6a8 ...end?meetingID=prav-123&checksum=ba87d6a8 ...getMeetingInfo?meetingID=prav-123&checksum=ba87d6a8 ...getMeetings?random=231412&checksum=ba87d6a8

Page 23: GT-Mconf - Transfer of Technology Course

<response> <returncode>SUCCESS</returncode> <meetingID>RNP-123</meetingID> <attendeePW>attendee_pass</attendeePW> <moderatorPW>mod_pass</moderatorPW> <running>true</running> <startTime> Tue Aug 13 17:30:44 UTC 2011 </startTime> <endTime>null</endTime> (cont...)

BigBlueButton APIResponses are in XML

Example: http://<server>/bigbluebutton/api/getMeetingInfo?meetingID=RNP-123...

(...cont.) <participantCount>1</participantCount> <moderatorCount>1</moderatorCount> <attendees> <attendee> <userID>xczenpd3hhrq</userID> <fullName>John Doe</fullName> <role>MODERATOR</role> </attendee> </attendees></response>

Page 24: GT-Mconf - Transfer of Technology Course

Security model

Each server has a unique 64-char string called saltThe salt is used to calculate a checksum, used in all API callsSo only authorized apps can make API calls

● Apps that know the server salt

...create?meetingID=prav-123&checksum=ba87d6a8 ...join?fullname=Ana&password=pass&checksum=ba87d6a8 ...isMeetingRunning?meetingID=prav-123&checksum=ba87d6a8 ...end?meetingID=prav-123&checksum=ba87d6a8 ...getMeetingInfo?meetingID=prav-123&checksum=ba87d6a8 ...getMeetings?random=231412&checksum=ba87d6a8

BigBlueButton API

Page 25: GT-Mconf - Transfer of Technology Course

BigBlueButton APIWorkflow example

Third-party app(e.g. web portal)

BigBlueButtonAPI

isMeetingRunning?

join

XML: Ok, created.

XML: Ok, go to <url>

create

XML: No, not running.

Redirect the user to <url>He will join the session.

authentication, permission check, etc.

User X wants to join his meeting

Page 26: GT-Mconf - Transfer of Technology Course

Using the API, BigBlueButton was integrated to several third-party applications:

BigBlueButton API

Page 27: GT-Mconf - Transfer of Technology Course

BigBlueButton RolesUser roles and permissions in a meeting:

Viewer● Users with no authority within the conference● Can view the presentation, videos and chat● Ex: students in a virtual classroom

Presenter● The same capabilities as a participant, plus● Can upload and control presentations● Can share desktop

Moderator● Controls the session: can kick users, switch presenter,

mute users, and others.

Page 28: GT-Mconf - Transfer of Technology Course

BigBlueButton RolesUser roles and permissions in a meeting:

Important:

● Only the presenter role can be assigned/unassigned during the conference!

● Viewer and moderator roles are defined when the user joins the session.

Page 29: GT-Mconf - Transfer of Technology Course

Things we developed in BigBlueButton

● Configurable resolutions

config.xml

Page 30: GT-Mconf - Transfer of Technology Course

Things we developed in BigBlueButton

● Improvements on video windows resizing○ It's possible do resize your own video window○ Better usability

Page 31: GT-Mconf - Transfer of Technology Course

Things we developed in BigBlueButton

● Video windows layout (deprecated)

Page 32: GT-Mconf - Transfer of Technology Course

Things we developed in BigBlueButton

● Video dock

Page 33: GT-Mconf - Transfer of Technology Course

Things we developed in BigBlueButton

● Overlay buttons

Page 34: GT-Mconf - Transfer of Technology Course

Some technical info about BigBlueButton

● Audio codec: 16KHz wide-band Speex● Audio bandwidth: ~48 Kb● Video codec: H.263 (Sorenson Spark)● Video bandwidth - depends on the configured quality

(values between 0 and 100, we use 80)○ 160x120: ~88 Kb○ 320x240: ~224 Kb○ 640x480: ~420 Kb○ 1280x720: ~446 Kb

● Both audio and video communication are RTMP over TCP

Page 35: GT-Mconf - Transfer of Technology Course

2. Architecture

2. Web portal(Mconf-Web)

Page 36: GT-Mconf - Transfer of Technology Course

Overview - Why do we need a web app?BigBlueButton provides webconference rooms but you still need a system to provide management tasks such as:

● User authentication● Permission control● Webconference management

○ Manage multiple meetings○ CRUD (create, read, update, delete)

(cont...)

Page 37: GT-Mconf - Transfer of Technology Course

Overview - Why do we need a web app?BigBlueButton provides webconference rooms but you still need a system to provide management tasks such as:

(cont...)

● Server management○ Manage multiple servers○ CRUD○ Monitoring and load balancing

● Conference scheduling● Usage statistics● Access to the recordings (audio, video, presentations)● Pre-upload of documents

Page 38: GT-Mconf - Transfer of Technology Course

About Global PlazaGlobal Plaza or VCC (Virtual Conference Centre)Web application to provide videoconferencing as a service http://globalplaza.org

Developed in the European Global Project http://www.global-project.eu/

"Global Plaza delivers a virtual event service for the Internet, which will enable you to perform

videoconferencing, streaming, recording and electronic publishing of your meetings, lectures, training sessions,

conferences, congresses or workshops."

Page 39: GT-Mconf - Transfer of Technology Course

About Global Plaza

Page 40: GT-Mconf - Transfer of Technology Course

About Global PlazaUses Isabel as the webconference system

Isabel interface example

Page 41: GT-Mconf - Transfer of Technology Course

About Global PlazaThe full "Global Plaza stack" is a bit more complicated

We are using only this block, the web application

Page 42: GT-Mconf - Transfer of Technology Course

A bit more about Global PlazaMain focus: events!

● Users can create events● Events can be virtual● Can be recorded (and published later)● Can be streamed

Events can be:● In person

○ You just have a date and agenda in the website.● Virtual meetings

○ Using Isabel. Has streaming and recording.● Virtual congress

○ Large virtual meetings, usually needs an on-site operator.

Page 43: GT-Mconf - Transfer of Technology Course

Why Global Plaza?We needed a way to test BigBlueButton and it's integration with third-party applications (as fast as possible).

We found in Global Plaza the features we needed for the first prototype:

● User authentication● Permission control● A web environment to start and manage webconferences

Lots of people talking about it in TF-Media lists.

Among the open source solutions found, it was the closest related to our ideas and needs.

Page 44: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksNote: we will talk about Mconf-Web, that has differences from the original Global Plaza

Mconf-Web is a fork of Global Plaza (something like a copy).

The main difference is that Mconf-Web uses BigBlueButton instead of Isabel.But there are many others.

Page 45: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksIt is a social network of users, spaces and events

Users can create and join spaces (communities)Users can create and participate in eventsEvents are held inside a spaceEvents have a start and end date

User's events:that will be held in the

space PRAV

Page 46: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksSpaces can be public or private

Public spaces● Viewable by anyone, even by visitors● Only authorized people can alter it

Private spaces● Only viewable by authorized people● Nobody else will be able to see the activity inside this

space

Page 47: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksWhat about the webconferences?

● Every user has his/her webconference room

● Every space has it's webconference room

Page 48: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksUser webconference room

● It's a single room that the user can share with anyone he wants to

● Only the owner can start the conference● The room is public, anyone with the link can join

○ Obs: he will be able to set it as private soon

The conference is not running

Page 49: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksSpace webconference room:

The conference is running!

Page 50: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksPermissions in the webconferences

In a user's room:● Only the owner is a moderator● All others are viewers

In a space's room:● All members are moderators● All others:

○ Public space: are viewers○ Private space: must enter a password to join

Page 51: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksHow to join a webconference?

Go to your home or space and click "join":

Copy and paste the conference link in the browser:

http://mconf.inf.ufrgs.br/webconf/prav http://mconf.inf.ufrgs.br/webconf/leonardo-daronco

Page 52: GT-Mconf - Transfer of Technology Course

How Mconf-Web worksHow to invite people to a conference?

● Just send them the link http://mconf.inf.ufrgs.br/webconf/prav

● Or use the invite dialog:

Can invite Mconf usersor using emails

Page 53: GT-Mconf - Transfer of Technology Course

How Mconf-Web works

When invited:● If the room is private, the user need to enter a password● If the user is not logged, he needs to enter his name

Page 54: GT-Mconf - Transfer of Technology Course

Other featuresDocuments within a space

Page 55: GT-Mconf - Transfer of Technology Course

Other featuresWall - community messages

Page 56: GT-Mconf - Transfer of Technology Course

Other featuresUser's recent activity and upcoming events

Page 57: GT-Mconf - Transfer of Technology Course

Other featuresLanguages

We maintain "en" and "pt-br". The others are from Global Plaza.

(and need to be updated)

Page 58: GT-Mconf - Transfer of Technology Course

Other featuresInternal messages

Notifications in the homepage

Page 59: GT-Mconf - Transfer of Technology Course

Other features

The rest we will see during the activities...

Page 60: GT-Mconf - Transfer of Technology Course

Implementation detailsMconf-Web is developed in Ruby on Rails (version 3)

Rails is a web framework for the Ruby languageA simple example of how it compares to other languages:

PHP Java

RailsSinatra

CakePHPJoomla!Drupal

SpringOpenLazslo

Apache Struts

Ruby

http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks

Page 61: GT-Mconf - Transfer of Technology Course

Implementation detailsMconf-Web is developed in Ruby on Rails (version 3)

Rails has been a "trending topic" in the web development area in the last years.

It is also usually associated to agile development methodologies.

We started using it because of Global Plaza and we don't regret it.

Page 62: GT-Mconf - Transfer of Technology Course

Implementation detailsIt's important to mention that:

The integration with BigBlueButton was developed in libraries (called gems in Ruby)

Any Rails application!

Page 63: GT-Mconf - Transfer of Technology Course

Implementation detailsTwo gems:

1. bigbluebutton-api-ruby:

Provide methods to communicate with the BBB API.Can be used by any Ruby application (not only Rails).

Page 64: GT-Mconf - Transfer of Technology Course

Implementation detailsTwo gems:

2. bigbluebutton_rails:

Has the logic of all the interaction with BigBlueButton (see next slide)

Page 65: GT-Mconf - Transfer of Technology Course

Implementation detailsTwo gems:

2. bigbluebutton_rails:

● Webconference management○ Manage multiple meetings○ CRUD (create, read, update, delete)

● Server management○ Manage multiple servers○ CRUD

● Server monitoring● Pre-upload of documents● Helps verifying user permissions● And several others...

Features(mostly copied from "Why do

we need a web application?")

Page 66: GT-Mconf - Transfer of Technology Course

Implementation detailsTwo gems:

2. bigbluebutton_rails:

● Load balancing● Limit the number of users per meeting● Access to the recordings (audio, video, presentations)● Server administration

○ Change configs in the server○ Restart the server○ Check if everything is OK

● Usage statistics● And several others...

Future(lots of possibilities)

Page 67: GT-Mconf - Transfer of Technology Course

Implementation detailsWith these libraries, we can change our front end application and still reuse all the integration with BigBlueButton.

And we can also integrate Mconf/BigBlueButton into other applications.(the libraries would work somehow like a Moodle module)

Page 68: GT-Mconf - Transfer of Technology Course

Differences: Mconf-Web and Global PlazaMigration to Rails 3 - it was using Rails 2.3. This was specially important for our gems.

Replaced Isabel by BigBlueButton.

In Global Plaza, only events have webconference rooms.In Mconf-Web: Users have personal rooms Spaces have rooms

Lots of changes in the interface.We are trying to make it simpler and easier to use. With that we removed some features that we don't need. Or that are not ready yet for BigBlueButton.

Page 69: GT-Mconf - Transfer of Technology Course

2. Architecture

2. Web portal:Activities

Page 70: GT-Mconf - Transfer of Technology Course

2. Architecture

3. Mobile Client(Mconf-Mobile)

Page 71: GT-Mconf - Transfer of Technology Course

Overview● Goal: transparent interaction between desktop and mobile

users

● Developing a native Android application● First iniciative on building a mobile client

Page 72: GT-Mconf - Transfer of Technology Course

Architecture● flazr is a Java library which handles the RTMP

communication○ Support to Remote Shared Objects developed by our

team

● bbb-java is a client side Java API to interact with the BigBlueButton server

● bbb-android-core is a native Android library○ Mostly developed in Java - some code in C++○ Some code from the IVA project○ Integrated with Sipdroid to provide voice functionalities○ Uses FFmpeg for video encoding and decoding

Page 73: GT-Mconf - Transfer of Technology Course

Main functionalities● View meeting informations

Page 74: GT-Mconf - Transfer of Technology Course

Main functionalities● User status updates

1. Viewer2. Moderator3. Is transmitting video4. Presenter token5. Has raised hand6. Muted7. Unmuted8. Speaking9. New public chat message

10. New private chat message11. App notifications12. Connection status

11

1

6

2

7

34

5

8

9

10

12

Page 75: GT-Mconf - Transfer of Technology Course

Main functionalities● Raise / lower hand

Page 76: GT-Mconf - Transfer of Technology Course

Main functionalities● Public and private chat

Page 77: GT-Mconf - Transfer of Technology Course

Main functionalities● Voice interaction

○ Tap to speak

Page 78: GT-Mconf - Transfer of Technology Course

Main functionalities● Voice interaction

○ Audio configuration

Page 79: GT-Mconf - Transfer of Technology Course

Main functionalities● Administrative actions

○ Assign presenter○ Kick user○ Lower hand○ Mute / unmute

Page 80: GT-Mconf - Transfer of Technology Course

Main functionalities● Video visualization (one at a time)

Page 81: GT-Mconf - Transfer of Technology Course

Main functionalities● Video capture and publish

Page 82: GT-Mconf - Transfer of Technology Course

BBB-Android and Mconf-MobileBBB-Android accesses directly the BigBlueButton server by a JSP demo application

● Can join freely all the running meetings, also as a moderator

● Needs to know the server address

Mconf-Mobile accesses the web portal● Same permissions as in the web portal● Can join only his own rooms, rooms from spaces that the

user is member and rooms from public spaces● Just needs to know the mconf.inf.ufrgs.br (or mconf.org)

Page 83: GT-Mconf - Transfer of Technology Course

BBB-Android and Mconf-Mobile

Page 84: GT-Mconf - Transfer of Technology Course

BBB-Android and Mconf-Mobile

Compatible with Android 2.0 and above (~96,7%* of the devices)

Constantly tested on:● Samsung Galaxy S (Android 2.2)● Samsung Galaxy Tab (Android 2.2.1)● Motorola Milestone (Android 2.0.1)

Recommended: Android 2.2 or above

* http://developer.android.com/resources/dashboard/platform-versions.html on August 2011

Page 85: GT-Mconf - Transfer of Technology Course

BBB-Android and Mconf-Mobile

We maintain both English and Portuguese (BR) languages● It is automatically detected by the device● Easy to translate to others

Page 86: GT-Mconf - Transfer of Technology Course

Mconf-Mobile + Web portal

Page 87: GT-Mconf - Transfer of Technology Course

BBB-Android + Web portalJoin a meeting

● clicking on a hyperlink (in the device browser)

Page 88: GT-Mconf - Transfer of Technology Course

BBB-Android + Web portalJoin a meeting

● scanning a QR Code

Page 89: GT-Mconf - Transfer of Technology Course

BBB-Android security modelOn BigBlueButton 0.71a:

● JSP application removes the need of the security salt (!) On BigBlueButton 0.8 (under development):

● JSP application requires a checksum with a unique security salt per server

● Salt must be small enough to be entered in the device, probably a 5-char string

Page 90: GT-Mconf - Transfer of Technology Course

Mobile JSP applicationSupports the calls above:

● getMeetings● createMeeting● join

Page 91: GT-Mconf - Transfer of Technology Course

2. Architecture

3. Mobile Client:Activities

Page 92: GT-Mconf - Transfer of Technology Course

3. Transfer of technology

Page 93: GT-Mconf - Transfer of Technology Course

3. Transfer of technology

1. Development

Page 94: GT-Mconf - Transfer of Technology Course

Development toolsGoogle Code (http://code.google.com/p/mconf/)

● Wiki● Issue tracker● Downloads

Github (https://github.com/mconf)● Public source code repository● 15 projects under the Mconf organization

Page 95: GT-Mconf - Transfer of Technology Course

Developing Mconf-Mobile● Eclipse + ADT Plugin

○ Emulator○ Debugger○ "Live debugging" on a device

● Android SDK● Android NDK

* All multiplatform tools

Page 96: GT-Mconf - Transfer of Technology Course

Developing BigBlueButton● Development virtual machine of BigBlueButton● Eclipse

○ Remote System Explorer Plugin○ AS Development Tools Plugin

● Adobe Flash Player - Debugger● SSH + Apache Ant

* All multiplatform tools

Page 97: GT-Mconf - Transfer of Technology Course

3. Transfer of technology

2. Deployment

Page 98: GT-Mconf - Transfer of Technology Course

DeploymentMconf-Mobile is easy: you install it in your phone and that's it!

But Mconf-Web and BigBlueButton require a server setup.

Page 99: GT-Mconf - Transfer of Technology Course

DeploymentIdeally, Mconf-Web will be in a standalone machine and manage several BigBlueButton instances.

We can have several servers if needed

Page 100: GT-Mconf - Transfer of Technology Course

Deployment: BigBlueButtonThe latest version is 0.71a (February 2011).Version 0.8 will be out soon.

BigBlueButton runs on Ubuntu 10.04 (latest LTS version).

You can also install it in other Linux distributions, but it's harder.There are guides to Debian and FreeBSD:http://code.google.com/p/bigbluebutton/wiki/InstallationBigBlueButtonDebianhttp://code.google.com/p/bigbluebutton/wiki/InstallingBigBlueButtonFreeBSD

Page 101: GT-Mconf - Transfer of Technology Course

Deployment: BigBlueButtonAs an open source software, BigBlueButton can be installed from source. But this is the hardest way to do it.http://code.google.com/p/bigbluebutton/wiki/InstallingBigBlueButton

There are also easier options:

● Using the Virtual Machine: you have the entire development and production environments. Great for development and testing, but not the best solution for deployment.

● Installing from packages:○ Just three apt commands

http://code.google.com/p/bigbluebutton/wiki/InstallationUbuntu

Page 102: GT-Mconf - Transfer of Technology Course

Deployment: BigBlueButtonBigBlueButton also has a very useful script called "bbb-conf"

It can:● Start/stop/restart the server● Check for errors● Change the IP or domain name

http://code.google.com/p/bigbluebutton/wiki/BBBConf

Page 103: GT-Mconf - Transfer of Technology Course

Deployment: BigBlueButtonWe have a script called mconf-bbb-conf that helps a developer to setup a BigBlueButton environment from the Mconf repository

It includes:● the source code● the right configurations to use Speex

Also it deploys the source code to be used in the development virtual machine

Example: mconf-bbb-conf mconf.inf.ufrgs.br:80

https://github.com/mconf/installation-scripts

Page 104: GT-Mconf - Transfer of Technology Course

Deployment: BigBlueButtonTipically you don't want to have the development environment installed in a production environment

bbb-deploy is an Apache Ant script to deploy BigBlueButton from a development environment (most probably the development virtual machine) to a production server

It does:● deploy in one command and no interaction● backup the old production version● restore an old version

https://github.com/mconf/installation-scripts/tree/master/bbb-deploy

Page 105: GT-Mconf - Transfer of Technology Course

Deployment: Mconf-WebIt's a Rails application and can be deployed as any other Rails application.

We use it on Ubuntu (10.04 or newer).But it should work on any operating system that has support to Ruby on Rails (almost all of them have).

Page 106: GT-Mconf - Transfer of Technology Course

Deployment: Mconf-WebTo deploy a Rails application you need:

● The source code● A web server● An application server

Apache

Passenger

Rails application

Page 107: GT-Mconf - Transfer of Technology Course

Deployment: Mconf-WebHow-to:

● Install Apache● Install the Ruby environment● Install Passenger● Install the Apache-Passenger module

● Copy the application code to a configured path

More information at:http://code.google.com/p/mconf/wiki/MconfWebDeploymentManual

Page 108: GT-Mconf - Transfer of Technology Course

Deployment: Mconf-WebWe have also a script called "mconf-web-conf" that can help the setup of a production server

Example: mconf-web-conf --install-packages production mconf-web-conf --install-ruby mconf-web-conf --setup-prod

Details at:http://code.google.com/p/mconf/wiki/MconfWebDeploymentWithScript

Page 109: GT-Mconf - Transfer of Technology Course

Deployment: Mconf-WebAlso...

We use a library called Capistrano to help the deployment:

Not required, but recommended.

Your development machine

Page 110: GT-Mconf - Transfer of Technology Course

Deployment: Mconf VMWe've made a virtual machine with:

● Mconf-Web● BigBlueButton + customizations● Both enabled to be accessed by Mconf-Mobile

It can be used to:● Have a fast testing version of Mconf● Have a pre-configured development environment

More information at:http://code.google.com/p/mconf/wiki/MconfVM

Page 111: GT-Mconf - Transfer of Technology Course

Deployment: CloudAnother possibility is to deploy Mconf in the cloud.

BigBlueButton has already been used in the Amazon EC2 cloud. There's information about it in their wiki + mailing lists.

Mconf-Web can also be deployed in infrastructure clouds like Amazon's, but we have not tested yet.

Also, Mconf-Web can be deployed in application clouds, such as Heroku (http://www.heroku.com/)

Page 112: GT-Mconf - Transfer of Technology Course

Deployment: SecurityHTTPS for Mconf-Web

● Not hard to implement● Requires configuration in the web server● Requires some development on Mconf-Mobile

RTMPS for BigBlueButton● There's people talking about it in the mailing lists● It seems possible, but we don't know how hard it is

Page 113: GT-Mconf - Transfer of Technology Course

Deployment: ScalabilityOne BigBlueButton server supports around 80 voice users and 20 webcams*

* This is the result of the lastest stress test and is very dependent on the machine where BigBlueButton is installed (Xeon 3450 quad core 2.66 Ghz with hyperthreading).

Page 114: GT-Mconf - Transfer of Technology Course

Deployment: ScalabilityHow to improve it:

● Use several servers in a cluster○ The easier solution but not the best○ Individual rooms will still be limited to the capacity of 1

server

● Use several audio servers○ BBB uses FreeSWITCH for voice, that can be scaled

● Use several video servers○ It requires allowing several Red5 instances to run in

parallel

Page 115: GT-Mconf - Transfer of Technology Course

4. Feedbacks, statistics and others

Page 116: GT-Mconf - Transfer of Technology Course

Feedbacks and statistics

Visitors

Mconf @ Google Code (wiki + issues)

Page 117: GT-Mconf - Transfer of Technology Course

Feedbacks and statisticsMconf @ Google Code (wiki + issues)

Page 118: GT-Mconf - Transfer of Technology Course

Feedbacks and statisticsmconf.inf.ufrgs.br

Current statistics:● 138 users● 49 spaces ● ~1200 visits

Page 119: GT-Mconf - Transfer of Technology Course

Feedbacks and statisticsBBB-Android in numbers

Version 0.2● Released on May 6th● 162 downloads

Version 0.3beta (used on WRNP 2011)● Released on May 28th● 351 downloads

Version 0.4● Released on August 25th

Version 0.5● Will be released on Android Market soon

Page 120: GT-Mconf - Transfer of Technology Course

Feedbacks and statisticsBigBlueButton

● +3 years of development● Community with ~900

members, ~11k messages● Increasing worldwide interest

in the software

Interest in BBB during the last Terena's TF-Media meeting

Page 121: GT-Mconf - Transfer of Technology Course

BigBlueButton Developer SummitThe Mconf Team was invited to give a presentation about the Mconf-Mobile project in an online developer summit on August 28th

http://bigbluebutton.eventbrite.com/

Page 122: GT-Mconf - Transfer of Technology Course

Feedbacks and statisticsWe also had some good feedbacks from the BigBlueButton developers, including:

● Messages in the mailing lists

● Blog posts● References in

presentations

Page 123: GT-Mconf - Transfer of Technology Course

5. GT-Mconf in the future + Debate

Page 124: GT-Mconf - Transfer of Technology Course

Future - 2nd year proposal1. Escalabilidade / Monitoramento2. Integração com padrões de videoconferência3. Suporte a iPhone OS4. Melhorias no núcleo do BBB5. Melhorias no aplicativo Android6. Melhorias no Portal WEB7. Status de usuário

Page 125: GT-Mconf - Transfer of Technology Course

Thank youTime to debate...

GT-MconfTransfer of technology course

Authors:Felipe Cecagno

Leonardo Crauss DaroncoValter Roesler

Page 126: GT-Mconf - Transfer of Technology Course

 

Page 127: GT-Mconf - Transfer of Technology Course

 

Page 128: GT-Mconf - Transfer of Technology Course

Some technical info about BigBlueButton

Video stream flow (end-to-end)● Video capture (Flash plugin)● Video publishing - RTMP over TCP to the video server

(Flash plugin)● Stream forward (Red5 server)● Video receiving (Flash plugin)● Video playback (Flash plugin)

Page 129: GT-Mconf - Transfer of Technology Course

Some technical info about BigBlueButton

Audio stream flow (end-to-end)● Audio capture (red5phone)● Audio publishing - RTMP over TCP to the video server

(red5phone)● Audio forward from Red5 to FreeSWITCH (or Asterisk)● Audio forward from FreeSWITCH (or Asterisk) to Red5● Audio receiving (red5phone)● Audio playback (red5phone)


Recommended