916 resultados para Contacts Sharing, CRM, Cloud Google, API, SugarCRM, Web Service, App Engine
Resumo:
La tesi riguarda la creazione di una architettura che ha lo scopo di far interagire attivamente un utente con una mappa digitale tramite browser web e un applicativo che calcola dei percorsi in base ad un algoritmo di ottimizzazione. Un ambito interessante, attuale e che avrà, molto probabilmente, notevoli sviluppi futuri. Basti pensare per esempio a come le persone interagiscono con le mappe digitali tramite i famosi Google Maps o Google Earth, Bing Maps e OpenStreetMap. Questa interazione è diventata talmente naturale che è ormai intuitivo ruotare la rotellina del mouse per zoomare oppure tenere premuto il tasto sinistro per trascinare la mappa. Spesso questi applicativi web offrono servizi per il calcolo di percorsi, o rilasciano anche delle API per interagire e personalizzare alcuni aspetti, anche se spesso in modo limitato per questioni di copyright. In questo contesto entrano in gioco associazioni, singoli individui e fondazioni che creano software e standard fruibili da chiunque per creare applicativi e architetture personalizzate senza vincoli di diritti troppo limitanti. In questa tesi viene mostrato un approccio che permette una personalizzazione molto dettagliata e un'alta interoperabilità con queste applicazioni specifiche. Ma tutti questi aspetti positivi sono fruibili, per ora, solo mediante supporto umano avente un bagaglio di esperienze tecniche adeguate.
Resumo:
In questa tesi è stato realizzato un sistema web-based, per la configurazione di modelli meccanici tridimensionali. L’intero software è basato su architettura multi-tier. Il back-end espone servizi RESTful che permettono l’interrogazione di una base di dati contenente l’anagrafica dei modelli e l’interazione con il CAD 3D SolidWorks. Il front-end è rappresentato da due pagine HTML ideate come SPA (Single Page Application), una per l’amministratore e l’altra per l’utente finale; esse sono responsabili delle chiamate asincrone verso i servizi, dell’aggiornamento automatico dell’interfaccia e dell’interazione con immagini tridimensionali.
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.
Resumo:
Questo lavoro di tesi �si basa sull'estendere l'architettura del software NILDE - Network Inter Library Document Exchange attraverso un processo di migrazione verso servizi REST (REpresentational State Transfer) utilizzando e ampliando metodologie, best practice e frameworks che hanno permesso lo sviluppo di API Pubbliche e Private utilizzabili da utenti esterni.
Resumo:
La descrizione di un'applicazione sviluppata per la visualizzazione di shapefile in google map e openstreetmap
Resumo:
L'obbiettivo della tesi è quello di sviluppare una semplice web application per la creazione di fatture. La caratteristica principale è l'integrazione delle funzionalità di Google Drive permettendo all'utente di archiviare e condividere con pochi click le fatture con i clienti. L'utente potrà creare, personalizzare, salvare, archiviare e condividere le proprie ricevute in tempo reale. In questo documento verrà analizzato il processo di sviluppo del software che comprenderà: analisi dei requisiti, progettazione, sviluppo (scelte implementative), test e sviluppi futuri. Verranno anche documentate le tecnologie utilizzate al fine di raggiungere il prodotto finale.
Resumo:
Il cloud permette di condividere in maniera veloce ed intuitiva non solo le informazioni, ma anche dati e programmi aumentando notevolmente le capacità di collaborazione di tutti, partendo da chi lo utilizza a livello personale per arrivare a chi lo utilizza a livello professionale. È possibile creare le proprie applicazioni aziendali e farle comunicare remotamente con le soluzioni cloud presenti sul mercato, attraverso gli strumenti messi a disposizione dai fornitori. Le applicazioni stesse potranno essere pubblicate su server anch’essi cloud, gestiti interamente da aziende esterne, che permettono una forma di pagamento in base all’effettivo utilizzo e libera dalle implicazioni della gestione di un server. In questo scenario verrà svolta una ricerca sulle caratteristiche di alcuni servizi cloud esistenti, in particolare riguardo ai software di gestione dei documenti, e verrà creata un’applicazione che comunica con essi sfruttandone le potenzialità.
Resumo:
Educare le nuove generazioni all'uso consapevole del web è un'attività di notevole importanza, visto l'utilizzo sempre più intenso che la società contemporanea fa di questo insieme numeroso e variegato di tecnologie, identificato dalla parola "rete''. La rete quindi non è più paragonabile soltanto a un luogo virtuale da visitare ma quasi ad un'"atmosfera" che circonda la realtà stessa, rendendo costantemente vicine possibilità e preoccupazioni sempre nuove. Gli utenti della rete, siano essi "nativi" o "immigrati", si trovano a contatto con questo ambiente mutevole e rapidissimo e ne apprendono regole e usi, riportandoli a volte anche sulla realtà, con maggiore o minore disinvoltura. Le giovani generazioni sono particolarmente permeabili a questo tipo di apprendimento e dimostrano sempre maggiore affinità con lo strumento web, a volte rischiando di confondere il virtuale con il reale. La deriva valoriale e ideologica della società europea ed italiana lascia però dei vuoti che vengono spesso colmati dalle relazioni che sono loro più prossime. Anche quelle on the cloud, nel bene e nel male. Il rischio di scambiare il mezzo con il fine, poi, è sempre presente. La sfida per il sistema educativo, familiare, sociale, è dimostrarsi attento, essere aggiornato sulle tecnologie, è saper valutare attentamente, saper discernere e riconoscere le opere dai loro frutti, per poter condividere l'esperienza umana in tutti i suoi aspetti con coloro che, più di tutti, vanno in cerca di risposte profonde alle loro domande. Non bisogna aver paura di mettersi in gioco, talvolta anche di rischiare, perché la posta in gioco è altissima, è in gioco lo stesso rapporto di scambio e di fiducia tra generazioni differenti. Le maglie delle nostra "rete" di relazioni, di rapporti, di comunicazione, crescono sempre di numero, ma non bisogna promuovere la sola quantità a scapito della qualità della loro sostanza, soprattutto nel caso degli adolescenti. Concludendo, ritengo che nell'educazione al web siano fondamentali: l'attenzione, l'ascolto reciproco, la cura dei dettagli e l'attenzione al rispetto delle regole. La precisione del controllo, il senso del limite e il valore prospettico delle aspettative sono strumenti imprescindibili per costruire giorno dopo giorno una "rete" formata per le persone e non soltanto delle persone formate per la rete.
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.
Resumo:
Vengono presentate due soluzioni per le notifiche push in ambiente Android: le soluzioni trattate riguardano l'uso di GCM (Google Cloud Messaging) ed una implementazione che impiega il Long-Polling HTTP come alternativa al servizio GCM.
Resumo:
Il presente progetto di tesi è stato sviluppato per presentare un esempio concreto di come sia possibile sfruttare le potenzialità ottenibili inserendo, all'interno di un sito web, il markup Open Graph Protocol per la definizione, tramite l’utilizzo di metadati, di concetti semanticamente ricchi e interpretabili dai principali Social Network ed integrando le Graph API Facebook per interrogare questi dati e sfruttarli per il funzionamento stesso del sito.
Resumo:
La diffusione dei servizi cloud ha spinto anche il mondo degli IDE verso questa direzione. Recentemente si sta assistendo allo spostamento degli IDE da ambienti desktop ad ambienti Web. Questo è determinante per quanto riguarda gli aspetti legati alla collaborazione perchè permette di sfruttare tutti i vantaggi del cloud per dotare questi sistemi di chat, integrazione con i social network, strumenti di editing condiviso e molte altre funzionalità collaborative. Questi IDE sono detti browser-based in quanto i servizi che mettono a disposizione sono accessibili via Web tramite un browser. Ne esistono di diversi tipi e con caratteristiche molto diverse tra di loro. Alcuni sono semplici piattaforme sulle quali è possibile effettuare test di codice o utilizzare tutorial forniti per imparare nuovi linguaggi di programmazione; altri invece sono ambienti di sviluppo completi dotati delle più comuni funzionalità presenti in un IDE desktop, oltre a quelle specifiche legate al Web. Dallo studio di questi ambienti di sviluppo di nuova generazione è emerso che sono pochi quelli che dispongono di un sistema di collaborazione completo e che non tutti sfruttano le nuove tecnologie che il Web mette a disposizione. Per esempio, alcuni sono dotati di editor collaborativi, ma non offrono un servizio di chat ai collaboratori; altri mettono a disposizione una chat e il supporto per la scrittura simultanea di codice, ma non sono dotati di sistemi per la condivisione del display. Dopo l'analisi dei pregi e dei difetti della collaborazione fornita dagli strumenti presi in considerazione ho deciso di realizzare delle funzionalità collaborative inserendomi nel contesto di un IDE browser-based chiamato InDe RT sviluppato dall'azienda Pro Gamma SpA.
Resumo:
La costante evoluzione tecnologica sta portando alla luce nuove possibilità, che un tempo non erano nemmeno immaginabili. Uno dei settori che si è rivoluzionato maggiormente negli ultimi anni è quello delle telecomunicazioni e questo ha portato sia a una riduzione dei costi per le connessioni a Internet, sia ad un aumento delle loro capacità e prestazioni; di conseguenza queste connessioni sono diventate più accessibili e affidabili permettendo alle persone e alle cose di accedere a Internet quasi ininterrottamente. Questo sviluppo sta portando innumerevoli benefici, ma come ciascuna innovazione tecnologica, tuttavia, i benefici si accompagnano a nuove sfide. In questo elaborato viene dapprima analizzato lo stato dell’arte, i benefici, le problematiche e gli attuali interessi da parte di alcuni dei maggiori player verso l’Internet of Things. Vengono poi prese in considerazione due problematiche: l'individuazione e l'interazione con gli oggetti connessi a Internet, portando come esempio l'utilizzo e la ricerca di una vending machine, un distributore automatico. Proponendo una soluzione, in primo luogo è stato effettuato lo sviluppo di un ecosistema che sfrutta le potenzialità del Physical Web, implementando ad hoc ogni componente, dall'emissione del beacon Eddystone-URL alla visualizzazione della pagina ad esso associata. In secondo luogo questa è stata creata un'applicazione Android che sfrutta l'altro tipo di frame offerto dalla piattaforma beacon di Google, l'Eddystone-UID. Queste due applicazioni vengono quindi analizzate e messe a confronto, per individuare i punti forti e le mancanze delle rispettive piattaforme.
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:
Lo scopo dell'elaborato di tesi è l'analisi, progettazione e sviluppo di un prototipo di una infrastruttura cloud in grado di gestire un grande flusso di eventi generati da dispositivi mobili. Questi utilizzano informazioni come la posizione assunta e il valore dei sensori locali di cui possono essere equipaggiati al fine di realizzare il proprio funzionamento. Le informazioni così ottenute vengono trasmesse in modo da ottenere una rete di device in grado di acquisire autonomamente informazioni sull'ambiente ed auto-organizzarsi. La costruzione di tale struttura si colloca in un più ampio ambito di ricerca che punta a integrare metodi per la comunicazione ravvicinata con il cloud al fine di permettere la comunicazione tra dispositivi vicini in qualsiasi situazione che si potrebbe presentare in una situazione reale. A definire le specifiche della infrastruttura e quindi a impersonare il ruolo di committente è stato il relatore, Prof. Mirko Viroli, mentre lo sviluppo è stato portato avanti da me e dal correlatore, Ing. Pietro Brunetti. Visti gli studi precedenti riguardanti il cloud computing nell'area dei sistemi complessi distribuiti, Brunetti ha dato il maggiore contributo nella fase di analisi del problema e di progettazione mentre la parte riguardante la effettiva gestione degli eventi, le computazioni in cloud e lo storage dei dati è stata maggiormente affrontata da me. In particolare mi sono occupato dello studio e della implementazione del backend computazionale, basato sulla tecnologia Apache Storm, della componente di storage dei dati, basata su Neo4j, e della costruzione di un pannello di visualizzazione basato su AJAX e Linkurious. A questo va aggiunto lo studio su Apache Kafka, utilizzato come tecnologia per realizzare la comunicazione asincrona ad alte performance tra le componenti. Si è reso necessario costruire un simulatore al fine di condurre i test per verificare il funzionamento della infrastruttura prototipale e per saggiarne l'effettiva scalabilità, considerato il potenziale numero di dispositivi da sostenere che può andare dalle decine alle migliaia. La sfida più importante riguarda la gestione della vicinanza tra dispositivi e la possibilità di scalare la computazione su più macchine. Per questo motivo è stato necessario far uso di tecnologie per l'esecuzione delle operazioni di memorizzazione, calcolo e trasmissione dei dati in grado di essere eseguite su un cluster e garantire una accettabile fault-tolerancy. Da questo punto di vista i lavori che hanno portato alla costruzione della infrastruttura sono risultati essere un'ottima occasione per prendere familiarità con tecnologie prima sconosciute. Quasi tutte le tecnologie utilizzate fanno parte dell'ecosistema Apache e, come esposto all'interno della tesi, stanno ricevendo una grande attenzione da importanti realtà proprio in questo periodo, specialmente Apache Storm e Kafka. Il software prodotto per la costruzione della infrastruttura è completamente sviluppato in Java a cui si aggiunge la componente web di visualizzazione sviluppata in Javascript.