Advertisement

Client-Side Cornucopia: Comparing the Built-In Application Architecture Models in the Web Browser

  • Antero Taivalsaari
  • Tommi Mikkonen
  • Cesare Pautasso
  • Kari SystäEmail author
Conference paper
Part of the Lecture Notes in Business Information Processing book series (LNBIP, volume 372)

Abstract

The programming capabilities of the Web can be viewed as an afterthought, designed originally by non-programmers for relatively simple scripting tasks. This has resulted in cornucopia of partially overlapping options for building applications. Depending on one’s viewpoint, a generic standards-compatible web browser supports three, four or five built-in application rendering and programming models. In this paper, we give an overview and comparison of these built-in client-side web application architectures in light of the established software engineering principles. We also reflect on our earlier work in this area, and provide an expanded discussion of the current situation. In conclusion, while the dominance of the base HTML/CSS/JS technologies cannot be ignored, we expect Web Components and WebGL to gain more popularity as the world moves towards increasingly complex web applications, including systems supporting virtual and augmented reality.

Keywords

Web programming Single page web applications Web Components Web application architectures Rendering engines Web rendering Web browser 

References

  1. 1.
    Anttonen, M., Salminen, A., Mikkonen, T., Taivalsaari, A.: Transforming the web into a real application platform: new technologies, emerging trends and missing pieces. In: Proceedings of the 2011 ACM Symposium on Applied Computing, pp. 800–807. ACM (2011)Google Scholar
  2. 2.
    Bergkvist, A., et al.: WebRTC 1.0: real-time communication between browsers. W3C Candidate Recommendation, 27 September 2018. https://www.w3.org/TR/webrtc/
  3. 3.
    Bitworking.org: Zero Framework Manifesto: No More JS Frameworks (2014). https://bitworking.org/news/2014/05/zero_framework_manifesto
  4. 4.
    Casteleyn, S., Garrigós, I., Mazón, J.N.: Ten years of Rich Internet Applications: a systematic mapping study, and beyond. ACM Trans. Web 8(3), 18:1–18:46 (2014).  https://doi.org/10.1145/2626369. http://doi.acm.org/10.1145/2626369CrossRefGoogle Scholar
  5. 5.
    Crane, D., McCarthy, P.: What Are Comet and Reverse Ajax?. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  6. 6.
    Flanagan, D.: JavaScript: The Definitive Guide, 6th edn. O’Reilly Media, Sebastopol (2011)zbMATHGoogle Scholar
  7. 7.
    Gallidabino, A., et al.: On the architecture of liquid software: technology alternatives and design space. In: Proceedings of WICSA (2016)Google Scholar
  8. 8.
    Garrett, J.J.: Ajax: a new approach to web applications, 18 February 2005. http://adaptivepath.org/ideas/ajax-new-approach-web-applications/
  9. 9.
    Hartmann, B., Doorley, S., Klemmer, S.R.: Hacking, mashing, gluing: understanding opportunistic design. IEEE Pervasive Comput. 7(3), 46–54 (2008)CrossRefGoogle Scholar
  10. 10.
    Hickson, I.: Server-sent events. W3C Recommendation, 3 February 2015. http://www.w3.org/TR/eventsource/
  11. 11.
    Ingalls, D., Palacz, K., Uhler, S., Taivalsaari, A., Mikkonen, T.: The lively kernel a self-supporting system on a web page. In: Hirschfeld, R., Rose, K. (eds.) S3 2008. LNCS, vol. 5146, pp. 31–50. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-89275-5_2CrossRefGoogle Scholar
  12. 12.
    Jadhav, M.A., Sawant, B.R., Deshmukh, A.: Single page application using AngularJS. Int. J. Comput. Sci. Inf. Technol. 6(3), 2876–2879 (2015)Google Scholar
  13. 13.
    MacLennan, B.J.: Principles of Programming Languages: Design, Evaluation, and Implementation, 3rd edn. Oxford University Press, Oxford (1999)zbMATHGoogle Scholar
  14. 14.
    Marcotte, E.: Responsive Web Design. Editions Eyrolles (2011)Google Scholar
  15. 15.
    Meijer, E.: Democratizing the cloud. In: Companion Proceedings of OOPSLA 2007, pp. 858–859 (2007).  https://doi.org/10.1145/1297846.1297925. http://doi.acm.org/10.1145/1297846.1297925
  16. 16.
    Mikkonen, T., Taivalsaari, A.: Web applications – spaghetti code for the 21st century. In: Proceedings of the International Conference on Software Engineering Research, Management and Applications, SERA 2008, Prague, Czech Republic, 20–22 August 2008, pp. 319–328. IEEE Computer Society (2008)Google Scholar
  17. 17.
    Mikkonen, T., Taivalsaari, A.: Apps vs. open web: the battle of the decade. In: Proceedings of the 2nd Workshop on Software Engineering for Mobile Application Development, MSE, Santa Monica, CA, pp. 22–26 (2011)Google Scholar
  18. 18.
    Mikkonen, T., Taivalsaari, A.: Cloud computing and its impact on mobile software development: two roads diverged. J. Syst. Softw. 86(9), 2318–2320 (2013)CrossRefGoogle Scholar
  19. 19.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  20. 20.
    Pimentel, V., Nickerson, B.G.: Communicating and displaying real-time data with WebSocket. IEEE Internet Comput. 16(4), 45–53 (2012)CrossRefGoogle Scholar
  21. 21.
    Salminen, A., Mikkonen, T.: Mashups: software ecosystems for the web era. In: IWSECO@ ICSOB, pp. 18–32 (2012)Google Scholar
  22. 22.
    Salminen, A., Mikkonen, T., Nyrhinen, F., Taivalsaari, A.: Developing client-side mashups: experiences, guidelines and the road ahead. In: Proceedings of the 14th International Academic MindTrek Conference: Envisioning Future Media Environments, pp. 161–168. ACM (2010)Google Scholar
  23. 23.
    Strimpel, J., Najim, M.: Building Isomorphic JavaScript Apps: From Concept to Implementation to Real-World Solutions. O’Reilly Media Inc., Sebastopol (2016)Google Scholar
  24. 24.
    Taivalsaari, A., Mikkonen, T.: The web as an application platform: the saga continues. In: 37th EUROMICRO Conference on Software Engineering and Advanced Applications, pp. 170–174. IEEE (2011)Google Scholar
  25. 25.
    Taivalsaari, A., Mikkonen, T.: Return of the great spaghetti monster: learnings from a twelve-year adventure in web software development. In: Majchrzak, T.A., Traverso, P., Krempels, K.-H., Monfort, V. (eds.) WEBIST 2017. LNBIP, vol. 322, pp. 21–44. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-93527-0_2CrossRefGoogle Scholar
  26. 26.
    Taivalsaari, A., Mikkonen, T., Ingalls, D., Palacz, K.: Web browser as an application platform: the lively kernel experience. Sun Labs Technical report TR-2008-175, January 2008Google Scholar
  27. 27.
    Taivalsaari, A., Mikkonen, T., Pautasso, C., Systä, K.: Comparing the built-in application architecture models in the web browser. In: 2017 IEEE International Conference on Software Architecture (ICSA), pp. 51–54. IEEE (2017)Google Scholar
  28. 28.
    Taivalsaari, A., Mikkonen, T., Systä, K.: Liquid software manifesto: the era of multiple device ownership and its implications for software architecture. In: 38th IEEE Computer Software and Applications Conference (COMPSAC), pp. 338–343 (2014)Google Scholar
  29. 29.
    Taivalsaari, A., Mikkonen, T., Systä, K., Pautasso, C.: Web user interface implementation technologies: an underview. In: Proceedings of the 14th International Conference on Web Information Systems and Technologies, WEBIST 2018, Seville, Spain, 18–20 September 2018, pp. 127–136 (2018).  https://doi.org/10.5220/0006885401270136
  30. 30.
    W3C: Scalable Vector Graphics (SVG) Specification 1.1, 2nd edn. (2011). https://www.w3.org/TR/SVG/
  31. 31.

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Antero Taivalsaari
    • 1
  • Tommi Mikkonen
    • 2
  • Cesare Pautasso
    • 3
  • Kari Systä
    • 4
    Email author
  1. 1.Nokia Bell LabsTampereFinland
  2. 2.University of HelsinkiHelsinkiFinland
  3. 3.University of LuganoLuganoSwitzerland
  4. 4.Tampere UniversityTampereFinland

Personalised recommendations