skip to main content
article

A meta-EDSL for distributed web applications

Published:07 September 2017Publication History
Skip Abstract Section

Abstract

We present a domain-specific language for constructing and configuring web applications distributed across any number of networked, heterogeneous systems. Our language is embedded in Haskell, provides a common framework for integrating components written in third-party EDSLs, and enables type-safe, access-controlled communication between nodes, as well as effortless sharing and movement of functionality between application components. We give an implementation of our language and demonstrate its applicability by using it to implement several important components of distributed web applications, including RDBMS integration, load balancing, and fine-grained sandboxing of untrusted third party code.

The rising popularity of cloud computing and heterogeneous computer architectures is putting a strain on conventional programming models, which commonly assume that one application executes on one machine, or at best on one out of several identical machines. With our language, we take the first step towards a programming model better suited for a computationally multicultural future.

References

  1. Benjamin Block, Joel Gustafsson, Michael Milakovic, Mattias Nilsen, and André Samuelsson. 2016. Evaluating Haste.App: Haskell in a web setting. Effects of using a seamless, linear, client-centric programming model. (2016).Google ScholarGoogle Scholar
  2. Quentin Bourgerie. 2014. The Opa framework. http://opalang.org/ . (2014).Google ScholarGoogle Scholar
  3. Jan Bracker and Andy Gill. 2014. Sunroof: A Monadic DSL for Generating JavaScript. In Practical Aspects of Declarative Languages. Vol. 8324. Springer International Publishing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Manuel MT Chakravarty, Gabriele Keller, and Simon Peyton Jones. 2005. Associated type synonyms. In ACM SIGPLAN Notices, Vol. 40. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Adam Chlipala. 2015. Ur/Web: A simple model for programming the Web. In ACM SIGPLAN Notices, Vol. 50. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. 2007. Links: Web programming without tiers. In Formal Methods for Components and Objects. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Tim Cuthbertson. 2014. The Conductance application server. http://conductance. io/ . (2014).Google ScholarGoogle Scholar
  8. Troy Bryan Downing. 1998. Java RMI: remote method invocation. IDG Books Worldwide, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Richard A. Eisenberg, Dimitrios Vytiniotis, Simon Peyton Jones, and Stephanie Weirich. 2014. Closed Type Families with Overlapping Equations. In Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Anton Ekblad. 2015. A Distributed Haskell for the Modern Web. Licentiate Thesis. Chalmers Institute of Technology.Google ScholarGoogle Scholar
  11. Anton Ekblad. 2016. High-performance client-side web applications through Haskell EDSLs. In Proceedings of the 9th International Symposium on Haskell. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Anton Ekblad and Koen Claessen. 2014. A Seamless, Client-centric Programming Model for Type Safe Web Applications. In Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Tom Ellis. 2014. Opaleye. https://github.com/tomjaguarpaw/haskell-opaleye . (2014).Google ScholarGoogle Scholar
  14. Jeff Epstein, Andrew P. Black, and Simon Peyton-Jones. 2011. Towards Haskell in the Cloud. In Proceedings of the 4th ACM Symposium on Haskell. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Andy Gill, Neil Sculthorpe, Justin Dawson, Aleksander Eskilson, Andrew Farmer, Mark Grebe, Jeffrey Rosenbluth, Ryan Scott, and James Stanton. 2015. The remote monad design pattern. In ACM SIGPLAN Notices, Vol. 50. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Máté Karácsony and Koen Claessen. 2016. Using fusion to enable late design decisions for pipelined computations. In Proceedings of the 5th International Workshop on Functional High-Performance Computing. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Geoffrey Mainland and Greg Morrisett. 2010. Nikola: embedding compiled GPU functions in Haskell. ACM Sigplan Notices 45 (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. T Petricek and Don Syme. 2007. AFAX: Rich client/server web applications in F#. (2007).Google ScholarGoogle Scholar
  19. Gabriel Radanne, Jérôme Vouillon, Vincent Balat, and Vasilis Papavasileiou. 2016. ELIOM: tierless Web programming from the ground up. (2016).Google ScholarGoogle Scholar
  20. Manuel Serrano and Vincent Prunet. 2016. A glimpse of Hopjs. In International Conference on Functional Programming (ICFP). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Tom Murphy Vii, Karl Crary, and Robert Harper. 2007. Type-safe distributed programming with ML5. In International Symposium on Trustworthy Global Computing. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A meta-EDSL for distributed web applications

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 52, Issue 10
              Haskell '17
              October 2017
              211 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/3156695
              • Editor:
              • Andy Gill
              Issue’s Table of Contents
              • cover image ACM Conferences
                Haskell 2017: Proceedings of the 10th ACM SIGPLAN International Symposium on Haskell
                September 2017
                211 pages
                ISBN:9781450351829
                DOI:10.1145/3122955

              Copyright © 2017 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 7 September 2017

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!