Amphithéâtre Maurice Halbwachs, Site Marcelin Berthelot
Open to all
-

HOP and HipHop, orchestrating Web activities (lecture 8)

This lecture was directly coupled with the seminar, with both speakers taking turns. This is a live research project on programming and orchestrating Web activities. Manuel Serrano, Inria research director, presented the HOP language and system [1], which replaces the Tower of Babel of Web languages with a single functional language inherited from the Scheme language: server writing, client HTML coding and client-server communication are thus unified. A HOP program combines client and server actions, distinguished by simple annotations, in a single source code; the HOP compiler automatically distributes them and generates all the communications required to ensure consistency. On the server, HOP is compiled and executed natively, with excellent efficiency. On clients, HOP is compiled in Javascript, which ensures optimal portability at the cost of a few limitations.

HOP allows you to build Web applications much more simply than with conventional methods, either directly or by composing the innumerable Web services already in existence (a service is called like a Web page, but renders data instead of directly displaying a page). But coordinating the call, return and error messages of remote asynchronous services is a complex problem. To tackle it, we defined and implemented the HipHop language, a version of Esterel integrated into HOP, which leverages the full power of Esterel's synchronous parallelism and temporal instructions to orchestrate services. Unlike Esterel v5 and v7, which left it to the user to integrate the generated code into their own environment, HipHop tackles this problem by taking advantage of HOP's integrative power due to its higher-order functional character [2]. It introduces the notion of a reactive machine, providing the interface between HOP's asynchronous events and HipHop's synchronous interaction loop [3]. It also makes it possible to develop GALS(Globally Asynchronous Locally Synchronous) applications by making several synchronous reactive machines cooperate asynchronously.

All this was illustrated by the example of a music search and play system that uses various music download sites and associated metadata. Watch the video animations to learn more.

References

[1] http://hop.inria.fr.

[2] Scheme is an extension of l-calculus, cf. 2009-2010 lecture.

[3] Already explored within the Esterel framework, in particular by F. Boussinot and L. Mandel with the integration of reactive programming in classical languages, and by D. Gaffé in Nice for the interfacing of Esterel-generated code with standard operating systems.