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:

  1. The orchestrator identifies candidate service providers via the service registry
  2. Authorization checks are performed
  3. If QoS requirements are present, the orchestrator queries relevant QoS evaluators
  4. Providers are filtered or ranked based on QoS evaluation results
  5. 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.