Vers une programmation locale et distribuée unifiée au travers de l'utilisation de conteneurs actifs et de références asynchrones.
Thèses de doctorat
Date de soutenance
2004-11-08Résumé
Dans le domaine des systèmes distribués, la notion de mobilité du code est à l’origine de nombreux travaux visant à améliorer les performances des applications parallèles (processus légers mobiles), à faciliter le développement ...Lire la suite >
Dans le domaine des systèmes distribués, la notion de mobilité du code est à l’origine de nombreux travaux visant à améliorer les performances des applications parallèles (processus légers mobiles), à faciliter le développement d’applications (agents mobiles) ou à garantir la sécurité (cartes à puces). Dans ce contexte, nous montrons que les systèmes d’agents mobiles ont peu à peu disparu au profit de plates-formes d’exécution asynchrones. Nous présentons une nouvelle abstraction – appellée conteneur actif – qui est issue d’une modélisation en π-calcul d’un système d’agents mobiles, et qui semble être une brique de base avec laquelle les applications distribuées peuvent être conçues. Le développement d’une implémentation de cette abstraction en Java a fait apparaître un problème lié à la gestion de la concurrence dans les applications, distribuées ou non. Nous décrivons donc la notion de référence asynchrone – notre solution à ce problème – qui permet d’exprimer simplement la concurrence d’exécution dans une application. Notre implémentation en Java de ce concept facilite le développement des applications multithread ées et parallèles, en évitant le recours problématique aux threads par l’utilisation exclusive d’un unique paradigme : l’appel de méthode. Ce dernier peut se décliner en de multiples versions : synchrone, asynchrone, local ou distant. L’ensemble de nos travaux est disponible sous licence libre LGPL au sein d’une plateforme opérationnelle et documentée appellée Mandala qui est brièvement décrite.< Réduire
Résumé en anglais
In the domain of distributed systems, several projects focus on mobile code in order to enhance the performance of parallel applications (mobile threads), to make easier the development of applications (mobile agents) or ...Lire la suite >
In the domain of distributed systems, several projects focus on mobile code in order to enhance the performance of parallel applications (mobile threads), to make easier the development of applications (mobile agents) or to guarantee security (smart cards). In this context, we show how mobile agent systems have basically disappeared in favor of asynchronous execution frameworks. We present a new abstraction – called active container – originating from a model of a mobile agents system. It seems to be a base layer on top of which distributed applications can be developped. A Java implementation of this abstraction raises a problem related to the management of concurrency in applications, distributed or not. We describe the notion of asynchronous reference – our solution to this problem – which allows to express concurrency quite easily. Our Java implementation of this concept eases the development of multithreaded and parallel applications avoiding the problematic use of threads by the exclusive use of a single paradigm: method invocation. This can be: synchronous, asynchronous, local or remote. Our work is available as an open-source LGPL licence package within a ready to use and documented framework called Mandala which is briefly described.< Réduire
Mots clés
Informatique
systèmes et objets distribués
code mobile
conteneurs actifs
concurrence
transparence
références asynchrones
Unités de recherche