PROGETTO E SVILUPPO DI UN SOFTWARE IN JAVA PER LA TELEREFERTAZIONE: SEZIONE DOTTORE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "PROGETTO E SVILUPPO DI UN SOFTWARE IN JAVA PER LA TELEREFERTAZIONE: SEZIONE DOTTORE"

Transcript

1 UNIVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica e dell Automazione PROGETTO E SVILUPPO DI UN SOFTWARE IN JAVA PER LA TELEREFERTAZIONE: SEZIONE DOTTORE Laureando: Luca Torelli Relatore: Prof. Aldo Franco Dragoni Correlatore: Prof. Paolo Puliti Anno accademico 2007/2008

2 Indice Indice... I Elenco delle figure... III Elenco dei listati... V Elenco delle tabelle... V Capitolo 1: I software utilizzati JAVA Il linguaggio Java La piattaforma Java GWT (Google Web Toolkit) Le estensioni GWT RPC (Remote Procedure Call) ALTRI SOFTWARE Eclipse Tomcat MySQL... Capitolo 2: I portali per la telemedicina IL CONCETTO TELEMEDICINA Obiettivi della telemedicina MIRO ON RAILS : RUBY ON RAILS MIRO ON RAILS : IL PORTALE Aspetti corretti del portale MIRO ON RAILS : ORGANIZZAZIONE DATABASE... Capitolo 3: Il portale MedTel : sezione dottore INTRODUZIONE LOGIN E REGISTRAZIONE Effettuazione del login AREA RISERVATA DEL DOTTORE Pannello HOME Pannello CLINICAL PROBLEMS Toolbar menù ~ I ~

3 3.4 CARTELLA CLINICA DEL PAZIENTE Aspetti generali Profilo paziente Anamnesi Problemi clinici del paziente... Capitolo 4: Conclusioni ASPETTI GENERALI CONSIDERAZIONI SUL GWT CONSIDERAZIONI SUL PORTALE CONSIDERAZIONI SUL TIROCINIO BIBLIOGRAFIA ~ II ~

4 Elenco delle figure Figura 1.1: Logo Java... Figura 1.2: Mappa delle eccezioni... Figura 1.3: Logo GWT... Figura 1.4: Logo GWT-Ext... Figura 1.5: Logo Eclipse... Figura 1.6: Logo Tomcat... Figura 1.7: Logo MySQL... Figura 2.1: Delocalizzazione del servizio telematico... Figura 2.2: Logo Ruby On Rails... Figura 2.3: Portale Miro On Rails... Figura 2.4: Portale Miro On Rails : area amministrazione... Figura 2.5: Portale MedTel : area amministrazione (1 e 2 livello)... Figura 2.6: Portale Miro On Rails : vista cartella clinica (dottore)... Figura 2.7: Portale MedTel : vista cartella clinica... Figura 2.8: Portale Miro On Rails : esito dell utilizzo della libreria API... Figura 2.9: Portale Miro On Rails : esito ricerca paziente positivo... Figura 2.10: Portale Miro On Rails : esito ricerca paziente negativo... Figura 2.11: Portale MedTel : inserimento nuovo utente... Figura 2.12: Portale Miro On Rails : visualizzazione referti e messaggi dei problemi clinici... Figura 2.13: Portale MedTel : visualizzazione problemi clinici... Figura 2.14: Portale Miro On Rails : inserimento referti e messaggi... Figura 2.15: Portale Miro On Rails : cartella clinica... Figura 2.16: Portale MedTel : menù con albero asincrono... Figura 3.1: di Login... Figura 3.2: Segnalazione dati mancanti nella pagina di Login... Figura 3.3: Segnalazione dati errati durante il login... Figura 3.4: Area riservata del dottore... Figura 3.5: Pannello Home... Figura 3.6: Pannello Clinical Problems... Figura 3.7: Proprietà della tabella ~ III ~

5 Figura 3.8: Toolbar menù... Figura 3.9: Cartella clinica del paziente (vista dal dottore)... Figura 3.10: Struttura del menù organizzato ad albero... Figura 3.11: Pannello Patient Profile... Figura 3.12: Pannello Patient Clinical Problems... Figura 3.13: Finestra aperta cliccando sul bottone New Message... Figura 3.14: Finestra aperta cliccando sul bottone Add Report... Figura 3.15: Finestra aperta cliccando sul bottone View Messages... Figura 3.16: Finestra aperta cliccando sul bottone View Reports... Figura 3.17: Finestra aperta cliccando sul bottone View Details Clinical Problem ~ IV ~

6 Elenco dei listati Listato 1.1: Host del progetto MedTel... Listato 1.2: Modulo del MedTel... Listato 3.1: Metodo per il login, lato server (LoginRMImpl.java)... Listato 3.2: Codice per aprire la tabella dei problemi clinici nella cartella clinica, lato client (EventsPatients.java)... Listato 3.3: Codice per aggiornare il pannello Clinical Problems, lato client (ClinicalFolder.java)... Listato 3.4: Metodo per caricare la tabella, lato server (EventsPatientRSImpl.java)... Listato 3.5: Metodo per caricare i dati, lato server (ModRegistrationRSImpl.java)... Listato 3.6: Metodo che salva le modifiche, lato server (ModRegistrationRSImpl.java)... Listato 3.7: Metodo per effettuare il log-out, lato server (UserAreaRSImpl.java)... Listato 3.8: Metodo per caricare dati nel menù a tendina, lato server (UserAreaRSImpl.java)... Listato 3.9: Codici per costruire la cartella clinica, lato client (ClinicalFolder.java)... Listato 3.10: Codice per aprire il pannello con la riga pre-selezionata, lato client (ViewVisitsEvent.java)... Listato 3.11: Metodo per salvare nuovi report o messaggi, lato server (Message_ReportRSImpl.java)... Listato 3.12: Metodo per salvare vedere report o messaggi, lato server (View_msg_reportRSImpl.java)... Listato 3.13: Metodo per caricare dati nel pannello, lato server (DetailsVisitRSImpl.java)... Listato 3.14: Metodo per caricare dati di un esame, lato server (DetailsVisitRSImpl.java)... Listato 3.15: Metodo per caricare la lista dei file, lato server (DetailsVisitRSImpl.java) Elenco delle tabelle Tabella 2.1: Elenco tabelle del database del MiroOnRails ~ V ~

7 Capitolo 1: I software utilizzati CAPITOLO 1: I software utilizzati quali sono cosa sono strutture del software impiegate 1

8 Capitolo 1: I software utilizzati 1.1 JAVA Figura 1.1: Logo Java Java è un linguaggio di programmazione, inizialmente chiamato Oak orientato agli oggetti, derivato dal C++ (e quindi indirettamente dal C) e creato da James Gosling e altri ingegneri di Sun Microsystems. Il gruppo iniziò a lavorare nel 1991 ma il nome fu successivamente cambiato in Java a causa di un problema di copyright (il linguaggio di programmazione Oak esisteva già nel 1991). Java fu annunciato ufficialmente il 23 maggio 1995 a SunWorld. La piattaforma di programmazione Java è fondata sul linguaggio stesso, sulla Java Virtual Machine (JVM) e sulle API. Java è un marchio registrato di Sun Microsystems. Il 13 novembre 2006 la Sun Microsystems ha rilasciato la sua implementazione del compilatore Java e della macchina virtuale sotto licenza GPL. L'8 maggio 2007 SUN ha rilasciato anche le librerie (tranne alcune componenti non di sua proprietà) sotto licenza GPL rendendo Java un linguaggio di programmazione la cui implementazione di riferimento è libera. Java fu creato per soddisfare quattro scopi: 1. essere orientato agli oggetti. 2. essere indipendente dalla piattaforma. 3. contenere strumenti e librerie per il networking. 4. essere progettato per eseguire codice da sorgenti remote in modo sicuro. Per facilitare il passaggio a questo linguaggio per i programmatori old-fashioned, legati in particolare a linguaggi come il C, la sintassi di base (strutture di controllo, operatori e così via) è stata mantenuta pressoché identica. Nel complesso, Java è sia un linguaggio di programmazione sia una piattaforma. Quando ci si riferisce a Java come piattaforma, bisogna pensare a due aspetti interconnessi tra loro: l architettura di ciò che ha cambiato il modo di intendere il software come si è fatto per anni, e come poi tale idea sia stata riutilizzata e abbia aperto la strada al nuovo millennio anche per quanto riguarda la produzione di software. 2

9 Capitolo 1: I software utilizzati La piattaforma Java fu uno dei primi sistemi a fornire un largo supporto per l'esecuzione del codice da sorgenti remote. Un applet Java è un particolare tipo di applicazione che può essere avviata all'interno del browser dell'utente, eseguendo codice scaricato da un server web remoto. Questo codice viene eseguito in un'area (sandbox) altamente ristretta, che protegge l'utente dalla possibilità che il codice sia malevolo o abbia un comportamento non desiderato; chi pubblica il codice può applicare un certificato che usa per firmare digitalmente le applet dichiarandole "sicure", dando loro il permesso di uscire dall'area ristretta e accedere al file system e al network, presumibilmente con l'approvazione e sotto il controllo dell'utente. In realtà gli applet non hanno avuto molta fortuna. Infatti, presuppone che il client in cui essi vengono eseguiti abbia installata la JRE (deve eseguire il codice dell'applet). Hanno avuto fortuna le applicazioni che prevedono il cosiddetto thinclient, cioè un client "leggero" che non ha bisogno di particolari strumenti per eseguire il codice remoto (a volte è necessario solo il browser). Rispetto alla tradizione dei linguaggi a oggetti da cui deriva (e in particolare rispetto al suo diretto progenitore, il C++), Java ha introdotto una serie di notevoli novità rispetto all'estensione della sua semantica. Fra le più significative si possono citare probabilmente la possibilità di costruire GUI (interfacce grafiche) con strumenti standard e non proprietari utilizzando i package java.awt e javax.swing (per il C++ e altri linguaggi analoghi solitamente le GUI non fanno parte del linguaggio, ma sono delegate a librerie esterne), la possibilità di creare applicazioni multi-thread, ovvero che svolgono in modo concorrente molteplici attività, e il supporto per la riflessione, ovvero la capacità di un programma di agire sulla propria struttura e di utilizzare classi caricate dinamicamente dall'esterno. Fra gli argomenti che depongono spesso a favore di Java nella scelta del linguaggio di implementazione di un progetto software moderno, inoltre, si deve certamente contare la vastità delle librerie standard di cui il linguaggio è dotato, e che in particolare contribuiscono a renderlo altamente integrabile con le altre tecnologie. Alcuni esempi di funzionalità di libreria di Java sono: accesso ai database tramite JDBC (Java Database Connectivity) e ai DBMS con driver ODBC (Open Database Connectivity) tramite il bridge JDBC-ODBC. manipolazione documenti XML. dialogo con piattaforme CORBA (Common Object Request Broker Architecture). potenti strumenti per la programmazione lato server nel contesto Web. 3

10 Capitolo 1: I software utilizzati supporto nativo per gran parte dei protocolli della famiglia IP, vedi ad esempio il Socket Java. supporto per le applicazioni multimediali, streaming audio e video IL LINGUAGGIO JAVA Java è un linguaggio di alto livello con innumerevoli qualità: semplice: può essere programmato senza la necessità di lunghi corsi di addestramento, i concetti fondamentali della tecnologia Java vengono appresi rapidamente così che i programmatori possano essere produttivi sin dall inizio. Object Oriented: il linguaggio è progettato per essere orientato agli oggetti da cima a fondo. Non è possibile in Java adottare stili di programmazione che non siano quelli OO (object oriented). Gli oggetti sono caratterizzati da delle proprietà (definite variabili o campi di istanza o di esemplare) e di metodi applicabili sugli oggetti stessi, che possono ad esempio modificarne lo stato o estrarne informazioni. I programmi scritti in Java possono essere unicamente orientati agli oggetti, di conseguenza tutto il codice deve essere necessariamente incluso in una classe. Sebbene Java possa operare sia su oggetti che su tipi di dati primitivi, è considerato un linguaggio ad oggetti puro, ovvero nel quale gli oggetti sono le entità di base del linguaggio, anziché essere costruiti partendo da costrutti ad un inferiore livello di astrazione. familiare: la sintassi Java è molto simile a quella del C++ e questo lo rende un linguaggio familiare, questo significa che i programmatori C++ possono migrare facilmente al linguaggio Java ed essere produttivi rapidamente. robusto e sicuro: il linguaggio è progettato per creare software altamente affidabile: fornisce un esaustivo controllo a tempo di compilazione seguito da un secondo livello di controlli a tempo d esecuzione. Il modello della gestione della memoria è estremamente semplice ed è progettato per operare in ambienti distribuiti in quanto la sicurezza viene messa in risalto come caratteristica di rilievo. indipendente dalla piattaforma e portabile: il linguaggio è progettato per supportare applicazioni che verranno distribuite sulle più eterogenee piattaforme senza la necessità di dover riscrivere il programma per i vari ambienti (l'esecuzione di programmi scritti in Java deve avere un comportamento simile su hardware diverso). Si dovrebbe essere in grado di scrivere il programma una volta e farlo 4

11 Capitolo 1: I software utilizzati eseguire dovunque. Questo è possibile con la compilazione del codice di Java in un linguaggio intermedio bytecode, basato su istruzioni semplificate che ricalcano il linguaggio macchina. Il bytecode verrà quindi eseguito da una macchina virtuale. Inoltre, vengono fornite librerie standardizzate per permettere l'accesso alle caratteristiche della macchina (come grafica e networking) in modo unificato. Il linguaggio Java include anche il supporto per i programmi con multithread, necessario per molte applicazioni che usano la rete. Si illustrano ora le fasi che attraversa un programma Java per essere portabile e indipendente dalla piattaforma: 1. il programma viene prima scritto nel linguaggio di programmazione Java (nome_file.java); 2. la compilazione fornisce come output un file (nome_file.class) che non è ancora il file eseguibile come avviene negli altri linguaggi di programmazione, questo perché il file in uscita dal compilatore è il bytecode del programma. 3. è il bytecode la vera innovazione e ciò che permette l indipendenza dalla piattaforma in quanto è lo stesso per ogni macchina. L esecuzione vera e propria avviene interpretando il bytecode. Questa operazione viene fatta dall interprete: da bytecode a codice macchina e quindi eseguito. Introducendo questo passaggio in più è possibile mandare in esecuzione lo stesso programma su qualsiasi macchina, l unica cosa da cambiare è l interprete per quella specifica macchina. Le prime implementazioni del linguaggio usavano una virtual machine che interpretava il bytecode per ottenere la massima portabilità, definita Architecture Neutral. Questa soluzione si è però rivelata poco efficiente, in quanto i programmi interpretati erano molto lenti. Per questo, tutte le implementazioni recenti di macchine virtuali Java hanno incorporato un JIT compiler, cioè un compilatore interno, che al momento del lancio traduce al volo il programma bytecode Java in un normale programma nel linguaggio macchina del computer ospite. Inoltre, questa ricompilazione è dinamica, cioè la virtual machine analizza costantemente il modello di esecuzione del codice (profiling), e ottimizza ulteriormente le parti più frequentemente eseguite, mentre il programma è in esecuzione. Questi accorgimenti, a prezzo di una piccola attesa in fase di lancio del programma, permettono di avere delle applicazioni Java decisamente più veloci e leggere. Tuttavia, 5

12 Capitolo 1: I software utilizzati anche così Java resta un linguaggio meno efficiente dei linguaggi compilati come il C++, scontando il fatto di possedere degli strati di astrazione in più, e di implementare una serie di automatismi, come il garbage collector, che se da un lato fanno risparmiare tempo ed errori in fase di sviluppo dei programmi, dall'altro consumano memoria e tempo di CPU in fase di esecuzione del programma finito. COMPONENTI Ci sono varie componenti che caratterizzano il linguaggio Java: OGGETTO: è un entità software dotata di uno stato e di un insieme di metodi che permettono all utente di interagire con esso. Lo stato di un oggetto è l insieme dei valori degli attributi. E una variabile di istanza il cui tipo è definito dall utente (la classe). CLASSE: può essere concreta o astratta e ognuna definisce un tipo di dato. E anche chiamata tipo definito dall utente/programmatore. In ogni classe sono presenti dei dati (chiamate variabili di istanza ) e dei metodi, il cui ruolo è quello di manipolare tali dati. La classe viene utilizzata per istanziare gli oggetti che operano insieme per implementare il sistema. INTERFACCIA: contiene un gruppo di metodi public abstract ma anche dati public final static. L'utilizzo di una interfaccia in Java consente di trattare in modo omogeneo tutti gli oggetti che forniscono un dato insieme di servizi, a prescindere dalla loro implementazione (e quindi dalla loro particolare classe di appartenenza). Dal punto di vista sintattico, una interfaccia Java consiste principalmente di una lista di dichiarazioni di metodi che tutte le classi che implementano l'interfaccia devono fornire. Un interfaccia è tipicamente utilizzata al posto di una classe abstract quando non c è alcuna implementazione di default da ereditare (ovvero nessuna variabile d istanza e nessun metodo di default). Per usare un interfaccia una classe deve specificare che la implementa, mediante la parola implements, e deve definire ogni metodo dell interfaccia con il numero di argomenti e il tipo di ritorno specificati nella definizione dell interfaccia. Se la classe lascia un metodo dell interfaccia non definito, diventa una classe abstract e deve essere dichiarata abstract nella prima riga della sua definizione. Lasciando un metodo dell interfaccia non definito in una classe che la implementa, in fase di compilazione un errore comunica che la classe deve essere dichiarata abstract. 6

13 Capitolo 1: I software utilizzati Legato al concetto di classe e interfaccia c è quello dell ereditarietà: questa è definita come la caratteristica per la quale un oggetto di classe B (detta classe derivata) che deriva da A (detta classe madre) possiede tutte le caratteristiche della classe madre. Ciò significa affermare che l oggetto B è anche un (is a) oggetto di tipo A. Una cosa importante da tenere in considerazione è che in Java una classe può ereditare al massimo da una sola classe, mediante il termine extends ; in altri linguaggi, come il C++, questa limitazione non esiste. Per arginare questo problema, in Java è stato introdotto il concetto di interfaccia. Attraverso l utilizzo delle interfacce una classe può assumere diversi comportamenti: ciò che accade, in buona sostanza, con l ereditarietà multipla. Ecco, quindi, che una classe, assumendo i comportamenti di più interfacce, può essere vista come una particolare istanza di quelle interfacce. Tutte le classi Java hanno come classe madre (chiamata anche superclasse) all origine la classe Object. Questo significa che automaticamente quando scriviamo una classe essa deriva (senza doverlo specificare) da Object. Con questo espediente è possibile, quindi, parlare genericamente di un qualsiasi Object per riferirsi ad un oggetto di classe qualunque. Legata all ereditarietà ci sono due importanti caratteristiche del Java, l overloading e l overriding: il primo significa, in generale, dotare una classe di metodi aventi stesso nome ma con parametri differenti mentre il secondo significa semplicemente riscrivere il metodo coinvolto all interno della classe derivata, evitando di manomettere la classe base (interviene in questo caso il concetto di polimorfismo, ovvero l'attitudine di un oggetto a mostrare più implementazioni per una singola funzionalità). ECCEZIONI E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire un eccezione in Java, imparando ad utilizzare cinque semplici parole chiave: try, catch, finally, throw e throws. Sarà anche possibile creare eccezioni personalizzate e decidere non solo come, ma anche in quale parte del codice gestirle, grazie ad un meccanismo di propagazione estremamente potente. Questo concetto è implementato nella libreria Java mediante la classe Exception e le sue sottoclassi. Un esempio di eccezione che potrebbe verificarsi all interno di un programma è quella relativo ad un divisione tra due variabili numeriche nella quale la variabile divisore ha valore 0. Come è noto infatti, tale operazione non è fattibile. È invece possibile definire un errore come una situazione imprevista non dipendente da un errore commesso dallo sviluppatore. A differenza delle eccezioni quindi, gli errori non 7

14 Capitolo 1: I software utilizzati sono gestibili. Questo concetto è implementato nella libreria Java mediante la classe Error e le sue sottoclassi. Un esempio di errore che potrebbe causare un programma è quello relativo alla terminazione delle risorse di memoria. Ovviamente, questa condizione non è gestibile. Nella libreria standard di Java, esiste una gerarchia di classi che mette in relazione, la classe Exception e la classe Error. Infatti, entrambe queste classi estendono la superclasse Throwable. Un ulteriore categorizzazione delle eccezioni, è data dalla divisione delle eccezioni in checked ed unchecked exception. Ci si riferisce alle RuntimeException (e le sue sottoclassi) come unchecked exception. Tutte le altre eccezioni (ovvero tutte quelle che non derivano da RuntimeException), vengono dette checked exception. Se si utilizza un metodo che lancia una checked exception senza gestirla da qualche parte, la compilazione non andrà a buon fine. Da qui il termine checked exception (in italiano eccezioni verificate ). Non bisogna fare confusione tra il concetto di errore (problema che un programma non può risolvere) e di eccezione (problema non critico gestibile): il fatto che sia la classe Exception sia la classe Error, estendano una classe che si chiama lanciabile (Throwable), è dovuto al meccanismo con cui la Java Virtual Machine reagisce quando si imbatte in una eccezione-errore. Infatti, se il nostro programma genera un eccezione durante il runtime, la JVM istanzia un oggetto dalla classe eccezione relativa al problema, e lancia l eccezione appena istanziata (tramite la parola chiave throw). Se il nostro codice non cattura (tramite la parola chiave catch) l eccezione, il gestore automatico della JVM interromperà il programma generando in output informazioni dettagliate su ciò che è accaduto. 8

15 Capitolo 1: I software utilizzati Figura 1.2: Mappa delle Eccezioni LA PIATTAFORMA JAVA La piattaforma Java è una piattaforma solo software che gira in cima ad una piattaforma hardware di base che può essere un computer, una tv, un telefono cellulare, una smart card, ecc.. La piattaforma Java è composta da due blocchi: la Java Virtual Machine (JVM) e la Java Application Program Interface (API). La JVM è la base della piattaforma Java, mentre la Java API è una collezione di componenti software pronti all uso per lo svolgimento dei più disparati compiti. JAVA VIRTUAL MACHINE La JVM consiste di: class loader. un class verifier. l interprete Java. Il class loader carica il bytecode, sia dal programma Java (nome_file.class) che dalla Java API (a seconda degli import fatti nel programma), per l esecuzione da parte dell interprete Java. Subito dopo che la classe è caricata il class verifier controlla che il class file è un formato bytecode valido, che non superi i limiti superiori o inferiori dello stack; assicura 9

16 Capitolo 1: I software utilizzati che il bytecode non esegue aritmetica dei puntatori il che potrebbe potenzialmente portare ad una violazione di memoria. Se il class passa tutti questi controlli può essere eseguito dall interprete. L interprete può essere di varie forme: può essere un modulo software che interpreta il bytecode in una solo volta; potrebbe essere un compilatore JIT (Just In Time) che traduce il bytecode in codice nativo della macchina ospitante. L uso di un compilatore JIT aumenta le performance quasi al pari di una compilazione direttamente in codice nativo, è una soluzione molto ottimizzata che trova un ottimo compromesso tra velocità d esecuzione e portabilità del codice. La spettacolarità della JVM è che l interprete potrebbe essere anche implementato a livello hardware così che da eseguire il bytecode come codice nativo. Certamente a livello di prestazioni questa è la scelta migliore, ma come il lettore può facilmente dedurre la portabilità sarebbe di nuovo confinata a quelle macchine che implementino Java a livello hardware, anche se si continuerebbero ad avere tutti i vantaggi del linguaggio Java che abbiamo precedentemente analizzato. La piattaforma raggiunge performance superiori adottando uno schema nel quale l interprete può essere eseguito alla massima velocità senza la necessita di effettuare controlli a runtime, questo grazie, come visto antecedentemente, al class verifier che esegue tutti i controlli. La piattaforma è anche dotata di un Garbage Collector nel quale la memoria non più utilizzata da alcun oggetto viene rilasciata automaticamente al sistema. Il Garbage Collector viene eseguito in un thread a bassa priorità e grazie a questo la memoria con alta probabilità è sempre disponibile quando richiesta. JAVA API Data la vastità immensa di API circolanti si possono scrivere applicazioni di qualsiasi genere. A tal proposito Java è disponibile in tre scatole a seconda dell uso che se ne vuole fare. la J2SE (Java 2 Standard Edition), il nucleo di Java, che permette di scrivere un gran numero di applicazioni: applicazioni client e server di rete; applicazioni per accesso a database, applicazioni per il calcolo scientifico; ecc.. la J2EE (Java 2 Enterprise Edition) che permette di scrivere applicazioni distribuite. 10

17 Capitolo 1: I software utilizzati la J2ME (Java 2 Micro Edition) che permette di scrivere applicazioni per i terminali mobili e Infine per tutti quei dispositivi che stanno invadendo la nostra vita con poche risorse computazionali (come i telefoni cellulari). 11

18 Capitolo 1: I software utilizzati 1.2 GWT (Google Web Toolkit) Il Google Web Toolkit (GWT) è un framework di sviluppo per applicazioni AJAX rilasciato sotto licenza open source Apache 2.0. Il suo obiettivo è permettere allo sviluppatore di lavorare ad un livello di astrazione più alto rispetto a quello nativo di AJAX evitando di sprecare risorse scrivendo linee di codice HTML e Javascript da testare sui diversi browser. Attraverso il GWT è possibile sviluppare e fare il debug di applicazioni AJAX utilizzando semplicemente Java e gli usuali IDE (Eclipse, IntelliJ, NetBeans). Dal momento in cui si vuole passare al sistema di produzione sarà necessario invocare il compilatore GWT che trasformerà l'applicazione stessa in codice HTML e Javascript browser-compabitile. Il ciclo di sviluppo GWT è quindi il seguente: 1. si sviluppa e si fa il debug della propria applicazione Java attraverso i vari tool disponibili sul mercato utilizzando le diverse librerie GWT. 2. si utilizza il compilatore GWT da Java a Javascript per creare un insieme di file HTML e Javascript che possono essere piazzati in qualsiasi web server. 3. si esegue un test della piattaforma sul/sui browsers che la stessa dovrebbe supportare. GWT offre allo sviluppatore un insieme di componenti di interfaccia grafica che, assemblati, danno origine all'applicazione; tali componenti sono denominati Widget. Come in ogni framework per la gestione di interfaccia grafica esistono dei Panel che contengono i widget necessari per lavorare. La tecnologia Java offre diversi vantaggi nello sviluppo rispetto a Javascript poiché: Esiste un insieme molto ricco di tools di sviluppo (Eclipse, IntelliJ, JProfiler, JUnit). Figura 1.3: Logo GWT Java verifica staticamente i tipi di dato riducendo gli errori a run-time. Gli errori Javascript vengono evitati poiché il compilatore Java-to-Javascript di GWT conosce come non commetterli. 12

19 Capitolo 1: I software utilizzati Java è più vicino ai tool di progettazione Object Oriented rispetto a Javascript e l'applicazione sarà più comprensibile e mantenibile. LA MODALITA HOSTED E possibile spendere la maggior parte del tempo nello sviluppo dei siti lavorando in hosted mode: ciò significa interagire con l applicazione GWT senza che questa sia stata tradotta in Javascript. Ogni qualvolta si modifica, si manda in esecuzione e si esegue il debug delle applicazioni da una ambiente di sviluppo integrato Java (IDE), si lavora in hosted mode. Quando si lavora in questo modo la JVM esegue il codice dell applicazione come bytecode Java compilato permettendo, di gran lunga, uno sviluppo più veloce dell applicazione stessa. LA MODALITA WEB Un aspetto particolare che caratterizza il GWT è il suo impiego in modalità Web (ovvero la possibilità di accedere ad un applicazione da un normale browser): quando un applicazione viene lanciata in questa modalità, gira completamente in Javascript e non necessita di nessun plug-in per i vari browser o della JVM. LA PAGINA HOST Ogni pagina HTML può includere un codice creato con il GWT (pagina host). La struttura è stata progettata per rendere più facile l aggiunta di funzionalità del GWT ad applicazioni web già esistenti con solo piccole modifiche. Nel progetto MedTel la pagina host è la seguente: <html> <head> <!-- --> <!-- Any title is fine --> <!-- --> <title>starter Miro</title> <!-- --> <!-- The module reference below is the link --> <!-- between html and your Web Toolkit module --> <!-- --> 13

20 Capitolo 1: I software utilizzati <metaname='gwt:module'content='com.uni.mirongwt.starter'/> <!-- --> <!-- Link CSS file --> <!-- --> <link type="text/css" rel='stylesheet' href='starter.css'/> <link rel="stylesheet" type="text/css" href="js/ext/resources/css/extall.css" /> <link rel="stylesheet" type="text/css" href="js/ext/resources/css/xthemegray.css" /> <script type="text/javascript" src="js/ext/adapter/yui/yui-utilities.js"> </script> <script type="text/javascript" src="js/ext/adapter/yui/ext-yui-adapter.js"> </script> <script type="text/javascript" src="js/ext/ext-all.js"> </script> </head> <!-- --> <!-- The body can have arbitrary html, or --> <!-- we leave the body empty because we want --> <!-- to create a completely dynamic ui --> <!-- --> <body> <!-- --> <!-- This script is required bootstrap stuff. --> <!-- You can put it in the HEAD, but startup --> <!-- is slightly faster if you include it here. --> <!-- --> <script language="javascript" src="com.uni.mirongwt.starter.nocache.js"> </script> 14

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

JUG Ancona Italy. Google Web Toolkit. Giovanni Baleani Programmatore Java. Filippetti S.r.l.

JUG Ancona Italy. Google Web Toolkit. Giovanni Baleani Programmatore Java. Filippetti S.r.l. JUG Ancona Italy Google Web Toolkit Giovanni Baleani Programmatore Java Filippetti S.r.l. AJAX e GWT - AJAX: Tecnologia emergente, tra le prime applicazione ajax ci sono proprio gmail e google calendar.

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

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire

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

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

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II PROF. G. BONGIOVANNI 0) INTRODUZIONE AL LINGUAGGIO JAVA PER PROGRAMMATORI C++...2 0.1) Caratteristiche principali... 2 0.1.1)

Dettagli

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

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

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

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

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

Dettagli

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET 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 ai database

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

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

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

Capitolo 1 Introduzione a Gambas

Capitolo 1 Introduzione a Gambas Capitolo 1 Introduzione a Gambas Gambas è stato creato inizialmente da Benoit Minisini, un residente della periferia di Parigi. Secondo Benoit, Gambas è un linguaggio Basic con estensioni per la programmazione

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

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

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

Programmazione di sistemi distribuiti

Programmazione di sistemi distribuiti Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti

Dettagli

2 - Introduzione al linguaggio Java

2 - Introduzione al linguaggio Java 2 - Introduzione al linguaggio Java Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

Programmazione in ambiente

Programmazione in ambiente Università Politecnica delle Marche Dipartimento di Ingegneria dell Informazione Programmazione in ambiente Android Laura Montanini - laura.montanini@univpm.it Corso di Tecnologie per le TLC 2013-2014

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

Dettagli

Il linguaggio di programmazione JAVA

Il linguaggio di programmazione JAVA Introduzione a JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

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

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA Elaborato di Tecnologie del Software per Internet JMSWEB 2 SISTEMA PER LO SCAMBIO DI MESSAGGI TRA APPLICAZIONI

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

aggiunge del testo nella parte finale del tag, in questo caso la stringa da controllare.

aggiunge del testo nella parte finale del tag, in questo caso la stringa da controllare. Capitolo 6 jquery Negli ultimi anni è stata rilasciata una mole incalcolabile di framework JavaScript, più o meno completi, realizzati per supportare nel miglior modo possibile lo sviluppatore web aiutandolo

Dettagli

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Sommario Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Introduzione.................................................................................. 1 SOAP........................................................................................

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

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

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

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Informatica. Terzo anno Prof. A. Longheu

Informatica. Terzo anno Prof. A. Longheu Informatica Terzo anno Prof. A. Longheu INTRODUZIONE AL LINGUAGGIO JAVA Originariamente, il progetto che avrebbe portato al linguaggio Java era noto come progetto Green Nome del progetto Sun con l obiettivo

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

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD Introduzione alla programmazione Java Dott. Ing. M. Banci, PhD Obiettivi del corso Creare, compilare, e eseguire programmi Java Tipi di dato primitivi Flusso di controllo Java Metodi Arrays Introduzione

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 27 Marzo 2012 Architetture Architetture Web Protocolli di Comunicazione Il Client Side

Dettagli

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE. Relazione elaborato di progettazione e produzione multimediale

UNIVERSITÀ DEGLI STUDI DI FIRENZE. Relazione elaborato di progettazione e produzione multimediale UNIVERSITÀ DEGLI STUDI DI FIRENZE Relazione elaborato di progettazione e produzione multimediale AllPainters.Net SISTEMA PER LA GENERAZIONE DI SITI GRATUITI PER PITTORI Autori: - Bandini Roberto - Ercoli

Dettagli

RMI: metodi equals e hashcode

RMI: metodi equals e hashcode RMI: metodi equals e hashcode Per verificare se due oggetti remoti contengono gli stessi dati, la chiamata indirizzata al metodo equals() avrebbe bisogno di contattare i server dove si trovano gli oggetti

Dettagli

Panoramica: che cosa è necessario

Panoramica: che cosa è necessario Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo

Dettagli

Introduzione al linguaggio Java. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++.

Introduzione al linguaggio Java. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++. Introduzione al linguaggio Java Cosa c è di nuovo in Java? Java ed Internet. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++. Dove trovare informazioni?

Dettagli

Integrazione di Sistemi Informativi Sanitari attraverso l uso di Middleware Web Services

Integrazione di Sistemi Informativi Sanitari attraverso l uso di Middleware Web Services Consiglio Nazionale delle Ricerche Istituto di Calcolo e Reti ad Alte Prestazioni Integrazione di Sistemi Informativi Sanitari attraverso l uso di Middleware Web Services I. Marra M. Ciampi RT-ICAR-NA-06-04

Dettagli

WEB SERVER EMBEDDED PER APPLICAZIONI DI DOMOTICA. Fig. 1 - Architettura di un web server embedded

WEB SERVER EMBEDDED PER APPLICAZIONI DI DOMOTICA. Fig. 1 - Architettura di un web server embedded WEB SERVER EMBEDDED PER APPLICAZIONI DI Cristian Randieri Per far fronte alle esigenze di sviluppatori che intendono gestire applicazioni professionali per la domotica e la home building automation sfruttando

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

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

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

Dettagli

SCUOLA POLITECNICA. 1 semestre Facoltativa Voto in trentesimi

SCUOLA POLITECNICA. 1 semestre Facoltativa Voto in trentesimi SCUOLA ANNO ACCADEMICO OFFERTA 2015/2016 ANNO ACCADEMICO EROGAZIONE 2017/2018 CORSO DILAUREA INSEGNAMENTO TIPO DI ATTIVITA' AMBITO CODICE INSEGNAMENTO 18033 SETTORI SCIENTIFICO-DISCIPLINARI SCUOLA POLITECNICA

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

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved WEB TECHNOLOGY Il web connette LE persone Indice «Il Web non si limita a collegare macchine, ma connette delle persone» Il Www, Client e Web Server pagina 3-4 - 5 CMS e template pagina 6-7-8 Tim Berners-Lee

Dettagli

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Ivan Scagnetto Dipartimento di Matematica e Informatica http://www.dimi.uniud.it/scagnett scagnett@dimi.uniud.it Laboratorio di Tecnologie Lato

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

PROGETTO LAUREE SCIENTIFICHE

PROGETTO LAUREE SCIENTIFICHE 1 PROGETTO LAUREE SCIENTIFICHE Write once, write everywhere è il motto dei progettisti del linguaggio java. Infatti questo linguaggio è il risultato dell esigenza di programmare per quello che si può chiamare

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

Content Management Systems

Content Management Systems Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce

Dettagli

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

UNIVERSITA POLITECNICA DELLE MARCHE FACOLTA DI INGEGNERIA

UNIVERSITA POLITECNICA DELLE MARCHE FACOLTA DI INGEGNERIA UNIVERSITA POLITECNICA DELLE MARCHE FACOLTA DI INGEGNERIA Corso di Laurea in Ingegneria Informatica e dell'automazione Dipartimento di Elettronica, Intelligenza Artificiale e Telecomunicazioni PROGETTO

Dettagli

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo tesi di laurea Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo Anno Accademico 2009/2010 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Catello di

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli 4 Un primo programma Java Introduzione alla programmazione in Java class Program1 { System.out.println("Benvenuti al corso"); 1 5 Programmi e mondo reale Programmare ad oggetti Il codice di un programma

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

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

Le scelte tecnologiche di RUP System

Le scelte tecnologiche di RUP System Cremona 22 novembre 2007 Le scelte tecnologiche di System - Metarete Linguaggio di programmazione Linguaggio di programmazione: Java Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

MetaMAG METAMAG 1 IL PRODOTTO

MetaMAG METAMAG 1 IL PRODOTTO METAMAG 1 IL PRODOTTO Metamag è un prodotto che permette l acquisizione, l importazione, l analisi e la catalogazione di oggetti digitali per materiale documentale (quali immagini oppure file di testo

Dettagli

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Ivan Scagnetto Dipartimento di Matematica e Informatica http://www.dimi.uniud.it/scagnett scagnett@dimi.uniud.it Laboratorio di Tecnologie Lato

Dettagli

Introduzione alla programmazione in Java

Introduzione alla programmazione in Java Introduzione alla programmazione in Java 1 Programmare ad oggetti La programmazione come attività di creazione di modelli. I concetti di classe, oggetto e scambio di messaggi. Un primo esempio di programma

Dettagli

BANCA VIRTUALE/1 tecnologie dell informazione della comunicazione

BANCA VIRTUALE/1 tecnologie dell informazione della comunicazione BANCA VIRTUALE/1 Il termine indica un entità finanziaria che vende servizi finanziari alla clientela tramite le tecnologie dell informazione e della comunicazione, senza ricorrere al personale di filiale

Dettagli

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

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

Il Provvedimento del Garante

Il Provvedimento del Garante Il Provvedimento del Garante Il provvedimento del Garante per la Protezione dei dati personali relativo agli Amministratori di Sistema (AdS) Misure e accorgimenti prescritti ai titolari dei trattamenti

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

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

Primi passi con Apache Tomcat. L application server dell Apache group

Primi passi con Apache Tomcat. L application server dell Apache group Primi passi con Apache Tomcat L application server dell Apache group 2 J2EE Direttive Sun Microsystem Che cos è un application server EJB Maggiori application server open source 3 Tomcat Open Source e

Dettagli

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

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

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Enterprise Edi.on Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Web Services Web Services: SOAP vs. RESTful 2 diversi.pi di Web Services I Web Services SOAP sono quelli classici Si basano

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

Dettagli

APPENDICE A Servlet e Java Server Page

APPENDICE A Servlet e Java Server Page APPENDICE A Servlet e Java Server Page A.1 Cosa è una Servlet e come funziona Una servlet è un particolare tipo di applicazione Java, in grado di essere eseguita all'interno di un web server e di estenderne

Dettagli