Auteur / Autrice : | Benjamin Benni |
Direction : | Sébastien Mosser, Michel Riveill |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 09/12/2019 |
Etablissement(s) : | Université Côte d'Azur (ComUE) |
Ecole(s) doctorale(s) : | École doctorale Sciences et technologies de l'information et de la communication (Sophia Antipolis, Alpes-Maritimes) |
Partenaire(s) de recherche : | établissement de préparation : Université de Nice (1965-2019) |
Laboratoire : Laboratoire Informatique, signaux et systèmes (Sophia Antipolis, Alpes-Maritimes) - Scalable and Pervasive softwARe and Knowledge Systems | |
Jury : | Président / Présidente : Claudine Peyrat |
Examinateurs / Examinatrices : Claudine Peyrat, Olivier Barais, Gunter Mussbacher | |
Rapporteurs / Rapporteuses : Olivier Barais, Gunter Mussbacher, Lionel Seinturier |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
La complexité des systèmes informatiques a rendu nécessaire leur découpage avant de les recomposer. Cette séparation est un défi connu et les développeurs découpent déjà les tâches au préalable. Néanmoins, séparer sans considérer la recomposition finale entraine des réunifications hâtives et chronophages. Cette composition doit mener au bon et meilleur système avec le minimum d'effort humain. Les opérateurs de composition sont souvent ad-hoc et développés par des non-spécialistes. Ils ne respectent pas de formalismes de haut-niveau et deviennent trop complexes ou informels pour pouvoir raisonner. Nous les appelons des "boites-noires": les techniques nécessitant d'en connaitre l'intérieur ne peuvent être appliquées. Or, ces boites noires doivent garantir des propriétés : d'aucun doit vérifier son idempotence pour l'utiliser dans un contexte distribué ; connaitre son temps d'exécution pour des systèmes réactifs ; vérifier des conflits pour le confronter à des règles d'entreprise. Aucun de ces besoins n'est spécifique à un domaine applicatif. Dans cette thèse, nous présentons une approche indépendante du domaine qui permet, sur des opérateurs existants, (i) de raisonner sur des équations de composition pour (ii) les composer en sécurité, en (iii) proposant une vérification de propriétés similaires à celles de l’état de l’art. Nous avons validé cette approche sur des domaines différents : 19 versions du noyau Linux avec 54 règles de réécriture, réparé 13 « antipatrons » dans 22 applications Android et validé son efficacité sur la composition de 20k images Docker.