logo EDITE Sujets de doctorat

Programmation Web Réactive dans un cadre typé statiquement pour l'orchestration de contenus mutltimédia riches

Sujet proposé par
Directeur de thèse:
Encadré par
Doctorant: Remy EL SIBAIE BESOGNET
Unité de recherche UMR 7606 Laboratoire d'informatique de Paris 6

Domaine: Sciences et technologies de l'information et de la communication

Projet

L’approche de la programmation Web multi-tiers permet d’écrire l’intégralité d’une application Web en n’utilisant qu’un seul formalisme (une seule syntaxe, une seule sémantique et un seul environnement d’exécution).

Cette approche apporte une cohérence et une compacité qui facilitent le développement des applications Web. Une application Web est un seul programme ce qui permet de faire des analyses en une fois et en même temps sur la partie serveur et client.

Les environnement Hop [SeQu2010b, SeBe2012 ] et OCsigen [BaChHe2012] proposent cette démarche, leur principale différence provient du système de types ; Hop est basé sur Scheme (typé dynamiquement) alors qu’OCsigen est sur OCaml (typé statiquement). Les sites respectifs http://hop.inria.fr/ et http://ocsigen.org/ contiennent les documentations complètes et leurs applications phares.

Le modèle de programmation synchrone a déjà fait ses preuves dans l’embarqué critique, en particulier dans l’avionique civile, comme le montre la "success story" de la société Esterel-Technologies.

Le DSL proposé en HipHop [BeNiSe2011] reprend les principales caractéristiques du langage Esterel pour l’orchestration d’événements distants ou locaux. tels que ceux émis par les interfaces graphiques, les timers, ou des services externes. Hop/HipHop permet donc d’écrire des applications Web complexes qui combinent ressources locales et ressources distantes et qui permet la synchronisation temporelle de sources d’informations hétérogènes.

L’utilisation du langage OCaml permet de garantir une plus grande fiabilité des programmes. OCsigen tire partie de technique de typage avancées afin d’éviter de nombreux bugs et même assurer le respect des standards. Ainsi il n’est pas possible d’écrire des programmes qui généreront des pages HTML invalides. L’utilisation très poussée du typage [CaChBa2013, Canou2011] a pour effet de réduire beaucoup le temps de débogage.

On cherche alors à combiner l’approche multi-tiers typée à la Ocsigen avec un DSL réactif pour construire un orchestrateur de contenus multimédia riches et interactifs permettant d’ajouter dynamiquement des nouveaux traitements et de nouveaux flux à synchroniser, avec une garantie sur la composition de ceux-ci. On s’intéressera aux expérimentations d’intégration de programmation réactive en ML comme RML (http://rml.lri.fr/) et REAC (http://erratique.ch/software/react).

Références

[BaChHe2012] Vincent Balat, V, Pierre Chambart, Grégoire Henry. « Client-server Web applications with OCsigen » International World Wide Web Conference, dev track, 4 pages, Lyon, 2012.

[BeNiSe2011] Gérard Berry, C. Nicolas, Manuel Serrano. « HipHop : A Synchronous Reactive Extension for Hop », Proceedings of the PLASTIC’11 worksHop, Portland, USA, 2011.

[CaChBa2013] Benjamin Canou, Emmanuel Chailloux, Vincent Balat. « A Declarative-friendly API for Web Document Manipulation », International Symposium on Practical Aspects of Declarative Languages (PADL 2013), Lecture Notes in Computer Science, 15 pages, (Springer Verlag), 2013.

[Canou2011] Benjamin Canou, "Programmation Web Typée", Thèse de Doctorat, Université Pierre et Marie Curie (UPMC), octobre 2011.

[SeQu2010a] Manuel Serrano, Christian Queinnec. « HTML5 Video portable avec Hop », Gnu Linux Magazine France, Jan, 2010.

[SeQu2010b] Manuel Serrano, Christian Queinnec. « A multi-tier semantics for Hop « , Higher Order and Symbolic Computation, 2010. »,

Liens

hip-hop : http://hop.inria.fr/

Ocsigen : http://ocsigen.org/

RML : http://rml.lri.fr/

REAC : http://erratique.ch/software/react

Enjeux

Un point délicat est d'introduire le modèle de programmation réactive dans le cadre de la programmation Web multi-tiers, y compris dans le cadre de communications asynchrones entre le client et le serveur. Une partie de l'application client-serveur sera dépendante de paramètres extérieurs, comme la communication, par contre le modèle de concurrence interne conservera les bonnes propriétés de la programmation synchrone, le tout dans un cadre typé statiquement.

Un deuxième point important est de valider, en passant à l'échelle sur des applications aux interactions complexes, cette approche de programmation multi-tiers typée avec DSL réactif pour construire un orchestrateur de contenus multimédia riches et interactifs permettant d'ajouter dynamiquement des nouveaux traitements et de nouveaux flux à synchroniser, avec une garantie de correction sur la composition de ceux-ci.