21 resultados para Stack Overflow
em AMS Tesi di Laurea - Alm@DL - Università di Bologna
Resumo:
In questo lavoro si indaga la possibilita' di includere lo stack TCP-IP NetBSD, estratto come libreria dinamica ed eseguito all'interno di un kernel rump, come sottomodulo di rete della System Call Virtual Machine UMView di Virtual Square. Il risultato ottenuto consiste in umnetbsd, il modulo che ne dimostra la fattibilita', e libvdeif, una libreria per connettere kernel rump a switch VDE.
Resumo:
In questo lavoro verrà presentato ExoTCP, uno stack di rete minimale e userspace specializzato per il protocollo HTTP. Verrà inoltre presentato Eth, un server web zerocopy che utilizza ExoTCP per servire contenuti statici. L'obiettivo del lavoro è riuscire ad ottenere prestazioni migliori di quelle di un server web tradizionale che si appoggia ai servizi offerti dal sistema operativo per accedere alla rete.
Resumo:
In questo lavoro si introduce il progetto di estrarre lo stack tcp-ip dal kernel di linux e farlo funzionare come una normale libreria in userspace. Si parlerà dei vantaggi di avere lo stack tcp-ip in userspace, di altri progetti simili, del motivo per cui si è scelto lo stack di linux, dei principali problemi incontrati nel corso del lavoro, del percorso seguito, e di come il risultato possa essere migliorato per renderlo uno strumento effettivamente utile.
Resumo:
Progetto SHERPA. Installazione e configurazione del Navigaton Stack su Rover terrestre. Utilizzo e configurazione di LMS151 Sick. Utilizzo e configurazione di Asus Xtion Pro. Progettazione di software per la localizzazione e l'inseguimento di persone tramite camera di profondita.
Resumo:
Fra le varie ragioni della crescente pervasività di Internet in molteplici settori di mercato del tutto estranei all’ICT, va senza dubbio evidenziata la possibilità di creare canali di comunicazione attraverso i quali poter comandare un sistema e ricevere da esso informazioni di qualsiasi genere, qualunque distanza separi controllato e controllore. Nel caso specifico, il contesto applicativo è l’automotive: in collaborazione col Dipartimento di Ingegneria Elettrica dell’Università di Bologna, ci si è occupati del problema di rendere disponibile a distanza la grande quantità di dati che i vari sotto-sistemi componenti una automobile elettrica si scambiano fra loro, sia legati al tipo di propulsione, elettrico appunto, come i livelli di carica delle batterie o la temperatura dell’inverter, sia di natura meccanica, come i giri motore. L’obiettivo è quello di permettere all’utente (sia esso il progettista, il tecnico riparatore o semplicemente il proprietario) il monitoraggio e la supervisione dello stato del mezzo da remoto nelle sue varie fasi di vita: dai test eseguiti su prototipo in laboratorio, alla messa in strada, alla manutenzione ordinaria e straordinaria. L’approccio individuato è stato quello di collezionare e memorizzare in un archivio centralizzato, raggiungibile via Internet, tutti i dati necessari. Il sistema di elaborazione a bordo richiede di essere facilmente integrabile, quindi di piccole dimensioni, e a basso costo, dovendo prevedere la produzione di molti veicoli; ha inoltre compiti ben definiti e noti a priori. Data la situazione, si è quindi scelto di usare un sistema embedded, cioè un sistema elettronico di elaborazione progettato per svolgere un limitato numero di funzionalità specifiche sottoposte a vincoli temporali e/o economici. Apparati di questo tipo sono denominati “special purpose”, in opposizione ai sistemi di utilità generica detti “general purpose” quali, ad esempio, i personal computer, proprio per la loro capacità di eseguire ripetutamente un’azione a costo contenuto, tramite un giusto compromesso fra hardware dedicato e software, chiamato in questo caso “firmware”. I sistemi embedded hanno subito nel corso del tempo una profonda evoluzione tecnologica, che li ha portati da semplici microcontrollori in grado di svolgere limitate operazioni di calcolo a strutture complesse in grado di interfacciarsi a un gran numero di sensori e attuatori esterni oltre che a molte tecnologie di comunicazione. Nel caso in esame, si è scelto di affidarsi alla piattaforma open-source Arduino; essa è composta da un circuito stampato che integra un microcontrollore Atmel da programmare attraverso interfaccia seriale, chiamata Arduino board, ed offre nativamente numerose funzionalità, quali ingressi e uscite digitali e analogici, supporto per SPI, I2C ed altro; inoltre, per aumentare le possibilità d’utilizzo, può essere posta in comunicazione con schede elettroniche esterne, dette shield, progettate per le più disparate applicazioni, quali controllo di motori elettrici, gps, interfacciamento con bus di campo quale ad esempio CAN, tecnologie di rete come Ethernet, Bluetooth, ZigBee, etc. L’hardware è open-source, ovvero gli schemi elettrici sono liberamente disponibili e utilizzabili così come gran parte del software e della documentazione; questo ha permesso una grande diffusione di questo frame work, portando a numerosi vantaggi: abbassamento del costo, ambienti di sviluppo multi-piattaforma, notevole quantità di documentazione e, soprattutto, continua evoluzione ed aggiornamento hardware e software. È stato quindi possibile interfacciarsi alla centralina del veicolo prelevando i messaggi necessari dal bus CAN e collezionare tutti i valori che dovevano essere archiviati. Data la notevole mole di dati da elaborare, si è scelto di dividere il sistema in due parti separate: un primo nodo, denominato Master, è incaricato di prelevare dall’autovettura i parametri, di associarvi i dati GPS (velocità, tempo e posizione) prelevati al momento della lettura e di inviare il tutto a un secondo nodo, denominato Slave, che si occupa di creare un canale di comunicazione attraverso la rete Internet per raggiungere il database. La denominazione scelta di Master e Slave riflette la scelta fatta per il protocollo di comunicazione fra i due nodi Arduino, ovvero l’I2C, che consente la comunicazione seriale fra dispositivi attraverso la designazione di un “master” e di un arbitrario numero di “slave”. La suddivisione dei compiti fra due nodi permette di distribuire il carico di lavoro con evidenti vantaggi in termini di affidabilità e prestazioni. Del progetto si sono occupate due Tesi di Laurea Magistrale; la presente si occupa del dispositivo Slave e del database. Avendo l’obiettivo di accedere al database da ovunque, si è scelto di appoggiarsi alla rete Internet, alla quale si ha oggi facile accesso da gran parte del mondo. Questo ha fatto sì che la scelta della tecnologia da usare per il database ricadesse su un web server che da un lato raccoglie i dati provenienti dall’autovettura e dall’altro ne permette un’agevole consultazione. Anch’esso è stato implementato con software open-source: si tratta, infatti, di una web application in linguaggio php che riceve, sotto forma di richieste HTTP di tipo GET oppure POST, i dati dal dispositivo Slave e provvede a salvarli, opportunamente formattati, in un database MySQL. Questo impone però che, per dialogare con il web server, il nodo Slave debba implementare tutti i livelli dello stack protocollare di Internet. Due differenti shield realizzano quindi il livello di collegamento, disponibile sia via cavo sia wireless, rispettivamente attraverso l’implementazione in un caso del protocollo Ethernet, nell’altro della connessione GPRS. A questo si appoggiano i protocolli TCP/IP che provvedono a trasportare al database i dati ricevuti dal dispositivo Master sotto forma di messaggi HTTP. Sono descritti approfonditamente il sistema veicolare da controllare e il sistema controllore; i firmware utilizzati per realizzare le funzioni dello Slave con tecnologia Ethernet e con tecnologia GPRS; la web application e il database; infine, sono presentati i risultati delle simulazioni e dei test svolti sul campo nel laboratorio DIE.
Resumo:
Through the use of Cloud Foundry "stack" concept, a new isolation is provided to the application running on the PaaS. A new deployment feature that can easily scale on distributed system, both public and private clouds.
Resumo:
Poiché internet interconnette miliardi di terminali on-line per fornire informazioni sempre più sofisticate, le infrastrutture dovranno essere sufficientemente "intelligenti" per gestire in tempo reale un enorme flusso di dati. Esistono due possibili approcci per sviluppare la nuova architettura, conosciuti come clean-state (PURSUIT e NetInf) ed overlay (DONA e NDN): con il primo metodo è necessario riprogettare l'intero stack protocollare mentre il secondo consente di creare un'infrastruttura avvalendosi delle funzionalità di una rete IP.
Resumo:
Scopo primario della tesi è studiare e progettare un sistema informatico che proponga un buon livello di innovazione tecnologica in relazione al contesto applicativo di riferimento, ovvero relativamente al supporto al lavoro cooperativo di operatori in scenari d'emergenza. In particolare, la tesi si concentra sul'ecosistema software che ruota attorno al singolo operatore con l'obiettivo di dotarlo di uno strumento informatico che gli consenta di avvalersi di un efficace ed efficiente supporto per l'esecuzione delle proprie azioni sul campo (in generale, per la prima assistenza ai pazienti, triage e monitoraggio di parametri vitali). A tal proposito, l'ambito tecnologico di riferimento è quello del Pervasive Mobile Computing, con specifico riferimento ai sistemi context-aware e a quelli con comportamenti fortemente autonomi. Inoltre, al fine di dotare l'operatore di un supporto per l'interazione con il sistema stesso in modalità hands-free, sono stati analizzati i dispositivi wearable di tipo "see-through"; in particolare, i recenti glasses per realtà aumentata. La progettazione del sistema e il conseguente sviluppo del prototipo (che implementa le caratteristiche più significative ed innovative), è stata guidata da un'ispirazione basata sul modello ad agenti (integrato a quello ad oggetti), rivisitando opportunamente l'utilizzo dei componenti offerti dalla tecnologia Android, al fine di ottenere un prodotto software robusto e modulare facilmente manutenibile ed estendibile. Infine, per garantire a ciascun operatore rapida fruibilità del sistema sono state sfruttate le potenzialità offerte dall'uso di smartcard NFC ed inoltre è stato progettato un protocollo di comunicazione ad hoc, basato su stack Bluetooth, per l'integrazione degli AR-Glasses all'intero sistema.
Resumo:
L'obiettivo su cui è stata basata questa Tesi di Laurea è stato quello di integrare la tecnologia delle Wireless Sensor Networks (WSN) al contesto dell'Internet delle cose (IoT). Per poter raggiungere questo obiettivo, il primo passo è stato quello di approfondire il concetto dell'Internet delle cose, in modo tale da comprendere se effettivamente fosse stato possibile applicarlo anche alle WSNs. Quindi è stata analizzata l'architettura delle WSNs e successivamente è stata fatta una ricerca per capire quali fossero stati i vari tipi di sistemi operativi e protocolli di comunicazione supportati da queste reti. Infine sono state studiate alcune IoT software platforms. Il secondo passo è stato quindi di implementare uno stack software che abilitasse la comunicazione tra WSNs e una IoT platform. Come protocollo applicativo da utilizzare per la comunicazione con le WSNs è stato usato CoAP. Lo sviluppo di questo stack ha consentito di estendere la piattaforma SensibleThings e il linguaggio di programmazione utilizzato è stato Java. Come terzo passo è stata effettuata una ricerca per comprendere a quale scenario di applicazione reale, lo stack software progettato potesse essere applicato. Successivamente, al fine di testare il corretto funzionamento dello stack CoAP, è stata sviluppata una proof of concept application che simulasse un sistema per la rilevazione di incendi. Questo scenario era caratterizzato da due WSNs che inviavano la temperatura rilevata da sensori termici ad un terzo nodo che fungeva da control center, il cui compito era quello di capire se i valori ricevuti erano al di sopra di una certa soglia e quindi attivare un allarme. Infine, l'ultimo passo di questo lavoro di tesi è stato quello di valutare le performance del sistema sviluppato. I parametri usati per effettuare queste valutazioni sono stati: tempi di durata delle richieste CoAP, overhead introdotto dallo stack CoAP alla piattaforma Sensible Things e la scalabilità di un particolare componente dello stack. I risultati di questi test hanno mostrato che la soluzione sviluppata in questa tesi ha introdotto un overheadmolto limitato alla piattaforma preesistente e inoltre che non tutte le richieste hanno la stessa durata, in quanto essa dipende dal tipo della richiesta inviata verso una WSN. Tuttavia, le performance del sistema potrebbero essere ulteriormente migliorate, ad esempio sviluppando un algoritmo che consenta la gestione concorrente di richieste CoAP multiple inviate da uno stesso nodo. Inoltre, poichè in questo lavoro di tesi non è stato considerato il problema della sicurezza, una possibile estensione al lavoro svolto potrebbe essere quello di implementare delle politiche per una comunicazione sicura tra Sensible Things e le WSNs.
Resumo:
La presenza sempre più massiccia di fornitori di servizi basati su web service ha portato in rilievo uno dei limiti di questo approccio, l’impossibilità di rendere automatizzabili i task di ricerca, invocazione e orchestrazione dei servizi. Il raggiungimento di questo obiettivo risulta impossibile a causa della mancanza di informazioni comprensibili ad una macchina attraverso le quali un agente software può effettuare delle scelte tra vari servizi esposti. Il fallimento della “ricerca intelligente” di un servizio pubblicato sta nella stessa modellazione dei servizi. I linguaggi attualmente disponibili permettono di modellare un servizio solo dal punto di vista sintattico. Definire le operazioni proposte, il tipo di parametri accettati e il tipo di output prodotto non è sufficiente a comprendere cosa il servizio può fare. I web services semantici consentono di superare questo limite fornendo uno stack semantico, il quale ha il compito di racchiudere le informazioni relative ai servizi, il loro funzionamento e gli obiettivi raggiungibili organizzando la conoscenza in ontologie. La formalizzazione dei modelli ontologici e la loro integrazione con i servizi esistenti è uno dei problemi più interessanti che ha catturato l’attenzione di numerosi studi di settore. Negli ultimi anni numerose sono state le soluzioni proposte. Tra queste si possono considerare due principali vie di sviluppo che hanno visto un’intensa attività sperimentale. Il primo scenario è volto a modellare in maniera formale la conoscenza legata ai servizi esposti, il secondo integra i servizi già esistenti con nuove strutture semantiche in modo da conservare le infrastrutture presenti. Entrambi i filoni hanno come scopo quello di fornire la conoscenza adatta a sistemi esperti che consentano di automatizzare la ricerca dei servizi in base ai desideri dei clienti, permettendo la loro composizione dinamica basata su un’interazione utile e indipendente dai protocolli che vincolano il trasporto delle informazioni.
Il processo di semplificazione di Meteor nello sviluppo di applicazioni web. L'esempio di Pachirajs.
Resumo:
L'obbiettivo di questa tesi è mostrare come attualmente sia possibile creare applicazioni web in maniera semplice e veloce, tramite l'utilizzo del framework Meteor.
Resumo:
La tesi analizza lo stack di comunicazione Bluetooth e le possibili estensioni di TuCSoN per permettere il suo utilizzo. Come risultato di questo lavoro, sono state realizzate delle librerie software che permettono lo scambio di messaggi tra TuCSoN su Android e dispositivi Bluetooth.
Resumo:
Caratteristiche hardware di un rover terrestre (progetto SHERPA). Implementazione tramite il framework ROS di un algoritmo di alto livello di navigazione autonoma basato su due possibili algoritmi di basso livello: LOS (Lightweight Object Streaming developed by BlueBotics) o Navigation Stack. Sviluppo di una Control Ground Station (Java) basata su: protocollo SSH2 oppure sfruttando la libreria LOS.
Resumo:
Grazie all'evoluzione dei servizi di rete indirizzare le interfacce di rete come se fossero i veri destinatari delle comunicazioni è diventato obsoleto. Per questo è nato il concetto di Internet of Threads, in cui gli indirizzi IP sono assegnati ad ogni processo in esecuzione nel computer mediante una rete ethernet virtuale. Attualmente esistono progetti che forniscono la gestione della rete virtuale e librerie che forniscono lo stack TCP/IP da integrare all'interno dei propri programmi. Queste librerie richiedono però la modifica e ricompilazione del proprio codice, anche a causa della loro interfaccia differente dai Berkeley Socket. Attraverso PycoTCP è possibile sperimentare all'interno di un ambiente IoTh senza riscrivere il proprio codice. Inoltre unifica le API fornite dalle librerie sottostanti esponendo una interfaccia identica a quella standard del Python, in modo che non sia necessario imparare un altro metodo di programmazione per utilizzare il nuovo paradigma.