Shared Screens and Windows

28
Shared Screens and Shared Screens and Windows Windows Kimberly Tee Kimberly Tee CPSC 781 CPSC 781

description

Shared Screens and Windows. Kimberly Tee CPSC 781. Outline. Introduction Implementation Strategies Technical Issues Non-Technical Issues Examples Future Work. Introduction. Readings. Lauwers, J. C., & Lantz, K. A. (1990). - PowerPoint PPT Presentation

Transcript of Shared Screens and Windows

Page 1: Shared Screens and Windows

Shared Screens Shared Screens and Windowsand WindowsKimberly TeeKimberly Tee

CPSC 781CPSC 781

Page 2: Shared Screens and Windows

22

OutlineOutline

IntroductionIntroduction Implementation StrategiesImplementation Strategies Technical IssuesTechnical Issues Non-Technical IssuesNon-Technical Issues ExamplesExamples Future WorkFuture Work

Page 3: Shared Screens and Windows

33

ReadingsReadings

Lauwers, J. C., & Lantz, K. A. (1990).Lauwers, J. C., & Lantz, K. A. (1990).

Collaboration Awareness in Support of Collaboration Collaboration Awareness in Support of Collaboration Transparency: Requirements for the Next Generation of Transparency: Requirements for the Next Generation of Shared Window Systems.Shared Window Systems. Proc. CHI 1990Proc. CHI 1990, ACM Press, 303-, ACM Press, 303-311.311.

Richardson, T., Stafford-Fraser, Q., Wood, K. R., & Hopper, Richardson, T., Stafford-Fraser, Q., Wood, K. R., & Hopper, A. (1989). A. (1989).

Virtual Network ComputingVirtual Network Computing. . IEEE Internet ComputingIEEE Internet Computing, , 22(1), (1), 33-39.33-39.

(optional)(optional) Stotts, D., Smith, J., & Gyllstrom, K. (2004). Stotts, D., Smith, J., & Gyllstrom, K. (2004).

FaceSpace: Endo- and Exo-Spatial Hypermedia in the FaceSpace: Endo- and Exo-Spatial Hypermedia in the Transparent Video FacetopTransparent Video Facetop. . Proc. Hypertext 2004Proc. Hypertext 2004, ACM , ACM Press, 48-57.Press, 48-57.

IntroductionIntroduction

Page 4: Shared Screens and Windows

44

Shared-View SystemsShared-View Systems

share another’s screen/windowshare another’s screen/window initially used to augment face-to-faceinitially used to augment face-to-face soon used for distributed, real-time soon used for distributed, real-time

collaborationcollaboration

IntroductionIntroduction

Page 5: Shared Screens and Windows

55

Two ApproachesTwo Approaches

collaboration transparentcollaboration transparent uses existing single-user applicationsuses existing single-user applications

collaboration awarecollaboration aware specifically designed for groupsspecifically designed for groups

IntroductionIntroduction

Page 6: Shared Screens and Windows

66

Abstract ArchitectureAbstract Architecture

system consists of:system consists of: participants’ window participants’ window

systemssystems application or screen application or screen

being sharedbeing shared managermanager

shared workspaceshared workspace each participant sees the same vieweach participant sees the same view each participant can interact with the applicationeach participant can interact with the application

Implementation StrategiesImplementation Strategies

Page 7: Shared Screens and Windows

77

Centralized ArchitectureCentralized Architecture

system consists of:system consists of: participants’ window systemsparticipants’ window systems one instanceone instance of each application or screen of each application or screen one instanceone instance of manager of manager

Implementation StrategiesImplementation Strategies

Page 8: Shared Screens and Windows

88

Centralized EnvironmentCentralized Environment

exampleexample window system sends input window system sends input

to applicationto application11

applicationapplication1 1 produces output produces output

view changesview changes manager distributes output request or manager distributes output request or

changed view to all window systemschanged view to all window systems can be an image filecan be an image file

Implementation StrategiesImplementation Strategies

Page 9: Shared Screens and Windows

99

VNC ProtocolVNC Protocol

basic message sent:basic message sent:

put a rectangle of pixel data at a put a rectangle of pixel data at a given x, y positiongiven x, y position

Implementation StrategiesImplementation Strategies

Page 10: Shared Screens and Windows

1010

VNC OptimizationsVNC Optimizations

raw encoding (basic) raw encoding (basic) pixel data sent left-to-rightpixel data sent left-to-right

copy-rectangle encodingcopy-rectangle encoding when framebuffer has same pixel data when framebuffer has same pixel data

elsewhereelsewhere sent (x, y) where pixel data is copiedsent (x, y) where pixel data is copied

majority-color encodingmajority-color encoding describes rectangles of different colorsdescribes rectangles of different colors background and sub-rectanglesbackground and sub-rectangles

Implementation StrategiesImplementation Strategies

Page 11: Shared Screens and Windows

1111

VNC UpdatesVNC Updates

can encode each update using a can encode each update using a different schemedifferent scheme

choose most appropriate for: choose most appropriate for: screen content being transmittedscreen content being transmitted available network bandwidthavailable network bandwidth

demand-drivendemand-driven only sent when explicitly requestedonly sent when explicitly requested adaptive qualityadaptive quality

Implementation StrategiesImplementation Strategies

Page 12: Shared Screens and Windows

1212

Replicated ArchitectureReplicated Architecture

system consists of:system consists of: participants’ window systemsparticipants’ window systems for each participant, for each participant, an instance of the manager an instance of the manager

and each application/screen being sharedand each application/screen being shared

Implementation StrategiesImplementation Strategies

Page 13: Shared Screens and Windows

1313

Replicated EnvironmentReplicated Environment

exampleexample window system sends input window system sends input to to

applicationapplication11

input is distributed to other managersinput is distributed to other managers replicas of applicationreplicas of application1 1 receive inputreceive input replicas produce outputreplicas produce output

view changesview changes output request to window output request to window

systemsystem

Implementation StrategiesImplementation Strategies

Page 14: Shared Screens and Windows

1414

TradeoffsTradeoffs

replicated has better performancereplicated has better performance but replicas must be synchronizedbut replicas must be synchronized

Implementation StrategiesImplementation Strategies

Page 15: Shared Screens and Windows

1515

Technical IssuesTechnical Issues

also want to support:also want to support: spontaneous interactionsspontaneous interactions group workgroup work workspace managementworkspace management floor controlfloor control data sharingdata sharing

Technical IssuesTechnical Issues

Page 16: Shared Screens and Windows

1616

Spontaneous InteractionsSpontaneous Interactions

many interactions are spontaneousmany interactions are spontaneous should accommodate these interactionsshould accommodate these interactions minimize startup overheadminimize startup overhead allow latecomers to join shared sessionsallow latecomers to join shared sessions

replay history of eventsreplay history of events transfer shared state directlytransfer shared state directly apply process migration techniquesapply process migration techniques

enable private windows to be later sharedenable private windows to be later shared dynamically put manager into communication linkdynamically put manager into communication link

Technical IssuesTechnical Issues

Page 17: Shared Screens and Windows

1717

Group WorkGroup Work

support the mechanics of collaborationsupport the mechanics of collaboration provide telepointersprovide telepointers support annotationsupport annotation channel for direct communicationchannel for direct communication without affecting shared applicationwithout affecting shared application

Technical IssuesTechnical Issues

Page 18: Shared Screens and Windows

1818

Workspace ManagementWorkspace Management

traditional window managers not goodtraditional window managers not good distinguish shared and private windowsdistinguish shared and private windows

identify windows in a particular sessionidentify windows in a particular session determine which session a window is associated withdetermine which session a window is associated with

coordinate windowscoordinate windows WYSIWISWYSIWIS handle window movements/destructions gracefullyhandle window movements/destructions gracefully

Technical IssuesTechnical Issues

Page 19: Shared Screens and Windows

1919

Floor ControlFloor Control

determines who has control of whatdetermines who has control of what technological approachestechnological approaches

queue: keep list of people who requestqueue: keep list of people who request pre-emptive: pass to requester on demandpre-emptive: pass to requester on demand ring-passing: give current floor holder controlring-passing: give current floor holder control open floor: allow anyone to hold floor at any timeopen floor: allow anyone to hold floor at any time

social protocolsocial protocol if high-quality audio availableif high-quality audio available let participants negotiate accesslet participants negotiate access

Technical IssuesTechnical Issues

Page 20: Shared Screens and Windows

2020

Data SharingData Sharing

determine how data should be shareddetermine how data should be shared possible for data to be overwrittenpossible for data to be overwritten individuals may have different permissionsindividuals may have different permissions create copies of datacreate copies of data

Technical IssuesTechnical Issues

Page 21: Shared Screens and Windows

2121

Non-Technical IssuesNon-Technical Issues

customizing viewscustomizing views social conventionssocial conventions group dynamicsgroup dynamics

Non-Technical IssuesNon-Technical Issues

Page 22: Shared Screens and Windows

2222

RealVNCRealVNC

(free, open source) variant of VNC(free, open source) variant of VNC no telepointing, annotationno telepointing, annotation scroll around to viewscroll around to view open floor controlopen floor control

ExamplesExamples

http://www.realvnc.com/

Page 23: Shared Screens and Windows

2323

BridgitBridgit

developed by SMART Technologiesdeveloped by SMART Technologies annotation, webcam, spotlight toolannotation, webcam, spotlight tool screen owner gets priority for controlscreen owner gets priority for control

ExamplesExamples

http://www2.smarttech.com/st/en-US/Products/Bridgit/

Page 24: Shared Screens and Windows

2424

MSN Messenger’s MSN Messenger’s Application SharingApplication Sharing

uses Windows NetMeetinguses Windows NetMeeting no telepointing, annotationno telepointing, annotation application owner can accept or deny application owner can accept or deny

requests for controlrequests for control

ExamplesExamples

Page 25: Shared Screens and Windows

2525

FaceTopFaceTop

two video streams over shared desktoptwo video streams over shared desktop light-weight transition between light-weight transition between

communication and interactioncommunication and interaction supports synchronous paired collaborationsupports synchronous paired collaboration can see facial expressions, gesturescan see facial expressions, gestures

ExamplesExamples

David Stotts, Jason Smith, Karl Gyllstrom

Page 26: Shared Screens and Windows

2626

Remote Access to Remote Access to Physical DevicesPhysical Devices

extend VNCextend VNC remote access to devicesremote access to devices use standardized GUI protocol for devices use standardized GUI protocol for devices

that have no physical display of their ownthat have no physical display of their own when display becomes available, can then when display becomes available, can then

provide graphical informationprovide graphical information

Future WorkFuture Work

Page 27: Shared Screens and Windows

2727

Using Shared Screens for Using Shared Screens for AwarenessAwareness

class project – useful for awareness?class project – useful for awareness? build shared screen applicationbuild shared screen application support awareness support awareness interaction interaction

Future WorkFuture Work

Page 28: Shared Screens and Windows

2828

DiscussionDiscussion

as a viewer:as a viewer: what do you want to see?what do you want to see? how much information is how much information is

too much?too much? do you want to be notified do you want to be notified

if someone is working in a if someone is working in a particular application?particular application?

do you want a recent do you want a recent history of what someone history of what someone has been working on?has been working on?

as a sharer:as a sharer: how much control how much control

over what you over what you share?share?

what would you what would you share?share?

visual indication to visual indication to indicate what you indicate what you are sharing?are sharing?

times you don’t times you don’t want to share?want to share?

Future WorkFuture Work