Composition du Jury:

– Anne-Marie Kermarrec, Directeur de Recherche, INRIA, présidente
– Laurence Duchien, Professeur, Université de Lille 1, rapporteur
– Pascal Felber, Professeur, Université de Neuchâtel, rapporteur
– Rick Schlichting, Executive Director, Software Systems Research, AT&T Labs, rapporteur
– Jean-Charles Fabre, Professeur, INP Toulouse, examinateur
– Hugues Fauconnier, Maître de Conférence, Université Paris 7, examinateur
– Rachid Guerraoui, Professeur, École Polytechnique Fédérale de Lausanne, examinateur

Un pot sera organisé après la soutenance dans la salle Sein (B001).

Titre:

Programmation des grands systèmes distribués: quelques mécanismes, abstractions, et outils

Résumé:

À l’interface entre informatique distribuée et en génie logiciel, nous présentons trois contributions liées aux problématiques de réutilisation du logiciel dans trois cas représentatifs de systèmes distribués grande échelle: les réseaux logiques pair-à-pair, les protocoles épidémiques, et les intergiciels de grille. Les travaux que nous présentons portent sur trois problématiques différentes mais néanmoins liées de ces systèmes: la tolérance aux pannes modulaire (dans les réseaux pair-à-pair), la programmabilité des systèmes à composants (dans les protocoles épidémiques), et l’analyse interactive de performances (dans les intergiciels de grille).

Le message qui se dégage de nos travaux est double. Nos contributions démontrent tout d’abord en termes concrets l’intérêt d’abstractions logiciels réutilisables pour les systèmes distribués grande échelle. Nos travaux illustrent par ailleurs la tension inhérente entre réutilisation et complexité logicielle dans les plates-formes distribuées modernes. Notre travail sur les protocoles épidémiques montre par exemple comment une approche de développement par composants peut être combinée à un langage métier dédié pour une plus grande programmabilité. De même notre analyse d’un intergiciel de grille (Globus) illustre clairement les difficultés introduites par la réutilisation logicielle dans les plates-formes distribuées d’aujourd’hui, et comment ces difficultés peuvent être abordées dans le cas du diagnostic en combinant des principes de rétro-conception architecturale avec une analyse dynamique de performances.

Title:

Some Contributions to The Programming of Large-Scale Distributed Systems: Mechanisms, Abstractions, and Tools

Abstract:

At the interface between distributed computing and software engineering, we present three contributions that seek to help developers build better large-scale distributed computer systems. More precisely, we look a some key research problems related to software reuse in three representative instances of large-scale networked systems: peer-to-peer overlays, gossip-based protocols, and grid middleware. The work we present touches on three different, but interrelated, aspects of these systems: modular fault-tolerance (in peer-peer overlays), component-based development and programmability (in gossip-based protocols), and interactive performance analysis (in grid middleware).

The message emerging from our contributions is twofold: first we demonstrate in concrete terms that today’s large-scale distributed systems can greatly benefit from reusable software abstractions. Second, we also illustrate the inherent tension between high-reuse approaches and software complexity, and suggest possible avenues of improvement. Our work on gossip-based systems shows for instance how components can benefit from being combined to a more imperative programming paradigm. Similarly our study of a typical grid middleware exemplifies the difficulties introduced by high levels of reuse in modern distributed platforms, and how these difficulties can be mitigated by combining architectural reverse engineering with dynamic performance analysis.