Apan advanced network conference august 26 2003
1 / 125

APAN Advanced Network Conference August 26, 2003 - PowerPoint PPT Presentation

  • Uploaded on

APAN Advanced Network Conference August 26, 2003. Rick L. Stevens Michael E. Papka Thomas D. Uram Ivan R. Judson Ti Leggett. Robert D. Olson Terry Disz Susanne Lefvert Justin Binns Eric Olson. Introduction to the Access Grid Project. Focus of the Access Grid Project.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'APAN Advanced Network Conference August 26, 2003' - colton

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Apan advanced network conference august 26 2003

APAN Advanced Network Conference

August 26, 2003

Rick L. Stevens

Michael E. Papka

Thomas D. Uram

Ivan R. Judson

Ti Leggett

Robert D. Olson

Terry Disz

Susanne Lefvert

Justin Binns

Eric Olson

Focus of the access grid project
Focus of the Access Grid Project

  • To enable groups of people to interact with Grid resources and to use the Grid technology to support group to group collaboration at a distance

    • Distributed research collaborations

    • Distributed lectures and seminars

    • Remote participation in design and development

    • Virtual site visits and team meetings

    • Complex distributed grid based applications

    • Long term collaborative workflows

Group to group interaction is different
Group-to-Group Interaction is Different

  • Large-scale scientific and technical collaborations often involve multiple teams working together

  • “Presence” requires multiple views from each site, and a large-scale display

  • Group-to-group interactions are more complex than individual-to-individual interactions

  • The Access Grid project is aimed at exploring and supporting this more complex set of requirements and functions

Access grid project goals
Access Grid Project Goals

  • Enable Group-to-Group Interaction and Collaboration

    • Connecting People and Teams via the Grid

  • Improve the user experience: Go beyond teleconferencing

    • Provide a sense of presence

    • Stress coherence

    • Support Natural Interaction Modalities

  • Use quality but affordable digital IP-based audio/video

    • Leverage IP Open Source Tools

  • Enable complex multisite visual and collaborative Experiences

    • Integrate With High-end Visualization Environments

      • ActiveMural, Powerwall, CAVE Family, Workbenches

  • Build on Integrated Grid Services Architecture

    • Develop New Tools to Specifically Support Group Collaboration

Our approach
Our Approach

  • Attack Research Questions in the context of real world experience

    • Build up a critical mass of groups using the AG Platform

    • Involve multiple groups in trying new ideas and evaluation

  • Build Working Infrastructure as well as Prototype Software

    • Argonne has five working AG nodes under development

    • New software is used weekly/daily

    • Involve multiple groups in deployment, use and research

    • Active collaborations with over a dozen groups working on AG technology

  • Release software early and often (use open source model)

  • Contribute to the Community Code base

The access grid a collection of designed spaces enabling group to group interaction

Hands free audio

Multiple Video and Audio streams

Wide field of view

Virtual collaborative spaces

Secure Rooms

Integration with Grid services

The Access Grid: a collection of designed spaces enabling group to group interaction

Access grid and collaboration technologies connecting people and applications via the grid
Access Grid and Collaboration TechnologiesConnecting People and Applications via the Grid

Access Grid  Integrating Group to Group Collaboration

and Visualization

Access grid in practice
Access Grid in practice

  • Distance Learning

    • CS courses between universities in Montana, New Mexico, and Alaska

  • Scientific Collaboration

    • Regular TeraGrid meetings

    • Fusion Collaboratory

    • Scientific Workspaces of the Future

      • Computational Biology

      • Atmospheric Research

  • Commercial Use

    • Boeing

    • Johnson & Johnson

    • Ford

Access grid vs commercial desktop tools
Access Grid vs. Commercial Desktop Tools

  • AG targets beyond the desktop

    • large format multi-screen for AG Global Channels

    • room scale hands free full-duplex audio

  • AG uses dedicated hardware

    • multiple machines, separation of function NT, Linux

  • AG software is Open Source

    • extends and builds on community tools

  • AG environment is integrated with Grid services

    • extensible framework designed to “plug-into” the Grid

  • AG development is a Community Effort

    • you are welcome to join in the fun!!

Interesting ag facts
Interesting AG facts

  • Over 200 AG nodes deployed worldwide in the R&D community

  • Over 8000 messages to ag-tech@mcs.anl.gov since it was created ( 5-8 per day)

  • Over 5000 downloads of AG1.x

  • Over 2000 downloads of AG2.x (alphas, betas, RCx)

  • Over 350 security certificates signed since January 2003

  • 76,700 Access Grid hits on Google

  • 251 sites linked to www.accessgrid.org site

  • Europe and Asia-Pacific have established regional support structures for the AG community

User ag 1 0 feedback ag 2 0 requirements
User AG 1.0 Feedback  AG 2.0 Requirements

  • Desire for an Integrated venues client

    • Reduce workload on AG operators

  • Easier node installation and configuration

    • Single machines

  • Ability to run venue servers

    • Expand the number and nature of venues

  • Secure venues

    • End to end security

  • Support for non-multicast environments

    • Multicast support is still not optimal at many locations

  • Robust distributed PowerPoint

    • PPT is the most requested application!!

  • Scalable client solutions (laptops to rooms)

    • All interesting platforms

  • Media tool improvements

    • New codecs, etc.

  • Identify users

  • Open the API to simply integration of collaborative tools

Access grid 2 design requirements
Access Grid 2 Design Requirements

  • Secure Communication Throughout

  • Reliable, Robust Data Transport

    • Example: Network Failover Technology

  • More Diverse Reference Platforms

    • Handhelds  High End Solutions

    • Personal and Shared Nodes

  • Improved Usability

  • Well Documented Interfaces

  • Federated Operation

  • Integrate Grid Computing Technology

    • AG 2 is Web Services based

    • AG 2 uses GT2.X

    • AG 2 can enhance OGSI by providing collaboration services

What is the access grid
What is the Access Grid?

  • Virtual Venues

    • Places where users collaborate

  • Network Services

    • Advanced Middleware

  • Virtual Venues Client

    • User Software

  • Nodes

    • Shared Nodes

      • Administratively scoped set of resources

    • Personal Nodes

      • User scoped set of Resources

  • Resources

    • Provide capabilities

  • Users collaborate by sharing:

  • Data

  • Applications

  • Resources

Match services (streams) between nodes, vehicle for adding functionality (e.g. fault mgmt)

Add nodes to a venue

Collections of resources, presented as “services”

Applications, streaming data, hardware

Virtual venues
Virtual Venues

  • What is a Virtual Venue?

    • A Virtual Venue is a virtual space for people to collaborate

  • What do Virtual Venues provide?

    • Authorization Information

    • Connections to other Venues

    • Coherence among Users

      • Venue Environment, Users, Data

    • Client Capabilities Negotiation

      • List of Available Network Services

      • Keep track of resulting Stream Configurations

    • Applications

  • Virtual Venues have two interfaces

    • Client – Virtual Venue Client Software

    • Administrative – Venue Management Software

Virtual venues client
Virtual Venues Client

  • Enable face-to-face meeting activities

  • What can be done:

    • Sharing Data

    • Shared Applications

    • Text chat

  • Applications:

    • Shared Presentation

    • Shared Web browser

    • Whiteboard

    • Voting Tool

    • Question & Answer Tool

    • Shared Desktop Tool

  • Integrate legacy single-user apps

  • Communicates media addresses to node service

Access grid nodes
Access Grid Nodes

  • Access Grid Nodes

    • Comprise a set of collaboration resources

    • Expose those resources through Node Services

  • Basic Node Services include:

    • Audio & Video Services

    • Network Performance Monitoring Service

    • Network Reliability/Fallback Service

    • Leashing Service – Registering presence with a shared node

  • Extended Node Services could be:

    • Display Service with enhanced layout control

    • Video Service supporting new CODECs

    • Automatic performance adaptation

    • Application Hosting Service

Access grid nodes1
Access Grid Nodes

  • Access Grid 2.0 reference platforms:

    • Advanced Node – Tiled Display, Multiple Video Streams, Localized Audio

    • Room Node – Shared Display, Multiple Video Streams, Single Audio Stream (AG 1.x Node)

    • Desktop Node – Desktop Monitor, Multiple Video Streams, Single Audio Stream (AG 1.X PIG)

    • Laptop Node – Laptop Display, Single Video Stream, Single Audio Stream

    • Minimal Node – Compact Display, Single Video Stream, Single Audio Stream

  • What Hardware?

    • Cameras, Microphones, Speakers, Display, Input Devices

    • Get Audio Correct!

  • Software Requirements?

    • Python 2.2, wxPython, GT2.0, pyGlobus

Nodes and node management
Nodes and Node Management

  • An AG Node often consists of multiple machines

  • The single central NodeService communicates with a ServiceManager on each machine

Nodes and node management1
Nodes and Node Management

  • Users install available services to establish the capabilities of the Node

  • Each service extends the collaborative capabilities of the Node

  • Services are simple to develop and integrate, facilitating third-party development

Nodes and node management2
Nodes and Node Management

  • The structure of an AG2 Node is more flexible than AG1 Nodes. On a personal Node, all the services would run on a single machine.

Nodes and node management3
Nodes and Node Management

  • Node Services

    • Expose resources on the machines in the node

    • Implement a specific network interface

    • Provide capabilities to the node

      • Video, h261, 25fps

      • Audio, 16kHz

Access grid architecture
Access Grid Architecture

Access grid architecture1
Access Grid Architecture

Access grid architecture2
Access Grid Architecture

Access grid architecture3
Access Grid Architecture

Summary of changes from 1 x to 2 0


Virtual Venues

Static Media Configurations

Assumed Multicast Technology

Single Server assumption

Virtual Venues Client

Web Browser


Non-extensible single reference platform

AG 1.1 1.2 PIGs introduced

Applications layered outside of AG software


Virtual Venues

Dynamic Media Configurations

Capability Brokering Functionality

Integrated Data Storage

Support for highly scalable deployments

Multicast Addressing

Topological Simplicity (connections as URLs)

Virtual Venues Client

Streamlined Client

Integrated Grid Security

Workspace Docking

Application Development Interfaces Exposed


Nodes defined in terms of resources

Management UI

Interfaces exposed for building new Services

Broader set of Reference Platforms


Venue Hosted Collaborative Apps

Network Services

Summary of Changes from 1.x to 2.0

Summary of changes from 2 0 to 2 1


Virtual Venues

Re-engineered Data Storage

Unicast fallback

Authorization Layer Complete

Administrators Role

Allowed Entry Role

Disallowed Entry Role

Virtual Venues Client

Simplified Certificate Management


Node Setup Wizard

Node Service Examples


Completed Shared Presentation Viewer

Network Services


Virtual Venues

Dynamic Media Configurations

Capability Brokering Functionality

Integrated Data Storage

Support for highly scalable deployments

Multicast Addressing

Topological Simplicity (connections as URLs)

Virtual Venues Client

Streamlined Client

Integrated Grid Security

Workspace Docking

Application Development Interfaces Exposed


Nodes defined in terms of resources

Management UI

Interfaces exposed for building new Services

Broader set of Reference Platforms


Venue Hosted Collaborative Apps

Network Services

Summary of Changes from 2.0 to 2.1

Getting started with the agtk
Getting Started with the AGTk

  • Installation

  • Personal Node Setup

    • Laptop and Desktop Reference Platforms

  • Room Node Setup


  • Platforms

    • Windows XP

    • Redhat 7.3 (9.0 support near)

    • Mac OSX port underway

  • Prerequisites

    • Python 2.2

    • wxPython 2.4.0

  • Access Grid software:


Python 2 2


Ships with RedHat 7.3, 8.0, and 9


ActiveState Python comes standard with Win32 extensions

Python 2.2



Need wxGTK and wxPythonGTK


Only need wxPython


Installing agtk 2 x
Installing AGTk 2.x

  • Windows Installer

Installing agtk 2 x1
Installing AGTk 2.x

  • Linux tarball (RPMs and install script)

    • tar xvzf AccessGrid-2.1-3.tar.gz

    • cd AccessGrid-2.1-3

    • ./install.sh

Certificate request tool
Certificate Request Tool

  • An X509 certificate is required to use AG2

  • The transitional venue server (TVS) recognizes certificates issued by particular certificate authorities, one of which is run by the Access Grid development group (agdev-ca)

  • A certificate can be requested from the agdev-ca using the Certificate Request Tool

Certificate request tool5
Certificate Request Tool

  • Certificates will be issued within two business days

  • Certificate Request Tool indicates status of pending requests

Node management
Node Management

  • Management of node configuration outside of the Node Setup Wizard

Node management1
Node Management

  • Add/Remove service managers

  • Add/Remove services

  • Enable/disable services

  • Configure services

  • Save/Load node configurations

Node management2
Node Management

  • Where AG1.X Nodes consist of a collection of hardware in a single, static configuration, AG 2.0 enables multiple configurations to be saved and reloaded:

    • One stream for a presentation (e.g. an instructor)

    • Multiple streams for a group attending a presentation (e.g. a classroom)

    • High-bandwidth/Low-bandwidth configurations

Run the venue client
Run the Venue Client

On startup, the software

may prompt for required


Venue venueclient node interaction
Venue/VenueClient/Node Interaction

  • A user enters the Venue with the collected capabilities of his node, which are included in the ClientProfile

  • If the user has the capability of producing a media stream not present in the Venue, the Venue allocates a new stream

  • Streams are present in the Venue as long as participants are providing that stream to the Venue

  • The returned Venue State describes venue content (users, data, etc.) and stream descriptions

  • Stream descriptions are passed to the Node to update media tools

Venue State

(incl. StreamDescs)


Client Profile

(incl. Capabilities)

Venue Client



Access Grid


Update media


Network services
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

Network services1
Network 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 services2
Network Services

  • 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

Venue server management
Venue Server Management

  • Add/Remove venues

  • Add/Remove administrators

  • Configure multicast address allocation

  • Set data storage location

  • Configure encryption default for venues

Venue management
Venue Management

  • Add/Remove exits

  • Configure encryption

  • Configure static addressing

    • Transitional venue server (to enable AG2 clients and AG1 clients to interact)

    • Network address requirements (SCGlobal, multicast debugging

  • Configure authorization

Venue management2
Venue Management

  • Modify venue permissions

Bridge server
Bridge Server

  • Enables multicast-challenged users to exchange audio and video with other venue participants

  • Uses QuickBridge to bridge venue streams between unicast and multicast

  • VenueClient displays the availability of bridged streams, and allows the user to select one of the available bridges

Bridge server1
Bridge Server

  • Running a bridge server

    Usage: BridgeServer.py <<--venueServer venueServerUrl>|

    <--venueServerFile venueServerFile>|

    <--file venueUrlFile>|

    <--venue venueUrl>>

    <--qbexec quickbridgeExecutable>

    [--cert certpath]

    [--key keypath]

    [--name name] # name of bridge provider

    [--location location] # location of bridge provider



  • For example, to bridge all streams in all venues on a particular server:BridgeServer.py --venueServer https://vvserver:8000/VenueServer --qbexec /usr/bin/QuickBridge --name Argonne --location Illinois

Access grid 2 x development

Technology Details:

Windows (2000, XP)

RedHat Linux (7.3, ~9.0)

Mac OS X

Globus Toolkit 2.X

Web Services

Partners Tools

Globus toolkit

Python CoG kit (LBNL)

Project Strategy

Open Source Project Model

Standard Tools

CVS, Bugzilla

Access Grid Project Meetings

First Tuesday of each month

Argonne Institutional Venue

Next meeting Sept. 2nd, 2003, 10-11am CST.

Access Grid 2.x Development

Access grid 2 x
Access Grid 2.x

  • AGTk 2.1 Available now.

    • Virtual Venues Server

      • Transitional Venue Server for AG1.X  AG2.x Migration

      • https://vv2.mcs.anl.gov:9000/Venues/default(The Access Grid Lobby)

    • Basic Node Services

    • Virtual Venues Client Software

    • Venues Management UI

  • Code Available via cvs:

    • CVSROOT:pserver:anonymous@cvs.mcs.anl.gov:/cvs/fl

    • Modules: AccessGrid (+ ag-all, ag-build, ag-globus)

Ag toolkit development
AG Toolkit Development

  • Development Overview (1/2 hour)

  • How to integrate a Service

    • Example Service

  • How to write Shared Applications (1 hour)

    • Example Generic Shared Application

    • Discuss Existing Shared Applications

  • How to write a Node Service (1/2 hour)

    • Example Generic Node Service

Building on access grid 2 x
Building on Access Grid 2.X

  • Opportunities exist for developers in four areas of AG2.x:

    • Services – represent third party resources.

    • Shared Applications – enabled cooperative interactions.

    • Node Services – enable richer communication.

    • Network Services – middleware to enable richer communication.

Access grid architecture4
Access Grid Architecture

App Client

Service Client




  • Complex Services:

  • Coordinate Authorization through Venue interfaces.

  • Add/Modify/Remove data to/from Venues.


  • Services provide access to third party resources

  • Examples of such resources include:

    • Data Repositories

    • Computing Systems

    • Scientific Instruments

      Service Spectrum

Shared applications
Shared Applications

  • Shared Applications enable collaborative work.

  • Example Shared Applications include:

    • Shared Browser

    • Shared Presentation Viewer

    • Shared Editor

    • Shared Bookmark Tool

  • Legacy Applications that could be Shared

    • Matlab / Octave

    • R

The future of services and shared applications
The Future of Services and Shared Applications

Shared Applications


Future Services

Node services
Node Services

  • Node Services expose collaboration resources.

  • Example Node Services:

    • Audio Service

    • Video Services

    • Display Service

Network services3
Network Services

  • Network services are third party services that provide collaboration enrichment.

  • Network Service Examples:

    • Stream Transcoding

    • Audio Transcription

    • Media Down Sampling

    • Network Service Management Service

Integrating venue resident services
Integrating Venue Resident Services

  • Put service description in Venue

  • Register Service Client with Venue Client – Currently using Mime Types.

Service integration details cont d
Service Integration Details cont’d

Mime type:


Program to use: C:\PROGRA~1\AGTK2~1.1\BIN\NODEMA~1.py

Mime type description:

"This service lets people in the venue manage Ivan's node.";

File extension:


application/x-ag-node-management; "C:\PROGRA~1\AGTK2~1.0\BIN\NODEMA~1.py %s"; description="This service … node."; nametemplate=%s.nodemgmt

Building shared applications1
Building Shared Applications

  • Shared applications rely on the Venue for discovery, coherence, coordination and synchronization.

  • A shared application stores its state in the Virtual Venue

  • A shared application maintains its state by distributing changes over the event channel

Venue application factory
Venue Application Factory

def CreateApplication(name, description, mimeType, eventService ):

Name – Application Name

Description – Application Description

mimeType – Application Mime-Type

eventService – Reference to the Event Service for the Venue Server.

  • Creates Application Object

    • Creates a Data Channel for the Application

  • Makes it Available in the Venue as a Web Service

Application object
Application Object

  • Provides Web Services Interface

    • Join(publicId)

    • Leave(token)

  • Provides Data Channel among clients

    • GetDataChannel(token)

  • Can hold state for the Application

    • SetData(token, key, value)

    • GetData(token, key, value)

Application architecture venue side

Event Channel

Application Architecture: Venue Side

  • Each application is represented in the venue by an Application Object

  • An application object can store local data and can have one event channel

  • Event channels utilize a Venue-based Event Service


Event Service

Application Objectname type webServiceUri channel

Local Data

Application architecture client side

On the user side the Venue Client is the key.

The user can install applications, which are then available to the Venue Client.

When a user enters a Venue, a list of applications “running” in the venue is displayed with other venue contents

The Venue Client permits the user to join a running shared application session

The Venue Client also enables the user to start a shared application

Application Architecture: Client Side


Venue State

(Including Application


Application Client

Type: X

Venue Client

Application Client

Type: Y

Application Client

Type: Z

Example applications
Example Applications

  • Generic Shared Application

  • Shared Web Browser

  • Shared Presentation Viewer

Generic shared application
Generic Shared Application

  • A shared application will typically:

    • maintain shared state

    • distribute state changes to participants

  • A simple example: Editing a shared text buffer

    • shared state: text

    • state changes: updates to text

Generic shared application1
Generic Shared Application

  • Text can be modified

  • On Send, the text is communicated to other participants, and is stored in the venue

Generic shared application2
Generic Shared Application





channel = “<channelid>”


{id, text})

  • appProxy.SetData(self.privateId, “textKey”, text)

  • Channel.Send (“modifyText”, {id, text})

SampleApp Client


SampleApp Client


Integration with the venue client
Integration with the venue client

  • Shared application clients are written in Python,and expose a methodto register the sharedapplication with the venue client

  • User can then start new applicationsessions of the given type, or joinexisting sessions

Shared web browser
Shared Web Browser

  • Application task: Web browsing

  • Goal: All users see the same page

  • The Venue serves as a rendezvous mechanism

  • Application state: webpage URL

  • With each state change, an event is distributed to all interested clients

  • Lines of code for example: 285

Shared web browser architecture stateless
Shared Web Browser Architecture(stateless)


HandleEvent( “browse”,

{id, http://...})


name=“Shared Browser”



channel = “<channelid>”

Shared Browser Client


HandleEvent( “browse”,

{id, “http://...”})

Channel.Send (“browse”,

{id, “http://...”})

Shared Browser Client


Shared Browser Client


Event Service

Shared web browser architecture stateful
Shared Web Browser Architecture(stateful)


HandleEvent( “browse”,

{id, http://...})

url = appProxy.GetData(self.privateId,



name=“Shared Browser”



channel = “<channelid>”

Shared Browser Client


HandleEvent( “browse”,

{id, “http://...”})

Shared Browser Client


Channel.Send (“browse”,

{id, “http://...”})


"url", “http://...”)

Shared Browser Client


Shared Browser Client


Event Service

Conceptual overview
Conceptual Overview

  • Application task: coordinated display of presentation material

  • Anyone in the Venue can participate in a Shared Presentation

  • There is only one Master who can send valid events

    • Usually the speaker (but not always)

  • Application state

    • A presentation (set of slides / images / pages)

    • Current location within the presentation

    • A presenter who has control of progress through the presentation


Three primary components:

  • Viewer (COM-connection to Powerpoint)

  • EventClient

  • User Interface

    EventClient and UI put messages in queue, and they get sent to the viewer.

Event channel client
Event Channel Client

  • Every Shared Application has an Event Channel (though a shared app may choose not to use it)

  • The Event Channel is used as a “shared bus” for data among the Application “clients”

  • To use the Event Channel the Shared Application registers Callback functions with the Event Channel

  • The callbacks are registered with the events to which they correspond

Shared presentation viewer
Shared Presentation Viewer

  • The Shared Presentation Viewer is the platform dependent part of the Shared Presentation Application.

  • On Windows we are using the PowerPoint Application (via the python/COM interface)

  • On Linux this could be an instance of the OpenOffice presentation application (via XML-RPC or CORBA)

  • This Viewer needs to be able to read in the data that is specified by the Application Object residing in the Venue.

Control interface
Control Interface

  • The Control Interface is a substitute for the actual controls on the Viewer.

  • It provides basic functionality for:

    • Next

    • Previous

    • Go To slide #

    • Load presentation

    • Quit

Shared presentation work to do
Shared Presentation Work to do

  • Enable the Shared Presentation to retrieve presentations from the Virtual Venue.

  • Create a Linux Presentation Viewer.

Building an agservice
Building an AGService


Node Configuration & Management


AGService “Hosting Environment”


Base Class for Services

on Nodes that provide

access to collaboration

resources, these are referred to

as “Node Services”

Agservice overview
AGService Overview

An AGService is executed on a machine in a node to provide access to the machine’s resources






Agservice overview1
AGService Overview

  • Adhere to a specific SOAP interface

  • Describe capabilities(e.g. video/h261/25fps, audio/L16/16kHz)

  • Handle stream description updates(network addresses)

  • Handle configuration updates

Agservice interoperation
AGService Interoperation

  • Node Management client depends on AGService interface for configuration

  • NodeService depends on AGService interface to transmit stream descriptions

Agservice interface
AGService Interface

Interface for Services to implement

  • def __init__()

  • def Start()

  • def Stop()

  • def ConfigureStream(streamDescription)

  • def SetAuthorizedUsers(authorizedUsers)

  • def GetCapabilities()

  • def GetResource()

  • def SetResource(resource)

  • def GetExecutable()

  • def SetExecutable(executable)

  • def SetConfiguration(configuration)

  • def GetConfiguration()

  • def IsStarted()

  • def SetIdentity(profile)

Specialization of agservice py
Specialization of AGService.py

  • Using Python

    • AGService base class implements most of the AGService interface

    • Minimum specialization includes the following methods:

      • __init__ – to set configuration parameters for the Node Service

      • Start – to start underlying software

Building a node service
Building a Node Service

  • DebugService

    • Simple example

    • Specializes typical methods to indicate activity

      • Start

      • Stop

      • ConfigureStream

      • SetIdentity

Service packaging
Service Packaging

  • Node Services are provided as packages

  • The package is a zip file of:

    • a .svc file that describes the service


      name = VideoProducerService

      description = Vic-based video service to send video to multicast address

      capabilities = Capability1

      executable = VideoProducerService.py

      platform = neutral


      role = producer

      type = video

    • an implementation file

  • Package location is defined in SystemConfigDir/AGNodeService.cfg

Services to consider
Services to consider

  • High/Low resolution audio/video services

  • Display service

  • Video service with camera control

Active access grid research issues
Active Access Grid Research Issues

  • Scalable wide area communication

    • Evolution of multicast related techniques, and time shifting issues

  • Scoping of resources and persistence

    • Value of spatial metaphors, security models

    • Virtual Venues, synchronous and asynchronous models

  • Improving sense of presence and point of view

    • Wide Field Video, Tiled Video, High-resolution video codecs

  • Network monitoring and bandwidth management

    • Beacons and network flow engine

  • Role of Back-channel communications

    • Text channels and private audio

  • Recording and playback of multistream media

Future of access grid
Future of Access Grid

  • Bandwidth adaptation through media transcoding

  • Enable Users

    • Integrate the AG into applications communities

    • Ongoing Requirements Gathering

  • Developer examples

    • Feedback from tutorials

  • Network failure detection

    • Input to network services and various failover schemes

  • Better support for extensibility

    • Documented service interfaces

    • Documented schemas

    • Toolkit support for node services, application clients, and network services

Future of access grid1
Future of Access Grid

  • Move to Interoperability

    • Adopt standards

    • Technology provider partnerships

  • Integration of Grid resources

  • Fine-grained access control on venue objects

    • Support for rich collections of venue resources

  • Apple OS X support

    • Requested by significant number of groups

  • Unified Globus Toolkit 2.4 (cross platform)

    • Prelude to OGSI integration

  • Integration of Voyager in AG2.0

    • Reimplementation of voyager recording and playback services

  • Expand media formats

  • Integrate camera control

End of presentation

End of Presentation

Thanks for coming!

This work has been funded by the U.S. Department of Energy’s Office of Science, the National Science Foundation’s NMI Program, and Microsoft Research.