16 resultados para eventi, connessioni, Node JS, event loop, thread, aggregazione

em AMS Tesi di Laurea - Alm@DL - Università di Bologna


Relevância:

100.00% 100.00%

Publicador:

Resumo:

L'obbiettivo di questa tesi è dimostrare che è attualmente possibile realizzare un sistema di aggregazione dati in grado di gestire un numero elevato di connessioni contemporanee con relativamente poco sforzo per lo sviluppatore grazie all'utilizzo di Node JS, piattaforma che utilizza internamente una gestione a eventi a livello di linguaggio di programmazione.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Quando si parla di architetture di controllo in ambito Web, il Modello ad Eventi è indubbiamente quello più diffuso e adottato. L’asincronicità e l’elevata interazione con l’utente sono caratteristiche tipiche delle Web Applications, ed un architettura ad eventi, grazie all’adozione del suo tipico ciclo di controllo chiamato Event Loop, fornisce un'astrazione semplice ma sufficientemente espressiva per soddisfare tali requisiti. La crescita di Internet e delle tecnologie ad esso associate, assieme alle recenti conquiste in ambito di CPU multi-core, ha fornito terreno fertile per lo sviluppo di Web Applications sempre più complesse. Questo aumento di complessità ha portato però alla luce alcuni limiti del modello ad eventi, ancora oggi non del tutto risolti. Con questo lavoro si intende proporre un differente approccio a questa tipologia di problemi, che superi i limiti riscontrati nel modello ad eventi proponendo un architettura diversa, nata in ambito di IA ma che sta guadagno popolarità anche nel general-purpose: il Modello ad Agenti. Le architetture ad agenti adottano un ciclo di controllo simile all’Event Loop del modello ad eventi, ma con alcune profonde differenze: il Control Loop. Lo scopo di questa tesi sarà dunque approfondire le due tipologie di architetture evidenziandone le differenze, mostrando cosa significa affrontare un progetto e lo sviluppo di una Web Applications avendo tecnologie diverse con differenti cicli di controllo, mettendo in luce pregi e difetti dei due approcci.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

La tesi illustra le funzionalita e l'architettura di Node.js elencando e analizzando le caratteristiche che lo rendono un framework vincente nella sfida che il web attuale pone. La tesi comprende l'analisi e la descrizione del lavoro svolto per creare una libreria HTTP/ File system, integrata nel sistema di sviluppo cloud proprietario: Instant Developer , funzionante sia su Node.JS che sui browser che supportano appieno le nuove API File system di HTML 5. Particolare attenzione viene riservata per la descrizione della struttura della libreria, pensata per permettere all'utente dell'IDE di utilizzarla indifferentemente su server/browser senza preoccuparsi di chiamare metodi diversi. Fs.js permette di operare con file/cartelle, richieste HTTP in modo semplificato rispetto alle API Ufficiali dei rispettivi ambienti.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Panoramica del contesto storico focalizzato sullo sviluppo del Web e del contesto sociale. Panorama del modello a Threads con analisi delle tecniche di concorrenza applicabili. Panoramica del modello ad Attori focalizzandosi sull'implementazione di Akka e di alcuni patterns di comunicazione. Analisi dell'architettura event-driven e di Node.js. Esposizione di un caso di studio per la programmazione Web comparando modello a Thread e modello ad Attori.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

L’obiettivo della tesi è esplorare gli aspetti fondamentali che riguardano la programmazione asincrona, in particolare in JavaScript, analizzando le librerie e i metodi piu` diffusi per risolvere problemi tipici di asincronicità. Il motivo dello studio di JavaScript è il grande utilizzo di tale linguaggio per la costruzione delle moderne web-app. Per la realizzazione di questo elaborato si è partiti dallo studio dell’evoluzione del web, dal Web 1.0 al web 2.0 e dall’evoluzione delle web app in questo contesto, successivamente si è raffinata la ricerca allo studio più specifico di JavaScript e, di conseguenza, ai suoi costrutti ed ai suoi stili di programmazione, come la programmazione asincrona e la programmazione ad eventi.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Il Web ha subito numerose trasformazioni rispetto al passato. Si è passati da un Web statico, in cui l'unica possibilità era quella di leggere i contenuti della pagina, ad un Web dinamico e interattivo come quello dei social network. Il Web moderno è, ancora oggi, un universo in espansione. La possibilità di arricchire le pagine con contenuti interattivi, video, foto e molto altro, rende l'esperienza web sempre più coinvolgente. Inoltre la diffusione sempre più ampia di mobile device ha reso necessaria l'introduzione di nuovi strumenti per sfruttare al meglio le funzionalità di tali dispositivi. Esistono al momento tantissimi linguaggi di scripting e di programmazione, ma anche CMS che offrono a chiunque la possibilità di scrivere e amministrare siti web. Nonostante le grandi potenzialità che offrono, spesso queste tecnologie si occupano di ambiti specifici e non permettono di creare sistemi omogenei che comprendano sia client che server. Dart si inserisce proprio in questo contesto. Tale linguaggio dà a i programmatori la possibilità di poter sviluppare sia lato client sia lato server. L'obiettivo principale di questo linguaggio è infatti la risoluzione di alcune problematiche comuni a molti programmatori web. Importante in questo senso è il fatto di rendere strutturata la costruzione di programmi web attraverso l'uso di interfacce e classi. Fornisce inoltre un supporto per l'integrazione di svariate funzionalità che allo stato attuale sono gestite da differenti tecnologie. L'obiettivo della presente tesi è quello di mettere a confronto Dart con alcune delle tecnologie più utilizzate al giorno d'oggi per la programmazione web-based. In particolare si prenderanno in considerazione JavaScript, jQuery, node.js e CoffeeScript.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Questo elaborato tratta della progettazione e dell'implementazione di una piattaforma social, destinata alla commercializzazione, per creare, gestire, condividere un insieme di liste organizzate di oggetti. La piattaforma è di tipo client-server, dove il client consiste in un'applicazione Android e il server in un'applicazione Node.js e un database MySQL che offrono un'API RESTful. Nello specifico è stata trattata l'implementazione delle notifiche push (anche geolocalizzate) e la sincronizzazione dei dati per l'utilizzo offline.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Questa tesi ha come scopo principale l'analisi delle diverse tecnologie di localizzazione in ambito indoor, analizzando in particolare l'utilizzo del Wifi RSS Fingerprinting. La tecnica del Wifi RSS Fingerprinting è una tecnica per la localizzazione all'interno di ambienti chiusi, che consiste nella definizione di un 'impronta'(fingerprint) in un punto preciso dell'ambiente(definito reference point), andando a inserire in un database i valori di potenza del segnale ricevuto(RSS) da ogni access point rilevato all'interno di quel determinato reference point. Per l'implementazione di questa tecnica è stato sviluppato un applicativo con un architettura client-server. Il client è stato sviluppato in ambiente Android, realizzando una applicazione per la gestione della fase di salvataggio di nuovi fingerprint e per la fase di localizzazione della posizione corrente, tramite l'utilizzo dei vari fingerprint precedentemente inseriti all'interno del DB. Il server, sviluppato in Node.js(framework Javascript), gestirà le diverse richieste ricevute dal client tramite delle chiamate AJAX, prelevando le informazioni richieste direttamente dal database. All'interno delle applicativo sono stati implementati diversi algoritmi per la localizzazione indoor, in modo da poter verificare l'applicabilità di questo sistema in un ambito reale. Questi algoritmi sono stati in seguito testati per valutare l'accuratezza e la precisione di ciascuno, andando ad individuare gli algoritmi migliori da utilizzare in base a scenari diversi.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Piattaforma di raccolta e analisi dei dati ambientali, raccolti da vari dispositivi. Server in node.js per ricevere e salvare i dati, client android per catturare i dati, client web per analizzare i dati attraverso una mappa e dei grafici.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Nella tesi, inizialmente, viene introdotto il concetto di Big Data, descrivendo le caratteristiche principali, il loro utilizzo, la provenienza e le opportunità che possono apportare. Successivamente, si sono spiegati i motivi che hanno portato alla nascita del movimento NoSQL, come la necessità di dover gestire i Big Data pur mantenendo una struttura flessibile nel tempo. Inoltre, dopo un confronto con i sistemi tradizionali, si è passati al classificare questi DBMS in diverse famiglie, accennando ai concetti strutturali sulle quali si basano, per poi spiegare il funzionamento. In seguito è stato descritto il database MongoDB orientato ai documenti. Sono stati approfonditi i dettagli strutturali, i concetti sui quali si basa e gli obbiettivi che si pone, per poi andare ad analizzare nello specifico importanti funzioni, come le operazioni di inserimento e cancellazione, ma anche il modo di interrogare il database. Grazie alla sue caratteristiche che lo rendono molto performante, MonogDB, è stato utilizzato come supporto di base di dati per la realizzazione di un applicazione web che permette di mostrare la mappa della connettività urbana.

Relevância:

40.00% 40.00%

Publicador:

Relevância:

30.00% 30.00%

Publicador:

Resumo:

I sistemi mobili rappresentano una classe di sistemi distribuiti caratterizzata dalla presenza di dispositivi portatili eterogenei quali PDA, laptop e telefoni cellulari che interagiscono tra loro mediante una rete di interconnessione wireless. Una classe di sistemi mobili di particolare interesse è costituita dai sistemi basati sul modello di interazione publish/subscribe. Secondo tale schema, i nodi all'interno di una rete possono assumere due ruoli differenti: i produttori di informazione, chiamati publisher, ed i consumatori di informazione, chiamati subscriber. Tipicamente, l'interazione tra essi è mediata da un gestore di eventi che indirizza correttamente le informazioni ricevute dai publisher verso i subscriber interessati, sulla base degli interessi espressi da questi ultimi tramite sottoscrizioni. Nella progettazione di sistemi mobili, a differenza di quelli tradizionali basati su nodi fissi, bisogna tenere conto di problemi quali la scarsa capacità computazionale dei dispositivi e la limitata larghezza di banda delle reti wireless. All'interno di tale ambito, stanno recentemente assumendo sempre maggiore importanza i sistemi context-aware, ovvero sistemi mobili che sfruttano i dati provenienti dall'ambiente circostante e dai dispositivi stessi per adattare il proprio comportamento e notificare agli utenti la presenza di informazioni potenzialmente utili. Nello studio di questi sistemi, si è notato che i nodi che si trovano nella stessa area geografica generano tipicamente delle sottoscrizioni che presentano tra loro un certo grado di similarità e coperture parziali o totali. Il gruppo di ricerca del DEIS dell’Università di Bologna ha sviluppato un'infrastruttura di supporto per sistemi mobili context-aware, chiamata SALES. Attualmente il sistema progettato non considera le similarità delle sottoscrizioni e quindi non sfrutta opportunamente tale informazione. In questo contesto si rende necessario l'adozione di opportune tecniche di aggregazione delle sottoscrizioni atte ad alleggerire la computazione dei nodi mobili e le comunicazioni tra loro. Il lavoro presentato in questa tesi sarà finalizzato alla ricerca, all'adattamento ed all'implementazione di una tecnica di aggregazione delle sottoscrizioni. Tale tecnica avrà lo scopo di rilevare e sfruttare le similarità delle sottoscrizioni ricevute dal sistema al fine di ridurne il numero; in questo modo, quando un nodo riceverà un dato, il processo di confronto tra l'insieme delle sottoscrizioni memorizzate e il dato ricevuto sarà più leggero, consentendo un risparmio di risorse computazionali. Inoltre, adattando tali tecniche, sarà possibile modulare anche il traffico dati scaturito dalle risposte alle sottoscrizioni. La struttura di questa tesi prevede un primo capitolo sui sistemi context-aware, descrivendone le principali caratteristiche e mettendo in luce le problematiche ad essi associate. Il secondo capitolo illustra il modello di comunicazione Publish/Subscribe, modello di riferimento per i moderni sistemi context-aware e per i sistemi mobili in generale. Il terzo capitolo descrive l'infrastruttura SALES sulla quale si è progettata, implementata e testata la soluzione proposta in questa tesi. Il quarto capitolo presenta le principali tecniche di aggregazione delle sottoscrizioni e spiega come possono essere adattate al contesto di questa tesi. Il quinto capitolo effettua l'analisi dei requisiti per comprendere meglio il comportamento della soluzione; seguono la progettazione e l’implementazione della soluzione su SALES. Infine, il sesto capitolo riporta in dettaglio i risultati ottenuti da alcuni degli esperimenti effettuati e vengono messi a confronto con quelli rilevati dal sistema di partenza.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Attualmente il panorama informatico è dominato dai dispositivi mobile: smartphone e tablet pc dominano incontrastati la scena del mercato elettronico. Questo comporta un radicale ripensamento e cambiamento del software, le web app e le mobile application richiedono infatti una sempre maggiore reattività dell’interfaccia utente, la persistente connessione a Internet e l’interazione con una moltitudine di dispositivi esterni. Il progettista di software deve oggi far fronte a tutta una serie di problematiche, l’aumentata complessità dei sistemi e i sempre più ristretti tempi di sviluppo e consegna richiedono compromessi tra la semplicità delle tecniche di progettazione e l’efficienza del prodotto ottenuto. Le architetture ad eventi in primis, unitamente al paradigma di programmazione asincrona, si pongono come soluzione ottimale a queste esigenze. L’obbiettivo principale di questa tesi è quello di offrire una panoramica generale sullo stato dell’arte delle architetture ad eventi focalizzandosi sul ruolo che esse assumono nel contesto delle applicazioni moderne, intendendo principalmente con questo termine le web application e le mobile application. Partendo dal concetto di programmazione sincrona e parallela si giunge a descrivere un terzo modello, il modello asincrono, di fondamentale importanza per i sistemi event-driven. Utilizzando come principale linguaggio di riferimento JavaScript si affrontano le problematiche legate alla stesura del codice per la gestione degli eventi, l’asincronicità intrinseca degli eventi e l’utilizzo di funzioni di callback portano a produrre codice di difficile lettura e manutenzione. Si analizzano quindi in dettaglio i pattern fondamentali e le tecniche attualmente utilizzate per l’ottimizzazione della gestione del codice e delle problematiche esposte fornendo numerosi esempi esplicativi.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Il progetto Eye-Trauma si colloca all'interno dello sviluppo di un simulatore chirurgico per traumi alla zona oculare, sviluppato in collaborazione con Simulation Group in Boston, Harvard Medical School e Massachusetts General Hospital. Il simulatore presenta un busto in silicone fornito di moduli intercambiabili della zona oculare, per simulare diversi tipi di trauma. L'utilizzatore è chiamato ad eseguire la procedura medica di saturazione tramite degli strumenti chirurgici su cui sono installati dei sensori di forza e di apertura. I dati collezionati vengono utilizzati all'interno del software per il riconoscimento dei gesti e il controllo real-time della performance. L'algoritmo di gesture recognition, da me sviluppato, si basa sul concetto di macchine a stati; la transizione tra gli stati avviene in base agli eventi rilevati dal simulatore.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Nella prima parte di questa tesi viene introdotto il concetto di Internet of Things. Vengono discussi gli elementi costituitivi fondamentali di tale tecnologia, le differenti architetture proposte nel corso degli anni e le sfide che devono ancora essere affrontate per vedere realizzato l’IoT. Questa prima parte si conclude inoltre con due esempi di applicazione dell’IoT. Questi due esempi, Smart City e Smart Healthcare, hanno l’obbiettivo di evidenziare quali sono i vantaggi ed i servizi che possono essere offerti all’utente finale una volta applicato l’IoT. Nel secondo capitolo invece, vengono presentate le funzionalità della piattaforma IoT ThingWorx, la quale mette a disposizione un ambiente di sviluppo per applicazioni IoT con l’obbiettivo di ridurre i tempi e quindi anche i costi di sviluppo delle stesse. Questa piattaforma cerca di ridurre al minimo la necessità di scrivere codice, utilizzando un sistema di sviluppo di tipo “Drag and Drop”. ThingWorx mette anche a disposizione degli SDK per facilitare la programmazione dei device, gestendo soprattutto la parte di comunicazione nodo – piattaforma. Questo argomento viene trattato ampiamente nella parte finale di questo capitolo dopo aver visto quali sono i concetti fondamentali di modellazione e rappresentazione dei dati sui quali si basa la piattaforma. Nel terzo e ultimo capitolo di questa tesi viene presentato innanzitutto il tutorial Android di ThingWorx. Svolgere e successivamente estendere il tutorial ha evidenziato alcune limitazioni del modello iniziale e questo ci ha portato a progettare e sviluppare il componente Aggregated & Complex Event Manager per la gestione di eventi complessi e che permette di sgravare parzialmente la piattaforma da tale compito. La tesi si conclude evidenziando, tramite dei test, alcune differenze fra la situazione iniziale nella quale il componente non viene utilizzato e la situazione finale, nella quale invece viene usato.