Hop and HipHop: Multitier Web Orchestration

  • Gérard Berry
  • Manuel Serrano
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8337)


Rich applications merge classical computing, client-server concurrency, web-based interfaces, and the complex time- and event-based reactive programming found in embedded systems. To handle them, we extend the Hop web programming platform by HipHop, a domain-specific language dedicated to event-based process orchestration. Borrowing the synchronous reactive model of Esterel, HipHop is based on synchronous concurrency and preemption primitives that are known to be key components for the modular design of complex reactive behaviors. HipHop departs from Esterel by its ability to handle the dynamicity of Web applications, thanks to the reflexivity of Hop. Using a music player example, we show how to modularly build a non-trivial Hop application using HipHop orchestration code.


Core Statement Input Event Music Player Synchronous Language Client Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Berry, G.: The foundations of Esterel. In: Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press (2000)Google Scholar
  2. 2.
    Berry, G., Nicolas, C., Serrano, M.: HipHop: A Synchronous Reactive Extension for Hop. In: Proceedings of the PLASTIC 2011 Workshop, Portland, USA (October 2011)Google Scholar
  3. 3.
    Kitchin, D., Cook, W.R., Misra, J.: A language for task orchestration and its semantic properties. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 477–491. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  4. 4.
    Lee, E.A.: The Problem with Threads. IEEE Computer 39(5), 33–42 (2006)CrossRefGoogle Scholar
  5. 5.
    Meyerovich, L.A., Guha, A., Baskin, J., Cooper, G.H., Greenberg, M., Bromfield, A., Krishnamurthi, S.: Flapjax: a programming language for ajax applications. In: Proceeding of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2009, pp. 1–20. ACM, New York (2009)CrossRefGoogle Scholar
  6. 6.
    Montesi, F., Guidi, C., Lucchi, R., Zavattaro, G.: Jolie: a java orchestration language interpreter engine. Electr. Notes Theor. Comput. Sci. 181, 19–33 (2007)CrossRefGoogle Scholar
  7. 7.
    Potop-Butucaru, D., Edwards, S.A., Berry, G.: Compiling Esterel. Springer (2007)Google Scholar
  8. 8.
    Serrano, M., Berry, G.: Multitier Programming in Hop - a first step toward programming 21st-century applications. Communications of the ACM 55(8), 53–59 (2012)CrossRefGoogle Scholar
  9. 9.
    Serrano, M., Gallesio, E., Loitsch, F.: HOP, a language for programming the Web 2.0. In: Proceedings of the First Dynamic Languages Symposium, Portland, Oregon, USA (October 2006)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Gérard Berry
    • 1
  • Manuel Serrano
    • 2
  1. 1.Collége de FranceParis Cedex 05France
  2. 2.Inria Sophia MéditerranéeSophia AntipolisFrance

Personalised recommendations