100 resultados para Mobile cloud computing
Resumo:
Web is constantly evolving, thanks to the 2.0 transition, HTML5 new features and the coming of cloud-computing, the gap between Web and traditional desktop applications is tailing off. Web-apps are more and more widespread and bring several benefits compared to traditional ones. On the other hand reference technologies, JavaScript primarly, are not keeping pace, so a paradim shift is taking place in Web programming, and so many new languages and technologies are coming out. First objective of this thesis is to survey the reference and state-of-art technologies for client-side Web programming focusing in particular on what concerns concurrency and asynchronous programming. Taking into account the problems that affect existing technologies, we finally design simpAL-web, an innovative approach to tackle Web-apps development, based on the Agent-oriented programming abstraction and the simpAL language. == Versione in italiano: Il Web è in continua evoluzione, grazie alla transizione verso il 2.0, alle nuove funzionalità introdotte con HTML5 ed all’avvento del cloud-computing, il divario tra le applicazioni Web e quelle desktop tradizionali va assottigliandosi. Le Web-apps sono sempre più diffuse e presentano diversi vantaggi rispetto a quelle tradizionali. D’altra parte le tecnologie di riferimento, JavaScript in primis, non stanno tenendo il passo, motivo per cui la programmazione Web sta andando incontro ad un cambio di paradigma e nuovi linguaggi e tecnologie stanno spuntando sempre più numerosi. Primo obiettivo di questa tesi è di passare al vaglio le tecnologie di riferimento ed allo stato dell’arte per quel che riguarda la programmmazione Web client-side, porgendo particolare attenzione agli aspetti inerenti la concorrenza e la programmazione asincrona. Considerando i principali problemi di cui soffrono le attuali tecnologie passeremo infine alla progettazione di simpAL-web, un approccio innovativo con cui affrontare lo sviluppo di Web-apps basato sulla programmazione orientata agli Agenti e sul linguaggio simpAL.
Resumo:
Nella tesi vengono descritte le caratteristiche principali del linguaggio di programmazione service-oriented Jolie, analizzandone ampiamente la sintassi e proponendo esempi di utilizzo degli operatori e dei costrutti. Viene fatta una panoramica di SOC, SOA, Web Services, Cloud Computing, Orchestrazione, Coreografia, Deployment e Behaviour, gli ultimi due analizzati in diversi capitoli. La tesi si conclude con un esempio di conversione di servizi WSDL in Jolie, producendo un esempio di utilizzo del Web Service convertito. Nel documento vengono accennati i progressi storici del linguaggio ed i loro sviluppatori, nonché le API fornite dal linguaggio.
Resumo:
Il presente lavoro è uno studio sulle diverse proposte in letteratura per ovviare alle problematiche di interoperabilità tra piattaforme di virtualizzazione eterogenee, ovvero di diversi produttori. Al giorno d'oggi non sono stati definiti con successo degli standard opportuni per cui le soluzioni presentate sono molto diverse tra di loro. Lo scopo del lavoro è quello di analizzare le proposte e, in base ad uno studio approfondito, stabilire qual è quella migliore. Successivamente si vuole presentare il caso di studio di una piattaforma che si basa su uno strato virtuale che può essere eterogeneo. Si vuole evidenziare come nei sistemi complessi garantire interoperabilità comporta garantire anche una vasta serie di altri servizi necessari alla consistenza del sistema.
Resumo:
L'elaborato analizza gli strumenti utilizzati nella gestione di infrastrutture informatiche. In particolare: nel primo capitolo viene fatta una panoramica del Cloud Computing e relativi modelli infrastrutturali e di distribuzione. Nel secondo vengono analizzate le piattaforme di gestione di sistemi basati su architettura IaaS, quali OpenStack, OpenNebula ed Eucalyptus. Nel terzo capitolo vengono esaminati due dei Software Configuration Management maggiormente utilizzati: Puppet e Chef. Nel quarto ed ultimo capitolo viene descritto lo standard OCCI (Open Cloud Computing Interface).
Resumo:
Dalla raffigurazione artistica fino alla modellazione digitale, passando per il disegno tecnico, la rappresentazione del progetto d’architettura ha conosciuto nel tempo evoluzioni significative che solo di recente hanno raggiunto l’apice nell’utilizzo di modelli cognitivi in grado di collezionare ed organizzare il patrimonio di informazioni che gravitano attorno all’intero processo edilizio. L’impiego sempre più diffuso dello strumento informatico, insieme al coordinamento delle specializzazioni nelle molte discipline coinvolte nel progetto, ha favorito negli ultimi anni l’adozione del Building Information Modeling un processo che permette di rivoluzionare il mondo delle costruzioni, coprendo molteplici aspetti del ciclo di vita per un manufatto edilizio. Questa Tesi intende presentare in maniera specifica le tappe che hanno consentito il formarsi del BIM. La migliore capacità di gestione, un linguaggio comune tra i progettisti, un’ottimizzazione di risorse e costi, unito ad un controllo convincente ed accurato delle fasi di lavoro, sono alcune delle potenzialità non ancora completamente espresse dal Building Information Modeling che è destinato a divenire una consapevolezza strategica nel bagaglio culturale del professionista contemporaneo.
Resumo:
Questa tesi si pone l’obiettivo di effettuare un’analisi aggiornata sulla recente evoluzione del Cloud Computing e dei nuovi modelli architetturali a sostegno della continua crescita di richiesta di risorse di computazione, di storage e di rete all'interno dei data center, per poi dedicarsi ad una fase sperimentale di migrazioni live singole e concorrenti di macchine virtuali, studiandone le prestazioni a livello di risorse applicative e di rete all’interno della piattaforma open source di virtualizzazione QEMU-KVM, oggi alla base di sistemi cloud-based come Openstack. Nel primo capitolo, viene effettuato uno studio dello stato dell’arte del Cloud Computing, dei suoi attuali limiti e delle prospettive offerte da un modello di Cloud Federation nel futuro immediato. Nel secondo capitolo vengono discusse nel dettaglio le tecniche di live migration, di recente riferimento per la comunità scientifica internazionale e le possibili ottimizzazioni in scenari inter e intra data center, con l’intento di definire la base teorica per lo studio approfondito dell’implementazione effettiva del processo di migrazione su piattaforma QEMU-KVM, che viene affrontato nel terzo capitolo. In particolare, in quest’ultimo sono descritti i principi architetturali e di funzionamento dell'hypervisor e viene definito il modello di progettazione e l’algoritmo alla base del processo di migrazione. Nel quarto capitolo, infine, si presenta il lavoro svolto, le scelte configurative e progettuali per la creazione di un ambiente di testbed adatto allo studio di sessioni di live migration concorrenti e vengono discussi i risultati delle misure di performance e del comportamento del sistema, tramite le sperimentazioni effettuate.
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:
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:
Da quando è iniziata l'era del Cloud Computing molte cose sono cambiate, ora è possibile ottenere un server in tempo reale e usare strumenti automatizzati per installarvi applicazioni. In questa tesi verrà descritto lo strumento MODDE (Model-Driven Deployment Engine), usato per il deployment automatico, partendo dal linguaggio ABS. ABS è un linguaggio a oggetti che permette di descrivere le classi in una maniera astratta. Ogni componente dichiarato in questo linguaggio ha dei valori e delle dipendenze. Poi si procede alla descrizione del linguaggio di specifica DDLang, col quale vengono espressi tutti i vincoli e le configurazioni finali. In seguito viene spiegata l’architettura di MODDE. Esso usa degli script che integrano i tool Zephyrus e Metis e crea un main ABS dai tre file passati in input, che serve per effettuare l’allocazione delle macchine in un Cloud. Inoltre verranno introdotti i due sotto-strumenti usati da MODDE: Zephyrus e Metis. Il primo si occupa di scegliere quali servizi installare tenendo conto di tutte le loro dipendenze, cercando di ottimizzare il risultato. Il secondo gestisce l’ordine con cui installarli tenendo conto dei loro stati interni e delle dipendenze. Con la collaborazione di questi componenti si ottiene una installazione automatica piuttosto efficace. Infine dopo aver spiegato il funzionamento di MODDE viene spiegato come integrarlo in un servizio web per renderlo disponibile agli utenti. Esso viene installato su un server HTTP Apache all’interno di un container di Docker.
Resumo:
Questo progetto di tesi è lo sviluppo di un sistema distribuito di acquisizione e visualizzazione interattiva di dati. Tale sistema è utilizzato al CERN (Organizzazione Europea per la Ricerca Nucleare) al fine di raccogliere i dati relativi al funzionamento dell'LHC (Large Hadron Collider, infrastruttura ove avvengono la maggior parte degli esperimenti condotti al CERN) e renderli disponibili al pubblico in tempo reale tramite una dashboard web user-friendly. L'infrastruttura sviluppata è basata su di un prototipo progettato ed implementato al CERN nel 2013. Questo prototipo è nato perché, dato che negli ultimi anni il CERN è diventato sempre più popolare presso il grande pubblico, si è sentita la necessità di rendere disponibili in tempo reale, ad un numero sempre maggiore di utenti esterni allo staff tecnico-scientifico, i dati relativi agli esperimenti effettuati e all'andamento dell'LHC. Le problematiche da affrontare per realizzare ciò riguardano sia i produttori dei dati, ovvero i dispositivi dell'LHC, sia i consumatori degli stessi, ovvero i client che vogliono accedere ai dati. Da un lato, i dispositivi di cui vogliamo esporre i dati sono sistemi critici che non devono essere sovraccaricati di richieste, che risiedono in una rete protetta ad accesso limitato ed utilizzano protocolli di comunicazione e formati dati eterogenei. Dall'altro lato, è necessario che l'accesso ai dati da parte degli utenti possa avvenire tramite un'interfaccia web (o dashboard web) ricca, interattiva, ma contemporaneamente semplice e leggera, fruibile anche da dispositivi mobili. Il sistema da noi sviluppato apporta miglioramenti significativi rispetto alle soluzioni precedentemente proposte per affrontare i problemi suddetti. In particolare presenta un'interfaccia utente costituita da diversi widget configurabili, riuitilizzabili che permettono di esportare i dati sia presentati graficamente sia in formato "machine readable". Un'alta novità introdotta è l'architettura dell'infrastruttura da noi sviluppata. Essa, dato che è basata su Hazelcast, è un'infrastruttura distribuita modulare e scalabile orizzontalmente. È infatti possibile inserire o rimuovere agenti per interfacciarsi con i dispositivi dell'LHC e web server per interfacciarsi con gli utenti in modo del tutto trasparente al sistema. Oltre a queste nuove funzionalità e possbilità, il nostro sistema, come si può leggere nella trattazione, fornisce molteplici spunti per interessanti sviluppi futuri.
Resumo:
La simulazione è definita come la rappresentazione del comportamento di un sistema o di un processo per mezzo del funzionamento di un altro o, alternativamente, dall'etimologia del verbo “simulare”, come la riproduzione di qualcosa di fittizio, irreale, come se in realtà, lo fosse. La simulazione ci permette di modellare la realtà ed esplorare soluzioni differenti e valutare sistemi che non possono essere realizzati per varie ragioni e, inoltre, effettuare differenti valutazioni, dinamiche per quanto concerne la variabilità delle condizioni. I modelli di simulazione possono raggiungere un grado di espressività estremamente elevato, difficilmente un solo calcolatore potrà soddisfare in tempi accettabili i risultati attesi. Una possibile soluzione, viste le tendenze tecnologiche dei nostri giorni, è incrementare la capacità computazionale tramite un’architettura distribuita (sfruttando, ad esempio, le possibilità offerte dal cloud computing). Questa tesi si concentrerà su questo ambito, correlandolo ad un altro argomento che sta guadagnando, giorno dopo giorno, sempre più rilevanza: l’anonimato online. I recenti fatti di cronaca hanno dimostrato quanto una rete pubblica, intrinsecamente insicura come l’attuale Internet, non sia adatta a mantenere il rispetto di confidenzialità, integrità ed, in alcuni, disponibilità degli asset da noi utilizzati: nell’ambito della distribuzione di risorse computazionali interagenti tra loro, non possiamo ignorare i concreti e molteplici rischi; in alcuni sensibili contesti di simulazione (e.g., simulazione militare, ricerca scientifica, etc.) non possiamo permetterci la diffusione non controllata dei nostri dati o, ancor peggio, la possibilità di subire un attacco alla disponibilità delle risorse coinvolte. Essere anonimi implica un aspetto estremamente rilevante: essere meno attaccabili, in quanto non identificabili.
Resumo:
Lo scopo di questo l'elaborato è l'analisi,lo studio e il confronto delle tecnologie per l'analisi in tempo reale di Big Data: Apache Spark Streaming, Apache Storm e Apache Flink. Per eseguire un adeguato confronto si è deciso di realizzare un sistema di rilevamento e riconoscimento facciale all’interno di un video, in maniera da poter parallelizzare le elaborazioni necessarie sfruttando le potenzialità di ogni architettura. Dopo aver realizzato dei prototipi realistici, uno per ogni architettura, si è passati alla fase di testing per misurarne le prestazioni. Attraverso l’impiego di cluster appositamente realizzati in ambiente locale e cloud, sono state misurare le caratteristiche che rappresentavano, meglio di altre, le differenze tra le architetture, cercando di dimostrarne quantitativamente l’efficacia degli algoritmi utilizzati e l’efficienza delle stesse. Si è scelto quindi il massimo input rate sostenibile e la latenza misurate al variare del numero di nodi. In questo modo era possibile osservare la scalabilità di architettura, per analizzarne l’andamento e verificare fino a che limite si potesse giungere per mantenere un compromesso accettabile tra il numero di nodi e l’input rate sostenibile. Gli esperimenti effettuati hanno mostrato che, all’aumentare del numero di worker le prestazioni del sistema migliorano, rendendo i sistemi studiati adatti all’utilizzo su larga scala. Inoltre sono state rilevate sostanziali differenze tra i vari framework, riportando pro e contro di ognuno, cercando di evidenziarne i più idonei al caso di studio.
Resumo:
In questo scritto si analizzeranno alcune alternative nella configurazione di rete della piattaforma di cloud computing open source OpenStack. Verrà mostrata un’ installazione in ambiente di laboratorio di un cluster completo basato sulla release Liberty di Openstack, per poi modificarne la componente dedicata al Networking in modo da sfruttare diversi plugin e diversi protocolli. Si osserverà il traffico generato all’interno e verso l’esterno del sistema Openstack in modo da avere un quadro generale del comportamento dell’infrastruttura.
Resumo:
L’obbiettivo di questa tesi è realizzare il prototipo di un’applicazione client-server che permetta di utilizzare in remoto applicazioni in Virtual Reality, fornendo allo stesso tempo supporto alla multiutenza. L’applicazione in realtà virtuale dovrà girare sul server, dispositivo con capacità di calcolo notevolmente superiori rispetto a quelle del client. Più utenti dovranno avere la possibilità di connettersi contemporaneamente e condividere lo stesso spazio virtuale. Il client sarà, in questo caso, un’applicazione Android che si connetterà al server e avrà il compito di mostrare all'utente l’output dell’applicazione in Virtual Reality e allo stesso tempo ricevere l’input da inviare al server. Un altro obbiettivo durante lo sviluppo del prototipo è quello di realizzare una libreria che offra le funzionalità sopraelencate, facilmente integrabile in nuovi progetti o in progetti già esistenti. Utilizzando questa struttura client-server sarà possibile sviluppare applicazioni che permettano a più persone di condividere lo stesso spazio virtuale, ognuno dal proprio punto di vista, utilizzando visori e sistemi operativi diversi.
Resumo:
Con la crescita in complessità delle infrastrutture IT e la pervasività degli scenari di Internet of Things (IoT) emerge il bisogno di nuovi modelli computazionali basati su entità autonome capaci di portare a termine obiettivi di alto livello interagendo tra loro grazie al supporto di infrastrutture come il Fog Computing, per la vicinanza alle sorgenti dei dati, e del Cloud Computing per offrire servizi analitici complessi di back-end in grado di fornire risultati per milioni di utenti. Questi nuovi scenarii portano a ripensare il modo in cui il software viene progettato e sviluppato in una prospettiva agile. Le attività dei team di sviluppatori (Dev) dovrebbero essere strettamente legate alle attività dei team che supportano il Cloud (Ops) secondo nuove metodologie oggi note come DevOps. Tuttavia, data la mancanza di astrazioni adeguata a livello di linguaggio di programmazione, gli sviluppatori IoT sono spesso indotti a seguire approcci di sviluppo bottom-up che spesso risulta non adeguato ad affrontare la compessità delle applicazione del settore e l'eterogeneità dei compomenti software che le formano. Poichè le applicazioni monolitiche del passato appaiono difficilmente scalabili e gestibili in un ambiente Cloud con molteplici utenti, molti ritengono necessaria l'adozione di un nuovo stile architetturale, in cui un'applicazione dovrebbe essere vista come una composizione di micro-servizi, ciascuno dedicato a uno specifica funzionalità applicativa e ciascuno sotto la responsabilità di un piccolo team di sviluppatori, dall'analisi del problema al deployment e al management. Poichè al momento non si è ancora giunti a una definizione univoca e condivisa dei microservices e di altri concetti che emergono da IoT e dal Cloud, nè tantomento alla definzione di linguaggi sepcializzati per questo settore, la definzione di metamodelli custom associati alla produzione automatica del software di raccordo con le infrastrutture potrebbe aiutare un team di sviluppo ad elevare il livello di astrazione, incapsulando in una software factory aziendale i dettagli implementativi. Grazie a sistemi di produzione del sofware basati sul Model Driven Software Development (MDSD), l'approccio top-down attualmente carente può essere recuperato, permettendo di focalizzare l'attenzione sulla business logic delle applicazioni. Nella tesi viene mostrato un esempio di questo possibile approccio, partendo dall'idea che un'applicazione IoT sia in primo luogo un sistema software distribuito in cui l'interazione tra componenti attivi (modellati come attori) gioca un ruolo fondamentale.