• Non ci sono risultati.

Aggiornamento del numero di interrogazioni

" s e l e c t n u m Q r y f r o m u s e r

w h e r e l o g i n = ’ " . $ _ S E S S I O N [ ’ u s e r ’ ]. " ; " u p d a t e u s e r set n u m Q r y = v a l o r e A g g i o r n a t o w h e r e l o g i n = ’ ". $ _ S E S S I O N [ ’ u s e r ’ ] . " .

Per rendere più sicura la navigazione, una volta effettuato il login, è possibile chiudere l’accesso alla sessione utente premendo sul pulsante “logout”. Tale even-to provoca l’accesso a codice PHP contenente le funzione “session_destroy();”, che fa terminare l’accesso al server, e “header(’location: home.html’);” che reindirizza l’URL alla home del sito.

Un’altra utile funzionalità è la presenza del pulsante back nelle pagine PHP utilizzate per creare la query guidata. Premendo su tale campo avviene il rein-dirizzamento alla prima pagina dell’interrogazione, al fine di poter modificare i parametri scelti o creare una nuova query guidata.

Capitolo 4

Conclusioni e lavoro futuro

Per concludere, la realizzazione della banca dati e del sito web soddisfano le specifiche richieste per raccogliere e rendere disponibili alla comunità scientifica le misure ambientali e le stime delle metriche del canale acustico sottomarino. Attualmente il progetto è sotto forma di prototipo, utilizzabile per verificare le prestazioni del database e la comodità di navigazione del sito web, prima di implementare la versione definitiva in un server dell’Università.

In questo capitolo, vengono illustrate le possibili modifiche alla banca dati e al sito internet da apportare per migliorare l’accesso ai dati. Alcune modifiche implicano semplici aggiustamenti del codice, mentre altre presentano approcci tecnologi diversi. Nel primo paragrafo vengono proposti i miglioramenti alla banca dati e nel secondo utili modifiche al sito web.

4.1 Miglioramenti al database

In questo paragrafo vengono proposti ed illustrati dei cambiamenti alla banca dati, al fine di velocizzare l’accesso alle informazioni.

Visto che tutti i tipi di misure acustiche assumono valori numerici, con l’ec-cezione di CIR, sarebbe opportuno creare una tabella dedicata alle risposte impulsive, in modo da poter avere il valore delle altre misure salvato in un cam-po numerico e non come stringa. Questa modifica cam-porterebbe alcuni notevoli vantaggi. In primo luogo, un valore numerico occupa in memoria meno spazio di una stringa e permette operazioni più veloci. In secondo luogo, gli ordinamenti tra valori numerici producono risultati diversi dagli ordinamenti di stringhe. Ad esempio, la verifica di disuguaglianza stretta, “<”, tra i valori 750 e 1000 pro-duce vero nel caso di ordinamento numerico, falso nel caso di ordinamento tra stringhe. Nell’attuale implementazione del database, per ottenere i valori delle misure acustiche come numeri è necessario eseguire l’operazione di casting da stringa a valore numerico. Con tale gestione, eseguire interrogazioni di selezione di misure acustiche con valori compresi tra due intervalli diventa inefficiente.

Nella fase delle interrogazioni guidate, l’operazione più lenta è il confronto del tipo di misura nella clausola “where”. Infatti tale operazione è l’unico confronto tra stringhe nella query, mentre le altre sono tutte operazioni di confronto tra campi numerici. Per velocizzare tale processo si propone di creare un indice sul tipo di dato. Comunque, il confronto tra stringhe resta più lento del confronto

38 CAPITOLO 4. CONCLUSIONI E LAVORO FUTURO

numerico. Una proposta per risolvere il problema è scorporare l’informazione type secondo il seguente processo:

1. eliminare la proprietà “type” dalle misure,

2. creare la tabella “type” contenente due campi univoci: “idType” indice intero utilizzato come chiave primaria e “label” contenente il tipo di misura,

3. associare la tabella “type” alle misure con una relazione (1,N).

Con questa modifica nelle tabelle delle misure il campo per indicare il tipo sarà un valore numerico intero, così l’operazione di confronto sarà velocizzata.

Al fine di velocizzare le query, una soluzione sarebbe cambiare totalmente la struttura del database, creando più tabelle per le misure, ad esempio una per esperimento o una per tipologia di misura, in modo da interrogare tabelle più piccole. Tuttavia, così facendo non si soddisfa la richiesta della creazione di una banca dati unica.

Un’altra soluzione per migliorare la gestione e la velocità di accesso ai dati è il cambio di tecnologia. Per l’implementazione del database relazionale è stato utilizzato MySQL, uno dei migliori software RDBMS gratuito attualmente a disposizione. Tra altri RDBMS attualmente disponibili, anche a pagamento, il migliore è Oracle, potente software utilizzato da molte aziende per manipolare efficientemente GigaByte di dati. Implementare lo stesso database in Oracle, quindi, garantirebbe maggiore efficienza e velocità.

4.2 Miglioramenti al sito

Nell’ultimo paragrafo della tesi viene fatto un piccolo elenco di funzionalità da aggiungere al sito internet, per rendere la navigazione più completa ed intuitiva. Al fine di migliorare l’interfaccia utente nelle pagine dinamiche sarebbe op-portuno ideare un timePicker più comodo e accattivante, ad esempio miglioran-do la selezione di “+” e “-” utilizzanmiglioran-do dei pulsanti, oppure creanmiglioran-do una struttura simile al datepicker di jQueryUI. Per rendere meno monotona la pagina si sa-rebbero potuti utilizzare anche i radio button invece di utilizzare solamente gli input select.

Sarebbe più comodo avere un’unica pagina per creare la query, inviando un unico form. Ciò permetterebbe la trasmissione delle stesse informazioni utiliz-zando meno banda internet. Per permettere tale proprietà bisogna utilizzare un’altra tecnica di sviluppo web, Asynchronous JavaScript and XML (AJAX).1

Tale tecnica permette di realizzare applicazioni web interattive (Rich Internet Application) e asincrone. Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l’aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell’utente. Con la programmazione asincrona si supera il concetto di ela-borazione dei dati solo se provenienti da moduli form, le informazioni aggiuntive vengono richieste al server e caricate in background senza interferire con il com-portamento della pagina esistente. Di conseguenza, utilizzando questa tecnica, l’interfaccia web prevede la presenza di due select attive, experiment e type,

1AJAX è una tecnica di sviluppo web ideata da Jesse Garrett nel 2005. L’acronimo significa Asynchronous JavaScript and XML, cioè JavaScript asincrono e XML.

4.2. MIGLIORAMENTI AL SITO 39

mentre gli altri ingressi vengono disattivati. Alla selezione di esperimento e tipo desiderati vengono attivati gli altri campi di input, per i dispositivi ed i valori temporali, inizializzati leggendo il database in modo asincrono, cioè senza dover cambiare pagina.

Una volta effettuato l’accesso se si naviga sulle pagine di descrizione, an-che se la sessione utente è attiva, viene visualizzato il riquadro di login invece di segnalare che l’accesso è stato effettuato. Quando si ritorna alle pagine di interrogazione si risulta correttamente ancora connessi, in quanto non è stato effettuato alcun logout. Le pagine di descrizione sono scritte in HTML e con tale linguaggio non è permesso controllare se la sessione utente è attiva. Per permet-tere tale funzionalità occorre cambiare l’estensione in PHP e gestire la sessione, oppure cercare se tra le funzioni avanzate di jQuery è possibile verificare la connessione di un utente.

Utilità mancante al sito è una pagina per la personalizzazione delle caratteri-stiche dell’utente connesso, come ad esempio la possibilità di modificare la pas-sword. Le proprietà dell’utente sono minimali e le operazioni che può compiere sono specifiche per l’accesso della banca dati.

Se l’utenza fosse ampia potrebbe tornare utile la creazione di un forum o una mailing list di discussione in modo da ottenere facilmente un feedback

Appendice A

Annex

Documenti correlati