• Non ci sono risultati.

“contiene una componente del nome che indica un ruolo o una posizione specifici a livello sociale, come nel caso di titoli ufficiali o grado

6.2 La struttura MVC

L’applicazione web si basa sull’utilizzo delle logiche del modello MVC, ovvero ​M​odel

V​iew ​C​ontroller, che separa concettualmente le applicazioni in:

● gestione dei dati e delle logiche interne;

● presentazione delle elaborazioni ottenute dai dati all’utente;

● l’infrastruttura che permette la comunicazione tra le due parti precedenti.

Viene ottenuta così una separazione fra la logica applicativa, di cui si occupano il controller e il model, e l'interfaccia utente della quale si occupa la parte view.

In questo modo è possibile fare una chiara distinzione tra oggetti di dominio che modellano il mondo reale e gli oggetti utilizzati per presentare gli elementi che sono visibili sullo schermo.

Nello specifico il controller riceve i comandi dall’utente mentre il model fornisce i metodi per accedere ai dati . 61

All’interno della parte model viene operata una ulteriore suddivisione delle classi tramite l’utilizzo dei DAO, ​D​ata ​A​ccess ​O​bject . 62

Questo strato implementa le operazioni di CRUD, così chiamate perché sono le principali operazioni compiute sul database (​C​reate, ​R​ead, ​U​pdate, ​D​elete ). 63

Per permettere alla parte del model e del controller di comunicare correttamente è stato necessario implementare uno strato anch’esso tipico in questa struttura: lo strato del service. Questa parte viene utilizzata per richiamare i metodi del DAO, coordinarli e utilizzarli nella parte del controller.

61 GRAIG WALLS, ​Spring in Action, Shelter Island, Manning Publications, 2015, cap. 5.1. 62​Ibidem, cap. 10.2.

Tesi Magistrale di ​Teresa Meini

L’applicazione si connette al database attraverso le API JDBC ( ​J​ava ​D​ata​B​ase

C​onnectivity ) del linguaggio Java e i relativi driver. Per accedere basta fornire i nomi64 giusti per avviare la connessione (indirizzo per raggiungere il database, utente, password, nome della tabella, colonna, eccetera).

Per sfruttare al meglio la API JDBC viene utilizzata la classe JdbcTemplate , a quale 65 permette a scrivere meno codice e aiuta a evitare gli errori più comuni.

Per far girare l'applicazione web è stato sfruttato il servlet container Tomcat, una piattaforma software per l'esecuzione di applicazioni Web sviluppate in linguaggio Java. Tomcat implementa il supporto alle pagine JSP, ​J​ava​S​erver ​P​ages , che servono66

a presentare dinamicamente i risultati ottenuti in formato HTML a seconda delle diverse richieste dall’utente.

figura 6.2.1

Tutto ciò è stato realizzato grazie al framework ​open source Spring, che è specializzato per la creazione di applicazioni di tipo J2EE , aiutando a ridurre la complessità di 67 sviluppo di progetti simili grazie all'uso di pattern di programmazione semplici e potenti.

64 GRAIG WALLS, ​Spring in Action, Shelter Island, Manning Publications, 2015, cap. 10.1. 65​Ibidem, cap. 1.1.4.

66 GRAIG WALLS, ​Spring in Action, Shelter Island, Manning Publications, 2015, Part 2. 67​Ibidem, Part 1.

Tesi Magistrale di ​Teresa Meini

Utilizzando Spring (o meglio, come verrà ricordato successivamente, Spring Boot, framework che facilita ulteriormente la creazione dei progetti basati su Spring ) sono 68

stati ottenuti dei risultati soddisfacenti sfruttando delle librerie consone.

Spring funziona tramite l’iniezione di dipendenze, tecnica chiamata ​D​ependency

I​njection (DI) . 69

La DI è un tipo di IoC ( ​I​nversion ​o​f ​C​ontrol ) che serve a minimizzare il grado di 70 interdipendenza tra i vari moduli e ne massimizza la riusabilità.

Questi meccanismi permettono di iniettare classi direttamente dentro altre classi , in 71 maniera tale da gestirle in maniera indipendente le une dalle altre e senza bisogno di inizializzarle; tutto questo è gestito da Spring senza bisogno di interventi diretti.

6.2.1 Perché utilizzare questa struttura?

MVC è una tipologia di struttura già ben collaudata e ampiamente utilizzata nella creazione di applicazioni web: esistono vari tipi di strutture simili e derivate da questa 72

, ma la scelta della struttura da utilizzare va compiuta basandosi principalmente sui problemi da risolvere e sul tipo di applicazione da sviluppare.

Per creare l’applicazione in maniera funzionale era necessaria una divisione ordinata e precisa delle parti in questione, divisione che non doveva essere eccessiva per evitare problemi di prestazioni . 73

La scelta della struttura MVC è quindi risultata ottimale perché distingue chiaramente tra le parti prese in causa e i loro ruoli all’interno di un progetto

6.2.2 Come è stato creato il progetto

Spring Boot permette la creazione di progetti di tipo Spring in maniera facile e veloce.

68 GRAIG WALLS, ​Spring Boot in Action, Shelter Island, Manning Publications, 2016, cap. 1. 69 GRAIG WALLS, ​Spring Boot in Action, Shelter Island, Manning Publications, 2016, cap. 1. 70 Vedi significato in: https://en.wikipedia.org/wiki/Inversion_of_control.

71​Ibidem, cap. 1.4.2.

72 Collegamento web per approfondire i vari design pattern che è possibile utilizzare: http://www.infoworld.com/article/2926003/microsoft-net/exploring-the-mvc-mvp-and-mvvm-design-patt erns.html​.

Tesi Magistrale di ​Teresa Meini

Attraverso uno strumento online per generare progetti permette di scegliere le librerie74 più adatte alla creazione del progetto che è inteso realizzare; dentro di esso vengono inseriti gli strumenti per configurare l’applicazione in maniera automatica e senza il bisogno di scrivere documenti di configurazione in linguaggio XML da parte del programmatore.

Epidoc-Creator utilizza la tecnologia Maven , un sistema che permette di gestire la 75 costruzione automatica di un progetto Java e le librerie da cui esso dipende.

Maven si basa sull’utilizzo di un documento chiamato ​pom.xml​, dove vengono descritte le librerie necessarie a descrivere un corretto funzionamento del progetto e i passi necessari per compilarlo ed esportarlo in formato pacchetto per il successivo deploy sull'application server.

In questo caso il documento ​pom.xml viene automaticamente creato dal generatore di progetti di Spring Boot; è possibile ritrovare al suo interno le librerie aggiunte tramite le scelte effettuate durante la generazione via interfaccia web, ovvero JDBC, Web, PostgreSQL e Security.

Lo scopo di queste librerie è dare la possibilità di creare degli oggetti Java e gli oggetti da cui essi a loro volta dipendono per utilizzarli all’interno del progetto.

Il punto focale di Spring, di conseguenza anche di Spring Boot, è l’utilizzo delle annotazioni , meccanismi che permettono di iniettare parti di codice o dichiarare76 l’utilizzo di una classe all’interno delle altre classi, impedendo quindi di ripetere codice ad oltranza.

Quella che viene utilizzata maggiormente è ​@Autowired: essa è usata per configurare l’iniezione di dipendenza in Spring ed è associata a un metodo setter, o a un campo o a un costruttore di una classe; in pratica è l’annotazione che rappresenta il cuore del concetto DI.

74 Collegamento web: https://start.spring.io/.

75 Spiegazione di cosa è maven all’interno del libro online “Maven: The Complete Reference”: http://books.sonatype.com/mvnref-book/reference/introduction-sect-whatIsMaven.html​.

Tesi Magistrale di ​Teresa Meini

Documenti correlati