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

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

FileMaker Server 12. Guida introduttiva

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

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive

MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive 1 MyMedia Portal LMS un servizio SaaS di e-learning basato sul Video Streaming per la vendita on line di Lezioni Multimediali interattive Cos è un servizio di e-learning SaaS, multimediale, interattivo

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

F O R M A T O E U R O P E O

F O R M A T O E U R O P E O F O R M A T O E U R O P E O P E R I L C U R R I C U L U M V I T A E INFORMAZIONI PERSONALI Nome Indirizzo Laura Bacci, PMP Via Tezze, 36 46100 MANTOVA Telefono (+39) 348 6947997 Fax (+39) 0376 1810801

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

Guida ai Servizi Internet per il Referente Aziendale

Guida ai Servizi Internet per il Referente Aziendale Guida ai Servizi Internet per il Referente Aziendale Indice Indice Introduzione...3 Guida al primo accesso...3 Accessi successivi...5 Amministrazione dei servizi avanzati (VAS)...6 Attivazione dei VAS...7

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata Giampiero Carboni Davide Travaglia David Board Rev 5058-CO900C Interfaccia operatore a livello di sito FactoryTalk

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

Rational Asset Manager, versione 7.1

Rational Asset Manager, versione 7.1 Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Note Prima di utilizzare queste informazioni e il prodotto

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi.

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet: la rete delle reti Alberto Ferrari Connessioni

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

RedDot Content Management Server Content Management Server Non sottovalutate il potenziale della comunicazione online: usatela! RedDot CMS vi permette di... Implementare, gestire ed estendere progetti

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

GESTIRE LA BIBLIOGRAFIA

GESTIRE LA BIBLIOGRAFIA GESTIRE LA BIBLIOGRAFIA STRUMENTI DI GESTIONE BIBLIOGRAFICA I software di gestione bibliografica permettono di raccogliere, catalogare e organizzare diverse tipologie di materiali, prendere appunti, formattare

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace: Overview tecnica Introduzione E un sistema EAI molto flessibile, semplice ed efficace: Introduce un architettura ESB nella realtà del cliente Si basa su standard aperti Utilizza un qualsiasi Application

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Software 2. Classificazione del software. Software di sistema

Software 2. Classificazione del software. Software di sistema Software 2 Insieme di istruzioni e programmi che consentono il funzionamento del computer Il software indica all hardware quali sono le operazioni da eseguire per svolgere determinati compiti Valore spesso

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

Dipartimento del Tesoro

Dipartimento del Tesoro Dipartimento del Tesoro POWER POINT AVANZATO Indice 1 PROGETTAZIONE DELL ASPETTO...3 1.2 VISUALIZZARE GLI SCHEMI...4 1.3 CONTROLLARE L ASPETTO DELLE DIAPOSITIVE CON GLI SCHEMI...5 1.4 SALVARE UN MODELLO...6

Dettagli

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale InterWrite SchoolBoard è un software per lavagna elettronica di facile utilizzo. Può essere adoperata anche da studenti diversamente

Dettagli

Conferencing Services. Web Meeting. Quick Start Guide V4_IT

Conferencing Services. Web Meeting. Quick Start Guide V4_IT Web Meeting Quick Start Guide V4_IT Indice 1 INFORMAZIONI SUL PRODOTTO... 3 1.1 CONSIDERAZIONI GENERALI... 3 1.2 SISTEMI OPERATIVI SUPPORTATI E LINGUE... 3 1.3 CARATTERISTICHE... 3 2 PRENOTARE UNA CONFERENZA...

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux.

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux. FAQ su GeCo Qual è la differenza tra la versione di GeCo con installer e quella portabile?... 2 Esiste la versione per Linux di GeCo?... 2 Quali sono le credenziali di accesso a GeCo?... 2 Ho smarrito

Dettagli

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

Dettagli

FileMaker Server 13. Pubblicazione Web personalizzata con PHP

FileMaker Server 13. Pubblicazione Web personalizzata con PHP FileMaker Server 13 Pubblicazione Web personalizzata con PHP 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Come installare e configurare il software FileZilla

Come installare e configurare il software FileZilla Come utilizzare FileZilla per accedere ad un server FTP Con questo tutorial verrà mostrato come installare, configurare il software e accedere ad un server FTP, come ad esempio quello dedicato ai siti

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Introduzione generale Autenticazione dell operatore https://sebina1.unife.it/sebinatest Al primo accesso ai servizi di Back Office, utilizzando

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it izticket Il programma izticket permette la gestione delle chiamate di intervento tecnico. E un applicazione web, basata su un potente application server java, testata con i più diffusi browser (quali Firefox,

Dettagli

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 Sistemi Web-Based - Terminologia Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 CLIENT: il client è il programma che richiede un servizio a un computer collegato in

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

FORM Il sistema informativo di gestione della modulistica elettronica.

FORM Il sistema informativo di gestione della modulistica elettronica. Studio FORM FORM Il sistema informativo di gestione della modulistica elettronica. We believe in what we create This is FORM power La soluzione FORM permette di realizzare qualsiasi documento in formato

Dettagli

Ing. Andrea Saccà. Stato civile: Celibe Nazionalità: Italiana Data di nascita: 9 Ottobre 1978 Luogo di nascita: Roma Residenza: Roma

Ing. Andrea Saccà. Stato civile: Celibe Nazionalità: Italiana Data di nascita: 9 Ottobre 1978 Luogo di nascita: Roma Residenza: Roma Indirizzo: Via dell'automobilismo, 109 00142 Roma (RM) Sito Web : http://www.andreasacca.com Telefono: 3776855061 Email : sacca.andrea@gmail.com PEC : andrea.sacca@pec.ording.roma.it Ing. Andrea Saccà

Dettagli

WEB Conference, mini howto

WEB Conference, mini howto Prerequisiti: WEB Conference, mini howto Per potersi collegare o creare una web conference è necessario: 1) Avere un pc con sistema operativo Windows XP o vista (windows 7 non e' ancora certificato ma

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

TeamViewer 7 Manuale Controllo remoto

TeamViewer 7 Manuale Controllo remoto TeamViewer 7 Manuale Controllo remoto TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni sul

Dettagli

Il World Wide Web: nozioni introduttive

Il World Wide Web: nozioni introduttive Il World Wide Web: nozioni introduttive Dott. Nicole NOVIELLI novielli@di.uniba.it http://www.di.uniba.it/intint/people/nicole.html Cos è Internet! Acronimo di "interconnected networks" ("reti interconnesse")!

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

È nata una nuova specie di avvocati. Liberi.

È nata una nuova specie di avvocati. Liberi. È nata una nuova specie di avvocati. Liberi. LIBERI DI NON PENSARCI Basta preoccupazioni per il back-up e la sicurezza dei tuoi dati. Con la tecnologia Cloud Computing l archiviazione e la protezione dei

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Presentazione del prodotto Easy-TO versione 5.1

Presentazione del prodotto Easy-TO versione 5.1 Presentazione del prodotto Easy-TO versione 5.1 Easy-TO è il software professionale per il Tour Operator moderno. Progettato e distribuito in Italia e all estero da Travel Software srl (Milano), un partner

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Lezione su Informatica di Base

Lezione su Informatica di Base Lezione su Informatica di Base Esplora Risorse, Gestione Cartelle, Alcuni tasti di scelta Rapida Domenico Capano D.C. Viterbo: Lunedì 21 Novembre 2005 Indice Una nota su questa lezione...4 Introduzione:

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

Manuale installazione KNOS

Manuale installazione KNOS Manuale installazione KNOS 1. PREREQUISITI... 3 1.1 PIATTAFORME CLIENT... 3 1.2 PIATTAFORME SERVER... 3 1.3 PIATTAFORME DATABASE... 3 1.4 ALTRE APPLICAZIONI LATO SERVER... 3 1.5 ALTRE APPLICAZIONI LATO

Dettagli

LINEE GUIDA E DI COORDINAMENTO ATTUATIVE DEL REGOLAMENTO PER L AGGIORNAMENTO E SVILUPPO PROFESSIONALE CONTINUO

LINEE GUIDA E DI COORDINAMENTO ATTUATIVE DEL REGOLAMENTO PER L AGGIORNAMENTO E SVILUPPO PROFESSIONALE CONTINUO LINEE GUIDA E DI COORDINAMENTO ATTUATIVE DEL REGOLAMENTO PER L AGGIORNAMENTO E SVILUPPO PROFESSIONALE CONTINUO nota tecnica ACCREDITAMENTO DELLE INIZIATIVE DI FORMAZIONE A DISTANZA Sommario 1. Iniziative

Dettagli

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO Precisione del riconoscimento Velocità di riconoscimento Configurazione del sistema Correzione Regolazione della

Dettagli

Gestore Comunicazioni Obbligatorie. Progetto SINTESI. Comunicazioni Obbligatorie. Modulo Applicativo COB. - Versione Giugno 2013 -

Gestore Comunicazioni Obbligatorie. Progetto SINTESI. Comunicazioni Obbligatorie. Modulo Applicativo COB. - Versione Giugno 2013 - Progetto SINTESI Comunicazioni Obbligatorie Modulo Applicativo COB - Versione Giugno 2013-1 Versione Giugno 2013 INDICE 1 Introduzione 3 1.1 Generalità 3 1.2 Descrizione e struttura del manuale 3 1.3 Requisiti

Dettagli

Meetecho s.r.l. Web Conferencing and Collaboration tools. Guida all installazione e all uso di Meetecho beta

Meetecho s.r.l. Web Conferencing and Collaboration tools. Guida all installazione e all uso di Meetecho beta Web Conferencing and Collaboration tools Passo 1: registrazione presso il sito Accedere al sito www.meetecho.com e registrarsi tramite l apposito form presente nella sezione Reserved Area. In fase di registrazione

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Mini manuale di Audacity.

Mini manuale di Audacity. Mini manuale di Audacity. Questo mini manuale è parte del corso on-line Usare il software libero di Altrascuola. Il corso è erogato all'interno del portale per l'e-learning Altrascuola con la piattaforma

Dettagli

PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE

PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE Versione 1.0 Via della Fisica 18/C Tel. 0971 476311 Fax 0971 476333 85100 POTENZA Via Castiglione,4 Tel. 051 7459619 Fax 051 7459619

Dettagli

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato Intalio Convegno Open Source per la Pubblica Amministrazione Leader nei Sistemi Open Source per il Business Process Management Navacchio 4 Dicembre 2008 Andrea Calcagno Amministratore Delegato 20081129-1

Dettagli

Integrated Development Environment (IDE) DevC++ 4.9.9.2

Integrated Development Environment (IDE) DevC++ 4.9.9.2 Integrated Development Environment (IDE) DevC++ 4.9.9.2 Manuale utente Data ultima revisione: 22/10/2008 Fondamenti di informatica Università Facoltà Corso di laurea Politecnico di Bari 1 a Facoltà di

Dettagli

Plesk Automation. Parallels. Domande tecniche più frequenti

Plesk Automation. Parallels. Domande tecniche più frequenti Parallels Plesk Automation Primo trimestre, 2013 Domande tecniche più frequenti Questo documento ha come scopo quello di rispondere alle domande tecniche che possono sorgere quando si installa e si utilizza

Dettagli

Client di Posta Elettronica PECMailer

Client di Posta Elettronica PECMailer Client di Posta Elettronica PECMailer PECMailer è un semplice ma completo client di posta elettronica, ovvero un programma che consente di gestire la composizione, la trasmissione, la ricezione e l'organizzazione

Dettagli

Web Conferencing Open Source

Web Conferencing Open Source Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1 Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce

Dettagli

I N F I N I T Y Z U C C H E T T I WORKFLOW HR

I N F I N I T Y Z U C C H E T T I WORKFLOW HR I N F I N I T Y Z U C C H E T T I WORKFLOW HR WORKFLOW HR Zucchetti, nell ambito delle proprie soluzioni per la gestione del personale, ha realizzato una serie di moduli di Workflow in grado di informatizzare

Dettagli

nasce il futuro v secolo a. c. agorà virtuale

nasce il futuro v secolo a. c. agorà virtuale dell e-learning nasce il futuro v secolo a. c. Con Agorà, nell antica Grecia, si indicava la piazza principale della polis, il suo cuore pulsante, il luogo per eccellenza di una fertilità culturale e scientifica

Dettagli

Le caratteristiche di interoperabilità del Terrapack 32 M

Le caratteristiche di interoperabilità del Terrapack 32 M I T P E l e t t r o n i c a Le caratteristiche di interoperabilità del Terrapack 32 M M. Guerriero*, V. Ferrara**, L. de Santis*** * ITP Elettronica ** Dipartimento di Ingegneria Elettronica Univ. La Sapienza

Dettagli

FileMaker Server 13. Guida introduttiva

FileMaker Server 13. Guida introduttiva FileMaker Server 13 Guida introduttiva 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono marchi

Dettagli

E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI

E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI E-MAIL INTEGRATA Ottimizzazione dei processi aziendali Con il modulo E-mail Integrata, NTS Informatica ha realizzato uno strumento di posta elettronica

Dettagli

Guida all'installazione di SLPct. Manuale utente. Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it

Guida all'installazione di SLPct. Manuale utente. Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it Guida all'installazione di SLPct Manuale utente Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it Premessa Il redattore di atti giuridici esterno SLpct è stato implementato da Regione

Dettagli

Progetto Didattico di Informatica Multimediale

Progetto Didattico di Informatica Multimediale Progetto Didattico di Informatica Multimediale VRAI - Vision, Robotics and Artificial Intelligence 20 aprile 2015 Rev. 18+ Introduzione Le videocamere di riconoscimento sono strumenti sempre più utilizzati

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

SIASFi: il sistema ed il suo sviluppo

SIASFi: il sistema ed il suo sviluppo SIASFI: IL SISTEMA ED IL SUO SVILUPPO 187 SIASFi: il sistema ed il suo sviluppo Antonio Ronca Il progetto SIASFi nasce dall esperienza maturata da parte dell Archivio di Stato di Firenze nella gestione

Dettagli

Web Conferencing and Collaboration tool

Web Conferencing and Collaboration tool Web Conferencing and Collaboration tool La piattaforma Meetecho Piattaforma di Web Conferencing e Collaborazione on line in tempo reale Caratteristiche generali Soluzione client-server progettata per essere

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

SAI QUANTO TEMPO IMPIEGHI A RINTRACCIARE UN DOCUMENTO, UN NUMERO DI TELEFONO O UNA E-MAIL?

SAI QUANTO TEMPO IMPIEGHI A RINTRACCIARE UN DOCUMENTO, UN NUMERO DI TELEFONO O UNA E-MAIL? archiviazione ottica, conservazione e il protocollo dei SAI QUANTO TEMPO IMPIEGHI A RINTRACCIARE UN DOCUMENTO, UN NUMERO DI TELEFONO O UNA E-MAIL? Il software Facile! BUSINESS Organizza l informazione

Dettagli

Web conferencing software. Massimiliano Greco - Ivan Cerato - Mario Salvetti

Web conferencing software. Massimiliano Greco - Ivan Cerato - Mario Salvetti 1 Web conferencing software Massimiliano Greco - Ivan Cerato - Mario Salvetti Arpa Piemonte 2 Che cosa è Big Blue Button? Free, open source, web conferencing software Semplice ed immediato ( Just push

Dettagli

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB...

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 1. CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 5 1.3.1 CREAZIONE GUIDATA DELLA FATTURA IN FORMATO XML

Dettagli

Funzioni di base. Manualino OE6. Outlook Express 6

Funzioni di base. Manualino OE6. Outlook Express 6 Manualino OE6 Microsoft Outlook Express 6 Outlook Express 6 è un programma, incluso nel browser di Microsoft Internet Explorer, che ci permette di inviare e ricevere messaggi di posta elettronica. È gratuito,

Dettagli

Simplex Gestione Hotel

Simplex Gestione Hotel Simplex Gestione Hotel Revisione documento 01-2012 Questo documento contiene le istruzioni per l'utilizzo del software Simplex Gestione Hotel. E' consentita la riproduzione e la distribuzione da parte

Dettagli

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014 Processi di business sovra-regionali relativi ai sistemi regionali di FSE Versione 1.0 24 Giugno 2014 1 Indice Indice... 2 Indice delle figure... 3 Indice delle tabelle... 4 Obiettivi del documento...

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho

Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho Tobia Castaldi Alessandro Amirante Lorenzo Miniero Simon Pietro Romano Giorgio Ventre 02/10/2009 GARR 2009 "Network

Dettagli

L evoluzione del software per l azienda moderna. Gestirsi / Capirsi / Migliorarsi

L evoluzione del software per l azienda moderna. Gestirsi / Capirsi / Migliorarsi IL GESTIONALE DEL FUTURO L evoluzione del software per l azienda moderna Gestirsi / Capirsi / Migliorarsi IL MERCATO ITALIANO L Italia è rappresentata da un numero elevato di piccole e medie aziende che

Dettagli

Zabbix 4 Dummies. Dimitri Bellini, Zabbix Trainer Quadrata.it

Zabbix 4 Dummies. Dimitri Bellini, Zabbix Trainer Quadrata.it Zabbix 4 Dummies Dimitri Bellini, Zabbix Trainer Quadrata.it Relatore Nome: Biografia: Dimitri Bellini Decennale esperienza su sistemi operativi UX based, Storage Area Network, Array Management e tutto

Dettagli