Skip to main content

Defining Multi-user Web Applications with iTasks

  • Chapter

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 7241)

Abstract

In these lecture notes we explain how multi-user web applications can be developed in a programming style that favors tasks as main building block for the construction of such systems. A task is work that has to be performed by human-beings and computers working together on the internet. This concept has been implemented in the iTask framework as a monadic combinator library that is embedded in the pure and lazy functional programming language Clean. These lecture notes consist of many examples and exercises, and also discusses the foundation of both the iTask system and task-oriented programming.

Keywords

  • Shared Data
  • Type Task
  • Functional Programming
  • Parallel Task
  • Shared State

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.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (Canada)
  • 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. van der Aalst, W., ter Hofstede, A., Kiepuszewski, B., Barros, A.: Workflow patterns. Technical Report FIT-TR-2002-02, Queensland University of Technology (2002)

    Google Scholar 

  2. Barendsen, E., Smetsers, S.: Conventional and Uniqueness Typing in Graph Rewrite Systems (Extended Abstract). In: Shyamasundar, R.K. (ed.) FSTTCS 1993. LNCS, vol. 761, pp. 41–51. Springer, Heidelberg (1993)

    CrossRef  Google Scholar 

  3. Cooper, E., Lindley, S., Wadler, P., Yallop, J.: Links: Web Programming Without Tiers. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709, pp. 266–296. Springer, Heidelberg (2007)

    CrossRef  Google Scholar 

  4. Cooper, E., Lindley, S., Wadler, P., Yallop, J.: An idiom’s guide to formlets. Technical report, The University of Edinburgh, UK (2007), http://groups.inf.ed.ac.uk/links/papers/formlets-draft2007.pdf

  5. Domoszlai, L., Bruël, E., Jansen, J.M.: Implementing a non-strict purely functional language in JavaScript. Acta Universitatis Sapientiae 3, 76–98 (2011)

    MATH  Google Scholar 

  6. Elsman, M., Larsen, K.F.: Typing XHTML Web Applications in ML. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 224–238. Springer, Heidelberg (2004)

    CrossRef  Google Scholar 

  7. Elsman, M., Hallenberg, N.: Web Programming with SMLserver. In: Dahl, V. (ed.) PADL 2003. LNCS, vol. 2562, pp. 74–91. Springer, Heidelberg (2003)

    CrossRef  Google Scholar 

  8. Hanus, M.: High-Level Server Side Web Scripting in Curry. In: Ramakrishnan, I.V. (ed.) PADL 2001. LNCS, vol. 1990, pp. 76–92. Springer, Heidelberg (2001)

    CrossRef  Google Scholar 

  9. Jansen, J.M., Koopman, P., Plasmeijer, R.: Efficient interpretation by transforming data types and patterns to functions. In: Nilsson, H. (ed.) Proceedings of the 7th Symposium on Trends in Functional Programming, TFP 2006, Nottingham, UK, April 19-21, pp. 157–172 (2006) ISBN 978-1-84150-188-8

    Google Scholar 

  10. Jansen, J.M., Plasmeijer, R., Koopman, P.: iEditors: Extending iTask with Interactive Plug-ins. In: Scholz, S.-B., Chitil, O. (eds.) IFL 2008. LNCS, vol. 5836, pp. 192–211. Springer, Heidelberg (2011)

    CrossRef  Google Scholar 

  11. Koopman, P., Plasmeijer, R., Achten, P.: An Executable and Testable Semantics for iTasks. In: Scholz, S.-B., Chitil, O. (eds.) IFL 2008. LNCS, vol. 5836, pp. 212–232. Springer, Heidelberg (2011)

    CrossRef  Google Scholar 

  12. Lijnse, B., Jansen, J.M., Nanne, R., Plasmeijer, R.: Capturing the Netherlands coast guard’s sar workflow with itasks. In: Mendonca, D., Dugdale, J. (eds.) Proceedings of the 8th International Conference on Information Systems for Crisis Response and Management, ISCRAM 2011, Lisbon, Portugal. ISCRAM Association (May 2011)

    Google Scholar 

  13. Loitsch, F., Serrano, M.: Hop client-side compilation. In: Proceedings of the 7th Symposium on Trends in Functional Programming, TFP 2007, New York, NY, USA, April 2-4, pp. 141–158. Interact (2007)

    Google Scholar 

  14. Meijer, E.: Server side web scripting in Haskell. Journal of Functional Programming 10(1), 1–18 (2000)

    CrossRef  Google Scholar 

  15. Michels, S., Plasmeijer, R., Achten, P.: iTask as a New Paradigm for Building GUI Applications. In: Hage, J., Morazán, M.T. (eds.) IFL 2010. LNCS, vol. 6647, pp. 153–168. Springer, Heidelberg (2011)

    CrossRef  Google Scholar 

  16. Plasmeijer, R., Achten, P., Koopman, P.: iTasks: executable specifications of interactive work flow systems for the web. In: Hinze, R., Ramsey, N. (eds.) Proceedings of the International Conference on Functional Programming, ICFP 2007, Freiburg, Germany, pp. 141–152. ACM Press (2007)

    Google Scholar 

  17. Plasmeijer, R., Achten, P., Koopman, P., Lijnse, B., van Noort, T., van Groningen, J.: iTasks for a change - Type-safe run-time change in dynamically evolving workflows. In: Khoo, S.-C., Siek, J. (eds.) Proceedings of the Workshop on Partial Evaluation and Program Manipulation, PEPM 2011, Austin, TX, USA, pp. 151–160. ACM Press (2011)

    Google Scholar 

  18. Plasmeijer, R., Jansen, J.M., Koopman, P., Achten, P.: Declarative Ajax and client side evaluation of workflows using iTasks. In: Proceedings of the 10th International Conference on Principles and Practice of Declarative Programming, PPDP 2008, Valencia, Spain, July 15-17, pp. 56–66 (2008)

    Google Scholar 

  19. Plasmeijer, R., Lijnse, B., Achten, P., Michels, S.: Getting a grip on tasks that coordinate tasks. In: Proceedings Workshop on Language Descriptions, Tools, and Applications (LDTA), Saarbrücken, Germany, March 26-27 (2011)

    Google Scholar 

  20. Serrano, M., Gallesio, E., Loitsch, F.: Hop, a language for programming the web 2.0. In: Proceedings of the 11th International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, Portland, Oregon, USA, October 22-26, pp. 975–985 (2006)

    Google Scholar 

  21. 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, pp. 192–208. Springer, Heidelberg (2002)

    CrossRef  Google Scholar 

  22. Wadler, P.: Comprehending monads. In: Proceedings of the Conference on Lisp and Functional Programming, LFP 1990, Nice, France, pp. 61–77 (1990)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Plasmeijer, R., Achten, P., Lijnse, B., Michels, S. (2012). Defining Multi-user Web Applications with iTasks. In: Zsók, V., Horváth, Z., Plasmeijer, R. (eds) Central European Functional Programming School. CEFP 2011. Lecture Notes in Computer Science, vol 7241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32096-5_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-32096-5_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-32095-8

  • Online ISBN: 978-3-642-32096-5

  • eBook Packages: Computer ScienceComputer Science (R0)