Ce projet de recherche doctorale est publié a été réalisé par Marc Shapiro

Description d'un projet de recherche doctoral

Conception et réalisation d'applications collaboratives de partage de données mutables

Mots clés :

Résumé du projet de recherche (Langue 1)

Les applications ou systèmes collaboratifs permettent à un collectif d'utilisateurs de travailler ensemble sur des données partagées. Les éditeurs collaboratifs, les calendriers partagés, les systèmes de gestion de versions ou les réseaux sociaux en sont quelques exemples. Ces systèmes collaboratifs ont en commun des besoins de performance, de tolérance aux fautes et de passage à l'échelle. Pour répondre à ces exigences, s'impose une architecture distribuée et la réplication des données, ce qui soulève un problème de cohérence. Pour passer à l'échelle les applications doivent adopter le modèle de cohérence optimiste et partitionner leurs données, rendant difficile la tâche de conception et de réalisation d'une application collaborative. L'objectif de cette thèse est de faciliter la conception et la réalisation d'applications collaboratives dans un contexte de réplication optimiste et partielle. Dans un premier lieu, je propose de rendre la réplication optimiste accessible aux programmeurs en cachant sa complexité et en factorisant les choix de conception communs. Or, les solutions mises en œuvre par les systèmes de collaboration existants sont spécifiques (ad-hoc) et difficilement réutilisables. Je propose donc l'utilisation d'un intergiciel générique, Telex, comme aide logique à la conception et comme support logiciel à la mise en œuvre d'applications collaboratives. Telex est basé sur un formalisme permettant de raisonner sur la sémantique applicative de collaboration, et se charge des aspects de réplication tels que la propagation des mises-à-jour, la détection et la résolution des conflits, et la réconciliation des répliques. Ensuite, à travers une application exemple (un calendrier partagé), j'examine le partitionnement de données sémantiquement interconnectées. La difficulté de ce travail tient à la façon de fragmenter les données tout en conservant les liens sémantiques de l'application. La solution que je propose permet la création dynamique de fragments, autorise des opérations multi-fragments, et gère la sémantique inter-fragments. Dans ce document, je présente la conception de cette structure et j'étudie son impact sur le passage à l'échelle et sur les mécanismes de maintien de la cohérence. Pour finir, j'esquisse une démarche générale pour faciliter la conception d'applications collaboratives, basée sur quelques techniques utilisées dans l'exemple, et j'étudie leur possible généralisation en une méthodologie et en patrons de conception.