484 resultados para Ballerina,Cloud Native,API,Linguaggio di Programmazione


Relevância:

100.00% 100.00%

Publicador:

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Il Web nel corso della sua esistenza ha subito un mutamento dovuto in parte dalle richieste del mercato, ma soprattutto dall’evoluzione e la nascita costante delle numerose tecnologie coinvolte in esso. Si è passati da un’iniziale semplice diffusione di contenuti statici, ad una successiva collezione di siti web, dapprima con limitate presenze di dinamicità e interattività (a causa dei limiti tecnologici), ma successivamente poi evoluti alle attuali applicazioni web moderne che hanno colmato il gap con le applicazioni desktop, sia a livello tecnologico, che a livello di diffusione effettiva sul mercato. Tali applicazioni web moderne possono presentare un grado di complessità paragonabile in tutto e per tutto ai sistemi software desktop tradizionali; le tecnologie web hanno subito nel tempo un evoluzione legata ai cambiamenti del web stesso e tra le tecnologie più diffuse troviamo JavaScript, un linguaggio di scripting nato per dare dinamicità ai siti web che si ritrova tutt’ora ad essere utilizzato come linguaggio di programmazione di applicazioni altamente strutturate. Nel corso degli anni la comunità di sviluppo che ruota intorno a JavaScript ha prodotto numerose librerie al supporto del linguaggio dotando così gli sviluppatori di un linguaggio completo in grado di far realizzare applicazioni web avanzate. Le recenti evoluzioni dei motori javascript presenti nei browser hanno inoltre incrementato le prestazioni del linguaggio consacrandone la sua leadership nei confronti dei linguaggi concorrenti. Negli ultimi anni a causa della crescita della complessità delle applicazioni web, javascript è stato messo molto in discussione in quanto come linguaggio non offre le classiche astrazioni consolidate nel tempo per la programmazione altamente strutturata; per questo motivo sono nati linguaggi orientati alla programmazione ad oggetti per il web che si pongono come obiettivo la risoluzione di questo problema: tra questi si trovano linguaggi che hanno l’ambizione di soppiantare JavaScript come ad esempio Dart creato da Google, oppure altri che invece sfruttano JavaScript come linguaggio base al quale aggiungono le caratteristiche mancanti e, mediante il processo di compilazione, producono codice JavaScript puro compatibile con i motori JavaScript presenti nei browser. JavaScript storicamente fu introdotto come linguaggio sia per la programmazione client-side, che per la controparte server-side, ma per vari motivi (la forte concorrenza, basse performance, etc.) ebbe successo solo come linguaggio per la programmazione client; le recenti evoluzioni del linguaggio lo hanno però riportato in auge anche per la programmazione server-side, soprattutto per i miglioramenti delle performance, ma anche per la sua naturale predisposizione per la programmazione event-driven, paradigma alternativo al multi-threading per la programmazione concorrente. Un’applicazione web di elevata complessità al giorno d’oggi può quindi essere interamente sviluppata utilizzando il linguaggio JavaScript, acquisendone sia i suoi vantaggi che gli svantaggi; le nuove tecnologie introdotte ambiscono quindi a diventare la soluzione per i problemi presenti in JavaScript e di conseguenza si propongono come potenziali nuovi linguaggi completi per la programmazione web del futuro, anticipando anche le prossime evoluzioni delle tecnologie già esistenti preannunciate dagli enti standard della programmazione web, il W3C ed ECMAScript. In questa tesi saranno affrontate le tematiche appena introdotte confrontando tra loro le tecnologie in gioco con lo scopo di ottenere un’ampia panoramica delle soluzioni che uno sviluppatore web dovrà prendere in considerazione per realizzare un sistema di importanti dimensioni; in particolare sarà approfondito il linguaggio TypeScript proposto da Microsoft, il quale è nato in successione a Dart apparentemente con lo stesso scopo, ma grazie alla compatibilità con JavaScript e soprattutto con il vasto mondo di librerie legate ad esso nate in questi ultimi anni, si presenta nel mercato come tecnologia facile da apprendere per tutti gli sviluppatori che già da tempo hanno sviluppato abilità nella programmazione JavaScript.

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:

Questa tesi è strutturata in due parti per un totale di quattro capitoli. La prima parte, formata dai primi due, analizza il sistema operativo iOS e il linguaggio di programmazione Objective-C. La seconda parte, formata dai restanti, è incentrata sullo sviluppo di un framework per iOS che permetta ad un'app di interagire con la piattaforma di commercio elettronico Prestashop. In particolare, verranno studiate l’architettura del framework ed i suoi elementi, ed infine analizzate le sue performance a tempo di esecuzione.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Uno dei temi più discussi ed interessanti nel mondo dell’informatica al giorno d’oggi è sicuramente il Cloud Computing. Nuove organizzazioni che offrono servizi di questo tipo stanno nascendo ovunque e molte aziende oggi desiderano imparare ad utilizzarli, migrando i loro centri di dati e le loro applicazioni nel Cloud. Ciò sta avvenendo anche grazie alla spinta sempre più forte che stanno imprimendo le grandi compagnie nella comunità informatica: Google, Amazon, Microsoft, Apple e tante altre ancora parlano sempre più frequentemente di Cloud Computing e si stanno a loro volta ristrutturando profondamente per poter offrire servizi Cloud adeguandosi così a questo grande cambiamento che sta avvenendo nel settore dell’informatica. Tuttavia il grande movimento di energie, capitali, investimenti ed interesse che l’avvento del Cloud Computing sta causando non aiuta a comprendere in realtà che cosa esso sia, al punto tale che oggi non ne esiste ancora una definizione univoca e condivisa. La grande pressione inoltre che esso subisce da parte del mondo del mercato fa sì che molte delle sue più peculiari caratteristiche, dal punto di vista dell’ingegneria del software, vengano nascoste e soverchiate da altre sue proprietà, architetturalmente meno importanti, ma con un più grande impatto sul pubblico di potenziali clienti. Lo scopo che mi propongo con questa tesi è quello quindi di cercare di fare chiarezza in quello che è il mondo del Cloud computing, focalizzandomi particolarmente su quelli che sono i design pattern più utilizzati nello sviluppo di applicazioni di tipo cloud e presentando quelle che oggi rappresentano le principali tecnologie che vengono utilizzate sia in ambito professionale, che in ambito di ricerca, per realizzare le applicazioni cloud, concentrandomi in maniera particolare su Microsoft Orleans.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Il Data Distribution Management (DDM) è un componente dello standard High Level Architecture. Il suo compito è quello di rilevare le sovrapposizioni tra update e subscription extent in modo efficiente. All'interno di questa tesi si discute la necessità di avere un framework e per quali motivi è stato implementato. Il testing di algoritmi per un confronto equo, librerie per facilitare la realizzazione di algoritmi, automatizzazione della fase di compilazione, sono motivi che sono stati fondamentali per iniziare la realizzazione framework. Il motivo portante è stato che esplorando articoli scientifici sul DDM e sui vari algoritmi si è notato che in ogni articolo si creavano dei dati appositi per fare dei test. L'obiettivo di questo framework è anche quello di riuscire a confrontare gli algoritmi con un insieme di dati coerente. Si è deciso di testare il framework sul Cloud per avere un confronto più affidabile tra esecuzioni di utenti diversi. Si sono presi in considerazione due dei servizi più utilizzati: Amazon AWS EC2 e Google App Engine. Sono stati mostrati i vantaggi e gli svantaggi dell'uno e dell'altro e il motivo per cui si è scelto di utilizzare Google App Engine. Si sono sviluppati quattro algoritmi: Brute Force, Binary Partition, Improved Sort, Interval Tree Matching. Sono stati svolti dei test sul tempo di esecuzione e sulla memoria di picco utilizzata. Dai risultati si evince che l'Interval Tree Matching e l'Improved Sort sono i più efficienti. Tutti i test sono stati svolti sulle versioni sequenziali degli algoritmi e che quindi ci può essere un riduzione nel tempo di esecuzione per l'algoritmo Interval Tree Matching.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

La tesi tratta il processo di analisi, progettazione e implementazione dell'applicazione del corso di laurea di Programmazione, in ambiente iOS. L'applicazione fornirà i servizi, ora offerti dal portale del corso di laurea, ottimizzati per dispositivi mobili.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Obiettivo di questa tesi è quello di illustrare il mondo della realtà aumentata (AR) ed in particolare delle tecnologie software disponibili per lo sviluppo di applicazioni su dispositivi Android. Si partirà dal darne una definizione e riassumerne i principali fatti storici, all'illustrarne i vari hardware disponibili sul mercato e le tecnologie software per sviluppare progetti. Non verranno tralasciati utilizzi e settori di ricerca, e si presenterà poi il sistema operativo Android. Dopo uno sguardo alla sua architettura e alle sue caratteristiche, nonché al linguaggio di programmazione Java, cardine per lo sviluppo in questo sistema, si presenteranno alcune API dell'SDK nativo che si rivelano utili per lo sviluppo di applicazioni per la realtà aumentata. Infine, verrà presentato un approfondimento sull'SDK Metaio.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Il Cloud Computing è una realtà sempre più diffusa e discussa nel nostro periodo storico, ma probabilmente non è ancora chiaro a tutti di cosa si tratta e le potenzialità che possiede. Infatti, non esiste ancora una definizione univoca e condivisa e questo può creare confusione. Oggi le grandi compagnie nella comunità informatica spingono sempre di più per affermare i servizi Cloud a livello mondiale, non solo per le aziende del settore, ma anche per tutte le altre. Ed è così che le aziende di tutto il mondo si muovono per imparare e adottare questa nuova tecnologia, per spostare i loro centri dati e le loro applicazioni nel Cloud. Ma dove e quando nasce il Cloud Computing? Quali sono realmente i benefici per le aziende che adottano questa tecnologia? Questo è l'obiettivo della mia tesi: cercare di far chiarezza sulla sua definizione, indagare sulla sua nascita e fare un quadro economico del suo sviluppo, analizzando i benefici per le aziende e le opportunità offerte. Come caso di studio ho scelto la piattaforma Cloud Foundry perchè in questo momento è in forte espansione e sta facendo un grosso lavoro per cercare di rendere il suo prodotto uno standard per il Cloud Computing. Come esempio particolare di piattaforma basata su Cloud Foundry si parlerà di Bluemix, la piattaforma Cloud offerta da IBM, una delle più grandi aziende nel settore informatico.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

L’esperimento ATLAS al CERN di Ginevra ha un complesso sistema di rivelatori che permettono l’acquisizione e il salvataggio di dati generati dalle collisioni di particelle fondamentali. Il rivelatore per cui trova una naturale applicazione il lavoro di questa tesi è il Pixel Detector. Esso è il più vicino alla beam pipe e si compone di più strati, il più interno dei quali, l’Insertable B-Layer (IBL), aggiunto in seguito allo shut down dell’LHC avvenuto nel 2013, ha apportato diverse innovazioni per migliorare la risoluzione spaziale delle tracce e la velocità di acquisizione dei dati. E’ stato infatti necessario modificare il sistema di acquisizione dati dell’esperimento aggiungendo nuove schede chiamate ROD, ReadOut Driver, e BOC, Back Of Crate. Entrambe le due tipologie di schede sono montate su un apparato di supporto, chiamato Crate, che le gestisce. E’ evidente che avere un sistema remoto che possa mostrare in ogni momento il regime di funzionamento del crate e che dia la possibilità di pilotarlo anche a distanza risulta estremamente utile. Così, tramite il linguaggio di programmazione LabVIEW è stato possibile progettare un sistema multipiattaforma che permette di comunicare con il crate in modo da impostare e ricevere svariati parametri di controllo del sistema di acquisizione dati, come ad esempio la temperatura, la velocità delle ventole di raffreddamento e le correnti assorbite dalle varie tensioni di alimentazione. Al momento il software viene utilizzato all’interno dell’Istituto Nazionale di Fisica Nucleare (INFN) di Bologna dove è montato un crate W-Ie-Ne-R, speculare a quello presente al CERN di Ginevra, contenente delle schede ROD e BOC in fase di test. Il progetto ed il programma sviluppato e presentato in questa tesi ha ulteriori possibilità di miglioramento e di utilizzo, dal momento che anche per altri esperimenti dell’LHC le schede di acquisizione vengono montate sullo stesso modello di crate.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Il progetto è il proseguimento di una tesi di laurea1 in cui si è studiato un metodo di analisi della salute della pelle non invasivo. A tale scopo si è approfondito il tema della spettroscopia d'impedenza ed è stato realizzato un sistema per la loro misura. Questo sistema prevede l'utilizzo di una parte analogica formata da un generatore di segnale sinusoidale a frequenza variabile e la circuiteria per estrarre i valori efficaci di tensione e corrente e il valore di fase. La parte digitale, invece, condiziona il segnale del blocco analogico agendo su trimmer digitali, acquisisce i dati e li trasmette tramite la UART. Lo strumento effettuava le misurazioni ed inviava continuamente i dati grezzi al computer, tramite un convertitore UART/USB, risultando poco versatile. L'obiettivo del progetto è realizzare una piattaforma software che comunichi con l'hardware, permettendo la configurazione dello strumento e la manipolazione dei dati grezzi ricevuti, svincolando quindi l'utente dai problemi di basso livello. Si è studiato un protocollo di comunicazione che permette la trasmissione di maggiore informazione e sono stati scelti dei comandi mnemonici che lo strumento possa facilmente interpretare. Il progetto prevede quindi una prima fase di modifica del vecchio firmware, in modo che il microcontrollore possa leggere e comprendere i dati ricevuti tramite la UART. Nella seconda fase si è sviluppato il software utilizzando il linguaggio di programmazione Java. Lo sviluppo comprende lo studio delle librerie grafiche offerte da JavaFX (soprattutto per la rappresentazione dei dati grezzi in grafici a due assi), di un metodo di gestione e salvataggio su disco delle impostazioni del sistema, della comunicazione seriale e infine del sistema software nella sua completezza. Alcune prove sperimentali sono infine state svolte per verificare la funzionalità dei due sistemi, firmware e software.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

All’interno di questa tesi è stata affrontata la tematica della realizzazione di comuni- cazioni sicure, in modo da ottenere l'indipendenza di queste ultime dal canale utilizzato, con l'ausilio di strumenti in grado di fornire supporto per la creazione di applicativi orientati allo scambio di dati e messaggi, quali i linguaggi di programmazione Java e Jolie, il quale è basato sul precedente. Sono state inizialmente analizzate le principali caratteristiche e le problematiche più importanti che è necessario dover risolvere in modo da poter arrivare al risultato desiderato. Successivamente, è stato dato un ampio sguardo ad una delle scienze più applicate per risolvere i problemi tipici che affliggono questo tipo di comunicazioni, la crittografia. Sono stati elencati gli strumenti messi a disposizione ed il loro funzionamento. La crittografia viene poi applicata al protocollo SSL, il quale rappresenta la soluzione maggiormente diffusa, sia sul Web che in altri ambiti, per proteggere le informazioni personali che transitano tra gli end-point di una comunicazione. Sono state elencate le principali caratteristiche, alcuni cenni riguardanti la nascita e lo sviluppo ed è stato descritto il funzionamento di questo protocollo, soprattutto per quanto riguarda la sua fase preliminare, che è una delle parti che lo caratterizzano maggiormente. In seguito, è stata analizzata la soluzione fornita all’interno delle librerie del linguaggio Java per realizzare comunicazioni indipendenti dal mezzo di comunicazione che soddisfino le politiche dettate dal protocollo SSL. Questa soluzione è rappresentata dalla classe SSLEngine, che è quindi stata esaminata, a partire dal ciclo di vita e dall'inizializzazione, fino ad arrivare all'interazione all'interno di un applicazione. Quanto esplorato in precedenza viene poi applicato a Jolie, un linguaggio di programmazione basato sulle comunicazioni e sviluppato in Java, all'interno dell'Università di Bologna. Dopo uno sguardo generale alle sue caratteristiche è stata approfondita la gestione dei protocolli, e di conseguenza, l'introduzione di SSL all'interno di essi, realizzata tramite la classe SSLProtocol. Questa classe contiene ed implementa i concetti analizzati nel capitolo riguardante Java, adattandoli all'architettura ed alla progettazione pensata appositamente per Jolie; è stata quindi effettuata un'analisi del codice e della gestione della classe SSLEngine per realizzare comunicazioni sicure. Infine, per verificare l’effettivo funzionamento, sono stati creati due semplici casi d’uso per poter sfruttare i vantaggi offerti da Jolie, il quale è particolarmente indicato per la creazione di applicazioni orientate ai servizi.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

La tesi ha lo scopo di indagare le tecnologie disponibili per la realizzazione di linguaggi di programmazione e linguaggi domain specific in ambiente Java. In particolare, vengono proposti e analizzati tre strumenti presenti sul mercato: JavaCC, ANTLR e Xtext. Al termine dell’elaborato, il lettore dovrebbe avere un’idea generale dei principali meccanismi e sistemi utilizzati (come lexer, parser, AST, parse trees, etc.), oltre che del funzionamento dei tre tools presentati. Inoltre, si vogliono individuare vantaggi e svantaggi di ciascuno strumento attraverso un’analisi delle funzionalità offerte, così da fornire un giudizio critico per la scelta e la valutazione dei sistemi da utilizzare.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

L'informatica, assieme alle sue innovazioni tecnologiche, offre al mondo d'oggi uno scenario in continuo sviluppo evolutivo che permette di facilitare alcune necessità dell'essere umano. Con la nascita di internet e dei nuovi dispositivi cellulari, la comunicazione è stata resa più malleabile e immediata. Tuttavia, le nuove tecnologie utilizzano infrastrutture complesse che non sempre sono ampiamente sfruttate a causa delle loro esigenze quali scalabilità, risposte in tempo reale, o tolleranza. Per far fronte a queste caratteristiche, una nuova tendenza del software è quella di fornire autonomia e pro-attività alle entità nel sistema in modo da incrementare la loro interazione. Queste caratteristiche permettono di responsabilizzare i soggetti rendendo il sistema auto-organizzato, con una migliore scalabilità,robustezza, e quindi riducendo le esigenze di calcolo di ciascuna entità. Lo studio dei sistemi auto-organizzanti è stato ispirato alla natura, e in particolare, ai sistemi biologici. Questi sistemi mostrano le caratteristiche interessanti per gli scenari pervasivi, poichè sono robusti e resistenti, in grado di adattarsi al contesto ambientale e quindi reagiscono a determinate modifiche che si verificano nell'ambiente comportandosi di conseguenza. L'ingegneria dell'auto-organizzazione ha il compito di simulare e testare questi comportamenti presentando uno schema progettuale completo che permetta di presentare soluzioni ricorrenti a problemi noti. Tale schema è definito in termini informatici design pattern. Le entità, definite agenti, per interagire e comunicare tra di loro hanno bisogno di coordinarsi tramite un modello specifico. Nel nostro caso è stato scelto TuCSoN, poichè riesce a separare uno spazio dedicato allo scambio di informazioni da uno spazio dedicato alle specifiche che permette di descrivere delle politiche di comportamento per sistemi MAS implementati nell'opportuno linguaggio di programmazione ReSpecT.