new found it - tesinetesine.marconirovereto.it/classi/as2014_2015/2015.5ai/16... · 2015. 6....
TRANSCRIPT
Classe 5A Informatica sezione Scientifica
FOUND IT
FABRIZIO SCHMIDT
Informatica sezione Scientifica | Fabrizio Schmidt
OUND IT
FABRIZIO SCHMIDT
Fabrizio Schmidt
FABRIZIO SCHMIDT
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
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.
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.
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.
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.
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
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
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.
Fabrizio Schmidt 5Ais Pagina 9
Gestione dei dati e visualizzazione su mappa di marker e InfoWindow
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.
Fabrizio Schmidt 5Ais Pagina 11
Parte di codice C# per comunicare con il database e controllare se è il primo accesso
dall’applicazione
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.