# Presentation: 025533

## Workspace Docking

- Terry Disz
- disz@mcs.anl.gov
- The Futures Lab
- Math and Computer Science Division
- Argonne National Laboratory

## Definition

- Integration of local data and services with other AG participants
- Shared Files and documents
- Messaging
- Video
- Audio
- VNC-like desktop control
- Applications
- Answer to the question:
- “What do you call it when I want to show someone something from my computer?”

## Examples

- A user at an AG node wants to show everyone present a PDF document
- VNC export desktop
- Shared WEB browser
- Shared XPDF viewer
- A user at an AG node wants to send a private message to another user
- Chat invitation
- Mud whisper
- Web send POST-IT
- Private audio channel

## Examples

- The next presenter at a session wants to privately review slides with a user at another site.
- Email them, or post Slides to a shared document site
- Remotely start and control PPT on other’s machine
- Review over private chat or audio channel
- A scientist wants to allow other users to control a scientific instrument interface on a workstation
- XMOVE
- XMX
- VNC

## Problem Description:“Let Me Show You  This”

## Let Me Show You This

- Let
- You must provide permission and capability
- Me
- Establish a trusted Identity
- Show
- The mechanism to make it happen
- You
- Discover, form groups of individuals or groups
- This
- Describe the thing

## Let Me Show You This

- Let
- You must provide permission and capability
- Me
- Establish a trusted Identity
- Show
- The mechanism to make it happen
- You
- Discover, form groups of individuals or groups
- This
- Describe the thing

## Let Me Show You This

- Let
- You must provide permission and capability
- Me
- Establish a trusted Identity
- Show
- The mechanism to make it happen
- You
- Discover, form groups of individuals or groups
- This
- Describe the thing in a standard way

## Let Me Show You This

- Let
- You must provide permission and capability
- Me
- Establish a trusted Identity
- Show
- The mechanism to make it happen
- You
- Discover, form groups of individuals or groups
- This
- Describe the thing

## Let Me Show You This

- Let
- You must provide permission and capability
- Me
- Establish a trusted Identity
- Show
- The mechanism to make it happen
- You
- Discover, form groups of individuals or groups
- This
- Describe the thing

## Let Me Show You This

- Let
- You must provide permission and capability
- Me
- Establish a trusted Identity
- Show
- The mechanism to make it happen
- You
- Discover, form groups of individuals or groups
- This
- Describe the thing

## Requirements

- (Me) Establish a Trusted Identity
- AG VV Login
- (You) Scoping
- Create an audience
- Discovery
- Find who is present
- Find who has what capability
- Find what machines are available
- Find what services are available

- (Let)Security
- Find who has permission to do X
- Give someone permission
- (This) Describe the thing
- XML Schemas
- Services
- Capabilities
- (Show) Initiation
- Platform Independent Messaging Environment
- Cause  launch of apps on remote machines

## Desirable Features

- Ease of use
- No learning curve, obvious use
- Extensible
- User can add services, capabilities outside of AG developers
- Lightweight
- Quick to load, small, non-intrusive presence

##  Assumptions – AG Services

- Registration Service
- Users authenticate to a Venue directly or via an AG node
- Methods of storing, delegating credentials
- Security
- Authentication Service
- Authorization API
- ACL manipulations, where I have permission
- Secure Communications API
- Discovery
- Identity Discovery API
- Capability/Service API
- AG scoping mechanism
- Persistence Service for Documents/files/etc
- API  for accessing, storing

##  Assumptions

- AG Client APP
- Login interface
- Capability Description Interface/Editor
- Configures docking stub
- Automatic service startup
- Service Advertising
- Separate Docking Application for each dockable class of thing
- Need to create a docking svc app and API
- Scope construction
- App Launching
- Port listener
- Command and control communications
- Applications communicate out of band from docking framework

## Applications communicate out of band from docking framework

- Future AG Opportunities to provide services for collaborative apps
- Common Services we know about
- AG Scoping
- Address Generation
- Stream Management
- Process communications framework
- Secure Communications
- More Services require analysis  – AG Applications Workshop
- Floor Control
- Reliable Multicast (Group Communications)
- Data Management
- Work flow management

## Strategy

- Services Model
- Service description
- Service Discovery
- XML descriptions
- XMLRPC
- HTTP
- Initiators and Receivers
- Peer to peer

- Docking Svc

- Docking Stub

- Docking Svc

- Docking Stub

- User Application

- User Application

## Docking Project Deliverables

## Docking Project Deliverables

- Service Description Schemas
- Capability Description Schemas
- Information about the service, parameters, capability requirements for matching
- XML Schemas

## Docking Project Deliverables

- Create-A-Scope API
- Scope is the target set of individuals/groups
- Create Matching Criteria API
- Identities, Locations, Capabilities, Node Affinity, Permissions, etc)
- Scope = CreateScope(Scope, Matching Criteria)
- Discover/select individuals/groups with identities with capabilities with permissions
- Reduce Existing Scope

## Docking Project Deliverables

- Messaging Framework
- Docking App Framework
- Scope Construction
- App Specific Functions
- Msg Launching
- Feedback
- Docking Stub
- Listener
- App Launching
- Uses XMLRPC

## Implementation Strategy

- Create ability to operate outside of AG 2.0 assumptions
- Identity, Scope
- Secure Communications
- Deliver Standalone capabilities as soon as possible
- Service/Capability Description
- Messaging Framework
- Develop Wrapper for current DPPT as Demonstration

## Implementation Strategy

_**Launch PPT**__** **__**Manager**_

- Modify venue to allow people to subscribe to ppt
- Modify DPPT client to use command line args, not config file

## Implementation Strategy

- PPT Receivers:
- Click on PPT subscriber link in Venue
-  Helper app starts the listener, which calls the registry svc with its URL to identify itself

**This isn’t a real application**

## Implementation Strategy

- PPT Presenter
-  clicks on  PPT presenter on Venue page
- Starts registry, server and GUI
- Presenter puts  slides on public place
- Presses the Launch button
- Starts Master
- Starts Clients
- Wait for Feedback

**But it could be**

- finis

## Tasks

- Create XML Schemas
- Capability/Service  Description
- Develop Messaging API
- Develop Docking API
- Matching Criteria
- Scope Creation
- Service Launching, advertising
- Create Docking Stub Generation
- Create Docking App Framework

## DPPT Example

- 1. Construct scope (Use docking API)
- 2. Make slides available
- Local URL, Venue URL, GASS to recipients
- 3. Locate or start registry,  server
- 4. Start a master
- 5. For each Docking Stub in the scope, send msg to launch client
- Slide location, ppt control port
- Candidate for Group Communications
- 6 Receive feedback on client status, go-nogo or repair

## DPPT Example

## DPPT Example

## Slide 31