FOUND IT FABRIZIO SCHMIDT Classe 5A Informatica sezione Scientifica Fabrizio Schmidt
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 1
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 2
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 3
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 4
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 5
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 6
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 7
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 8
Gestione dei dati e visualizzazione su mappa di marker e InfoWindow Fabrizio Schmidt 5Ais Pagina 9
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 10
Parte di codice C# per comunicare con il database e controllare se è il primo accesso dall applicazione Fabrizio Schmidt 5Ais Pagina 11
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. Fabrizio Schmidt 5Ais Pagina 12