UN SISTEMA PER LA PUBBLICAZIONE AUTOMATICA VIA WEB DI VIDEOLEZIONI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UN SISTEMA PER LA PUBBLICAZIONE AUTOMATICA VIA WEB DI VIDEOLEZIONI"

Transcript

1 UNIVERSITÁ DEGLI STUDI DI TRENTO Facoltá di Scienze Matematiche, Fisiche e Naturali Corso di Laurea (triennale) in Informatica Elaborato finale UN SISTEMA PER LA PUBBLICAZIONE AUTOMATICA VIA WEB DI VIDEOLEZIONI Relatore: Prof. Marco Ronchetti Laureando: Mattia Colombari Anno Accademico

2

3 Indice 1 Introduzione Premessa Il progetto LODE Un applicazione Web per LODE Architettura Java e la grafica Swing I comandi esterni Il processo di compressione in LODE Web VLC (VideoLAN Client) XML Serializzazione e deserializzazione XML Applicazione Web Le web-application Il server web Tomcat Java 2 Enterprise Edition JSP vs Servlet Tag cloud Creazione dinamica di archivi i

4 INDICE 3 Analisi dei requisiti Introduzione Requisiti funzionali Requisiti non-funzionali Use case diagram Progettazione dell applicazione Introduzione Le classi dell applicazione Il funzionamento: processo di creazione Manuale d uso Premessa Scopo del manuale Struttura dell applicazione Installazione e configurazione Requisiti per l utilizzo Compatibilitá sistema operativo L applicazione web: requisiti Configurazione web Funzionalitá Creazione dell applicazione web Modifica dell applicazione web Uso dell editor di Cascading Style Sheet Uso dell applicazione web Conclusioni 89 Bibliografia 93 1

5

6 Capitolo 1 Introduzione 3

7 Introduzione 1.1 Premessa Lo scopo della presente tesi di laurea è stato quello creare un applicazione, affiancata al progetto LODE, che renda possibile la creazione di un sito per la pubblicazione via web delle videolezioni, offerte dai vari corsi universitari. Questo lavoro si propone di fornire uno strumento utile per semplificare il compito dell operatore e gestore del corso e di rendere più fruibile l accesso al materiale multimediale delle lezioni. 1.2 Il progetto LODE LODE (Lectures On DEmand) è nato come progetto di sviluppo di un sistema per la digitalizzazione delle lezioni in ambito universitario, tramite la videoregistrazione e l acquisizione di materiale digitale. Esiste un progetto, epresence, sviluppato presso il Knowledge Media Design Istitute (KMDI) dell Università di Toronto dai professori Ron Baecker e Gale More, che permette la divulgazione via rete di seminari e conferenze. Sperimentando questo sistema, presso il Dipartimento di Informatica e Telecomunicazioni, si sono evidenziati dei limiti nel suo utilizzo, per questo motivo si è pensato di sviluppare una nuova architettura: LODE che grazie alla sua interfaccia user-friendly e a un maggior livello di automazione, risulta essere più accessibile e performante, sia riguardo i costi gestionali, sia per semplificare il lavoro dell operatore. LODE permette a qualsiasi studente che abbia una connessione internet, di seguire le lezioni stando comodamente seduto a casa. È stato pensato come aiuto ai molti discenti che non hanno la possibilità di essere fisicamente presenti alle lezioni o che hanno bisogno di uno strumento compensativo per rivedere gli argomenti trattati durante le lezioni universitarie. 4

8 1.2 Il progetto LODE Le varie lezioni possono essere navigate interattivamente grazie a una serie di strumenti che permettono di usare al meglio le funzionalità offerte. LODE prevede: L acquisizione e la registrazione dei video delle lezioni. La conversione dei filmati registrati in un formato più idoneo alla distribuzione. La conversione in immagini delle presentazioni, per una facile visualizzazione. L accesso alle presentazioni in formato PowerPoint. La possibilità, da parte del docente, di aggiungere nuovo materiale alle lezioni. È possibile accedere a questo materiale da una semplice pagina HTML visualizzabile tramite un browser che disponga di determinati plug-in. Inizialmente, nella prima versione di LODE, la pagina web, per accedere al materiale delle lezioni, utilizzava i linguaggi di programmazione javascript e java, richiedendo una particolare configurazione del browser e l installazione dei plug-in java e quicktime. Prevedeva inoltre una pagina introduttiva nella quale era possibile effettuare un test di compatibilità con il proprio browser prima di utilizzare correttamente il servizio. Questa prima versione, non compatibile con alcuni browser, è stata abbandonata introducendo una nuova pagina dalla complessità ridotta. Ora, infatti, la visualizzazione dei contenuti di una lezione è gestita da una semplice pagina HTML con poche righe di codice e che fa riferimento a un oggetto scritto in Flash. La struttura è quindi definita nel file flash, il quale si affida ad altri file (XML) per estrapolare i dati necessari alla visualizzazione dei contenuti. 5

9 Introduzione Flash è un linguaggio di programmazione che permette di creare animazioni multimediali inserendo al loro interno video, immagini, audio ecc. L utilizzo di oggetti in formato Flash (estensione.swf), creati con l omonimo programma, rappresenta uno standard per la creazione di contenuti interattivi. Quasi la totalità dei browser in circolazione supporta i plug-in per questo formato. In questo modo vengono eliminati i problemi di compatibilità della versione precedente. Nella seguente immagine è mostrata l interfaccia di LODE (Figura 1.1). Figura 1.1: Interfaccia di LODE Questa pagina web (index.html) offre all utente: La possibilità di visualizzare il video della lezione. La possibilità di seguire un eventuale presentazione di slides integrata al video. 6

10 1.3 Un applicazione Web per LODE L accesso a informazioni sulla lezione e sul corso. Una facile navigazione mediante pulsanti e una time-line indicizzata. 1.3 Un applicazione Web per LODE Quello che il progetto LODE non ha ancora implementato è un sistema per la pubblicazione automatica via web delle video-lezioni. Un sistema che crei e gestisca un applicazione web per la fruizione dei video e del materiale di un corso. Fino ad ora le pagine per la visualizzazione delle lezioni vengono integrate all interno di applicazioni web, scritte e aggiornate manualmente dal responsabile del corso. Il costo di queste operazioni risulta essere elevato sia in termini di tempo che di spazio, infatti l aggiunta di una nuova lezione, come si può ben pensare, comporta l intera modifica dell applicazione web, quindi: La modifica del codice della pagina web per la visualizzazione delle varie lezioni. La copia della cartella di distribuzione della lezione (prodotta da LODE contenente il materiale multimediale). La compressione, mediante opportuni formati (.zip,.rar), dei contenuti della lezione, per far si che siano facilmente scaricabili dagli utenti del sito. Considerando inoltre che un applicazione web ha bisogno di una continua manutenzione del proprio contenuto, soprattutto con l aggiunta di nuove lezioni, serviva un sistema che generasse in automatico un sito web, la cui struttura fosse uguale per tutti i corsi, pur lasciando un margine di personalizzazione al docente. 7

11 Introduzione Il progetto da me realizzato prende in considerazione le criticità di LO- DE e i bisogni di miglioramento del sistema. Il mio intento è stato quello di sviluppare un applicazione grafica che automatizzi e generi un sito web per LODE. Questa applicazione, per la generazione e la pubblicazione via web delle video-lezioni, prende il nome di LODE Web. L applicazione LODE Web, integrata con un corretto uso di LODE, fornisce al docente di un corso un potente strumento di facile utilizzo che riduce notevolmente i tempi di creazione e manutenzione del sito web. Inoltre fornisce al fruitore del sito un facile accesso ai contenuti multimediali con la possibilità di visualizzare tagcloud, note e informazioni. La realizzazione di questa web application è stata possibile grazie all esistenza di uno standard sulla produzione dei contenuti multimediali, indifferentemente dal tipo di corso e dalla tipologia delle lezioni videoregistrate. L applicazione LODE restituisce, dopo una serie di processi di elaborazione, una directory di output così formata (Figura 1.2): Acquisition Distribution COURSE.XML La directory Acquisition contiene le informazioni relative alle varie lezioni: il nome della lezione, il docente, la data di svolgimento, la durata del video, le informazioni temporali per legare le slides al video e molte altre. Le varie informazioni sono contenute in una serie di file XML all interno della directory. La directory Distribution contiene la parte multimediale delle lezioni, ossia i video e le slides. 8

12 1.3 Un applicazione Web per LODE Figura 1.2: Directory del corso Il file COURSE.XML contiene diverse informazioni sul corso come: il nome, l anno accademico di svolgimento del corso, i riferimenti alle cartelle delle lezioni e la lista dei docenti titolari del corso. LODE web acquisisce tutte queste informazioni e genera un applicazione distribuita web-based che può essere dinamica o un sito web statico HTML. La scelta tra queste due tipologie di web-application è a discrezione dell utente che dovrà tener conto dei prerequisiti richiesti. 9

13 Introduzione 10

14 Capitolo 2 Architettura 11

15 Architettura 2.1 Java e la grafica Swing L applicazione LODE Web è stata realizzata tramite le librerie Swing (Java) che permettono di creare applicazioni grafiche intuitive e di facile utilizzo. Swing è un Framework per Java che include una Interfaccia grafica (GUI) e dei widget: caselle di testo, pulsanti, pannelli e tabelle. I widget Swing forniscono un interfaccia grafica più sofisticata e funzionano allo stesso modo su tutte le piattaforme (su cui java gira), al contrario delle AWT (Abstract Window Toolkit) le quali sono legate al sistema grafico nativo del sistema operativo. In AWT, infatti, ogni componente grafico è controllato e renderizzato da un nativo specifico del sistema operativo, per questo vengono anche detti heavyweight components ( componenti pesanti ). Figura 2.1: AWT vs Swing La maggior parte delle API Swing sono un estensione complementare di AWT, quindi non vi è bisogno di allocare risorse native nel toolkit della GUI 12

16 2.1 Java e la grafica Swing del sistema operativo, questi componenti grafici vengono spesso descritti come lightweight components ( componenti leggeri ). Le caratteristiche principali di Swing sono: Ricca dotazione di interfacce grafiche. Piattaforma più robusta e testata. Minore dipendenza dalla piattaforma di base. Risultato coerente su tutte le piattaforme con la possibilità di programmare l aspetto grafico. Possibilità di utilizzare la gestione di eventi ereditati da AWT. Swing permette di modificare l ambientazione grafica offrendo un ambiente più familiare all utente, cambiando il look-and-feel (o L&F) dei vari componenti widget. Questa modifica può essere fatta basandosi su un L&F esistente o creandone uno da zero. I L&F disponibili sono: Metal (Specifico di Swing). Windows (Disponbile su Windows). Mac (Disponibile su Mac). Motif (X). Il vantaggio di questi componenti stà nell uniformità di visualizzazione tra svariate piattaforme e lo svantaggio è quello di una più lenta esecuzione. Grazie alla sua portabilità e alla leggerezza (Swing non necessita di usare i controlli nativi della GUI del sistema operativo per la rappresentazione) 13

17 Architettura Swing è stato ampiamente utilizzato nell applicazione LODE Web. Utilizzando queste librerie ho potuto creare un interfaccia grafica particolarmente usabile (o user-friendly). Con il termine usabilità si intente che un prodotto deve presentare le seguenti caratteristiche: Adeguatezza : l utente deve poter scegliere solamente gli input necessari per svolgere un determinato compito. Facilità di apprendimento : l utilizzo deve essere chiaro e intuitivo, integrando il programma con manuali utenti o istruzioni d uso (a loro volta chiari e comprensibili). Robustezza : l impatto dell errore deve essere inversamente proporzionale alla sua probabilità. 2.2 I comandi esterni Per comando esterno si intente l esecuzione di un istanza di un programma attraverso un processo del sistema operativo. Al processo vengono assegnate tutte le risorse del sistema operativo necessarie per l esecuzione del programma. Nell applicazione da me realizzata vengono utilizzati i comandi esterni per: la creazione di file compressi (archivi) delle lezioni, la creazione delle anteprime (preview) dei video e per copiare e eliminare file. L esecuzione di un comando di sistema, da un applicazione Java, è relativamente semplice. Esso implica l uso di due classi Java: la classe Runtime e la classe Process. Per poter eseguire un comando del sistema operativo viene utilizzato il metodo exec della classe Runtime, il quale verrà eseguito come un processo separato dal processo chiamante (padre). L esecuzione di questo 14

18 2.2 I comandi esterni Figura 2.2: Esecuzione di processi metodo restituisce un oggetto Process che dispone di diverse funzionalità per la gestione del sottoprocesso (figlio). Durante la sua esecuzione, attraverso l oggetto Process, è possibile monitorare il processo leggendo i messaggi di output e di errore utilizzando i metodi getinputstream e geterrorstream. Per poter avviare un processo di sistema con questo metodo la prima cosa da fare è specificare il comando che si vuole eseguire alla classe Runtime. Siccome non è possibile creare la propria istanza della classe Runtime, si utilizza il metodo getruntime per accedere al corrente ambiente di esecuzione (Runtime Enviroment), per poi invocare la exec, come si può vedere nell esempio seguente. 15

19 Architettura String comand = "... comando... " ; Process p = Runtime. getruntime ( ). exec ( comand ) ; Grazie alla classe System è possibile ottenere diverse proprietà del sistema attraverso il metodo getpropriety. Una di queste è il sistema operativo sul quale gira la nostra applicazione. Conoscendo il sistema operativo, infatti, siamo in grado di utilizzare comandi esterni adeguati all ambiente di esecuzione. Il codice per determinare il sistema operativo è il seguente: String os = System. getproperty ( " os. name" ) ; boolean WINDOWS = ( os. tolowercase ( ). indexof ( " windows " ) >=0); boolean MAC = ( os. tolowercase ( ). indexof ( "mac" ) >=0); boolean LINUX = ( os. tolowercase ( ). indexof ( " linux " ) >=0); A seconda dell ambiente dove viene eseguita, la nostra applicazione si comporterà in maniera differente: verranno utilizzati processi esterni o semplici istruzioni e metodi Java. L esecuzione di processi esterni presenta un vantaggio significativo: essendo processi eseguiti in parallelo al processo padre, siamo in grado di lanciarne più di uno contemporaneamente in modo da velocizzare il tempo di esecuzione. Nel nostro caso specifico, utilizzando Linux, vengono lanciati tre processi di creazione alla volta diminuendo notevolmente i tempi Il processo di compressione in LODE Web Se l utente lo richiede e se è stata scelta la creazione di un applicazione web statica, LODE Web può comprimere il materiale delle lezioni utilizzando uno dei formati di compressione più diffusi: lo ZIP. 16

20 2.3 VLC (VideoLAN Client) Lavorando sotto un sistema Gnu/Linux ho pensato di utilizzare il comando Unix Zip per la compressione dei file. In questo modo è possibile inserire tutti i file multimediali di una lezione all interno di un unico archivio, da integrare facilmente nell applicazione web per LODE. Se si utilizzano altri sistemi operativi, ad esempio Windows, si fa riferimento a metodi e funzioni scritte in java che hanno il compito di eseguire le stesse operazioni di compressione dei processi unix. L utilizzo di comandi esterni di sistema mi ha fornito un ottima soluzione per poter creare questi archivi. Per la creazione di un file ZIP viene lanciato uno script Unix parametrizzato, che ha il compito di comprimere la directory della lezione e copiare l archivio in un apposito spazio dell applicazione web. Per velocizzare il processo di creazione vengono eseguiti n processi in parallelo, ogni processo ha il compito di creare un archivio per una lezione, così facendo vengono abbassati i tempi di creazione dell applicazione web. 2.3 VLC (VideoLAN Client) VLC media player (chiamato anche VideoLAN Client) è un media player libero che supporta la maggior parte dei codec audio e video, svariati formati e vari protocolli di streaming. Questo media player è disponibile su varie piattaforme, infatti esistono versioni per GNU/Linux, Microsoft Windows, Mac OS X e molti altri. VLC è in grado di convertire files multimediali in diversi formati e permette di utilizzare diversi comandi per la modifica e la gestione di video. L applicazione LODE Web necessita che VLC sia installato sul proprio sistema operativo, questo perché viene utilizzato per la creazione di immagini di preview per i video delle lezioni. I formati dei video delle lezioni sono Flash Video (estensione.flv), forma- 17

21 Architettura to utilizzato per inviare video su internet usando Adobe Flash Player 1. Questi video sono visibili sulla maggior parte dei sistemi operativi grazie ad un ampia disponibilità di Adobe Flash Player e a programmi di terze parti come per l appunto VLC media player. Tutte le operazioni che VLC offre sono messe a disposizione dalla sua interfaccia grafica, tuttavia alcune operazioni complesse possono essere effettuate solo da riga di comando. In queste situazioni non è richiesta la visualizzazione dell interfaccia del player. L utilizzo di VLC da linea di comando ci permette di creare le preview dei video delle lezioni. VLC utilizza una struttura di tipo modulare gestita da un nucleo principale che ha il compito di monitorare la comunicazione tra i vari moduli e tutte le trasformazioni multimediali che essi gestiscono. È possibile avviare un processo VLC specificando una serie di parametri che vanno a comporre un nucleo di opzioni gestito da specifici moduli. Ogni modulo aggiunge nuove opzioni utilizzabili dall utente. Per poter creare un immagine di preview da un video viene utilizzato il seguente comando con le seguenti opzioni: GNU/Linux comand: v l c i n t f dummy no audio V image start time=? stop time=? image out r a t i o =4 image out format=jpg image out replace image out p r e f i x=snap video. f l v v l c : / / quit Microsoft Windows comand: C : / Programmi / VideoLAN /VLC/ v l c. exe i n t f dummy no audio V image 1 c Adobe Flash Player : 18

22 2.3 VLC (VideoLAN Client) start time? stop time? image out r a t i o 4 image out format jpg image out replace image out p r e f i x video. f l v v l c : / / quit snap Al termine di ogni comando verranno create tante directory quanti sono i video delle lezioni. Ogni directory avrà come nome il titolo della lezione e conterrà quattro preview estratte da ogni video. Successivamente, per poterle visualizzare nella nostra applicazione web, viene creato un file immagine GIF partendo dalle quattro immagini e utilizzando classi e librerie Java. Opzioni interfaccia (Interface modules) Queste opzioni permettono di scegliere l interfaccia o le interfacce VLC che si desiderano utilizzare (sia interfacce grafiche che di controllo). Nel nostro caso utilizziamo un interfaccia di tipo dummy che viene adoperata quando si vuole escludere la GUI dall esecuzione eseguendo solamente il processo da riga di comando. L uso corretto di questa opzione è il seguente: % v l c i n t f dummy vcd : / / } \ \ Integrandola con l opzione no-audio, che elimina la componente audio, si riesce ad avere un esecuzione in background completamente trasparente all utente. Opzioni per l esecuzione Tramite le opzioni start-time e stop-time è possibile specificare il tempo di inizio e di fine esecuzione del video. Questo deve essere tale in modo che il comando riesca ad estrarre almeno un fotogramma durante l esecuzione, ma 19

23 Architettura nello stesso tempo non deve essere eccessivo perché si andrebbe ad aumentare notevolmente il tempo totale di creazione delle preview. Per poter creare n immagini è necessario suddividere il video in n parti temporali, per ogni parte viene lanciato il comando descritto in precedenza con un tempo di esecuzione pari a due secondi. Così facendo verrà catturato un fotogramma per ogni esecuzione del comando. Opzioni per l acquisizione Queste opzioni vengono utilizzate per l acquisizione delle immagini dal video. Di seguito elencherò quelle che ho utilizzato e la loro descrizione: image-out-ratio =? : viene usata per specificare ogni quanti frame catturare l immagine dal video. image-out-format =? : viene utilizzata per specificare il formato dell immagine di output. image-out-prefix =? : permette di specificare il prefisso per il nome dell immagine, qualora l esecuzione crei più immagini il prefisso verrà affiancato da un progressivo. image-out-replace : ogni immagine creata va a sovrascrivere quella precedente, così facendo l esecuzione di un comando crea una sola immagine di preview. L istruzione vlc://quit viene utilizzata per terminare l esecuzione del processo VLC. 20

24 2.4 XML 2.4 XML XML (extensible Markup Language) è un metalinguaggio di markup, ovvero un linguaggio marcatore estendibile che permette di creare tag personalizzati e di definire altri linguaggi di markup. È composto da un insieme di regole sintattiche, dette specifiche, definite da W3C (Worl Wide Web Consortium), che vengono utilizzate per modellare la struttura di documenti e dati. Concretamente, un documento XML è un file testuale che contiene una serie di attributi, tag e testo. La sua struttura logica è caratterizzata da una gerarchia tra gli elementi che la compongono: ogni elemento rappresenta un componente logico del documento XML e può contenere altri elementi (sottoelementi) oppure delle informazioni testuali. Ogni elemento può avere associate ulteriori informazioni che ne descrivono le proprietà, chiamate attributi. Figura 2.3: Document tree, struttura gerarchica XML L organizzazione degli elementi segue un ordine gerarchico che può essere rappresentato in maniera arborea : un elemento principale, chiamato root element, o semplicemente radice, contiene gli altri elementi del documento in modo da formare una struttura ad albero, generalmente nota come 21

25 Architettura document tree (Figura 2.3). <?xml version ="1.0"?> < a r t i c o l o t i t o l o =" T i t o l o dell a r t i c o l o "> <paragrafo t i t o l o =" T i t o l o del primo paragrafo "> <testo > Blocco di t e s t o del primo paragrafo </ testo > <immagine f i l e ="immagine1. jpg " > </immagine> </ paragrafo > <paragrafo t i t o l o =" T i t o l o del secondo paragrafo "> <testo > Blocco di t e s t o del secondo paragrafo </ testo > <codice > Esempio di codice </ codice > </ paragrafo > </ a r t i c o l o > Serializzazione e deserializzazione XML Per serializzazione si intende: la possibilità di salvare dati in un formato tale da permettere in seguito di recuperarli con facilità. Si può parlare di serializzazione di dati in un database, in file binari, in file di testo, in flussi di memoria o anche in file XML. La serializzazione XML, essendo più flessibile, è più adatta al trattamento di dati in quantità tali da poter essere utilizzati da un applicazione reale, anche se richiede un controllo più accurato sulle modalità di scrittura e lettura delle informazioni contenute nei documenti. A differenza di altre tipologie, 22

26 2.4 XML con la serializzazione XML è possibile definire: lo schema, lo spazio dei nomi, i nome degli elementi e il tipo di rappresentazione dei dati. La serializzazione XML converte (serializza) le proprietà, i campi pubblici di un oggetto oppure i valori restituiti dai metodi, in un flusso XML e quindi in un formato seriale più idoneo per l archiviazione o il trasporto. Poiché XML è uno standard aperto, il flusso XML può essere elaborato da qualsiasi applicazione, in base alle esigenze, indipendentemente dalla piattaforma. Se la serializzazione trasforma un oggetto in un flusso XML, la deserializzazione è il processo inverso. Nella programmazione ad oggetti, deserializzare un oggetto significa ricostruirlo a partire dalla sua rappresentazione binaria ottenuta da un file, nel nostro caso un documento XML. Nell applicazione LODE Web viene utilizzato il processo di deserializzazione di file XML per poter accedere alle varie informazioni dei corsi e delle lezioni, indispensabili per il processo di creazione dell applicazione web. Ogni lezione dispone di una serie di file XML, memorizzati all interno della directory Acquisition, contenenti svariate informazioni gestionali e a scopo informativo. I file XML in questione sono i seguenti: data.xml : contiene alcune informazioni generali sulle slides e sulla lezioni come: il tempo di visualizzazione delle slides contenute nel video, il titolo delle slides, il percorso dell immagini delle slides, il titolo della lezione, il nome del corso, il professore, ecc. LECTURE.XML : contiene tutte le informazioni relative alla lezione : il titolo, la data, il numero progressivo, la home del corso, il professore, la lunghezza del video, ecc. SLIDES.XML : contiene i vari titoli e il testo delle slides. 23

27 Architettura TIMED_SLIDES.XML : contiene informazioni temporali per la visualizzazione delle slides durante l esecuzione del video della lezione. Per poter deserializzare queste informazioni in classi java ho utilizzato la libreria java SimpleXML 2 serializzation. Simple Xml è un framework per la serializzazione/deserializzazione di file XML in classi java che presenta queste principali caratteristiche: Semplicità di utilizzo: lo schema che viene utilizzato per fornire la serializzazione XML è semplice da usare e ruota attorno ad un unico oggetto (Persister) utilizzato per leggere e scrivere oggetti XML. Non è richiesta nessuna configurazione indipendentemente dalla complessità dello schema XML. L estrazione delle informazioni dagli oggetti XML può essere gestita e eseguita più rapidamente rispetto ad altri framework XML come DOM e SAX. I dati Xml vengono deserializzati in classi java facilmente leggibili. Tutti gli elementi e gli attributi hanno una struttura semplice che può essere facilmente creata da un comune editor di testo. Il processo di deserializzazione avviene nel seguente modo: 1. All oggetto Persister viene passata la classe e la fonte del documento XML, la classe rappresenta l oggetto serializzato. 2. L oggetto viene deserializzato usando il metodo read che ne produrrà un istanza. NB. Come si può notare non vi è nessuna necessità di esprimere il valore restituito dal metodo read. 2 c Simple XML 24

28 2.4 XML Nel codice seguente è mostrato come un file XML (example.xml) viene deserializzato in una classe java (Example.class): S e r i a l i z e r s e r i a l i z e r = new Persister ( ) ; File source = new File ( " example. xml" ) ; Example example = s e r i a l i z e r. read ( Example. class, source ) ; Qui di seguito un esempio dove viene mostrato il contenuto di un file XML e la classe java usata per la deserializzazione. Java (name=" root " ) public class Example (name=" message " ) private String text (name=" id " ) private int index ; public Example ( ) { super ( ) ; } public Example ( String text, int index ) { this. text = text ; this. index = index ; } public String getmessage ( ) { return text ; } public int getid ( ) { return index ; } } 25

29 Architettura XML code: <root id=" 123 "> <message> Example message < / message> < / root> 2.5 Applicazione Web Le web-application Per sua natura una web-application (webapp) può presentarsi con diverse strutture di organizzazione logiche, è possibile riconoscere una struttura tipica su tre livelli (applicazioni Three-Tier). Figura 2.4: Three-Tier architecture I tre livelli sono i seguenti: 1. Livello di presentazione (Client) : viene identificato dal web browser ed è associabile al terminale di fruizione, ossia rappresenta l interfac- 26

30 2.5 Applicazione Web cia utente dell applicazione e si occupa di acquisire dati e visualizzare risultati. 2. Livello intermedio (Application Server): è costituito dal motore applicativo, ossia il codice in un qualche linguaggio di sviluppo dinamico lato-server. Le elaborazioni che avvengono su questo livello generano i risultati richiesti dall utente. 3. Livello dati (Data Store) : è associabile all insieme dei servizi offerti dalle applicazioni indipendenti dal Web, come ad esempio un motore database, un sistema di gestione della posta elettronica, ecc. Il sistema da me realizzato permette di creare in maniera automatica un applicazione web. È possibile scegliere se creare un sito web statico (HTML) o un applicazione web con contenuti dinamici. La differenza tra queste due tipologie di applicazione sta proprio nel livello intermedio, ossia nel motore applicativo. Web-application statiche I siti web statici presentano contenuti di sola ed esclusiva lettura. Solitamente vengono aggiornati con una bassa frequenza e sono mantenuti da una o più persone che agiscono direttamente sul codice della pagina (tramite appositi editor web). Le pagine di un sito web statico risiedono tutte sullo stesso web server e la ramificazione in sottocartelle dell indirizzo corrisponde ad una uguale ramificazione nell hard disk dello stesso server. Il web server deve rispondere alle richieste del client e quindi permettere di visualizzare le pagine Web, svolgendo i seguenti compiti: Riconosce la richiesta. 27

31 Architettura Cerca la pagina richiesta se presente. Invia la pagina al browser client che la visualizzerà. Come si può ben capire un web server non presenta nessuna logica di controllo e per questo ha la capacità di gestire unicamente pagine statiche. Web-application dinamiche I siti web dinamici presentano invece contenuti composti dinamicamente, infatti, le pagine web vengono costruite da un programma che gira sul server grazie a particolari linguaggi di scripting come PHP, ASP, ASP.NET, invece che CGI, JSP/Java, ecc. Per realizzare queste applicazioni più complesse, dove è prevista un interattività con l utente, occorre uno strumento più evoluto che permetta di rispondere alle richieste dando una risposta in tempo reale. La maggior parte dei server web, per poter utilizzare applicazioni web dinamiche, dispongono di framework di sviluppo per il supporto dei linguaggi utilizzati nelle pagine, questi server prendono il nome di Application Server. Un Application server non si limita a rispondere alla richiesta dell utente, come avviene nelle pagine HTML, ma può eseguire algoritmi, fare calcoli, ricerche, memorizzare, ecc. utilizzando dati presenti su un database o su altre strutture di memorizzazione. Esistono numerose tecnologie che permettono l implementazione di Web server ed Application server. Una delle più diffuse è J2EE (Java 2 Enterprice Edition) che si avvale dei servizi di un Web server e un Application server altrettanto famosi e diffusi: Apache e Tomcat. 28

32 2.5 Applicazione Web Il server web Tomcat Esiste una gran quantità di application server, la scelta deve essere fatta tenendo conto dei linguaggi utilizzati per scrivere le pagine Web che compongono l applicazione. Nel nostro caso la scelta è ricaduta su Tomcat di Apache Software Foundation 3. Tomcat è un ottimo web container open source che fornisce una piattaforma per applicazioni web sviluppate attraverso il linguaggio Java. Oltre che alla funzionalità di web server tradizionale (offerta da Apache) implementa le specifiche JSP e Servlet di Sun Microsystems. Tomcat quindi è un Servlet Container ed un JSP Engine allo stesso tempo: un motore che è in grado di eseguire lato server applicazioni web basate sulla tecnologia J2EE e costituite da componenti Servlet e da pagine JSP. Figura 2.5: Tomcat standalone Tomcat è inoltre interamente scritto in java e può essere eseguito su una qualsiasi architettura su cui sia installata una JVM (Java Virtual Machine). 3 c The Apache Software Foundation 29

33 Architettura Java 2 Enterprise Edition Il linguaggio di programmazione usato nella mia applicazione web dinamica è Java, nello specifico J2EE (Java 2 Enterprise Edition), il quale raccoglie svariate tecnologie che facilitino lo sviluppo di software web based distribuito. Questa piattaforma di sviluppo ha avuto un enorme successo a livello aziendale e non solo, grazie al linguaggio object oriented java e a come, attraverso quest ultimo, la tecnologia è stata sviluppata. L architettura viene realizzata tramite una struttura tecnologica a livelli dove ogni livello implementa uno specifico servizio. I servizi implementati in J2EE sono: Tecnologia Web Application : tecnologie per la produzione di interfacce web dinamiche (Java Server Pages, XML, Java Server Faces, Custom tag ). Figura 2.6: Tecnologie Web Application Tecnologia Enterprise Application : tecnologie legate alla logica del business (Enterprise JavaBean, Jndi, JavaMail, etc). Tecnologia Web Services : le tecnologie utili allo sviluppo delle applicazioni orientate ai servizi. Tecnologia Management and Security : tecnologie per realizzare l accesso e lo scambio di informazioni tra macchine e servizi distribuiti. 30

34 2.5 Applicazione Web JSP vs Servlet J2EE mette a disposizione vari strumenti per la creazione di contenuti dinamici tra i quali : Servlet e JSP. Questi due servizi possono interagire tra di loro in varie maniere utilizzando altre componenti come gli EJB (Enterprise JavaBeans), JavaBeans o altro. JSP e Servlets sono diventate un potente meccanismo per scrivere applicazioni server di Internet o Intranet. Entrambe si basano e sfruttano la loro forza sull utilizzo di un linguaggio di programmazione come java che attribuisce a questi strumenti di sviluppo un elevato numero di vantaggi: robustezza, dinamicità e scalabilità vengono affiancati a una semplicità di sviluppo. Servlet Le Servlet sono oggetti java risiedenti sul server con lo scopo di offrire molte funzionalità. Questi oggetti sono utilizzati dai web server i quali mettono loro a disposizione un particolare ambiente di lavoro, detto container. Una Servlet ha la possibilità di accedere a tutte le risorse del sistema su cui risiede, questo permette di implementare diverse funzionalità sfruttando al massimo le potenzialità del sistema e del linguaggio ad oggetti java. Esistono diverse tipologie di Servlet che dipendono dal protocollo di comunicazione utilizzato; nella mia applicazione web vengono utilizzate le Http- Servlet presenti nel package javax.servlet.http. È possibile estendere la classe HttpServlet per creare servlet che comunicano con i client rispondendo dinamicamente alle loro richieste. L idea principale di una Servlet è quella di condividere un unico oggetto tra tutti i client che richiedono il servizio, evitando la creazione di più connessioni verso le sorgenti dati e l eliminazione delle stesse a fine servizio. Ad ogni connessione viene creato un thread che ha il compito di accedere ai dati, 31

35 Architettura favorendo un notevole risparmio di risorse e un conseguente aumento delle performance dell applicazione web (Figura 2.7). Figura 2.7: Ambiente di esecuzione Il paradigma client-server sul quale è basata una Servlet sfrutta i metodi degli oggetti: HttpServletRequest corrisponde alla richiesta effettuata dal client verso il server e HttpServletResponse che è la risposta che viene generata dalla Servlet. JSP Le JSP (Java Server Pages) sono semplici pagine web che, accanto al codice HTML, aggiungono codice Java permettendo di creare siti web con contenuti dinamici. Sono un evoluzione delle Servlet java e quindi ereditano i vantaggi della metodologia object oriented e la quasi totale portabilità multipiattaforma. Una semplice invocazione di una Servlet in una pagina HTML è differente dall uso di una pagina JSP: per il programmatore l uso di Java Server Pages consiste nell unione di codice HTML, componenti riusabili (JavaBeans), applicazioni remote (Servlets), codice java e script java-like (JavaScript). Quindi le JSP rappresentano una tecnologia per l unione di una 32

36 2.5 Applicazione Web serie di oggetti differenti tra loro ma che cooperano assieme per la creazione di contenuti dinamici. Nelle pagine JSP vengono utilizzati specifici tag di demarcazione per indicare l inizio e la fine del codice Java. Il contenuto dinamico è separato dalla parte di disegno dell interfaccia (HTML), quindi si potranno modificare le parti sviluppate in java lasciando inalterato il codice HTML e viceversa. Una Java Server Page può essere invocata utilizzando due metodi: La richiesta può essere effettuata direttamente a una pagina JSP che è in grado di elaborare i dati richiesti e restituire l output. La richiesta può essere filtrata da una Servlet che elabora i dati e richiama la pagina JSP che produrrà l output Tag cloud Nel corso degli anni le applicazioni web, in particolare le interfacce utente, sono cambiate radicalmente sia come rappresentazione che come raggruppamento delle informazioni. Si cerca sempre più di rappresentare le informazioni attraverso modelli più schematici e meno gerarchici, come poteva essere il modello a directory tipico delle prime applicazioni web. Le cosiddette applicazioni web 2.0 hanno introdotto dei modelli di comunicazione visuale che permettono all utente di fruire del servizio in maniera immediata e intuitiva. Un elemento che si sta sempre più diffondendo nelle applicazioni web è quello dei tags dove ad un elemento informativo può essere associata più di una categoria. Una tag cloud è un insieme di etichette (tag) dove ognuna ha una grandezza proporzionale al proprio peso che viene reso visivamente con l utilizzo di font di testo diversi. Una tag cloud fornisce all utente un elenco di qualificatori, un insieme di etichette che vengono attribuite a oggetti specifici all interno 33

37 Architettura dell applicazione Web. Nella maggior parte dei casi i tag sono veri e propri link e quindi forniscono anche un ottimo supporto per la navigazione. I vari tag sono definiti dagli utenti del sito, anche se esistono alcune applicazioni web dove è il redattore stesso che decide di taggare i contenuti con una serie di parole chiave. Nella mia applicazione web le tag clouds vengono utilizzate per individuare i concetti più frequenti che compaiono all interno del testo delle slides relative alle varie lezioni. In questo modo l utente può farsi un idea sull argomento della lezione e quali sono i concetti chiave. Per poter calcolare le occorrenze delle keyword (parole chiave nel testo) e di conseguenza generare una tag cloud mi sono avvalso di una libreria java apposita, OpenCloud, la quale viene utilizzata per la generazione e la gestione di nuvole di tag attraverso una serie di metodi e funzioni. Questa libreria è molto versatile e permette di generare insiemi di tag in maniera semplice e intuitiva, l utente non dovrà fare altro che inserire il testo e fissare una serie di parametri, utilizzati per controllare la struttura, ad esempio: il numero di tag e il tipo di ordinamento. Saranno i metodi della libreria che assoceranno un peso ad ogni tag in base alla sua frequenza all interno del testo restituendo una lista di tag pesata. È possibile inoltre gestire l aspetto grafico della nube di tag che può essere controllato grazie a istruzioni HTML e CSS. La mia applicazione web utilizza una tag cloud per ogni lezione che presenti delle slides. La tag cloud utilizzata è un oggetto in flash che permette di scorrere i vari tag, rappresentati sul perimetro di una sfera tridimensionale. A seconda del numero di occorrenze i vari tag assumeranno un font e una gradazione di colore differente. ES. : Le parole chiave (keyword) più presenti nelle slides saranno scritte più scure e con un carattere più grande.(figura 2.8) 34

38 2.5 Applicazione Web L oggetto flash viene integrato nell applicazione web attraverso codice javascript che ci permette di specificare diversi parametri come: i tag, il loro peso, i link per i tag e altri parametri grafici. Figura 2.8: Tag Cloud in Flash Creazione dinamica di archivi Per ogni lezione, indipendentemente dalla tipologia di applicazione web scelta dall utente, vengono creati degli archivi che contengono il materiale multimediale, in questo modo egli potrà scaricarli con facilità dal sito. Nell applicazione web statica gli archivi vengono generati durante la fase di creazione del sito (come ho spiegato nel paragrafo 2.2.1), invece gli archivi per l applicazione web dinamica vengono generati al momento della richiesta dall applicazione stessa. L applicazione web dinamica quindi crea dei file ZIP in maniera dinamica soddisfando le richieste dell utente: ogni volta che un 35

39 Architettura utente del sito richiede il download del materiale di una lezione, l applicazione web genera l archivio e lo copia in una directory temporanea. I successivi utenti che richiedono lo stesso file non dovranno attendere il processo di creazione perché l archivio sarà già disponibile per il download. Questo metodo permette un notevole risparmio di risorse, se si pensa che un video di una lezione raggiunge dimensioni nell ordine di centinaia di mega. Lo scheduler Cron4J Uno scheduler è un componente essenziale nei sistemi multitasking che permette di eseguire più processi (task) con-correntemente, specificando, attraverso delle regole, quando devono essere eseguiti. Il suo utilizzo è molto efficace e si basa su pochi ed intuitivi metodi che permettono di avviare i task mediante delle regole, espresse da stringhe e dette scheduling pattern. Per diminuire lo spazio occupato dall applicazione web ho utilizzato un metodo per avviare dei processi di pulizia dello spazio temporaneo contenente gli archivi. L eliminazione avviene ad intervalli regolari controllando la data di ultimo accesso. Per far questo mi sono servito dello scheduler Cron4J 4 (uno scheduler java molto simile a Cron per Unix) che ha il compito di avviare le operazioni di pulizia in momenti prefissati. L utilizzo di Cron4J prevede quattro fasi principali: 1. Si crea un istanza di Scheduler (Entità principale, istanza della classe it.sauronsoftware.cron4j.scheduler). Scheduler scheduler = new Scheduler ( ) ; 2. Si schedulano le azioni desiderate, ossia si specifica cosa lo scheduler deve eseguire e quando deve farlo. Il cosa può essere specificato trami- 4 Cron4J : 36

40 2.5 Applicazione Web te un istanza di java.lang.runnable, ossia utilizzando i thread di java. Il quando viene specificato servendosi degli scheduling pattern. 3. Si avvia lo scheduler. scheduler. s t a r t ( ) ; 4. Si arresta lo scheduler quando non è più necessario. scheduler. stop ( ) ; Per poter creare lo scheduler ho utilizzato gli eventi legati al servlet context, i trigger di questa classe di eventi avvengono contestualmente alle transizioni di stato del servlet context associato alla web application corrente. Nello specifico ho usato l interfaccia ServletContextListener, tramite la quale un oggetto listener riceve, a livello di servlet context, la notifica dei seguenti eventi: public void contextinitialized(javax.servlet.servletcontextevent sce) : notifica della creazione del servlet context e dell attivazione della web application corrente. public void contextdestroyed(javax.servlet.servletcontextevent sce) : notifica della prossima distruzione del servlet context corrente e dello shut down della relativa web application. Questo listener, dunque, è in grado di creare uno scheduler integrato nell applicazione web che viene avviato quando l applicazione viene attivata e stoppato quando essa viene chiusa. Questo scheduler viene anche registrato nell application context all interno di un attributo chiamato in base al valore della sua costante. context. setattribute ( Constants.SCHEDULER, scheduler ) ; 37

41 Architettura Scheduling pattern Un pattern di schedulazione (o scheduling pattern) è rappresentato da una stringa suddivisa in cinque parti, ognuna separata dalla successiva da una spaziatura. Ogni parte rappresenta dei sotto-pattern, partendo dal primo abbiamo i sotto-pattern per: minuti, ore, giorni del mese, mesi e giorni della settimana. Se non si vuole porre restrizioni specifiche sui sotto-pattern si può usare il carattere asterisco che, a seconda del contesto, sta a significare: tutti i minuti, tutte le ore, ecc. Esempio di scheduling pattern: * Mon : Questo pattern avvia un task, a cui è collegato, alle 13:00 del 12 del mese, solo se è lunedì. Eliminazione degli archivi L eliminazione degli archivi avviene attraverso un task lanciato dallo scheduler nei momenti specificati dai pattern e scelti dall utente. Questo task è un thread che ha il compito di eseguire un script unix parametrizzato per la pulizia della directory temporanea. Il codice dello script è il seguente: commandstring=" find $ { parray [ 0 ] } name. zip atime \$ { parray [ 1 ] } delete " echo $commandstring $commandstring Questo codice si basa sul comando unix find che ricerca file e directory nel file system che soddisfano i criteri specificati, elencandone i nomi o eseguendo un comando per i risultati trovati. È possibile specificare delle direttive che possono indicare i test da effettuare sul file o sulla directory in esame, oppure possono eseguire azioni o ancora modificare il comportamento di find. Le direttive utilizzate sono le seguenti: 38

42 2.5 Applicazione Web name modello : Il test viene superato se il nome del file o della directory soddisfa il modello specificato. Il modello è una stringa la cui sintassi deve rispettare il modello glob pattern (per come funziona la shell testuale occorre indicarlo tra apici singoli o doppi, oppure precedendo ogni metacarattere da una barra inversa). ES. : find. -name *.zip : elenca tutti i file con estensione zip presenti nella directory corrente. atime giorni : Supera il test se la data di ultimo accesso in lettura al file o directory corrisponde a quella odierna meno il numero di giorni specificati. Per indicare una qualunque data posteriore si può usare il prefisso + (es. +10). Per indicare una qualunque data anteriore si può usare il prefisso - (es. -4). ES. : find. -name *.zip -atime -3 : elenca tutti i file con estensione zip la cui data di ultimo accesso è anteriore a quella di tre giorni fa. Attraverso l opzione -delete è possibile eliminare tutti i file o le directory restituite dal comando find. 39

43 Architettura 40

44 Capitolo 3 Analisi dei requisiti 41

45 Analisi dei requisiti 3.1 Introduzione In questo capitolo viene discussa la progettazione architetturale dell applicazione LODE Web, definendo la struttura complessiva del sistema. Verranno trattati gli aspetti funzionali e strutturali dell applicazione e dei sui processi principali, secondo l ingegneria del software. Il primo passo di qualsiasi processo di sviluppo è la definizione dei requisiti: occorre avere le idee chiare sulle funzioni dell applicazione deve e sui ruoli degli attori che la utilizzano. 3.2 Requisiti funzionali I requisiti funzionali definiscono i servizi che il sistema deve offrire e il comportamento che deve avere a seguito di particolari inputs e situazioni. 1. Scelta della tipologia di applicazione web Il sistema deve offrire all utente la possibilità di scegliere la tipologia di applicazione web (statica o dinamica). 2. Creare pagine per la fruizione delle lezioni Il sistema deve creare un applicazione web semplice e intuitiva, che possa rendere disponibile tutto il materiale delle lezioni di un corso. Qualsiasi utente (professore) potrà creare la propria pagina personalizzata agendo su alcune proprietà di quest ultima. 3. Sistema per il download del materiale multimediale Il sistema deve includere la possibilità di fruizione del materiale delle lezioni attraverso la creazione di archivi facilmente accessibili e scaricabili dagli utenti del sito. Il metodo per la creazione degli archivi deve differire a seconda della tipologia di applicazione web utilizzata: in 42

46 3.2 Requisiti funzionali un applicazione web statica deve avvenire durante la fase di creazione del sito mentre, in un applicazione web dinamica, ad ogni richiesta dell utente. 4. Creazione di anteprime dei video L applicazione deve permettere la creazione di immagini di preview catturandole da ogni singolo video. Questa possibilità aumenta il livello di informazione visuale dell applicazione, dando al fruitore del sito una vista anticipata di come sarà il video della lezione. 5. Sistema di visualizzazione delle slides Il sistema deve prevedere un metodo per visualizzare le slides relative ad ogni singola lezione. 6. Creazione di Tag clouds Il sistema deve classificare e raggruppare le informazioni delle varie lezioni attraverso delle tag cloud. Le parole chiave (tag) devono essere estrappolate dal testo delle varie slides. 7. Modifica della grafica del sito L applicazione deve offrire un sistema per la modifica e la creazione di interfacce grafiche web personalizzate attraverso un editor di fogli di stile (CSS). 8. Note per le lezioni Ad ogni lezione deve essere associata un area di testo dove l amministratore del sito potrà aggiungere o modificare note attraverso editor facilmente utilizzabili. Le procedure per la modifica delle note devono differenziarsi a seconda dell applicazione web utilizzata: in quella statica la modifica deve essere gestita da un applicazione esterna al sito, mentre in quella dinamica deve avvenire attraverso pagine web dinamiche. 43

47 Analisi dei requisiti 9. Sezione di amministrazione per l applicazione web L applicazione web dinamica deve disporre di un area dedicata all amministratore del sito, accessibile solo attraverso pagine di autenticazione. Quest area deve mettere a disposizione una serie di strumenti per la personalizzazione del sito: modifica di note, modifica dati di accesso, modifica grafica, ecc. 3.3 Requisiti non-funzionali I requisiti non-funzionali di un applicazione definiscono le proprietà e i vincoli. Essendo più critici dei requisiti funzionali, se non rispettati, possono rendere il sistema inutile. SEMPLICITÀ Il sistema deve essere semplice e intuitivo nel suo utilizzo, sia per quel che riguarda la pubblicazione automatica del sito, sia per l utilizzo dell applicazione web. L utente potrà così utilizzare il sistema senza possedere particolari conoscenze tecniche. AUTOMAZIONE Sia in fase di creazione che di modifica dell applicazione web il livello di automazione deve garantire un intervento minimo da parte dell operatore. APPLICAZIONE DISTRIBUITA L applicazione web per LODE deve essere distribuita in modo che diversi utenti possano utilizzarla contemporaneamente. PRESTAZIONI Le prestazioni dell applicazione devono essere indipendenti dalla piat- 44

48 3.4 Use case diagram taforma. Il sistema deve utilizzare metodi di creazione e modifica che abbiano dei tempi di risposta relativamente bassi. ROBUSTEZZA Il sistema deve comportarsi in modo ragionevole a fronte di situazioni impreviste: gli errori devono essere rilevati e non devono provocare effetti dannosi al sistema. PORTABILITÀ Il sistema deve adattarsi ad ambienti di esecuzione diversi. La portabilità dell applicazione è importante per via della diversità delle interfacce (API) dei sistemi operativi e dei diversi ambienti di sviluppo. 3.4 Use case diagram Il progetto è suddivio in due parti principali strettamente legate tra di loro: l applicazione LODE Web e il sito web per LODE (generato da LODE Web). Di seguito verranno rappresentati i diagrammi d uso (use case diagrams) riguardanti le parti principali dell applicazione, i quali descriveranno le funzionalità del sistema e come quest ultimo agisce e reagisce a determinati input dell utente. La classi di utenti che usufruiscono dei vari servizi di un applicazione vengono chiamate attori. Ogni attore ne controlla le funzionalità e fornisce input o riceve output dal sistema. LODE Web LODE Web è accessibile da una sola categoria di utenti (attori), i docenti (o i responsabili del corso), i quali hanno la possibilità di utilizzare tutte le funzionalità che l applicazione offre. 45

49 Analisi dei requisiti Figura 3.1: Use Case Diagram per LODE Web Un docente può : Creare una nuova applicazione web. Modificare e aggiungere note alle lezioni del sito. Modificare la grafica del sito (Editor di CSS). Aggiungere nuove lezioni a un sito web esistente. Applicazione web LODE Nell applicazione web per LODE esistono due tipologie di utenti: lo studente (utente generico) e l amministratore del sito (docente del corso) solo nel caso venga scelta l applicazione web dinamica. L amministratore svolge tutte le attività degli altri utenti e in più dispone di funzioni di manutenzione e di modifica del sito. 46

50 3.4 Use case diagram Figura 3.2: Use Case Diagram per l applicazione web per LODE Lo studente può : Accedere al materiale multimediale delle lezioni. Scaricare gli archivi delle lezioni. Scaricare le slides. Visualizzare le note delle lezioni. L amministratore può : Modificare la grafica del sito. Modificare e aggiungere note alle lezioni. Modificare i dati di autenticazione (username e password). 47

51 Analisi dei requisiti 48

52 Capitolo 4 Progettazione dell applicazione 49

53 Progettazione dell applicazione 4.1 Introduzione Sulla base della specifica dei requisiti, prodotta dall analisi, in questa sezione spiegherò quali sono state le scelte effettuate in fase di progettazione dell applicazione in modo che tali requisiti vengano soddisfatti, entrando nel merito dell architettura e di come l applicazione è stata realizzata. 4.2 Le classi dell applicazione Figura 4.1: Package diagram L applicazione LODE Web è organizzata in package in maniera da ottimizzare la gestione delle classi e delle relazioni tra queste. Esistono quattro package principali, ognuno contiene a sua volta dei sub-package come viene mostrato in figura 4.1. Il package lodeweb.serializzationxml contiene diverse classi java che 50

54 4.2 Le classi dell applicazione vengono utilizzate per la serializzazione e la deserializzazione di file XML, esistono tanti sub-package quanti i file XML da serializzare. La classe ManageInfoXML.java, contenuta in questo package, offre metodi per la serializzazione che fanno riferimento alle classi contenute nel vari sub-package. Il package lodeweb.gui contiene le classi java per la creazione delle grafica (Swing), questo è suddiviso in tre ulteriori package (lodeweb.gui.create, lodeweb.gui.manage, lodeweb.gui.css) il cui scopo è quello di creare i pannelli principali dell applicazione: pannello di creazione del sito, pannello di manutenzione e l editor di CSS. Il frame principale, che contiene i vari pannelli, viene creato dalla classe main MainFrame.java. Il package lodeweb.util contiene diverse classi che mettono a disposizione svariati metodi e funzioni utili all applicazione e ai suoi processi: util.java: offre una serie di funzioni per: la creazione delle tag clouds, la lettura e la scrittura su file, la copia e lo spostamento di file, il salvataggio dei dati delle lezioni in strutture come array e liste. WriteOnHTML.java: contiene funzioni e procedure per la creazione dinamica di pagine HTML: è possibile creare la pagina di index del corso utilizzando le informazioni delle lezioni oppure creare generiche pagine HTML specificandone il codice e i vari tag. ProcessRuntime.java: contiene funzioni per la creazione di processi (Process), attraverso la specifica di determinati comandi di sistema. Inoltre mette a disposizione metodi per rilevare il sistema operativo dove l applicazione è in esecuzione. GifEncoder.java : questa classe, contenuta nel sub-package lodeweb. util.gifencode, offre metodi per la creazione di gif animate da un set 51

55 Progettazione dell applicazione di immagini esistenti (estensione.jpg). Viene utilizzata per la creazione dell immagine di preview dei video. VlcImages.java : questa classe, contenuta nel sub-package lodeweb. util.vlc, offre una serie di metodi per l esecuzione di comandi VLC con lo scopo di acquisire immagini da video. ZipDir.java : questa classe, contenuta nel sub-package lodeweb.util.zip, dispone di una serie di funzionalità per la creazione di archivi zip, utilizzando sia istruzioni java sia comandi del sistema operativo (eseguiti dalla classe ProcessRuntime.java). Constants.java : contiene la collezione di tutte le costanti utilizzate nell applicazione: i nomi delle cartelle e dei file, le estensioni dei file che vengono creati, la lista dei fogli di stile precreati, i dati di autenticazione di default, ecc. Fornisce all applicazione una maggior portabilità e la possibilità di adattamento a seguito di cambiamenti e modifiche ai dati. Per finire, il package lodeweb.execution contiene la classe Exec.java che ha il compito di avviare il processo di creazione dell applicazione web il cui funzionamento verrà descritto nel paragrafo successivo (paragrafo 4.3). 4.3 Il funzionamento: processo di creazione Il processo di creazione dell applicazione web viene gestito dalla classe Exec.java, contenuta del package lodeweb.execution. Questa classe dispone di diverse fasi che variano a seconda della tipologia di applicazione web che si vuole creare (statica o dinamica) e ognuna svolge uno specifico compito nel processo di creazione. 52

56 4.3 Il funzionamento: processo di creazione È possibile scegliere la tipologia del sito e altre specifiche grazie a una serie di parametri passati al costruttore della classe. Il processo di creazione è completamente indipendente dal resto dell applicazione per via della sua parametrizzazione e della sua esecuzione attraverso un thread. La parte grafica, che avvia il processo di creazione, creerà un oggetto Thread passando al costruttore un istanza della classe Exec.java che implementa l interfaccia Runnable. Runnable richiede l implementazione del solo metodo run che definisce il comportamento del thread stesso, nel nostro caso esegue il metodo per la generazione dell applicazione web. L esecuzione indipendende del thread non impedisce di comunicare i risultati delle operazioni alla grafica dell applicazione, questo è possibile grazie a un ulteriore thread che funge da pompa, redirigendo l output del processo di creazione a componenti grafici che tengono traccia delle operazioni eseguite. Le fasi principali che interessano il processo di creazione sono: 1. Acquisizione di informazioni sulle lezione Tutte le informazioni vengono inserite in una struttura List<Row> (lista di oggetti Row) per poterle reperire con facilità. Row.java è la classe che contiene le informazioni di una singola lezione, ogni istanza di Row andrà poi a comporre una riga della tabella. 2. Creazione del codice HTML Questa fase consiste in un ciclo while che scandisce la lista di Row (List<Row>), grazie ad un Iterator, creando il codice HTML per le righe della tabella utilizzato per comporre la pagina index del sito web. 3. Copia del materiale multimediale delle lezioni In questa fase viene creata, qualora non esistesse già, la directory di out- 53

57 Progettazione dell applicazione put per il sito web copiando tutto il materiale multimediale delle lezioni dalla directory Acquisition alla directory Course dell applicazione web. 4. Creazione delle anteprime dei video Questa fase avvia il processo di creazione delle anteprime di ogni video delle lezioni, utilizzando i metodi forniti dalla classe VlcImages.java (package lodeweb.util.vlc) per la creazione di immagini di preview e quelli forniti dalla classe GifEncoder.java (package lodeweb.util.gifencode) per la creazione di gif animate. 5. Creazione dei file per le note Questa fase genera i file per le note delle lezioni: nel caso di un applicazione web statica viene lanciato il metodo offerto dalla classe WriteOnHTML.java che crea tanti file html quante sono le note per le lezioni, nel caso di un applicaizone web dinamica viene creato un solo file XML utilizzando i processi di serializzazione offerti dalla classe ManageInfoXML.java (package lodeweb.serializationxml). 6. Creazione degli archivi Questa fase viene implicata solo per il processo di creazione dell applicazione web statica. Le funzioni che permettono di creare gli archivi vengono messe a disposizione dalla classe ZipDir.java (package lodeweb.util.zip) che avrà il compito di rilevare il sistema operativo e lanciare processi esterni di creazione oppure opportuni metodi java per la compressione. 7. Copia dei file per l applicazione web Vengono copiati i file dalla directory topost alla directory principale del sito web, i file contenuti in questa directory vanno a comporre l ap- 54

58 4.3 Il funzionamento: processo di creazione plicazione web stessa e sono: files di configurazione web, classi per l applicazione web dinamica, fogli di stile, pagine HTML e JSP per la visualizzazione dei contenuti, ecc. 8. Scrittura della pagina index Le righe della tabella vengono scritte su file componendo l intero codice HTML della pagina utilizzando metodi di scrittura offerti dalla classe WriteOnHTML.java. Istanziando la classe Exec.java è possibile inizializzare alcuni attributi che vengono utilizzati durante il processo di creazione, alcuni di questi sono contenuti nella classe OptionClass.java (package lodeweb.util), altri invece all interno di un array di stringhe. Qualunque oggetto faccia uso di un istanza di OptionClass.java può accedere alle variabili solamente attraverso i metodi get e set della classe stessa. Questi due metodi consentono di regolare l accesso ai campi, che rappresentano lo stato dell oggetto, garantendo così che tale stato rimanga consistente. Exec.java dovrà fare riferimento solo ai metodi get della classe per poter accedere ai parametri di creazione. Le variabili contenute nella classe opzioni (OptionClass.java) sono: Context : può assumere i valori DYNAMIC o STATIC, viene utilizzata per scegliere la tipologia di applicazione web che si desidera creare, rispettivamente: un applicazione web dinamica o un sito web statico HTML. Variabili booleane : vengono utilizzate per escludere alcune fasi dal processo di creazione : pvideo (generazione delle preview), imagefromslides (copia delle slides), lectures (copia dei video), zip (creazio- 55

59 Progettazione dell applicazione ne degli archivi), notes (creazione dei file per le note), slidessources (sorgenti delle slides). Username e password : variabili testuali (String) usate per specificare i dati di autenticazione alla parte amministrativa dell applicazione web dinamica. Nella figura 4.2 vengono mostrate le varie fasi del processo di creazione attraverso un activity diagram. 56

60 4.3 Il funzionamento: processo di creazione Figura 4.2: Activity: processo di creazione 57

61 Progettazione dell applicazione 58

62 Capitolo 5 Manuale d uso 59

63 Manuale d uso 5.1 Premessa Scopo del manuale Questa guida vuole essere un aiuto per capire le funzionalità e le potenzialità dell applicazione LODE web. Il suo uso corretto consente di creare un applicazione web intuitiva e facilmente accessibile all utente, oltre a permetterne la personalizzazione e la modifica Struttura dell applicazione L applicazione LODE Web è strutturata in due parti principali: la parte di creazione e la parte di manutenzione e modifica della web-application. Ogni parte svolge funzionalità specifiche e dispone di un pannello dedicato facilmente accessibile mediante un TabPanel sul frame principale o utilizzando il menu, dove è possibile selezionare i vari pannelli (Figura 5.1). Per utilizzare le varie funzionalità, i pannelli offrono componenti grafici, aree di testo per l output e per la notifica degli errori. Figura 5.1: Pannelli dell applicazione LODE Web L applicazione prevede anche un piccolo editor di CSS: l utente potrà modificare e/o creare la grafica della propria applicazione web attraverso un interfaccia intuitiva e di facile utilizzo (vedi paragrafo sull editor 5.3.3) (Figura 5.2). 60

64 5.2 Installazione e configurazione Figura 5.2: Cascading Style Sheet Editor 5.2 Installazione e configurazione Requisiti per l utilizzo Per poter utilizzare l applicazione è richiesto un sistema operativo che disponga di una JVM (Java Virtual Machine). Come ambiente di sviluppo è stato usato NetBeans 1 (versione 6.5) con JDK (Java Development Kit) (versione 1.6). Per un corretto funzionamento si richiede che siano presenti nel path principale le seguenti directory : /Css : viene utilizzata dall editor di CSS per la creazione di nuovi fogli di stile, contiene cinque fogli di stile già creati e uno personalizzabile tramite l editor. 1 c NetBeans : 61

65 Manuale d uso /topost : contiene i file indispensabili per generare l applicazione web e per utilizzarne le funzionalità. Alcuni di questi file vengono modificati durante il processo di creazione, altri invece sono statici e non subiscono modifiche durante la copia nella directory di output. /Images : contiene le immagini utilizzate dall applicazione per la grafica dei pulsanti e di altri componenti. NB. : non è indispensabile per un corretto funzionamento dell applicazione. L utente verrà avvisato con un messaggio d errore nelle aree di testo apposite su ogni pannello nel caso una o più di queste cartelle risultino mancanti. È richiesta l installazione del software VLC media player (VideoLAN Client) scaricabile dal sito Per gli utenti Windows è necessario specificare il percorso di installazione di VLC attraverso il pannello di configurazione accessibile dal menu (Figura 5.3). Figura 5.3: Pannello di configurazione Compatibilitá sistema operativo L applicazione è compatibile con i seguenti sistemi operativi: Windows Vista 62

66 5.2 Installazione e configurazione Windows XP Professional (SP1,SP2) Windows XP Home Windows 2000 Professional (SP4+) Linux Mac Os X Rilevato il sistema operativo utilizzato, di conseguenza vengono lanciati in automatico metodi e procedure adatte all ambiente d esecuzione L applicazione web: requisiti Per un corretto funzionamento dell applicazione web dinamica è necessario predisporre di una macchina con il server Apache Tomcat 2 (consigliata la versione 6). Nel caso si scelga un applicazione web statica è sufficiente possedere un qualunque web server senza particolari framework Configurazione web Qualora si volesse modificare la configurazione o la struttura del sito web si deve agire manualmente sui file all interno della directory topost che si trova nel path principale dell applicazione LODE Web. Essa contiene due sottodirectory: STATIC e DYNAMIC dove sono presenti i file necessari per entrambe le tipologie di applicazione web. NB. : Si consiglia di effettuare una copia di backup dei file prima di procedere con le modifiche. 2 c Apache Tomcat : 63

67 Manuale d uso Parametri di login Se l utente sceglie l applicazione web dinamica, ha la possibilità di modificare le informazioni per l accesso alla parte amministrativa del sito. I parametri di login dell amministratore risiedono all interno di un file di testo (login.txt) nella directory WEB-INF. La modifica di questo file può essere effettuata manualmente, se si ha accesso ai file depositati sul server, oppure accedendo alla parte di amministrazione del sito, riservata al solo amministratore. La sintassi del file login.txt è la seguente: username = " admin" psw = " admin" NB. : modificare solamente l username e la password contenuti tra i doppi apici. Ogni altra modifica del file potrebbe provocare un malfunzionamento dell applicazione. 5.3 Funzionalitá Creazione dell applicazione web Pannello di creazione Il pannello di creazione è composto da tre aree principali. Nella parte alta del pannello (north) (Figura 5.4), attraverso componenti grafici che permettono di navigare le directory del sistema operativo, è possibile scegliere : La directory che contiene il materiale di un corso universitario (Course Dir). La directory dove verrà generato il sito web (Output Dir). 64

68 5.3 Funzionalitá Queste due opzioni sono indispensabili per poter avviare il processo di creazione, qualora venga omesso uno o entrambi i campi, l utente verrà avvisato mediante un messaggio d errore. Figura 5.4: Choose panel Nella parte bassa del pannello (south) (Figura 5.5) vi è un area di testo, non editabile, per la notifica dei messaggi d errore. È possibile cancellare tale area o salvarne una copia su un file mediante gli appositi pulsanti : Clean e Save Log. L opzione di salvataggio può essere utile nel caso l utente rilevi un errore inaspettato durante l esecuzione e voglia salvare una copia delle operazioni eseguite e/o delle notifiche di malfunzionamenti. Figura 5.5: Area di notifica Nella parte centrale del pannello (center), vengono messe a disposizione diverse opzioni che variano a seconda della tipologia di applicazione web che si vuole creare (statica o dinamica). Un componente di selezione permette di scegliere tra applicazione web statica (STATIC) o applicazione web dinamica 65

69 Manuale d uso (DYNAMIC), a seconda della scelta l utente disporrà di diverse opzioni di creazione. Nel caso si voglia creare un applicazione web statica (STATIC) le opzioni disponibili sono: La possibilità di integrare le sorgenti delle slides al sito (Slide Sources) La creazione di archivi delle lezioni, tramite file compressi zip (Zip file lectures) La generazione delle immagini di preview dei video (image from video). L aggiunta delle immagini prese dalle slides (image from slides) L aggiunta di pagine HTML per poter inserire note e descrizioni su ogni lezione (file notes). Figura 5.6: Pannello opzioni STATIC 66

70 5.3 Funzionalitá Se si vuole creare un applicazione web dinamica (DYNAMIC) invece è possibile: Aggiungere le sorgenti delle slides al sito (Slide Sources) Creare le preview dei video (image from video) Aggiungere le immagini delle slides (image from slides) Inserire i dati di autenticazione per l amministratore del sito (username e password). Figura 5.7: Pannello opzioni DYNAMIC In entrambi i casi vi è la possibilità di scegliere la grafica del sito grazie all editor di CSS accessibile dal pulsante Choose css. L utilizzo dell editor verrà spiegato nel paragrafo Nel caso l utente trascuri la modifica della grafica verrà utilizzato un foglio di stile di default (Style5.css). 67

71 Manuale d uso Applicazione web statica o dinamica? Prima di entrare nello specifico, per quel che riguarda la creazione del sito, l utente deve conoscere bene la differenza tra le due tipologie di applicazioni web : statica e dinamica e valutare la compatibilità con il proprio webserver. Di seguito elencherò le principali caratteristiche delle due tipologie di webapplication nel nostro caso specifico: Applicazione web statica: Interamente composta da pagine web statiche (formato HTML) che, per essere eseguite, non richiedono particolari server context (i linguaggi utilizzati sono html e javascript). Richiede, ove necessario, che l amministratore aggiorni manualmente il contenuto del sito modificando le pagine direttamente sul web server. Richiede uno spazio sul web server maggiore rispetto alla relativa applicazione web dinamica, questo perchè ogni cartella, contenente il materiale di una lezione, viene compressa durante la fase di creazione del sito. Applicazione web dinamica: La parte statica viene integrata da contenuti dinamici mediante l utilizzo di pagine JSP (Java Server Pages) e Servlet. Queste permettono di inserire parti di codice java nell applicazione web. L amministrazione e la manutenzione del sito viene gestita da un apposita sezione riservata al solo amministratore e accessibile mediante pagine di autenticazione. 68

72 5.3 Funzionalitá Lo spazio occupato sul server è minore rispetto all applicazione web statica: i vari file compressi delle lezioni vengono generati al momento della loro richiesta e cancellati dopo un tot di tempo di inutilizzo. Creare una nuova web application Per creare una nuova applicazione web (statica o dinamica): 1. Selezionare la directory contenente il materiale del corso (Course Dir). NB: la directory deve contenere: /Distribution, /Acquisition, COUR- SE.XML. 2. Selezionare la directory dove verrà generata l applicazione web (Output Dir). NB: l utente deve disporre dei permessi di creazione e modifica sulla directory, la quale deve essere vuota. 3. Scegliere la tipologia di applicazione web che si vuole creare (STATIC o DYNAMIC) tramite l apposito componente grafico (JComboBox). A seconda della tipologia scelta verranno abilitate le opzioni per la creazione. 4. Selezionare, attraverso i check-box (JCheckBox), le opzioni di creazione desiderate. NB: alcune opzioni, come la copia delle lezioni (lecture distribution) e l aggiunta degli zip al sito (zip file lecture), sono indispensabili per una corretta procedura di creazione. Per l applicazione web dinamica sono richiesti i dati per l autenticazione dell amministratore (username e password). Per modificare questi dati si può utilizzare un pannello, accessibile dal pulsante Edit (Figura 5.8). Sui dati inseriti verranno fatti controlli riguardanti la dimensione dei caratteri e la correttezza. 69

73 Manuale d uso Qualora non vengano inseriti verranno utilizzati quelli di default: username : admin password : admin Figura 5.8: 5. Scegliere il foglio di stile per il sito web: è possibile selezionare fogli di stile da una galleria oppure crearsi il proprio usando l editor grafico integrato nell applicazione (vedi capito su Editor CSS 5.3.3). 6. Avviare il processo di creazione cliccando sul pulsante Go!!!. Figura 5.9: Pannello di progressione Apparirà un pannello nel quale verranno elencate, passo per passo, tut- 70

74 5.3 Funzionalitá te le operazioni di creazione utilizzando una barra di progressione e contemporaneamente dei messaggi di notifica (Figura 5.9). Con l avvio del processo di creazione, nell area di log, verranno stampati ulteriori messaggi che riportano la cronologia delle operazioni eseguite, specificando le date di avvio e di fine delle stesse. NB: la chiusura del pannello di progressione comporta l interruzione del processo di creazione e la chiusura dell applicazione stessa. Nel caso il processo venga interrotto per via di errori, oppure volontariamente è necessario eliminare manualmente il contenuto della directory di output (directory del sito web) prima di ripetere le operazioni di creazione. 7. Al termine, chiudere il pannello di progressione usando il pulsante Done. L utente potrà consultare la cronologia delle operazioni controllando eventuali messaggi d errore. Se questi non sono presenti la creazione è avvenuta con successo. 71

75 Manuale d uso Esempio di log senza errori: Web application : STATIC Start time : 1 Jul :40:34 Copy l e c t u r e s : OK Previews videos : OK Static notes : OK Zip l e c t u r e s : OK Post f i l e web application : OK Create web application : OK end time : 1 Jul :40:39 Web application : DYNAMIC Start time : 1 Jul :43:13 Copy l e c t u r e s : OK Previews videos : OK Xml notes : OK Password f i l e ( un = admin, psw = admin ) : OK Post f i l e web application : OK Create web application : OK end time : 1 Jul :43:33 Aggiunta di nuove lezioni Per l aggiunta di nuove lezioni si fa riferimento allo stesso processo usato per la creazione: si copia il nuovo materiale ricreando l intera struttura dell applicazione web, lasciando però inalterato il contenuto delle lezioni già presenti nel sito Modifica dell applicazione web Gli strumenti di modifica dell applicazione web variano a seconda se si tratta di un applicazione statica o dinamica. Per modifica dell applicazione web si intente: Aggiunta e/o modifica di note testuali alle lezioni: ad ogni le- 72

76 5.3 Funzionalitá zione può essere associato un testo (nota) che potrà essere aggiunto o modificato dal docente del corso. Modifica della grafica del sito (tramite fogli di stile CSS). Nel caso si utilizzi l applicazione web dinamica le modifiche possono essere apportate direttamente dall applicazione stessa, attraverso una sezione di amministrazione. Figura 5.10: pannello Manager (WebApp) Per modificare l applicazione web statica si fa riferimento a un pannello integrato in LODE Web (Figura 5.10), il quale presenta due aree: una per modificare le note (Editor notes) e l altra per la modifica della grafica (Css). Modifica delle note per l applicazione web statica Le note di un applicazione web statica sono salvate in un apposita directory tramite dei file HTML formattati adeguatamente. Ne esiste uno per ogni nota e quindi uno per ogni lezione. Il pannello per la modifica (Editor notes) (Figura 5.11) riporta in forma tabellare la lista delle note e permette, mediante un editor appositamente creato, di modificarne il loro contenuto. Per la modifica: 73

77 Manuale d uso Figura 5.11: Pannello di modifica delle note 1. Selezionare la directory contenente il materiale di un corso (Course Dir). NB: la directory deve contenere: /Disribution, /Acquisition, COURSE.XML. 2. Selezionare la directory contente il sito web statico (già creato in precedenza) (Web dir). 3. Cliccando sul pulsante Show/Refresh verranno visualizzate, nell area risultati, tante righe quanti sono i file HTML relativi alle note. Si abiliteranno, inoltre, due ulteriori pulsanti: View index page e Edit note. View index page: permette all utente di visualizzare la index tramite il browser di default. 74

78 5.3 Funzionalitá Edit note: permette di avviare l editor per la modifica della nota. 4. Selezionare una riga dalla tabella. Se non vi sono incoerenze o errori nel file HTML l applicazione visualizzerà il contenuto della nota selezionata con alcune informazioni sul file. 5. Cliccare dunque sul pulsante Edit note che avvierà un editor di pagine HTML (Figura 5.12), attraverso il quale sarà possibile modificare il contenuto del file applicando al testo diverse formattazioni, colori, dimensioni ecc. Figura 5.12: Editor di testo per le note 6. Cliccare sul pulsante Save dell editor di testo per salvare le modifiche. 7. Cliccare sul pulsante Show/Refresh per aggiornare la tabella con le ultime modifiche. Modificare la grafica dell applicazione web Per modificare la grafica dell applicazione web si utilizza il pannello dedicato (Css)(Figura 5.13) che mette a disposizione degli strumenti per la modifica del codice CSS. Questo può essere fatto scrivendo direttamente il codice oppure utilizzando un Editor di CSS. 75

79 Manuale d uso Figura 5.13: Pannello di modifica della grafica Per modificare la grafica: 1. Selezionare la directory contenente il materiale di un corso (Course Dir). NB: la directory deve contenere: /Disribution, /Acquisition, COURSE.XML. 2. Selezionare la directory contente il sito web statico (già creato in precedenza) (Web dir). 3. Cliccare sul pulsante Show/Refresh per visualizzare la pagina CSS del sito nell apposita area di testo. 4. Modificare il codice CSS: è possibile agire direttamente sul codice, per chi ha familiarità con questo linguaggio, oppure creare un nuovo stile cliccando sul pulsante New Css... Nel secondo caso verrà avviato l editor di CSS (vedi paragrafo 5.3.3). 76

80 5.3 Funzionalitá 5. Apportare le modifiche cliccando sul pulsante Save. É possibile visionarle tramite il pulsante Show index page. NB: accanto al pulsante Save vi è un area di notifica che avviserà l utente se le operazioni di modifica del documento sono andate a buon fine. 6. Ad ogni nuova modifica è bene aggiornare la pagina tramite il pulsante Show/refresh Uso dell editor di Cascading Style Sheet Un normale editor di testo può essere più che sufficiente per scrivere il codice dei CSS. Tuttavia, usare un editor specifico presenta parecchi vantaggi, uno di questi è che permette all utente di creare la propria grafica del sito, senza che conosca il codice che compone i fogli di stile CSS. Questo editor permette di modificare alcuni parametri grafici specifici per l applicazione web. Struttura dell editor L editor, pur essendo utilizzato in diversi contesti dell applicazione (pannello di creazione, modifica, ecc.), rimane sempre con la stessa struttura. È suddiviso in una parte di preview e in una che permette di scegliere, modificare e creare il proprio foglio di stile. L utente disporrà di una galleria di cinque stili precostruiti, ogni stile potrà essere selezionato tramite cinque componenti grafici (JcheckBox) e per ognuno sarà possibile visualizzare una preview della pagina. Un pannello di pulsanti (Figura 5.14) facilità la creazione del proprio foglio di stile. In ordine elencherò i vari pulsanti e il loro utilizzo: 77

81 Manuale d uso Figura 5.14: Pannello pulsanti Select Css...: tramite questo pulsante è possibile aggiungere alla galleria un foglio di stile esterno che prenderà il nome del file stesso. New Css... : questo pulsante avvia un wizard che permette di creare il proprio foglio di stile personalizzato mediante una procedura guidata. L utilizzo di questa procedura verrà specificata nel paragrafo seguente. View HTML : questo pulsante mostrerà il codice della pagina index, specificando la struttura dei tag HTML (Figura 5.15). Questa opzione può essere utile per chi volesse creare il proprio documento CSS da codice, senza utilizzare la creazione guidata. View result page : cliccando su questo pulsante sarà possibile visualizzare l anteprima della pagina tramite il browser di default. 78

82 5.3 Funzionalitá Figura 5.15: Creare un nuovo stile grafico Per la creazione di un nuovo stile si può utilizzare una piccola applicazione guidata (wizard) accessibile cliccando sul pulsante New Css... presente sull interfaccia principale dell editor. Grazie a due pulsanti (next, back) l utente potrà utilizzare, tramite una serie di passi successivi, quattro pannelli che permettono di scegliere alcune proprietà grafiche della pagina. La scelta delle varie opzioni grafiche viene facilitata grazie a un anteprima situata nella parte destra di ogni pannello. 79

83 Manuale d uso Descrizione dei pannelli: 1. Pannello per la modifica delle proprietà della pagina (Figura 5.16): permette di modificare una serie di opzioni generali per la pagina come: l immagine di backgroud, il colore di sfondo, il colore del container, l aggiunta dei bordi per il contaier, il font del carattere e l allineamento del testo. Figura 5.16: Pannello CSS 1 2. Pannello per la modifica delle proprietà della tabella (Figura 5.17): permette di modificare alcune proprietà grafiche della tabella come: il colore di backgroud, il font, il colore del testo, l aggiunta del bordi e l allineamento del testo. 3. Pannello per la modifica di altri aspetti grafici (Figura 5.18): permette di migliorare ulteriormente l aspetto della pagina modificando: il colore 80

84 5.3 Funzionalitá Figura 5.17: Pannello CSS 2 dei link (link color, link:hover color), il colore di sfondo per le righe della tabella (table_row:hover color), i bordi delle righe, il font e il colore del testo. 4. Pannello dei risultati della pagina css (Figura 5.19): viene generata la pagina CSS grazie ai parametri inseriti attraverso i pannelli precedenti. Il codice viene visualizzato in un area di testo modificabile. È possibile scegliere se accettare le modifiche o annullarle usando i pulsati Ok e Cancel. Il nuovo foglio di stile verrà aggiunto alla galleria con il nome MyCss.css. 81

85 Manuale d uso Figura 5.18: Pannello CSS 3 Figura 5.19: Pannello CSS 4 82

86 5.3 Funzionalitá Uso dell applicazione web Interfaccia web L applicazione web, indifferentemente che sia statica o dinamica, è composta da una pagina principale (nome_corso_index.html o nome_corso_index.jsp) che permette la visualizzazione delle varie lezioni sotto forma tabellare (Figura 5.20). Figura 5.20: Tabella delle lezioni La tabella delle lezioni presenta le seguenti informazioni: Progressivo della lezione. Data di svolgimento della lezione (Date). Titolo della lezione (Title). Link per il download dei video e del materiale (Dowload). Eventuali note (Notes). Tempo d esecuzione totale del video (Time). Tag Cloud grafica contenente le parole più usante all interno delle slides (Contents, Tag Cloud). 83

87 Manuale d uso Link per la galleria delle slides (Image from slide). Link per visualizzare le anteprime dei video (Image from video). Vari link per scaricare il materiale aggiuntivo e le slides (Slide Sources). L uso dell applicazione web statica Nell applicazione web statica, oltre alla pagina principale, non vi sono altre sezioni particolari. Le note vengono salvate tramite file HTML e per il download del materiale multimediale esistono tanti archivi quante sono le lezioni caricate nel sito. Per scaricare una lezione basterà cliccare sull apposito link (download) per avviare il download dell archivio. L uso dell applicazione web dinamica L applicazione web dinamica, a differenza di quella statica, gestisce la visualizzazione delle note dinamicamente attraverso un file XML, crea dinamicamente gli archivi per il download e presenta una sezione di amministrazione del sito. Download degli archivi Qualora un utente voglia scaricare il materiale multimediale di una lezione dovrà cliccare sui link appositi (download) nella tabella della pagina index. Ogni link richiama una servlet che ha il compito di comprimere il materiale multimediale e, al termine delle operazioni, metterlo a disposizione dell utente. Durante la fase di compressione verrà visualizzata una pagina web di attesa che mostrerà un conto alla rovescia indicativo e una barra di progressione. 84

88 5.3 Funzionalitá Amministrazione Solo l amministratore, che possiede i dati di autenticazione, potrà accedere a questa sezione. Login Per poter accedere alla sezione di amministrazione è necessario cliccare sul link a fondo pagina Admin, verrà visualizzato un form di login (Figura 5.21) dove poter inserire il proprio username e la password. Figura 5.21: Form di login Nel caso vengano inseriti dati di autenticazione errati l utente verrà avvisato tramite un messaggio d errore. Menu Nella parte di amministrazione è possibile navigare tramite un menu (Figura 5.22) che presenta diverse opzioni che verranno descritte in seguito. Figura 5.22: Menu, area amministrazione 85

89 Manuale d uso Modifica delle note È possibile accedere alle pagine per la modifica delle note delle lezioni cliccando sui link EDIT NOTE o EDIT ALL NOTE: EDIT NOTE: visualizzerà una pagina web dinamica contenente una tabella con tante righe quante sono le lezioni, specificando : il titolo della lezione, il testo della nota e in fine un link (EDIT) per accedere alla pagina di modifica (Figura 5.23). Figura 5.23: Cliccando sul link EDIT sarà possibile modificare il testo della nota grazie a un visual HTML editor (FCK editor, Figura 5.3.4) che mette a disposizione svariati stili e formattazioni testuali. Figura 5.24: FCK Editor NB. : È possibile che l editor non sia compatibile con alcune versioni di browser (esempio: alcune versioni di Opera), per questo, all inizio della pagina, viene testata la compatibilità. Per apportare le modifiche alla nota è sufficiente cliccare sul pulsante 86

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

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

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

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

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

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

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

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

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

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

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

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

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

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

INTRODUZIONE AL WEB DINAMICO

INTRODUZIONE AL WEB DINAMICO INTRODUZIONE AL WEB DINAMICO Internet: la rete delle reti Internet rappresenta oggi l espressione del forte bisogno dell uomo di comunicare, al fine, non solo di incrementare le conoscenze, ma anche di

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 1. Introduzione a Internet e al WWW Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica

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

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

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Server-side Programming: Java servlets Parte II

Server-side Programming: Java servlets Parte II Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:

Dettagli

Corso basi di dati Introduzione alle ASP

Corso basi di dati Introduzione alle ASP Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Web statico e Web interattivo In principio il Web era una semplice collezione di pagine

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

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

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

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

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E.

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Università di Bologna Facoltà di Ingegneria Bologna, 08/02/2010 Outline Da applicazioni concentrate a distribuite Modello

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

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

Macchine per l elaborazione dell informazion e. Sistemi di Elaborazione delle Informazioni. Informatica II

Macchine per l elaborazione dell informazion e. Sistemi di Elaborazione delle Informazioni. Informatica II Macchine per l elaborazione dell informazion e Sistemi di Elaborazione delle Informazioni Informatica II Ing. Mauro Iacono Seconda Università degli Studi di Napoli Facoltà di Studi Politici e per l Alta

Dettagli

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP EVOLUZIONE DEL WEB: PAGINE STATICHE vs PAGINE DINAMICHE Il Web è nato a supporto dei fisici, perché potessero scambiare tra loro le informazioni inerenti le loro sperimentazioni. L HTTP è nato inizialmente

Dettagli

Applicazione: GAS - Gestione AcceSsi

Applicazione: GAS - Gestione AcceSsi Riusabilità del software - Catalogo delle applicazioni Gestione ICT Applicazione: GAS - Gestione AcceSsi Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi Nome

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Estensione di un sistema per la gestione semi-automatica di siti didattici con

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

Manuale Piattaforma Didattica

Manuale Piattaforma Didattica Manuale Piattaforma Didattica Ver. 1.2 Sommario Introduzione... 1 Accesso alla piattaforma... 1 Il profilo personale... 3 Struttura dei singoli insegnamenti... 4 I Forum... 5 I Messaggi... 7 I contenuti

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

venerdì 31 gennaio 2014 Programmazione Web

venerdì 31 gennaio 2014 Programmazione Web Programmazione Web WWW: storia Il World Wide Web (WWW) nasce tra il 1989 e il 1991 come progetto del CERN di Ginevra affidato a un gruppo di ricercatori informatici tra i quali Tim Berners- Lee e Robert

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

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

Manuali.net. Nevio Martini

Manuali.net. Nevio Martini Manuali.net Corso base per la gestione di Siti Web Nevio Martini 2009 Il Linguaggio HTML 1 parte Introduzione Internet è un fenomeno in continua espansione e non accenna a rallentare, anzi è in permanente

Dettagli

Corso Online. We Train Italy info@wetrainitaly.it

Corso Online. We Train Italy info@wetrainitaly.it Corso Online Programmatore Java New Edition We Train Italy info@wetrainitaly.it Programma Generale del Corso Programmatore Java New Edition 1. Introduzione al corso Java da 0 al web Presentazione del corso

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

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione Evoluzione del Web Direzioni di sviluppo del web a) Multimedialità b) Dinamicità delle pagine e interattività c) Accessibilità d) Separazione del contenuto dalla forma di visualizzazione e) Web semantico

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

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

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

SIAGAS Manuale Utente Utente non autenticato

SIAGAS Manuale Utente Utente non autenticato SIAGAS Manuale Utente Utente non autenticato 27 marzo 2007 v.1.7 SIAGAS: Manuale Utente: utente non autenticato 1/10 1 Introduzione 1.1 Destinatario del prodotto SIAGAS è uno Sportello Informativo per

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

Applicazione: SIPER Servizi In linea per il PERsonale

Applicazione: SIPER Servizi In linea per il PERsonale Riusabilità del software - Catalogo delle applicazioni Gestione Personale Applicazione: SIPER Servizi In linea per il PERsonale Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

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

Installazione del Software. per lo Sviluppo di Applicazioni Java

Installazione del Software. per lo Sviluppo di Applicazioni Java Installazione del Software per lo Sviluppo di Applicazioni Java Ing. Luca Ferrari ferrari.luca@unimore.it Tel. 0592056142 Installazione del Software per lo Sviluppo di Applicazioni Java 1 Il Compilatore

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

Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

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

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

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 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server

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

LA PROFESSIONE DEL WEB DESIGNER

LA PROFESSIONE DEL WEB DESIGNER LA PROFESSIONE DEL WEB DESIGNER Lezione 1 1 Web Design Lafiguracentralenelprogettodiunsitowebèilwebdesigner:eglisioccupadell'aspetto visivo e del coinvolgimento emotivo di siti Web business to business

Dettagli

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI 1 Web Link Monitor... 2 2 Database Browser... 4 3 Network Monitor... 5 4 Ghost Site... 7 5 Copy Search... 9 6 Remote Audio Video

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

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

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

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

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

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

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

Server Web. Apache Tomcat. Modalità di funzionamento. Autore: Roberto Fabbrica rfabbrica@libero.it. Diapo 1. Diapo 2. Diapo 3

Server Web. Apache Tomcat. Modalità di funzionamento. Autore: Roberto Fabbrica rfabbrica@libero.it. Diapo 1. Diapo 2. Diapo 3 1 Server Web In questo modulo verrà analizzato Tomcat, l application server di Apache che supporta JSP. Viste le caratteristiche di stabilità, aderenza alle specifiche JSP, configurabilità e supporto,

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

Allegato 1 CIG 58703795FF PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO

Allegato 1 CIG 58703795FF PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO SOMMARIO 1 Oggetto della Fornitura... 3 2 Composizione della Fornitura... 3 2.1 Piattaforma

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione al Web WWW World Wide Web CdL Economia A.A. 2012/2013 Domenica Sileo Università degli Studi della Basilicata Introduzione al Web : WWW >> Sommario Sommario 2 n World

Dettagli

Server web e protocollo HTTP

Server web e protocollo HTTP Server web e protocollo HTTP Dott. Emiliano Bruni (info@ebruni.it) Argomenti del corso Cenni generali sul web IIS e Apache Il server web Micsosoft Internet Information Server 5.0 Il server web Apache 2.0

Dettagli

Corso Analista Programmatore Java Corso Online Analista Programmatore Java

Corso Analista Programmatore Java Corso Online Analista Programmatore Java Corso Analista Programmatore Java Corso Online Analista Programmatore Java Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Java Tematiche Trattate Modulo Uno

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

Applicazione: OIL Online Interactive helpdesk

Applicazione: OIL Online Interactive helpdesk Riusabilità del software - Catalogo delle applicazioni: Gestione ICT Applicazione: OIL Online Interactive helpdesk Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

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

MANUALE www.logisticity.it. Copryright 2015 - All rights reserved Email: info@logisticity.it - P.IVA 04183950403

MANUALE www.logisticity.it. Copryright 2015 - All rights reserved Email: info@logisticity.it - P.IVA 04183950403 MANUALE www.logisticity.it Copryright 2015 - All rights reserved Email: info@logisticity.it - P.IVA 04183950403 INDICE Presentazione... pag. 02 Applicativo... pag. 03 Amministrazione...pag. 06 Licenza...pag.

Dettagli

Strutture di accesso ai dati

Strutture di accesso ai dati Strutture di accesso ai dati 1 A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Gestore dei metodi di accesso 2 E il modulo del DBMS che trasforma il piano di esecuzione

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

Il progetto di ricerca Ellade

Il progetto di ricerca Ellade Il progetto di ricerca Ellade Ellade ELectronic Live ADaptive Learning Gruppo di lavoro Università degli Studi della Calabria, Dipartimento di Matematica Università degli Studi Mediterranea di Reggio Calabria,

Dettagli

Informatica d ufficio

Informatica d ufficio Informatica d ufficio Anno Accademico 2008/2009 Lezione N 2 Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo è un programma che è sempre in funzione durante l utilizzo del PC (quando si accende

Dettagli

Corso analista programmatore Java. Corso analista programmatore Java Programma

Corso analista programmatore Java. Corso analista programmatore Java Programma Corso analista programmatore Java 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

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

N.E.A.T. ( Neutral Environment Application Tools )

N.E.A.T. ( Neutral Environment Application Tools ) N.E.A.T. ( Neutral Environment Application Tools ) SCOPO : Ambiente per lo sviluppo di applicazioni WEB multimediali basate su Data Base Relazionale e strutturate secondo il modello a tre livelli: Presentazione

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

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

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

Vela Intview Generator

Vela Intview Generator Vela Intview Generator Convertire in automatico si può!! by Vela srl Rivoli (TO) tel 011-19820721 www.gruppovela.it Perché è nato Intview Vela produce gestionali ERP sia in Java sia in RPG. Nel 2007 avvia

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

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA IBM System i5 La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA Massimo Marasco System i Technical Sales Support massimo_marasco@it.ibm.com Oriented Architecture (SOA) Servizio

Dettagli

Convegni on-line. Descrizione dell Offerta. 25 novembre 2009. ver. 1.1. Sintresis s.r.l. tel: 0125/627026. 10015 Ivrea email: info@sintresis.

Convegni on-line. Descrizione dell Offerta. 25 novembre 2009. ver. 1.1. Sintresis s.r.l. tel: 0125/627026. 10015 Ivrea email: info@sintresis. Convegni on-line Descrizione dell Offerta 25 novembre 2009 ver. 1.1 Sintresis s.r.l. tel: 0125/627026 via Castiglia, 4 http://www.sintresis.it 10015 Ivrea email: info@sintresis.it Indice 1. Introduzione...3

Dettagli

LBINT. http://www.liveboxcloud.com

LBINT. http://www.liveboxcloud.com 2014 LBINT http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di commerciabilità

Dettagli

Logic Lab. un progetto italiano. www.axelsw.it. soluzioni SOFTWARE PER L'AUTOMAZIONE INDUSTRIALE

Logic Lab. un progetto italiano. www.axelsw.it. soluzioni SOFTWARE PER L'AUTOMAZIONE INDUSTRIALE Logic Lab soluzioni SOFTWARE PER L'AUTOMAZIONE INDUSTRIALE un progetto italiano www.axelsw.it Logic Lab La garanzia e l economia degli standard più diffusi sul mercato LogicLab è un ambiente di sviluppo

Dettagli

Centro Nazionale per l Informatica nella Pubblica Amministrazione. Gara a procedura aperta n. 1/2007. per l appalto dei

Centro Nazionale per l Informatica nella Pubblica Amministrazione. Gara a procedura aperta n. 1/2007. per l appalto dei Centro Nazionale per l Informatica nella Pubblica Amministrazione Gara a procedura aperta n. 1/2007 per l appalto dei Servizi di rilevazione e valutazione sullo stato di attuazione della normativa vigente

Dettagli

FileMaker Server 12. Pubblicazione Web personalizzata con XML

FileMaker Server 12. Pubblicazione Web personalizzata con XML FileMaker Server 12 Pubblicazione Web personalizzata con XML 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento

Dettagli