Computational REST Meets Erlang

  • Alessandro Sivieri
  • Gianpaolo Cugola
  • Carlo Ghezzi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6705)

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.

Keywords

Computational REST Erlang OTP architectural styles programming languages mobile code Internet 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
  2. 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. 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. 4.
    Armstrong, J.: A history of erlang. In: HOPL. pp. 1–26 (2007)Google Scholar
  5. 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. 6.
    Armstrong, J.: Erlang. Commun. ACM 53(9), 68–75 (2010)CrossRefGoogle Scholar
  7. 7.
    Byrd, W.E.: Web programming with continuations. Tech. rep., Unpublished Tech. Report (2002), http://double.co.nz/pdf/continuations.pdf
  8. 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. 9.
    Cugola, G., Margara, A.: Processing flows of information: From data stream to complex event processing. ACM Comput. Surv. (to appear)Google Scholar
  10. 10.
    Dean, J., Ghemawat, S.: Mapreduce: a flexible data processing tool. Commun. ACM 53(1), 72–77 (2010)CrossRefGoogle Scholar
  11. 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)CrossRefGoogle Scholar
  12. 12.
    Dybvig, R.K.: MIT Press, 4th edn. MIT Press, Cambridge (2009)Google Scholar
  13. 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. 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. 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)CrossRefGoogle Scholar
  16. 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. 17.
    Fuggetta, A., Picco, G.P., Vigna, G.: Understanding code mobility. IEEE Transactions on Software Engineering 24, 342–361 (1998)CrossRefGoogle Scholar
  18. 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. 19.
    Gorlick, M., Erenkrantz, J., Taylor, R.: The infrastructure of a computational web. Tech. rep., University of California, Irvine (May 2010)Google Scholar
  20. 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. 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. 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. 23.
    Kaminsky, M., Banks, E.: Sfs-http: Securing the web with self-certifying urlsGoogle Scholar
  24. 24.
    Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms, pp. 2–28. Springer, Heidelberg (2003)Google Scholar
  25. 25.
    Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-based runtime software evolution. In: ICSE, pp. 177–186 (1998)Google Scholar
  26. 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. 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 CrossRefGoogle Scholar
  28. 28.
    Taylor, R.N., Medvidovic, N., Oreizy, P.: Architectural styles for runtime software adaptation. In: WICSA/ECSA, pp. 171–180 (2009)Google Scholar
  29. 29.
    Vigna, G. (ed.): Mobile Agents and Security. LNCS, vol. 1419. Springer, Heidelberg (1998)Google Scholar
  30. 30.
    Zachary, J.: Protecting mobile code in the world. IEEE Internet Computing 7(2), 78–82 (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Alessandro Sivieri
    • 1
  • Gianpaolo Cugola
    • 1
  • Carlo Ghezzi
    • 1
  1. 1.DeepSE Group, Dipartimento di Elettronica e InformazionePolitecnico di MilanoMilanoItaly

Personalised recommendations