# Presentation: 199618

## Developer Overview

## Building on Access Grid 2.X

- Opportunities exist for developers in four areas of AG2.x:
- Shared Applications – enable cooperative interactions
- Node Services – enable richer communication
- Services – represent third party resources
- Network Services – middleware to enable richer communication

## Shared Applications

- Enable collaborative work
- Application sessions reside in venue
- Secure storage of application state
- Secure communication of state among users
- API provided for developers to implement shared applications

## Shared Application internals

- Application is represented in Venue as an Application Object
- Application Object includes (limited) storage and event channel

- Data

- Venue

- App

- Event
- Channel

## Shared Application internals

- When changed, application state is:
- Stored in the application object data storage
- Distributed to application peers

- Data

- Venue

- App

- Event
- Channel

## Shared Application internals

- When a peer joins the application mid-session, it can read the application state from the application object to synch with existing peers

- Data

- Venue

- App

- Event
- Channel

## Example: Shared Text Buffer

- Text can be modified
- On Send, the text is:
- communicated to other participants
- stored in the venue

## Shared Applications

- Example Shared Applications include:
- Shared Browser
- Shared Presentation Viewer
- Shared Editor
- Shared Bookmark Tool
- Legacy Applications that could be shared
- Matlab / Octave
- R

## Node Services

**AGNodeService**
-   Node Configuration &  Management

**AGServiceManager**
-   AGService “Hosting Environment”

**AGService**
-   Base Class for Services
-    on Nodes that provide
-    access to collaboration
-    resources, these are referred to
-    as “Node Services”

## Node Services

- Expose collaboration resources (e.g. video capture cards) through software (e.g. vic)
- Produce and/or consume media
- Describe capabilities (e.g. video, audio)
- capability description will become richer
- Example Node Services:
- Audio Service
- Video Services
- Display Service

## Example: VideoProducerService

- VideoProducerService implements the AGService interface
- Configurable through Node Management Client
- Media addresses updated by Node Service (via VenueClient)
- Executes vic to produce video stream

## Services

- “Service” in the venue user context (appears in venue client)

## Services

- “Service” in the venue user context (appears in venue client)
- Referenced in venue; does not interact with venue
- Services provide access to third-party resources with third-party clients
- Service-specific client associated via mimetypes
- Examples of such resources include:
- Data Repositories
- Computing Systems
- Scientific Instruments

## Services

- Venue

- Service

- Data

- Service appears in venue client
- Service is opened from venue client; the associated service client is started

- Interface

## Services

- Venue

- Service

- Service appears in venue client
- Service is opened from venue client; the associated service client is started

- Interface

- Compute
- Resource

## Network Services

- Network services are third party services that provide collaboration enrichment
- Network Service Examples:
- Stream Transcoding
- Audio Transcription
- Media Down Sampling

## Network Services

- Users with incompatible capabilities could be in a venue together, but be unable to interact

- h261 video
- 8kHz audio

- JPEG video
- 16kHz audio

- X

## Network Services

**Services**

- The Venue could resolve these incompatibilities with appropriate adapters.  We call these adapters “Network Services”.

- h261 video
- 8kHz audio

- JPEG video
- 16kHz audio

## Network Services

- Provide a middleware layer for enabling the richest collaborations
- Are invisible to Venues Clients, used by Virtual Venues
- Primarily Transform streaming data
- Can be anywhere on the network
- Can be composed to build complex solutions:
- Venue Audio Stream  Audio to Text  Two-Way Pager
- Two-Way Pager  Text to Audio  Venue Audio Stream
- Network Services provide opportunities for third party developers
- ANL is working on Network Services for
- Audio Transcoding (16KHz ↔ 8KHz)
- Video Stream Selection

## Access Grid 2.x Detail

- Virtual Venues Server
- Transitional Venue Server for AG1.X  AG2.x Migration
- _[https://vv2.mcs.anl.gov:9000/Venues/default](https://vv2.mcs.anl.gov:9000/Venues/default)_ (The Access Grid Lobby)
- Code Available via cvs:
- CVSROOT:pserver:anonymous@cvs.mcs.anl.gov:/cvs/fl
- Modules: AccessGrid (+ ag-all, ag-build, ag-globus)
- Bugzilla database
- http://bugzilla.mcs.anl.gov/AccessGrid