Node Services Development
The Access Grid Architecture provides a comprehensive framework for virtual meetings through its Venue Server and Client components. The Venue Server acts as the central server for managing venues, while Venue Clients allow users to participate in these virtual meeting rooms. This system encompasses a variety of services and resources, facilitating capabilities negotiation, configuration management, and interaction through SOAP interfaces. The architecture enables aggregation of hardware and software, supporting seamless collaboration across diverse platforms.
Node Services Development
E N D
Presentation Transcript
Node ServicesDevelopment Thomas D. Uram turam@mcs.anl.gov Argonne National Laboratory
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
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
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
Operation • Resources • Resources represent something the machine can make available (e.g. video capture device) • When a service is added, it may have a resource assigned to it
Operation Venue • Service Capabilities • The capabilities of the node are collected and passed to the venue • Capabilities are currently defined with the following attributes: • role (e.g. producer, consumer) • type (video) • codec (h261, dv) • rate • channels Capabilities Venue Client Capabilities (aggregated from services) Node
Operation Venue StreamDescriptions • 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 Capabilities Venue Client Capabilities (aggregated from services) Node
Operation Venue StreamDescriptions • 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) Capabilities Venue Client StreamDescriptions Capabilities (aggregated from services) Node Update AGServices
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
Configuration • The Node Management user interface includes code to represent parameters for editing TextParameter } OptionSetParameter } RangeParameter
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
Other • Logging • Services derived from AGService automatically create a logfile in AccessGrid3/Logs, based on Service class name
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 (similar to shared applications): • runag3.py agpm3.py -z ServicePackage.zip • Service packages are extracted to a temporary directory, subject to their version
Packaging • Sample service description file [ServiceDescription] name = DebugService description = 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
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
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
Exercise: ClientAnnouncerService • Service to announce presence • Sends user’s name over a multicast group • Watch for your name to appear on the ClientViewer
Exercise: ClientAnnouncerService • Retrieve Venue URL from VenueClient • Send Venue URL with name • Use fixed multicast address, to share presence data across Venues