Programming networks with intensional destinations
Programmation distribuée avec destinataires intentionnelles
Résumé
Distributed programming is a challenging task. It has tremendously gained importance with the wide development of networks, which support an exponentially increasing number of applications. Distributed systems provide functionalities that are ensured by nodes which form a network and exchange data and services possibly through messages. The provenance of the service is often not relevant, while its reliability is essential. Our aim is to provide a new communication model which allows to specify intensionally what service is needed as opposed to which nodes provide it. The intensional specification of exchanges offers a potential to facilitate distributed programming, to provide persistence of data in messages and resilience of systems, that constitute the topic of this thesis. We propose a framework that supports messages with intensional destinations, which are evaluated only on the fly while the messages are traveling. We introduce a rule-based language, Questlog, to handle the intensional destinations. In contrast to existing network rule-based languages, which like Datalog follow the push mode, Questlog allows to express complex strategies to recursively retrieve distributed data in pull mode. The language runs over a virtual machine which relies on a DBMS. We demonstrate the approach with examples taken from two domains: (i) data-centric architectures, where a class of restricted client-server applications are seamlessly distributed over peer-to-peer systems based on a DHT, and (ii) wireless sensor networks, where a virtual clustering protocol is proposed to aggregate data, in which cluster heads are elected using intensional destinations. Our simulations on the QuestMonitor platform demonstrates that this approach offers simplicity and modularity to protocols, as well as an increased reliability.
La programmation distribuée est une tâche difficile. Elle a énormément gagné en importance avec le développement des réseaux qui supportent un nombre croissant exponentiellement d’applications. Les systèmes distribués fournissent des fonctionnalités assurées par les noeuds qui forment un réseau et échangent des données et services, éventuellement par le biais de messages. La provenance du service n’est souvent pas pertinente, alors que sa fiabilité est essentielle. Notre objectif est de fournir un nouveau modèle de communication qui permet de spécifier intentionnellement lequel service est demandé, et non les noeuds qui le fournissent. Cette spécification intentionnelle des échanges offre un potentiel pour faciliter la programmation distribuée, garantir la persistance des données dans les messages et la résilience des systèmes, qui constituent le sujet de cette thèse. Nous proposons donc un cadre qui supporte des messages avec destinations intentionnelles, qui sont évaluées uniquement à la volée au fur et à mesure du déplacement des messages. Nous introduisons un langage, Questlog, qui gère les destinations intentionnelles. Contrairement aux langages à base de règles existants pour les réseaux, comme Datalog, qui suivent le mode push, Questlog permet d’exprimer des stratégies complexes afin de récupérer de manière récursive des données distribuées en mode pull. Le langage fonctionne sur une machine virtuelle qui s’appuie sur un SGBD. Nous démontrons l’approche avec des exemples pris dans deux domaines: (i) les architectures orientées données, où une classe restreinte d’applications client-serveur sont distribuées de manière transparente sur les systèmes pair-à-pair basés sur une DHT, (ii) les réseaux de capteurs sans fil, où un protocole de groupement des noeuds en clusters virtuels est proposé pour agréger les données. Dans ce protocole, les chefs des clusters sont élus à l’aide des destinations intentionnelles. Nos simulations sur la plate-forme QuestMonitor montre que cette approche offre une simplicité, une modularité aux protocoles, ainsi qu’une fiabilité accrue.
Domaines
Informatique et langage [cs.CL]Origine | Version validée par le jury (STAR) |
---|
Loading...