Quality of Service (QoS) in Gaia covers the life cycle of component-based QoS-aware application development and deployment. In the development phase, we provide the visual QoS programming environment (QoSTalk) which allows an application developer to develop a QoS-aware application via a uniform set of QoS specifications. The Q-Compiler, then, compiles these QoS specifications into the QoS-enabled meta information, including different application’s possible delivery forms, their middleware service association, resource requirements, and adaptation policies, that can be used effectively during the application deployment. In the deployment phase, we provide the core Gaia QoS services to manage and ensure the service quality for the application execution.
Gaia QoS Services
- Registers all kinds of entities recognizable to an active space, including users/devices/applications;
- automatically processed when an unknown entity enters;
- registration data stored in the database (Component Repository);
- Establishes relations among entities and specifies some of their parameters;
- After expiration, the registration data may be automatically erased.
Application-specific QoS-aware Configuration Selection Service
- Selects the most suitable application-specific configuration to be instantiated in an active space, based on the compiled QoS-enabled meta information in QoSCASpec, the location discovery service, and the active space’s current resource availability.
Location Discovery Service
- Discovers the possible (a) instances of required service components in the configuration, or (b) hosts to instantiate a service component, based on Trading Service, and Space Repository
- Discovers the best host to instantiate a service component, based on different discovery algorithms (e.g., MeGaDip protocol for discovering the media gateway location).
Resource Monitoring Service
- Monitors the current availability of system resources in the distributed machines in an active space via different resource-specific monitoring services;
- Allows the active space administrator to monitor the space’s resource availability via user-friendly GUIs;
- Provides APIs which can be used to query the current resource availability.
DSRT Remote Monitoring Service
- Monitoring built into DSRT – clients can use extended API or use CORBA interface;
- Extended API – calls added to allow clients to query servers on remote machines;
- CORBA interface provided for Gaia – CORBA server maintains cached information clients contact this server.
Application-specific Configuration Instantiation Service
- Instantiates an application-specific configuration into the active space.
Middleware-specific Configuration Service (Mobiman)
- Dynamically reconfigures the middleware system (run-time component discovery, downloading, deployment and cleanup) to support overlying applications.
Resource Management Service
- Delivers soft real-time guarantees to multimedia applications in general-purpose, dynamic hardware environment.
More details: DSRT CPU Scheduler
QoS Adaptation Service
- Controls and manages the QoS adaptations (a) within the same configuration, and (b) among the available configurations of an application in the active space.
Resource Probing/Profiling Service
- Probes and profiles the distributed system resource requirements for each application-specific configuration, based on resource-specific probing APIs instrumented in each individual application service component’s code; and resource monitoring service for the long term profiling.
Gaia QoS Service Interactions
Gaia QoS Services assisting in Q-Compiler’s Resource Translation
Gaia QoS Services assisting in QoS Setup and Adaptations
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.