Thèse soutenue

ApAM : un environnement pour le développement et l'exécution d'applications ubiquitaires

FR  |  
EN
Auteur / Autrice : Elmehdi Damou
Direction : Jacky EstublierGermàn Eduardo Vega Baez
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 25/10/2013
Etablissement(s) : Grenoble
Ecole(s) doctorale(s) : École doctorale Mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 1995-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire d'informatique de Grenoble (2007-....)
Jury : Président / Présidente : Vivien Quéma
Examinateurs / Examinatrices : Jean-Yves Tigli, Charles Consel
Rapporteurs / Rapporteuses : Lionel Seinturier, Michel Riveill

Résumé

FR  |  
EN

Simplifier notre interaction avec les entités informatiques interconnectées de notre environnement et faciliter l'exploitation des informations générées par celles-ci est l'objectif des environnements et applications ubiquitaires. Le comportement des applications ubiquitaires dépend de l'état et de la disponibilité des entités (logicielles ou dispositifs) qui compose l'environnement ubiquitaire dans lequel ils évoluent, ainsi que des préférences et localisation des utilisateurs. Développer et exécuter des applications ubiquitaires est un véritable défi que notre approche essaie de relever au travers de l'environnement d'exécution ApAM. Considérant que l'environnement d'exécution est imprévisible, nous partons du principe qu'une application ubiquitaire doit disposer d'une grande flexibilité dans le choix de ses composants et que cette composition doit être automatique. Nous proposons une description abstraite et implicite de la composition (où les composants et les liens entre eux ne sont pas décrits explicitement), ce qui permet de construire l'application incrémentalement pendant la phase d'exécution. La plate-forme d'exécution ApAM implémente ces mécanismes de composition incrémentale et s'en sert pour conférer aux applications ubiquitaires la capacité de « résister » et de s'adapter aux changements imprévisibles de l'environnement d'exécution. Cette propriété dite de résilience est au cœur de notre approche car elle permet aux programmeurs de développer « simplement » des applications « résilientes » sans avoir à décrire les diverses adaptations à réaliser, et même sans connaitre toutes les perturbations de l'environnement auquel elles seront soumises. Notre proposition offre le moyen de développer et d'exécuter des applications ayant un haut niveau de résilience vis-à-vis des évolutions de leur contexte d'exécution, grâce à des mécanismes automatiques capables de construire et de modifier à l'exécution l'architecture logicielle des applications ubiquitaire. Les mécanismes fournis sont génériques mais peuvent être étendus et spécialisés pour s'adapter plus finement à certaines applications ou à des domaines métiers spécifiques.