986 resultados para Bluetooth TuCSoN Sistemi Distribuiti
Resumo:
Il presente lavoro di tesi ha come punto focale la descrizione, la verifica e la dimostrazione della realizzabilità dei Workflow Patterns di Gestione del Flusso(Control-Flow) e Risorse (Resource) definiti da parte della Workflow Pattern Initiative (WPI)in JOLIE, un innovativo linguaggio di programmazione orientato ai servizi nato nell'ambito del Service Oriented Computing. Il Service Oriented Computing (SOC) è un nuovo modo di pensare la programmazione di applicazioni distribuite, i cui concetti fondamentali sono i servizi e la composizione. L’approccio SOC definisce la possibilità di costruire un’applicazione in funzione dei servizi che ne realizzano il comportamento tramite una loro composizione, definita secondo un particolare flusso di lavoro. Allo scopo di fornire la necessaria conoscenza per capire la teoria, le meccaniche e i costrutti di JOLIE utilizzati per la realizzazione dei pattern, il seguente lavoro di tesi è stato diviso in quattro parti, corrispondenti ad altrettanti capitoli. Nel primo capitolo viene riportata una descrizione generale del SOC e della Business Process Automation (BPA), che costituisce l’ambiente in cui il SOC è inserito. Per questo viene fatta una disamina della storia informatica sui sistemi distribuiti, fino ad arrivare ai sistemi odierni, presentando in seguito il contesto del BPA e delle innovazioni derivanti dalle sue macro-componenti, di cui il SOC fa parte. Continuando la descrizione dell’approccio Service Oriented, ne vengono presentati i requisiti (pre-condizioni) e si cerca di dare una definizione precisa del termine “servizio”, fino all'enunciazione dei principi SOC declinati nell’ottica delle Service Oriented Architectures, presentando in ultimo i metodi di composizione dei servizi, tramite orchestrazione e coreografia. L’ultima sezione del capitolo prende in considerazione il SOC in un’ottica prettamente industriale e ne evidenzia i punti strategici. Il secondo capitolo è incentrato sulla descrizione di JOLIE, gli aspetti fondamentali dell’approccio orientato ai servizi, che ne caratterizzano profondamente la definizione concettuale (SOCK), e la teoria della composizione dei servizi. Il capitolo non si pone come una descrizione esaustiva di tutte le funzionalità del linguaggio, ma considera soprattutto i concetti teorici, le strutture di dati, gli operatori e i costrutti di JOLIE utilizzati per la dimostrazione della realizzabilità dei Workflow Pattern del capitolo successivo. Il terzo capitolo, più lungo e centrale rispetto agli altri, riguarda la realizzazione dei workflow pattern in JOLIE. All'inizio del capitolo viene fornita una descrizione delle caratteristiche del WPI e dei Workflow Pattern in generale. In seguito, nelle due macro-sezioni relative ai Control-Flow e Resource pattern vengono esposte alcune nozioni riguardanti le metodologie di definizione dei pattern (e.g. la teoria sulla definizione delle Colored Petri Nets) e le convezioni adottate dal WPI, per passare in seguito al vero e proprio lavoro (sperimentale) di tesi riguardo la descrizione dei pattern, l’analisi sulla loro realizzabilità in JOLIE, insieme ad un codice di esempio che esemplifica quanto affermato dall'analisi. Come sommario delle conclusioni raggiunte sui pattern, alla fine di ognuna delle due sezioni definite in precedenza, è presente una scheda di valutazione che, con lo stesso metodo utilizzato e definito dalla WPI, permette di avere una rappresentazione generale della realizzabilità dei pattern in JOLIE. Il quarto capitolo riguarda gli esiti tratti dal lavoro di tesi, riportando un confronto tra le realizzazioni dei pattern in JOLIE e le valutazioni del WPI rispetto agli altri linguaggi da loro considerati e valutati. Sulla base di quanto ottenuto nel terzo capitolo vengono definite le conclusioni del lavoro portato avanti sui pattern e viene delineato un’eventuale scenario riguardante il proseguimento dell’opera concernente la validazione ed il completamento della studio. In ultimo vengono tratte alcune conclusioni sia riguardo JOLIE, nel contesto evolutivo del linguaggio e soprattutto del progetto open-source che è alla sua base, sia sul SOC, considerato nell’ambito del BPA e del suo attuale ambito di sviluppo dinamico.
Resumo:
Le più moderne e diffuse applicazioni wireless attuali sono dedicate a sistemi distribuiti in grandi quantità ed il più possibile miniaturizzati. In questa tesi si discute di tecniche di miniaturizzazione delle antenne di questi sistemi. Tradizionalmente tali tecniche si sono basate su substrati ad elevata costante dielettrica che hanno però, come contropartita, un deterioramento delle prestazioni radianti. Un'alternativa molto promettente è offerta da substrati magneto-dielettrici che, pur garantendo analoghe riduzioni degli ingombri, possono offrire migliori opportunità per il comportamento radiante e per l'adattamento dell'antenna al resto del sistema. In questa tesi, partendo dallo stato dell'arte della letteratura scientifica, si è sviluppato un modello che consente di valutare a priori i vantaggi/svantaggi di diverse topologie d'antenne basate su substrati magneto-dielettrici. Il metodo si basa sul teorema di equivalenza. Infine la tesi affronta il problema di sviluppare un metodo per la caratterizzazione dei parametri costitutivi di tali materiali.
Resumo:
L'elaborato introduce i concetti di Big Data, Cloud Computing e le tipologie di paradigmi basati sul calcolo parallelo. Trasformando questi concetti in pratica tramite un caso di studio sui Big Data. Nell'elaborato si spiega l'architettura proposta per l'elaborazione di report in formato pdf. Analaizando in fine i risultati ottenuti.
Resumo:
Bitcoin è una moneta digitale decentralizzata e parzialmente anonima. Viene scambiata tramite un software open source che utilizza la crittografia per garantire l'integrità e l'autenticità delle transazioni. Permette di inviare denaro digitale in maniera rapida, sicura ed economica attraverso Internet. La tesi si propone di analizzarne il fenomeno, partendo dalla sua storia fino alle possibili evoluzioni future. Vengono introdotte le basi di crittografia per comprenderne i concetti ed i meccanismi di funzionamento. In seguito viene analizzata l'implementazione del software e vengono discussi i principali vantaggi e criticità. La tesi esplora le possibili conseguenze di una sua adozione dal punto di vista economico e politico, e le innovazioni che potrebbe portare al sistema finanziario. Vengono infine mostrati alcuni esempi di software ispirati a Bitcoin che ne estendono ed ampliano le funzionalità nell'ambito dei sistemi distribuiti.
Resumo:
XCModel è un sistema CAD, basato su NURBS, realizzato ed utilizzato in ambiente accademico. È composto da quattro pacchetti per la modellazione 2D, 3D e la resa foto-realistica, ognuno dotato di una propria interfaccia grafica. Questi pacchetti sono in costante evoluzione: sia per le continua evoluzioni dell’hardware che ai cambiamenti degli standard software. Il sistema nel complesso raccoglie la conoscenza e l’esperienza nella modellazione geometrica acquisita nel tempo dai progettisti. XCModel, insieme ai suoi sottosistemi, sono stati progettati per diventare un laboratorio di insegnamento e ricerca utile a sperimentare ed imparare metodi ed algoritmi nella modellazione geometrica e nella visualizzazione grafica. La natura principalmente accademica, e la conseguente funzione divulgativa, hanno richiesto continui aggiornamenti del programma affinché potesse continuare a svolgere la propria funzione nel corso degli anni. La necessità di continuare a ad evolversi, come software didattico, anche con il moderno hardware, è forse il principale motivo della scelta di convertire XCModel a 64 bit; una conversione che ho svolto in questa tesi. Come molte altre applicazioni realizzate a 32 bit, la maggior parte del codice viene eseguito correttamente senza problemi. Vi sono però una serie di problematiche, a volte molto subdole, che emergono durante la migrazione delle applicazioni in generale e di XCModel in particolare. Questa tesi illustra i principali problemi di portabilità riscontrati durante il porting a 64 bit di questo pacchetto seguendo il percorso da me intrapreso: mostrerò gli approcci adottati, i tool utilizzati e gli errori riscontrati.
Resumo:
La tesi propone una soluzione middleware per scenari in cui i sensori producono un numero elevato di dati che è necessario gestire ed elaborare attraverso operazioni di preprocessing, filtering e buffering al fine di migliorare l'efficienza di comunicazione e del consumo di banda nel rispetto di vincoli energetici e computazionali. E'possibile effettuare l'ottimizzazione di questi componenti attraverso operazioni di tuning remoto.
Resumo:
L’obiettivo del progetto di tesi svolto è quello di realizzare un servizio di livello middleware dedicato ai dispositivi mobili che sia in grado di fornire il supporto per l’offloading di codice verso una infrastruttura cloud. In particolare il progetto si concentra sulla migrazione di codice verso macchine virtuali dedicate al singolo utente. Il sistema operativo delle VMs è lo stesso utilizzato dal device mobile. Come i precedenti lavori sul computation offloading, il progetto di tesi deve garantire migliori performance in termini di tempo di esecuzione e utilizzo della batteria del dispositivo. In particolare l’obiettivo più ampio è quello di adattare il principio di computation offloading a un contesto di sistemi distribuiti mobili, migliorando non solo le performance del singolo device, ma l’esecuzione stessa dell’applicazione distribuita. Questo viene fatto tramite una gestione dinamica delle decisioni di offloading basata, non solo, sullo stato del device, ma anche sulla volontà e/o sullo stato degli altri utenti appartenenti allo stesso gruppo. Per esempio, un primo utente potrebbe influenzare le decisioni degli altri membri del gruppo specificando una determinata richiesta, come alta qualità delle informazioni, risposta rapida o basata su altre informazioni di alto livello. Il sistema fornisce ai programmatori un semplice strumento di definizione per poter creare nuove policy personalizzate e, quindi, specificare nuove regole di offloading. Per rendere il progetto accessibile ad un più ampio numero di sviluppatori gli strumenti forniti sono semplici e non richiedono specifiche conoscenze sulla tecnologia. Il sistema è stato poi testato per verificare le sue performance in termini di mecchanismi di offloading semplici. Successivamente, esso è stato anche sottoposto a dei test per verificare che la selezione di differenti policy, definite dal programmatore, portasse realmente a una ottimizzazione del parametro designato.
Resumo:
L’oggetto di questa tesi riguarda la predisposizione un sistema di ausilio per non vedenti, basato su visione 3D, alla comunicazione in rete. Si è quindi sviluppata un’applicazione per dispositivi iOS che sia in grado di ricevere e interpretare i dati inviati da tale sistema. In particolare, questo lavoro si inserisce in un lavoro più ampio che ha l’obiettivo di fornire diverse modalità di interfacciamento con il sistema di rilevazione ostacoli per utenti ipovedenti e di sostituire le attuali tecnologie cablate con tecnologie wireless. Il seguente lavoro descrive i problemi emersi e le soluzioni adottate durante lo sviluppo del sistema, al fine di fornire un’adeguata documentazione a coloro che avranno intenzione di proseguire nell’ampliamento delle funzioni realizzabili.
Resumo:
Agent-oriented programming (AOP) è un paradigma di programmazione che concepisce un software come insieme di agenti che possiedono caratteristiche di autonomia, proattività e che sono in grado di comunicare con altri agenti. Sebbene sia stato impiegato soprattutto nell'ambito dell'intelligenza artificiale questo tipo di programmazione si rivela utile per lo sviluppo di sistemi distribuiti riuscendo a gestire agilmente problemi di concorrenza. Lo scopo di questa tesi è analizzare le caratteristiche del paradigma e dei software basati su agenti, utilizzando come caso di studio Sarl, un linguaggio general-purpose molto recente. La parte principale del lavoro consiste nella descrizione dei modelli teorici che hanno portato alla nascita della programmazione ad agenti, in particolare del modello BDI, e dei principali framework per lo sviluppo di sistemi multi-agente.
Resumo:
La Brain Computer Interface, con l’acronimo BCI, è un mezzo per la comunicazione tra cervello e macchina. La comunicazione si basa sulla emanazione di segnali elettrici del cervello che vengono rilevati da un dispositivo, il quale invia i segnali digitalizzati ad un elaboratore. I segnali elettrici, chiamati EEG, permettono al cervello di regolare la comunicazione tra le diverse cellule neurali. La BCI intercetta questi segnali e, previa elaborazione, permette di ottenere diversi diagrammi, detti metriche, per poter misurare, sotto svariati aspetti, il funzionamento del cervello. Le ricerche scientifiche sulle EEG hanno rilevato una correlazione tra i segnali elettrici nel cervello di un soggetto con il suo livello di performance e stato emotivo. È quindi possibile comprendere, tramite una serie di parametri, come la mente dei soggetti reagisce a stimoli esterni di svariata tipologia durante lo svolgimento di un’attività. L’elaboratore, che riceve il segnale dalla BCI, è il componente che si occupa di trasformare i segnali elettrici, generati dal cervello e digitalizzati, in risultati facilmente interpretabili dall’utente. Elaborare i segnali EEG in tempo reale porta a dover utilizzare algoritmi creati appositamente per questo scopo e specifici perle metriche preposte. Lo scopo di questa tesi è quello di presentare un progetto sullo sviluppo della fase di smistamento dei dati ricevuti dall’elaboratore. Nel contempo si fornirà una conoscenza scientifica minima per comprendere le scelte fatte. Tale progetto è stato reso possibile dalla collaborazione con l’azienda Vibre, che si dedica allo sviluppo di un sistema comprendente BCI ed elaboratore.
Resumo:
Negli ultimi anni si sta notando sempre di più il cambiamento apportato dalla tecnologia ai vari settori industriali, il quale costringe ogni azienda ad adattare i propri processi per mantenere la propria posizione sul mercato. Un'innovazione è costituita dalla blockchain, che viene presentata come un insieme di tecnologie distribuite volte a mantenere un registro condiviso immutabile. Le sue applicazioni si possono trovare nell'ambito economico attraverso le criptovalute fino ad arrivare alla certificazione in supply chain di società o enti. Come tutte le innovazioni porta con sè vantaggi e peculiarità che ne contraddistinguono il funzionamento. In questa tesi si tratteranno blockchain Ethereum e Smart Contracts ossia componenti definiti in Solidity, un linguaggio dalla caratteristica di Touring Completeness. Con lo sviluppo degli Smart Contract si è arrivati alla creazione di applicazioni decentralizzate, organizzazioni autonome e certificazioni fino alla creazione di standard per token fungibili. Infine un aspetto da non sottovalutare quando si parla di sistemi distribuiti ed in particolare di blockchain è la sicurezza. Verranno introdotti i principali attacchi all'infrastruttura e all'utente, ponendo attenzione a come questo aspetto possa essere tralasciato per favorire interoperabilità tra blockchain.
Resumo:
Nella sede dell’azienda ospitante Alexide, si è ravvisata la mancanza di un sistema di controllo automatico da remoto dell’intero impianto di climatizzazione HVAC (Heating, Ventilation and Air Conditioning) utilizzato, e la soluzione migliore è risultata quella di attuare un processo di trasformazione della struttura in uno smart building. Ho quindi eseguito questa procedura di trasformazione digitale progettando e sviluppando un sistema distribuito in grado di gestire una serie di dati provenienti in tempo reale da sensori ambientali. L’architettura del sistema progettato è stata sviluppata in C# su ambiente dotNET, dove sono stati collezionati i dati necessari per il funzionamento del modello di predizione. Nella fattispecie sono stati utilizzati i dati provenienti dall’HVAC, da un sensore di temperatura interna dell'edificio e dal fotovoltaico installato nella struttura. La comunicazione tra il sistema distribuito e l’entità dell’HVAC avviene mediante il canale di comunicazione ModBus, mentre per quanto riguarda i dati della temperatura interna e del fotovoltaico questi vengono collezionati da sensori che inviano le informazioni sfruttando un canale di comunicazione che utilizza il protocollo MQTT, e lo stesso viene utilizzato come principale metodo di comunicazione all’interno del sistema, appoggiandosi ad un broker di messaggistica con modello publish/subscribe. L'automatizzazione del sistema è dovuta anche all'utilizzo di un modello di predizione con lo scopo di predire in maniera quanto più accurata possibile la temperatura interna all'edificio delle ore future. Per quanto riguarda il modello di predizione da me implementato e integrato nel sistema la scelta è stata quella di ispirarmi ad un modello ideato da Google nel 2014 ovvero il Sequence to Sequence. Il modello sviluppato si struttura come un encoder-decoder che utilizza le RNN, in particolare le reti LSTM.
Resumo:
La tesi intende esplorare i problemi relativi al tempo nei sistemi coordinati e costruire esperimenti sia applicativi che di estensione di middleware di coordinazione, concentrandosi in particolare sulla tecnologia di coordinazione TuCSoN.
Resumo:
I sistemi software nati dall'esigenza di supportare agevolmente ed efficacemente il lavoro cooperativo, in particolare quelli orientati al supporto di azioni di soccorso in scenari di emergenza, appaiono tutt'ora fortemente limitati e frammentati. In molti casi vengono affrontate solamente specifiche dimensioni del problema complessivo, anche se il livello al quale è giunto lo sviluppo tecnologico e i risultati osservati in ambito di ricerca permettono di delineare soluzioni complete e significative per l'impiego in ambiti reali. Tale tipologia di sistemi è stata scelta per il grande interesse che desta sia dal punto di vista accademico, essendo costituita da molteplici sotto--sistemi spesso eterogenei che debbono necessariamente interagire e supportare l'azione umana, sia dal punto di vista industriale, interpretando la necessità crescente di iniettare nel maggior numero possibile di livelli sociali la forte dipendenza (il supporto allo stesso tempo) dalle scienze tecnologiche ed informatiche, per rafforzare e talvolta estendere le possibilità dell'essere umano in quanto tale. Dopo una prima fase in cui verrà delineato un quadro concettuale piuttosto dettagliato circa i principali elementi e problematiche che caratterizzano la classe di sistemi considerati, sarà dato spazio alla validazione di tali principi e considerazioni emerse, confrontandosi con la progettazione e sviluppo in forma prototipale di un sotto--sistema relativo ad un caso di studio reale, significativo per l'ambito di applicazione, nato dalla collaborazione con l'Università degli Studi di Bologna di un'azienda della regione Emilia--Romagna. Il sistema software realizzato vuole essere innanzi tutto la risposta alle esigenze emerse nel caso di studio trattato, in modo tale da potersi sostituire agli attuali limitati supporti alla cooperazione, ma anche un esperimento che possa essere considerato un artefatto centrale da utilizzare come base di conoscenza condivisa, in cui vengano fattorizzati i concetti e meccanismi chiave, fondamentali per sviluppi futuri.