Apan advanced network conference august 26 2003
This presentation is the property of its rightful owner.
Sponsored Links
1 / 125

APAN Advanced Network Conference August 26, 2003 PowerPoint PPT Presentation


  • 56 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

APAN Advanced Network Conference August 26, 2003

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


Introduction to the access grid project

Introduction to the Access Grid Project


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


Ad hoc collaboration

Ad Hoc Collaboration


Interactive scientific computing

Interactive Scientific Computing


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


Ag world on a map

AG World on a map


Ag world on a slide

AG World on a slide


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 x overview

Access Grid 2.x Overview


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

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


Installation

Installation


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 tool1

Certificate Request Tool


Certificate request tool2

Certificate Request Tool


Certificate request tool3

Certificate Request Tool


Certificate request tool4

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


Configuration

Configuration


Node setup wizard

Node Setup Wizard


Node setup wizard1

Node Setup Wizard


Node setup wizard2

Node Setup Wizard


Node setup wizard3

Node Setup Wizard


Node setup wizard4

Node Setup Wizard


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


Putting it all together

Putting it all together


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


Break

BREAK


Administrator overview

Administrator Overview


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


Venueserver management

VenueServer Management


Venue server management1

Venue Server Management


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 management1

Venue Management


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


Developer overview

Developer Overview


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


How to integrate a service

How to integrate a 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

Service Integration Details


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 applications

Building Shared Applications


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


Typical application startup

Typical application startup


Example applications

Example Applications

  • Generic Shared Application

  • Shared Web Browser

  • Shared Presentation Viewer


Example generic shared application

Example Generic Shared Application


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


The shared web browser

The Shared Web Browser


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


Shared browser sample

Shared Browser sample


The shared presentation viewer

The Shared Presentation Viewer


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.


How to build node services

How to build Node Services


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.


  • Login