polito.it
Politecnico di Torino (logo)

Functional Reactive Web Programming with Spring WebFlux

Civera, Elena

Functional Reactive Web Programming with Spring WebFlux.

Rel. Giovanni Malnati. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2018

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Accesso al documento: Accesso libero
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (2MB) | Preview
Abstract:

In un ambiente moderno in cui “all’uomo non piace aspettare” è importante avere applicazioni che siano interattive, cioè sistemi che reagiscano in modo reattivo e quindi con un tempo di latenza minimo. Il lavoro di questa tesi è quello di studiare il concetto di “reactive” così come è stato definito dallo standard ReactiveStream e di applicarlo ad un’architettura che lo supporti, al fine di confrontare due applicazioni identiche, dove una supporta la programmazione reattiva, mentre l’altra no. Nel primo capitolo si definisce quindi cosa si intende con reactive. Dietro di essa infatti si nascondono la programmazione asincrona e concorrente, che permetta al sistema di non bloccarsi, gestendo quindi al meglio le risorse e fornendo già i primi risultati all’utente quando ancora non tutto il risultato è definitivamente pronto. Questo è fonte di guadagno sotto molti aspetti: meno spreco di risorse, bassi tempi di latenza e si evita quindi che l’utente cominci a visualizzare altri siti web nell’attesa del caricamento dell’intera pagina. Maggiore è la reattività dei sito, maggiore sarà il tempo di permanenza dell’utente su di esso. Nel secondo capitolo si applicano i concetti appena definiti in un’applicazione reale. Questo è stato realizzato studiando il Framework WebFlux di Spring. Esso utilizza di base la libreria Reactor(oggetto del mio studio), ma è possibile adottarne anche altre. Nel terzo capitolo testo due applicazioni completamente identiche, con la sola ed unica differenza che una applica il concetto di reactive, mentre l’altra no. La prima è realizzata con Spring WebFlux, mentre la seconda con Spring WebMVC. Quest’ultima è stata scelta perché ha un’architettura quasi identica alla prima, infatti Spring definisce MVC e WebFlux come due stack protocollari alternativi, dove uno non sostituisce l’altro, quindi completamente compatibili. Esse verranno testate mediante l’utilizzo di due Tool: Gatling e Jmeter. L’utilizzo della programmazione reattiva porta benefici enormi in situazioni ben specifiche. Essa infatti non è adatta a ogni situazione. Il confronto fatto tra i due framework Spring MVC e Spring WeFlux infatti non vuole evidenziare che WebFlux sia migliore di MVC, perché ognuno di essi reagisce meglio a seconda del contesto in cui viene utilizzato, ecco perché occorre che sia ben chiaro quale è il contesto dell’applicazione prima di scegliere di utilizzare l’una o l’altra.

Relatori: Giovanni Malnati
Anno accademico: 2018/19
Tipo di pubblicazione: Elettronica
Soggetti:
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: Nuovo ordinamento > Laurea magistrale > LM-32 - INGEGNERIA INFORMATICA
Aziende collaboratrici: NON SPECIFICATO
URI: http://webthesis.biblio.polito.it/id/eprint/9508
Modifica (riservato agli operatori) Modifica (riservato agli operatori)