Thèse soutenue

Abstractions et langages de programmation pour l’Internet des objets

FR  |  
EN
Auteur / Autrice : Patrik Fortier
Direction : Frédéric Le Mouël
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 22/05/2024
Etablissement(s) : Lyon, INSA
Ecole(s) doctorale(s) : École doctorale InfoMaths (Lyon ; 2009-....)
Partenaire(s) de recherche : Membre de : Université de Lyon (2015-....)
Laboratoire : CITI - Centre d'Innovation en Télécommunications et Intégration de services (Lyon, INSA) - CITI Centre of Innovation in Telecommunications and Integration of services / CITI
Jury : Président / Présidente : Philippe Roose
Examinateurs / Examinatrices : Frédéric Le Mouël, Philippe Roose, Stéphanie Chollet, Stéphane Ducasse, Yannick Loiseau, Julien Ponge
Rapporteurs / Rapporteuses : Stéphanie Chollet, Stéphane Ducasse

Résumé

FR  |  
EN

Les défis par l'Internet des objets (IoT) exigent des applications modernes qu'elles gèrent d'importants volumes de données provenant de réseaux de capteurs, qui sont ensuite traités, stockés et analysés. Les développeurs ont adopté l'architecture microservices pour répondre aux problèmes passage à l'échelle et faciliter un processus de livraison rapide des logiciels. Cependant, de nouveaux paradigmes tels que le Fog et l'Edge computing introduisent diverses ressources et configurations, ce qui oblige les développeurs à s'adapter à des environnements et des écosystèmes de plus en plus complexes. L'émergence des modèles Function-as-a-Service et Serverless a mis l'accent sur une simplification du code. Cependant, cela soulève des problématiques lorsque les développeurs créent désormais des applications pour des infrastructures sur lesquelles ils n'ont qu'un contrôle limité. Dans les environnements à ressources limitées tels que l'edge computing, les applications sont en concurrence pour les ressources. Par conséquent, les développeurs ont besoin d'outils adaptés avec des abstractions appropriées pour relever les défis modernes tout en réduisant la complexité des applications. Dans cette thèse, nous présentons des abstractions de langage de programmation adaptées au développement de logiciels distribués à l'ère de l'Internet des Objets. Nous avons consolidé ces abstractions dans un framework qui permet la construction d'applications distribuées de type “data flow'' sous la forme de microservices, le tout dans le même code source. Ce framework abstrait à la fois l'infrastructure sous-jacente sur laquelle les applications s'exécutent et la communication entre les services. Nous démontrons que notre approche n’introduit pas de surcoût encombrante et la comparons avec les plateformes Function-as-a-Service de l'industrie. Pour offrir un contrôle précis sur l'infrastructure, nous introduisons des primitives de langage et un moteur d'exécution local qui gère les informations contextuelles sur le cluster. En outre, nous introduisons l'entropie en tant que métrique de placement innovante pour les applications. Les développeurs peuvent dicter la manière dont ils souhaitent que leur application soit positionnée dans le cluster et comment elle doit répondre à des scénarios tels que la contention des ressources entre les applications partageant la même infrastructure. Ces techniques permettent à l'utilisateur de définir une politique de placement dynamique avec un haut niveau de granularité dans un environnement dont il n'a pas forcément le contrôle total.