Node Services Development - PowerPoint PPT Presentation

About This Presentation
Title:

Node Services Development

Description:

Parameter values can be used when the service is started. Configuration data is persisted in saved node configuration files. ConfigParser format ... – PowerPoint PPT presentation

Number of Views:14
Avg rating:3.0/5.0
Slides: 20
Provided by: tomu5
Learn more at: https://www.mcs.anl.gov
Category:

less

Transcript and Presenter's Notes

Title: Node Services Development


1
Node ServicesDevelopment
  • Thomas D. Uram
  • turam_at_mcs.anl.gov
  • Argonne National Laboratory

2
Access Grid Architecture
VenueServer
  • VenueServer
  • Server component for Venues
  • Venue
  • Virtual representation of a meeting room
  • VenueClient
  • User software for entering a Venue
  • Node
  • Aggregation of hardware and software for
    participating in a meeting

Venue
Venue
Venue
Venue Client
Node
3
Node Architecture
Node
  • NodeService
  • Aggregates ServiceManagers
  • Manages node configurations
  • ServiceManager
  • Exposes available machine resources
  • Manages AGServices
  • AGService
  • Interface for controlling access to machine
    resources
  • Exposes service configuration interface

Node Service
Service Manager
AGService
4
Overview
  • Expose machine resources
  • Describe available resources (e.g. video card)
  • Provide configuration layer
  • Describe available configuration parameters (e.g.
    video quality level)
  • Accept configuration of those parameters
  • Provide service abstraction
  • Services are controlled over SOAP interface, so
    could be written in any language with an
    interoperable SOAP implementation

5
Operation
  • Resources
  • Resources represent something the machine can
    make available (e.g. video capture device)
  • Resources are currently defined with only type
    and role attributes (e.g. typevideo,
    roleproducer)
  • When a service is added, it may have a resource
    assigned to it

6
Operation
Venue
Client Profile (incl. Capabilities)
  • Service Capabilities
  • The capabilities of the node are collected and
    passed to the venue
  • Capabilities are currently defined with only type
    and role attributes (e.g. typevideo,
    roleproducer)

Venue Client
Capabilities (aggregated from services)
Node
7
Operation
Venue State (incl. StreamDescs)
Venue
Client Profile (incl. Capabilities)
  • Capabilities Negotiation
  • The capabilities of the node are collected and
    passed to the venue
  • The venue allocates a stream (multicast group)
    for each producer capability of a yet
    non-existent type
  • The venue returns a stream (multicast group) for
    each existing consumer capability type
  • The returned streams are passed down to the
    services

Venue Client
Capabilities (aggregated from services)
Node
8
Operation
Venue State (incl. StreamDescs)
Venue
Client Profile (incl. Capabilities)
  • Stream Descriptions
  • The venue returns a stream description (multicast
    group) for each existing consumer capability type
  • The returned stream descriptions are passed down
    to the services
  • Service configure for the given streams
    (typically passing the contained multicast groups
    to media tools)

Venue Client
StreamDescriptions
Capabilities (aggregated from services)
Node
Update AGServices
9
Configuration
  • Services may have a set of configurable
    parameters that control their operation
  • For example video quality level, audio input
    gain
  • Configuration parameters are defined in terms of
    types from AGParameter.py
  • ValueParameter
  • TextParameter
  • OptionSetParameter
  • RangeParameter
  • Basic handling of parameters is performed in
    AGService

10
Configuration
  • The Node Management user interface includes code
    to represent parameters for editing

TextParameter

OptionSetParameter

RangeParameter
11
Configuration
  • Parameter values can be used when the service is
    started
  • Configuration data is persisted in saved node
    configuration files
  • ConfigParser format
  • Stored in AccessGrid/nodeConfig

12
Other
  • Logging
  • Services derived from AGService automatically
    create a logfile in AccessGrid/Logs, based on
    Service class name

13
Packaging
  • A service is delivered in a service package, a
    zip-file containing the Python implementation, a
    service description file, and any supporting
    implementation files
  • A service description file (.svc) contains
    information presented to the user before adding
    the service
  • Service packages are installed using agpm.py
    (similar to shared applications)
  • agpm.py -z ServicePackage.zip
  • Service packages are extracted to a temporary
    directory, subject to their version

14
Packaging
  • Sample service description file

ServiceDescription name DebugService descripti
on Example Debug Service capabilities
Capability1 Capability2 Capability3 executable
DebugService.py platform neutral version
1.0 Capability1 role consumer type
audio Capability2 role consumer type
video Capability3 role producer type debug
15
AGService API
16
AGService API
  • AGServices are typically exposed using the
    AGServiceIW interface, but can specialize it to
    their needs

17
Calls from Toolkit
  • On Enter
  • GetCapabilities()
  • Called during aggregation of capabilities from
    AGServices
  • ConfigureStream(StreamDescription)
  • Called to set the stream the AGService should use
  • Ignores trivial stream changes
  • On Exit
  • Stop()
  • Called to stop the AGService
  • Other
  • Start()
  • Not called explicitly
  • Typically called from ConfigureStream

18
Example DebugService
  • Basic service that
  • logs messages in response to various calls to it
  • defines debug parameter which can be set through
    configuration interface
  • Review log file (DebugService.log) for proper
    operation

19
Exercise ClientAnnouncerService
  • Service to announce presence
  • Sends users name over a multicast group
  • Watch for your name to appear on the ClientViewer

20
Exercise ClientAnnouncerService
  • Retrieve Venue URL from VenueClient
  • Send Venue URL with name
  • Use fixed multicast address, to share presence
    data across Venues
Write a Comment
User Comments (0)
About PowerShow.com