VPCScreenIX extends the VPCScreen application to support remote interaction. VPCScreenIX can stream screen content as h.261as video into Access Grid meetings just as VPCScreen can, but the VPCScreenIX application also listens for remote network connections and processes incoming mouse and keyboard events, directing them into the source application. The effect is to give near-native user interaction with remote applications to every participating user. The application has clear advantages for remote collaborators, but is especially useful in scientific collaborations involving applications with large datasets and/or significant back-end compute resources. For example, a visualization application might render a large dataset using a local rendering cluster. When the local user of the visualization application streams the rendered content using VPCScreenIX, remote users can see and interact with the application almost as if it's running on their desktop, but they do not require significant network bandwidth, compute resources, or access to the dataset.
1.Download and install the VPCScreenIX plugin
agpm3.py -z VPCScreenIXPlugin.zip
MacOS users note: Before executing the agpm3.py command, you will need to source a configuration file with the following command (note the leading dot and space):
2. Download and install the vic.ix service
agpm3.py -z VPCScreenIXConsumerService.zip (see MacOS note above)
Streaming from the desktop
Start the Access Grid Venue Client. If the VPCScreenIX plugin loaded successfully, you should see “S”, “R”, “W” icons on the VenueClient toolbar (see figure). Enter a Venue.
To stream an application window
Select the “W” icon from the VenueClient toolbar. VPCScreen will start, the mouse pointer will become a crosshair, and the VPCScreen window will display “Select the window to stream”. Select the application window you want to stream. The mouse pointer will be restored, and VPCScreen will begin to display the framerate at which it is streaming.
To stream the whole screen
Select the “S” icon from the VenueClient toolbar. VPCScreen will start, displaying the framerate at which it is streaming. VPCScreen will also display the current status of the Remote Connection (see Figure).
Viewing desktop streams
- Remove the VideoConsumerService from VenueClient, using Tools->Conﬁgure node services.
- Conﬁgure the VenueClient to use the VPCScreenIXConsumerService. In the
VenueClient, select Tools->Conﬁgure node services. Select the display host and then Service->Add. Add the VPCScreenIXConsumerService. Save this conﬁguration with a new name; do not make it the default conﬁguration.
- Enter a Venue in which content is being streamed. vicIX will start. vicIX is the standard vic application extended to handle mouse/keyboard interactions.
- Streamed desktop content will be visible alongside video of other people in the Venue, though it will likely be rendered as gray with some noise in the thumbnail window (see ﬁgure). A future version of the tool will remedy this shortcoming.
- Select the desktop stream. Note that the resulting window will have double
window borders, one from the originating machine that is included in the video
stream, and one from the local machine (see ﬁgure).
Interacting with desktop streams
- If a window is enabled for interaction, a button bar will appear along the bottom with an option labeled “Mouse/Keyboard”. Windows not enabled for interaction have no bottom button bar.
- To interact with a desktop stream, click the “Mouse/Keyboard” checkbox on the bottom button bar.
- Use the mouse/keyboard as you would normally with the target application.
- To stop interacting with the desktop stream, uncheck the “Mouse/Keyboard” checkbox on the bottom button bar.
- vic's familiar keyboard shortcuts have been disabled in this version of vic, to allow them to be used in the target application.
- vic can be conﬁgured to show debug information using the standard conﬁguration dialog for all services. In the VenueClient, select Tools->Conﬁgure node services. In the resulting dialog, double-click the VPCScreenIXConsumerService and the conﬁguration dialog will appear. Adjust the ʻDebug Level' and ʻShow Console' settings appropriately. Note that high debug levels signiﬁcantly affect performance.
- VPCScreenIX will listen for TCP connections on port 25800 by default, so this port must be open for interaction to work.
- VPCScreenIX can be conﬁgured using the ﬁle ʻconﬁg' in the Plugin directory, which is AccessGrid3/Plugins/ VPCScreenIX. Conﬁguration options include:
interact = <True|False>
Controls whether VPCScreenIX listens for interaction connections. The VPCScreenIX user interface does not currently indicate whether it is listening or connected.
port = <int>
Controls the port on which VPCScreenIX listens for interaction connections (default is 25800). The VPCScreenIX user interface currently does not indicate the port.
debuglevel = <int>
The debug level can be any number from 0 to 7. The debug level determines how much detail is logged to the console window. On Windows, a separate console window appears if the debug level is set above 0.
- Interaction is not currently enabled for the ʻRegion' screen capture mode.
- The AG Venue Client does not shut down plugins when it shuts down. This means that VPCScreenIX will continue to run and stream from the desktop after the VenueClient is shut down. It must be explicitly exited by the user.
- It is currently not possible to run multiple VPCScreenIX sessions, due to conﬂicts with the port; this will be resolved soon.
This work has been supported in part by the Mathematical, Information, and Computational Sciences Division subprogram of the Office of Advanced Scientific Computing Research, Office of Science, United States Department of Energy, under Contract DE-AC02-06CH11357.