22 resultados para XML-RPC
Resumo:
Nello sviluppo di sistemi informatici si sono affermate numerose tecnologie, che vanno utilizzate in modo combinato e, possibilmente sinergico. Da una parte, i sistemi di gestione di basi di dati relazionali consentono una gestione efficiente ed efficace di dati persistenti, condivisi e transazionali. Dall'altra, gli strumenti e i metodi orientati agli oggetti (linguaggi di programmazione, ma anche metodologie di analisi e progettazione) consentono uno sviluppo efficace della logica applicativa delle applicazioni. E’ utile in questo contesto spiegare che cosa s'intende per sistema informativo e sistema informatico. Sistema informativo: L'insieme di persone, risorse tecnologiche, procedure aziendali il cui compito è quello di produrre e conservare le informazioni che servono per operare nell'impresa e gestirla. Sistema informatico: L'insieme degli strumenti informatici utilizzati per il trattamento automatico delle informazioni, al fine di agevolare le funzioni del sistema informativo. Ovvero, il sistema informatico raccoglie, elabora, archivia, scambia informazione mediante l'uso delle tecnologie proprie dell'Informazione e della Comunicazione (ICT): calcolatori, periferiche, mezzi di comunicazione, programmi. Il sistema informatico è quindi un componente del sistema informativo. Le informazioni ottenute dall'elaborazione dei dati devono essere salvate da qualche parte, in modo tale da durare nel tempo dopo l'elaborazione. Per realizzare questo scopo viene in aiuto l'informatica. I dati sono materiale informativo grezzo, non (ancora) elaborato da chi lo riceve, e possono essere scoperti, ricercati, raccolti e prodotti. Sono la materia prima che abbiamo a disposizione o produciamo per costruire i nostri processi comunicativi. L'insieme dei dati è il tesoro di un'azienda e ne rappresenta la storia evolutiva. All'inizio di questa introduzione è stato accennato che nello sviluppo dei sistemi informatici si sono affermate diverse tecnologie e che, in particolare, l'uso di sistemi di gestione di basi di dati relazionali comporta una gestione efficace ed efficiente di dati persistenti. Per persistenza di dati in informatica si intende la caratteristica dei dati di sopravvivere all'esecuzione del programma che li ha creati. Se non fosse cosi, i dati verrebbero salvati solo in memoria RAM e sarebbero persi allo spegnimento del computer. Nella programmazione informatica, per persistenza si intende la possibilità di far sopravvivere strutture dati all'esecuzione di un programma singolo. Occorre il salvataggio in un dispositivo di memorizzazione non volatile, come per esempio su un file system o su un database. In questa tesi si è sviluppato un sistema che è in grado di gestire una base di dati gerarchica o relazionale consentendo l'importazione di dati descritti da una grammatica DTD. Nel capitolo 1 si vedranno più in dettaglio cosa di intende per Sistema Informativo, modello client-server e sicurezza dei dati. Nel capitolo 2 parleremo del linguaggio di programmazione Java, dei database e dei file XML. Nel capitolo 3 descriveremo un linguaggio di analisi e modellazione UML con esplicito riferimento al progetto sviluppato. Nel capitolo 4 descriveremo il progetto che è stato implementato e le tecnologie e tools utilizzati.
Resumo:
Con il seguente elaborato propongo di presentare il lavoro svolto sui documenti XML che ci sono stati forniti. Più nello specifico, il lavoro è incentrato sui riferimenti bibliografici presenti in ogni documento e ha come fine l'elaborazione delle informazioni estrapolate al fine di poterle esportare nel formato RDF (Resource Description Framework). I documenti XML (eXtensible Markup Language) fornitimi provengono dalla casa editrice Elsevier, una delle più grandi case editrici di articoli scientifici organizzati in riviste specializzate (journal).
Resumo:
Il successo di XML ha rinnovato l'interesse per il controllo delle modifiche sugli alberi e i dati semi-strutturati. Le necessità principali sono gestire le revisioni dei documenti, interrogare e monitorare i cambiamenti e scambiare efficientemente i documenti e i loro aggiornamenti. I cambiamenti che si verificano tra due versioni di un documento sono sconosciuti al sistema. Quindi, un algoritmo di diffing viene utilizzato per costruire un delta che rappresenta i cambiamenti. Sono stati proposti vari algoritmi di diffing. Alcuni considerano la struttura ad albero dei documenti XML, mentre altri non lo fanno. Inoltre, alcuni algoritmi possono trovare una sequenza più "sintetica" delle modifiche. Questo migliora la qualità del monitoraggio e l'interrogazione delle modifiche. Esistono altri approcci sviluppati per monitorare i cambiamenti sui documenti XML, differenti dagli algoritmi di diffing, ma che comunque ottengono risultati quasi identici ed offrono un'interrogazione delle modifiche più agevole per gli utenti umani. Esistono infatti programmi di editing con strumenti di change tracking, che permettono a più autori di modificare diverse versioni dei documenti contemporaneamente e registrando in tempo reale tutti i cambiamenti da loro apportati. In questo lavoro studio i diversi strumenti e confronto i loro risultati sulla base di esperimenti condotti su documenti XML opportunamente modificati per riconoscere determinati cambiamenti. Ci sono anche diverse proposte di formati del delta per rappresentare i cambiamenti in XML, ma non vi è ancora alcuno standard. Espongo le principali proposte in base alle loro specifiche, le loro implementazioni e sui risultati degli esperimenti condotti. L'obiettivo è di fornire una valutazione della qualità degli strumenti e, sulla base di questo, guidare gli utenti nella scelta della soluzione appropriata per le loro applicazioni.
Resumo:
Tesi sullo studio di algoritmi per il confronto di documenti XML, panoramica sui vari algoritmi. Focalizzazione sull'algoritmo NDiff e in particolare sulla gestione degli attributi.
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:
Questa tesi tratta di scambio di dati aperti (open data exchange). In particolare, tratta di intervalli temporali con annesse informazioni di vario tipo. Le attività commerciali, come aziende, bar, ristoranti, cinema, teatri, e via dicendo, hanno bisogno di un modo comune per poter condividere i dati inerenti ai propri orari (timetable). Lo scopo di questa tesi è quello di mostrare un modello efficiente, compatto e completo per poter condividere tali informazioni con l'ausilio di formati standard (XML). Oggi giorno esistono diverse soluzioni atte a far fronte a questa necessità ma si tratta di soluzioni incomplete e che gestiscono tali informazioni separatamente. Il problema sorto è quello di avere un'unica struttura che posso unificare informazioni di diverso carattere con gli orari di un'attività: un cinema ha la necessità di fornire orari di diverse proiezioni svolte in sale diverse, una tournée dovrà poter specificare le coordinate geografiche del prossimo evento e così discorrendo.
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:
I sistemi di versionamento moderni quali "git" o "svn" sono ad oggi basati su svariati algoritmi di analisi delle differenze (detti algoritmi di diffing) tra documenti (detti versioni). Uno degli algoritmi impiegati con maggior successo a tal proposito è il celebre "diff" di Unix. Tale programma è in grado di rilevare le modifiche necessarie da apportare ad un documento al fine di ottenerne un altro in termini di aggiunta o rimozione di linee di testo. L'insieme di tali modifiche prende nome di "delta". La crescente richiesta e applicazione dei documenti semi-strutturati (ed in particolar modo dei documenti XML) da parte della comunità informatica soprattutto in ambito web ha motivato la ricerca di algoritmi di diffing più raffinati che operino al meglio su tale tipologia di documenti. Svariate soluzioni di successo sono state discusse; algoritmi ad alte prestazioni capaci di individuare differenze più sottili della mera aggiunta o rimozione di testo quali il movimento di interi nodi, il loro riordinamento finanche il loro incapsulamento e così via. Tuttavia tali algoritmi mancano di versatilità. L'incapsulamento di un nodo potrebbe essere considerata una differenza troppo (o troppo poco) generale o granulare in taluni contesti. Nella realtà quotidiana ogni settore, pubblico o commerciale, interessato a rilevare differenze tra documenti ha interesse nell'individuarne sempre e soltanto un sottoinsieme molto specifico. Si pensi al parlamento italiano interessato all'analisi comparativa di documenti legislativi piuttosto che ad un ospedale interessato alla diagnostica relativa alla storia clinica di un paziente. Il presente elaborato di tesi dimostra come sia possibile sviluppare un algoritmo in grado di rilevare le differenze tra due documenti semi-strutturati (in termini del più breve numero di modifiche necessarie per trasformare l'uno nell'altro) che sia parametrizzato relativamente alle funzioni di trasformazione operanti su tali documenti. Vengono discusse le definizioni essenziali ed i principali risultati alla base della teoria delle differenze e viene dimostrato come assunzioni più blande inducano la non calcolabilità dell'algoritmo di diffing in questione.
Resumo:
Lo scopo di questa dissertazione è di identificare le tecnologie più appropriate per la creazione di editor parametrici per documenti strutturati e di descrivere LIME, un editor di markup parametrico e indipendente dal linguaggio. La recente evoluzione delle tecnologie XML ha portato ad un utilizzo sempre più consistente di documenti strutturati. Oggigiorno, questi vengono utilizzati sia per scopi tipografici sia per l’interscambio di dati nella rete internet. Per questa ragione, sempre più persone hanno a che fare con documenti XML nel lavoro quotidiano. Alcuni dialetti XML, tuttavia, non sono semplici da comprendere e da utilizzare e, per questo motivo, si rendono necessari editor XML che possano guidare gli autori di documenti XML durante tutto il processo di markup. In alcuni contesti, specialmente in quello dell’informatica giuridica, sono stati introdotti i markup editor, software WYSIWYG che assistono l’utente nella creazione di documenti corretti. Questi editor possono essere utilizzati anche da persone che non conoscono a fondo XML ma, d’altra parte, sono solitamente basati su uno specifico linguaggio XML. Questo significa che sono necessarie molte risorse, in termini di programmazione, per poterli adattare ad altri linguaggi XML o ad altri contesti. Basando l’architettura degli editor di markup su parametri, è possibile progettare e sviluppare software che non dipendono da uno specifico linguaggio XML e che possono essere personalizzati al fine di utilizzarli in svariati contesti.