
%
%  $Description: Author guidelines and sample document in LaTeX 2.09$ 
%
%  $Author: ienne $
%  $Date: 1995/09/15 15:20:59 $
%  $Revision: 1.4 $
%
\documentclass[times, 10pt,twocolumn]{article} 
%\usepackage{latex8}
\usepackage{times}
\usepackage{url}
\usepackage{algorithm2e}
\usepackage{graphicx}
\usepackage{verbatim}
\usepackage{subfigure}
\usepackage[small,compact]{titlesec}
\usepackage[small,it]{caption}
\addtolength{\topmargin}{-18mm}
\addtolength{\textheight}{+36mm}
\addtolength{\textwidth}{+24mm}
\addtolength{\oddsidemargin}{-12mm}
\addtolength{\evensidemargin}{-12mm}


\author{\begin{tabular}{c}
Omer Boyaci and Henning Schulzrinne \\
Department of Computer Science,  
Columbia University  \\
{ \{boyaci,hgs\}@cs.columbia.edu} \\
\end{tabular}
}
\title{BASS Application Sharing System}
\date{}



%------------------------------------------------------------------------- 
% take the % away on next line to produce the final camera-ready version 
\pagestyle{empty}

%------------------------------------------------------------------------- 
\begin{document}

\maketitle


\thispagestyle{empty}


\section{Introduction}

Application and desktop sharing allows two or more people to collaborate on a single document, drawing or project in real-time. We have developed an application and desktop sharing platform called BASS which is efficient, reliable and independent of the operating system. It scales well via heterogenous multicast, supports all applications, and features true application sharing. Any application can be shared, including word processors, browsers, Powerpoint or video players. Also, the participants do not need to install the application. BASS is based on a client-server architecture. The server is the computer which runs the shared application. Clients receive screen updates from the server and send keyboard and mouse events to the server. 

\begin{figure}[htpb]
\centering
\includegraphics[width=0.5\textwidth]{real_screen_view.png}
\caption{Desktop with overlapping windows}
\label{fig:real}
\end{figure}





Application sharing differs from desktop sharing. In desktop sharing, a server distributes any screen update. In application sharing, the server distributes screen updates if and only if they belong to the shared application's windows. 

\section{Comparison with other sharing systems}

Some sharing systems such as UltraVNC~\cite{uvnc} and MAST~\cite{mast} claim application sharing support. However, they distribute all pieces within the boundary of the shared window. This may expose information from other non-shared applications. Shared application may open new child windows such as those for selecting options or fonts. UltraVNC and MAST failed to share child windows. A true application sharing system must blank all the non-shared windows and must transfer all the child windows of the shared application. 

\begin{figure}
\begin{minipage}[htpb]{0.49 \linewidth} % A minipage that covers half the page
\centering
\includegraphics[width=1 \linewidth]{BASS_client.png}
\caption{BASS}
\label{fig:BASS_view}
\end{minipage}
%\hspace{0.01cm} % To get a little bit of space between the figures
\begin{minipage}[htpb]{0.50 \linewidth}
\centering
\includegraphics[width=1 \linewidth]{uvnc_client.png}
\caption{UVNC}
\label{fig:uvnc}
\end{minipage}
\end{figure}


\begin{figure}[htpb]
\centering
\includegraphics[width=0.5\textwidth]{mast_client.png}
\caption{Mast client view}
\label{fig:mast}
\end{figure}

\begin{figure*}[htpb]
\centering
\includegraphics[width=1\linewidth]{demomovie.png}
\caption{Comparison of sharing systems in terms of movie performance}
\label{fig:movie}
\end{figure*}

For example, if a user wants to share only the ``Internet Explorer" application, which has the title ``Windows Live Hotmail - Windows Internet Explorer", from the desktop seen in (Figure~\ref{fig:real}), then the participants should only see the main and the ``Internet Options" windows. BASS (Figure~\ref{fig:BASS_view}) displays only these two windows with a correct size while blocking the desktop background and the non-shared windows. MAST did not display the shared application in correct size and did not obscure the non-shared application and desktop background (Figure~\ref{fig:mast}). UltraVNC did not hide non-shared windows and did not transmit the child windows correctly (Figure~\ref{fig:uvnc}).

Current sharing solutions perform poorly if the user wants to share photos or movies. They use the same encoding for text, computer-generated images, movies, and photographic images. Lossless encodings give poor performance for movies and photographic images. While lossy encodings generate visual artifacts around texts and computer-generated images such as straight lines. THINC~\cite{thinc} and RDP~\cite{rdp} can play full motion movies if the bandwidth between the user and participant is tens of Mb/s. Due to their high bandwidth requirements, they do not scale well, and they do not perform well under realistic bandwidths. BASS is the only system which uses different encodings for different regions of the screen. BASS uses the Theora video codec to stream movies, JPEG to transmit images, and PNG for the rest. 

Microsoft has Windows Meeting Space for Windows Vista and Netmeeting for Windows XP. Netmeeting was released in 1999 for Windows 98; in our tests it fails to display pop-ups and menus. Windows Vista introduces an application sharing feature as part of Windows Meeting Space, but all the attendees must use Windows Vista. 

VNC~\cite{vnc} is a cross-platform open source desktop sharing system but it supports only screen sharing. UltraVNC claims to support application sharing, but it has failed in our tests due to following problems: the cursor position did not match, windows belonging to unshared applications are shared, new windows belonging to same application are not included and long menus are not shown properly. VNC uses a client-pull based transmission mechanism which performs poorly compared with server-push based transmissions under high round-trip time (RTT). SharedAppVnc~\cite{sharedAppVNC} supports true application sharing, but the delay is on the order of seconds. It uses a lossy codec and does not support multicast. 

\begin{comment}
\begin{figure}[htpb]
\centering
\includegraphics[width=0.5\textwidth]{fps3scaled.png}
\caption{Movie performance (3Mb/s)}
\label{fig:fps3}
\end{figure}
\end{comment}

TeleTeachingTool~\cite{ttt} and MAST use multicast in order to built a scalable
sharing system. TeleTeachingTool is developed just for
online teaching so it does not allow participants to use the
shared desktop. Also, it does not support real application
sharing. MAST allows
remote users to participate via their keyboard and mouse
but its screen capture model is based on polling the screen which is
very primitive and not comparable to current state of art
the capturing methods like mirror drivers. 

Although multiple users could receive the screen updates simultaneously, clearly only one of them can manipulate the application via keyboard and mouse events. BASS uses the Binary Floor Control Protocol~\cite{rfc4582} to restrict the control of the application to a single user. VNC supports multiple users but it lacks a floor control protocol. We have also added a recording feature to BASS. 

The bandwidths of TCP clients can be different so we have developed an algorithm which sends the updates at the link speed of each client. Low bandwidth clients skip some of the region updates if there are newer updates for these regions. 

BASS can stream a preprocessed movie from the file instead of capturing it from the screen. This feature gives high frame per second while consuming little CPU.

\section{Performance results}


We compared the bandwidth usage of sharing systems for web browsing and movies. BASS, VNC and RDP consume roughly the same bandwidth for web browsing. We measured the multimedia performances of sharing systems by playing a movie over both an unlimited bandwidth link and a 3 Mb/s bandwidth link~(Figure~\ref{fig:movie}). The movie is a 20 seconds soundless 852x480 24 fps  4.5 Mb/s MPEG-4 encoded trailer. The BASS server can be configured by the user to use JPEG or Theora for movies. BASS-T and BASS-J represent BASS systems which use Theora and JPEG for movies, respectively.  BASS-M represents BASS's Theora streaming feature. For the 3 Mb/s link, the frame rates of BASS remained the same, while all other sharing systems dropped to below one frame per second. BASS-M is able to play full motion movies over an 1.6 Mb/s link. In conclusion, over low bandwidth links, all three BASS modes yield a frame rate at least six times higher than the other sharing systems.
  




%------------------------------------------------------------------------- 
%\nocite{ex1,ex2}
\bibliographystyle{latex8}
\bibliography{latex8}

\end{document}

