1 / 19

Node Services Development

Node Services Development. 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

Download Presentation

Node Services Development

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Node ServicesDevelopment Thomas D. Uram turam@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) • When a service is added, it may have a resource assigned to it

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

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

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

  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 AccessGrid3/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 (similar to shared applications): • runag3.py agpm3.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 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

  15. AGService API

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

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

  18. Exercise: ClientAnnouncerService • Service to announce presence • Sends user’s name over a multicast group • Watch for your name to appear on the ClientViewer

  19. Exercise: ClientAnnouncerService • Retrieve Venue URL from VenueClient • Send Venue URL with name • Use fixed multicast address, to share presence data across Venues

More Related