12 resultados para Discovery platforms
em AMS Tesi di Laurea - Alm@DL - Università di Bologna
Towards model driven software development for Arduino platforms: a DSL and automatic code generation
Resumo:
La tesi ha lo scopo di esplorare la produzione di sistemi software per Embedded Systems mediante l'utilizzo di tecniche relative al mondo del Model Driven Software Development. La fase più importante dello sviluppo sarà la definizione di un Meta-Modello che caratterizza i concetti fondamentali relativi agli embedded systems. Tale modello cercherà di astrarre dalla particolare piattaforma utilizzata ed individuare quali astrazioni caratterizzano il mondo degli embedded systems in generale. Tale meta-modello sarà quindi di tipo platform-independent. Per la generazione automatica di codice è stata adottata una piattaforma di riferimento, cioè Arduino. Arduino è un sistema embedded che si sta sempre più affermando perché coniuga un buon livello di performance ed un prezzo relativamente basso. Tale piattaforma permette lo sviluppo di sistemi special purpose che utilizzano sensori ed attuatori di vario genere, facilmente connessi ai pin messi a disposizione. Il meta-modello definito è un'istanza del meta-metamodello MOF, definito formalmente dall'organizzazione OMG. Questo permette allo sviluppatore di pensare ad un sistema sotto forma di modello, istanza del meta-modello definito. Un meta-modello può essere considerato anche come la sintassi astratta di un linguaggio, quindi può essere definito da un insieme di regole EBNF. La tecnologia utilizzata per la definizione del meta-modello è stata Xtext: un framework che permette la scrittura di regole EBNF e che genera automaticamente il modello Ecore associato al meta-modello definito. Ecore è l'implementazione di EMOF in ambiente Eclipse. Xtext genera inoltre dei plugin che permettono di avere un editor guidato dalla sintassi, definita nel meta-modello. La generazione automatica di codice è stata realizzata usando il linguaggio Xtend2. Tale linguaggio permette di esplorare l'Abstract Syntax Tree generato dalla traduzione del modello in Ecore e di generare tutti i file di codice necessari. Il codice generato fornisce praticamente tutta la schematic part dell'applicazione, mentre lascia all'application designer lo sviluppo della business logic. Dopo la definizione del meta-modello di un sistema embedded, il livello di astrazione è stato spostato più in alto, andando verso la definizione della parte di meta-modello relativa all'interazione di un sistema embedded con altri sistemi. Ci si è quindi spostati verso un ottica di Sistema, inteso come insieme di sistemi concentrati che interagiscono. Tale difinizione viene fatta dal punto di vista del sistema concentrato di cui si sta definendo il modello. Nella tesi viene inoltre introdotto un caso di studio che, anche se abbastanza semplice, fornisce un esempio ed un tutorial allo sviluppo di applicazioni mediante l'uso del meta-modello. Ci permette inoltre di notare come il compito dell'application designer diventi piuttosto semplice ed immediato, sempre se basato su una buona analisi del problema. I risultati ottenuti sono stati di buona qualità ed il meta-modello viene tradotto in codice che funziona correttamente.
Resumo:
La crescente disponibilità di dispositivi meccanici e -soprattutto - elettronici le cui performance aumentano mentre il loro costo diminuisce, ha permesso al campo della robotica di compiere notevoli progressi. Tali progressi non sono stati fatti unicamente per ciò che riguarda la robotica per uso industriale, nelle catene di montaggio per esempio, ma anche per quella branca della robotica che comprende i robot autonomi domestici. Questi sistemi autonomi stanno diventando, per i suddetti motivi, sempre più pervasivi, ovvero sono immersi nello stesso ambiente nel quale vivono gli essere umani, e interagiscono con questi in maniera proattiva. Essi stanno compiendo quindi lo stesso percorso che hanno attraversato i personal computer all'incirca 30 anni fa, passando dall'essere costosi ed ingombranti mainframe a disposizione unicamente di enti di ricerca ed università, ad essere presenti all'interno di ogni abitazione, per un utilizzo non solo professionale ma anche di assistenza alle attività quotidiane o anche di intrattenimento. Per questi motivi la robotica è un campo dell'Information Technology che interessa sempre più tutti i tipi di programmatori software. Questa tesi analizza per prima cosa gli aspetti salienti della programmazione di controllori per robot autonomi (ovvero senza essere guidati da un utente), quindi, come l'approccio basato su agenti sia appropriato per la programmazione di questi sistemi. In particolare si mostrerà come un approccio ad agenti, utilizzando il linguaggio di programmazione Jason e quindi l'architettura BDI, sia una scelta significativa, dal momento che il modello sottostante a questo tipo di linguaggio è basato sul ragionamento pratico degli esseri umani (Human Practical Reasoning) e quindi è adatto alla implementazione di sistemi che agiscono in maniera autonoma. Dato che le possibilità di utilizzare un vero e proprio sistema autonomo per poter testare i controllori sono ridotte, per motivi pratici, economici e temporali, mostreremo come è facile e performante arrivare in maniera rapida ad un primo prototipo del robot tramite l'utilizzo del simulatore commerciale Webots. Il contributo portato da questa tesi include la possibilità di poter programmare un robot in maniera modulare e rapida per mezzo di poche linee di codice, in modo tale che l'aumento delle funzionalità di questo risulti un collo di bottiglia, come si verifica nella programmazione di questi sistemi tramite i classici linguaggi di programmazione imperativi. L'organizzazione di questa tesi prevede un capitolo di background nel quale vengono riportare le basi della robotica, della sua programmazione e degli strumenti atti allo scopo, un capitolo che riporta le nozioni di programmazione ad agenti, tramite il linguaggio Jason -quindi l'architettura BDI - e perché tale approccio è adatto alla programmazione di sistemi di controllo per la robotica. Successivamente viene presentata quella che è la struttura completa del nostro ambiente di lavoro software che comprende l'ambiente ad agenti e il simulatore, quindi nel successivo capitolo vengono mostrate quelle che sono le esplorazioni effettuate utilizzando Jason e un approccio classico (per mezzo di linguaggi classici), attraverso diversi casi di studio di crescente complessità; dopodiché, verrà effettuata una valutazione tra i due approcci analizzando i problemi e i vantaggi che comportano questi. Infine, la tesi terminerà con un capitolo di conclusioni e di riflessioni sulle possibili estensioni e lavori futuri.
Resumo:
L'innovazione delle tecnologie di sequenziamento negli ultimi anni ha reso possibile la catalogazione delle varianti genetiche nei campioni umani, portando nuove scoperte e comprensioni nella ricerca medica, farmaceutica, dell'evoluzione e negli studi sulla popolazione. La quantità di sequenze prodotta è molto cospicua, e per giungere all'identificazione delle varianti sono necessari diversi stadi di elaborazione delle informazioni genetiche in cui, ad ogni passo, vengono generate ulteriori informazioni. Insieme a questa immensa accumulazione di dati, è nata la necessità da parte della comunità scientifica di organizzare i dati in repository, dapprima solo per condividere i risultati delle ricerche, poi per permettere studi statistici direttamente sui dati genetici. Gli studi su larga scala coinvolgono quantità di dati nell'ordine dei petabyte, il cui mantenimento continua a rappresentare una sfida per le infrastrutture. Per la varietà e la quantità di dati prodotti, i database giocano un ruolo di primaria importanza in questa sfida. Modelli e organizzazione dei dati in questo campo possono fare la differenza non soltanto per la scalabilità, ma anche e soprattutto per la predisposizione al data mining. Infatti, la memorizzazione di questi dati in file con formati quasi-standard, la dimensione di questi file, e i requisiti computazionali richiesti, rendono difficile la scrittura di software di analisi efficienti e scoraggiano studi su larga scala e su dati eterogenei. Prima di progettare il database si è perciò studiata l’evoluzione, negli ultimi vent’anni, dei formati quasi-standard per i flat file biologici, contenenti metadati eterogenei e sequenze nucleotidiche vere e proprie, con record privi di relazioni strutturali. Recentemente questa evoluzione è culminata nell’utilizzo dello standard XML, ma i flat file delimitati continuano a essere gli standard più supportati da tools e piattaforme online. È seguita poi un’analisi dell’organizzazione interna dei dati per i database biologici pubblici. Queste basi di dati contengono geni, varianti genetiche, strutture proteiche, ontologie fenotipiche, relazioni tra malattie e geni, relazioni tra farmaci e geni. Tra i database pubblici studiati rientrano OMIM, Entrez, KEGG, UniProt, GO. L'obiettivo principale nello studio e nella modellazione del database genetico è stato quello di strutturare i dati in modo da integrare insieme i dati eterogenei prodotti e rendere computazionalmente possibili i processi di data mining. La scelta di tecnologia Hadoop/MapReduce risulta in questo caso particolarmente incisiva, per la scalabilità garantita e per l’efficienza nelle analisi statistiche più complesse e parallele, come quelle riguardanti le varianti alleliche multi-locus.
Resumo:
L'obbiettivo di questa tesi è la produzione del prototipo di un sistema che sia in grado di ottenere dati da un insieme di sensori per poterli poi trasmettere all’utente, in modo che esso sia maggiormente cosciente del mondo che lo circonda. Affronteremo la sfida in uno scenario medico / di soccorso, dove un operatore si avvicinerà ad un gruppo di pazienti con l’intenzione di ottenere i parametri vitali di uno di essi. All'interno del documento saranno descritte le tecnologie sfruttate per la realizzazione del prototipo: Bluetooth e Bluetooth Smart, il sistema operativo Linux in esecuzione su un Raspberry Pi dotato di sensori, il sistema operativo Android in esecuzione su smartphone o tablet e iBeacon. Verranno poi analizzati i requisiti del sistema da realizzare. Infine verrà descritta l'implementazione utilizzata nel prototipo e analizzato il suo comportamento.
Resumo:
Lo scopo di questo elaborato è di analizzare e progettare un sistema in grado di supportare la definizione dei dati nel formato utilizzato per definire in modo formale la semantica dei dati, ma soprattutto nella complessa e innovativa attività di link discovery. Una attività molto potente che, tramite gli strumenti e le regole del Web Semantico (chiamato anche Web of Data), permette data una base di conoscenza sorgente ed altre basi di conoscenza esterne e distribuite nel Web, di interconnettere i dati della base di conoscenza sorgente a quelli esterni sulla base di complessi algoritmi di interlinking. Questi algoritmi fanno si che i concetti espressi sulla base di dati sorgente ed esterne vengano interconnessi esprimendo la semantica del collegamento ed in base a dei complessi criteri di confronto definiti nel suddetto algoritmo. Tramite questa attività si è in grado quindi di aumentare notevolmente la conoscenza della base di conoscenza sorgente, se poi tutte le basi di conoscenza presenti nel Web of Data seguissero questo procedimento, la conoscenza definita aumenterebbe fino a livelli che sono limitati solo dalla immensa vastità del Web, dando una potenza di elaborazione dei dati senza eguali. Per mezzo di questo sistema si ha l’ambizioso obiettivo di fornire uno strumento che permetta di aumentare sensibilmente la presenza dei Linked Open Data principalmente sul territorio nazionale ma anche su quello internazionale, a supporto di enti pubblici e privati che tramite questo sistema hanno la possibilità di aprire nuovi scenari di business e di utilizzo dei dati, dando una potenza al dato che attualmente è solo immaginabile.
Resumo:
Programma per il riconoscimento di copie di programmi in linguaggio C
Resumo:
In questa tesi vengono analizzate le principali tecniche di Resource Discovery in uso nei sistemi di Grid Computing, valutando i principali vantaggi e svantaggi di ogni soluzione. Particolare attenzione verrà riposta sul Resource Discovery ad Agenti, che si propone come architettura capace di risolvere in maniera definitiva i classici problemi di queste reti. All'interno dell'elaborato, inoltre, ogni tecnica presentata verrà arricchita con una sua implementazione pratica: tra queste, ricordiamo MDS, Chord e l'implementazione Kang.
Resumo:
L'argomento di questa tesi è l'architettura di rete Delay-/Disruption-Tolerant Networking (DTN), progettata per operare nelle reti “challenged”, dove la suite di protocolli TCP/IP risulta inefficace a causa di lunghi ritardi di propagazione del segnale, interruzioni e disturbi di canale, ecc. Esempi di reti “challenged” variano dalle reti interplanetarie alle Mobile Ad-Hoc Networks (MANETs). Le principali implementazioni dell'architettura DTN sono DTN2, implementazione di riferimento, e ION, sviluppata da NASA JPL per applicazioni spaziali. Una grande differenza tra reti spaziali e terrestri è che nello spazio i movimenti dei nodi sono deterministici, mentre non lo sono per i nodi mobili terrestri, i quali generalmente non conoscono la topologia della rete. Questo ha portato allo sviluppo di diversi algoritmi di routing: deterministici per le reti spaziali e opportunistici per quelle terrestri. NASA JPL ha recentemente deciso di estendere l'ambito di applicazione di ION per supportare anche scenari non deterministici. Durante la tesi, svolta presso NASA JPL, mi sono occupato di argomenti diversi, tutti finalizzati a questo obiettivo. Inizialmente ho testato la nuova implementazione dell'algoritmo IP Neighbor Discovery (IPND) di ION, corretti i bug e prodotta la documentazione ufficiale. Quindi ho contribuito ad integrare il Contact Graph Routing (CGR) di ION nel simulatore DTN “ONE” utilizzando la Java Native Interface (JNI) come ponte tra il codice Java di ONE e il codice C di ION. In particolare ho adattato tutte le librerie di ION necessarie per far funzionare CGR all'interno dell'ambiente di ONE. Infine, dopo aver analizzato un dataset di tracce reali di nodi mobili, ho contribuito a progettare e a sviluppare OCGR, estensione opportunistica del CGR, quindi ne ho curato l'integrazione in ONE. I risultati preliminari sembrano confermare la validità di OCGR che, una volta messo a punto, può diventare un valido concorrente ai più rinomati algoritmi opportunistici.
Resumo:
Negli ultimi anni si è potuto notare un notevole incremento dei servizi web che hanno come caratteristica comune quella di mettere in comunicazione domanda e offerta per un determinato tipo di bene o di servizio. Questi siti web o applicazioni per smartphone sono chiamati multisided platforms e, negli ultimi anni, oltre ad essere cresciuti molto come numero, hanno anche incrementato considerevolmente il loro valore. Booking.com, Uber, Airbnb, Alibaba, Expedia sono solo alcuni esempi di multisided platforms. È evidente che in tanti settori è in atto una rivoluzione di come si incontrerà la domanda e l’offerta e visto l'enorme successo negli ultimi anni di questo tipo di piattaforme questa tesi vuole studiare i motivi della loro crescita. Dal punto di vista dell’utente è evidente che le multi-sided platforms riducono i costi di transizione, permettendo una ricerca veloce tra le soluzioni che soddisfano il proprio bisogno. Ma dal punto di vista aziendale perché decidere di appoggiare il proprio business su questo tipo di siti o applicazioni? Per rispondere a questa domanda verrà inizialmente fatta una analisi del segmento delle MSPs, e successivamente verrà fatto un confronto tra le principali piattaforme di ecommerce (attualmente Amazon ed eBay) e una soluzione che non si basa su una piattaforma gestita da terzi.
Resumo:
Mobile devices are now capable of supporting a wide range of applications, many of which demand an ever increasing computational power. To this end, mobile cloud computing (MCC) has been proposed to address the limited computation power, memory, storage, and energy of such devices. An important challenge in MCC is to guarantee seamless discovery of services. To this end, this thesis proposes an architecture that provides user-transparent and low-latency service discovery, as well as automated service selection. Experimental results on a real cloud computing testbed demonstrated that the proposed work outperforms state of-the-art approaches by achieving extremely low discovery delay.
Resumo:
Grazie alla costante evoluzione tecnologica, negli ultimi anni sempre più oggetti di vita quotidiana stanno accedendo ad Internet. Il proliferare dei dispositivi “smart” ha dato il via ad una nuova rivoluzione tecnologica: quella di Internet of Things (IoT), che sta portando nelle mani degli utenti un elevatissimo numero di informazioni in grado di offrire notevoli benefici alla vita di ogni giorno. Per poter accedere ai dati messi a disposizione risulterà necessario realizzare un servizio in grado di consentire la scoperta, l’accesso e l’interazione con i nodi della rete che si occuperanno della gestione delle informazioni. In letteratura sono già disponibili alcuni di questi meccanismi, ma essi presentano dei difetti che verrebbero ancor più accentuati dalle ridotte capacità computazionali dei terminali IoT. In questo progetto di tesi verrà presentato un servizio di discovery per gateway IoT Kura-based, pensato, grazie all’utilizzo del protocollo di messaggistica MQTT, per operare con terminali dalle performance limitate ed in situazioni di scarsa connettività. Il servizio realizzato prevede che degli smartphone Android richiedano a tutti i gateway in una determinata località i parametri per entrare nel loro network. La richiesta verrà inviata mediante un messaggio MQTT pubblicato in un topic location-specific su un broker remoto. I gateway che riceveranno il messaggio, se interessati alle caratteristiche del client, gli risponderanno comunicando i dati di accesso al network in modo che il dispositivo possa auto-configurarsi per accedervi. Ad accesso avvenuto client e gateway comunicheranno in modo diretto attraverso un broker locale. In fase di testing si valuteranno le performance del servizio analizzando i tempi di risposta e l’utilizzo di risorse lato gateway, e l’assorbimento di potenza lato client.
Resumo:
High Performance Computing e una tecnologia usata dai cluster computazionali per creare sistemi di elaborazione che sono in grado di fornire servizi molto piu potenti rispetto ai computer tradizionali. Di conseguenza la tecnologia HPC e diventata un fattore determinante nella competizione industriale e nella ricerca. I sistemi HPC continuano a crescere in termini di nodi e core. Le previsioni indicano che il numero dei nodi arrivera a un milione a breve. Questo tipo di architettura presenta anche dei costi molto alti in termini del consumo delle risorse, che diventano insostenibili per il mercato industriale. Un scheduler centralizzato non e in grado di gestire un numero di risorse cosi alto, mantenendo un tempo di risposta ragionevole. In questa tesi viene presentato un modello di scheduling distribuito che si basa sulla programmazione a vincoli e che modella il problema dello scheduling grazie a una serie di vincoli temporali e vincoli sulle risorse che devono essere soddisfatti. Lo scheduler cerca di ottimizzare le performance delle risorse e tende ad avvicinarsi a un profilo di consumo desiderato, considerato ottimale. Vengono analizzati vari modelli diversi e ognuno di questi viene testato in vari ambienti.