new found it - tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5ai/16... · 2015. 6....

13
Classe 5A Informa FOU FABR atica sezione Scientifica | Fabrizio UND IT RIZIO SCHMID o Schmidt DT

Upload: others

Post on 16-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Classe 5A Informatica sezione Scientifica

FOUND IT

FABRIZIO SCHMIDT

Informatica sezione Scientifica | Fabrizio Schmidt

OUND IT

FABRIZIO SCHMIDT

Fabrizio Schmidt

FABRIZIO SCHMIDT

Page 2: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 1

Sommario

INTRODUZIONE .......................................................................................................................................................... 2

DISCIPLINE COINVOLTE ............................................................................................................................................... 3

C# .................................................................................................................................................................................... 3

SQL.................................................................................................................................................................................. 3

HTML5 ............................................................................................................................................................................ 3

CSS .................................................................................................................................................................................. 3

ASP.NET ............................................................................................................................................................................ 4

JAVASCRIPT ........................................................................................................................................................................ 4

CRITICITÀ ............................................................................................................................................................... 5

FUNZIONAMENTO ................................................................................................................................................. 6

DATABASE ........................................................................................................................................................................ 6

SITO WEB ......................................................................................................................................................................... 8

APPLICAZIONE ............................................................................................................................................................... 10

CONCLUSIONI .......................................................................................................................................................12

Page 3: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 2

Introduzione

L’idea principale del mio progetto è nata durante le lezioni in classe, in particolare quelle di

laboratorio.

Molte volte, dopo una lezione in laboratorio,qualcuno dimentica la propria chiavetta USB e non

ricorda dove e in quale laboratorio la abbia dimenticata; da qui mi è balenata l’idea di creare un sito

web che permetta di rintracciare tramite geolocalizzazione la propria chiavetta.

Guardando sul Web, ho trovato vari siti e numerosi forum che prendono in esame il problema e che

suggeriscono come cercare di evitarlo mediante il ricorso a programmi per crittografare i dati

all’interno dei dispositivi in questione. In altre parole, la soluzione individuata dai blogger si

limitava a fornire consigli per salvaguardare il diritto alla privacy, per garantire la tutela dei dati

personali, per realizzare concretamente i principi del decreto legislativo196 del 2003. Altri siti,

invece, propongono un metodo che permette, semplicemente tramite l’autenticazione dell’utente, la

lettura dei dati. In tal modo, la cifratura dei dati avrebbe impedito senz’altro a terzi l’accesso a dati

privati, tuttaviarimaneva in piedi il problema oggettivo dello smarrimento temporaneo o definitivo

della chiavetta.Da qui il mio tentativo di esplorare soluzioni alternative e potenzialmente originali,

ovvero l’idea di creare un sistema che permettesse di rintracciare il dispositivo.

Al fine di realizzare una simile idea, ho costruito un sito web in grado di visualizzare tramite una

mappagoogle dove si trovi la pen-drive. Non solo: ho anche allestito un database che contenga le

informazioni necessarie al reperimento del dispositivo come le coordinate geografiche e l’ultimo

collegamento ad un pc, nonché le informazioni per autenticare un utente in riferimento alla propria

chiavetta.

Per poter inserire la mappa all’interno del sito ho utilizzato le API(Application Programming

Interface) di Google Maps che permettono di aggiungere le informazioni dell’utente sulla mappa

prestabilita di Google.

Le API sono sostanzialmente delle funzionalità messe a disposizione di tutti per implementare

applicazioni e programmi in modo da disporre di una base di partenza senza dover sviluppare

interamente il software.

Inoltre, per consentire la geolocalizzazione ho creato un programma da caricare sulle chiavette in

grado di inviare le informazioni al database.

Page 4: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 3

Discipline coinvolte

Le discipline su cui è incardinato il mio progetto sono essenzialmente quelle caratterizzanti il mio

percorso di studi, vale a dire Informatica, Sistemi e Tecnologie.

Del linguaggio informatico ho sfruttato C# per creare l’applicazione da caricare sulla chiavetta e

sql per la creazione del database.

C# C# è un linguaggio di programmazione orientato ad oggetti che la realizzazione di software.

SQL SQL (Structured Query Language) è un linguaggio per database che si basa sul modello relazionale si divide in quattro sezioni tematiche per:

creare e modificare schemi di database (DDL - Data Definition Language); inserire, modificare e gestire dati memorizzati (DML - Data Manipulation Language); interrogare i dati memorizzati (DQL - Data Query Language); creare e gestire strumenti di controllo ed accesso ai dati (DCL - Data Control Language).

HTML5 Per la creazione del sito e per l’accesso al database ho sfruttato HTML, oggetto di analisi all’interno

della disciplina Sistemi.

HTML5 è un linguaggio di markup(insieme di regole che descrivono i meccanismi di

rappresentazione di un testo utilizzabile su più supporti) per la strutturazione delle pagine web.

HTML5 è la versione più recente sul mercato che definisce gli stili delle pagine in documenti

separati dal resto del codice.

Viceversa, per quanto attiene alla gestione degli eventi all’interno delle pagine web mi sono avvalso

dijavascript, linguaggio di scripting; per quanto attiene al formato delle pagine web, ho utilizzato i

fogli di stile CSS (argomento affrontato in Tecnologie), asp.net un linguaggio che permette di

legare tra di loro parti di codice html e C#, nonché googlemaps per il rilevamento dei terremoti

(modalità operativa appresa lo scorso anno scolastico nel programma di Tecnologie).

CSS

CSS (Cascading Style Sheets) è un linguaggio usato per definire la formattazione di documenti HTML,ad esempio i siti web e relative pagine web.L'introduzione del CSS si è resa necessaria per separare i contenuti dalla formattazione e permettere una programmazione più chiara e facile da utilizzare, sia per gli autori delle pagine HTML che per gli utenti, garantendo contemporaneamente anche il riuso di codice ed una sua più facile manutenzione.

Page 5: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 4

Asp.Net Asp.net è un insieme di tecnologie di sviluppo di software per il web. Attraverso il ricorso di tali

tecnologie gli sviluppatori possono realizzare applicazioni Web. Tale metalinguaggio possiede la

particolarità di collegare l’architettura del sito web con parti di codice che permettono

l’implementazione di metodi e funzioni per il sito stesso.

JavaScript Javascript è un linguaggio di scripting utilizzato per la gestione degli eventi. Ѐ comunemente

adoperato nella programmazione web lato client per la creazione, all’interno di siti e di applicazioni

web, di effetti dinamici invocati da eventi innescati a loro volta dall'utente sulla pagina web.

Page 6: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 5

Criticità

Le principali criticità che ho riscontrato nella progettazione di questo sistema si riferiscono alla

geolocalizzazione. In altre parole,nel fare ricorso ad aspx.net mi sono trovato nella condizione di

sperimentare soluzioni originaliper l’inserimento della mappa google sul sito, per veicolare le

informazioni da visualizzare, nonchéper adattare le coordinate al sistema di rilevamento di google.

Innanzitutto, per richiamare la funzione in Javascript solamente ad un preciso evento, ho utilizzato

la sintassi sopra riportatain modo da eseguire il popolamento della mappa solo a login

effettuato.Dopodiché,eseguendo vari testdi funzionamento, ho notato che, anche immettendo le

coordinate esatte, esse non erano in grado di localizzare la posizione che desideravo. Pertanto, in

séguito a un autoaggiornamento nin merito, ho scoperto che il sistema di Google Maps faceva

distinzioni sull’uso della virgola e del punto. Ecco perché ho previsto l’introduzione di

CultureInfo.InvariantCulture.NumberFormat, un’istruzione che non modifica i dati in base al Paese,

ma li mantiene inalterati.In tal modo il punto utilizzato solitamente nella latitudine e nella

longitudine non viene più trasformato in virgola.

Un altro aspetto da non sottovalutare è la precisione con cui viene rintracciata una chiavetta che

varia in base al provider che ci offre la connessione. Questo perché i metodi per il recupero dei dati

si basano sui sistemi GPS integrati nelle macchine.Infatti, per ovviare a questo problema, ho

aggiunto il nome della macchina su cui è stata collegata la pen-drive. Tale accorgimento garantisce

un'ulteriore riferimento all’individuazione del luogo esatto di smarrimento del dispositivo, un

aspetto questo non banale in un contesto come quello scolastico, caratterizzato dalla presenza di

innumerevoli computer.

Page 7: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 6

Funzionamento

Database

Come evidenziato precedentemente, il progetto si articola in tre parti: un sito web, un database e un

programma.

La creazione del database è stato lo step più semplice. Infatti, per questo tipo di progetto, ho dovuto

utilizzare solamente due relazioni: una per le informazioni riguardanti la chiavetta e l’altra per le

informazioni dei vari utenti registrati.

Al fine di ottimizzare le prestazioni e di assicurare l’efficienza del database, ho aggiunto delle store

procedure tali da garantire l’univocità del nickname. Tale procedura evita l’esistenza di due utenti

con lo stesso identificativo e, al contempo, è in grado di verificare se inseriamo dati corretti mentre

facciamo il login.

Creazione del database e delle relazioni

Page 8: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 7

La store procedure DuplicateRegiviene richiamata durante la registrazione dell’utente e verifica che

non esista un altro UserName identico a quello appena inserito. Nel caso esistesse già, esso

provvede a inviare al sito un valore che attiva un messaggio di avviso all’utente di cambiare

UserName.

Creata con lo stesso meccanismo è la store procedure LoginCorrect.Essa viene richiamata non solo

dal sito, ma anche dall’applicazione che illustrerò in un paragrafo dedicato. In questo caso,

l’attenzione si pone suidati inseriti dall’utente durante l’accesso nel caso di erronea digitazione. Sia

il sito che l’applicazione avviseranno l’utente.

Definizione della store procedure

Page 9: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 8

Sito Web

Ho creato il sito web utilizzando Html5 e asp.net, i quali mi hanno permesso agevolmente ed

efficacemente di collegare tra di loro pagine html e parti di codice C#.

Per la Homepage ho scaricato un Template Online di cui ho modificato lo sfondo, provvedendo a

inserire ilink alle varie pagine. In virtù del ricorso a un Template, ho avuto a disposizione un file

CSS con il quale ho potuto mantenere unostile omogeneo per le altre pagine e adattarlo ad alcune

mie esigenze come l’aspetto delle scritte e dei pulsanti, nonché la posizione all’interno delle pagine.

La prima operazione prevista dal sito è evidentemente la registrazione, la quale chiede all’utente il

proprio nome e cognome, un UserName e una Password, tutti dati necessari per identificare l’utente

al momento del login. Dopodiché, viene spiegato all’utente l’iter da seguire per utilizzare il

programma e in che modo poter visualizzare la mappa.

Successivamente, l’avvenuto login permette l’accesso alla mappa per localizzare la chiavetta. La

mappa è gestita in modo da inserire un marcatore che identifica il luogo approssimativo in cuisi

trova il nostro dispositivo. Se clicchiamo su di esso, si aprirà una schermata (InfoWindow) con

annotate le coordinate geografiche, la data in cui i dati sono stari registrati e il nome del computer a

cui è stata collegata.

In tal modo l’utente possiede tutti i dati per recuperare il proprio dispositivo.

Page 10: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 9

Gestione dei dati e visualizzazione su mappa di marker e InfoWindow

Page 11: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 10

Applicazione

Il programma da caricare sulla chiavetta USB permette all’utente di avviare la procedura di

localizzazione non appena inserisce la propria chiavetta ad un pc. L’unico limite è rappresentato

dalla necessità della connessione ad internet: in assenza di connessione, infatti,questo procedimento

non funziona e, conseguentemente, non è possibile localizzare il dispositivo.

L’applicazione, prima di inviare le

informazioni, identifica l’utente chiedendogli

nickname e password, dopodiché comunica al

database le coordinate del pc, la data di

inserimento e il nome del pc a cui siamo

collegati. Nel caso ci trovassimo a scuola,

l’applicazione identificherebbe che la

chiavetta è stata dimenticata all’interno

dell’Istituto, ma non sarebbe in grado di

identificareil laboratorio e la macchina.

Inoltre, questa applicazione verifica se nel

database esistano già dei dati relativiall’utente.

In tal caso, le informazioni presenti vengono

aggiornate con le nuove mediante

sovrascrittura, altrimenti si provvede ad

aggiungerle.

Al momento di trovare le coordinate geografiche, l’applicazione non chiede all’utente

l’autorizzazione a rilevare la sua localizzazione. Questo perché l’utente è consapevole di ciò che sta

andando a fare; se così non fosse i dati di geolocalizzazione vengono cancellati nel momento in cui

UserName o Password non fossero corretti.

Page 12: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 11

Parte di codice C# per comunicare con il database e controllare se è il primo accesso

dall’applicazione

Page 13: New FOUND IT - Tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5Ai/16... · 2015. 6. 16. · Fabrizio Schmidt 5Ais Pagina 3 Discipline coinvolte Le discipline su cui è incardinato

Fabrizio Schmidt 5Ais Pagina 12

Conclusioni

Al fine di ottimizzare la modalità di recupero dati, un possibile miglioramento potrebbe essere

quello di aggiungere una procedura che permetta all’applicazione di auto avviarsi non appena il

dispositivo viene collegato ad una macchina. Inoltre, una sfida interessante potrebbe consistere nel

prevedere la capacità di inviare automaticamente le informazioni di localizzazione al database,

senza dovere eseguire l’accesso ogni qualvolta utilizziamo la chiavetta.

Per il momento possiamo accontentarci di sfruttare le potenzialità e le risorse di questo progetto,

finché non verranno introdotte nuove chiavette, munite di un cip integrato per la localizzazione.