Skip to main content

Hop, a Fast Server for the Diffuse Web

  • Conference paper
Coordination Models and Languages (COORDINATION 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5521))

Included in the following conference series:

Abstract

The diffuse Web is an alternative way of using the Web 2.0 infrastructure for building personal diffuse applications. Systems that let users tune the temperature of their house with a cell-phone, check that the shutters are closed with a PDA, or select the music to be played on a Hi-Fi system with a PC are examples of the targeted applications.

Diffuse Web applications have similarities with Web 2.0 applications: i) they rely on fast bi-directional interactions between servers and clients, and ii) they make extensive use of non-cachable dynamic contents. On the other hand, diffuse applications have also an important difference with respect to traditional Web applications: they generally do not need to deal with a huge number of simultaneous users. That is, diffuse Web applications are built on top of standard technologies but they use it differently. Therefore they demand different optimizations and tunings.

Hop (http://hop.inria.fr) is a platform designed for building and running diffuse Web applications. Its software development kit contains two compilers, one interpreter, and a bootstrapped Web server. That is, the Hop Web server is implemented in Hop. This paper shows that this implementation strategy allows Hop to dramatically outperform the popular mainstream Web servers for delivering dynamic contents. Contrary to most servers, Hop delivers static and dynamic contents at a comparable pace. The paper details the implementation of the Hop Web server.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Adya, A., et al.: Cooperative Task Management without Manual Stack Management or Event-driven Programming is Not the Opposite of Tthreaded Programming. In: Proceedings of the Usenix Annual Technical Conference, Monterey, CA, USA, June 2002, pp. 289–302 (2002)

    Google Scholar 

  2. Armstrong, J., et al.: Concurrent Programming in ERLANG. Prentice Hall, Englewood Cliffs (1996)

    MATH  Google Scholar 

  3. Armstrong, J.: Concurrency Oriented Programming in Erlang– Invited talk of the FFG conference (2003)

    Google Scholar 

  4. Banga, G., Druschel, P.: Measuring the Capacity of a Web Server. In: USENIX Symposium on Internet Technologies and Systems (1997)

    Google Scholar 

  5. Bobrow, D., et al.: Common lisp object system specification– special issue, Notices (23) (September 1988)

    Google Scholar 

  6. Brech, T., Pariag, D., Gammo, L.: accept()able Strategies for Improving Web Server Performance. In: Proceedings of the USENIX 2004 Annual Technical Conference, Boston, MA, USA (June 2004)

    Google Scholar 

  7. Broberg, N.: Haskell Server Pages through Dynamic Loading– Haskell 2005. In: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, Tallinn, Estonia, pp. 39–48 (2005)

    Google Scholar 

  8. Burns, B., et al.: Flux: A Language for Programming High-Performance Servers. In: Proceedings of USENIX Annual Technical Conference, pp. 129–142 (2006)

    Google Scholar 

  9. Choi, G.S., et al.: A Multi-Threaded PIPELINED Web Server Architecture for SMP/SoC Machines. In: WWW 2005 Proceedings of the 14th international conference on World Wide Web, Chiba, Japan, pp. 730–739 (2005)

    Google Scholar 

  10. Darcy, J.: Server Design (August 2002), http://pl.atyp.us/content/tech/servers.html

  11. Ducasse, S., Lienhard, A., Renggli, L.: Seaside - a multiple control flow web application framework. In: Proceedings of the ESUG Research Track (2004)

    Google Scholar 

  12. Heidemann, J.: Performance Interactions Between P-HTTP and TCP Implementations. ACM Computer Communication Review 27(2), 65–73 (1997)

    Article  Google Scholar 

  13. Joubert, P., et al.: High-Performance Memory-Based Web Servers: Kernel and User-Space Performance. In: Usenix, pp. 175–188 (2001)

    Google Scholar 

  14. Krishnamurthi, S.: The CONTINUE Server (or, How I Administered PADL 2002 and 2003). In: Dahl, V., Wadler, P. (eds.) PADL 2003. LNCS, vol. 2562, pp. 2–16. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  15. Krishnamurthi, S., et al.: Implementation and Use of the PLT Scheme Web Server. Higher Order and Symbolic Computation 20(4), 431–460 (2007)

    Article  MATH  Google Scholar 

  16. Larus, J., Parkes, M.: Using Cohort Scheduling to Enhance Server Performance. In: Proceedings of the Usenix Annual Technical Conference, Monterey, CA, USA, June 2002, pp. 103–114 (2002)

    Google Scholar 

  17. Loyaute, G.: Un modéle génératif pour le développement de serveurs internet, Univeristé Paris-Est, Paris, France (September 2008)

    Google Scholar 

  18. Mallery, J.C.: A Common LISP Hypermedia Server. In: Proc. First International World-Wide Web Conference, pp. 239–247 (1994)

    Google Scholar 

  19. Marlow, S.: Writing High-Performance Server Applications in Haskell, Case Study A Haskell Web Server. In: Haskell 2000: Proceedings of the ACM SIGPLAN Haskell Workshop, Montreal, Canada (September 2000)

    Google Scholar 

  20. Meijer, E., Van Velzen, D.: Haskell Server Pages – Functional Programming and the Battle for the Middle Tier Abstract. In: Haskell 2000: Proceedings of the ACM SIGPLAN Haskell Workshop, Montreal, Canada (September 2000)

    Google Scholar 

  21. Mogul, J.C.: The case for persistent-connection HTTP. In: SIGCOMM 1995: Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication, Cambridge, Massachusetts, United States, pp. 299–313 (1995)

    Google Scholar 

  22. Mogul, J.C., Minshall, G.: Rethinking the TCP Nagle algorithm. SIGCOMM Comput. Commun. Rev. 31(1), 6–20 (2001)

    Article  Google Scholar 

  23. Mosberger, D., Jin, T.: httperf: A tool for Measuring Web Server Performance. In: First Workshop on Internet Server Performance, pp. 59–67 (1998)

    Google Scholar 

  24. Nagle, J.: Congestion Control in IP/TCP Internetworks – RFC 896, Internet Engineering Task Force (January 1984)

    Google Scholar 

  25. Nagpurkar, P., et al.: Workload Characterization of selected JEE-based Web 2.0 Applications. In: Proceedings of the IISWC 2008. IEEE International Symposium on Workload Characterization, September 2008, pp. 109–118 (2008)

    Google Scholar 

  26. Nahum, E., Barzilai, T., Kandlur, D.D.: Performance Issues in WWW Servers. IEEE/ACM Transactions on Networking 10(1) (February 2002)

    Google Scholar 

  27. Nielsen, H.F., et al.: Network Performance Eeffects of HTTP/1.1, CSS1, and PNG. In: Proceedings of the ACM SIGCOMM 1997 conference, Cannes, France (September 1997)

    Google Scholar 

  28. Pai, V.S., Druschel, P., Zwaenepoel, W.: Flash: An efficient and portable Web server. In: Proceedings of the Usenix Annual Technical Conference, Monterey, CA, USA (June 1999)

    Google Scholar 

  29. Pariag, D., et al.: Comparing the Performance of Web Server Architectures. SIGOPS Oper. Syst. Rev. 41(3), 231–243 (2007)

    Article  Google Scholar 

  30. Serpette, B., Serrano, M.: Compiling Scheme to JVM bytecode: a performance study. In: 7th Sigplan Int’l Conference on Functional Programming (ICFP), Pittsburgh, Pensylvanie, USA (October 2002)

    Google Scholar 

  31. 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 

  32. Serrano, M.: The HOP Development Kit. In: Invited paper of the Seventh ACM sigplan Workshop on Scheme and Functional Programming, Portland, Oregon, USA (September 2006)

    Google Scholar 

  33. Serrano, M.: Programming Web Multimedia Applications with Hop. In: Proceedings of the ACM Sigmm and ACM Siggraph conference on Multimedia, Best Open Source Software, Augsburg, Germany (September 2007)

    Google Scholar 

  34. Serrano, M.: Anatomy of a Ubiquitous Media Center. In: Proceedings of the Sixteenth Annual Multimedia Computing and Networking (MMCN 2009), San Jose, CA, USA (January 2009)

    Google Scholar 

  35. Shukla, A., et al.: Evaluating the Performance of User-Space and Kernel-Space Web Servers. In: CASCON 2004: Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research, Markham, Ontario, Canada, pp. 189–201 (2004)

    Google Scholar 

  36. Smith, D.C., Hu, J.C.: Developing Flexible and High-performance Web Servers with Frameworks and Patterns. ACM Computing Surveys 30 (1998)

    Google Scholar 

  37. Thiemann, P.: WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Forms. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, p. 192. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  38. Titchkosky, L., Arlitt, M., Williamson, C.: A performance comparison of dynamic Web technologies. SIGMETRICS Perform. Eval. Rev. 31(3), 2–11 (2003)

    Article  Google Scholar 

  39. Upadhyaya, G., Pai, V.S., Midkiff, S.P.: Expressing and Exploiting Concurrency in Networked Applications with Aspen. In: PPoPP 2007: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming, San Jose, California, USA, pp. 13–23 (2007)

    Google Scholar 

  40. Von Behren, R., Condit, J., Brewer, E.: Why Events Are A Bad Idea (for higher-concurrency servers). In: Proc. of HotOSIX: the 9th Workshop on Hop Topics in Operating Systems, Lihue, Hawaii, USA (May 2003)

    Google Scholar 

  41. Welsh, M., et al.: A Design Framework for Highly Concurrent Systems, Berkeley, CA, USA (2000)

    Google Scholar 

  42. Welsh, M., Culler, D., Brewer, E.: SEDA: An Architecture for Well-Conditioned, Scalable Internet Services. In: Symposium on Operating Systems Principles, pp. 230–243 (2001)

    Google Scholar 

  43. Welsh, N., Gurnell, D.: Experience report: Scheme in commercial Web application development. In: ICFP 2007: Proceedings of the 12th ACM SIGPLAN international conference on Functional programming, Freiburg, Germany, pp. 153–156 (2007)

    Google Scholar 

  44. Yao, N., Zheng, M., Ju, J.: Pipeline: A New Architecture of High Performance Servers. SIGOPS Oper. Syst. Rev. 36(4), 55–64 (2002)

    Article  Google Scholar 

  45. Zorn, B.: The Measured Cost of Conservative Garbage Collection. Software — Practice and Experience 23(7), 733–756 (1993)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 IFIP International Federation for Information Processing

About this paper

Cite this paper

Serrano, M. (2009). Hop, a Fast Server for the Diffuse Web. In: Field, J., Vasconcelos, V.T. (eds) Coordination Models and Languages. COORDINATION 2009. Lecture Notes in Computer Science, vol 5521. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02053-7_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-02053-7_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-02052-0

  • Online ISBN: 978-3-642-02053-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics