apan advanced network conference august 26 2003
Download
Skip this Video
Download Presentation
APAN Advanced Network Conference August 26, 2003

Loading in 2 Seconds...

play fullscreen
1 / 125

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


  • 98 Views
  • 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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 [email protected] 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
summary of changes from 1 x to 2 0
1.0

Virtual Venues

Static Media Configurations

Assumed Multicast Technology

Single Server assumption

Virtual Venues Client

Web Browser

Nodes

Non-extensible single reference platform

AG 1.1 1.2 PIGs introduced

Applications layered outside of AG software

2.0

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

Nodes defined in terms of resources

Management UI

Interfaces exposed for building new Services

Broader set of Reference Platforms

Applications

Venue Hosted Collaborative Apps

Network Services

Summary of Changes from 1.x to 2.0
summary of changes from 2 0 to 2 1
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

Nodes

Node Setup Wizard

Node Service Examples

Applications

Completed Shared Presentation Viewer

Network Services

2.0

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

Nodes defined in terms of resources

Management UI

Interfaces exposed for building new Services

Broader set of Reference Platforms

Applications

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
installation1
Installation
  • 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:

http://www.mcs.anl.gov/fl/research/accessgrid/software/releases/2.1

python 2 2
Linux

Ships with RedHat 7.3, 8.0, and 9

Windows

ActiveState Python comes standard with Win32 extensions

Python 2.2
wxpython
Linux

Need wxGTK and wxPythonGTK

Windows

Only need wxPython

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

information

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)

Venue

Client Profile

(incl. Capabilities)

Venue Client

StreamDescriptions

Capabilities

Access Grid

Node

Update media

tools

network services
Network Services

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

X

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”.

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

[-h|--help]

[-d|--debug]

  • 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:[email protected]:/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

Service

Service

services

Simple Services:

  • Use Venues to advertise availability.
  • Complex Services:
  • Coordinate Authorization through Venue interfaces.
  • Add/Modify/Remove data to/from Venues.
Services
  • 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

Services

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:

application/x-ag-node-management

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:

nodemgmt

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

Venue

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

Venue State

(Including Application

Objects)

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

Venue

Application::

name=“SampleApp”

webServiceUri=https://…

channel = “<channelid>”

HandleEvent(“modifyText”,

{id, text})

  • appProxy.SetData(self.privateId, “textKey”, text)
  • Channel.Send (“modifyText”, {id, text})

SampleApp Client

#1

SampleApp Client

#2

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)

Venue

HandleEvent( “browse”,

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

Application::

name=“Shared Browser”

type=“SharedWeb”

webServiceUri=None

channel = “<channelid>”

Shared Browser Client

#2

HandleEvent( “browse”,

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

Channel.Send (“browse”,

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

Shared Browser Client

#3

Shared Browser Client

#1

Event Service

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

Venue

HandleEvent( “browse”,

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

url = appProxy.GetData(self.privateId,

“url”l)

Application::

name=“Shared Browser”

type=“SharedWeb”

webServiceUri=None

channel = “<channelid>”

Shared Browser Client

#2

HandleEvent( “browse”,

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

Shared Browser Client

#4

Channel.Send (“browse”,

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

appProxy.SetData(self.privateId,

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

Shared Browser Client

#3

Shared Browser Client

#1

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
design
Design

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

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”

agservice overview
AGService Overview

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

Video

Capture

AudioCapture/

Playback

Display

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

[ServiceDescription]

name = VideoProducerService

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

capabilities = Capability1

executable = VideoProducerService.py

platform = neutral

[Capability1]

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.

ad