Quality of Service (QoS) in the Eclipse Arrowhead Framework
As modern systems increasingly rely on service-oriented architectures (SOA) and distributed components, ensuring the quality of service (QoS) becomes a key challenge. Selecting the most suitable service provider is no longer only about functionality, but also about performance, reliability, and other quality-related factors.
In a recent presentation, Tamás Bordi (AITIA International Inc.) introduced how Quality of Service (QoS) is supported in the Eclipse Arrowhead Framework (version 5), providing mechanisms to incorporate quality considerations directly into service orchestration.
The Challenge of QoS in Distributed Systems
In service-oriented environments, systems are often developed and operated by different organizations, each with its own priorities. This creates a complex landscape where multiple dimensions of QoS must be considered, including:
- Performance
- Reliability
- Availability
- Security
- Domain-specific or business-related requirements
Managing these aspects consistently within a local cloud environment requires flexible and scalable solutions.
QoS Support in Arrowhead 5
Arrowhead 5 addresses QoS through two main mechanisms:
1. QoS-Aware Service Orchestration
QoS requirements can be included directly in the service orchestration request. This allows consumers to specify their expectations when requesting a service.
These requirements may include:
- Target QoS domain (e.g. performance)
- Type of evaluation (e.g. filtering or sorting providers)
- Domain-specific parameters
The orchestration process then takes these requirements into account when selecting suitable service providers.
2. QoS Evaluator Systems
To support QoS-based decision-making, Arrowhead introduces QoS evaluator systems. These systems:
- Collect QoS-related metrics
- Evaluate service providers based on defined criteria
- Filter or rank providers accordingly
Multiple QoS evaluators can be deployed within the same local cloud, each focusing on a specific domain.
Importantly, these evaluators expose a standardized interface, allowing the orchestrator to interact with them without needing to understand the underlying domain logic.
QoS-Driven Orchestration Process
When a consumer sends a request:
- The orchestrator identifies candidate service providers via the service registry
- Authorization checks are performed
- If QoS requirements are present, the orchestrator queries relevant QoS evaluators
- Providers are filtered or ranked based on QoS evaluation results
- The final orchestration result is returned to the consumer
This process ensures that service selection is not only functional but also quality-driven.
Device QoS Evaluator
As part of the Arrowhead ecosystem, an open-source device QoS evaluator has been introduced, focusing on performance-related metrics.
Its main responsibilities include:
- Measuring device-level performance metrics
- Calculating and storing time-series key performance indicators (KPIs)
- Mapping results to systems registered in the service registry
Measured Metrics
The device QoS evaluator supports:
- Round-trip time (RTT) measurements
- CPU usage
- Memory usage
- Network load
Basic measurements can be performed without additional setup. For more advanced monitoring, a lightweight agent can be deployed on devices to provide detailed system metrics.
Supporting Load Balancing
By continuously evaluating provider performance, the QoS evaluator enables more effective load balancing. When multiple service providers are available, the orchestrator can dynamically select the most suitable one based on current system conditions.
Flexible and Extensible Approach
A key strength of this approach is its flexibility:
- QoS evaluators can be custom-developed for specific domains
- Multiple evaluators can be combined in a single orchestration request
- QoS requirements can be tailored to different use cases
Future developments aim to allow QoS requirements to be defined not only at the consumer level, but also at the service or local cloud level, simplifying configuration and reuse.
Watch the Full Presentation
For a detailed explanation and examples, watch the full presentation by Tamás Bordi:
👉 https://youtu.be/cC8RBmAREZY
Acknowledgment
This development is part of the Eclipse Arrowhead framework and the Arrowhead fPVN project (Grant Agreement No. 101111977), and has been supported by the AIMS5.0 project. This project has received funding from the Chips Joint Undertaking (Chips JU) and its members, including top-up funding by Finland, Denmark, Sweden, Spain, Italy, Romania, Portugal, Hungary, and France.