Simplifier la création, la maintenance et l'évolution des APIs REST

Type de soutenance
Thèse
Date de début
Date de fin
Lieu
IRISA Rennes
Salle
Salle Aurigny
Orateur
Antoine CHERON (DiverSE)
Sujet

Simplifier la création, la maintenance et l'évolution des APIs REST.

Le World Wide Web est principalement composé de deux types de composants applicatifs : les applications et les services. Les applications, qu'elles soient des applications mobiles ou Web, c-a-d ayant vocation à être utilisées depuis un navigateur, ont en commun qu'elles sont une sorte de texte à trous et communiquent avec les services pour personnaliser l'application pour chaque utilisateur. C'est donc le service qui possède et gère les données. Pour rendre possible cette communication, les services rendent disponible des APIs suivant l'architecture REST.

La gestion du cycle de vie d'une API REST est alors un élément central du développement de systèmes dans le Web. La première étape de ce cycle de vie est la définition des exigences d'une API (fonctionnalité et propriétés logicielles). Ensuite, les technologies qui permettront de la concevoir, l'implémenter et la documenter sont choisies. Elle est ensuite implémentée et documentée puis mise en ligne. Dès lors, des applications peuvent l'utiliser. S'ensuit alors une phase de maintenance et d'évolution de l'API, dans laquelle les bogues sont corrigés et les fonctionnalités évolues pour s'adapter aux changements des attentes de ses utilisateurs.

Dans cette thèse, nous passons en revue les méthodes et technologies qui accompagnent le développeur au cours de ce cycle de vie. Nous identifions deux challenges restant sans réponse.

Premièrement, il existe de nombreuses technologies pour créer et documenter une API. Choisir les technologies les plus pertinentes pour un projet est une tâche difficile. Comme première contribution de cette thèse, nous établissons des critères permettant de comparer ces technologies. Ensuite, nous utilisons ces critères pour comparer les technologies existantes et proposons ainsi trois matrices de comparaison. Enfin, pour simplifier cette sélection, nous avons développé un assistant open-source disponible sur le Web, qui guide le développeur dans son choix.

Le second challenge que nous avons identifié est lié à la maintenance et l'évolution des APIs REST. La littérature existante ne permet pas de faire évoluer une API REST librement, sans risquer de rendre inopérantes les applications qui s'en servent (leurs clients). La seconde contribution de ce travail est une nouvelle approche à la co-évolution des APIs REST et de leurs clients. Nous avons identifié qu'en suivant 7 règles régissant la documentation de l'API et les données qu'elles renvoient en répondant à ses clients, il est possible de créer des interfaces utilisateur Web capable de s'adapter à la majorité des évolutions des APIs REST sans produire de bogues, ni les casser et sans même nécessiter la modification de leur code source.

Composition du jury
- Naouel Moha - Professeure à l’École de Technologie Supérieure de Montréal - Rapporteurs
- Philippe Merle - Chercheur à l’Institut National de Recherche en Informatique et en Automatique - Rapporteurs
- Yerom David - Bromberg Professeur à l’Université de Rennes 1 - Examinateurs
- Philippe Collet - Professeur à l’Université Côte d’Azur - Examinateurs
- Olivier Barais - Professeur à l’Université de Rennes 1 - Directeur de Thèse
- Johann Bourcier - Maître de conférences à l’Université de Rennes 1 - Co-dir. de thèse