28 resultados para Java Persistence API
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.
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.
Resumo:
Questa tesi esamina la progettazione e lo sviluppo di un'applicazione mobile Android che è in grado di gestire l'attività sportiva di un utente. L'applicazione offre numerose funzionalità, che permettono all'utente di eseguire allenamenti per il fitness e allenamenti per la corsa, tenendo sempre sotto controllo i risultati ottenuti e tutte le informazioni necessarie. Oltre ad eseguire allenamenti l'utente può crearne di propri e modificarli a suo piacimento, in più nell'App è inserito lo shop dove l'utilizzatore può comprare allenamenti messi a disposizione direttamente da FitBody. Gli aspetti visti sopra saranno descritti attraverso un'analisi del problema e un'analisi sulla progettazione architetturale. In particolare verranno sottolineati aspetti riguardanti l'interazione tra utenti e l'utilizzo di API che permetteranno all'utilizzatore di condividere le proprie esperienze sul social network Facebook e di avere un'esperienza completa con l'app. In questo scritto si parlerà anche della comunicazione tra applicazione e server, che avviene grazie a chiamate HTTP con metodo POST. Attraverso queste chiamate l'applicazione leggerà e scriverà informazioni sul database online, 'hostato' sulla piattaforma Altervista. L'applicazione web, di cui sarà data solamente un'infarinatura, è stata sviluppata utilizzando il linguaggio di programmazione PHP. Ogni 'response' inviata dal server al client è composta da uno o più oggetti JSON.
Resumo:
La grande crescita e l'enorme distribuzione che hanno avuto negli ultimi tempi i moderni devices mobile (smartphones, tablet, dispositivi wearable, etc...) ha dato l'avvio ad un massiccio sviluppo di applicazioni mobile di qualunque genere, dall'health-care all'AR (Augmented Reality, realtà aumentata), dalle applicazioni social alle applicazioni che offrono servizi all'utente.
Resumo:
L’argomento centrale della tesi sono i centri sportivi, l’applicazione permette quindi all’utente di cercare un centro sportivo per nome, per città o per provincia. Consente inoltre di visualizzare la disponibilità per ogni campo offerto dalle strutture ed eventualmente di effettuare una prenotazione. Il centro sportivo renderà disponibili informazioni altrimenti difficilmente reperibili come gli orari, il numero telefonico, l’indirizzo, ecc.. Il progetto si compone di una parte front end e una parte back end. Il front consiste in un’applicazione android nativo (sviluppata in java). Il back-end invece vede un applicativo basato su ASP.NET Web API 2, con db Entity Framework Code First. Per la gestione degli user è stato scelto il framework ASP.NET Identity 2.1.
Resumo:
In questa tesi sono stati introdotti e studiati i Big Data, dando particolare importanza al mondo NoSQL, approfondendo MongoDB, e al mondo del Machine Learning, approfondendo PredictionIO. Successivamente è stata sviluppata un'applicazione attraverso l'utilizzo di tecnologie web, nodejs, node-webkit e le tecnologie approfondite prima. L'applicazione utilizza l'interpolazione polinomiale per predirre il prezzo di un bene salvato nello storico presente su MongoDB. Attraverso PredictionIO, essa analizza il comportamento degli altri utenti consigliando dei prodotti per l'acquisto. Infine è stata effetuata un'analisi dei risultati dell'errore prodotto dall'interpolazione.
Resumo:
In questa tesi inizialmente ci si è occupati di definire ed approfondire le caratteristiche della tecnologia Wi-Fi Direct, illustrandone il funzionamento, l’architettura e gli scenari di utilizzo. Successivamente è stata sviluppata un’applicazione basata su tale tecnologia, con lo scopo di fornire un servizio di disseminazione di messaggi d’aiuto in situazioni di emergenza o di catastrofi naturali, nelle quali la rete cellulare viene inevitabilmente meno. In queste occasioni c’è il bisogno di avere uno strumento che permetta di comunicare in maniera facile, veloce e che sia alla portata di tutti. Caratteristiche e qualità proprie di uno smartphone, dispositivo che oggigiorno è presente nelle tasche di ognuno di noi. L’obiettivo finale infatti, sarebbe quello di creare un applicativo che possa idealmente essere preinstallato in ogni nostro dispositivo, un servizio che sia diffuso, compreso ed utilizzabile istantaneamente da tutti, in modo tale da essere una sicurezza e un aiuto di vitale importanza in situazioni di pericolo. Per lo sviluppo di una tale applicazione ci si è basati sul sistema operativo Android, che è il più diffuso tra gli utenti di tutto il mondo. Nel primo capitolo ci si è occupati di di presentare ed approfondire la tecnologia Wi-Fi Direct, definendone gli ambiti generali di utilizzo e le problematiche che vengono affrontate. Nel secondo capitolo si prosegue con la presentazione della tecnologia in ambiente Android, descrivendo le API fornite da Google per l’utilizzo del servizio in questione. Nel terzo capitolo, dopo un’analisi dei progetti che coinvolgono tale tecnologia, viene illustrata l’applicazione creata, le sue funzionalità e caratteristiche ed eventuali casi d’uso. Nel quarto capitolo è stata inserita la parte più tecnica, dove illustro i problemi incontrati e le modalità di risoluzione degli stessi, insieme alle strutture ed agli oggetti messi a disposizione da Java che sono stati utilizzati. Infine nel capitolo conclusivo è stato fatto un riepilogo del lavoro svolto, indicando le difficoltà incontrate ed eventuali possibili miglioramenti e sviluppi futuri del mio progetto.
Resumo:
La programmazione aggregata è un paradigma che supporta la programmazione di sistemi di dispositivi, adattativi ed eventualmente a larga scala, nel loro insieme -- come aggregati. L'approccio prevalente in questo contesto è basato sul field calculus, un calcolo formale che consente di definire programmi aggregati attraverso la composizione funzionale di campi computazionali, creando i presupposti per la specifica di pattern di auto-organizzazione robusti. La programmazione aggregata è attualmente supportata, in modo più o meno parziale e principalmente per la simulazione, da DSL dedicati (cf., Protelis), ma non esistono framework per linguaggi mainstream finalizzati allo sviluppo di applicazioni. Eppure, un simile supporto sarebbe auspicabile per ridurre tempi e sforzi d'adozione e per semplificare l'accesso al paradigma nella costruzione di sistemi reali, nonché per favorire la ricerca stessa nel campo. Il presente lavoro consiste nello sviluppo, a partire da un prototipo della semantica operazionale del field calculus, di un framework per la programmazione aggregata in Scala. La scelta di Scala come linguaggio host nasce da motivi tecnici e pratici. Scala è un linguaggio moderno, interoperabile con Java, che ben integra i paradigmi ad oggetti e funzionale, ha un sistema di tipi espressivo, e fornisce funzionalità avanzate per lo sviluppo di librerie e DSL. Inoltre, la possibilità di appoggiarsi, su Scala, ad un framework ad attori solido come Akka, costituisce un altro fattore trainante, data la necessità di colmare l'abstraction gap inerente allo sviluppo di un middleware distribuito. Nell'elaborato di tesi si presenta un framework che raggiunge il triplice obiettivo: la costruzione di una libreria Scala che realizza la semantica del field calculus in modo corretto e completo, la realizzazione di una piattaforma distribuita Akka-based su cui sviluppare applicazioni, e l'esposizione di un'API generale e flessibile in grado di supportare diversi scenari.
Resumo:
In questo lavoro di tesi si è analizzato il problema di creare un sistema di assistenza allo shopping integrabile in applicazioni e-commerce web e mobile sviluppate con le tecnologie messe a disposizione da Marketcloud, ovvero un progetto che punta a fornire strumenti per la realizzazione, la manutenzione, la gestione, la diffusione e la pubblicizzazione di tali applicazioni limitando i costi e le problematiche di sviluppo a carico delle aziende che intendono fornire servizi di e-commerce. Dopo aver discusso gli aspetti principali del progetto Marketcloud, sono state analizzate le necessità delle aziende interessate allo sviluppo del sistema di assistenza in esame, così come le aspettative degli utenti (i clienti) finali, ed è stato discusso perché fosse necessario e preferibile, nel caso in esame, non utilizzare soluzioni già presenti sul mercato. Infine, è stata progettata ed implementata un’applicazione web che includesse tale sistema e che fosse immediatamente integrabile tra i servizi già sviluppati da Marketcloud, testandone risultati, prestazioni, problemi e possibili sviluppi futuri. Al termine del lavoro di implementazione, il sistema e l'applicazione garantiscono all'utente finale l'utilizzo di tre funzioni: ricerca per categoria, ricerca libera, recommendation di prodotti. Per gestire la ricerca libera, è stato implementato un sistema di filtri successivi, ed una rete neurale multi-livello dotata di un opportuno algoritmo di machine learning per poter apprendere dalle scelte degli utenti; per la recommendation di prodotti, è stato utilizzato un sistema di ranking (classificazione). Le prestazioni della rete neurale sono state oggetto di attenta analisi.
Resumo:
In Java 8, ultimo aggiornamento ufficiale del linguaggio Java, sono state introdotte alcune nuove funzionalità che permettono l’integrazione di alcuni meccanismi legati ai linguaggi dinamici o funzionali, come le espressioni lambda, l’utilizzo degli stream e la dichiarazione di metodi statici all’interno di interfacce. Se si volesse installare un’applicazione scritta in Java 8 su Android, Dalvik VM, la JVM in esso presente, fallirà il processo di traduzione del bytecode. In questa tesi quindi esplorerò, sia ad alto livello che a basso livello, l’origine del problema e presenterò una soluzione di backporting per un’applicazione esistente.
Resumo:
Questa tesi ha come obiettivo la sperimentazione del nuovo sistema operativo Windows 10 IoT Core su tecnologia Raspberry Pi 2, verificandone la compatibilita con alcuni sensori in commercio. Tale studio viene poi applicato in un contesto di Home Intelligence al fine di creare un agente per la gestione di luci LED, in prospettiva della sua integrazione nel sistema prototipale Home Manager.
Resumo:
La diffusione di soluzioni domotiche dipende da tecnologie abilitanti che supportino la comunicazione tra i numerosi agenti delle reti. L’obiettivo della tesi è progettare e realizzare un middleware per sensori distribuiti Java-based chiamato SensorNetwork, che permetta ad un agente domotico di effettuare sensing sull’ambiente. Le funzionalità principali del sistema sono uniformità di accesso a sensori eterogenei distribuiti, alto livello di automazione (autoconfigurazione e autodiscovery dei nodi), configurazione a deployment time, modularità, semplicità di utilizzo ed estensione con nuovi sensori. Il sistema realizzato è basato su un’architettura a componente-container che permette l’utilizzo di sensori all’interno di stazioni di sensori e che supporti l’accesso remoto per mezzo di un servizio di naming definito ad-hoc.
Resumo:
Sono dette “challenged networks” quelle reti in cui lunghi ritardi, frequenti partizionamenti e interruzioni, elevati tassi di errore e di perdita non consentono l’impiego dei classici protocolli di comunicazione di Internet, in particolare il TCP/IP. Il Delay-/Disruption-Tolerant Networking (DTN) è una soluzione per il trasferimento di dati attraverso queste reti. L’architettura DTN prevede l’introduzione, sopra il livello di trasporto, del cosiddetto “bundle layer”, che si occupa di veicolare messaggi, o bundle, secondo l’approccio store-and-forward: ogni nodo DTN conserva persistentemente un bundle finché non si presenta l’opportunità di inoltrarlo al nodo successivo verso la destinazione. Il protocollo impiegato nel bundle layer è il Bundle Protocol, le cui principali implementazioni sono tre: DTN2, l’implementazione di riferimento; ION, sviluppata da NASA-JPL e più orientata alle comunicazioni spaziali; IBR-DTN, rivolta soprattutto a dispositivi embedded. Ciascuna di esse offre API che consentono la scrittura di applicazioni in grado di inviare e ricevere bundle. DTNperf è uno strumento progettato per la valutazione delle prestazioni in ambito DTN. La più recente iterazione, DTNperf_3, è compatibile sia con DTN2 che con ION nella stessa versione del programma, grazie all’introduzione di un “Abstraction Layer” che fornisce un’unica interfaccia per l’interazione con le diverse implementazioni del Bundle Protocol e che solo internamente si occupa di invocare le API specifiche dell’implementazione attiva. Obiettivo della tesi è estendere l’Abstraction Layer affinché supporti anche IBR-DTN, cosicché DTNperf_3 possa essere impiegato indifferentemente su DTN2, ION e IBR DTN. Il lavoro sarà ripartito su tre fasi: nella prima esploreremo IBR DTN e le sue API; nella seconda procederemo all’effettiva estensione dell’Abstraction Layer; nella terza verificheremo il funzionamento di DTNperf a seguito delle modifiche, sia in ambiente esclusivamente IBR-DTN, sia ibrido.