544 research outputs found
DynCNET: a negotiation and coordination protocol for dynamic task assignment.
Task assignment in Multi-Agent Systems is a complex coordination problem, especially in systems that operate under dynamic and changing conditions. Adaptive task assignment is used to handle these dynamic and changing circumstances. This technical document describes an adaptive task assignment protocol, DynCNET which is an extension of the Contract Net Protocol. In this document, the DynCNET protocol will be build step by step, starting from the Contract Net protocol. We will add dynamic task assignment, synchronization of abort messages and scope handling. The final result will be the DynCNET protocol with support for synchronization of abort messages and scope handling.
A Case Study on Formal Verification of Self-Adaptive Behaviors in a Decentralized System
Self-adaptation is a promising approach to manage the complexity of modern
software systems. A self-adaptive system is able to adapt autonomously to
internal dynamics and changing conditions in the environment to achieve
particular quality goals. Our particular interest is in decentralized
self-adaptive systems, in which central control of adaptation is not an option.
One important challenge in self-adaptive systems, in particular those with
decentralized control of adaptation, is to provide guarantees about the
intended runtime qualities. In this paper, we present a case study in which we
use model checking to verify behavioral properties of a decentralized
self-adaptive system. Concretely, we contribute with a formalized architecture
model of a decentralized traffic monitoring system and prove a number of
self-adaptation properties for flexibility and robustness. To model the main
processes in the system we use timed automata, and for the specification of the
required properties we use timed computation tree logic. We use the Uppaal tool
to specify the system and verify the flexibility and robustness properties.Comment: In Proceedings FOCLASA 2012, arXiv:1208.432
UNDERSEA : An Exemplar for Engineering Self-Adaptive Unmanned Underwater Vehicles
Recent advances in embedded systems and underwater communications raised the autonomy levels in unmanned underwater vehicles (UUVs) from human-driven and scripted to adaptive and self-managing. UUVs can execute longer and more challenging missions, and include functionality that enables adaptation to unexpected oceanic or vehicle changes. As such, the simulated UUV exemplar UNDERSEA introduced in our paper facilitates the development, evaluation and comparison of self-adaptation solutions in a new and important application domain. UNDERSEA comes with predefined oceanic surveillance UUV missions, adaptation scenarios, and a reference controller implementation, all of which can easily be extended or replaced
mRUBiS: An Exemplar for Model-Based Architectural Self-Healing and Self-Optimization
Self-adaptive software systems are often structured into an adaptation engine
that manages an adaptable software by operating on a runtime model that
represents the architecture of the software (model-based architectural
self-adaptation). Despite the popularity of such approaches, existing exemplars
provide application programming interfaces but no runtime model to develop
adaptation engines. Consequently, there does not exist any exemplar that
supports developing, evaluating, and comparing model-based self-adaptation off
the shelf. Therefore, we present mRUBiS, an extensible exemplar for model-based
architectural self-healing and self-optimization. mRUBiS simulates the
adaptable software and therefore provides and maintains an architectural
runtime model of the software, which can be directly used by adaptation engines
to realize and perform self-adaptation. Particularly, mRUBiS supports injecting
issues into the model, which should be handled by self-adaptation, and
validating the model to assess the self-adaptation. Finally, mRUBiS allows
developers to explore variants of adaptation engines (e.g., event-driven
self-adaptation) and to evaluate the effectiveness, efficiency, and scalability
of the engines
SEAByTE: A Self-adaptive Micro-service System Artifact for Automating A/B Testing
Micro-services are a common architectural approach to software development
today. An indispensable tool for evolving micro-service systems is A/B testing.
In A/B testing, two variants, A and B, are applied in an experimental setting.
By measuring the outcome of an evaluation criterion, developers can make
evidence-based decisions to guide the evolution of their software. Recent
studies highlight the need for enhancing the automation when such experiments
are conducted in iterations. To that end, we contribute a novel artifact that
aims at enhancing the automation of an experimentation pipeline of a
micro-service system relying on the principles of self-adaptation. Concretely,
we propose SEAByTE, an experimental framework for testing novel self-adaptation
solutions to enhance the automation of continuous A/B testing of a
micro-service based system. We illustrate the use of the SEAByTE artifact with
a concrete example.Comment: SEAMS'22 artifact pape
Automating Pipelines of A/B Tests with Population Split Using Self-Adaptation and Machine Learning
A/B testing is a common approach used in industry to facilitate innovation
through the introduction of new features or the modification of existing
software. Traditionally, A/B tests are conducted sequentially, with each
experiment targeting the entire population of the corresponding application.
This approach can be time-consuming and costly, particularly when the
experiments are not relevant to the entire population. To tackle these
problems, we introduce a new self-adaptive approach called AutoPABS, short for
Automated Pipelines of A/B tests using Self-adaptation, that (1) automates the
execution of pipelines of A/B tests, and (2) supports a split of the population
in the pipeline to divide the population into multiple A/B tests according to
user-based criteria, leveraging machine learning. We started the evaluation
with a small survey to probe the appraisal of the notation and infrastructure
of AutoPABS. Then we performed a series of tests to measure the gains obtained
by applying a population split in an automated A/B testing pipeline, using an
extension of the SEAByTE artifact. The survey results show that the
participants express the usefulness of automating A/B testing pipelines and
population split. The tests show that automatically executing pipelines of A/B
tests with a population split accelerates the identification of statistically
significant results of the parallel executed experiments of A/B tests compared
to a traditional approach that performs the experiments sequentially
On the Need for Artifacts to Support Research on Self-Adaptation Mature for Industrial Adoption
Despite the vast body of knowledge developed by the self-adaptive systems
community and the wide use of self-adaptation in industry, it is unclear
whether or to what extent industry leverages output of academics. Hence, it is
important for the research community to answer the question: Are the solutions
developed by the self-adaptive systems community mature enough for industrial
adoption? Leveraging a set of empirically-grounded guidelines for
industry-relevant artifacts in self-adaptation, we develop a position to answer
this question from the angle of using artifacts for evaluating research results
in self-adaptation, which is actively stimulated and applied by the community.Comment: 18th Symposium on Software Engineering for Adaptive and Self-Managing
Systems (SEAMS 2023
Model-Based Simulation at Runtime for Self-Adaptive Systems
© 2016 IEEE. Modern software systems are subject to uncertainties, such as dynamics in the availability of resources or changes of system goals. Self-adaptation enables a system to reason about runtime models to adapt itself and realises its goals under uncertainties. Our focus is on providing guarantees for adaption goals. A prominent approach to provide such guarantees is automated verification of a stochastic model that encodes up-to-date knowledge of the system and relevant qualities. The verification results allow selecting an adaption option that satisfies the goals. There are two issues with this state of the art approach: i) changing goals at runtime (a challenging type of uncertainty) is difficult, and ii) exhaustive verification suffers from the state space explosion problem. In this paper, we propose a novel modular approach for decision making in self-adaptive systems that combines distinct models for each relevant quality with runtime simulation of the models. Distinct models support on the fly changes of goals. Simulation enables efficient decision making to select an adaptation option that satisfies the system goals. The tradeoff is that simulation results can only provide guarantees with a certain level of accuracy. We demonstrate the benefits and tradeoffs of the approach for a service-based telecare system.status: publishe
Lifelong Self-Adaptation: Self-Adaptation Meets Lifelong Machine Learning
In the past years, machine learning (ML) has become a popular approach to
support self-adaptation. While ML techniques enable dealing with several
problems in self-adaptation, such as scalable decision-making, they are also
subject to inherent challenges. In this paper, we focus on one such challenge
that is particularly important for self-adaptation: ML techniques are designed
to deal with a set of predefined tasks associated with an operational domain;
they have problems to deal with new emerging tasks, such as concept shift in
input data that is used for learning. To tackle this challenge, we present
\textit{lifelong self-adaptation}: a novel approach to self-adaptation that
enhances self-adaptive systems that use ML techniques with a lifelong ML layer.
The lifelong ML layer tracks the running system and its environment, associates
this knowledge with the current tasks, identifies new tasks based on
differentiations, and updates the learning models of the self-adaptive system
accordingly. We present a reusable architecture for lifelong self-adaptation
and apply it to the case of concept drift caused by unforeseen changes of the
input data of a learning model that is used for decision-making in
self-adaptation. We validate lifelong self-adaptation for two types of concept
drift using two cases.Comment: This paper has been accepted in "Software Engineering for Adaptive
and Self-Managing Systems" (SEAMS) 202
From Self-Adaptation to Self-Evolution Leveraging the Operational Design Domain
Engineering long-running computing systems that achieve their goals under
ever-changing conditions pose significant challenges. Self-adaptation has shown
to be a viable approach to dealing with changing conditions. Yet, the
capabilities of a self-adaptive system are constrained by its operational
design domain (ODD), i.e., the conditions for which the system was built
(requirements, constraints, and context). Changes, such as adding new goals or
dealing with new contexts, require system evolution. While the system evolution
process has been automated substantially, it remains human-driven. Given the
growing complexity of computing systems, human-driven evolution will eventually
become unmanageable. In this paper, we provide a definition for ODD and apply
it to a self-adaptive system. Next, we explain why conditions not covered by
the ODD require system evolution. Then, we outline a new approach for
self-evolution that leverages the concept of ODD, enabling a system to evolve
autonomously to deal with conditions not anticipated by its initial ODD. We
conclude with open challenges to realise self-evolution.Comment: 7 page
- …
