SPIRALS Research team
Self-adaptation for distributed services and large software systems
- Leader : Lionel Seinturier
- Type : Project team
- Research center(s) : Lille
- Field : Networks, Systems and Services, Distributed Computing
- Theme : Distributed Systems and middleware
- Partner(s) : Université des sciences et technologies de Lille (Lille 1)
- Collaborator(s) : E. CENTRALE LILLE, U. LILLE 1 (USTL), U. LILLE 3 (UCDG), CNRS, INRIA
Team presentationSpirals is conducting research activities in the domains of distributed systems and software sciences. We aim at introducing more automation in the adaptation mechanisms of software systems, in particular, transitioning from adaptive systems to self-adaptive systems. We target especially two properties: self-healing and self-optimization. With self-healing, we aim at studying and tailoring data mining and machine learning solutions to the design and implementation of software system, and more especially for software automatic repair. With self-optimization, we aim at sharing, collecting, and analyzing behaviors in a distributed setting to continuously tailor, optimize, and keep under working conditions software systems, and to go toward the goal of obtaining eternal distributed systems.
- Self-healing: Mining software artifacts to automatically evolve systems. Software systems are under the pressure of changes all along their lifecycle. Agile development blurs the frontier between design and execution and requires constant adaptation. The size of systems (millions of lines of code) multiplies the number of bugs by the same order of magnitude. More and more software systems live in "surviving" mode, in the sense that they are neither rebootable nor upgradable. We think that novel and innovative solutions can be found by using data mining and machine learning techniques tailored for software engineering. This body of research consists of mining some knowledge about a software system by analyzing the source code, the version control systems, the execution traces, documentation and all kinds of software development and execution artifacts in general. This knowledge is then used within recommendation systems for software development, auditing tools, runtime monitors, frameworks for resilient computing.
- Self-optimization: Sharing runtime behaviors to continuously adapt software. Complex distributed systems have to seamlessly adapt to a wide variety of deployment targets. This is due to the fact that developers cannot anticipate all the runtime conditions under which these systems are immersed. A major challenge for these software systems is to develop their capability to continuously reason about themselves and to take appropriate decisions and actions on the optimizations they can apply to improve themselves. The research contributions we envision within this area will therefore be organized as a reference model for engineering self-optimized distributed systems autonomously driven by adaptive feedback control loops, which will automatically enlarge their scope to cope with the complexity of the decisions to be taken. The research program for this objective will therefore focus on the study of mechanisms for monitoring, taking decisions, and automatically reconfiguring software at runtime and at various scales.
Research teams of the same theme :
- COAST - Web Scale Trustworthy Collaborative Service Systems
- CTRL-A - Control for safe Autonomic computing systems
- DELYS - DistributEd aLgorithms and sYStems
- MIMOVE - Middleware on the Move
- MYRIADS - Design and Implementation of Autonomous Distributed Systems
- WHISPER - Well Honed Infrastructure Software for Programming Environments and Runtimes
- WIDE - the World Is Distributed Exploring the tension between scale and coordination