Screen sharing

Screen sharing is the process of broadcasting the content of one’s screen to others. This is useful when one wants to portray an idea, demonstrate a new product or show a website during a meeting. However, most screen sharing applications do not work well with low bandwidth as the presenter’s screen image has to be streamed across the network. This often causes slow updates and freezing of the images on the receiver’s side.

Participant list

The participant list is the list of all users in a meeting, identified by their usernames. This is important in order to bring a sense of presence in a meeting and for participants to be aware of who they are communication with. Floor-control is important as it enables applications or users to gain safe and mutually exclusive or non-exclusive input access to the shared object or resource. The provision of mutually exclusive access to shared resources enables the smooth management of meetings, which results in clear meeting procedures being followed.Electronic hand raising is the ability for one to signal when they want to speak.  This is simple in face to face meetings as people can physically raise their hands or the speaker can easily pick up signs from audiences that want to speak, or the audiences can specifically sense when it was appropriate to interject and ask a question. However, this is more difficult in a multi-way conference as it is almost impossible to direct attention toward a specific person. Everyone sees you through the same camera, so if you are looking at one person’s video image, it appears to everyone as if you are looking at all of them. Poling aids in the making of decisions as voting can be done anonymously.

The different components discussed above all contribute to the making of satisfactory online meetings. They enable clear meeting procedures to be followed resulting in profitable meetings. Without these features, meetings can become dysfunctional, annoying and waste people’s time. Therefore the aim is to create a software that will support these combined features with low bandwidth.

Go to page top

The following two research questions in regards to the above were investigated:

- Is it possible to build a screen sharing tool that works with low bandwidth?
- Is it possible to construct a system that manages meeting procedures (floor control, hand-raising etc.)
   efficiently with low bandwidth?

Go to page top

The final prototype for this section enabled screen sharing, polling, floor control, hand raising and displayed the participant list. The user interface was accomplished through the use of the Java Swing library. A client-server architecture was used using HTTP over TCP/IP as the transport protocol. This enabled the reliable delivery of any data packets that were being transmitted.All transactions occurred over long-live connections using server-push technology which made the application event driven. This reduced the number of packets transmitted over the network and hence the bandwidth usage.A brief summary of the implementation of the meeting features is given below.

Go to page top

General meeting features

A number of java classes were contained at both the client and server side.Threads enabled processing of the different meeting activities to occur in parallel.Metadata, in the form of a user’s name and the meeting they were in, was appended to the end of the URL for each request. This enabled the server to identify the different user’s on the system. The diagrams below under screenshots show the polling, handraising and participant list features. A more detailed explanation of the implementation of each feature (create/enter/exit meeting room, create/view poll, change presenter/host, handraising) with additional screenshots can be found in the project report.

Screen sharing and participant list

For the screen sharing application, images were captured using the inbuilt Java Toolkit API. These images were manipulated using the ImageMagick library in order to get differences between subsequent images. Instead of sending whole images across the network, only the parts in the image that had changed were transmitted. However, if the whole image was smaller in size than the differences, then that image was sent across the network. Images and differences were compressed using GIF compression before being sent. GIF was chosen as it proved to give better compressions than JPEG and other compression standards for this application. Once these differences were received at the other client end, they were combined with the previous image in order to reconstruct the new updated image. The screen sharing figure below shows the graphical user interface for screen sharing. Additional detailed information can be found in the project report.

Screen shots

Below are a few screenshot samples of the resultant application. More images can be found in the project report. You may click on an image to view its magnified version.

Participant List
Hand Raising
This displays a list of meeting participants identified by their usernames.


This is a method of drawing attention to oneself for the purpose of either asking questions or expressing emotions.
Screen Sharing
Presenters in a meeting are able to share their sreens with meeting participants. Polling can be used in aiding the making of business decisions. Participants can vote anonymously. Vote result are recorded for viewing by any meeting attendee.

Go to page top

It was found that the screen sharing application consumed a total bandwidth (both incoming and outgoing) of 10 KB/s and the meeting procedures combined consumed a total of approximately 1KB/s. These values are quite acceptable and one could agree that both the screen sharing application and meeting procedures did not consume too much bandwidth relative to their applications. However, strong conclusions could not be made as more testing was necessary to strengthen the results and decrease the overall experimental error.

The following graphs show the bandwith usage at the server side for the participant list and the screen sharing application . The first graph shows equal activity from the three users as all participated in performing various meeting activities.The second graph shows that for every incomming screen image, the server has to send this image back to the presenter and to the other two clients, hence the graphs(red) tripled in size. In addition, it can be seen from teh y-axis that screensharing consumes far more bandwidth than the participant list application.

Bandwidth usage by the participant list
Bandwidth usage by screen sharing

Go to page top

Hussein Suleman
Antoine Bagula