106 resultados para tecnologie web rest restful database
Resumo:
Questa tesi tratta dello sviluppo di un progetto chiamato Faxa e di una sua concreta applicazione nell’ambito della domotica (CasaDomotica). Faxa è un framework per la comunicazione via wireless tra dispositivi che supportano il sistema operativo Android e dispositivi Arduino Ethernet, comunicazione che avviene localmente attraverso il wi-fi. Il progetto si inserisce nel panorama più ampio chiamato “Internet of Things”, ovvero internet delle cose, dove ogni oggetto di uso domestico è collegato ad Internet e può essere quindi manipolato attraverso la rete in modo da realizzare una vera e propria “smart house”; perchè ciò si attui occorre sviluppare applicazioni semplici e alla portata di tutti. Il mio contributo comincia con la realizzazione del framework Faxa, così da fornire un supporto semplice e veloce per comporre programmi per Arduino e Android, sfruttando metodi ad alto livello. Il framework è sviluppato su due fronti: sul lato Android è composto sia da funzioni di alto livello, necessarie ad inviare ordini e messaggi all'Arduino, sia da un demone per Android; sul lato Arduino è composto dalla libreria, per inviare e ricevere messaggi. Per Arduino: sfruttando le librerie Faxa ho redatto un programma chiamato “BroadcastPin”. Questo programma invia costantemente sulla rete i dati dei sensori e controlla se ci sono ordini in ricezione. Il demone chiamato “GetItNow” è una applicazione che lavora costantemente in background. Il suo compito è memorizzare tutti i dati contenuti nei file xml inviati da Arduino. Tali dati corrispondono ai valori dei sensori connessi al dispositivo. I dati sono salvati in un database pubblico, potenzialmente accessibili a tutte le applicazioni presenti sul dispositivo mobile. Sul framework Faxa e grazie al demone “GetItNow” ho implementato “CasaDomotica”, un programma dimostrativo pensato per Android in grado di interoperare con apparecchi elettrici collegati ad un Arduino Ethernet, impiegando un’interfaccia video semplice e veloce. L’utente gestisce l’interfaccia per mezzo di parole chiave, a scelta comandi vocali o digitali, e con essa può accendere e spegnere luci, regolare ventilatori, attuare la rilevazione di temperatura e luminosità degli ambienti o quanto altro sia necessario. Il tutto semplicemente connettendo gli apparecchi all’Arduino e adattando il dispositivo mobile con pochi passi a comunicare con gli elettrodomestici.
Resumo:
Obiettivo di questa tesi è sviscerare i concetti fondamentali legati al SEO, in particolar modo dal punto di vista delle aziende italiane: l’evoluzione di questo business nel nostro territorio, gli strumenti e le tecniche di ottimizzazione impiegati nella realizzazione dei siti internet, i capitali, umani ed economici, che alimentano questo mercato in Italia e all’estero e i fattori che oggigiorno sono considerati di fondamentale importanza per ottenere visibilità nei motori di ricerca.
Resumo:
In questo documento di tesi viene descritta la progettazione e la realizzazione di estensioni per il sistema di authoring AContent. L'idea è di creare un'estensione dell'authoring tool che implementi il concetto di template ovvero strumenti di grande efficacia e di facile utilizzo nelle fasi di redazione dei contenuti. Si prevede di aggiungerli ad AContent senza la necessità di integrare un intero motore di template ma utilizzando strutture dati esistenti e specifiche standard di e-learning. I servizi aggiuntivi da offrire agli autori sono stati organizzati secondo tre approcci diversi da cui sono emersi tre livelli di template. Il Template di Layout che determina l'aspetto grafico dei contenuti, il Template di Pagina che definisce la struttura di ogni singola pagina e il Template di Struttura che propone e imposta un modello per la struttura dell'intero contenuto didattico. Il documento è costituito da una seconda parte di progetto che va a coinvolgere il sistema ATutor e pone grande attenzione sulle caratteristiche di interoperabilità fra l'authoring AContent e il LCMS ATutor. Lo scopo è quello di estendere le funzionalità di integrazione dei contenuti del sistema così da presentare materiale didattico esterno archiviato in AContent. Viene trattata l'integrazione di LTI all'interno dei due sistemi considerati assegnando i ruoli di Tool Provider (AContent), fornitore di contenuti didattici remoti e Tool Consumer (ATutor), richiedente di tali contenuti. Sono considerati, infine, i due moduli di ATutor AContent Repository e External Tool che si occupano di importare materiale didattico da AContent tramite il Web Service REST. Si prevede la loro modifica affinché, attraverso il canale di comunicazione LTI stabilito, siano in grado di creare dei Live Content Link ovvero riferimenti a contenuti remoti (esterni alla piattaforma utilizzata) aggiornati in tempo reale. Infatti, a differenza di una normale importazione di un LO esterno è previsto che venga creano un "riferimento". In questo modo, la modifica di una pagina sul Tool Provider AContent si ripercuoterà istantaneamente su tutti i contenuti dei Tool Consumer che hanno instaurato un Live Content Link con il provider.
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. L’obbiettivo che ci poniamo con questa tesi è quindi quello di esplorare il nascente mondo del Cloud Computing, cercando di comprenderne a fondo le principali caratteristiche architetturali e focalizzando l’attenzione in particolare sullo sviluppo di applicazioni in ambiente Cloud, processo che sotto alcuni aspetti si differenzia molto dallo sviluppo orientato ad ambienti più classici. La tesi è così strutturata: nel primo capitolo verrà fornita una panoramica sul Cloud Computing nella quale saranno date anche le prime definizioni e verranno esposti tutti i temi fondamentali sviluppati nei capitoli successivi. Il secondo capitolo costituisce un approfondimento su un argomento specifico, quello dei Cloud Operating System, componenti fondamentali che permettono di trasformare una qualunque infrastruttura informatica in un’infrastruttura Cloud. Essi verranno presentati anche per mezzo di molte analogie con i classici sistemi operativi desktop. Con il terzo capitolo ci si addentra più a fondo nel cuore del Cloud Computing, studiandone il livello chiamato Infrastructure as a Service tramite un esempio concreto di Cloud provider: Amazon, che fornisce i suoi servizi nel progetto Amazon Web Services. A questo punto, più volte nel corso della trattazione di vari temi saremo stati costretti ad affrontare le problematiche relative alla gestione di enormi moli di dati, che spesso sono il punto centrale di molte applicazioni Cloud. Ci è parso quindi importante approfondire questo argomento in un capitolo appositamente dedicato, il quarto, supportando anche in questo caso la trattazione teorica con un esempio concreto: BigTable, il sistema di Google per la gestione della memorizzazione di grandi quantità di dati. Dopo questo intermezzo, la trattazione procede risalendo lungo i livelli dell’architettura Cloud, ricalcando anche quella che è stata l’evoluzione temporale del Cloud Computing: nel quinto capitolo, dal livello Infrastructure as a Service si passa quindi a quello Platform as a Service, tramite lo studio dei servizi offerti da Google Cloud Platform. Il sesto capitolo costituisce invece il punto centrale della tesi, quello che ne soddisfa l’obbiettivo principale: esso contiene infatti uno studio approfondito sullo sviluppo di applicazioni orientate all’ambiente Cloud. Infine, il settimo capitolo si pone come un ponte verso possibili sviluppi futuri, analizzando quali sono i limiti principali delle tecnologie, dei modelli e dei linguaggi che oggi supportano il Cloud Computing. In esso viene proposto come possibile soluzione il modello ad attori; inoltre viene anche presentato il framework Orleans, che Microsoft sta sviluppando negli ultimi anni con lo scopo appunto di supportare lo sviluppo di applicazioni in ambiente Cloud.
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:
La tesi tratta i temi di computer vision connessi alle problematiche di inserimento in una piattaforma Web. Nel testo sono spiegate alcune soluzioni per includere una libreria software per l'emotion recognition in un'applicazione web e tecnologie per la registrazione di un video, catturando le immagine da una webcam.
Resumo:
Il lavoro tratta la progettazione di un intervento tecnologico e organizzativo in grado di guidare la creazione di un ecosistema di imprese per un distretto commerciale: Centergross (Funo d’Argelato, Bologna). Tale lavoro è stato preparato durante un periodo di Stage della durata di cinque mesi effettuato presso Epoca S.r.l (Bologna) a seguito della necessità, riscontrata dalla direzione del distretto, di ripensare il proprio modello di business. L’obiettivo del progetto di intervento di Epoca è quello di supportare il distretto in questa fase di cambiamento, da “condominio” di imprese autonome a ecosistema, grazie all’identificazione e alla realizzazione di strumenti organizzativi e tecnologici che possano costruire opportunità di sinergie, aumentare la completezza dell’offerta e sfruttare economie di scopo. Per questo è stato realizzato un nuovo sistema informatico (social network e applicazione mobile) in grado di supportare la strategia ed evolvere con essa. La tesi si struttura in tre parti. Nella prima parte, attraverso un’indagine della letteratura di riferimento, si sono indagati i principali modelli di cambiamento organizzativo e il ruolo dei sistemi informativi all’interno delle organizzazione. Un approfondimento circa gli approcci, i processi e la gestione del cambiamento in relazione all’introduzione di un nuovo sistema informativo all’interno delle organizzazioni con riferimento alle tematiche del Business Process Reengineering. La seconda parte è dedicata all’evoluzione del Web con la rivoluzione culturale causata dagli strumenti del web partecipativo, semantico e potenziato: social network e applicazione mobile nello specifico; e all’approccio di progettazione: il Design Thinking. Una tecnica che si prefigge di: trovare il miglior fit fra obiettivi, risorse e tecnologie disponibili; favorire lo sviluppo di nuove idee innovative entrando in empatia con il contesto del problema proponendo soluzioni centrate sui bisogni degli utenti. L’ultima parte del lavoro consiste nella descrizione del caso. Vengono presentate la fase di analisi della situazione attuale e i successivi step di progettazione del sistema informatico: la definizione dei prototipi, la popolazione del database, il modello di dominio, le interfacce utente e le esperienze di navigazione all’interno della piattaforma software proposta. L’approccio prevede che il progetto proceda per iterazioni successive e un adattamento continuo alle esigenze del cliente.
Resumo:
L’Exploratory Search, paradigma di ricerca basato sulle attività di scoperta e d’apprendimento, è stato per diverso tempo ignorato dai motori di ricerca tradizionali. Invece, è spesso dalle ricerche esplorative che nascono le idee più innovative. Le recenti tecnologie del Semantic Web forniscono le soluzioni che permettono d’implementare dei motori di ricerca capaci di accompagnare gli utenti impegnati in tale tipo di ricerca. Aemoo, motore di ricerca sul quale s’appoggia questa tesi ne è un esempio efficace. A partire da quest’ultimo e sempre con l’aiuto delle tecnologie del Web of Data, questo lavoro si propone di fornire una metodologia che permette di prendere in considerazione la singolarità del profilo di ciascun utente al fine di guidarlo nella sua ricerca esplorativa in modo personalizzato. Il criterio di personalizzazione che abbiamo scelto è comportamentale, ovvero basato sulle decisioni che l’utente prende ad ogni tappa che ritma il processo di ricerca. Implementando un prototipo, abbiamo potuto testare la validità di quest’approccio permettendo quindi all’utente di non essere più solo nel lungo e tortuoso cammino che porta alla conoscenza.
Resumo:
L’azienda committente vuole ampliare la possibilità di accedere al suo database, sia dall’esterno che dall’interno, non solamente da parte di un unico utente amministratore, ma anche da tutti gli agenti distribuiti sul territorio nazionale e tutti gli impiegati degli uffici. Si vuole inoltre creare un sistema di notifiche via email che permetta a tutti gli utenti (agenti) registrati di avere in tempo reale informazioni sempre aggiornate riguardo i propri clienti. La ditta si chiama Tropical Lane S.p.A. e vuole realizzare questo progetto per rendere maggiormente accessibili le informazioni per i propri agenti, distribuiti nelle varie regioni italiane, direttamente tramite un loro dispositivo mobile, come smartphone o tablet, senza dover necessariamente telefonare continuamente in ditta dove è presente una segretaria che svolge solamente questa mansione. In questo modo si cerca di velocizzare la procedura di accesso ai dati così da liberare una risorsa utile per lo svolgimento di altre funzioni interne. Si è deciso quindi di creare un sito web, basato su tecnologia Active Server Pages e interfacciato al database aziendale, che sia fruibile dall’esterno della rete aziendale e sul quale vengono mostrati i dati, organizzati in modo da essere facilmente comprensibili e visualizzabili da tutti. La realizzazione del sito è stata effettuata utilizzando notepad++ sia per le pagine ASP che per le poche pagine di HTML statico presenti. Gli script sono stati realizzati in linguaggio Javascript, compatibile con le specifiche dei browser più diffusi. Il sito è supportato da un unico database realizzato in precedenza con Microsoft SQL ed integrato.
Resumo:
L’ultimo decennio ha visto un radicale cambiamento del mercato informatico, con la nascita di un numero sempre maggiore di applicazioni rivolte all’interazione tra utenti. In particolar modo, l’avvento dei social network ha incrementato notevolmente le possibilità di creare e condividere contenuti sul web, generando volumi di dati sempre maggiori, nell’ordine di petabyte e superiori. La gestione di tali quantità di dati ha portato alla nascita di soluzioni non relazionali appositamente progettate, dette NoSQL. Lo scopo di questo documento è quello di illustrare come i sistemi NoSQL, nello specifico caso di MongoDB, cerchino di sopperire alle difficoltà d’utilizzo dei database relazionali in un contesto largamente distribuito. Effettuata l'analisi delle principali funzionalità messe a disposizione da MongoDB, si illustreranno le caratteristiche di un prototipo di applicazione appositamente progettato che sfrutti una capacità peculiare di MongoDB quale la ricerca full-text. In ultima analisi si fornirà uno studio delle prestazioni di tale soluzione in un ambiente basato su cluster, evidenziandone il guadagno prestazionale.
Resumo:
La trattazione di questa tesi ha lo scopo di fornire esempi di ontologie, nonché una panoramica sugli editor per la creazione e lo sviluppo di queste, evidenziandone pregi e difetti. Dopo un’introduzione generale al Web Semantico, tale documento fornisce dei tutorial, sempre affiancati da molteplici screenshot e da tutto il codice necessario, molto utili per “avventurarsi” nello sviluppo di ontologie. Le ontologie, per essere fruibili, devono essere pubblicate. Si è deciso pertanto di dare una descrizione dei principali vocabolari attualmente utilizzati nell’ambito del Web Semantico, così da dare un’idea al lettore dei diversi tipi di vocabolario presenti sul web. Infine è stato esaminato Jena: un framework per le applicazioni del Web Semantico sviluppate in Java. Anche in questo caso è stato creato un tutorial in cui tale framework è stato integrato in Eclipse. Vengono mostrati l’installazione delle librerie, l’importazione e l’interrogazione di un file RDF. Poiché per importare un file RDF il lettore deve averne uno, è stata colta l’occasione per fornire anche una guida utile alla creazione di un documento RDF, attraverso FOAF-a-Matic, un’applicazione Javascript che permette di creare una descrizione di se stessi in formato FOAF.
Resumo:
Il web ha cambiato radicalmente le nostre vite. Grazie ad esso, oggi si possono fare cose che solo qualche decennio fa erano pura fantascienza, come ad esempio la telepresenza o gli interventi chirurgici da remoto, ma anche cose più “semplici” come seguire corsi di formazione (anche universitaria), effettuare la spesa, operare con il proprio conto corrente, tutto restando comodamente a casa propria, semplificando così la vita di tutti. Allo stesso tempo il web è stato utilizzato per fini tutt’altro che nobili, ad esempio per commettere crimini informatici, recare danni alla concorrenza, compiere varie forme di truffe ecc. Ogni persona dovrebbe comportarsi in modo corretto e nel pieno rispetto del prossimo, sia sul mondo reale che sul web, ma purtroppo non è sempre così. Per quanto riguarda il mondo del web, sta agli sviluppatori soddisfare le necessità dei propri utenti, assicurandosi però che la propria applicazione non verrà usata per recare qualche tipo di danno a terzi o alla propria infrastruttura. Questa tesi nasce da un idea dei docenti del corso di Programmazione riguardo alla realizzazione di un modulo del sito web del corso che si occupa della correzione automatica di esercizi scritti in linguaggio C dagli studenti del corso, dove per correzione automatica si intende la verifica della correttezza degli esercizi.