Title: BASS Application Sharing System
1BASS Application Sharing System
Omer Boyaci September 10, 2008 www.cs.columbia.ed
u/boyaci/appshare
2Overview
- Introduction
- Demo
- Architecture
- Challenges
- Features
- Conclusion
3Application Sharing Models
- Application specific
- Efficient
- - Participants need application
- - Application has to be modified
- Generic
- - Inefficient (sometimes)
- Participants don't need application
- All applications are supported
4Application Sharing Models
- Application specific
- Efficient
- - Participants need application
- - Application has to be modified
- Generic
- - Inefficient (sometimes)
- Participants don't need application
- All applications are supported
5Overview
- Introduction
- Demo
- Architecture
- Challenges
- Features
- Conclusion
6Application Sharing
- Sharing an application with multiple users
- There is only one copy of the application
- Participants do not need application itself
- Briefly, participants
- receive screen updates
- send keyboard and mouse events
- Desktop sharing is also supported.
7Screenshot
8Screenshot (2)
9Screenshot (Overlapped Windows)
1
4
2
3
10Screenshot (Multicast App. Tool)
1
4
2
3
4
11Screenshot (Ultra VNC)
1
4
2
3
4
12Screenshot (BASS)
1
4
2
13Supported Platforms/OS
Client is Java based.
14Overview
- Introduction
- Demo
- Architecture
- Challenges
- Features
- Conclusion
15Demo
16Overview
- Introduction
- Demo
- Architecture
- Challenges
- Features
- Conclusion
17System Architecture
- Client/Server Software Architecture
18System Architecture
- Client/Server Software Architecture
Screen Updates
19System Architecture
- Client/Server Software Architecture
Keyboard Mouse Events
20Client (Viewer) Architecture
- Client can
- Connect to server
- Wait for incoming connections
- Client supports
- TCP
- UDP (Multicast)
21Client (Viewer) Architecture
- Client receives these commands
- Open new window
- Window size changed
- Pixel update
- Close window
- Client sends
- BFCP (Binary Floor Control Protocol) commands
- Keyboard and mouse events
22BASS Windows Server Architecture
23BASS Windows Server Architecture
24BASS Windows Server Architecture
25BASS Windows Server Architecture
26Overview
- Introduction
- Demo
- Architecture
- Challenges
- Features
- Conclusion
27Challenges
- Different client bandwidths/speeds
- Late Joiner
- The effects of packet loss
- Reliable multicast
28Multimedia Support (Movies)
29Multimedia Support (Movies)
- Our system uses PNG to compress and transmit the
region updates - PNG is lossless and effective for computer
generated images but ineffective for real world
captures like pictures or movies - JPG is more suitable for photographic images
- However, JPG is lossy and not effective for
computer generated images (text, line,
shapes,...) - Our system should use both
30Multimedia Support (Movies)
- Composite image comparing JPEG and PNG notice
artifacts in JPEG versus solid PNG background.
31Multimedia Support (PNG vs JPG)
Size x 360x150 162K Size 4x 720x300 648K
120
130
15
14
32Multimedia Support (PNG vs JPG)
Ethernet (60Mb/s)
33Multimedia Support (PNG vs JPG)
Wireless (4Mb/s)
34PNG/JPG Detection Algorithm
Regiongt 40,000px ?
-1,0,1
coordinates
PNG Size
counter
YES
Time Stamp
New Region ?
Create a record Start Checking
Region record
YES
NO
Detected ?
Use Detected Format
Continue Checking
NO
YES
35Sharing a Movie (Media Player)
36Sharing a Movie File
- Capturing from the Frame Buffer is expensive.
- Instead
- Transcode the movie to Theora beforehand
- Then stream the theora directly to participants
- Java client supports theora playback
- Negligible CPU usage during playback on the
server -
37Sharing a Movie (Our Method)
38Sharing a Movie File
Movie File (wmv,mpg,divx)
Movie File (wmv,mpg,divx)
FFMpeg2Theora
Java Client
Theora Movie
Java Streaming Server
Java Client
UDP/Multicast
39Challenges
- Different client bandwidths/speeds
- Late Joiner
- The effects of packet loss
- Reliable multicast
40Different Client Bandwidths/Speeds
41Different Client Bandwidths/Speeds
- Possible Solutions
- Slowest one
- Average speed
- Fastest one
42Different Client Bandwidths/Speeds
- Possible Solutions
- Slowest one
- Problem Penalize everybody except the slowest
- Average speed
- Fastest one
43Different Client Bandwidths/Speeds
- Possible Solutions
- Slowest one
- Problem Penalize everybody except the slowest
- Average speed
- Possible solution
- Fastest one
44Different Client Bandwidths/Speeds
- Possible Solutions
- Slowest one
- Problem Penalize everybody except the slowest
- Average speed
- Possible solution (Can we do better?)
- Fastest one
45Different Client Bandwidths/Speeds
- Possible Solutions
- Slowest one
- Problem Penalize everybody except the slowest
- Average speed
- Possible solution (Can we do better?)
- Fastest one
- The best solution
- Client bandwidths are fully utilized
46Different Client Bandwidths/Speeds
47Different Client Bandwidths/Speeds
48Challenges
- Different client bandwidths/speeds
- Late Joiner
- The effects of packet loss
- Reliable multicast
49Late Joiner
- Force server to generate full screen update
50Late Joiner
- Force server to generate full screen update
- Problems
- Misbehaving clients can degrade performance
- If Join/Leave rate is high, too much burden on
server - Solution
- Generate full screen updates if really necessary
- Otherwise start the new client from last full
screen update
51Different Client Bandwidths/Speeds
52Different Client Bandwidths/Speeds
53Different Client Bandwidths/Speeds
54Different Client Bandwidths/Speeds
55Different Client Bandwidths/Speeds
56Different Client Bandwidths/Speeds
57Different Client Bandwidths/Speeds
58Different Client Bandwidths/Speeds
59Challenges
- Different client bandwidths/speeds
- Late Joiner
- The effects of packet loss
- Reliable multicast
60The effects of Packet Loss
- This problem applies to
- Multicast
- UDP
- The PNG images can be large
- Regular desktop can be 900KB
- 600 Ethernet packets
- One packet loss wastes all PNG image
61The effects of Packet Loss
- Solution
- Small PNG images
- Around 1500 bytes
- Consist of a few scanlines
- Disadvantages
- Increased CPU usage (clientserver)
- Lower compression ratio (20 lower)
- Advantages
- One packet loss no update for a few scanlines
62The effects of Packet Loss
63Challenges
- Different client bandwidths/speeds
- Late Joiner
- The effects of packet loss
- Reliable multicast
64Reliable Multicast
- RTP Library stores last N rtp packets
- Clients send NACK for lost packets
- RTP Library resend the requested packets
65The effects of Packet Loss
66Overview
- Introduction
- Demo
- Architecture
- Challenges
- Features
- Conclusion
67Recording
- Clients can record the whole/part session
- Anybody can play these files locally
- These files can be streamed to receivers via
streaming server - Streaming server supports multiple receivers
- Also late joiners
68Listening Client
- Client waits for incoming connections
- It can display windows from multiple user
- Can be used for RGB cable replacement
69Overview
- Introduction
- Demo
- Architecture
- Challenges
- Features
- Conclusion
70Conclusion
- Application sharing allows users to share a
single application with multiple participants. - Participants don't need the application.
- It is not specific to a single application.
- Extra features like recording is added.
71Thanks