Thèse de Pablo Adrian Tesone

Mise à jour dynamique pour environnements de production et programmation interactive

Mettre à jour des applications durant leur exécution est utilisé aussi bien en production pour réduire les temps d’arrêt des applications que dans des environnements de développement interactifs (IDE pour live programming). Toutefois, ces deux scénarios présentent des défis différents qui font que les solutions de mise à jour dynamique (DSU pour Dynamic Software Updating) existantes sont souvent spécifiques à l’un des deux. Par exemple, les DSUs pour la programmation interactive ne supportent généralement pas la détection automatique de points sûrs de mise à jour ni la migration d’instances, alors que les DSUs pour la production nécessitent une génération manuelle de l’ensemble des modifications et manquent d’intégration avec l’IDE. Les solutions existantes ont également une capacité limitée à se mettre à jour elles-mêmes ou à mettre à jour les bibliothèques de base du langage; et certaines d’entre elles introduisent même une dégradation des performances d’exécution en dehors du processus de mise à jour. Dans cette thèse, nous proposons un DSU (nommé gDSU) unifié qui fonctionne à la fois pour la programmation interactive et les environnements de production. gDSU permet la détection automatique des points sûrs de mise à jour en analysant et manipulant la pile d’exécution, et o re un mécanisme réutilisable de migration d’instances afin de minimiser les interventions manuelles lors de l’application d’une migration. gDSU supporte également la mise à jour des bibliothèques du noyau du langage et du mécanisme de mise à jour lui-même. Ceci est réalisé par une copie incrémentale des objets à modifier et une application atomique de ces modifications. gDSU n’ffecte pas les performances globales de l’application et ne présente qu’une pénalité d’exécution lors processus de mise à jour. Par exemple, gDSU est capable d’appliquer une mise à jour sur 100 000 instances en 1 seconde. Durant cette seconde, l’application ne répond pas pendant 250 milli-secondes seulement. Le reste du temps, l’application s’exécute normalement pendant que gDSU recherche un point sûr de mise à jour qui consiste alors uniquement à copier les éléments modifiés. Nous présentons également deux extensions de gDSU permettant un meilleur support du développement interac- tif dans les IDEs : la programmation interactive transactionnelle et l’application atomique de reusinages (refactorings).

Jury

Rapporteurs : Christophe DONY
Professeur – LIRMM – Université de Montpellier Oscar NIERSTRASZ Professeur – University of Bern Examinatrice : Elisa GONZALEZ BOIX Professeur – Vrije Universiteit Brussel (VUB) Directeurs de thèse : Stéphane DUCASSE Directeur de Recherche – INRIA Lille Luc FABRESSE Professeur – IMT Lille Douai Co-Encadrants : Guillermo POLITO Docteur, Ingénieur de Recherche – CNRS Invités : Noury BOURAQADI Professeur – IMT Lille Douai Fabien DAGNAT Docteur, Enseignant-chercheur – IMT Atlantique

Thèse de l'équipe RMoD soutenue le 17 décembre 2018

Retour vers les autres thèses