Chemical computing for distributed systems : algorithms and implementation (Programmation chimique pour les systèmes répartis : algorithmes et implémentation) Obrovac, Marko - (2013-03-28) / Université de Rennes 1, Université européenne de Bretagne Chemical computing for distributed systems : algorithms and implementation
| |||
Langue : Anglais Directeur(s) de thèse: Priol, Thierry; Tedeschi, Cédric Discipline : Informatique Ecole Doctorale : Mathématiques, informatique, signal, électronique et télécommunications Classification : Informatique Mots-clés : systèmes répartis, réseaux pair-à-pair structurés, modèle de programmation chimique
| |||
Résumé : Avec l’émergence de plates-formes distribuées très hétérogènes, dynamiques et à large-échelle, la nécessité d’un moyen de les programmer efficacement et de les gérer a surgi. Le concept de l’informatique autonomique propose de créer des systèmes autogérables — des systèmes qui sont conscients de leurs composants et de leur environnement, et peuvent se configurer, s’optimiser, se guérir et se protéger. Dans le cadre de la réalisation de tels systèmes, la programmation déclarative, dont l’objectif est de faciliter la tâche du programmeur en séparant le contrôle de la logique du calcul, a retrouvé beaucoup d’intérêt ce dernier temps. En particulier, la programmation à base de des règles est considérée comme un modèle prometteur dans cette quête pour des abstractions de programmation adéquates pour ces plates-formes. Cependant, bien que ces modèles gagnent beaucoup d’attention, ils créent une demande pour des outils génériques capables de les exécuter à large échelle. Le modèle de programmation chimique, qui a été conçu suite à la métaphore chimique, est un modéle de programmation à bas de règles et d’ordre supérieur, avec une exécution non-déterministe modèle, où les règles sont appliquées simultanément sur un multi-ensemble de données. Dans cette thèse, nous proposons la conception, le développement et l’expérimentation d’un intergiciel distribué pour l’exécution de programmes chimique sur des plates-formes à large échelle et génériques. L’architecture proposée combine une couche de communication pair-à-pair avec un protocole de capture atomique d’objets sur lesquels les règles doivent être appliquées, et un système efficace de détection de terminaison. Nous décrivons le prototype d’intergiciel mettant en œuvre cette architecture. Basé sur son déploiement dans un banc d’essai réel, nous présentons les résultats de performance, qui confirment les complexités analytiques obtenues et montrons expérimentalement la viabilité d’un tel modèle de programmation. Abstract : With the emergence of highly heterogeneous, dynamic and large distributed platforms, the need for a way to efficiently program and manage them has arisen. The concept of autonomic computing proposes to create self-manageable systems — systems which are aware of their components and their environment, and can configure, optimise, heal and protect themselves. In the context of realisation of such systems, declarative programming, whose goal is to ease the programmer’s task by separating the control from the logic of a computation, has regained a lot of interest recently. In particular, rule-based programming is regarded as a promising model in this quest for adequate programming abstractions for these platforms. However, while these models are gaining a lot of attention, there is a demand for generic tools able to run such models at large scale. The chemical programming model, which was designed following the chemical metaphor, is a higher-order, rule-based programming model, with a non-deterministic execution model, where rules are applied concurrently on a multiset of data. In this thesis, we propose the design, development, and experimentation of a distributed chemical runtime for generic, largely-distributed platforms. The architecture proposed combines a peer-to-peer communication layer with an adaptive protocol for atomically capturing objects on which rules should be applied, and an efficient termination-detection scheme. We describe the software prototype implementing this architecture. Based on its deployment over a real-world test-bed, we present its performance results, which confirm analytically obtained complexities, and experimentally show the sustainability of such a programming model. |