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 [26], un langage permettant une programmation
sûre et efficace des réseaux actifs. Comme pour le langage
Gal [18], 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.3). 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 [TBC+98]. 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 [26]. 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.