Comparative Analysis for Web Applications Based on REST Services: MEAN Stack and Java EE Stack

Abstract

The use of REST (Representational State Transfer Protocol) web services has increased and has become the most widely used implementation today. The most crucial part of a web development project based on REST services is the choice of the right tools for the front-end, back-end, and database environment. The main objective of this work is to test the MEAN stack as an effective solution for a web application based on REST services. JavaScript has been the client-side programming language running in the browser. The MEAN stack consists of MongoDB (database), Node.js. (web server), Express (back-end), and Angular (front-end) to build web applications. We compare the MEAN stack with a very popular stack such as Java EE that groups MongoDB (database), Apache/Tomcat (web server), Spring boot (back-end) and JSP/HTML/CSS (front-end), with respect to its components, features, and environment configuration. Two similar applications were built with the MEAN and Java EE stacks. We compared and analyzed several features and test criteria such as response time, performance, and data loading.


 


 


Keywords: software architecture, Javascript, REST, web service, Java EE

References
[1] J. Tihomirovs and J. Grabis, “Comparison of SOAP and REST Based Web Services Using Software Evaluation Metrics,” Inf. Technol. Manag. Sci., vol. 19, no. 1, pp. 92– 97, 2016.


[2] R. T. Fielding and R. N. Taylor, “Principled design of the modern Web architecture,” ACM Trans. Internet Technol., vol. 2, no. 2, pp. 115–150, 2002.


[3] S. Mumbaikar and P. Padiya, “Web Services Based On SOAP and REST Principles,” Int. J. Sci. Res. Publ., vol. 3, no. 5, pp. 3–6, 2013.


[4] M. Stajcer and D. Orescanin, “Using MEAN stack for development of GUI in realtime big data architecture,” 2016 39th Int. Conv. Inf. Commun. Technol. Electron. Microelectron. MIPRO 2016 - Proc., pp. 524–529, 2016.


[5] A. J. Poulter, S. J. Johnston, and S. J. Cox, “Using the MEAN stack to implement a RESTful service for an Internet of Things application,” IEEE World Forum Internet Things, WF-IoT 2015 - Proc., pp. 280–285, 2015.


[6] R. Salunkhe, S. Telang, P. Shrigondekar, and A. Tanpure, Review of REST Ful Service Using MEAN Stack for Real Time Big Data Architecture, vol. 3297, no. 11. Birmingham: Packt Publ, 2007.


[7] N. Rozanski and E. Woods, Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Addison-Wesley, 2005.


[8] P. Clements, R. Kazman, and M. Klein, Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley Professional, 2001.


[9] D. Garlan and M. Shaw, “An Introduction to Software Architecture,” Knowl. Creat. Diffus. Util., vol. 1, no. January, pp. 1–40, 1994.


[10] S. Engineering and S. Committee, “IEEE Recommended Practice for Architectural Description of Software-Intensive Systems,” 2000.


[11] D. Garlan and D. Garlan, “Software Architecture: a Roadmap Software Architecture: a Roadmap,” 2000.


[12] L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice, Second Edi. Addison Wesley, 2003.


[13] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, Pattern-Oriented Software Architecture - Volume 1: A System of Patterns. Wiley Publishing, 1996.


[14] F. Bocchio, “Estudio Comparativo De Plataformas Cloud Computing Para Arquitecturas Soa,” vol. 1, no. 5, p. 114, 2013.


[15] S. Malik and D. H. Kim, “A comparison of RESTful vs. SOAP web services in actuator networks,” Int. Conf. Ubiquitous Futur. Networks, ICUFN, pp. 753–755, 2017.


[16] A. Arcuri, “RESTful API Automated Test Case Generation,” 2017 IEEE Int. Conf. Softw. Qual. Reliab. Secur., pp. 9–20, 2017.


[17] D. Booth et al., “Web Services Architecture,” W3C Note, vol. 22, no. February, pp. 1–98, 2004.


[18] K. Gottschalk, S. Graham, H. Kreger, and J. Snell, “Introduction to Web services architecture,” IBM Syst. J., vol. 41, no. 2, pp. 170–177, 2002.


[19] R. T. Fielding, “Architectural Styles and the Design of Network-based Software Architectures,” Building, vol. 54, p. 162, 2000.


[20] M. Zur Muehlen, J. Nickerson, and K. Swenson, “Developing web services choreography standards - The case of REST vs. SOAP,” Decis. Support Syst., vol. 40, no. 1 SPEC. ISS., pp. 9–29, 2005.


[21] D. Fensel, F. M. Facca, E. Simperl, and I. Toma, Semantic Web Services, 1st ed. Springer Publishing Company, Incorporated, 2011.


[22] C. Pautasso, O. Zimmermann, and F. Leymann, “Restful web services vs. ’big’web services: making the right architectural decision,” Proceeding 17th Int. Conf. World Wide Web, pp. 805–814, 2008.


[23] S. Patni, Pro RESTful APIs. 2017.


[24] D. Flanagan, JavaScript - The Definitive Guide. 2011.


[25] A. Q. Haviv, MEAN Web Development, vol. 1. 2014.


[26] S. Holmes, Getting MEAN with Mongo, Express, Angular, and Node, 1st ed. Greenwich, CT, USA: Manning Publications Co., 2015


[27] K. Chodorow, Mongo DB: The Definitive Guide. 2013.


[28] R. O. Obe and L. S. Hsu, MongoDB in Action. 2011.


[29] E. Brown, Web Development with Node and Express: Leveraging the JavaScript Stack. O’Reilly Media, 2014.


[30] E. Hahn, Express in Action: Node Applications with Express and Its Companion Tools, 1st ed. Greenwich, CT, USA: Manning Publications Co., 2015.


[31] R. K. Soni, Full Stack AngularJS for Java Developers. 2017.


[32] S. Davis, “Mastering MEAN: Introducing the MEAN stack,” IBM.com, pp. 1–20, 2014.


[33] M. Cantelon, M. Harter, T. J. Holowaychuk, and N. Rajlich, Node.Js in Action, 1st ed. Greenwich, CT, USA: Manning Publications Co., 2013.


[34] J. Bloch, Effective Java (2Nd Edition) (The Java Series), 2nd ed. Upper Saddle River, NJ, USA: Prentice Hall PTR, 2008.


[35] S. Daschner, Architecting Modern Java EE Applications: Designing lightweight, business-oriented enterprise applications in the age of cloud, containers, and Java EE 8. Packt Publishing, 2017.


[36] F. Gutierrez, Pro Spring Boot. 2016.


[37] J. Brisbin, O. Gierke, and G. Turnquist, “Spring Data REST - Reference Documentation,” 2015. [Online]. Available: https://docs.spring.io/spring-data/rest/docs/ current/reference/html/. [Accessed: 06-Apr-2018].


[38] B. Muschko, Gradle in Action, 1st ed. Greenwich, CT, USA: Manning Publications Co., 2014.


[39] S. Daschner, Architecting Modern Java EE Applications: Designing lightweight, business-oriented enterprise applications in the age of cloud, containers, and Java EE 8. Packt Publishing, 2017.


[40] W3C, “HTML 5.2 Recomendation,” 2017. [Online]. Available: https://www.w3.org/ TR/html52/. [Accessed: 06-May-2018].


[41] J. D. Gauchat, El gran libro de HTML5. CSS3 y Javascript, vol. 354, no. 9. 2012.


[42] B. Noel and A. Chopra, “Introduction To Javaserver Pages,” 2001.


[43] “Siege Home,” 2012. [Online]. Available: https://www.joedog.org/siege-home/. [Accessed: 14-May-2018].


[44] “Apache HTTP server benchmarking tool.” [Online]. Available: https://httpd.apache. org/docs/2.4/programs/ab.html. [Accessed: 14-May-2018].


[45] “Apache JMeter - Apache JMeterTM.” [Online]. Available: https://jmeter.apache. org/. [Accessed: 13-May-2018].


[46] “Prueba de rendimiento usando Jmeter.” [Online]. Available: https://www.guru99. com/jmeter-performance-testing.html. [Accessed: 14-May-2018].


[47] “Load Testing and Benchmarking With Siege.” [Online]. Available: https: //www.serverwatch.com/tutorials/article.php/3936526/Load-Testing-andBenchmarking With-Siege.htm. [Accessed: 14-May-2018].