Loredana Finocchiaro
Spring Boot and Spring WebFlux: experimental evaluation of Rest-API implementations.
Rel. Marco Torchiano. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2021
Abstract: |
Reactive programming has been around for some time now, but recently has gained a new resonance, simultaneously with the rise of microservices and the ubiquity of multi-core processors: it represents a way of meeting the increasing demands of today, where applications need to have high availability and low response times also during high load. It avoids stateful programs, allowing the programmer to abstract away low-level threading, synchronization, and concurrency issues. However, reactive programming can represent the most appropriate choice only in peculiar scenarios, for instance when concurrency and asynchronicity are absolutely needed, or for handling large streams of data. The thesis is the result of the internship experience carried out at Technology Reply. The scope of interest regards the Connected Vehicle Technology and the Business Intelligence. For a well-known automotive company, a system was developed that retrieves and collects data deriving from multiple types of signals, sent in real-time from each connected vehicle (uniquely identified by its VIN, i.e. Vehicle Identification Number), with a very high frequency: as a consequence, the amount of data gathered every day is considerably large (about two billion records per day). These signals are collected, stored and analyzed in a Corporate Data Lake, with the purpose of identifying common patterns (e.g., about driving or charging habits), allowing the business and the data scientist team to carry out deep dive analyses on the phenomena related to the connected vehicle. The necessity of reading and analyzing the collected data efficiently becomes evident and essential. The objective of the application that was developed is the detailed analysis of a single vehicle or driver in order to categorize it on the basis of the received signals, by integrating them with information retrieved in real-time from external systems. The application was developed in Java, leveraging the Spring framework, then deployed as a microservice in the Oracle Cloud. Two different versions will be analyzed, in order to evaluate and compare different Rest-API implementations, especially aiming to better manage large amounts of data and parallelize calls to an external geocoding service. • The first version is a traditional Spring Boot application, where Rest-APIs will be implemented both in a synchronous and asynchronous fashion (using CompletableFutures); • The second one is a Spring Boot Reactive aka WebFlux application, fully based on reactive and functional programming. Finally, performance and load tests were conducted with an open-source testing tool, Gatling, that allowed to create different scenarios by simulating a varying number of users making calls, with the objective to demonstrate how the WebFlux application reveals to be more scalable and performant with respect to the other attempted solutions. |
---|---|
Relators: | Marco Torchiano |
Academic year: | 2021/22 |
Publication type: | Electronic |
Number of Pages: | 115 |
Additional Information: | Tesi secretata. Fulltext non presente |
Subjects: | |
Corso di laurea: | Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering) |
Classe di laurea: | New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING |
Aziende collaboratrici: | Technology Reply Srl |
URI: | http://webthesis.biblio.polito.it/id/eprint/21306 |
Modify record (reserved for operators) |