next up previous contents
suivant: Présentation de mes travaux monter: Activités de recherche précédent: Activités de recherche   Table des matières

Présentation générale

Mes travaux de recherches concernent l'algorithmique distribuée résistant aux défaillances. Ce domaine de recherche est relativement nouveau et a connu de nombreux développements aux cours des dernières années. Le champ de l'algorithmique distribuée est très vaste : un système d'enchères internationales sur Internet est un système distribué tout comme l'est aussi un système de pilotage d'un avion l'est aussi. Dans ces deux cas, pour des raisons différentes, le problème des défaillances et des pannes est crucial.

Dans ce cadre, un problème fondamental est celui de l'accord : comment arriver en présence de défaillances à un consensus entre les processus sur une certaine valeur. Un résultat fondamental prouve que, dans le cas de systèmes asynchrones, un tel accord est impossible à atteindre dès qu'au moins un processus tombe en panne.

Pour l'essentiel mes travaux de recherches consistent à arriver à contourner ce résultat négatif. On peut pour cela restreindre le caractère asynchrone du modèle considéré. Mais on peut aussi maintenir le caractère asynchrone du modèle et essayer d'obtenir des informations sur les défaillances des processus. D'un point de vue pratique, c'est souvent ce que l'on fait en utilisant des time-out: si un processus ne répond pas assez vite, on considère qu'il est en panne. Cependant, l'information ainsi obtenue est imparfaite et peut être erronée. D'un point de vue plus théorique cette approche est celle des détecteurs de défaillances: un détecteur de défaillances est une abstraction qui fournit aux processus des informations sur les défaillances des processus. Un détecteur de défaillances encapsule la connaissance nécessaire sur les défaillances des processus.

Cette approche a l'avantage, d'une part, d'être rigoureuse et formalisable et, d'autre part, a de nombreuses implications pratiques. En déterminant quel est le détecteur de défaillances minimal pour résoudre un problème $P$, on détermine quelle est la connaissance minimale sur les défaillances pour résoudre $P$. On peut ensuite déterminer quelles sont les conditions qui doivent être assurées par le système sous-jacent pour assurer cette connaissance minimale sur les défaillances. Ensuite, on pourra étudier l'implémentation de ces détecteurs de défaillances dans ce système.

Par ailleurs, dans le cadre de plusieurs projets, j'ai travaillé sur les problèmes de conceptions et les aspects temps-réel des applications distribuées résistant aux pannes. Plusieurs de ces projets ont utilisé et mis au point une méthode assez générale de conception permettant d'utiliser des algorithmes classiques et de définir des conditions de faisabilité qui permettent d'assurer la réalisation des applications. Concernant le temps-réel, les problèmes d'ordonnancement en présence de pannes correspondent à des problèmes d'accord.


next up previous contents
suivant: Présentation de mes travaux monter: Activités de recherche précédent: Activités de recherche   Table des matières
2004-04-07