1000 resultados para indirizzo :: 741 :: Curriculum A: Scienze informatiche
Resumo:
Il grande sviluppo a cui stiamo assistendo negli ultimi anni nell'ambito delle tecnologie mobile e del wearable computing apre le porte a scenari innovativi e interessanti per quanto riguarda sistemi distribuiti collaborativi. Le persone possono sempre più facilmente cooperare e scambiarsi informazioni grazie a queste nuove tecnologie e si può pensare allo sviluppo di sistemi che permettano forme molto avanzate di collaborazione facendo leva sull'aspetto hands-free, ovvero sulla possibilità di utilizzare dispositivi che liberino le mani, come i moderni smart-glasses. Per lo sviluppo di tali sistemi è necessario però studiare nuove tecniche e architetture, in quanto gli strumenti ad oggi a disposizione a supporto della realtà aumentata non sembrano essere del tutto adeguati per tale scopo. Infatti piattaforme come Wikitude o Layar, seppure offrano potenti tecniche di riconoscimento di markers e immagini e di rendering, non offrono quella dinamicità fondamentale per un sistema distribuito collaborativo. Questo scritto ha lo scopo di esplorare questi aspetti mediante l'ideazione, l'analisi, la progettazione e la prototipazione di un semplice caso di studio ispirato a sistemi collaborativi distribuiti basati su realtà aumentata. In particolare in questo lavoro si porrà l'attenzione sul livello delle comunicazioni e delle infrastrutture di rete.
Resumo:
Dall'inizio del nuovo millennio lo sviluppo di tecnologie nel campo del mobile computing, della rete internet, lo sviluppo dell'Internet of things e pure il cloud computing hanno reso possibile l'innovazione dei metodi di lavoro e collaborazione. L'evoluzione del mobile computing e della realtà aumentata che sta avvenendo in tempi più recenti apre potenzialmente nuovi orizzonti nello sviluppo di sistemi distribuiti collaborativi. Esistono oggi diversi framework a supporto della realtà aumentata, Wikitude, Metaio, Layar, ma l'interesse primario di queste librerie è quello di fornire una serie di API fondamentali per il rendering di immagini 3D attraverso i dispositivi, per lo studio dello spazio in cui inserire queste immagini e per il riconoscimento di marker. Questo tipo di funzionalità sono state un grande passo per quanto riguarda la Computer Graphics e la realtà aumentata chiaramente, però aprono la strada ad una Augmented Reality(AR) ancora più aumentata. Questa tesi si propone proprio di presentare l'ideazione, l'analisi, la progettazione e la prototipazione di un sistema distribuito situato a supporto della collaborazione basato su realtà aumentata. Lo studio di questa applicazione vuole mettere in luce molti aspetti innovativi e che ancora oggi non sono stati approfonditi né tanto meno sviluppati come API o forniti da librerie riguardo alla realtà aumentata e alle sue possibili applicazioni.
Resumo:
Negli ultimi anni i dati, la loro gestione e gli strumenti per la loro analisi hanno subito una trasformazione. Si è visto un notevole aumento dei dati raccolti dagli utenti, che si aggira tra il 40 e il 60 percento annuo, grazie ad applicazioni web, sensori, ecc.. Ciò ha fatto nascere il termine Big Data, con il quale ci si riferisce a dataset talmente grandi che non sono gestibili da sistemi tradizionali, come DBMS relazionali in esecuzione su una singola macchina. Infatti, quando la dimensione di un dataset supera pochi terabyte, si è obbligati ad utilizzare un sistema distribuito, in cui i dati sono partizionati su più macchine. Per gestire i Big Data sono state create tecnologie che riescono ad usare la potenza computazionale e la capacità di memorizzazione di un cluster, con un incremento prestazionale proporzionale al numero di macchine presenti sullo stesso. Il più utilizzato di questi sistemi è Hadoop, che offre un sistema per la memorizzazione e l’analisi distribuita dei dati. Grazie alla ridondanza dei dati ed a sofisticati algoritmi, Hadoop riesce a funzionare anche in caso di fallimento di uno o più macchine del cluster, in modo trasparente all’utente. Su Hadoop si possono eseguire diverse applicazioni, tra cui MapReduce, Hive e Apache Spark. É su quest’ultima applicazione, nata per il data processing, che è maggiormente incentrato il progetto di tesi. Un modulo di Spark, chiamato Spark SQL, verrà posto in confronto ad Hive nella velocità e nella flessibilità nell’eseguire interrogazioni su database memorizzati sul filesystem distribuito di Hadoop.
Resumo:
Questa tesi si pone come obiettivo quello di esplorare la possibilità di evolvere automi cellulari utilizzando algoritmi genetici al fine di trovare delle regole evolutive che permettano di generare un'immagine binaria qualunque a partire da una configurazione iniziale fissata.
Resumo:
Lo scopo di questa tesi è quello di analizzare i casi in cui un particolare algoritmo di estrazione delle minuzie da immagini di impronte digitali compie notevoli errori, e di migliorarne le prestazioni.
Resumo:
Questo elaborato tratta alcuni dei più noti framework di programmazione avanzata per la costruzione di piattaforme distribuite che utilizzano il linguaggio di programmazione avanzata Scala come fulcro principale per realizzare i propri protocolli. Le tecnologie analizzate saranno Finagle, Akka, Kafka e Storm. Per ciascuna di esse sarà presente una sezione di introduzione, documentazione e un esempio di codice. L’obiettivo dell’elaborato è l’analisi approfondita delle tecnologie sopraelencate per comprendere a fondo le tecniche di programmazione che le rendono uniche nel loro genere. Questo percorso fornisce una chiave di lettura obiettiva e chiara di ciascuna tecnologia, sarà cura del lettore proseguire nello studio individuale della specifica tecnica che ritiene essere più efficace o interessante. Alla fine della tesi è presente un aperto dibattito in cui le quattro tecnologie vengono messe a confronto e giudicate in base alle loro caratteristiche. Inoltre vengono ipotizzate realtà in cui si possa trovare collaborazione tra i vari framework ed, infine, è presente una mia personale opinione basata sulla mia esperienza in merito.
Resumo:
I paradigmi di programmazione più utilizzati nella realizzazione di sistemi embedded presentano delle limitazioni, in quanto non consentono di modellare alcuni aspetti fondamentali. Il paradigma ad agenti presenta delle caratteristiche che consentono di modellare alcuni aspetti fondamenetali di un sistema embedded, oltre a fornire un livello di astrazione più elevato. All'interno di questa tesi verranno mostrati i concetti fondamentali di questo paradigma, mostrando inoltre i costrutti di base di un linguaggio ad agenti come Jason. Nella programmazione ad agenti, l'ambiente riveste un ruolo fondomentale. All'interno di questa trattazione verrà introdotto un paradigma per la programmazione di ambienti, descrivendo inoltre il framework di riferimento: CArtAgo. Dopo aver descritto i concetti e gli strumenti per applicare il paradigma ad agenti, verrà proposto un metodo per la realizzazione di sistemi embedded tramite l'applicazione di Jason sulla scheda di prototipazione Arduino.
Resumo:
Oggigiorno milioni di persone fanno uso di Internet per gli utilizzi più disparati: dalla ricerca di informazioni sul Web al gioco online; dall'invio e ricezione di email all'uso di applicazioni social e tante altre attività. Mentre milioni di dispositivi ci offrono queste possibilità, un grande passo in avanti sta avvenendo in relazione all'uso di Internet come una piattaforma globale che permetta a oggetti di tutti i giorni di coordinarsi e comunicare tra di loro. È in quest'ottica che nasce Internet of Things, l'Internet delle cose, dove un piccolo oggetto come un braccialetto può avere un grande impatto nel campo medico per il monitoraggio da remoto di parametri vitali o per la localizzazione di pazienti e personale e l'effettuazione di diagnosi da remoto; dove un semplice sensore ad infrarosso può allertarci a distanza di una presenza non autorizzata all'interno della nostra abitazione; dove un'autovettura è in grado di leggere i dati dai sensori distribuiti sulla strada. Questa tesi vuole ripercorrere gli aspetti fondamentali di Internet of Things, dai sistemi embedded fino alla loro applicazione nella vita odierna, illustrando infine un progetto che mostra come alcune tecnologie IoT e wearable possano integrarsi nella domotica, come per esempio l'utilizzo di uno smartwatch, come Apple Watch, per il controllo dell'abitazione.
Resumo:
Negli ultimi anni il mondo ha assistito ad un'espansione esponenziale del mercato mobile, un settore che ha rivoluzionato le nostre vite e le nostre abitudini. Parallelamente, sono entrati in commercio i primi dispositivi commerciali dell'era dell'Internet delle Cose (Internet-of-Things), un paradigma secondo il quale oggetti utilizzati quotidianamente possono dialogare tra loro mediante Internet al fine di migliorare la vita personale e i processi produttivi aziendali. Un'applicazione pratica di Internet-of-Things è costituita dai dispositivi indossabili (wearable) capaci per mezzo di sensori di raccogliere dati sanitari, ambientali e fisici attorno a noi. I dispositivi indossabili attualmente in commercio permettono di collegarsi tramite protocolli e standard come WiFi e Bluetooth ad altri dispositivi, siano essi indossabili, smartphone o computer. Da questo concetto nasce l’idea di far comunicare un indossabile con altri dispositivi utilizzati in un contesto aziendale. In questo documento verrà preso in considerazione un tassello fondamentale nella gestione delle risorse umane e della sicurezza: il controllo degli accessi in un edificio e lo sblocco di un varco, sia esso un tornello, una porta o una serranda. Verrà quindi analizzato e progettato un sistema che possa effettuare le operazioni di timbratura e di apertura di varchi dall'orologio Apple Watch e da iPhone collegandosi ad un terminale dedicato.
Resumo:
Questa tesi si pone l'obiettivo di esplorare alcuni aspetti di uno dei settori più in crescita in questi anni (e nei prossimi) in ambito informatico: \textbf{Internet of Things}, con un occhio rivolto in particolar modo a quelle che sono le piattaforme di sviluppo disponibili in questo ambito. Con queste premesse, si coglie l'occasione per addentrarsi nella scoperta della piattaforma realizzata e rilasciata da pochi mesi da uno dei colossi del mercato IT: Microsoft. Nel primo capitolo verrà trattato Internet of Things in ambito generale, attraverso una panoramica iniziale seguita da un'analisi approfondita dei principali protocolli sviluppati per questa tecnologia. Nel secondo capitolo verranno elencate una serie di piattaforme open source disponibili ad oggi per lo sviluppo di sistemi IoT. Dal terzo capitolo verrà incentrata l'attenzione sulle tecnologie Microsoft, in particolare prima si tratterà Windows 10 in generale, comprendendo \emph{UWP Applications}. Di seguito, nel medesimo capitolo, sarà focalizzata l'attenzione su Windows IoT Core, esplorandolo dettagliatamente (Windows Remote Arduino, Modalità Headed/Headless, etc.). Il capitolo a seguire concernerà la parte progettuale della tesi, comprendendo lo sviluppo del progetto \textbf{Smart Parking} in tutte le sue fasi (dei Requisiti fino ad Implementazione e Testing). Nel quinto (ed ultimo) capitolo, saranno esposte le conclusioni relative a Windows IoT Core e i suoi vantaggi/svantaggi.
Resumo:
La tesi ha lo scopo di indagare le tecnologie disponibili per la realizzazione di linguaggi di programmazione e linguaggi domain specific in ambiente Java. In particolare, vengono proposti e analizzati tre strumenti presenti sul mercato: JavaCC, ANTLR e Xtext. Al termine dell’elaborato, il lettore dovrebbe avere un’idea generale dei principali meccanismi e sistemi utilizzati (come lexer, parser, AST, parse trees, etc.), oltre che del funzionamento dei tre tools presentati. Inoltre, si vogliono individuare vantaggi e svantaggi di ciascuno strumento attraverso un’analisi delle funzionalità offerte, così da fornire un giudizio critico per la scelta e la valutazione dei sistemi da utilizzare.
Resumo:
Internet of Things (IoT): tre parole che sintetizzano al meglio come la tecnologia abbia pervaso quasi ogni ambito della nostra vita. In questa tesi andrò a esplorare le soluzioni hardware e soprattutto software che si celano dietro allo sviluppo di questa nuova frontiera tecnologica, dalla cui combinazione con il web nasce il Web of Things, ovvero una visione globale, accessibile da qualsiasi utente attraverso i comuni mezzi di navigazione, dei servizi che ogni singolo smart device può offrire. Sarà seguito un percorso bottom-up partendo dalla descrizione fisica dei device e delle tecnologie abilitanti alla comunicazione thing to thing ed i protocolli che instaurano fra i device le connessioni. Proseguendo per l’introduzione di concetti quali middleware e smart gateway, sarà illustrata l’integrazione nel web 2.0 di tali device menzionando durante il percorso quali saranno gli scenari applicativi e le prospettive di sviluppo auspicabili.
Resumo:
Lo scopo dell'elaborato di tesi è l'analisi, progettazione e sviluppo di un prototipo di una infrastruttura cloud in grado di gestire un grande flusso di eventi generati da dispositivi mobili. Questi utilizzano informazioni come la posizione assunta e il valore dei sensori locali di cui possono essere equipaggiati al fine di realizzare il proprio funzionamento. Le informazioni così ottenute vengono trasmesse in modo da ottenere una rete di device in grado di acquisire autonomamente informazioni sull'ambiente ed auto-organizzarsi. La costruzione di tale struttura si colloca in un più ampio ambito di ricerca che punta a integrare metodi per la comunicazione ravvicinata con il cloud al fine di permettere la comunicazione tra dispositivi vicini in qualsiasi situazione che si potrebbe presentare in una situazione reale. A definire le specifiche della infrastruttura e quindi a impersonare il ruolo di committente è stato il relatore, Prof. Mirko Viroli, mentre lo sviluppo è stato portato avanti da me e dal correlatore, Ing. Pietro Brunetti. Visti gli studi precedenti riguardanti il cloud computing nell'area dei sistemi complessi distribuiti, Brunetti ha dato il maggiore contributo nella fase di analisi del problema e di progettazione mentre la parte riguardante la effettiva gestione degli eventi, le computazioni in cloud e lo storage dei dati è stata maggiormente affrontata da me. In particolare mi sono occupato dello studio e della implementazione del backend computazionale, basato sulla tecnologia Apache Storm, della componente di storage dei dati, basata su Neo4j, e della costruzione di un pannello di visualizzazione basato su AJAX e Linkurious. A questo va aggiunto lo studio su Apache Kafka, utilizzato come tecnologia per realizzare la comunicazione asincrona ad alte performance tra le componenti. Si è reso necessario costruire un simulatore al fine di condurre i test per verificare il funzionamento della infrastruttura prototipale e per saggiarne l'effettiva scalabilità, considerato il potenziale numero di dispositivi da sostenere che può andare dalle decine alle migliaia. La sfida più importante riguarda la gestione della vicinanza tra dispositivi e la possibilità di scalare la computazione su più macchine. Per questo motivo è stato necessario far uso di tecnologie per l'esecuzione delle operazioni di memorizzazione, calcolo e trasmissione dei dati in grado di essere eseguite su un cluster e garantire una accettabile fault-tolerancy. Da questo punto di vista i lavori che hanno portato alla costruzione della infrastruttura sono risultati essere un'ottima occasione per prendere familiarità con tecnologie prima sconosciute. Quasi tutte le tecnologie utilizzate fanno parte dell'ecosistema Apache e, come esposto all'interno della tesi, stanno ricevendo una grande attenzione da importanti realtà proprio in questo periodo, specialmente Apache Storm e Kafka. Il software prodotto per la costruzione della infrastruttura è completamente sviluppato in Java a cui si aggiunge la componente web di visualizzazione sviluppata in Javascript.
Resumo:
Lo scopo dell’elaborato di tesi è la progettazione e lo sviluppo di un’applicazione per il modulo Bluetooth Low Energy (BLE) Texas Instrument CC2650 in grado di leggere le informazioni da un sensore analogico, tramite un Analog-Digital- Converter (ADC), e di scambiare i dati con uno smartphone Android in tempo reale. L’interfaccia realizzata deve essere universale, ovvero dovrà essere compatibile con sensori di diverso tipo, facilmente estensibile per l’aggiunta di un numero maggiore di periferiche di lettura e utilizzabile con un ampio numero di dispositivi.
Resumo:
L'obiettivo della tesi è quello di sviluppare una piattaforma software a supporto della programmazione di applicazioni mobile per la rilevazione di parametri vitali. Questo caso di studio offre una ampia discussione su wearable computing, healthcare e prototipazione del wearable. La tesi va a descrivere tutte le fasi di analisi, modellazione e progettazione del sistema, evidenziando problematiche e soluzioni adottate.