Self-Optimization of Software Systems Driven by the Wisdom of Crowds


Supervision

Host

ADAM Research Group
Inria Lille - Nord Europe
Parc Scientifique de la Haute Borne
40, avenue Halley - Bat. B, Park Plaza
59650 Villeneuve d'Ascq - FRANCE

Context

Inria, the national institute for research in computer science and control, is dedicated to fundamental and applied research in information and communication science and technology (ICST). Throughout its eight research centres located in seven major regions (Aquitaine, Bretagne, Lorraine, Île-de-France, Nord Pas-de-Calais, Provence Alpes Côte d’Azur, Rhône-Alpes), the Institute has a workforce of 3,700, 2,900 of whom are scientists from Inria and its partner organizations. Inria has an annual budget of 162 million euros, 20% of which comes from its own research contracts and development products. Inria develops many partnerships with industry and fosters technology transfer and company foundations in the field of ICST - some eighty companies have been funded. Startups are financed in particular by Inria Transfer, a subsidiary of Inria that supports four startup funds. The international collaborations are based on an incentive strategy of welcoming and recruiting foreign students as well as developing strong exchanges between research scientists. Priority is given to geographic zones with strong growth: Europe, Asia and North America while maintaining reasonable cooperation with South America, Africa and Middle-East.

ADAM is a project-team of the Inria Lille - Nord Europe research center. Members of the ADAM project-team are also part of the LIFL (Laboratoire d'Informatique Fondamentale de Lille) which is a joint unit between CNRS and the University of Lille 1. The objective of the ADAM (Adaptive Distributed Applications and Middleware) project-team is to provide a set of concepts, paradigms, approaches, frameworks, and tools based on advanced software engineering techniques such as CBSE (Component-Based Software Engineering), AOSD (Aspect-Oriented Software Development) or CAC (Context-Aware Computing) to build distributed adaptive software systems (applications and middleware) involving in multi-scale environments and to take into account the adaptation all along the software life-cycle. The ADAM project-team proposes solutions to manage the evolution of application requirements in terms of functional and extra-functional properties either at the level of execution platforms or at the design level. The ADAM project-team applies them to component-based and service-oriented computing distributed applications and platforms.


Project

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. This challenge encompasses research contributions in different areas, from environmental monitoring to realtime symptoms diagnosis, to automated decision making. The variety of distributed systems, the number of optimization parameters, and the complexity of decisions often resign the practitioners to design monolithic and static middleware solutions. However, it is now globally acknowledged that the development of dedicated building blocks does not contribute to the adoption of sustainable solutions. This is confirmed by the scale of actual distributed systems, which can—for example—connect several thousands of devices to a set of services hosted in the Cloud. In such a context, the lack of support for smart behaviours at different levels of the systems can inevitably lead to its instability or its unavailability.

The research contributions we envision within this area should 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. This solution introduces a multi-scale approach, which first privileges local and fast decisions to ensure the homeostasis property of a single node, and then progressively propagates symptoms in the network in order to reason on a longer term and a larger number of nodes. Ultimately, domain experts and software developers can be automatically involved in the decision process if the system fails to find a satisfying solution. The research program for this thesis will therefore focus on the study of mechanisms for monitoring, taking decisions, and automatically reconfiguring software at runtime and at various scales based on the wisdom of crowds. The objective is therefore to investigate the benefits of involving a large number of instances into a collaborative decision process to investigate and identify adaptation strategies based on experience faced by individuals.


Suitable Background

Applicants must have a degree in Computer Science, or in a related study, with excellent results. They must also be able to demonstrate interest in scientific research. You may apply if you have not yet completed your degree, but expect to do so before the position starts.

Inria and the University Lille 1 are equal opportunity employers. Knowledge of French is not a prerequisite for application. English is our working language for research. The current PhD students and postdocs in our group are coming from more than 6 different countries. We expect the candidate to be internationally oriented and willing to do, for example, summer internships abroad.


Salary

1,950.00 € gross per month (social protection and health care included)

Contact & Application

For more information, please contact Romain Rouvoy (ADAM @ Inria Lille – Nord Europe). Please provide a CV, list of publications, a research statement (1 to 4 pages), and at least two references (whom we will contact ourselves for a recommendation).


References

  1. Software Engineering for Self-Adaptive Systems: A Research Roadmap. B. Cheng et al. Software Engineering for Self-Adaptive Systems 2009:1-26
  2. AntDroid: A distributed platform for mobile sensing. N. Haderer, R. Rouvoy, L. Seinturier. [Research Report], 2012, pp. 27. RR-7885.
  3. Resource-Oriented Middleware Abstractions for Pervasive Computing. M. Caporuscio, M. Funaro, C. Ghezzi. SwSTE 2012:1–10.
  4. Actor-based runtime model of adaptable feedback control loops. F. Křikava, P. Collet, and R. France. In 7th Workshop on Models@run.time (MRT'12). ACM, 39-44.
  5. Playing MUSIC - building context-aware and self-adaptive mobile applications. J Floch et al. Softw., Pract. Exper. (SPE) 43(3):359-388 (2013)