Find us on Facebook Follow us on Twitter GroupWorld on YouTube

Technical Information

Architecture

Groupworld is a client-server application, consisting of a compiled C++ server, and an HTML5 (javascript/HTML) client. To log into a Groupworld conference room, you simply click on a link to the web page containing the conference room (this can be either on our server or your own web server, even if you are using the cloud version that is hosted by us). The web browser then connects to the server using a WebSocket on port 443 (which works through any firewall). The server transmits data between the clients in each room, allowing them to communicate with each other.

The web page containing the Groupworld conference room contains an "instance" name, which uniquely identifies the room, allowing you to have multiple, separate conference rooms hosted on the same server. Creating a new conference room is as simple as changing the instance name in the web page — the conference room is then created automatically by the server the first time any user loads the web page for the room. Configuration of rooms can be done via options files, or via the javascript API.

Scaling

Back in 1999 we had 400 simultaneous users on Groupboard, using 10% of the CPU time of a 10Mhz SPARC CPU. Our Groupworld server today has a similar architecture, and uses very little CPU or memory. A low-end server will easily support over 1000 simultaneous users (although some of the open-source packages we use for document upload may reduce this number...see below).

We use a single OVH dedicated server to host our groupboard.com and groupworld.net websites and the hosted (cloud) Groupboard and Groupworld products. Many of our customers use Amazon AWS EC2 servers. Generally a t2.medium server will support up to about 100 simultaneous users, and a c5.large server will support up to 200 simultaneous users with a reasonable response time. The main limit is the open-source ghostscript and LibreOffice software that we use for document uploads, which can use a lot of cpu and memory when a user is uploading a document to the whiteboard.

Audio/Video

We use WebRTC for high quality audio/video conferencing (the same technology that is used in Google Hangouts) when there are two users in the room. Audio/video data is transmitted directly between the two users peer-to-peer. We have a WebRTC TURN server, which provides a relay for users who are behind restrictive firewalls (you can optionally set up your own TURN server).

For multi-party WebRTC (more than 2 users), we use Janus Gateway, which acts as a Selective Forwarding Unit, transmitting each user's WebRTC stream to the other users in the room.

Session Recording

Groupworld can be configured to record the entire session (including audio, video, screen-sharing, chat and whiteboard). The Groupworld server simply records the data packets received to a file on the server, and these can then be played back via a special Groupworld playback page.

With the 25-user hosted version and the self-hosted enterprise version, there is the option of having the recordings automatically uploaded to Vimeo. With the self-hosted enterprise version you can additionally store the recordings in mp4 format on your server.

The Groupworld-recording-to-mp4-conversion is performed as a batch process on the server. After the session has finished, a firefox or chrome process is automatically started on a virtual display on the server, and the virtual screen is recorded using avconv.

If the session is being recorded then audio/video data is transmitted to the server separately from the WebRTC PeerConnection as jpeg (for video) and GSM.610 (for audio).

Groupworld C programming language (now deprecated)

When we first introduced Groupworld in 2003, it included a custom programming language and virtual machine specifically designed for rapid development of real-time collaborative internet applications, making it the most advanced web conferencing platform available at the time. We developed this language due to poor reliability and lack of features in java and flash. Although this has now been mostly superceded by our HTML5 javascript client, it is still used in the Groupworld iOS/Android apps.

Integration

Integrating Groupworld into your web page is simply a matter of pasting the HTML code into your web page, and then changing the instance (room name) in the HTML code. The Groupworld server automatically creates the room on-the-fly the first time any user connects to it. Multiple rooms can be active at the same time, with different sets of users in each room (even for the hosted cloud version). For more details see the integration section of the API.

Customization

Groupworld is highly customizable — with the hosted version we provide a management console which lets you customize each of your Groupworld rooms. You can change which buttons are visible, which features are enabled, the size and framerate of the video windows, whether or not you want a chat window or math tools, etc.

In addition, with the self-hosted enterprise version you get the full javascript source code for the HTML5 client, allowing you to completely customize the functionality and user interface. (We can also customize it for you — see our customers page for some examples).

For further information, please see the FAQ, Client System Requirements and API.




Home | Contact | Privacy