PLAN-P

Mots clés : génie logiciel, langage dédié, réseaux actifs .



Participant : Gilles Muller.

Les protocoles internet actuels ont une limitation fondamentale : ils forcent l'uniformité des fonctionnalités à travers tout le réseau et pour toutes les applications. Une nouvelle approche, appelée réseaux actifs, consiste à programmer dynamiquement les routeurs pour définir des comportements spécifiques à une application ou à un paquet. Dans ce cadre, nous avons conçu PLAN-P [9], un langage permettant une programmation sûre et efficace des réseaux actifs. Comme pour le langage GAL [10], PLAN-P a été conçu suivant notre schéma général de conception et d'implémentation de générateurs d'applications basé sur la notion de langage dédié (voir module 6.2).

Comme le réseau est une ressource partagée, la programmation des routeurs doit s'accompagner d'un contrôle strict des programmes qui sont téléchargés. Pour ce faire, nous proposons une approche visant à envoyer le code source des programmes PLAN-P sur le réseau pour permettre des vérifications adaptées en fonction de chaque routeur. Afin de résoudre le problème d'efficacité que pose une telle approche, nous utilisons un compilateur PLAN-P Just In Time (JIT) qui est automatiquement généré à partir d'un interprète, au moyen de Tempo [17]. Par ailleurs, il est à noter que la performance d'un programme PLAN-P compilé par ce JIT est supérieure à celle d'un programme Java équivalent compilé statiquement par Harissa.

PLAN-P a été utilisé pour implémenter plusieurs applications dont la distribution multi-point adaptative de flux audio et la construction de serveurs HTTP extensibles. PLAN-P et son système d'exécution pour Solaris sont disponibles via le Web à l'adresse
http://www.irisa.fr/compose/plan-p.

PLAN-P est actuellement évalué par plusieurs laboratoires de recherche dans le monde. En particulier, le groupe Synthetix de l'Oregon Graduate Institute est en train d'effectuer un portage de notre prototype sur Linux.