UNIVERSITÀ DEGLI STUDI DI TRENTO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DI TRENTO"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI TRENTO Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea (triennale) in INFORMATICA Elaborato finale Funzionalità Avanzate per la Visualizzazione e Trasmissione di Dati Georeferenziati Relatore: Prof. Ronchetti Marco Correlatori: Laureando: Andreolli Michele Ing. De Amicis Raffaele Ing. Conti Giuseppe Ing. Piffer Stefano Anno Accademico

2 L unica difesa contro il Mondo è conoscerlo Bene John Locke ( ) Ai miei Genitori 2

3 Ringraziamenti Ormai è più di un anno che sono in GraphiTech. É stato un anno impegnativo, trascorso tra gli ultimi esami, tra uno stage interminabile, tra la EuroGraphics Conference, l insegnamento alla scuola elementare e conclusosi con questa tesi. Un anno di grandi cambiamenti, costellato da nuove preoccupazioni, nuovi impegni e responsabilità, ma anche da momenti belli ed intensi che non sarebbero stati tali senza la presenza di persone veramente speciali. Per prima cosa voglio ringraziare la mia famiglia, che mi ha sempre appoggiato durante questi anni, che ha sopportato i miei (altalenanti) ritmi di studio e che ha reso finanziariamente possibile questo risultato, quindi grazie a mamma Lorenza e papà Pier Giorgio. Per quanto riguarda la stesura di questa tesi vorrei ringraziare il mio professore Marco Ronchetti che mi ha fatto conoscere GraphiTech. Un grazie enorme va a Raffaele De Amicis e Giuseppe Conti, per avermi accettato, prima come stagista, nonostante le mie pressoché nulle conoscenze di Computer Graphics, e dopo come tesista. Non posso dimenticare di ringraziare Stefano Piffer e Gabrio Girardi, per l aiuto indispensabile che mi hanno dato, sia durante lo sviluppo del progetto, che nella fase di scrittura dell elaborato e per i tanti consigli. Un grazie anche a Martin Witzel, per aver sopportato le mie lacune ad inizio stage e per avermi invogliato e inserito nei progetti, rispondendo alle molte, forse troppe, domande. Un grazie a tutti gli amici conosciuti Olga, Bita, Gianpaolo, Consuelo, Michael, Augusta, Arben, e Andrea con i quali ho trascorso, con chi più e con chi meno, questo anno di lavoro, tra stage e tesi. Ed eccoci ai ringraziamenti meno formali e più goliardici verso gli amici di università e non. Grazie a Secco, Perzem, Paru compagni inseparabili nelle lunghe e troppo mattutine trasferte verso la facoltà di Povo e nei lunghi e troppo mattutini rientri a casa post-serata. Grazie a tutta la Calimocho Boys Band (+Giò) e ai Daft Punk (il più bel concerto di sempre ) per aver trasformato questa estate, all inizio poco invitante, in una estate indimenticabile. Grazie a Cesenatico Grazie agli amici ormai di vecchia data, quelli veri, che hanno arricchito la mia vita e che continuano a farlo: Massimella, Mit, Toss, Mecchenzie, Otzi, Bettina, Matteo, Giulia, Cannamozza, le sorelle Gamberinus, Toldo Veramente grazie a Giulia, per esserci sempre (o quasi), per ricordarmi la bellezza delle piccole cose, per l entusiasmo che sai metter in tutto, ma soprattutto Grazie per le traduzioni. Potrei continuare con i ringraziamenti per molte pagine, ma sono sicuro che chi non ho citato non se la prenderà se lo segni e me lo ricordi alla prossima Laurea! Michele 3

4 Indice 1. Introduzione Definizioni, Acronimi e Abbreviazioni Riferimenti Anteprima Requisiti e Tools di Sviluppo Java e IDE Utilizzati Eclipse JBuilder PostgreSQL OpenGL JOGL Stato dell Arte GIS Applicativi GoogleEarth API WorldWind Funzionalità Avanazate per la Trasmissione di Dati Georeferenziati Introduzione allo Standard GeoRSS Specifiche GeoRSS Applicazione per la Gestione di Dati GeoRSS attraverso Database OpenGL Introduzione a OpenGL Modello di Macchina a Stati 5.3. Principali Primitive Texturing Blending JOGL OpenGL per Java Personalizzazione Ambiente Tridimensionale Gestione Trasparenze Tematismo Gestione Informazioni GeoRSS Conclusioni Campi d Impiego Possibili Sviluppi ScreenShots Bibliografia 87 4

5 1. Introduzione Il corso di studi in Informatica dell Università di Trento, prevede lo svolgimento di uno stage, per permettere agli studenti una più completa formazione universitaria in vista di un futuro inserimento nel campo lavorativo. Dopo un interessante colloquio con il mio tutor universitario, professor Ronchetti Marco, ed aver deciso l ambito del tirocinio, su suggerimento dello stesso, mi sono messo in contatto con la Fondazione GraphiTech. La Fondazione GraphiTech, Center for Advanced Computer Graphics Technologies, è stata costituita come joint venture tra la Fondazione INI- GraphicsNet (www.inigraphics.net), il Centro per la Ricerca Scientifica e Tecnologica (ITC-irst) (www.itc.it) e l'università di Trento (www.unitn.it) al fine di incentivare sul territorio trentino iniziative di ricerca scientifica e tecnologica nel campo della computer graphics e di favorire il trasferimento tecnologico e lo sviluppo della cultura imprenditoriale in questo settore disciplinare. La Fondazione, collabora con enti, società sia pubblici che privati, sia italiani che stranieri, per promuovere e organizzare attività ed iniziative di ricerca scientifica e tecnologica, di trasferimento delle conoscenze, di promozione e sviluppo della cultura imprenditoriale, dello sviluppo economico, sociale e culturale, il tutto con preminente riferimento all area della Provincia Autonoma di Trento, ma senza che ciò comporti limitazioni territoriali. Le attività ed iniziative spaziano anche nel campo imprenditoriale, volte ad agevolare ed incentivare l implementazione, l applicazione e l industrializzazione, sia nel mondo delle imprese sia della pubblica amministrazione, di idee, innovazioni, konw-how, tecnologie, esperienze e competenze sviluppati dall Università, da altri istituti o enti che abbiano svolto attività di ricerca. A tale fine, l azienda partecipa anche a progetti finanziati dall Unione Europea (UE), dalla Repubblica Italiana (RI) e da altri enti e organizzazioni, sia pubblici che privati che mirano a favorire il trasferimento tecnologico alle imprese facilitandone l avviamento e lo sviluppo. GraphiTech è un azienda orientata principalmente all innovazione, Ricerca e Sviluppo nella vasta area della Advanced Computer Graphics (ACG), della Virtual Reality (VR), della Mixed Reality (MR) e delle tecnologie dell informazione e della comunicazione Information and Comunication Systems (ICS). Dopo aver svolto l attività di stage sul progetto europeo Improve, riguardante la visualizzazione e la comunicazione tra clients in ambiente virtuale collaborativo ( ), ho deciso di continuare il mio percorso di formazione in GraphiTech, svolgendo anche il mio progetto di tesi. L ambito progettuale sul quale ci si è indirizzati è stata la modifica e implementazione di alcune funzionalità del software base World Wind per permettere la visualizzazione e la trasmissione di dati georeferenziati. Il prodotto derivato prenderà nome di Project Anna. Project Anna è una personalizzazione e ottimizzazione della libreria open-source World Wind, sviluppata dalla NASA, che permette di visualizzare immagini e oggetti tridimensionali di qualsiasi zona del pianeta, combinando foto satellitari, aeree e dati SRTM (Shuttle Radar Topography Mission). 5

6 Numerosi sono i software per la visione e navigazione delle mappe satellitari, La parte riguardante la trasmissione dei dati georeferenziati, invece, avviene grazie al supporto dell innovativo formato GeoRSS. Si tratta di un formato leggero e basato su XML ideato con lo scopo di georeferenziare il contenuto dei feed RSS. Il percorso di sviluppo di tesi è stato sostanzialmente diviso in due parti: 1. La fase di implementazione dell applicazione per la gestione di un database di dati GeoRSS. 2. La fase di sviluppo di Project Anna per supportare alcune nuove funzionalità rispetto alla versione base. Entrambi le fasi sono state precedute da un periodo di ricerca e comprensione degli obiettivi finali da raggiungere e delle tecniche migliori da adottare per affrontare lo sviluppo dell applicazione. Nella prima parte le lacune su alcuni concetti dell interazione tra linguaggio Java e database sono stato abbastanza rapidamente colmate, invece le difficoltà pervenute in Project Anna sono state decisamente più consistenti e sono state superate con diversi tentativi pratici e con lo studio del codice, molto vasto e a tratti complicato. Gli obiettivi preposti sono stati, comunque, raggiunti e saranno una buona base per un ulteriore sviluppo del progetto che GraphiTech continuerà a portare avanti Definizioni, Acronimi e Abbreviazioni API (Application Programming Interface): insieme di procedure disponibili al programmatore, raggruppate a formare un set di strumenti specifici per un determinato compito. ARB (Architectural Review Board): consorzio indipendente fondato nel 1992 che governa le specifiche OpenGL e che ha approvato la più famosa ed utilizzata tra le librerie di estensioni, denominata appunto ARB. Essa comprende funzioni e comandi stabili, supportati dalla maggior parte degli hardware. BSD (Berkeley Software Distribution): famiglia di licenze permissive per software. Molte sono considerate libere ed open source. Il loro nome deriva dal fatto che la licenza BSD originale fu usata originariamente per distribuire il sistema operativo Unix Berkeley Software Distribution, una revisione libera di UNIX sviluppata presso l'università di Berkeley. CVS (Concurrent Versioning System): sistema per il controllo delle versioni di un progetto software. Molto utilizzato in ambiente GNU/Unix, ed ovviamente in ambiente Linux, sta acquistando molta popolarità tra gli sviluppatori di tutto il mondo in quanto utilizzato da tutti i maggiori team di sviluppo dei progetti GNU. CVS permette di creare una history di tutti i sorgenti, registrando ogni modifica, ed associando ad ogni sorgente un numero di revisione comprensivo di un breve commento sulle modifiche apportate. Con CVS, è inoltre possibile recuperare, in ogni momento, qualsiasi versione precedente del progetto per poterla modificare, ed è stato disegnato per essere utilizzato da un team di sviluppo, garantendo che i sorgenti restino sempre consistenti, impedendo che le modifiche apportate da uno sviluppatore vengano soprascritte da altri. Infine, permette di esportare le differenze fra due release diverse dello stesso progetto, creando i famosi file di patch. DBMS (Database Management System): sistema software progettato per consentire la creazione e manipolazione efficiente di database, ovvero di collezioni di dati strutturati. 6

7 DirectX (in origine chiamata "Game SDK"): è una collezione di API per lo sviluppo semplificato di videogiochi per Windows. Il kit di sviluppo (SDK) è disponibile gratuitamente sul sito della Microsoft. Le DirectX venivano distribuite dai produttori di giochi stessi insieme al videogioco, ma sono ora incluse direttamente in Windows. DOM (Document Object Model): un interfaccia neutrale che permette ai programmi e agli script di accedere dinamicamente ai documenti. Tale interfaccia permette di aggiornare il contenuto, la struttura e lo stile dei documenti. DTM (Digital Terrain Model): modello digitale del terreno, raster (griglia) o vettoriale, ricavato dalla scansione di fotografie aeree o satellitari. GEORSS (Geographically Encoded Objects for RSS feeds): formato leggero e basato anch esso su XML ideato con lo scopo di georeferenziare il contenuto dei feed RSS. GIS (Geographic Information System): sistema informativo computerizzato che permette l'acquisizione, la registrazione, l'analisi, la visualizzazione e la restituzione di informazioni derivanti da dati geografici georeferenziati. GL (Graphics Library): libreria OpenGL di base, contiene codice per oggetti geometrici primitivi, attributi, trasformazioni, colore, illuminazione... GLU (Graphics Library Utilities): contiene codice per oggetti non primitivi di uso comune (es. sfere), ed altre funzioni di utilita', implementate su GL. GLUT (Graphics Library Utility Toolkit): funzionalità minimali per dotare un programma che fa grafica in OpenGL di un'interfaccia utente in un ambiente a finestre. GML (Geography Markup Language): grammatica XML definita dal OGC per esprimere oggetti geografici. Serve come linguaggio di modellazione e di interscambio di dati via Internet. Molto più ampio del formato GeoRSS. GUI (Graphical User Interface): paradigma di sviluppo che mira a consentire all'utente di interagire col calcolatore manipolando graficamente degli oggetti, svincolandolo dall'obbligo di imparare una serie di comandi da impartire con la tastiera. È lo strato di un'applicazione software che si occupa del dialogo con l'utente del sistema utilizzando un ambiente grafico. IDE (Integrated Development Environment): software che aiuta i programmatori nello sviluppo del software. Normalmente consiste in un editor di codice sorgente, un compilatore e/o un interprete, un tool di building automatico, (solitamente) un debugger e designer per GUI. 7

8 JDBC (Java DataBase Connectivity): middleware per database che consente l'accesso alle basi di dati da qualsiasi programma scritto con il linguaggio di programmazione Java, indipendentemente dal tipo di DBMS utilizzato. È costituito da una API, raggruppata nel package java.sql, che serve ai client per connettersi a un database. Fornisce metodi per interrogare e modificare i dati. È orientata ai database relazionali ed è Object Oriented. JDK (Java Development Kit): è il corredo di sviluppo del Java, comprende compilatore Java e alcuni applicativi che permettono agli utenti di generare le applicazioni in Java. JOGL (Java OpenGL): libreria a basso livello per la programmazione OpenGL con supporto Java simile alla libreria GLUT per il C++. Khronos Group: consorzio industriale focalizzato nella creazione di API a standard aperto COLLAD, OpenGL ES, OpenMAX, OpenVG, OpenSL ES e OpenML per rendere possibile l'authoring e l'accelerazione di elementi multimediali dinamici su una grande varietà di piattaforme e dispositivi. KML (Keyhole Markup Language):un linguaggio basato su XML creato per gestire dati geospaziali in tre dimensioni nei programmi Google Earth, Google Maps e Google Mobile. La parola keyhole è un vecchio nome che viene dal software da cui deriva Google Earth. NASA (National Aeronautics and Space Administration): agenzia governativa civile responsabile per il programma spaziale degli Stati Uniti d'america e per la ricerca aerospaziale civile e militare. Obiettivo delle API è ottenere un'astrazione, di solito tra l'hardware e il programmatore, o tra software a basso ed alto livello. OGC (Open Geospatial Consortium): organizzazione internazionale no-profit, basata sul consenso volontario, che si occupa di definire specifiche tecniche per i servizi geospaziali e di localizzazione (location based). OGC è formato da oltre 280 membri (governi, industria privata, università) con l'obiettivo di sviluppare ed implementare standard per il contenuto, i servizi e l'interscambio di dati geografici che siano "aperti ed estensibili. OpenGL (Open Graphics Library): specifica che definisce una API per più linguaggi e per più piattaforme per scrivere applicazioni che producono computer grafica 2D e 3D. Pipeline: Il termine pipeline in informatica e in elettronica si riferisce a un manufatto composto da più elementi. Ogni elemento provvede a ricevere in ingresso un dato o un segnale, ad elaborarlo e poi a trasmetterlo all'elemento successivo. RAD (Rapid Application Development): metodologia di sviluppo del software introdotta inizialmente da James Martin negli anni ottanta. Questa metodologia coinvolge modelli di sviluppo iterativi, la costruzione di prototipi e l'utilizzo di strumenti CASE 8

9 Raster: Metodologia per la codifica delle informazioni che utilizza come elemento base una matrice ordinata di righe e colonne composta da celle (o pixel) aventi forma regolare (generalmente quadrata). A ogni cella viene associato un valore relativo a un determinato attributo. Le immagini digitali hanno struttura raster. Rasterizing: La rasterizzazione è il lavoro di convertire un immagine bidimensionale descritta da vettori (in grafica vettoriale), in un immagine raster o bitmap, ovvero formata da pixels. Questo lavoro è effettuato sia per ottenere un immagine proiettabile su dispositivi video, come i monitors, sia per la stampa. RDF(Resource Description Framework.): formato strutturato per la diffusione delle informazioni sul web. Creato secondo le direttive del W3C per la descrizione dei metadati relativi alle risorse. Questa struttura è una delle proposte alla base del cosiddetto web semantico e permette la condivisione di informazioni via web. RSS (RDF Site Summary e Really Simple Syndication): uno dei più popolari formati, per la distribuzione di contenuti Web, basati su XML, da cui ha ereditato semplicità, l'estensibilità e la flessibilità. SAX (Simple API for XML): interfaccia standard per il parsing XML basato su eventi, sviluppato in collaborazione dai membri della mailing list XML-DEV, attualmente presentato da OASIS. Shapefile ESRI: è un popolare formato vettoriale per sistemi informativi geografici. Emesso come (quasi) open source, allo scopo di accrescere l'interoperabilità fra i sistemi ESRI e altri GIS. Di fatto è diventato uno standard per il dato vettoriale spaziale, e viene usato da una grande varietà di sistemi GIS. SQL (Structured Query Language): linguaggio creato per l'accesso e la manipolazione delle informazioni memorizzate in database. SWT (Standard Widget Toolkit): libreria di classi Java derivata da Eclipse che permette di creare interfaccie grafiche native, utilizzando quindi oggetti del sistema operativo utilizzato. Syndication: usato in termini giornalistici indica la vendita attraverso un agenzia di stampa. In termini informatici indica il contratto tra chi pubblica e chi diffonde notizie via web. TIN (Triangulated Irregular Networks): è una struttura dati vettoriale basata su triangoli con maglia irregolare, capace di fornire elevata risoluzione solo dove questa è necessaria. UML (Unified Modeling Language): linguaggio di modellazione e specifica basato sul paradigma objectoriented. USGS (United States Geological Survey): è un'agenzia scientifica del Governo degli Stati Uniti. Gli scienziati dell'usgs studiano il territorio degli USA, le sue risorse naturali e i rischi naturali che lo minacciano. L'organismo si suddivide in dipartimenti che trattano quattro maggiori discipline scientifiche, biologia, geografia, geologia e idrologia. 9

10 W3C(World Wide Web Consortium): associazione, di circa 300 membri, tra cui le più famose multinazionali informatiche, con lo scopo di migliorare i protocolli e linguaggi esistenti per il World Wide Web e favorire lo sviluppo del Web stesso aiutandolo a mettere in mostra tutte le sue potenzialità. WMS (Web Map Service): con WMS si intende una specifica tecnica definita dall'ogc: OpenGIS Web Map Service Implementation Specification. Un OGC Web Map Service (WMS) produce dinamicamente mappe di dati spazialmente riferiti a partire da informazioni geografiche. Questo standard internazionale definisce una "mappa" come rappresentazione di informazioni geografiche restituendo un'immagine digitale idonea ad essere visualizzata sullo schermo di un computer. XML (extensible Markup Language): metalinguaggio creato e gestito dal W3C. La struttura dell'xml è composta da tag creati dallo sviluppatore, che hanno due caratteristiche: devono essere comprensibili e devono rispettare le regole di assegnazione dei nomi alle variabili, comuni a tutti i linguaggi di programmazione. XSD (XML Schema Definition): schema di definizione della struttura di un documento XML realizzato dal W3C. In pratica un documento XML rispetterà la struttura, definita nello Schema XML Riferimenti Descrizione del progetto. A cura della Fondazione GraphiTech. Documentazione per Sviluppatori del progetto World Wind. A cura della NASA. 10

11 1.3. Anteprima In sezione 2, si riportano i Requisiti da soddisfare per utilizzare l applicazione e i Tools di sviluppo adottati. In sezione 3, si illustra lo Stato dell Arte del progetto. In sezione 4, si illustra il formato GeoRSS e l applicazione sviluppata per la gestione del Database. In sezione 5, si riportano le caratteristiche principali della libreria grafica OpenGL e di quella JOGL per Java. In sezione 6, si descrive la Personalizzazione dell Ambiente Tridimensionale sviluppato. In sezione 7, si traggono le Conclusioni, i Futuri Sviluppi e i possibili Campi d Impiego. In sezione 8, vengono riportati alcuni ScreenShot dell applicazione. In sezione 9, si delinea la Bibliografia di riferimento. 2. Requisiti e Tools di Sviluppo Di seguito vengono riportate caratteristiche principali, requisiti e tools utilizzati durante la fase implementativa del progetto di tesi. Alcune caratteristiche elencate vengono riportate per una completa visione d insieme degli strumenti adottati, ma non rientrando nell ambito del progetto non sono state utilizzate Java e IDE Utilizzati Il modello classico di programmazione, conosciuto come paradigma procedurale, può essere riassunto in due parole: Divide et Impera ossia dividi e conquista. Difatti secondo questa filosofia, un problema complesso viene suddiviso in problemi più semplici in modo che siano facilmente risolvibili mediante programmi procedurali. E chiaro che in questo caso, l attenzione del programmatore è accentrata al problema con le limitazioni che l architettura del calcolatore impone. A differenza del primo, il paradigma Object Oriented accentra l attenzione verso i dati. L applicazione viene suddivisa in un insieme di oggetti in grado di interagire tra di loro e codificati in modo tale che la macchina sia in gradi di comprenderli. Il primo cambiamento evidente è quindi a livello di disegno della applicazione. Di fatto l approccio Object Oriented non è limitato a linguaggi come Java o C++. Molte applicazione basate su questo modello sono state scritte con linguaggi tipo C o Assembler. Un linguaggio Object Oriented semplifica il meccanismo di creazione degli Oggetti allo stesso modo con cui un linguaggio procedurale semplifica la decomposizione in funzioni. Gli elementi fondamentali di tale paradigma sono gli oggetti che vengono, in un primo momento definiti, descrivendone le caratteristiche, poi creati e allocati in memoria ed infine vengono usati in relazione l'uno con l'altro. L analisi delle modalità di interazione tra gli oggetti permetterà di riunire gli oggetti a formare l applicazione. È possibile, quindi, stabilire una basilare distinzione tra i due metodi di programmazione: Nella programmazione tradizionale (o imperativa), i problemi vengono affrontati rivolgendo l'attenzione alle operazioni da svolgere: si cerca una decomposizione funzionale del problema. 11

12 Nella programmazione ad oggetti, si vuole innanzitutto stabilire quali sono le entità che interagiranno tra loro, ricreando un modello adatto per descrivere il problema da risolvere. Tali entità sono gli oggetti con determinate caratteristiche (attributi) e determinate funzionalità (metodi). Con l aumento delle prestazione dei calcolatori e di conseguenza con l aumento della complessità delle applicazioni, l approccio procedurale ha iniziato a mostrare i propri limiti rendendo necessario definire un nuovo modello e nuovi linguaggi di programmazione. I linguaggi come Java e C++ forniscono il supporto ideale al disegno ad oggetti di applicazioni fornendo un insieme di regole sintattiche e semantiche che aiutano nello sviluppo di oggetti. Evoluzione del Modello di Programmazione Il linguaggio Java inizia la sua evoluzione durante l aprile del 1991, quando un gruppo di impiegati della Sun Microsystem, conosciuti come Green Group, iniziarono a studiare la possibilità di creare una tecnologia in grado di integrare le allora attuali conoscenze nel campo del software con l elettronica di consumo. Avendo subito focalizzato il problema sulla necessità di avere un linguaggio indipendente dalla piattaforma (il software non doveva essere legato ad un particolare processore) il gruppo iniziò i lavori nel tentativo di creare un linguaggio che estendesse il C++ (la sintassi infatti è simile). La prima versione del linguaggio fu chiamata Oak e, successivamente per motivi di royalty??, Java. Cronologia Versioni Java Rilasciate JDK Settembre 1997 J2SE Maggio 2000 JDK Dicembre 1997 J2SE Maggio 2001 JDK Aprile 1998 J2SE Febbraio 2002 JDK Settembre 1998 J2SE Settembre 2002 JDK Aprile 1999 J2SE Giugno 2003 J2SE Dicembre 1998 J2SE 5.0(1.5.0) 29 Settembre 2004 J2SE Marzo 1999 Java SE 6 (1.6.0) 11 Dicembre 2006 J2SE Luglio 1999 Java SE 7 (1.7.0) Prevista per il 2008 Attraverso una serie di eventi, quella che era la direzione originale del progetto subì vari cambiamenti ed il target fu spostato dall elettronica di consumo al world wide web. Il 23 Maggio del 1995 la Sun ha prsentato formalmente Java. Da quel momento in poi il linguaggio è stato adottato da tutti i maggiori vendors di software incluse IBM, Hewlett Packard e Microsoft. 12

13 Java fu inizialmente rilasciato come Java Development Kit 1.0 (JDK 1.0). Java Development Kit è un insieme di strumenti ed utilità ed è messo a disposizione gratuitamente da tanti produttori di software. L insieme base o standard delle funzionalità è supportato direttamente da Sun Microsystem ed include un compilatore (javac), una Java Virtual Machine (java), un debugger e tanti altri strumenti necessari allo sviluppo di applicazioni Java. Inoltre il JDK comprende, oltre alle utilità a linea di comando, un completo insieme di classi pre-compilate e relativo codice sorgente. Successivamente, Sun fornì un pacchetto che comprendeva solo Java Runtime, chiamato Java RunTime Environment (JRE) che permetteva agli utenti finali di far girare applicazioni scritte in Java. Normalmente gli utenti si riferiscono ad una particolare versione di Java attraverso la versione del JDK (es. JDK 1.4) Le versioni JDK 1.2 e successive sono spesso chiamate Java 2. il nome ufficiale è quindi diventato Java(TM) 2 Platform, Standard editino (J2SE). Dalla prima versione del JDK il linguaggio non è stato sottoposto a grandi cambiamenti, ma la libreria di classi che viene fornita con JDK è stata progressivamente ampliata e modificata in alcune parti ed è stata creata una grande quantità di documentazione per poter usufruire al meglio della vastità di classi già implementate. La documentazione è generalmente distribuita separatamente, è rilasciata in formato HTML e scaricabile dal sito: e copre tutto l insieme delle classi rilasciate con il JDK. Java è stato creato cercando di tenere presente alcuni concetti fondamentali che stavano emergendo agli inizi di quegli anni e che sono, successivamente, diventati suoi punti di forza. Diamo ora una veduta d insieme delle principali e più famose caratteristiche di Java: 1. Affinità con il C e il C++ La similitudine sintattica con il più diffuso linguaggio di programmazione è grande; per esempio, le istruzioni for, if, else sono del tutto analoghe a quelle del C. Inoltre, per rendere il linguaggio più semplice e lineare, sono state eliminate in Java alcune caratteristiche del C e del C++, come le funzioni di allocazione e di liberazione della memoria e l'ereditarietà multipla. Altra caratteristica di Java sono le dimensioni ridotte del software, in modo che esso possa funzionare anche su sistemi molto piccoli. L'interprete, le classi e le "librerie" Java di base non superano nel loro complesso i 250 Kbytes. 2. Semplicità Il linguaggio Java è stato progettato per essere semplice. I programmatori della Sun ritengono che il C++ sia un linguaggio ridondante. Esso infatti deriva dal C, che non è orientato all'oggetto, a cui sono state aggiunte le classi al fine di creare un linguaggio orientato all'oggetto. La conseguenza di ciò è che inevitabilmente il C++ possiede caratteristiche che appartengono al C e che non rientrano nella filosofia dei linguaggi orientati all'oggetto. Per questa ragione, tutte le caratteristiche del C++ ritenute ridondanti sono state tolte da Java, in modo che quest'ultimo potesse divenire un linguaggio di programmazione più snello e facile da leggere. 3. Linguaggio orientato all'oggetto (Object-oriented) Per essere considerato orientato all'oggetto, un linguaggio di programmazione in linea di principio deve possedere almeno questi quattro requisiti: Incapsulamento: è possibile rendere riservata o astratta parte dell'informazione. Polimorfismo: gli stessi dati passati a oggetti differenti hanno effetti diversi a seconda dell'oggetto coinvolto. Ereditarietà: si possono definire classi sulla base di altre classi. Collegamento dinamico: gli oggetti possono provenire da qualsiasi luogo, compresa la rete. Java soddisfa piuttosto bene a queste quattro esigenze. 13

14 4. Gestione automatica della memoria In ogni programma Java è sempre attivo un thread a bassa priorità, detto Automatic Garbage Collection, che provvede ad analizzare la memoria e a liberare quella che non è utilizzata. Una volta che un oggetto è stato creato, il Garbage Collector in fase di esecuzione osserva la vita dell'oggetto e provvede a liberare la memoria occupata quando essa non viene più utilizzata dall'oggetto in questione. Ciò solleva il programmatore dal provvedere alla gestione della memoria, compito questo che in C e C++ conduce spesso all'introdurre errori che si verificano in fase di esecuzione dei programmi. 5. Neutralità all'architettura La neutralità dell'architettura rappresenta una caratteristica importante in un mondo informatico sempre maggiormente popolato dai più svariati sistemi hardware e sistemi operativi. Con la fortissima crescita delle reti telematiche questa esigenza è divenuta ancora più pressante. Inoltre, per sviluppare prodotti software per il World Wide Web, la neutralità dall'architettura costituisce un parametro assolutamente indispensabile. Java tenta di risolvere il problema adottando lo slogan: Write once, Run everywhere e affida l'esecuzione dei suoi programmi ad una macchina virtuale. Più specificatamente, un sorgente Java viene tradotto dal compilatore Java (javac) non in istruzioni macchina reali, ma in istruzioni macchina virtuali, i bytecodes. Sarà compito poi della macchina virtuale Java (l'interprete Java) di leggere ed eseguire queste istruzioni tramite la generazione "run time" del codice macchina reale specifico per il sistema su cui il programma Java viene eseguito. Portabilità del Codice Java 6. Linguaggio Robusto L'assenza di puntatori, il fatto che stringhe e array siano oggetti e la gestione automatica della memoria, conferiscono a Java una robustezza particolare. Oltre a ciò, il compilatore Java individua molte situazioni in cui un programma potrebbe provocare problemi e grazie ad un sistema per la gestione delle eccezioni riesce ad evitare moltissimi errori di esecuzione. 7. Dinamicità Java, permette di aggiornare le "librerie" di classi senza costringere gli utenti alla ricompilazione dei programmi. Alle classi in "libreria" si possono infatti aggiungere metodi e variabili senza che questo abbia effetto sui vecchi programmi. Ciò è possibile grazie al fatto che ogni classe in Java ha anche una rappresentazione "runtime" (bytecodes), la quale permette di individuare comunque il tipo di oggetti che l'utente richiede. 14

15 8. Sicurezza Siccome Java è stato progettato per funzionare in ambienti distribuiti o di rete, la sicurezza è un parametro molto importante. In fatto di sicurezza, Java offre innanzitutto la sue caratteristiche strutturali, ma oltre a ciò, Java è stato dotato di altre caratteristiche che provvedono ad aumentarne la sicurezza: la verifica dei bytecodes, la verifica durante il caricamento delle classi, l interfacciamento sicuro con i protocolli Internet ed in fine la crittografia. 9. Linguaggio distribuito Java possiede molte librerie (class java.net.*) che permettono facilmente l'accesso a risorse remote tramite protocolli basati sul TCP/IP, come lo HTTP. Tramite URL (class java.net.url) una applicazione Java può accedere a oggetti remoti come se essi fossero collocati su file presenti nel sistema ove essa funziona. 10. Linguaggio MultiThreading Java è un linguaggio Multi-Threaded. Il Multi-Threading consente ad applicazioni Java di sfruttare il meccanismo di concorrenza logica. Parti separate di un programma possono essere eseguite come se fossero (dal punto di vista del programmatore) processate parallelamente. 11. Interazione con i Browser per Internet Java possiede una classe apposita classe (class Applet) che permette di inserire in un documento HTML riferimenti ad applicativi (Applet) che possono essere eseguiti a distanza dai più diffusi browser. 12. Vasta scelta di Librerie e Standardizzazione Java possiede un enorme libreria di classi standard che forniscono al programmatore la possibilità di operare su funzioni comuni di sistema come la gestione delle finestre, dei collegamenti in rete e dell input/output. Il pregio fondamentale di queste classi sta nel fatto che rappresentano un astrazione indipendente dalla piattaforma, per un ampia gamma di interfacce di sistema utilizzate comunemente. Grazie ad alcune delle caratteristiche che il linguaggio offre, soprattutto per quel che riguarda la distribuzione su World Wide Web e grazie alla scelta di numerose librerie utilizzabili, GraphiTech ha deciso di appoggiarsi a Java per sviluppare il suo progetto e di conseguenza il lavoro di tesi si è basato su questo linguaggio. La versione Java adottata è l ultima finora rilasciata J2SE 6 con JRE scaricabile dal sito ufficiale della Sun Microsystem: Per sviluppare programmi in Java è teoricamente sufficiente un qualsiasi editor di testo. Per un programmazione abbastanza estesa e complicata esistono diversi IDE (Integrated Development Environment, ambiente di sviluppo integrato), alcuni gratuiti ed altri a pagamento Eclipse Eclipse è un progetto open source legato alla creazione e allo sviluppo di una piattaforma di sviluppo ideata da un consorzio di grandi società quali Ericsson, HP, IBM, Intel, MontaVista Software, QNX, SAP e Serena Software, chiamato Eclipse Foundation, e creata da una comunità strutturata sullo stile dell'open source. Pur essendo orientata allo sviluppo del progetto stesso, questo IDE è utilizzato anche per la produzione di software di vario genere. Si passa infatti da un completo IDE per il linguaggio Java ad un ambiente di sviluppo per il linguaggio C++ e a plug-in che permettono di gestire XML, PHP e persino di progettare graficamente una GUI per un applicazione JAVA, rendendo di fatto Eclipse un ambiente RAD. 15

16 Il programma è scritto in linguaggio Java, ma anziché basare la sua GUI sulla libreria Swing di Java, il toolkit grafico di Sun Microsystems, si appoggia sul SWT, librerie di nuova concezione che conferiscono ad Eclipse una straordinaria reattività. Eclipse è strutturato con un'architettura a plug-in che permette l'aggiunta di ulteriori funzionalità semplicemente scaricando ed installando il relativo pacchetto. Inoltre grazie alla sua licenza open source chiunque può sviluppare e modificare i vari plug-in apportando così migliorie e nuove caratteristiche ad una piattaforma già notevolmente avanzata. Nella versione base è possibile programmare in Java, usufruendo di comode funzioni di aiuto quali: completamento automatico, suggerimento dei tipi di parametri o dei metodi, possibilità di accesso diretto a CVS e riscrittura automatica del codice in caso di cambiamenti nelle classi. Nel progetto di tesi, Eclipse è stato utilizzato come software principale per la personalizzazione dell ambiente virtuale di Project Anna, in quanto già adottato da GraphiTech per altri progetti. Essendo scritto in Java, Eclipse è disponibile per le piattaforme Linux, HP-UX, AIX, MacOSX e Windows. La versione di Eclipse è scaricabile dalla pagina web: JBuilder Uno degli IDE commerciali più diffusi è JBuilder prodotto dalla Borland. JBuilder è un IDE per lo sviluppo in Java prodotto da Borland e disponibile per i sistemi operativi Windows, Linux e Solaris. Fu introdotto sul mercato nel 1997, e da allora ha ricevuto numerosi premi internazionali come IDE più avanzato per lo sviluppo in Java. Dal progetto JBuilder sono anche derivati altri strumenti di successo, come JDeveloper di Oracle (basato su JBuilder) e Together (inizialmente concepito come plug-in di JBuilder e poi evoluto a prodotto indipendente). Per lo sviluppo della gestione database, contenente i dati georeferenziati, e per la creazione dell interfaccia grafica dell applicazione è stato utilizzato, grazie al suo designer integrato, Borland JBuilder 2006 in licenza gratuita Personal Edition e scaricabile dal sito: Al già avanzato IDE di JBuilder, in questa versione si aggiungono, capacità di collaborazione peer-to-peer che consentono ai team sempre più distribuiti di utilizzare la "programmazione tra colleghi virtuali", un importante aggiornamento del suo ambiente, leader di mercato, progettato per velocizzare lo sviluppo di applicazioni Java aziendali di classe industriale. JBuilder inoltre consente agli sviluppatori di ottimizzare migliaia di plug-in di terze parti, nonché di creare miglioramenti personalizzati. È possibile creare processi di workflow flessibili e personalizzati per attività quali change management o individuazione dei difetti, in modo da ottimizzare la produttività senza l'imposizione di rigide strutture. I team possono inoltre configurare personalità IDE per semplificare e personalizzare l'interfaccia di ogni progetto. La famosa case produttrice di JBuilder, la Borland è stata fra i membri fondatori della Eclipse Foundation, infatti la nuova versione di JBuilder 2007 è basata sulla piattaforma open source Eclipse, nonostante resti un prodotto commerciale a tutti gli effetti. 16

17 2.2. PostgreSQL PostgreSQL è un completo database relazionale ad oggetti con licenza libera stile (BSD). PostgreSQL è un'ottima alternativa rispetto ad altri prodotti a codice chiuso come Oracle, Informix o DB2. Offre caratteristiche uniche nel suo genere che lo pone per alcuni aspetti all'avanguardia nel settore dei database. PostgreSQL usa il linguaggio SQL per eseguire delle query sui dati. Questi sono conservati come una serie di tabelle con chiavi esterne che servono a collegare i dati correlati. La programmabilità di PostgreSQL è il suo principale punto di forza ed il principale vantaggio verso i suoi concorrenti: PostgreSQL rende più semplice costruire applicazioni per il mondo reale, utilizzando i dati prelevati dal database. I database SQL conservano dati semplici in tabelle, richiedendo che sia l'utente a prelevare e raggruppare le informazioni correlate utilizzando le query. PostgreSQL permette agli utenti di definire nuovi tipi basati sui normali tipi di dato SQL, permettendo al database stesso di comprendere dati complessi. PostgreSQL, inoltre, permette l'ereditarietà dei tipi, uno dei principali concetti della programmazione orientata agli oggetti. Inoltre la logica relazionale viene applicata direttamente dal server di database in una volta, riducendo il passaggio di informazioni tra il client ed il server incrementando le prestazioni. L incremento dell'affidabilità, è dovuto, invece alla centralizzazione del codice di controllo sul server, non dovendo gestire la sincronizzazione della logica tra molteplici client e i dati memorizzati sul server. Inserendo livelli di astrazione dei dati direttamente sul server, il codice del client può essere più snello e semplice. Questi vantaggi fanno di PostgreSQL, probabilmente, il più avanzato sistema database dal punto di vista della programmabilità, il che aiuta a spiegare il suo successo. Utilizzare PostgreSQL può ridurre fortemente il tempo totale di programmazione di molti progetti, con i vantaggi suddetti che crescono con la complessità del progetto stesso. In particolare, nel caso affrontato, PostgreSQL è stato introdotto sia per la sua caratteristica di avvicinamento alla programmazione ad oggetti, sia per la plug-in di supporto per la dichiarazione di dati georeferenziati, PostGIS. Grazie a PostGIS, sviluppato dalla Refractions Research Inc. come progetto di ricerca sulla tecnologia spaziale per i database, si possono manipolare ed usare diverse geometrie: point, line, polygon, multipoint, multiline, multipolygon e geometrycollections. Attualmente PostGis è integrato al database PostgreSQL scaricabile dal sito ufficiale: La plug-in per la georeferenziazione è scaricabile anche separatamente dalla pagina web: Per il progetto di tesi, si è deciso di avvalersi anche di PGAdminIII, software per la visualizzazione e gestione grafica dei database PostgreSQL. PGAdminIII è un tool gratuito ad interfaccia grafica, sviluppato da una comunità di esperti PostgreSQL, scaricabile dal sito: di notevole aiuto per la facilità d uso e la velocità di inserimento dei dati OpenGL OpenGL è una potente libreria grafica che risolve si pone il compito di interfacciarsi con l'hardware e fornire al programma client una serie di primitive, più o meno essenziali, per lo sviluppo di applicazioni nel campo del rendering tridimensionale. 17

18 Queste primitive comprendono funzioni per la manipolazione dei pixel, per la proiezione di poligoni in 3D e per la gestione del movimento degli stessi, per la rappresentazione di luci e colori, per il Texture mapping etc. Il prefisso Open sta ad indicare che OpenGL è una architettura aperta, ciò significa che il suo sviluppo è curato non da una singola azienda, ma da una associazione di industrie leader del settore (ATI, Compaq, IBM, nvidia, Hewlett- Packard, Silicon Graphics) che hanno dato vita all'arb (Architectural Review Board). Questa organizzazione, nata nel 1992, ha avuto il compito di sviluppare e standardizzare gli aggiornamenti di OpenGL fino al 2006, quando gli standards OpenGL sono entrati a far aperte del Khornos Group che sostituisce la funzione della precedente associazione ARB. Una delle peculiarità di OpenGL che la distingue immediatamente dalle sue rivali (ad esempio DirectX di Microsoft) è la portabilità. Infatti è disponibile su tutte le piattaforme più diffuse, Unix, Linux, Windows, Mac, Solaris etc. OpenGL è oggi una delle più valide e potenti librerie grafiche disponibili e lo dimostra il fatto che grandi Software House specializzate nel campo dei videogames l'hanno scelta per sviluppare i propri prodotti. Tra i titoli targati OpenGL troviamo Quake2, Quake3 e Doom III della ID Software, Unreal Tournament 1 e 2 della Epic Games, oppure Half Life e tanti altri. Per quanto riguarda la possibilità di utilizzare OpenGL nel proprio linguaggio preferito, nonostante essa sia stata sviluppata inizialmente per essere utilizzata attraverso il linguaggio C, è disponibile in un'ampia varietà di linguaggi tra i quali C++, Java, Delphi e il neonato C# (C sharp di Microsoft). OpenGL è scaricabile gratuitamente dai siti ufficiali delle aziende facenti parte dell ARB, ovviamente ogni azienda ha personalizzato le versioni della libreria a seconda delle proprie esigenze lasciando comunque inalterate le funzionalità base della specifica JOGL Jogl è una libreria wrapper che consente l uso delle librerie OpenGL con il linguaggio di programmazione Java. Il progetto Jogl deve essere ancora completato e la libreria è ancora sotto sviluppo da parte del Game Technology Group presso la Sun Microsystem. Jogl è l implementazione di riferimento per JSR-231 (Java Binding for OpenGL), un API disegnata a supporto delle versioni più recenti di Java dalla release J2SE 1.4 alle successive. L albero sorgente di JOGL nella sua forma corrente è, appunto, uno spazio di lavoro sperimentale per il JSR-231 Java Bindings per OpenGL. JOGL quindi, non è l implementazione ufficiale di riferimento, ma uno spazio di lavoro in evoluzione. Questa è stata la libreria di riferimento per il progetto di tesi, scaricabile dal sito web: https://jogl.dev.java.net con una vasta documentazione, numerosi esempi di utilizzo e forum. 3. Stato dell Arte Lo sviluppo continuo di tecnologie informatiche ed elettroniche permettono oggi, ad un numero sempre più elevato di persone, di utilizzare sistemi basati su realtà virtuale sempre più complessi. L utilizzo di tali ambienti spazia dai più articolati software di simulazione scientifica ai comuni videogiochi. 18

19 Sono sempre più, i campi applicativi che richiedono l ausilio di particolari software in grado di rappresentare diverse tipologie di dati all interno di scenari tridimensionali virtuali. Quest ultima area, grazie ad un enorme diffusione e un conseguente abbattimento dei costi, ha permesso di sviluppare sistemi per la simulazione di ambienti virtuali con scenari di ampi spazi aperti. Oggi questi sistemi permettono la visualizzazione d informazioni territoriali finora accessibili solo in maniera cartacea e con uno spreco di risorse elevato. Attualmente, grazie all integrazione di dati GIS con informazioni correlate a luoghi od elementi presenti su un determinato territorio, è possibile ottenere sistemi in grado di legare tali dati alla corrispettiva area geografica. La navigazione tridimensionale, la visualizzazione di mappe tematiche, la pianificazione di business in determinate regioni, sono solo alcuni aspetti facenti parte di una vasta gamma di applicazioni connesse all informazione georeferenziata. Uno dei settori che ha tratto un sicuro vantaggio dallo sviluppo di queste tecnologie è il settore turistico, che utilizza questi software per pubblicizzare e valorizzare luoghi naturali e culturali poco conosciuti GIS La definizione per delineare caratteristiche, componenti e funzionalità di un sistema GIS non è mai stata univoca, ma ha subito diverse variazioni, anche a seconda delle nuove tecnologie sviluppate e dei nuovi concetti di lavoro collaborativo tra diversi sistemi. Quella che forse esprime meglio un sistema GIS è quella di P.A.Burrough del 1986: Il GIS è composto da una serie di strumenti software per acquisire, memorizzare, estrarre, trasformare e visualizzare dati spaziali dal mondo reale. Dagli anni 80 fino ad oggi il concetto di Sistema Informativo Geografico si è evoluto, dando così di volta in volta un diverso significato alla S finale dell acronimo GIS, e cambiando anche l ambito di utilizzo del sistema: Anni 1980: Geographic Information Systems. Tecnologia per l acquisizione e la gestione di dati spaziali. software per uso professionale, es. cartografi Anni 1990s: Geographic Information Science. messa a punto dei modelli concettuali di descrizione dei dati e dei processi nello spazio e nel tempo. Teoria e modelli concettuali su cui si basa la tecnologia. Anni 1990s: Geographic Information Studies. Definizione degli aspetti sociali, legali ed etici associati all uso e all applicazione dei GIS. Anni 2000s: Geographic Information Services. Siti Web e servizi web per gli utenti (es. Siti cartografici delle regioni, interrogazioni su percorsi, ecc ). L acronimo GIS (Geographic Information System), è possibile ormai definirlo come un ambiente informativo in grado di rappresentare, organizzare e processare dati georeferenziati. Il GIS offre uno strumento completo adatto alla rappresentazione del territorio ed al trattamento delle informazioni associate agli oggetti georeferenziati: 19

20 Geographic: tratta oggetti per i quali è possibile stabilire una localizzazione sulla superficie terreste. A questi oggetti (punti, linee, aree) sono assegnate le coordinate spaziali congruenti con la base cartografica di riferimento. Information: gestisce dati relativi agli oggetti geografici e consente di recuperare informazioni (analisi, valori, ecc ). System: la sua struttura è costituita da numerosi elementi che si integrano e concorrono al raggiungimento degli obiettivi finali. Esempio di Struttura GIS In particolare un applicazione GIS è un prodotto che permette di visualizzare delle informazioni tipo: Modelli digitali del terreno (DTM); Ortofoto satellitari o aeree; Geometrie. Prima di poter essere utilizzate, tali informazioni devono subire un processo di geo-referenziazione,vengono trovate delle corrispondenze e successivamente sfruttate per poter eseguire una perfetta sovrapposizione. Il mondo reale può essere rappresentato in un sistema informativo geografico attraverso due tipologie principali di dato: il dato vettoriale e il dato raster: Il dato raster permette di rappresentare il mondo reale attraverso una matrice di celle, generalmente di forma quadrata o rettangolare, dette pixel. A ciascun pixel sono associate le informazione relative a ciò che esso rappresenta sul territorio. La dimensione del pixel (detta anche pixel size), generalmente espressa nell'unità di misura della carta (metri, chilometri etc.), è strettamente relazionata alla precisione del dato.generalmente vengono rappresentati in questo formato il DTM e le immagini. I dati vettoriali sono costituiti da elementi semplici quali punti, linee e poligoni, codificati e memorizzati sulla base delle loro coordinate. Un punto viene individuato in un sistema informativo geografico attraverso le sue coordinate reali (x1, y1); una linea o un poligono attraverso la posizione dei sui nodi (x1, y1; x2, y2;...). A ciascun elemento è associato un record del database informativo che contiene tutti gli attributi dell'oggetto rappresentato. Questo formato è utile per rappresentare oggetti e percorsi. I dati vettoriali e i dati raster si adattano ad usi diversi. La cartografia vettoriale è particolarmente adatta alla rappresentazione di dati che variano in modo discreto (ad esempio l'ubicazione dei cassonetti dei rifiuti di una città o la rappresentazione delle strade o una carta dell'uso del suolo), la cartografia raster è più adatta alla rappresentazione di dati con variabilità continua (ad esempio un modello digitale di elevazione o una carta di acclività del versante). Per la rappresentazione dei dati in un GIS occorre formalizzare un modello rappresentativo flessibile che si adatti ai fenomeni reali, ne esistono difatti diverse tipologie di informazioni per una più facile strutturazione del modello: Geometrica: relative alla rappresentazione cartografica degli oggetti rappresentati; quali la forma (punto, linea, poligono), la dimensione e la posizione geografica; Topologica: riferite alle relazioni reciproche tra gli oggetti (connessione, adiacenza, inclusione ecc ); Informativa: riguardanti i dati (numerici, testuali ecc ) associati ad ogni oggetto. 20

Cad e Gis: i formati (wiki) Computer-Aided Drafting, supporto dell'attività di disegno tecnico (drafting) creazione di un modello, tipicamente 2D

Cad e Gis: i formati (wiki) Computer-Aided Drafting, supporto dell'attività di disegno tecnico (drafting) creazione di un modello, tipicamente 2D Cad e Gis: i formati (wiki) Computer-Aided Drafting, supporto dell'attività di disegno tecnico (drafting) creazione di un modello, tipicamente 2D Computer-Aided Design, supporto dell'attività di progettazione

Dettagli

La realizzazione di WebGis con strumenti "Open Source".

La realizzazione di WebGis con strumenti Open Source. La realizzazione di WebGis con strumenti "Open Source". Esempi di impiego di strumenti a sorgente aperto per la realizzazione di un Gis con interfaccia Web Cos'è un Web Gis? Da wikipedia: Sono detti WebGIS

Dettagli

Telerilevamento e SIT Prof. Ing. Giuseppe Mussumeci

Telerilevamento e SIT Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2012-2013 Telerilevamento e SIT Prof. Ing. Giuseppe Mussumeci Architettura e funzionalità di una piattaforma GIS. Parte seconda:

Dettagli

I servizi di accesso e di gestione dell informazione geografica della Regione Abruzzo

I servizi di accesso e di gestione dell informazione geografica della Regione Abruzzo I servizi di accesso e di gestione dell informazione geografica della Regione Abruzzo Filippo DEL GUZZO (*), Valentina VALLERIANI (*), Alessandro CACCHIONE (*) (*) Regione Abruzzo, Struttura Speciale di

Dettagli

ArcGIS. Server. Un Server GIS completo e integrato

ArcGIS. Server. Un Server GIS completo e integrato ArcGIS Server Un Server GIS completo e integrato ArcGIS Server Un Server GIS completo e integrato ArcGIS Server connette gli utenti all informazione geografica. Aziende di piccole e grandi dimensioni utilizzano

Dettagli

Introduzione a Quantum GIS (QGIS) - passaggio dal software ArcView 3.x a software GIS OpenSource

Introduzione a Quantum GIS (QGIS) - passaggio dal software ArcView 3.x a software GIS OpenSource Introduzione a Quantum GIS (QGIS) - passaggio dal software ArcView 3.x a software GIS OpenSource I servizi OGC Forestello Luca - Niccoli Tommaso - Sistema Informativo Ambientale AT01 http://webgis.arpa.piemonte.it

Dettagli

Uno strumento di base per la pubblicazione di dati geografici su Web

Uno strumento di base per la pubblicazione di dati geografici su Web Alveo WMS connector Uno strumento di base per la pubblicazione di dati geografici su Web Autori Francesco Marucci, Claudio Zoppellari Settore GIS Cooperativa Alveo, Territorio e geoinformatica via Guerrazzi,

Dettagli

Linguaggi 2 e laboratorio

Linguaggi 2 e laboratorio Linguaggi 2 e laboratorio Docente: Leonardo Badia Contatti: leonardo.badia@gmail.com Pagina web del corso: www.unife.it/scienze/informatica/ insegnamenti/linguaggi-2-laboratorio Argomenti del corso: Java

Dettagli

Visualizzazione, interrogazione e modifica dei database topografici.

Visualizzazione, interrogazione e modifica dei database topografici. Visualizzazione, interrogazione e modifica dei database topografici. La soluzione WebGIS su misura per visualizzazione, interrogazione e gestione operativa, comprensiva di editing, di cartografia e database

Dettagli

La tecnologia GIS Roberto Cavallin

La tecnologia GIS Roberto Cavallin La tecnologia GIS Roberto Cavallin Dati territoriali L art. 59 del Codice dell Amministrazione Digitale (CAD) definisce i dati territoriali come: qualunque informazione geograficamente localizzata Secondo

Dettagli

www.epsilon-italia.ititalia.it

www.epsilon-italia.ititalia.it Provincia di Cosenza Settore Programmazione e Gestione Territoriale SIPITEC2 - Sistema Informativo Territoriale per la Gestione del P.T.C.P. www.epsilon-italia.ititalia.it MACRO ARGOMENTI Che cos è un

Dettagli

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano Lezione1 Informatica Grafica Cos è la computer grafica Lezione del 10 Marzo 2010 Grafica OpenGL vs Direct Dipartimento di Ingegneria Meccanica Politecnico di Milano 1.1 Tubo a Raggi Catodici Cathode Ray

Dettagli

Prima Lezione: Costruire una mappa

Prima Lezione: Costruire una mappa Prima Lezione: Costruire una mappa I tipi di informazione geografica disponibili Navigazione nella mappa Coordinate e scala Vista panoramica Introduzione ai GIS GIS significa Sistema Informativo Geografico

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Approfondimento: i sistemi di gestione delle basi di dati (DBMS)

Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Prerequisito essenziale della funzionalità delle basi di dati è il controllo e la fruibilità dell informazione in esse contenuta: a tale

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE INTRODUZIONE L ingegneria del software è la disciplina tecnologica e gestionalerelativa alla realizzazione sistematica e alla manutenzione di un software rispettando

Dettagli

Alveo KML connector. Uno strumento per la pubblicazione di dati geografici in Google Earth.

Alveo KML connector. Uno strumento per la pubblicazione di dati geografici in Google Earth. Alveo KML connector Uno strumento per la pubblicazione di dati geografici in Google Earth. Autori Francesco Marucci, Claudio Zoppellari Settore GIS Cooperativa Alveo, Territorio e geoinformatica via Guerrazzi,

Dettagli

tratta dati dotati di una forma geometrica, per cui ha senso parlare di forma e posizione

tratta dati dotati di una forma geometrica, per cui ha senso parlare di forma e posizione Sistemi informativi e GIS Sistema Informativo: insieme di strumenti per raccogliere, immagazzinare, elaborare, ricercare e presentare informazioni relative ad un determinato ambito applicativo (contabilità,

Dettagli

Hydrica 2011, Salone Internazionale Tecnologie Acqua e Ambiente

Hydrica 2011, Salone Internazionale Tecnologie Acqua e Ambiente Applicazioni GIS per il ciclo integrato delle acque: implementazione usando JGrassTools, udig, BeeGIS e EPANET Introduzione Andrea Bosoni, Silvia Franceschi, Davide Righetti andrea.bosoni@gmail.com, silvia.franceschi@hydrologis.eu,

Dettagli

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che Prefazione In questo volume completiamo l esplorazione del linguaggio Java che abbiamo iniziato in Java Fondamenti di programmazione. I due testi fanno parte di un percorso didattico unitario, come testimoniano

Dettagli

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

MANUALE DI GESTIONE DEI DATI GEOGRAFICI CON IL SOFTWARE QUANTUM GIS

MANUALE DI GESTIONE DEI DATI GEOGRAFICI CON IL SOFTWARE QUANTUM GIS MANUALE DI GESTIONE DEI DATI GEOGRAFICI CON IL SOFTWARE QUANTUM GIS Compilato: Andrea De Felici Rivisto: Approvato: Versione: 1.0 Distribuito: 01/08/2013 1 INDICE 1. INTRODUZIONE..3 2. PRIMI PASSI.....4

Dettagli

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

1. FINALITA DELLA DISCIPLINA

1. FINALITA DELLA DISCIPLINA Ministero dell Istruzione dell Università e della Ricerca LICEO SCIENTIFICO STATALE Donato Bramante Via Trieste, 70-20013 MAGENTA (MI) - MIUR: MIPS25000Q Tel.: +39 02 97290563/4/5 Fax: 02 97220275 Sito:

Dettagli

Strumenti per la programmazione

Strumenti per la programmazione Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un

Dettagli

WebGis Comune di Novara

WebGis Comune di Novara 1 / 12 Progetto GeoCivit@s 2 / 12 Premesse Con il presente documento si descrive sinteticamente la nuova applicazione personalizzata per la pubblicazione dei dati geografici. Tale documento contiene una

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

Applicazione di standard di interoperabilità spaziale all interno dell infrastruttura dei dati geografici della Regione Calabria

Applicazione di standard di interoperabilità spaziale all interno dell infrastruttura dei dati geografici della Regione Calabria Applicazione di standard di interoperabilità spaziale all interno dell infrastruttura dei dati geografici della Regione Calabria G.Calabretta ***, T. Caracciolo *, V.Marra *, M.Sisca **, F.Teti ** (*)

Dettagli

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

Introduzione a API e game engine per la programmazione grafica

Introduzione a API e game engine per la programmazione grafica Introduzione a API e game engine per la programmazione grafica OpenGL e WebGL Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a.

Dettagli

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Dettagli

Appendice D. D. Web Services

Appendice D. D. Web Services D. D.1 : cosa sono I cosiddetti sono diventati uno degli argomenti più attuali nel panorama dello sviluppo in ambiente Internet. Posti al centro delle più recenti strategie di aziende del calibro di IBM,

Dettagli

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati INTRODUZIONE Accesso ai dati tramite DBMS Livelli di astrazione Modello dei dati: schema / istanza / metadati Alcuni modelli dei dati Linguaggi per DBMS Architettura di base di un DBMS cesarini - BDSI

Dettagli

Informatica. Prof. A. Longheu. Introduzione a Java

Informatica. Prof. A. Longheu. Introduzione a Java Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su

Dettagli

:: RNDT. repertorio nazionale dei dati territoriali. 22 maggio 2007 FORUM PA 2007 1

:: RNDT. repertorio nazionale dei dati territoriali. 22 maggio 2007 FORUM PA 2007 1 :: RNDT repertorio nazionale dei dati territoriali 22 maggio 2007 FORUM PA 2007 1 I dati territoriali della Pubblica Amministrazione 22 maggio 2007 FORUM PA 2007 2 Codice dell Amministrazione Digitale

Dettagli

Sistemi Informativi di relazione - Internet

Sistemi Informativi di relazione - Internet Sistemi Informativi di relazione - Internet Obiettivi. Presentare i concetti base di Internet. Illustrare l evoluzione storica di Internet. Familiarizzare con gli elementi fondamentali di Internet: Il

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Lezione 19: Grafica in tempo reale. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time

Lezione 19: Grafica in tempo reale. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time I problemi del Real Time Lezione 19: Grafica in tempo reale Come visto nelle precedenti lezioni, i calcoli necessari a generare immagini 3D sono numerosi e complessi. I programmi di grafica 3D impiegano

Dettagli

ORDINE REGIONALE GEOLOGI SARDEGNA PROGRAMMA

ORDINE REGIONALE GEOLOGI SARDEGNA PROGRAMMA ORDINE REGIONALE GEOLOGI SARDEGNA PROGRAMMA CORSO E-LEARNING dal titolo GEOGIS Il GIS per i Geologi A.) CORSO E-LEARNING dal titolo GEOGIS Il GIS per i Geologi Il Corso GEOGIS, utilizza la piattaforma

Dettagli

Territoriali. prof. ing. Nicola Crocetto

Territoriali. prof. ing. Nicola Crocetto Seconda Università degli Studi di Napoli Facoltà di Ingegneria Corso di Telerilevamento e Sistemi Informativi Territoriali prof. ing. Nicola Crocetto dott. ing. Giuseppe Domenico Santagata GIS Un GIS (Geographic

Dettagli

ILLUSTRAZIONE DEL PROGETTO GIS DESERTO OCCIDENTALE PER DIVULGAZIONE SUL WEB

ILLUSTRAZIONE DEL PROGETTO GIS DESERTO OCCIDENTALE PER DIVULGAZIONE SUL WEB ILLUSTRAZIONE DEL PROGETTO GIS DESERTO OCCIDENTALE PER DIVULGAZIONE SUL WEB Compilato: Andrea De Felici Rivisto: Daniele Moretto Approvato: Daniele Moretto Versione: 1.0 Distribuito: 06/05/2013 1 INDICE

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

Dettagli

P R O D O T T I P E R L A P U B B L I C A A M M I N I S T R A Z I O N E C U B E G I S S O L U Z I O N E P E R L A G E S T I O N E E I L C O N T R O L

P R O D O T T I P E R L A P U B B L I C A A M M I N I S T R A Z I O N E C U B E G I S S O L U Z I O N E P E R L A G E S T I O N E E I L C O N T R O L P R O D O T T I P E R L A P U B B L I C A A M M I N I S T R A Z I O N E C U B E G I S S O L U Z I O N E P E R L A G E S T I O N E E I L C O N T R O L L O D E L T E R R I T O R I O I N D I C E 5 S O

Dettagli

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

I Sistemi Informativi Geografici. Laboratorio GIS 1

I Sistemi Informativi Geografici. Laboratorio GIS 1 I Sistemi Informativi Geografici Laboratorio GIS 1 Sistema Informativo Geografico Strumento computerizzato che permette di posizionare ed analizzare oggetti ed eventi che esistono e si verificano sulla

Dettagli

Informatica I per la. Fisica

Informatica I per la. Fisica Corso di Laurea in Fisica Informatica I per la Fisica Lezione: Software applicativo II Fogli elettronici e Data Base Software: software di sistema (BIOS) sistema operativo software applicativo ROM Dischi

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

RenderCAD S.r.l. Formazione

RenderCAD S.r.l. Formazione Corso Descrizione La durata di questo corso è complessivamente di ore 150 di cui 85 ore di teoria, 35 ore di pratica e 30 ore di stage in azienda. Nel nostro territorio esiste una richiesta di tale figura,

Dettagli

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management)

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management) Thea PDM Il PDM (Product Data Management) Nell'industria manifatturiera il PDM è un software per la raccolta ed organizzazione dei file nelle divere fasi di ideazione, progettazione, produzione ed obsolescenza

Dettagli

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Contenuti del Corso Riferimenti Regole del Corso Materiale Didattico Scheduling Esami Strumenti Software 16/01/2013 2 Contenuti

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

1. Hard Real Time Linux (Laurea VO o specialistica)

1. Hard Real Time Linux (Laurea VO o specialistica) 20/9/06 Elenco Tesi Disponibili Applied Research & Technology Dept. La Società MBDA La MBDA Italia è un azienda leader nella realizzazione di sistemi di difesa che con i suoi prodotti è in grado di soddisfare

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Alessandro.bardine@gmail.com alessandro.bardine@iet.unipi.it Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Le superfici e i modelli di elevazione digitale in genere possono essere rappresentati mediante le strutture raster Difetto delle strutture dati

Le superfici e i modelli di elevazione digitale in genere possono essere rappresentati mediante le strutture raster Difetto delle strutture dati Triangulated Irregular Network Le superfici e i modelli di elevazione digitale in genere possono essere rappresentati mediante le strutture raster Difetto delle strutture dati raster classiche: sono a

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

Dettagli

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

Tecniche Multimediali

Tecniche Multimediali Chiedersi se un computer possa pensare non è più interessante del chiedersi se un sottomarino possa nuotare Edsger Dijkstra (The threats to computing science) Tecniche Multimediali Corso di Laurea in «Informatica»

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

Dettagli

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

Dettagli

Configuratore di Prodotto Diapason

Configuratore di Prodotto Diapason Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Introduzione. Le origini di PHP. Cos è PHP?

Introduzione. Le origini di PHP. Cos è PHP? Introduzione Ecco a voi un altro libro sul linguaggio di scripting PHP, la cui peculiarità è data dal fatto che dedica la massima attenzione a materiali di alto livello e agli argomenti più evoluti e attuali.

Dettagli

Facoltà di Ingegneria

Facoltà di Ingegneria Università degli studi di Roma Tor Vergata Facoltà di Ingegneria Laurea in Ingegneria Informatica Creazione e animazione interattiva di grafica tridimensionale Relatore Ing. Francesco Martinelli Candidato

Dettagli

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

La Login in Prestito!!Disponbilità Tesi. Categorie di Progetti di Ingegneria del Software

La Login in Prestito!!Disponbilità Tesi. Categorie di Progetti di Ingegneria del Software Draft versione 1.1 Categorie di Progetti di Ingegneria del Software Tutti i temi Progettuali proposti rientrano in una delle seguenti categorie. 1. Temi sull'elaborazione di Dati Multimediali Temi su Audio,

Dettagli

VII meeting utenti italiani di GRASS Genova, 23-24 febbraio 2006 MapServer e servizi web: introduzione e prime verifiche

VII meeting utenti italiani di GRASS Genova, 23-24 febbraio 2006 MapServer e servizi web: introduzione e prime verifiche VII meeting utenti italiani di GRASS Genova, 23-24 febbraio 2006 MapServer e servizi web: introduzione e prime verifiche Maria Antonia Brovelli maria.brovelli@polimi.it Marco Negretti marco.negretti@polimi.it

Dettagli

GIS e Geo WEB: piattaforme e architetture. Docente: Cristoforo Abbattista email: abbattista@planetek.it

GIS e Geo WEB: piattaforme e architetture. Docente: Cristoforo Abbattista email: abbattista@planetek.it GIS e Geo WEB: piattaforme e architetture Docente: Cristoforo Abbattista email: abbattista@planetek.it III lezione Componenti e linguaggi GIS e Geo WEB: piattaforme e architetture Vediamo un po Demo PostgreSQL

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto INTRODUZIONE AI SISTEMI DI BASI

Dettagli

Presentazione progetto S.I.T. del Comune di Varese. Autore: Geom. Michele Giudici Responsabile Ufficio S.I.T.

Presentazione progetto S.I.T. del Comune di Varese. Autore: Geom. Michele Giudici Responsabile Ufficio S.I.T. Presentazione progetto S.I.T. del Comune di Varese Autore: Geom. Michele Giudici Responsabile Ufficio S.I.T. 1 Nel corso del 2008, l Ufficio S.I.T. ha presentato un progetto per la realizzazione del Sistema

Dettagli

Introduzione a Wordpress. Corso completo alla conoscenza e all uso del CMS Open Source WP (incontro 1/6)

Introduzione a Wordpress. Corso completo alla conoscenza e all uso del CMS Open Source WP (incontro 1/6) Introduzione a Wordpress Corso completo alla conoscenza e all uso del CMS Open Source WP (incontro 1/6) Indice Rilevazione aspettative e competenze in ingresso Patto formativo Presentazione di WP Premesse

Dettagli

GIS e Geo WEB: piattaforme e architetture. Docente: Cristoforo Abbattista email: abbattista@planetek.it

GIS e Geo WEB: piattaforme e architetture. Docente: Cristoforo Abbattista email: abbattista@planetek.it GIS e Geo WEB: piattaforme e architetture Docente: Cristoforo Abbattista email: abbattista@planetek.it V lezione Prodotti e tecnologie GIS e Geo WEB: piattaforme e architetture GIS e Geo WEB: piattaforme

Dettagli

La visualizzazione del layer informativo in un webgis open source: un sistema di gestione tensoriale del dato ambientale per p.mapper.

La visualizzazione del layer informativo in un webgis open source: un sistema di gestione tensoriale del dato ambientale per p.mapper. La visualizzazione del layer informativo in un webgis open source: un sistema di gestione tensoriale del dato ambientale per p.mapper. M. Comelli IFAC-CNR (Istituto di Fisica Applicata Nello Carrara del

Dettagli

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Gli elaboratori utilizzano memoria per Dati da elaborare Istruzioni eseguite dall elaboratore software differenti risoluzione problemi differenti Algoritmo

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

1 Contesto...3 2 La soluzione...4

1 Contesto...3 2 La soluzione...4 Indice 1 Contesto...3 2 La soluzione...4 2.1 CARATTERISTICHE FUNZIONALI... 5 2.2 PANNELLO DI AMMINISTRAZIONE... 9 2.3 TECNOLOGIA...11 2.4 ARCHITETTURA APPLICATIVA...12 businessup 2 di 12 1 Contesto Sempre

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Fondamenti di Informatica 7. Linguaggi di programmazione

Fondamenti di Informatica 7. Linguaggi di programmazione I linguaggi di alto livello Fondamenti di Informatica 7. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Sistemi Mobili e Wireless Android Introduzione alla piattaforma Sistemi Mobili e Wireless Android Introduzione alla piattaforma Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Cos'è Android?

Dettagli

Il SIT integrato della Comunità Montana Valtellina di Tirano.

Il SIT integrato della Comunità Montana Valtellina di Tirano. Il SIT integrato della Comunità Montana Valtellina di Tirano. Giovanni Di Trapani(*), Franco Guzzetti (**) e Paolo Viskanic (***) *) Comunità Montana Valtellina di Tirano, Via Maurizio Quadrio 11, I-23037

Dettagli

Modulo 1 Concetti generali 4 settimane

Modulo 1 Concetti generali 4 settimane OBIETTIVI SPECIFICI DEL PRIMO BIENNIO - CLASSE PRIMA settore ECONOMICO: NUCLEI FONDANTI, CONOSCENZE E COMPETENZE NB per ciascuno dei moduli di insegnamento/apprendimento viene indicato il tempo di trattazione

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

MASTER UNIVERSITARIO DI II LIVELLO

MASTER UNIVERSITARIO DI II LIVELLO In convenzione con Partner Tecnologico MASTER UNIVERSITARIO DI II LIVELLO Geoinformazione e Sistemi di Informazione Geografica a supporto dei processi di Gestione Sostenibile del Territorio e della Sicurezza

Dettagli

Utilizzo del SW aperto e libero nel Sistema Informativo Territoriale della Regione Sardegna

Utilizzo del SW aperto e libero nel Sistema Informativo Territoriale della Regione Sardegna Utilizzo del SW aperto e libero nel Sistema Informativo Territoriale della Regione Sardegna X meeting degli utenti italiani di GRASS e GFOSS Cagliari, 25-27 febbraio 2009 Il Sistema Informativo Territoriale

Dettagli

4 Il WebGIS del Progetto IFFI

4 Il WebGIS del Progetto IFFI 4 Il WebGIS del Progetto IFFI A. Trigila, C. Iadanza Conoscere le frane, la loro ubicazione e pericolosità, rappresenta un attività indispensabile per la realizzazione di nuove reti infrastrutturali (autostrade,

Dettagli

Telerilevamento e SIT Prof. Ing. Giuseppe Mussumeci

Telerilevamento e SIT Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2012-2013 Telerilevamento e SIT Prof. Ing. Giuseppe Mussumeci Introduzione ai GIS Le attività dell uomo...... hanno sempre un

Dettagli

PIANO DI LAVORO (a.s. 2014/2015) Prof.Andrea Luppichini Prof. Marco Fiorentinini DISCIPLINA Informatica

PIANO DI LAVORO (a.s. 2014/2015) Prof.Andrea Luppichini Prof. Marco Fiorentinini DISCIPLINA Informatica Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi) Via Firenze, 51 - Tel. 0587/213400 - Fax 0587/52742 http://www.itcgfermi.it E-mail: mail@itcgfermi.it PIANO DI LAVORO (a.s. 2014/2015)

Dettagli

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA Obiettivo Richiamare quello che non si può non sapere Fare alcune precisazioni terminologiche IL COMPUTER La struttura, i componenti

Dettagli

Progettazione e realizzazione di una GUI multi-piattaforma per applicazioni mediche in 2D

Progettazione e realizzazione di una GUI multi-piattaforma per applicazioni mediche in 2D UNIVERSITÀ DEGLI STUDI DI BOLOGNA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Scienze dell Informazione Progettazione e realizzazione di una GUI multi-piattaforma per applicazioni

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Il Geoportale della Provincia di Napoli (GPN): Geoportal e Metadati INSPIRE

Il Geoportale della Provincia di Napoli (GPN): Geoportal e Metadati INSPIRE Il Geoportale della Provincia di Napoli (GPN): Geoportal e Metadati INSPIRE Rocco Mari, Pietro d Amico,Paola Napolitano, Giuseppe Palma, Fortunato Sgariglia, Marco Soravia Provincia di Napoli - Direzione

Dettagli

FileMaker 12. Guida ODBC e JDBC

FileMaker 12. Guida ODBC e JDBC FileMaker 12 Guida ODBC e JDBC 2004 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker, Inc.

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli