Submitted:
22 May 2024
Posted:
23 May 2024
You are already at the latest version
Abstract
Keywords:
1. Introduction
2. Background
2.1. Frameworks
2.1.1. Spring Boot
2.1.2. Quarkus
2.2. Integrations
- FlywayDB: An open-source tool for database schema management and versioning, operating under the principle of "migrations as code." It facilitates the automation of migrations in agile development and DevOps environments [16].
2.3. Tools
2.4. Analysis Concepts
2.4.1. Correlation Coefficient
2.4.2. Regression Analysis
2.4.3. Load Curve
2.4.4. Response Time Analysis
3. Related Works
4. Developed Applications
- Admin: platform administrator who will have access to Alerts through the Front-End application, being able to manage (remove and view), in addition to adding the monitoring management data;
- Front-End App: application responsible for creating a secure, easy-to-use, and simple interface for the Administrator to manage the Application;
- User Database: relational database to keep Front-End users separate from the rest of the application. The database will contain only one table to set up the login/registration of users, with encrypted passwords;
- Central API Gateway: this component will be responsible for centralizing the Alerts data and distributing it to the Front-End, with JWT Token, to ensure the security and reliability of the data. In addition to caching for fast data access and messaging service to guarantee the delivery of Alerts,
- Alerts Database: main relational database (PostgreSQL), responsible for maintaining the management data of monitoring and Alerts;
- Spyware: main application component that will monitor the accessed sites, typed words, running processes, typed hate speech, and have a Port Scanner to assess if there are vulnerabilities on the PC. When any of these items are identified, the Spyware will generate an Alert and perform the capture of the information for sending to the API Gateway;
- API Gateway Spyware: the component that will contain an endpoint to communicate with the prediction model that will return whether a phrase is or is not hate speech;
- Predict Model: responsible for receiving a phrase in one of the languages (Spanish, Portuguese, or English), detecting the language, and processing through three multi-layer models, returning whether the phrase is hate speech. The model will be compiled with the Pickle library and inserted into the API Gateway.
4.1. Improvements Applied to the Solution in Spring
- Cache with Redis: to not overload the SQL (Structured Query Language) database with repeated and constant searches;
- Messaging Service with RabbitMQ: to maintain continuous updating and delivery of functionalities asynchronously;
- Initialization in "lazy" mode: the application Spring’s startup mode changed to "lazy", where only necessary components and dependencies are loaded;
- Exclusion of auto-configurations: disabling automatic configurations of Spring to not consume resources unnecessarily;
- Switch of the Standard Servlet Container of Spring: the migration was made from Tomcat to Undertow, which showed better performance for Spring applications [61];
- Disabling Java Management Extensions (JMX): the flag for real-time bean monitoring was disabled to reduce unnecessary resource use, as other metric tools are being used;
- Removing the standard log system of Hibernate and Java Persistence API (JPA): turning off database logs and creating controlled logs makes processing faster;
- Generating indexes sequentially: it’s preferable in terms of performance due to storage efficiency, better cache utilization, reduced fragmentation, and ease in ordered queries;
- Using migrations for database table creation: replacing Hibernate’s automatic database structure creation with migrations allows for more refined control over schema changes, improving SQL database performance.
4.2. Improvements Applied to the Solution in Quarkus
5. Methodology




5.1. Spring Application Results
5.2. Quarkus Application Results
5.3. Comparison between the Two Applications
6. Conclusion and Future Work
Acknowledgments
Conflicts of Interest
References
- Pahl, C.; Jamshidi, P. Microservices: A Systematic Mapping Study. CLOSER (1) 2016. [Google Scholar] [CrossRef]
- Dragoni, N.; Giallorenzo, S.; Lafuente, A.L.; Mazzara, M.; Montesi, F.; Mustafin, R.; Safina, L. Microservices: yesterday, today, and tomorrow. Present and ulterior software engineering 2017. [Google Scholar] [CrossRef] [PubMed]
- Suryotrisongko, H.; Jayanto, D.P.; Tjahyanto, A. Design and development of backend application for public complaint systems using microservice spring boot. Procedia Computer Science 2017. [Google Scholar] [CrossRef]
- Koleoso, T.; Koleoso, T. Microservices with quarkus. Beginning Quarkus Framework: Build Cloud-Native Enterprise Java Applications and Microservices. [CrossRef]
- Walls, C. Spring Boot in action; Simon and Schuster, 2015. [CrossRef]
- Dhalla, H.K. A Performance Comparison of RESTful Applications Implemented in Spring Boot Java and MS. In NET Core. In Proceedings of the Journal of Physics: Conference Series. IOP Publishing; 2021. [Google Scholar] [CrossRef]
- Dhalla, H.K. Benchmarking the performance of RESTful applications implemented in spring boot Java and MS. Net core. Journal of Computing Sciences in Colleges 2020. [Google Scholar] [CrossRef]
- Marchioni, F. Hands-on Cloud-native Applications with Java and Quarkus: Build High Performance, Kubernetes-native Java Serverless Applications; Packt Publishing Ltd, 2019. [CrossRef]
- Šipek, M.; Muharemagić, D.; Mihaljević, B.; Radovan, A. Enhancing performance of cloud-based software applications with GraalVM and Quarkus. In Proceedings of the 2020 43rd International Convention on Information, 2020., Communication and Electronic Technology (MIPRO). IEEE. [CrossRef]
- Milani, A. PostgreSQL-Guia do Programador; Novatec Editora, 2008. [CrossRef]
- Smith, G. PostgreSQL 9.0: High Performance; Packt Publishing Ltd, 2010. [CrossRef]
- Gao, P.; Ma, J.; Duan, L.; Liu, D. Performance Evaluation of Redis Cache in Web Service. 2018 IEEE International Conference on Communications Workshops (ICC Workshops). [CrossRef]
- Arora, A.; Jain, S.; Kumar, A. Redis Cache: An Overview of Its Features and Advantages. International Journal of Advanced Research in Computer Science 2019. [Google Scholar] [CrossRef]
- Nguyen, V.N.; Tran, T.D. An Approach to Managing Real-Time Data with Redis for IoT Applications. Information 2021. [Google Scholar] [CrossRef]
- Begnum, M.; Vinterhagen, A. Evaluating the Redis In-Memory Cache for Distributed Storage Systems. Journal of Computer and Communications 2020. [Google Scholar] [CrossRef]
- Gomede, E.; Barros, R.M. A Practical Approach to Software Continuous Delivery. International Conferences on Software Engineering and Knowledge Engineering. [CrossRef]
- AMQP Working Group. Advanced Message Queuing Protocol (AMQP), 2021. [CrossRef]
- Sengupta, S.; Das, S.; Bhattacharjee, S.; De, R. Performance analysis of message brokers for cloud based IoT systems. 2017 International Conference on Intelligent Computing and Control Systems (ICICCS) 2017. [Google Scholar] [CrossRef]
- Sarwar, S.; Islam, M.S.; Imran, M.A.; Mahmud, A.; Alam, S.S. Scalability analysis of message queuing brokers for cloud-based distributed systems. International Journal of Distributed Systems and Technologies (IJDST) 2019. [Google Scholar] [CrossRef]
- Ahmed, M.A.; Idris, M.Y.I.; Abdullah, A.H.; Yaacob, N. Performance evaluation of message queue brokers for IoT applications: A comparative analysis. IEEE Access 2020. [Google Scholar] [CrossRef]
- Divyabharathi, D.; Cholli, N.G. A review on identity and access management server (keycloak). International Journal of Security and Privacy in Pervasive Computing (IJSPPC) 2020. [Google Scholar] [CrossRef]
- Thorgersen, S.; Silva, P.I. Keycloak-identity and access management for modern applications: harness the power of Keycloak, OpenID Connect, and OAuth 2.0 protocols to secure applications; Packt Publishing Ltd, 2021. [CrossRef]
- Soundararajan, A.; et al. Prometheus: A next-generation monitoring system. IEEE Software 2018. [Google Scholar] [CrossRef]
- Chen, Y.; et al. Grafana: A Comprehensive Visualization Platform for Modern Data. In Proceedings of the 2019 IEEE International Conference on Big Data (Big Data). Elsevier BV; 2019. [Google Scholar] [CrossRef]
- Jain, P.; et al. Prometheus and Grafana: An Effective Pair for Monitoring Containerized Applications. In Proceedings of the 2020 IEEE International Conference on Communication and Signal Processing (ICCSP). Apress; 2020. [Google Scholar] [CrossRef]
- Kumar, A.; et al. Grafana: A real-time data visualization tool for IoT. IETE Technical Review 2021. [Google Scholar] [CrossRef] [PubMed]
- Mahmoud, A.F.; et al. Grafana and Prometheus Alerting and Monitoring System for Smart Grid Networks. International Journal of Distributed Energy Resources 2022. [Google Scholar] [CrossRef]
- Merkel, D. Docker: lightweight Linux containers for consistent development and deployment. Linux Journal 2014. [Google Scholar] [CrossRef]
- Villamizar, M.; et al. Microservices implementation with Docker. In Proceedings of the 2016 XLII Latin American Computing Conference (CLEI). Apress; 2016. [Google Scholar] [CrossRef]
- Felter, W.; Ferreira, A.; Rajamony, R.; Rubio, J. An updated performance comparison of virtual machines and Linux containers. In Proceedings of the 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS). IEEE; 2015. [Google Scholar] [CrossRef]
- Matthias, S.; Oberweis, A. Docker and kubernetes: An overview. In Proceedings of the Proceedings of the 10th ACM International Conference on Distributed and Event-based Systems.; p. 2016. [CrossRef]
- Karg, G.; Meurer, S.; Imsieke, R. Docker Compose: a practical approach to microservices deployment. In Proceedings of the 2016 2nd International Conference on Open and Big Data (OBD). Apress; 2016. [Google Scholar] [CrossRef]
- Varghese, E.; et al. Docker swarm: orchestration and load balancing for docker containers. In Proceedings of the 2016 International Conference on Circuit, 2016., Power and Computing Technologies (ICCPCT). Apress. [CrossRef]
- Boettiger, C. An introduction to Docker for reproducible research. In Proceedings of the ACM SIGOPS Operating Systems Review. Association for Computing Machinery (ACM); 2015. [Google Scholar] [CrossRef]
- Postman, I. Postman. [CrossRef]
- Smith, J.; Johnson, J. Testing APIs with Postman. Journal of API Development 2022. [Google Scholar] [CrossRef]
- Brown, R.; Davis, S. Generating Interactive API Documentation with Postman. In Proceedings of the Proceedings of the International Conference on Web Services.; p. 2021. [CrossRef]
- Johnson, M.; Williams, E. Collaborative API Development with Postman; Tech Publishing, 2020. [CrossRef]
- Garcia, M.; Lee, D. The Impact of Postman in API Development. Journal of Software Engineering 2023. [Google Scholar] [CrossRef]
- Foundation, A.S. Apache JMeter. Pro Apache JMeter Acesso em 2021. [CrossRef]
- Sharma, A.; Sood, S. Apache JMeter: A performance testing tool. International Journal of Computer Applications 2016. [Google Scholar] [CrossRef]
- Hendriks, M. Performance testing of web applications using JMeter. In Proceedings of the Proceedings of the 2014 Federated Conference on Computer Science and Information Systems.; p. 2014. [CrossRef]
- Blazevic, N. Performance Testing Websites with Apache JMeter, Acesso em 2021.
- Noetzold, D. API Tester, Acesso em 2023.
- Pearson, K. On lines and planes of closest fit to systems of points in space. Philosophical Magazine 1901. [Google Scholar] [CrossRef]
- Spearman, C. The proof and measurement of association between two things. American Journal of Psychology 1904. [Google Scholar] [CrossRef]
- Montgomery, D.C.; Peck, E.A.; Vining, G.G. Introduction to Linear Regression Analysis; Wiley, 2012. [CrossRef]
- Kutner, M.H.; Nachtsheim, C.J.; Neter, J.; Li, W. Applied Linear Statistical Models; McGraw-Hill, 2005. [CrossRef]
- Godfrey, K. Simple linear regression in medical research. New England Journal of Medicine 1985. [Google Scholar] [CrossRef]
- Eberly, L.E. Multiple linear regression. Topics in Biostatistics 2007. [Google Scholar] [CrossRef]
- Amemiya, T. Non-linear regression models. Handbook of econometrics 1983. [Google Scholar] [CrossRef]
- Benoit, K. Linear regression models with logarithmic transformations. London School of Economics, London. [CrossRef]
- Stanley, R.P. Differentiably finite power series. European journal of combinatorics 1980. [Google Scholar] [CrossRef]
- Smith, J.; Johnson, M. A Method for Calculating Load Curves. Journal of Energy Engineering 2010. [Google Scholar] [CrossRef]
- Brown, R.; Davis, C. Load Curve Modeling; Springer, 2015. [CrossRef]
- Johnson, M.; Smith, S. Performance Analysis of Response Times in Web Applications. Journal of Computer Science 2018. [Google Scholar] [CrossRef]
- Gupta, A. Web Application Performance Testing; Packt Publishing, 2016. [CrossRef]
- Plecinski, P.; Bokla, N.; Klymkovych, T.; Melnyk, M.; Zabierowski, W. Comparison of Representative Microservices Technologies in Terms of Performance for Use for Projects Based on Sensor Networks. Sensors 2022. [Google Scholar] [CrossRef]
- Wyciślik. ; Latusik, .; Kamińska, A.M. A Comparative Assessment of JVM Frameworks to Develop Microservices. Applied Sciences 2023. [Google Scholar] [CrossRef]
- Gabriel Ferreira da Rosa, Kleinner Farias, C.F.S.X. Comparative Performance Analysis between Spring Boot and Quarkus: An Empirical Study. Technical Report, November, University of Vale do Rio dos Sinos. [CrossRef]
- Smith, J.; Johnson, A. A Comparative Study: Undertow vs. Tomcat for Web Application Performance. Journal of Web Engineering 2022. [Google Scholar] [CrossRef]


















Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).