Proposals for Modular Asynchronous Web Programming: Issues and Challenges

  • Hiroaki Fukuda
  • Paul Leger
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9396)


Because of the success in the Internet technologies, traditional applications such as drawing and spreadsheet software are now provided as web applications. These modern web applications adopt asynchronous programming that provides high responsive user interactions even if an application works without multi-threading. At the same time, as the scale of these applications becomes large, modular programming becomes important because it allows developers to separate concerns, meaning that the evolution of one module does not affect other modules. However, applying asynchronous and modular programming is difficult because asynchronous programming requires uncoupling of a module into two sub-modules, which are non-intuitively connected by a callback method. The separation of the module spurs the birth of other two issues: callback spaghetti and callback hell. Some proposals have been proposed without the lack of issues about modular programming. In this paper, we compare and evaluate these proposals applying them to a non-trivial open source application development. We then present a discussion on our experience in implementing the application using these proposals. Finally, we point out challenges that this kind of proposal should overcome toward a modular programming.


Virtual block Asynchronous programming Aspect-oriented programming 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bierman, G., Russo, C., Mainland, G., Meijer, E., Torgersen, M.: Pause ‘n’ play: formalizing asynchronous C\(^\sharp \). In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 233–257. Springer, Heidelberg (2012). CrossRefGoogle Scholar
  2. 2.
  3. 3.
    Friedman, D., Wise, D.: The Impact of Applicative Programming on Multiprocessing. Technical report (Indiana University, Bloomington. Computer Science Dept.), Indiana University, Computer Science Department (1976).
  4. 4.
    Fukuda, H., Leger, P.: A library to modularly control asynchronous executions. In: Proceedings of the 29th Annual ACM Symposium on Applied Computing (SAC 2015). ACM Press, Salamnca, April 2015 (to appear)Google Scholar
  5. 5.
    Harbulot, B., Gurd, J.R.: A join point for loops in aspectj. In: Proceedings of the 5th International Conference on Aspect-oriented Software Development, AOSD 2006, pp. 63–74. ACM, New York (2006).
  6. 6.
    Kiczales, G., Irwin, J., Lamping, J., Loingtier, J., Lopes, C., Maeda, C., Mendhekar, A.: Aspect oriented programming. In: Muehlhaeuser, M. (general ed.) et al. Special Issues in Object-Oriented Programming (1996)Google Scholar
  7. 7.
    Mikkonen, T., Taivalsaari, A.: Web applications - spaghetti code for the 21st century. In: Proceedings of the 2008 Sixth International Conference on Software Engineering Research, Management and Applications, SERA 2008, pp. 319–328. IEEE Computer Society, Washington, DC (2008).
  8. 8.
    Ogden, M.: Callback hell.
  9. 9.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972). CrossRefGoogle Scholar
  10. 10.

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.Information Science and EngineeringShibaura Institute of TechnologyTokyoJapan
  2. 2.Escuela de Ciencias EmpresarialesUniversidad Católica Del NorteRegión de AntofagastaChile

Personalised recommendations