Real-World Choreographies

Saverio Giallorenzo 1, 2
2 FOCUS - Foundations of Component-based Ubiquitous Systems
CRISAM - Inria Sophia Antipolis - Méditerranée , DISI - Dipartimento di Informatica - Scienza e Ingegneria [Bologna]
Résumé : Depuis les débuts de l'Internet, les applications logicielles distribuées sont devenues l'une des forces principales du développement et de la croissance économique de notre société. Néanmoins, la programmation des systèmes distribués est typiquement difficile, les erreurs y étant nombreuses et compliqués à détecter. Les programmeurs s'efforcent d'implémenter correctement des composants séparés qui, rassemblés, agissent selon un protocole convenu. Si un composant ne respecte pas le protocole, il pourrait bloquer le système ou le faire mal se comporter. S'assurer que tous les éléments suivent correctement le protocole voulu est très difficile à cause du non-déterminisme inhérent des programmes distribués. Cela a amené les programmeurs et les chercheurs à explorer de nouveaux outils pour aider au développement des systèmes distribués. Les chorégraphies sont l'un de ces outils. Elles ont été introduites pour décrire d'un point de vue global les échanges de messages entre les composants d'un système distribué. De plus, comme elles décrivent des communications atomiques (et non composées d'entrées/sorties), elles sont, par construction, libres de tous blocages (deadlocks) et de situations de compétitions (race conditions). Des résultats théoriques récents prouvent qu'il est possible de définir des fonctions, nommés de Endpoint Projection (EPP), pour compiler les spécifications chorégraphiques vers leur composantes individuelles. Comme les EPPs préservent les comportements, ces composantes individuelles sont elles mêmes libres de blocages et de compétitions. Certains de ces résultats ont été implémentés, mais il reste encore beaucoup de travail pour faire des chorégraphies un outil qui convient à la programmation sur le terrain. Le but de cette thèse est de formaliser les caractéristiques non triviales des systèmes distribués avec les chorégraphies et de traduire nos résultats théoriques vers la pratique des systèmes implémentés. À cette fin, cette thèse apporte deux principales contributions. La première aborde un des problèmes les plus difficiles de la programmation distribuée: le développement de systèmes qui modifient leur propre comportement en cours d'exécution, d'une manière correcte et cohérente. En fait, il n'y a pas de standard pour structurer cette mise à jour d'applications distribuées en cours d'exécution. En outre, le non-déterminisme des systèmes distribués conduit facilement à des mises à jour partielles et donc à des systèmes incohérents. Cette thèse présente un modèle théorique, nommé Dynamic Choreographies, qui permet une définition claire de quels composants et comportements du système distribué peuvent être mise à jour. Nous prouvons que les systèmes compilés à partir d'une définition chorégraphique sont corrects et cohérents après chaque mise à jour. Enfin, nous raffinons notre modèle théorique avec des constructions rendant possible un contrôle plus précis sur les mises à jour. Sur ce raffinement, nous implémentons un cadre pour la programmation de systèmes adaptatifs distribués. La deuxième contribution couvre un des principaux problèmes de l’implémentation des résultats théoriques sur les chorégraphies: la formalisation de la compilation des chorégraphies à des programmes exécutables. Les implémentations actuelles de langages chorégraphiques se distancient considérablement de leurs modèles théoriques: en théorie, les communications sont abstraites au moyen de la synchronisation sur les noms (comme dans le CCS et le pi-calcul), alors qu'en pratique elles sont implémentées après compilation avec différentes politiques d'échange de messages, par exemple, en utilisant les données contenues dans les messages pour leur routage --- une technique appelée ``corrélation'' et typique du Service-Oriented Computing. La discontinuité entre implémentations et modèles théoriques rompt la chaîne de preuve de correction des chorégraphie aux systèmes implémentés. Ce thèse présente un modèle, nommé Applied Choreographies, qui formalise au niveau chorégraphique les politiques réelles des échanges des messages, en particulier ceux de la corrélation. Nous utilisons le modèle des Applied Choreographies pour identifier les problèmes théoriques fondamentaux et nous formalisons les principes à suivre pour le développement de d'implémentations correctes. Enfin, nous démontrons l'applicabilité de notre approche en définissant un compilateur prouvé correct des Applied Choreographies vers le calcul sur lequel est fondé le langage Jolie.
Type de document :
Thèse
Distributed, Parallel, and Cluster Computing [cs.DC]. Università degli studi di Bologna, 2016. English
Liste complète des métadonnées

Littérature citée [105 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/tel-01336757
Contributeur : Saverio Giallorenzo <>
Soumis le : lundi 27 juin 2016 - 09:16:27
Dernière modification le : samedi 27 janvier 2018 - 01:31:37
Document(s) archivé(s) le : mercredi 28 septembre 2016 - 10:26:53

Identifiants

  • HAL Id : tel-01336757, version 1

Collections

Citation

Saverio Giallorenzo. Real-World Choreographies. Distributed, Parallel, and Cluster Computing [cs.DC]. Università degli studi di Bologna, 2016. English. 〈tel-01336757〉

Partager

Métriques

Consultations de la notice

273

Téléchargements de fichiers

133