Title: Node Services Development
1Node ServicesDevelopment
- Thomas D. Uram
- turam_at_mcs.anl.gov
- Argonne National Laboratory
2Access 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
3Node 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
4Overview
- 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
5Operation
- 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
6Operation
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
7Operation
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
8Operation
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
9Configuration
- 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
10Configuration
- The Node Management user interface includes code
to represent parameters for editing
TextParameter
OptionSetParameter
RangeParameter
11Configuration
- 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
12Other
- Logging
- Services derived from AGService automatically
create a logfile in AccessGrid/Logs, based on
Service class name
13Packaging
- 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
14Packaging
- 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
15AGService API
16AGService API
- AGServices are typically exposed using the
AGServiceIW interface, but can specialize it to
their needs
17Calls 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
18Example 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
19Exercise ClientAnnouncerService
- Service to announce presence
- Sends users name over a multicast group
- Watch for your name to appear on the ClientViewer
20Exercise ClientAnnouncerService
- Retrieve Venue URL from VenueClient
- Send Venue URL with name
- Use fixed multicast address, to share presence
data across Venues