Sujet : Modèle de langages de programmation à capacités

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)

Présentation du sujet :

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 :

 

  1. C. Consel and R. Marlet.
    Architecturing Software using a Methodology for Language Development.
    In C. Palamidessi, H. Glaser, and K. Meinke, editors, Proceedings of the 10th International Symposium on Programming Language Implementation and Logic Programming, volume 1490 of Lecture Notes in Computer Science, Pisa, Italy, pages 170--194, September 1998. 

 

  1. C. Consel, H. Hamdi, L. Réveillère, L. Singaravelu, H. Yu, and C. Pu.
    Spidle: A DSL Approach to Specifying Streaming Application.
    In Second International Conference on Generative Programming and Component
    Engineering
    , Erfurt, Germany, September 2003.

 

  1. C. Consel and L. Réveillère.
    A Programmable Client-Server Model: Robust Extensibility via DSLs.
    In Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003), Montréal, Canada, pages 70--79, November 2003. IEEE Computer Society Press.

 

  1. C. Consel.
    From a Program Family to a Domain-Specific Language
    Chapter in From a Program Family to a Domain-Specific Language. Springer-Verlag, 2004.
    Note: To appear.