Skip to main content

Computational REST Meets Erlang

  • Conference paper
Objects, Models, Components, Patterns (TOOLS 2011)

Abstract

Today’s applications are developed in a world where the execution context changes continuously. They have to adapt to these changes at run-time if they want to offer their services without interruption. This is particularly critical for distributed Web applications, whose components run on different machines, often managed by different organizations. Designing these programs in an easy and effective way requires choosing the right architectural style and the right run-time platform. The former has to guarantee isolation among components, supporting scalability, reliability, and dynamic changes. The latter has to offer mechanisms to update the applications’ code at run-time.

This work builds upon previous research about architectures and runtime platforms. Its contribution is to put together a very promising architectural style - Computational REST - with a language (and run-time environment) designed with dynamic, distributed applications in mind - Erlang. We show how they fit together by developing a new framework, which eases development of highly distributed Web applications capable of operating in dynamic environments. We also provide an initial experimental assessment of the proposed approach.

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. Mochiweb, http://github.com/mochi/mochiweb

  2. Appeltauer, M., Hirschfeld, R., Haupt, M., Lincke, J., Perscheid, M.: A comparison of context-oriented programming languages. In: COP 2009: International Workshop on Context-Oriented Programming, pp. 1–6. ACM Press, New York (2009)

    Google Scholar 

  3. Armstrong, J.: Making reliable distributed systems in the presence of software errors. Ph.D. thesis, Royal Institute of Technology, Sweden (December 2003)

    Google Scholar 

  4. Armstrong, J.: A history of erlang. In: HOPL. pp. 1–26 (2007)

    Google Scholar 

  5. Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (July 2007), http://www.amazon.com/exec/obidos/redirect?tag=citeulike07-20&path=ASIN/193435600X

  6. Armstrong, J.: Erlang. Commun. ACM 53(9), 68–75 (2010)

    Article  Google Scholar 

  7. Byrd, W.E.: Web programming with continuations. Tech. rep., Unpublished Tech. Report (2002), http://double.co.nz/pdf/continuations.pdf

  8. Costanza, P.: Language constructs for context-oriented programming. In: Proceedings of the Dynamic Languages Symposium, pp. 1–10. ACM Press, New York (2005)

    Google Scholar 

  9. Cugola, G., Margara, A.: Processing flows of information: From data stream to complex event processing. ACM Comput. Surv. (to appear)

    Google Scholar 

  10. Dean, J., Ghemawat, S.: Mapreduce: a flexible data processing tool. Commun. ACM 53(1), 72–77 (2010)

    Article  Google Scholar 

  11. DiNitto, E., Ghezzi, C., Metzger, A., Papazoglou, M.P., Pohl, K.: A journey to highly dynamic, self-adaptive service-based applications. Autom. Softw. Eng. 15(3-4), 313–341 (2008)

    Article  Google Scholar 

  12. Dybvig, R.K.: MIT Press, 4th edn. MIT Press, Cambridge (2009)

    Google Scholar 

  13. Erenkrantz, J.R., Gorlick, M., Suryanarayana, G., Taylor, R.N.: From representations to computations: the evolution of web architectures. In: ESEC-FSE 2007: Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the 14th ACM SIGSOFT Symposium on Foundations of Software Engineering, pp. 255–264. ACM Press, New York (2007), http://dx.doi.org/10.1145/1287624.1287660

    Google Scholar 

  14. Erenkrantz, J.R.: Computational REST: a new model for decentralized, internet-scale applications. Ph.D. thesis, Long Beach, CA, USA (2009) Adviser-Taylor, Richard, N.

    Google Scholar 

  15. Eugster, P.T., Felber, P., Guerraoui, R., Kermarrec, A.M.: The many faces of publish/subscribe. ACM Comput. Surv. 35(2), 114–131 (2003)

    Article  Google Scholar 

  16. Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis (2000), http://portal.acm.org/citation.cfm?id=932295

  17. Fuggetta, A., Picco, G.P., Vigna, G.: Understanding code mobility. IEEE Transactions on Software Engineering 24, 342–361 (1998)

    Article  Google Scholar 

  18. Ghezzi, C., Pradella, M., Salvaneschi, G.: Context oriented programming in highly concurrent systems. In: COP 2010: International Workshop on Context-Oriented Programming, co-located with ECOOP 2010, Maribor, Slovenia (2010) (to appear)

    Google Scholar 

  19. Gorlick, M., Erenkrantz, J., Taylor, R.: The infrastructure of a computational web. Tech. rep., University of California, Irvine (May 2010)

    Google Scholar 

  20. Graunke, P., Findler, R.B., Krishnamurthi, S., Felleisen, M.: Automatically restructuring programs for the web. In: Proceedings of the 16th IEEE International Conference on Automated Software Engineering, ASE 2001, p. 211. IEEE Computer Society, Washington, DC, USA (2001), http://portal.acm.org/citation.cfm?id=872023.872573

    Google Scholar 

  21. Greenwood, P., Blair, L.: L.: Using dynamic aspect-oriented programming to implement an autonomic system. Tech. rep., Proceedings of the, Dynamic Aspect Workshop (DAW04, RIACS (2003)

    Google Scholar 

  22. Hewitt, C., Bishop, P., Steiger, R.: A universal modular actor formalism for artificial intelligence. In: Proceedings of the 3rd International Joint Conference on Artificial Intelligence, pp. 235–245. Morgan Kaufmann Publishers Inc, San Francisco (1973), http://portal.acm.org/citation.cfm?id=1624775.1624804

    Google Scholar 

  23. Kaminsky, M., Banks, E.: Sfs-http: Securing the web with self-certifying urls

    Google Scholar 

  24. Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms, pp. 2–28. Springer, Heidelberg (2003)

    Google Scholar 

  25. Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-based runtime software evolution. In: ICSE, pp. 177–186 (1998)

    Google Scholar 

  26. Oreizy, P., Medvidovic, N., Taylor, R.N.: Runtime software adaptation: framework, approaches, and styles. In: 30th International Conference on Software Engineering, pp. 899–910. ACM Press, New York (2008)

    Google Scholar 

  27. Queinnec, C.: The influence of browsers on evaluators or, continuations to program web servers. In: Proceedings of the fifth ACM SIGPLAN International Conference on Functional Programming, ICFP 2000, pp. 23–33. ACM, New York (2000), http://doi.acm.org/10.1145/351240.351243

    Chapter  Google Scholar 

  28. Taylor, R.N., Medvidovic, N., Oreizy, P.: Architectural styles for runtime software adaptation. In: WICSA/ECSA, pp. 171–180 (2009)

    Google Scholar 

  29. Vigna, G. (ed.): Mobile Agents and Security. LNCS, vol. 1419. Springer, Heidelberg (1998)

    Google Scholar 

  30. Zachary, J.: Protecting mobile code in the world. IEEE Internet Computing 7(2), 78–82 (2003)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sivieri, A., Cugola, G., Ghezzi, C. (2011). Computational REST Meets Erlang. In: Bishop, J., Vallecillo, A. (eds) Objects, Models, Components, Patterns. TOOLS 2011. Lecture Notes in Computer Science, vol 6705. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21952-8_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-21952-8_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-21951-1

  • Online ISBN: 978-3-642-21952-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics