Responsable : Charles Consel et Laurent Réveillère
Téléphone : (+33) 5 56 84 44 55
e-mail : compose-contact@labri.fr
Site Web : http://compose.labri.fr
Equipe : Compose (INRIA/LaBRI)
Pour répondre au besoin fondamental d'innovation en matière
de services, les infrastructures existantes s'ouvrent largement à des développeurs
extérieurs afin de multiplier l'offre et de coller ainsi au plus près des
besoins du client. Une telle ouverture est toutefois difficile car elle
compromet la robustesse de l'infrastructure. Pour résoudre ce problème, de
nombreuses approches ont été explorées; pour l'instant, aucune ne suscite un
consensus. Ainsi par exemple, dans la téléphonie, une plate-forme de
signalisation SIP (Session Initiation Protocol) propose communément deux
stratégies pour programmer des services. La première stratégie, traditionnelle,
consiste à interfacer la plate-forme avec un langage généraliste tel que Java.
Étant donnée l'expressivité d'un tel langage, cette solution est réservée à un
administrateur du réseau (ou un programmeur accrédité) qui lui seul peut avoir
un accès aussi large à la plate-forme. La deuxième stratégie vise à restreindre
le langage de programmation de services, pour permettre à un utilisateur
quelconque de définir ses propres services, sans compromettre la sécurité de la
plate-forme de signalisation.
Cette dichotomie (client/administrateur) des développeurs est en pratique trop
grossière. Par contraste, on peut remarquer que les politiques de gestion de
ressources dans un système d'exploitation ne sont pas dichotomiques. En fait,
l'accès aux ressources d'un système est défini par les capacités de
l'utilisateur. La même approche devrait être applicable à un langage de
programmation dans la mesure où ce langage peut être vu comme une interface à
des ressources. Dans le cas d'un langage dédié à la programmation de
services de téléphonie, on peut aisémment imaginer qu'il y a une variété de
politiques de contrôle de ressources à appliquer à un service suivant les
attributions, et donc les capacités, de celui qui déploie ce service. Ce
contrôle fin des ressources devrait s'appliquer à l'utilisation du réseau, de
services Web, d'opérations de signalisation, etc.
Cette thèse vise à développer une approche permettant de compiler la
description d'un service en fonction des capacités de celui qui le déploiera.
Cette approche ne requiert qu'un seul langage de programmation ; l'accès aux
ressources que permet ce langage est défini par les capacités accompagnant le
service à compiler. Le langage dédié à la description de services de téléphonie
considéré pour ce travail se nomme Call/C; il a été développé par le groupe
Compose. L'étude proposée comprend, d'une part, la définition d'un modèle de
capacités pour les ressources d'une plate-forme de signalisation SIP. D'autre
part, elle nécessite la définition d'une analyse de programmes paramétrée par
des capacités et permettant de vérifier statiquement qu'un service utilise les
ressources que lui autorisent ses capacités. Enfin, l'étude se prolongera à
l'étape de génération de code qui pourra également être paramétrée par des
capacités pour choisir l'implémentation de certaines opérations en fo nction de
leur coût.
Mot-clés : Langage dédié, SIP, services de téléphonie, analyse de
programme, compilation, capacité
Références :