53
Application Sharing Omer Boyaci September 11, 2007

Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Application Sharing

Omer BoyaciSeptember 11, 2007

Page 2: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Overview

• Introduction• Architecture• Challenges• Features• Conclusion

Page 3: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Overview

• Introduction• Architecture• Challenges• Features• Conclusion

Page 4: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Application 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

Page 5: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Use Cases

• Multiple Party working on the same document • Classroom

– Show something to remote or local users– Request them to repeat the same thing– All participants can watch and participate

Page 6: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Application 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

Page 7: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Application Sharing

Sharing an application with multiple users

There is only one copy of the application

Participants do not need application itself

Briefly, participantsreceive screen updatessend keyboard and mouse events

Desktop sharing is also supported.

Page 8: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Screenshot

Page 9: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Screenshot (2)

Page 10: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Supported Platforms/OS

Server Client*Windows + +*nix +Mac OS X − +

−+

*Client is Java based.

Page 11: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Overview

• Introduction• Architecture• Challenges• Features• Conclusion

Page 12: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

System Architecture

• Client/Server Software Architecture

Page 13: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

System Architecture

• Client/Server Software Architecture

Screen Updates

Page 14: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

System Architecture

• Client/Server Software Architecture

Keyboard Mouse Events

Page 15: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Client (Viewer) Architecture

• Client can– Connect to server– Wait for incoming connections

• Client supports– TCP– UDP (+Multicast)

Page 16: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Client (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

Page 17: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Overview

• Introduction• Architecture• Challenges• Features• Conclusion

Page 18: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Challenges

• Different client bandwidths/speeds• Late Joiner• The effects of packet loss• Reliable multicast

Page 19: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Overview

• Introduction• Architecture• Challenges• Features• Conclusion

Page 20: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Recording

• 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

Page 21: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Listening Client

• Client waits for incoming connections• It can display windows from multiple user• Can be used for RGB cable replacement

Page 22: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Overview

• Introduction• Architecture• Challenges• Features• Conclusion

Page 23: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Conclusion

• 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, ...

Page 24: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Thanks

• Questions?

Page 25: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Overview

• Introduction• Architecture• Challenges• Features• Conclusion

Page 26: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Challenges

• Different client bandwidths/speeds• Late Joiner• The effects of packet loss• Reliable multicast

Page 27: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Challenges

• Different client bandwidths/speeds• Late Joiner• The effects of packet loss• Reliable multicast

Page 28: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

S e r v e r M a i n T h r e a d

C l i e n t T h r e a d - 1

C l i e n t T h r e a d - 2

C l i e n t T h r e a d - 3

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

1 M b p s

2 M b p s

3 M b p s

Page 29: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

• Possible Solutions– Slowest one

– Average speed

– Fastest one

Page 30: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

• Possible Solutions– Slowest one

• Problem: Penalize everybody except the slowest

– Average speed

– Fastest one

Page 31: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

• Possible Solutions– Slowest one

• Problem: Penalize everybody except the slowest

– Average speed• Possible solution

– Fastest one

Page 32: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

• Possible Solutions– Slowest one

• Problem: Penalize everybody except the slowest

– Average speed• Possible solution (Can we do better?)

– Fastest one

Page 33: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different 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

Page 34: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

S e r v e r M a i n T h r e a d

C l i e n t T h r e a d - 1

C l i e n t T h r e a d - 2

C l i e n t T h r e a d - 3

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

X 320,340

Y 400,500

timestam

pP

NG

1 M b p s

2 M b p s

3 M b p s

Different Client Bandwidths/Speeds

Page 35: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 3

20,340

Y 4

00,500

timesta

mp

PN

G

X 32

0,340

Y 40

0,500

timestam

pP

NG

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG

1Mbps

2Mbps

3Mbps

Page 36: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Challenges

• Different client bandwidths/speeds• Late Joiner• The effects of packet loss• Reliable multicast

Page 37: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Late Joiner

• Force server to generate full screen update

Page 38: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Late 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

Page 39: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG

1Mbps

2Mbps

3Mbps

Client Thread-4

8Mbps

Page 40: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG

1Mbps

2Mbps

3Mbps

Client Thread-4

8Mbps

FIR

Page 41: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

timesta

mp

PN

G

X 32

0,340

Y 40

0,500

timestam

pP

NG

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG

1Mbps

2Mbps

3Mbps

Client Thread-4

8Mbps

Page 42: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

timesta

mp

PN

G

X 32

0,340

Y 40

0,500

timestam

pP

NG

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG

1Mbps

2Mbps

3Mbps

Client Thread-4

8Mbps

Page 43: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

timesta

mp

PN

G

X 32

0,340

Y 40

0,500

timestam

pP

NG

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG

1Mbps

2Mbps

3Mbps

Client Thread-4

8Mbps

Page 44: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

timesta

mp

PN

G

X 32

0,340

Y 40

0,500

timestam

pP

NG

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG

1Mbps

2Mbps

3Mbps

Client Thread-4

8Mbps

Page 45: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

timesta

mp

PN

G

X 32

0,340

Y 40

0,500

timestam

pP

NG

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG1Mbps

2Mbps

3Mbps

Client Thread-4

8Mbps

Client Thread-5

2Mbps

Page 46: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Different Client Bandwidths/Speeds

Server Main Thread

Client Thread-1

Client Thread-2

Client Thread-3

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

timesta

mp

PN

G

X 32

0,340

Y 40

0,500

timestam

pP

NG

X 32

0,34

0Y

400,5

00

time

stam

pP

NG

X 3

20,34

0Y

400

,500

timesta

mp

PN

G

X 3

20,340

Y 4

00,500

time

stamp

PN

G

X 32

0,34

0Y

400,5

00

timestam

pP

NG1Mbps

2Mbps

3Mbps

Client Thread-4

8Mbps

Client Thread-5

2Mbps

Page 47: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Challenges

• Different client bandwidths/speeds• Late Joiner• The effects of packet loss• Reliable multicast

Page 48: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

The effects of Packet Loss

• This problem applies to – Multicast– UDP

• The PNG images can be large– Regular desktop can be ~1MB– ~600 Ethernet packets– One packet loss wastes the whole PNG image

Page 49: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

The effects of Packet Loss

• Solution– Small PNG images

• Around ~1500 bytes• Consist of a few scanlines

– Disadvantages• Increased CPU usage (client&server)• Lower compression ratio (%20 lower)

– Advantages• One packet loss = no update for a few scanlines

Page 50: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

The effects of Packet Loss

Page 51: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Challenges

• Different client bandwidths/speeds• Late Joiner• The effects of packet loss• Reliable multicast

Page 52: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

Reliable Multicast

• RTP Library stores last N rtp packets

• Clients send NACK for lost packets

• RTP Library resend the requested packets

Page 53: Application Sharing - Columbia Universityboyaci/appshare/other/irt... · Application Sharing Sharing an application with multiple users There is only one copy of the application Participants

The effects of Packet Loss