Walter Rudametkin (Maître de conférences - Spirals)
Lionel Seinturier (Professeur - Spirals)
Spirals Research Group
Inria Lille - Nord Europe
Parc Scientifique de la Haute Borne
40, avenue Halley - Bat. B, Park Plaza
59650 Villeneuve d'Ascq – FRANCE
Les domaines de recherche actuels, tels que l’informatique ubiquitaire [1] et l’informatique en nuage (Cloud Computing), considèrent que ces environnements d’exécution sont en changement continu. Les applications dynamiques, où les composants peuvent être ajoutés ou supprimés pendant l’exécution, permettent à un logiciel de s’adapter et de s’ajuster à l’évolution des environnements, et de tenir compte de l’évolution du logiciel. Malheureusement, les applications dynamiques soulèvent des questions de conception et de développement qui n’ont pas encore été pleinement explorées.
Dans ce contexte, ce sujet de recherche porte sur la définition d'une plateforme d'analyse et de comparaison d'architectures logicielles selon des propriétés fonctionnels et extra-fonctionnels, et sur la gestion de l'application à l'exécution. L'objectif est d'instancier l'architecture la mieux adaptée pour un contexte d'exécution donné, et de changer l'architecture de l'application suite à des changements imprévus, tout en minimisant l'impact de cette migration.
Nous souhaitons privilégier deux pistes de recherche. Tout d'abord en termes statique, nous souhaitons orienter le travail vers la définition d'une modélisation des architectures logicielles permettant d’étudier les points de variabilité et leurs optimisabilité, par exemple en envisageant des solutions à base de lignes de produits logiciels (SPL pour Software Product Line) [2] et l'utilisation des algorithmes d'exploration et optimisation [3]. Deuxièmement, en termes dynamique, nous souhaitons pouvoir concevoir des solutions permettant la mise à jour à chaud de l'application, en cours d'exécution, et sa gestion continue cherchant l'optimalité. Les solutions développées dans [4] et [5] pourront servir de base à ce travail.
Le sujet utilisera les technologies suivants : Java SE, OSGi, iPOJO, Eclipse Modelling Framework (EMF), Microsoft Azure, Amazon EC2, Kevoree Modelling Framework (KMF).
À la fin de ce stage l'étudiant aura des compétences théoriques et pratiques avec des technologies très recherchés en industrie et en académie, tels que le Cloud Computing, OSGi et la modularité en Java, middleware adaptatif, et Model-Driven Engineering.
[1] Gregory D. Abowd and Elizabeth D. Mynatt. 2000. Charting past, present, and future research in ubiquitous computing. ACM Trans. Comput.-Hum. Interact. 7, 1 (March 2000), 29-58.
[2] Klaus Pohl, Günter Böckle, and Frank J. van der Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag, 2005.
[3] Mark Harman, S. Afshin Mansouri, and Yuanyuan Zhang. 2012. Search-based software engineering: Trends, techniques and applications. ACM Comput. Surv. 45, 1, Article 11 (December 2012), 61 pages.
[4] G. S Blair, N. Bencomo, and R B. France. Models@ run.time. IEEE Computer, 42(10):22-27, 2009.
[5] Automated Selection and Configuration of Cloud Environments Using Software Product Lines Principles. Clément Quinton, Daniel Romero and Laurence Duchien. In Proceedings of the 7th IEEE International Conference on Cloud Computing, CLOUD'14 . Anchorage, Alaska (USA), 27-02 June/July 2014.