Indice. Università degli studi di Ferrara

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Indice. Università degli studi di Ferrara"

Transcript

1 Università degli studi di Ferrara Indice 1. Introduzione Progetto dell'applicazione Web "Missioni Amministratori" Scopo dell applicazione Contesto Specifiche Gli stadi di una richiesta di missione Gruppi Utente Architettura Gestione dei permessi Architettura del database Struttura delle pagine Web Tecnologie impiegate Server Web Apache MySql HTML e CSS Javascript P.H.P Storia: Caratteristiche: Realizzazione dell applicazione Tabelle del Database Struttura degli script Implementazione del motore a workflow Le transizioni e la compatibilità con i browser Missione: dalla richiesta all approvazione

2 Università degli studi di Ferrara Richiesta Approvazione Compilazione dettagli Verifica spese e saldo Chiusura Archiviazione Report Amministrazione Test di servizio Conclusioni Riferimenti Indice delle figure

3 1. Introduzione Gli enti pubblici, responsabili della gestione di numerosi dati relativi ai cittadini, presentano un ampia quantità di procedure burocratiche per la raccolta e amministrazione degli stessi. Con il passare degli anni gli enti hanno percepito sempre più la necessità di informatizzare i loro servizi e le loro procedure, al fine di ridurre i tempi morti della burocrazia e di migliorare la qualità del servizio, oltre che di raggiungere in maniera più efficiente i cittadini. Il Comune di Cento, che da tempo è uno dei comuni più orientati verso l informatizzazione dei propri apparati, presenta già numerosi servizi realizzati tramite applicazioni Web, come ad esempio il catasto o l archivio contenente i verbali del consiglio comunale, entrambi consultabili via web. L informatizzazione del comune non si limita però alla fornitura di servizi per il cittadino, ma comprende anche numerosi applicativi atti a migliorare la qualità del lavoro all interno del comune stesso, come un servizio di telefonia VoIP o applicazioni mirate ad affiancare i vari uffici nella compilazione della modulistica, richiesta dalla burocrazia. Un esempio di questo secondo caso è l applicazione Missioni Dipendenti, che si occupa di gestire le varie pratiche riguardanti le uscite dei dipendenti comunali, specialmente per quel che concerne l erogazione di rimborsi spese, nell ottica della compilazione del bilancio annuale. Questa tesi descrive la progettazione e realizzazione di un ampliamento di Missioni Dipendenti, tramite una nuova applicazione, Missioni Amministratori, che si occupa di gestire le missioni di consiglieri e assessori (collettivamente chiamati amministratori), i quali, essendo sottoposti a normative differenti rispetto al resto dei dipendenti comunali in materia di rimborsi spese, non vengono trattati dall applicazione precedente. Missioni Amministratori ha quindi lo scopo di permettere a consiglieri e assessori di compilare autonomamente le richieste e le note spese relative alle proprie missioni, riducendo al minimo la necessità di spostarsi tra uffici per consegnare i vari moduli. L applicazione deve inoltre permettere alla segreteria generale, che si occupa di stilare il bilancio del comune, di visualizzare report dettagliati sulle spese sostenute dagli amministratori, in modo da facilitarne la compilazione. Dopo aver definito con precisione quale fosse l iter burocratico che una missione deve seguire e quali fossero gli attori coinvolti in esso, è stato

4 possibile passare al progetto. Quest ultimo è partito con l introduzione di un motore a workflow (o W.E. che sta per Workflow Engine) per la gestione dell evoluzione di una richiesta di missione, in modo da controllare efficacemente le varie operazioni che caratterizzano il passaggio di quest ultima da uno stadio all altro. In seguito l ambito d impiego del W.E. si è allargato, comprendendo anche la gestione delle transizioni tra una pagina web e l altra, al fine di sovraintendere l applicazione di politiche di sicurezza che consentano agli utenti l accesso solamente alle pagine per cui hanno i diritti. Una volta stabilite le fondamenta del progetto, ci si è occupati di realizzare un applicazione quanto più simile, come interfaccia e logica d utilizzo, a quella già esistente, al fine di renderne l utilizzo il più immediato possibile. Infine è stata progettata un architettura di base degli script, per una facile realizzazione e manutenzione dell applicazione. A questo punto si è passati alla fase di realizzazione, basandosi su tutto ciò che è stato definito in fase di progettazione e seguendo le linee guida che sono state elencate. Sono state create le tabelle necessarie, è stato sviluppato il motore a workflow e basandosi su di esso sono state create le varie pagine, partendo inizialmente da blocchi di base che sono stati man mano composti per realizzare strutture più complesse. Si è inoltre cercato di garantire la massima compatibilità dell applicativo con i vari browser presenti sul mercato, allo scopo di rendere il servizio fruibile indipendentemente dalla configurazione della macchina utilizzata per accedervi. Questa tesi è il frutto di un tirocinio svolto presso il Servizio Sistemi Informativi (SSI) del Comune di Cento che si occupa della gestione e amministrazione hardware e software della rete civica, l amministrazione dell intranet comunale, del portale del Comune, la gestione e realizzazione di servizi on-line e siti Web strettamente collegati al Comune.

5 2. Progetto dell'applicazione Web "Missioni Amministratori" Il progetto prevede lo sviluppo di un applicazione che permetta di informatizzare le procedure legate alla richiesta e alla gestione delle missioni degli amministratori, intendendo con missioni le trasferte, o uscite, che un dipendente effettua Scopo dell applicazione L applicativo deve permettere di gestire i vari stadi di una missione, partendo dalla richiesta di autorizzazione per una nuova uscita, fino ad arrivare all archiviazione, passando per l erogazione di un eventuale anticipo, la compilazione delle note spesa, il calcolo del rimborso chilometrico e il saldo. Bisogna inoltre prevedere una struttura dell applicazione che permetta a ogni amministratore, nel senso di consigliere o assessore, di inserire autonomamente i dati delle proprie missioni senza però inserire procedure troppo rigide, in modo da permettere a eventuali delegati di effettuare inserimenti in vece degli amministratori. Si deve inoltre prevedere la creazione di report riassuntivi, che comprendano spese effettuate e rimborsi, sia generali sia riferiti a un singolo amministratore, in modo da semplificare la stesura del bilancio annuale Contesto Il comune di Cento, da tempo indirizzato verso l informatizzazione delle procedure amministrative, disponeva già di un applicazione Web, Missioni Dipendenti, molto simile a quella che è stata realizzata. La principale differenza tra le due applicazioni, infatti, riguarda i soggetti che vengono gestiti: Missioni Dipendenti si occupa di tutti i dipendenti comunali ad eccezione di consiglieri e assessori, che vengono trattati Missioni Amministratori.

6 La necessità di utilizzare due applicazioni diverse sorge dalle differenze a livello burocratico e amministrativo nella gestione dei rimborsi spese degli amministratori rispetto agli altri dipendenti comunali. Ad eccezione di questo però, le funzioni svolte dalle due applicazioni sono pressoché identiche. Il contesto iniziale prevedeva quindi un insieme di procedure burocratiche per la compilazione delle richieste di rimborso, che veniva in parte informatizzato tramite un applicazione preesistente e in parte svolto nella maniera tradizionale, per mezzo di diversi moduli cartacei Specifiche In questa sezione si definisce qual è la realtà che l applicazione deve rappresentare: nello specifico si individuano i vari gruppi utente e si schematizza il percorso burocratico che porta una missione dalla richiesta all archiviazione Gli stadi di una richiesta di missione La prima cosa da individuare è la trafila di passaggi che vengono effettuati per ottenere il rimborso spese di un uscita. Come si può vedere in figura 1, per prima cosa viene compilata una richiesta di missione e sottoposta al proprio responsabile. Dopo l approvazione, nel caso si debba ricevere un anticipo, la richiesta arriva all economato che si occupa di erogarlo. A questo punto l amministratore può svolgere la missione. Al termine di essa bisogna compilare la nota spese e l elenco delle tappe (per il calcolo del rimborso chilometrico) e consegnarla in economato, per un rimborso immediato, o al gabinetto del sindaco, per un rimborso in busta paga. Economato e gabinetto del sindaco si occuperanno poi di fornire i dati alla segreteria amministrativa, che procederà all archiviazione.

7 FIGURA 1: L EVOLUZIONE DI UNA MISSIONE, DALLA RICHIESTA ALL ARCHIVIAZIONE.

8 Gruppi Utente Come si è potuto vedere, la realtà che il programma va a rappresentare è composta di diversi agenti che interagiscono, ognuno con funzioni e privilegi specifici. Questi agenti corrispondono a diversi tipi di utenti, nello specifico: consigliere o assessore, responsabile, economato, gabinetto del sindaco, segreteria amministrativa e amministratore di sistema. Chi accede all applicazione può appartenere a uno o più di questi gruppi, come pure a nessuno (il generico dipendente comunale ad esempio). Le azioni che i vari gruppi utente possono compiere sono le seguenti. Consigliere o Assessore: - può sottoporre al suo responsabile una richiesta di missione; - può compilare le note spese e le tappe percorse relative alle missioni da lui eseguite; - può visualizzare i dati relativi alle missioni che ha svolto. Responsabile: - può approvare o rifiutare una richiesta di missione a lui sottoposta; - può visualizzare i dati relativi alle missioni che ha approvato. Economato: - eroga gli anticipi; - effettua il saldo; - può visualizzare i dati relativi alle missioni. Gabinetto del Sindaco: - effettua il saldo; - verifica i dati relativi alle missioni prima di chiuderle; - chiude le missioni; - può visualizzare i dati relativi alle missioni.

9 Segreteria Amministrativa: - archivia le missioni; - può visualizzare report riassuntivi sulle varie missioni. Amministratore di Sistema: - si occupa della corretta assegnazione dei gruppi agli utenti; - esegue operazioni di manutenzione sull applicazione. Oltre a questo, bisogna dare la possibilità agli agenti che si occupano del saldo e dell archiviazione (economato, gabinetto del sindaco e segreteria amministrativa), di correggere eventuali errori che dovessero riscontrare, permettendo quindi loro di modificare le note spese e in alcuni casi la lista delle tappe. Un ultimo punto riguarda la necessità di un sistema d impersonificazione, che permetta ad alcuni utenti specifici di agire in vece di altri, da cui hanno ricevuto in precedenza la delega. In questa maniera, ad esempio, la segretaria del sindaco può compilare una richiesta di missione in nome di un assessore se quest ultimo decide di demandare a lei la parte burocratica della richiesta Architettura Nel progettare la struttura dell applicazione si è dovuto tenere presente lo scopo principale per cui essa è nata, ovvero gestire l evoluzione di una missione attraverso le varie fasi che la contraddistinguono. L idea di fondo è di un entità missione, con vari attributi che la caratterizzano, che passa da uno stadio all altro, ad esempio da richiesta pendente ad approvata. A ogni passaggio di stato possono inoltre essere associate delle condizioni, che devono essere verificate affinché esso possa essere eseguito, oppure operazioni da svolgere (ad esempio, inviare un di conferma all utente). Si è quindi pensato di organizzare il flusso delle azioni tramite un workflow [Workflow], intendendo con questo termine la serie d interazioni che devono avvenire per completare un azione. A questo scopo si è realizzato un motore a workflow, ovvero l applicazione software che si occupa di interpretare gli eventi del sistema e agire su di essi in base alle regole del workflow.

10 Lo scopo del motore non si limita però alle missioni: esso, infatti, si preoccupa di costruire ogni pagina del sito, applicando il concetto di workflow all intera applicazione. Il passaggio tra due pagine è l equivalente di un cambio di stato e le condizioni sulle transizioni tra uno stato/pagina e l altro sono caratterizzate da un controllo dei permessi dell utente, per consentire l accesso solamente alle pagine per cui possiede i diritti Gestione dei permessi La gestione dei permessi degli utenti, un punto importante in qualsiasi applicazione di un certo livello, diventa di fondamentale importanza nel caso delle missioni degli amministratori, dove vengono gestiti dei rimborsi spese. Anche senza prendere in considerazione la possibile malafede degli utenti, calcolare un bilancio basandosi su dati che possono essere modificati liberamente da chiunque, creerebbe dubbi sulla validità dello stesso. Per questo motivo l esecuzione di qualsiasi azione da parte dell utente è sottoposta a un controllo: l azione viene eseguita solamente se l utente detiene il permesso per eseguirla. Un utente può possedere dei diritti specifici legati a sé e altri dovuti ai gruppi a cui appartiene. L unione di questi forma l insieme dei suoi permessi. Le azioni controllate, invece, sono fondamentalmente le richieste di pagina fatte al server. Ogni richiesta che il browser invia al server viene considerata come una transizione tra lo stato attuale e quello specificato da essa. Se si tenta di eseguire una transizione senza averne il diritto, il server la ignora e restituisce un errore. Uno schema riassuntivo di questo procedimento si può vedere in figura 2, dove successo rappresenta la restituzione della pagina richiesta, mentre fallimento rappresenta il messaggio di errore.

11 FIGURA 2: LA GESTIONE DEI PERMESSI 1.6. Architettura del database Il database è strutturato in tre sezioni fondamentali: tabelle relative alle missioni, tabelle relative al motore a workflow e tabelle relative ai permessi. In aggiunta a queste esistono alcune tabelle di servizio per il funzionamento dell applicazione. Come si può vedere in figura 3, che è una rappresentazione del database ad alto livello, le tre sezioni sono cosi composte: Parte relativa alle missioni (in verde): - Missioni. Tutte le informazioni generali che riguardano un uscita; - Utenti. Le persone associate a una missione, il soggetto che la intraprende e i responsabili; - Mezzi. I veicoli che possono essere utilizzati per gli spostamenti; - Tappe. Le tappe percorse, associate alla missione in cui sono state effettuate. Parte relativa al motore a workflow (in rosso): - Stato. L insieme degli stati del motore, con le relative proprietà; - Transizioni. L insieme delle transizioni. Parte relativa ai permessi (in arancio):

12 - Permessi. L insieme delle tabelle che associano i permessi agli utenti del sistema, da non confondere con gli utenti legati a una specifica missione. FIGURA 3: LA STRUTTURA DEL DATABASE 1.7. Struttura delle pagine Web Nel progettare la struttura delle pagine, considerazione che è stata fatta è che l applicazione verrà usata da persone che hanno già utilizzato Missioni Dipendenti, per cui realizzare pagine con un aspetto, e un impostazione logica, simile a quello dell applicazione già esistente è di fondamentale importanza. Per questo motivo, come si può vedere in figura 4, si è divisa l interfaccia in tre parti: Header, Menù e Contenuto. - Header. Contiene il banner del Comune di Cento e il menu legato al sistema d impersonificazione; - Menù. Mostra l elenco delle azioni che l utente può eseguire, raggruppate per gruppo di appartenenza; - Contenuto. Il contenuto specifico. Inoltre, in figura 5 sono riportate entrambe le interfacce, per un rapido confronto. La struttura interna delle pagine, invece, è stata orientata verso il maggior riutilizzo di codice possibile, ai fini di una maggior manutenibilità.

13 Esiste una pagina principale, strutturata come l interfaccia, il cui contenuto viene creato dinamicamente. Header e menù vengono creati da funzioni apposite a ogni caricamento della pagina, ma non subiscono variazioni sostanziali tra uno stato e l altro. Il contenuto invece dipende dallo stato in cui ci si trova: ognuno di essi ha una vista corrispondente, se possibile condivisa tra più stati, che determina cosa viene visualizzato. Le viste inoltre possono essere realizzate componendo altre viste, ad esempio per generare report man mano più dettagliati. Va inoltre previsto un controllo lato client dei dati inseriti nelle form, in modo da ridurre il più possibile rallentamenti dovuti a comunicazioni con il server. Infatti, in caso di mancato controllo lato client la spedizione di valori errati comporterebbe l invio da parte del server di un messaggio di errore e la richiesta di dati corretti. Se i controlli vengono invece eseguiti anche lato client, al server arrivano solo dati corretti. FIGURA 4: L INTERFACCIA DELL APPLICAZIONE

14 FIGURA 5: UN CONFRONTO TRA LE DUE APPLICAZIONI: IN ALTO MISSIONI DIPENDENTI E IN BASSO MISSIONI AMMINISTRATORI.

15 3. Tecnologie impiegate Il progetto si basa sul popolare quadrinomio Linux, Apache, MySql e P.H.P. (L.A.M.P.). Apache è il server web, nel caso specifico, in esecuzione su una macchina virtuale linux, MySql invece è il Data Base Management System (D.B.M.S.) mentre P.H.P. è il linguaggio tramite il quale si realizzano dinamicamente pagine html. In aggiunta a questi, si è utilizzato il linguaggio di scripting Javascript per la manipolazione della pagina lato client e i fogli di stile CSS per la parte grafica Server Web Apache Apache HTTP Server [Server Web Apache], o più comunemente Apache, è il nome dato alla piattaforma server Web modulare più diffusa (ma anche al gruppo di lavoro open source che ha creato, sviluppato e aggiornato il software server), in grado di operare da sistemi operativi UNIX-Linux e Microsoft. Apache è un software che realizza le funzioni di trasporto delle informazioni, d internetwork e di collegamento, ha il vantaggio di offrire anche funzioni di controllo per la sicurezza come quelli che compie il proxy. Il progetto Apache nacque nel A quel tempo, il server Web più diffuso era il daemon HTTP pubblico sviluppato da Rob McCool al NCSA (National Center for Supercomputing Application), Università dell'illinois. Dal momento però che a partire dal 1994 lo sviluppo di questo server si era fermato (anche perché il suo autore aveva lasciato l'ncsa) un gruppo di webmaster aveva iniziato a sviluppare patch in maniera autonoma. La versione 1.0 fu pubblicata l'1 dicembre Nel giro di un anno, la sua diffusione aveva già superato quella del server NCSA da cui era derivato. La versione 2.0 di Apache venne rilasciata durante la conferenza ApacheCon, tenutasi nel marzo 2000 a Orlando, in Florida. Il grande successo di diffusione di questo software è l'indicatore più chiaro della qualità e dell'affidabilità di questo prodotto: secondo un'indagine Netcraft del 2005, su 75 milioni di siti web, circa 52 milioni utilizzavano Apache, a ottobre 2006 il numero è salito a 60 milioni (60,32% del totale). Operativamente, è composto da un demone, in ambiente UNIX, o da un servizio, in ambiente Microsoft, che sulla base delle impostazioni contenute

16 nel file di configurazione permette l'accesso a un o più siti, gestendo varie caratteristiche di sicurezza e potendo ospitare diverse estensioni per pagine attive (o dinamiche), come PHP o Jakarta/Tomcat MySql MySQL è un database management system (DBMS) relazionale [DBMS MySQL], composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. Dal 1996 supporta la maggior parte della sintassi SQL [Linguaggio SQL] e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java e un driver per Mono e.net. Il codice di MySQL viene sviluppato fin dal 1979 dalla ditta TcX ataconsult, adesso MySQL AB, ma è solo dal 1996 che viene distribuita una versione che supporta SQL, prendendo spunto da un altro prodotto: msql. Il codice di MySQL è di proprietà dell omonima società, viene però distribuito con la licenza GNU GPL oltre che con una licenza commerciale. Fino alla versione 4.0, una buona parte del codice del client era licenziato con la GNU LGPL e poteva dunque essere utilizzato per applicazioni commerciali. Dalla versione 4.1 in poi, anche il codice dei client è distribuito sotto GNU GPL. Esiste peraltro una clausola estensiva che consente l'utilizzo di MySQL con una vasta gamma di licenze libere. MySQL svolge il compito di DBMS nella piattaforma LAMP, una delle più usate e installate su Internet per lo sviluppo di siti e applicazioni web dinamiche. Nel luglio 2007 la società svedese MySQL AB aveva 385 dipendenti in 265 paesi. I suoi principali introiti provengono dal supporto agli utilizzatori di MySQL tramite il pacchetto Enterprise, dalla vendita delle licenze commerciali e dall'utilizzo da parte di terzi del marchio MySQL. Il 16 gennaio 2008 Sun Microsystems ha acquistato la società per un miliardo di dollari, stimando il mercato del database in 15 miliardi di dollari. Nel caso specifico del progetto ci si è inoltre avvalsi di MySql administrator, un programma che permette di eseguire operazioni di amministrazione sul database tramite un interfaccia grafica.

17 1.10. HTML e CSS L'HyperText Markup Language (HTML, traduzione letterale: linguaggio di marcatura per ipertesti) [Linguaggio HTML] è un linguaggio usato per descrivere la struttura dei documenti ipertestuali disponibili nel World Wide Web. Tutti i siti web sono scritti in HTML, codice che viene letto ed elaborato dal browser, il quale genera la pagina che viene visualizzata sullo schermo del computer. L'HTML non è un linguaggio di programmazione, ma un linguaggio di markup, ossia descrive il contenuto, testuale e non, di una pagina web. Punto HTML (.html) o punto HTM (.htm) è anche l'estensione comune dei documenti HTML. È stato sviluppato alla fine degli anni '80 da Tim Berners-Lee al CERN di Ginevra. Verso il 1994 ha avuto una forte diffusione, in seguito ai primi utilizzi commerciali del web. L'HTML è un linguaggio di pubblico dominio la cui sintassi è stabilita dal World Wide Web Consortium (W3C) [W3C], e che è basato su un altro linguaggio avente scopi più generici, l'sgml. Durante gli anni l'html ha subito molte revisioni e miglioramenti, che sono stati indicati secondo la classica numerazione usata per descrivere le versioni dei software. Attualmente l'ultima versione disponibile è la versione 4.01, resa pubblica il 24 dicembre Dopo un periodo di sospensione, in cui il W3C si è focalizzato soprattutto sulle definizioni di XHTML (applicazione a HTML di regole e sintassi in stile XML) e dei fogli di stile Cascading Style Sheet, CSS, nel 2007 è ricominciata l'attività di specifica con la definizione, ancora in corso, di HTML 5, attualmente allo stato di bozza. I fogli di stile a cascata (dall'inglese CSS Cascading Style Sheets) [CSS], detti semplicemente fogli di stile, vengono usati per definire la rappresentazione di documenti HTML e XHTML. Le regole per comporre i fogli di stile sono contenute in un insieme di direttive (Recommendations) emanate a partire dal 1996 dal W3C. L'introduzione dei fogli di stile si è resa necessaria per separare i contenuti dalla formattazione e permettere una programmazione più chiara e facile da utilizzare, sia per gli autori delle pagine HTML che per gli utenti.

18 1.11. Javascript JavaScript [Linguaggio JavaScript] è un linguaggio di scripting orientato agli oggetti comunemente usato nei siti web. Fu originariamente sviluppato da Brendan Eich della Netscape Communications con il nome di Mocha e successivamente di LiveScript, ma in seguito è stato rinominato "JavaScript" ed è stato formalizzato con una sintassi più vicina a quella del linguaggio Java di Sun Microsystems. JavaScript è stato standardizzato per la prima volta tra il 1997 e il 1999 dall ECMA con il nome ECMAScript. L'ultimo standard, del dicembre 1999, è ECMA-262 Edition 3, e corrisponde a JavaScript 1.5. È anche uno standard ISO. Prima dell'avvento di JavaScript, affinché una pagina web rispondesse a una interazione con l'utente (un clic su di un bottone di un form ad esempio) era necessario comunicare con il server (il computer remoto al quale sarebbero stati inviati i dati per la loro elaborazione). Un classico esempio é quello del controllo dei dati inseriti dall'utente in un form. Se non si impiega JavaScript, ecco cosa accade: l'utente compila il form, probabilmente dimentica di inserire alcuni dati ritenuti obbligatori oppure li inserisce in modo errato (ad esempio, una data, un indirizzo , il codice fiscale ecc ). Nel momento in cui l'utente inoltra il form cliccando sull'apposito pulsante d invio, i dati vengono spediti al server e qui sottoposti a un processo di controllo, se questo controllo non va a buon fine, l'utente si vede recapitare una pagina web contenente il form appena compilato, insieme ad una serie di messaggi di errore, relativi a quelle informazioni non fornite o fornite in modo errato. Tutto ciò comporta dei tempi di attesa legati alla comunicazione tra il client, la macchina dell'utente, e il server. Questi tempi possono essere ridotti se anche la pagina web potesse eseguire quei controlli di correttezza sui dati. Questo è un classico esempio d impiego di JavaScript per migliorare il grado d interazione dell'utente con una pagina web. JavaScript è un linguaggio di programmazione orientato a oggetti con una sintassi vagamente basata sul C. Come il C, JavaScript ha il concetto di parole chiave riservate, che rendono quasi impossibile espandere il linguaggio (essendo eseguito direttamente dal sorgente). Come nel C, il linguaggio non ha propri costrutti d input o output; mentre il C si affida alle librerie I/O standard, un interprete JavaScript si basa su un programma ospite in cui è integrato. Ci sono molti programmi ospiti di questo tipo, di cui quelli relativi al Web sono gli esempi più noti. Questi verranno illustrati per primi. JavaScript, se integrato in un browser Web, si collega alle applicazioni tramite interfacce chiamate DOM (Document Object Model), a lato server (web server) e al lato client (browser). Molti siti web usano la tecnologia

19 JavaScript lato client per creare potenti applicazioni web dinamiche. Un uso principale del Javascript basato su web è la scrittura di piccole funzioni integrate nelle pagine HTML, che interagiscono con il DOM del browser per compiere determinate azioni non possibili con il solo HTML statico, come aprire una nuova finestra, controllare i valori nei campi d ingresso, cambiare le immagini al passaggio del mouse, ecc. Sfortunatamente, i DOM dei vari browser non sono standardizzati, browser diversi espongono diversi oggetti o metodi allo script, ed è quindi spesso necessario scrivere differenti versioni di una funzione JavaScript per ciascuno dei browser. Al di fuori del Web, interpreti JavaScript sono integrati in diverse applicazioni. Adobe Acrobat e Adobe Reader supportano JavaScript nei file PDF. La piattaforma Mozilla, che è alla base di molti diffusi browser Web, usa JavaScript per implementare l'interfaccia utente e la logica di transazione dei suoi vari prodotti. Gli interpreti JavaScript sono integrati anche nelle applicazioni proprietarie prive di interfacce programmabili via script. Il principale tag del linguaggio Javascript è il tag script. Questo tag è un'estensione del HTML, in quanto permette la gestione di codice esterno che non è nativo HTML. Un documento può presentare in più parti la definizione del tag SCRIPT. Tramite questo tag si può rappresentare la versione utilizzata e, a seconda del browser, si avrà l'interpretazione appropriata.

20 1.12. P.H.P. PHP (acronimo ricorsivo di PHP Hypertext Preprocessor) è un linguaggio di scripting interpretato, con licenza open source e parzialmente libera (ma incompatibile con la GPL), originariamente concepito per la realizzazione di pagine web dinamiche. Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a linea di comando o applicazioni stand-alone con interfaccia grafica Storia: Nato nel 1994 ad opera del danese Rasmus Lerdorf, PHP era in origine una raccolta di script CGI che permettevano una facile gestione delle pagine personali. Per questo motivo il significato originario dell'acronimo pare fosse Personal Home Page (sull'origine dell'acronimo ci sono tuttora alcuni dubbi, alimentati dallo stesso Lerdorf che ha contribuito volontariamente a generare attorno al nome questo alone di mistero). Il pacchetto originario venne in seguito esteso e riscritto dallo stesso Lerdorf in C, aggiungendo funzionalità quali il supporto al database msql e prese a chiamarsi PHP/FI, dove FI sta per Form Interpreter (interprete di form), prevedendo la possibilità di integrare il codice PHP nel codice HTML in modo da semplificare la realizzazione di pagine dinamiche. In quel periodo, domini Internet annunciavano di aver installato PHP. A questo punto il linguaggio cominciò a godere di una certa popolarità tra i progetti open source del web, e venne così notato da due giovani programmatori: Zeev Suraski e Andi Gutmans. I due collaborarono nel 1998 con Lerdorf allo sviluppo della terza versione di PHP (il cui acronimo assunse il significato attuale) riscrivendone il motore che fu battezzato Zend da una contrazione dei loro nomi. Le caratteristiche chiave della versione PHP 3.0 frutto del loro lavoro, erano la straordinaria estensibilità, la connettività ai database e il supporto iniziale per il paradigma a oggetti. Verso la fine del 1998 PHP 3.0 era installato su circa il 10% dei server web presenti su Internet. PHP diventò a questo punto talmente maturo da competere con ASP, linguaggio lato server analogo a PHP sviluppato da Microsoft, e cominciò a essere usato su larga scala. La versione 4 di PHP venne rilasciata nel 2000 e prevedeva notevoli migliorie. Attualmente siamo alla quinta versione, sviluppata da un team di programmatori, che comprende ancora Lerdorf, oltre a Suraski e Gutmans.

21 La popolarità del linguaggio PHP è in costante crescita grazie alla sua flessibilità: nel Giugno 2001, ha superato il milione di siti che lo utilizzano. Nell'ottobre 2002, più del 45% dei server Apache usavano PHP. Nel gennaio 2005 è stato insignito del titolo di "Programming Language of 2004" dal TIOBE Programming Community Index, classifica che valuta la popolarità dei linguaggi di programmazione sulla base d informazioni raccolte dai motori di ricerca. Nel 2005 la configurazione LAMP (Linux, Apache, MySQL, PHP) supera il 50% del totale dei server sulla rete mondiale Caratteristiche: PHP riprende per molti versi la sintassi del C, come peraltro fanno molti linguaggi moderni, e del Perl. È un linguaggio a tipizzazione debole e dalla versione 5 migliora il supporto al paradigma di programmazione ad oggetti. Certi costrutti derivati dal C, come gli operatori fra bit e la gestione di stringhe come array, permettono in alcuni casi di agire a basso livello; tuttavia è fondamentalmente un linguaggio di alto livello, caratteristica questa rafforzata dall'esistenza delle sue moltissime API, oltre 3000 funzioni del nucleo base. PHP è in grado di interfacciarsi a innumerevoli database tra cui MySQL, PostgreSQL, Oracle, Firebird, IBM DB2, Microsoft SQL Server, solo per citarne alcuni, e supporta numerose tecnologie, come XML, SOAP, IMAP, FTP, CORBA. Si integra anche con altri linguaggi/piattaforme quali Java e.net e si può dire che esista un wrapper per ogni libreria esistente, come CURL, GD, Gettext, GMP, Ming, OpenSSL e altro. Fornisce un'api specifica per interagire con Apache, nonostante funzioni naturalmente con numerosi server web. È anche ottimamente integrato con il database MySQL, per il quale possiede più di un API. Per questo motivo esiste un'enorme quantità di script e librerie in PHP, disponibili liberamente su Internet. La versione 5, comunque, integra al suo interno un piccolo database embedded, SQLite. Dispone di un archivio chiamato PEAR che mette a disposizione un framework di librerie riusabili per lo sviluppo di applicazioni PHP e di PECL che raccoglie tutte le estensioni conosciute scritte in C.

22 4. Realizzazione dell applicazione Nella realizzazione si mette in pratica tutto quello che è stato concepito in fase di progettazione utilizzando le tecnologie prescelte, creando le implementazioni necessarie alla realizzazione degli schemi, delle interfacce e delle funzionalità viste nei capitoli precedenti. Un importante punto da tenere presente è che l applicazione viene integrata nella rete del comune, che possiede già sistemi propri di autenticazione dell utente. Si può quindi tranquillamente assumere di disporre di tutte le informazioni necessarie (come identità e gruppi di appartenenza) sugli utenti che interagiscono col sistema Tabelle del Database In precedenza abbiamo visto la struttura generale del database, ora invece mostriamo quali sono le tabelle nello specifico e come sono organizzate. In figura 6 si può vedere lo schema della base di dati, in cui sono evidenziate le tre macroaree presentate nel progetto. Le tabelle esterne ai riquadri sono da considerarsi di servizio mentre quelle in arancio sono esterne al database, poichè appartengono al DB di Missioni Dipendenti. Vengono riutilizzate perché i dati che contengono sono necessari anche a quest applicazione e sarebbe stato ridondante replicarli. FIGURA 6: LO SCHEMA DEL DATABASE

23 Le tabelle stato e transizione sono quelle che governano il motore a workflow. La prima contiene tutti i possibili stati dell applicazione e specifica per ognuno di essi la relativa vista e modello dati (questo punto verrà approfondito in seguito). Transizione invece contiene tutte le transizioni tra i vari stati, indicando per ognuna di esse lo stato iniziale e quello finale. Ulteriori informazioni necessarie come le condizioni e le post-operazioni sono invece memorizzate su file esterni, poiché avrebbero appesantito eccessivamente il DB. Andando ad analizzare la parte relativa alla gestione dei permessi, troviamo la tabella Gruppo che contiene l elenco dei gruppi logici interni dell applicazione (quelli elencati nella sezione 2.3.2). Le tabelle Associa Gruppo e Permessi Utenti servono ad associare rispettivamente interi gruppi utenti di dominio e utenti specifici ai gruppi interni dell applicazione. Infine Permessi Gruppi lega ognuno dei gruppi interni ai rispettivi permessi sulle transizioni. Come si può notare ogni permesso è legato a un gruppo interno. Se un utente possiede permessi specifici, li ha comunque ottenuti attraverso l associazione a un gruppo interno. L insieme di tabelle relative alle missioni è invece particolarmente semplice. Missione contiene tutte le informazioni generali relative alle missioni non ancora archiviate (richiedente, responsabile, luogo, date d inizio e fine, scopo, eventuale anticipo, totale ore effettuate, mezzo usato e vari timestamp per tracciare l evoluzione e le modifiche.) Tappe contiene invece le varie tappe compiute durante una missione ed è legata a quest ultima tramite un associazione 1:N. Per ognuna di esse viene indicata la città di partenza e di destinazione, il numero di km percorsi e il giorno in cui è stata effettuata, oltre ad un indice che specifica l ordine in cui le tappe di una stessa giornata sono state percorse. Missioni archiviate e tappa archiviate contengono praticamente le stesse informazioni delle due tabelle precedenti. Il loro scopo è semplicemente separare le missioni già archiviate da quelle ancora aperte, per alleggerire l esecuzione delle query. Le missioni archiviate, infatti, vengono consultate molto più raramente, quindi sarebbe controproducente appesantire la ricerca nella tabella missioni con dati non significativi. Utenti serve a specificare il tipo di rimborso spese che deve essere associato a un utente del dominio. Mezzi personali associa agli utenti i mezzi di loro proprietà, ai fini del calcolo del rimborso spese chilometrico.

24 Tipi spese e Status missioni sono degli elenchi utilizzati per convertire alcuni nomi interni all applicazione con nomi leggibili dall utente. La prima contiene le diverse voci presenti nelle note spese mentre la seconda riporta i vari stati in cui si può trovare una missione. Voci menu e gruppi menu servono a specificare quali transizioni devono comparire nel menù laterale e in quale sezione di esso devono apparire. Deleghe serve ad associare agli utenti le persone in vece di cui possono agire. Le tre tabelle rimanenti, Prezzi carburante, Città e Mezzi comune, contengono rispettivamente l elenco storico dei prezzi della benzina con relativa data, l elenco delle città che viene utilizzato nel calcolo dei km delle tappe e infine l elenco dei mezzi comunali Struttura degli script Al fine di creare un applicazione web corretta e su cui si possa fare facilmente manutenzione, si rivela di fondamentale importanza creare una libreria di file che si occupi di gestire i vari servizi dell applicazione. I file principali dell applicazione sono i seguenti: - config.php. Contiene la configurazione dei vari settaggi dell applicazione; - database.php. Qui si trova la classe utilizzata per dialogare col database. Contiene varie funzioni il cui scopo va dall inserimento o modifica di record all estrazione di dati, sia di singoli campi che d interi result set; - funzioni.php. Raggruppa tutte le funzioni di utilità (dalla conversione date alla creazione del menù); - sendmailbif.php. Gestisce le funzioni per l invio di ; - oggetto.php. Contiene una classe che rappresenta l oggetto generico del workflow; - layout_principale.php. Questo file è alla base della creazione di una pagina. Sono inoltre presenti file che rappresentano ogni singola transizione, modello dati o vista, suddivisi per tipo nelle rispettive cartelle.

25 1.15. Implementazione del motore a workflow Com è stato precedentemente esposto, il motore a workflow si basa su stati e transizioni. Ogni stato viene realizzato tramite un istanza della classe oggetto ed è caratterizzato da un modello dati e da una vista. Le transizioni invece sono caratterizzate da uno stato iniziale e uno finale, oltre che da eventuali condizioni e post-operazioni. Le caratteristiche di questi oggetti, le singole transizioni e i singoli stati, sono specificate all interno dei rispettivi file, ad eccezione degli stati legati alla transizione, che sono salvati sul DB, come specificato nella sezione 4.1. Il modello dati contiene tutte le informazioni sugli oggetti trattati nella pagina. Se, ad esempio, siamo in una pagina che visualizza il saldo di una missione, il modello dati conterrà tutti i dati riguardanti le spese. La vista invece contiene il codice P.H.P. caratteristico della pagina. Com è stato specificato precedentemente, più stati possono avere lo stesso modello dati (o vista): un esempio è dato dalla pagina in cui si compila una richiesta di missione e quella immediatamente successiva, dove vengono riepilogate le informazioni appena inserite. Viste differenti ma stesso modello. Gli stati sono quindi associati a pagine, con la vista che decide l aspetto e il modello che regola i dati che vengono trattati. Risulterà quindi abbastanza immediato il fatto che le transizioni, ovvero i passaggi tra pagine (stati), vengano realizzate tramite i link. Il funzionamento del motore a workflow nell implementazione realizzata è quindi il seguente: Un utente si trova in una pagina (stato) e ha a disposizione numerosi link (transizioni) tra cui poter scegliere. Quando clicca su uno di essi, la pagina trasmette al server il nome della transizione che deve essere effettuata. Per prima cosa viene effettuato un controllo dei permessi. In caso di esito positivo, se tutte le condizioni della transizione sono verificate, si passa allo stato successivo, determinato dalla transizione, dopo aver eseguito eventuali post-operazioni. In caso le condizioni non siano verificate invece, si rimane nello stato attuale. Una volta deciso quale sarà lo stato di destinazione, il motore crea un nuovo oggetto, determinato dal modello dati, che viene quindi passato alla vista per generare il codice della pagina. In figura 7 è possibile vedere uno schema riassuntivo di questo procedimento.

26 FIGURA 7: IL PASSAGGIO TRA UNO STATO E L ALTRO Le transizioni e la compatibilità con i browser Un particolare interessante dell implementazione è il metodo con cui viene comunicato al server quale transizione deve essere eseguita. Il problema, benché possa inizialmente sembrare banale, diventa evidente quando si cerca di implementare questa comunicazione. Com è stato detto, quando si seleziona un link o un pulsante, si specifica quale transizione s intende eseguire. Questo avviene spedendo al server il nome della transizione da eseguire, tramite un parametro della request. Nel caso di un link il problema è d immediata risoluzione, basta specificare il nome nell indirizzo del link, come parametro GET (es. index.php? transizione=trans_init). Il problema inizia a complicarsi nel caso di pulsanti, poiché non esistono tag html che permettano di trasmettere nella request qualcosa di diverso dalla scritta che appare sul bottone (la caption). Volendo essere precisi, il tag button permetterebbe di fare ciò (la caption infatti è ciò che viene racchiuso dal tag, mentre il valore trasmesso è contenuto nell attributo value), ma Internet Explorer ignora questa differenza [tag button in IE] e trasmette comunque la caption. Per motivi di compatibilità non si può quindi usare il tag button normalmente.

27 Non volendo visualizzare sul bottone il nome della transizione (che è nel formato trans_nome, es. trans_archivia) la soluzione è usare il tag input e sostituire il nome del bottone con il valore che vogliamo passare. Se ad esempio vogliamo trasmettere il parametro di nome transizione con valore trans_nuova_richiesta, ciò che scriveremo sarà nome trans_nuova_richiesta con un valore qualsiasi. In questo modo verrà trasmesso da entrambi i browser un campo nel formato nome_transizione=x (dove X è il valore qualsiasi nel caso di Firefox e la caption nel caso di IE). Essendo tutti i nomi di transizione nel formato trans_nome, se non si riceve dal client alcun campo chiamato transizione, se ne cerca uno che inizi per trans_ : quello è il valore desiderato. Il problema però si complica ulteriormente nel caso ci si trovi ad avere più tag di tipo button nella stessa form (ad esempio le pagine con le liste). Qui emerge un secondo problema di IE: se sono presenti più bottoni in una form, non viene trasmesso solamente il valore di quello che è stato cliccato, ma di tutti. Diventa perciò impossibile per il server riconoscere qual è stato premuto, se non ricorrendo ad artifici con il javascript. La soluzione consiste nell impostare l ID di ogni bottone con un formato standard, del tipo button_xxx dove XXX è il valore che vogliamo trasmettere. A questo punto, quando l utente clicca sul bottone, si esegue una funzione javascript che estrae XXX dall ID e lo scrive in un campo hidden della form prima di eseguire la submit Missione: dalla richiesta all approvazione Vediamo ora nel dettaglio le varie fasi che caratterizzano una missione. Premessa: nelle immagini seguenti l header delle pagine è stato tralasciato in quanto non significativo Richiesta In figura 8 possiamo vedere la schermata per la richiesta di una nuova missione. I campi che compaiono in questa pagina, come pure in tutte le altre, dipendono dal modello dati sottostante.

28 Gli unici campi degni di nota sono i primi due: - Utente richiedente è quello che l applicazione vede come utente corrente e si ottiene dal sistema d impersonificazione, che lo riceve a sua volta dalla sessione del browser; - Responsabile è un menù a tendina che permette di scegliere il responsabile a cui chiedere l approvazione. La lista viene riempita con il contenuto della tabella Responsabili del database, ordinato secondo il campo indice. Quando si seleziona avanti, tutti i campi vengono controllati alla ricerca di errori tramite javascript (in ogni caso vengono comunque effettuati controlli anche lato server). Se è tutto corretto, si arriva a una pagina di riepilogo in cui si può confermare la richiesta, o tornare indietro nel caso si vogliano apportare modifiche. In caso di conferma, la richiesta passa al responsabile per l approvazione. Viene quindi spedita a quest ultimo un di notifica. Nota: nonostante non venga più specificato in seguito, le di notifica vengono generate anche per tutti degli stadi successivi.

29 Approvazione FIGURA 8: NUOVA RICHIESTA Il responsabile, quando si collega, può vedere nel menù a sinistra eventuali nuove richieste da approvare. Selezionando la voce apposita si apre la lista delle richieste in attesa di approvazione, riportata in figura 9. La lista è realizzata tramite un modello dati di tipo array che contiene oggetti di tipo voce_lista, che vengono inseriti al momento della creazione del vettore e riportano le informazioni principali. Una volta selezionata una richiesta da approvare si apre una pagina in cui vengono riepilogate le informazioni sulla missione e viene data la possibilità di approvarla o rifiutarla. Nel secondo caso è prevista un ulteriore pagina per specificare il motivo del rifiuto. Se la missione prevede un anticipo, a questo punto la richiesta arriva all economato che si occuperà di elargire l anticipo. FIGURA 9: LISTA DELLE RICHIESTE IN ATTESA DI APPROVAZIONE Compilazione dettagli Una volta che la missione è stata svolta, si può passare alla pagina di compilazione dettagli, visibile in figura 10. La prima parte riguarda l inserimento delle tappe percorse. Quando si seleziona il pulsante Aggiungi tappa i valori inseriti nei due campi di testo vengono copiati nella lista sovrastante, tramite una modifica dinamica del codice HTML della pagina, realizzata tramite javascript. Sempre grazie ad esso, inoltre, è possibile eliminare un elemento dall elenco o riordinare le tappe semplicemente trascinandole col mouse. La parte centrale invece consiste nell inserimento dei totali delle spese, divisi per categorie (specificate nella tabella Tipi spese ). Il campo Mezzo utilizzato serve per specificare il veicolo impiegato durante la missione. La lista mostra l elenco di tutti i mezzi comunali ed

30 eventualmente pure dei mezzi personali (questo nel caso sia stato selezionato il campo mezzo proprio al momento della richiesta). I due campi rimanenti, infine, sono abbastanza immediati. Il primo serve a indicare la durata in ore della missione mentre il secondo permette di specificare la modalità di rimborso. Nell esempio è presente una sola voce poiché se si è richiesto un anticipo il rimborso deve essere eseguito dall economato. FIGURA 10: COMPILAZIONE DETTAGLI Verifica spese e saldo Questa pagina, riportata in figura 11, presenta un riepilogo dei dati della missione e fornisce ai responsabili del saldo la possibilità di modificare le voci spesa, nel caso non siano corrette. In caso di modifiche, vengono salvati anche i valori originali. Una volta selezionato avanti, si passa a una pagina di conferma, visibile in figura 12, in cui viene visualizzato l ammontare da erogare o ricevere. A

31 questo punto si può quindi stampare un cedolino cui attaccare eventuali scontrini, tornare alla pagina precedente o confermare le note spese. FIGURA 11: IL SALDO FIGURA 12: CONFERMA DEL SALDO

32 Chiusura In questa schermata, visibile in figura 13, vengono riepilogate tutte le informazioni sulla missione. In caso sia necessario effettuare modifiche alle note spese o alle tappe, selezionando l apposito pulsante si arriva in una pagina identica a quella vista nella compilazione dei dettagli. Selezionando conferma, invece, la missione viene chiusa. FIGURA 13: IL RIEPILOGO TOTALE DI UNA MISSIONE PRIMA DELLA CHIUSURA Archiviazione L ultimo stadio di una missione è l archiviazione. Prima di essa vengono visualizzati un ultima volta i dati della missione stessa, con una pagina identica alla precedente. L unica differenza è che in caso sia stato utilizzato un mezzo personale, e sia quindi necessario un rimborso delle spese del carburante, appare un riepilogo delle caratteristiche del mezzo e in fondo un campo in cui inserire il prezzo al km della benzina. Il campo è precompilato se l utente che ha svolto la missione è un consigliere, poiché essi hanno un rimborso fisso al km, mentre va inserito a mano dalla segreteria, utilizzando le tabelle ACI e i dati del mezzo, nel caso l utente sia un assessore. Un esempio di quest ultimo caso è visibile in figura 14.

33 FIGURA 14: ARCHIVIAZIONE CON INSERIMENTO DEL COSTO DELLA BENZINA Una volta selezionato il pulsante Archivia, l applicazione procede a spostare il record relativo alla missione sulla tabella missioni archiviate e a cancellarlo da quella originale. Un operazione analoga viene eseguita per le tappe, salvando inoltre per ognuna di esse il relativo prezzo della benzina come campo aggiuntivo del record.

34 1.18. Report In figura 15 è riportato un esempio di report finale delle missioni eseguite, in questo caso riferito a una singola persona. I dati visualizzati sono tutti salvati direttamente nel database, all interno delle tabelle missioni archiviate e tappe archiviate, ad eccezione delle ultime tre colonne che vengono calcolate al momento della creazione della pagina Amministrazione FIGURA 15: UN ESEMPIO DI REPORT La sezione di amministrazione prevede quattro differenti funzioni: - eliminazione di una missione; - associazione di un gruppo di dominio a un gruppo interno (modifica della tabella Associa Gruppo ); - associazione di un gruppo interno a un utente (modifica della tabella Permessi utenti ); - gestione delle deleghe (modifica della tabella deleghe ). In figura 16 è possibile vedere un esempio della schermata di assegnazione di un gruppo interno a un utente.

35 1.20. Test di servizio FIGURA 16: UNA SCHERMATA DI AMMINISTRAZIONE Analisi e test sul funzionamento dell applicazione sono stati svolti regolarmente durante l intero stage, permettendo di risolvere i problemi man mano che sorgevano invece di portarli sino alla fine. Sono stati inoltre svolti numerosi test per garantire la compatibilità sui vari browser, che talvolta presentano comportamenti diversi, sia nei riguardi della rappresentazione grafica che della gestione di alcuni campi delle form. Al termine del tirocinio è stato comunque svolto un test globale e l applicazione ha dimostrato di funzionare come previsto. 5. Conclusioni Questa tesi è il frutto di un progetto svolto nell ambito di un tirocinio effettuato presso il Comune di Cento, in cui è stata creata l applicazione Web Missioni Amministratori. Lo scopo, che era di permettere ai vari soggetti coinvolti nel rimborso spese di assessori e consiglieri di compilare la modulistica necessaria attraverso un interfaccia web, anziché tramite moduli cartacei, si può considerare raggiunto.

Corso di Web Programming

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

Dettagli

Passaggio dei dati tra HTML e PHP : array superglobali $_GET e $_POST

Passaggio dei dati tra HTML e PHP : array superglobali $_GET e $_POST Passaggio dei dati tra HTML e PHP : array superglobali $_GET e $_POST I valori inviati da un modulo (con metodo post o get), sono automaticamente memorizzati da PHP sia in variabili di ambiente associate

Dettagli

CONTROLLO REMOTO DI UNA TELECAMERA IP

CONTROLLO REMOTO DI UNA TELECAMERA IP Scuola Media Pietro Coppo Isola CONTROLLO REMOTO DI UNA TELECAMERA IP Tesi di maturità professionale Indirizzo Tecnico Informatico Alunno: Massimiliano Bevitori Mentore: Maurizio Škerlič Anno Scolastico:

Dettagli

SIAGAS Manuale Utente Utente non autenticato

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

Dettagli

C o r s o L i b e r o d i. 2005 Emiliano Gabrielli GrUSP.it

C o r s o L i b e r o d i. 2005 Emiliano Gabrielli <AlberT@SuperAlberT.it> GrUSP.it C o r s o L i b e r o d i 2005 Emiliano Gabrielli GrUSP.it Licenza Corso Libero di PHP Copyright (c) 2005 Emiliano Gabrielli Quest'opera è stata rilasciata sotto la licenza Creative

Dettagli

venerdì 31 gennaio 2014 Programmazione Web

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

Dettagli

INTRODUZIONE AL WEB DINAMICO

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

Dettagli

PHP: Professional Hypertext Preprocessor

PHP: Professional Hypertext Preprocessor PHP: Professional Hypertext Preprocessor Corso di Base Lezione 1 Per iniziare Docente Prof. Antonio Curci 1 Capitolo 1: Per iniziare Introduzione: che cosa è il PHP? A metà degli anni Novanta il Web era

Dettagli

Esercitazione 8. Basi di dati e web

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

Dettagli

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

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

Dettagli

Progetto ittorario Anno scol. 2013-2014

Progetto ittorario Anno scol. 2013-2014 PROGETTO ittorario Scopo: Creazione di una pagina web che mostri l orario di un docente, della classe della materia o dell aula a discrezione dell utente. Sviluppatori: Progetto sviluppato dalla classe

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

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

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

La realizzazione di WebGis con strumenti "Open Source".

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

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Conoscere il concetto di espressione 2 1 Introduzione

Dettagli

White Paper 1. INTRODUZIONE...2 2. TECNOLOGIE SOFTWARE IMPIEGATE...2 3. APPROCCIO PROGETTUALE...10 3. RISULTATI...10

White Paper 1. INTRODUZIONE...2 2. TECNOLOGIE SOFTWARE IMPIEGATE...2 3. APPROCCIO PROGETTUALE...10 3. RISULTATI...10 Soluzioni software di EDM "Electronic Document Management" Gestione dell archiviazione, indicizzazione, consultazione e modifica dei documenti elettronici. Un approccio innovativo basato su tecnologie

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

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

Dettagli

Siti interattivi e dinamici. in poche pagine

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

Dettagli

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

Piattaforma e-learning Moodle. Manuale ad uso dello studente. Vers. 1 Luglio 09

Piattaforma e-learning Moodle. Manuale ad uso dello studente. Vers. 1 Luglio 09 Piattaforma e-learning Moodle Manuale ad uso dello studente Vers. 1 Luglio 09 Sommario 1. Introduzione...2 1.1 L ambiente...2 1.2 Requisiti di sistema...4 2. Come accedere alla piattaforma...4 2.1 Cosa

Dettagli

Manuali.net. Nevio Martini

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

Dettagli

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

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

Dettagli

FileMaker 12. Guida ODBC e JDBC

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

Dettagli

Tecnologie e Programmazione Web

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

Dettagli

Apache MySQL PHP - FTP

Apache MySQL PHP - FTP Apache MySQL PHP - FTP Scelta del software, Installazione e configurazione Ivan Grimaldi grimaldi.ivan@gmail.com HcssLug GNU/LINUX USERS GROUP Outline Cenni sul funzionamento di un WebServer Apache, PHP,

Dettagli

RenderCAD S.r.l. Formazione

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

Dettagli

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

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

Dettagli

Corso basi di dati Introduzione alle ASP

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

Dettagli

CMS (Content Management System) della categoria Open Source

CMS (Content Management System) della categoria Open Source Una panoramica sui CMS (Content Management System) CMS (Content Management System) della categoria Open Source Per la piattaforma PHP/MYSQL e considerata l esigenza sempre più ricorrente di realizzare

Dettagli

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

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

Dettagli

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

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

Dettagli

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

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

Dettagli

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

Dettagli

Rilevazione automatizzata delle timbrature di presenza

Rilevazione automatizzata delle timbrature di presenza Direzione Servizi Interni Rilevazione automatizzata delle timbrature di presenza MANUALE DI UTILIZZO DELLA PROCEDURA TIMBR@WEB Versione 2.0 del 09 Gennaio 2012 A cura di Luigi D Elia SOMMARIO ACCESSO ALL

Dettagli

Ipertesto. Reti e Web. Ipertesto. Ipertesto. Ipertestualità e multimedialità

Ipertesto. Reti e Web. Ipertesto. Ipertesto. Ipertestualità e multimedialità Ipertesto Reti e Web Ipertestualità e multimedialità Ipertesto: documento elettronico costituito da diverse parti: nodi parti collegate tra loro: collegamenti Navigazione: percorso tra diversi blocchi

Dettagli

Internet e World Wide Web

Internet e World Wide Web Alfonso Miola Internet e World Wide Web Dispensa C-02 Settembre 2005 1 Nota bene Il presente materiale didattico è derivato dalla dispensa prodotta da Luca Cabibbo Dip. Informatica e Automazione Università

Dettagli

Sistemi Informativi e WWW

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

Dettagli

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

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

Dettagli

Reti Informatiche ed Internet

Reti Informatiche ed Internet Reti Informatiche ed Internet Bari, 21-02-2011-1 - Internet Internet è, per definizione, l insieme dei collegamenti, fra le reti di trasmissione dati esistenti. Alcuni parlano di rete delle reti. cioè

Dettagli

Basi di dati. Introduzione. Una breve introduzione sulla suite di OpenOffice.org e la gestione dei database

Basi di dati. Introduzione. Una breve introduzione sulla suite di OpenOffice.org e la gestione dei database Basi di dati Introduzione Una breve introduzione sulla suite di OpenOffice.org e la gestione dei database OpenOffice.org (www.openoffice.org) è un potente software opensource che ha, quale scopo primario,

Dettagli

Dall hosting al cloud computing: storia del protocollo HTTP

Dall hosting al cloud computing: storia del protocollo HTTP Dall hosting al cloud computing: storia del protocollo HTTP Il protocollo HTTP: dall idea di un ricercatore del CERN ai giorni nostri, in cui velocità, performance e multimedialità impongono le evoluzioni

Dettagli

Benvenuti nella guida completa a PHP5 e MySQL!

Benvenuti nella guida completa a PHP5 e MySQL! Introduzione Benvenuti nella guida completa a PHP5 e MySQL! Gli autori di questo libro, sebbene ammettano di essere di parte, ritengono che il linguaggio di scripting Web PHP possa essere considerato il

Dettagli

Formazione sistema editoriale CMS

Formazione sistema editoriale CMS Ufficio Società dell'informazione Nome del Progetto Acronimo del Progetto Formazione sistema editoriale CMS Documento Data di stesura Maggio 2010 Versione 1.2 Sommario 1 Scopo... 3 2 Campo di applicazione...

Dettagli

CAPITOLO 6 - LINGUAGGIO HTML INTRODUZIONE

CAPITOLO 6 - LINGUAGGIO HTML INTRODUZIONE INTRODUZIONE Le pagine web sono scritte in HTML, un semplice linguaggio di scrittura. In pratica, un documento HTML non è nient'altro che un file di testo. L'HTML permette di scrivere un documento come

Dettagli

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

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

Dettagli

MICROSOFT ACCESS. Fabrizio Barani 1

MICROSOFT ACCESS. Fabrizio Barani 1 MICROSOFT ACCESS Premessa ACCESS è un programma di gestione di banche dati, consente la creazione e modifica dei contenitori di informazioni di un database (tabelle), l inserimento di dati anche mediante

Dettagli

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

Dettagli

Manuale Piattaforma Didattica

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

Dettagli

CMS (Content Management System) della categoria Open Source

CMS (Content Management System) della categoria Open Source Una panoramica sui CMS (Content Management System) CMS (Content Management System) della categoria Open Source Per la piattaforma PHP/MYSQL e considerata l esigenza sempre più ricorrente di realizzare

Dettagli

Le mie immagini su WEB: l ABC per iniziare. 6 maggio 2008

Le mie immagini su WEB: l ABC per iniziare. 6 maggio 2008 Le mie immagini su WEB: l ABC per iniziare 6 maggio 2008 1 1) Le nostre immagini su internet; perchè? 2) il WEB...il pc di chi accede (il client)...il sito (server); 3) costruzione del sito (design, strumenti

Dettagli

UNIVERSITA DEGLI STUDI DI ROMA LA SAPIENZA ESAME PROGETTO DI APPLICAZIONI SOFTWARE

UNIVERSITA DEGLI STUDI DI ROMA LA SAPIENZA ESAME PROGETTO DI APPLICAZIONI SOFTWARE UNIVERSITA DEGLI STUDI DI ROMA LA SAPIENZA ESAME PROGETTO DI APPLICAZIONI SOFTWARE PROF: Massimo Mecellla STUDENTE: Orlando De Mauro INTRODUZIONE Si vuole realizzare un sistema per la gestione di prenotazione

Dettagli

Un approccio innovativo basato su tecnologie Open Source. White Paper

Un approccio innovativo basato su tecnologie Open Source. White Paper Soluzioni software di CRM "Customer Relationship Management" Gestione delle relazioni con i clienti, delle trattative commerciali e delle iniziative di marketing, Gestione delle attività di supporto post-vendita

Dettagli

Made with php. Php e i CMS

Made with php. Php e i CMS Made with php Php e i CMS Php (Hypertext Preprocessor) Php è uno dei principali linguaggi server-side utilizzati per realizzare siti dinamici. Made with Php - Santarossa Marco 2 La storia di php [parte

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server

Dettagli

porte aperte sull e-learning di Gianluca Affinito gianluca.affinito@gmail.com

porte aperte sull e-learning di Gianluca Affinito gianluca.affinito@gmail.com porte aperte sull e-learning di Gianluca Affinito gianluca.affinito@gmail.com Cos è Moodle Moodle è un software per la gestione di corsi a distanza utilizzato a livello mondiale nelle Università, nelle

Dettagli

Corso Web programming

Corso Web programming Corso Web programming Modulo T3 A1 Modelli di programmazione 1 Prerequisiti Concetto di rete Processi e thread Concetti generali sui database 2 1 Introduzione Un particolare ambito della programmazione

Dettagli

Indice. Introduzione. PARTE PRIMA PHP: i fondamenti 1

Indice. Introduzione. PARTE PRIMA PHP: i fondamenti 1 Indice Introduzione XV PARTE PRIMA PHP: i fondamenti 1 Capitolo 1 Perché PHP e MySQL? 3 1.1 Cos è PHP? 3 1.2 Cos è MySQL? 4 1.3 La storia di PHP 5 1.4 La storia di MySQL 6 1.5 Le ragioni per amare PHP

Dettagli

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

Dettagli

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client

Dettagli

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI PHP PHP - Storia Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI Al progetto si unirono Zeev Suraski e Andi Gutmans che ne scrissero l'interprete Zend Oggi è alla versione 5 e può essere

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

GIOVANNI CALABRESE. Sito E-learning Istituto Tridente. Guida all utilizzo di Moodle per gli studenti

GIOVANNI CALABRESE. Sito E-learning Istituto Tridente. Guida all utilizzo di Moodle per gli studenti GIOVANNI CALABRESE Sito E-learning Istituto Tridente Guida all utilizzo di Moodle per gli studenti Sommario 1. COS È MOODLE... 1 1.1 Requisiti necessari...1 1.2 Configurazione del browser...1 Impostazione

Dettagli

GRAM 231. Global Risk Assessment & Management. Approccio metodologico ed informatico all applicazione del D.Lgs. 231/2001

GRAM 231. Global Risk Assessment & Management. Approccio metodologico ed informatico all applicazione del D.Lgs. 231/2001 GRAM 231 Global Risk Assessment & Management Approccio metodologico ed informatico all applicazione del D.Lgs. 231/2001 Sommario Proposta di applicazione pratica... 3 Quadro normativo... 3 Una soluzione...

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Web Autore: Davide Revisione: 1.2 Data: 23/5/2013 Titolo: Innopedia File: Documentazione_tecnica Sito: http://inno-school.netsons.org/ Indice: 1. Presentazione

Dettagli

Piattaforma FaD Formazione a distanza. Manuale di consultazione rapida per l utilizzo della piattaforma di. formazione a distanza di EFA srl

Piattaforma FaD Formazione a distanza. Manuale di consultazione rapida per l utilizzo della piattaforma di. formazione a distanza di EFA srl Piattaforma FaD Formazione a distanza Manuale di consultazione rapida per l utilizzo della piattaforma di formazione a distanza di EFA srl 1 Indice generale 1. Scopo del documento 2. Definizioni e abbreviazioni

Dettagli

Port Community System del Porto di Ravenna CONFIGURAZIONE

Port Community System del Porto di Ravenna CONFIGURAZIONE Port Community System del Porto di Ravenna CONFIGURAZIONE SOMMARIO Indicazioni generali... 3 Dipendenze software... 4 Lato server... 4 Lato client... 4 Organizzazione del sistema... 5 Struttura delle directory...

Dettagli

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

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

Dettagli

capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA

capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA 8.1 ISTRUZIONI PER IL VALUTATORE Campioni Il processo di valutazione tecnologica si basa su un campione del prodotto, precedentemente

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

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

Dettagli

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

Dettagli

3. PROGETTAZIONE DEL SERVIZIO ANAGRAFE ON-LINE 11 4. REALIZZAZIONE DEL SERVIZIO ANAGRAFE ON-LINE 21

3. PROGETTAZIONE DEL SERVIZIO ANAGRAFE ON-LINE 11 4. REALIZZAZIONE DEL SERVIZIO ANAGRAFE ON-LINE 21 INDICE 1. INTRODUZIONE 3 2. PRESENTAZIONE DEL SERVIZIO ANAGRAFE ON-LINE 7 2.1. La precedente applicazione 7 2.2. Specifiche e requisiti del servizio 8 3. PROGETTAZIONE DEL SERVIZIO ANAGRAFE ON-LINE 11

Dettagli

Laboratorio Matematico Informatico 2

Laboratorio Matematico Informatico 2 Laboratorio Matematico Informatico 2 (Matematica specialistica) A.A. 2006/07 Pierluigi Amodio Dipartimento di Matematica Università di Bari Laboratorio Matematico Informatico 2 p. 1/1 Informazioni Orario

Dettagli

Guida all uso del sistema

Guida all uso del sistema www.unicas.it Versione 3.0 del 9/12/2009 Pagina 1 Sommario Premessa... 3 Accesso in modalità di redattore... 4 CREAZIONE DI ELEMENTI... 5 MODIFICA DI ELEMENTI... 12 ELIMINAZIONE DI ELEMENTI... 12 ORDINAMENTO

Dettagli

APPENDICE B Le Active Server Page

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

Dettagli

Istituto Tecnico Industriale Statale Dionigi Scano Cagliari. Candidato: Medda Daniele Classe 5ª C Informatica Anno scolastico 2013/2014.

Istituto Tecnico Industriale Statale Dionigi Scano Cagliari. Candidato: Medda Daniele Classe 5ª C Informatica Anno scolastico 2013/2014. Istituto Tecnico Industriale Statale Dionigi Scano Cagliari Candidato: Medda Daniele Classe 5ª C Informatica Anno scolastico 2013/2014 relate Un esperimento di social networking open source 1 Introduzione

Dettagli

HTML 1. HyperText Markup Language

HTML 1. HyperText Markup Language HTML 1 HyperText Markup Language Introduzione ad HTML Documenti HTML Tag di markup Formattazione del testo Collegamenti ipertestuali Immagini Tabelle Form in linea (moduli) Tecnologie di Sviluppo per il

Dettagli

MediaWiki. Giuseppe Frisoni

MediaWiki. Giuseppe Frisoni MediaWiki Giuseppe Frisoni MediaWiki: costruire insieme 1/2 L'enorme successo di Wikipedia, la nota enciclopedia online, è sotto gli occhi di tutti; cosa meno nota, invece, è la piattaforma con cui è progettata.

Dettagli

Introduzione al corso

Introduzione al corso Laboratorio di Tecnologie Web Introduzione al corso Dott. Stefano Burigat www.dimi.uniud.it/burigat Cosa faremo L'obbiettivo del corso di Laboratorio di Tecnologie Web è quello di fornire le competenze

Dettagli

GUIDA AI CORSI OFFICE PER IL PERSONALE TECNICO AMMINISTRATIVO

GUIDA AI CORSI OFFICE PER IL PERSONALE TECNICO AMMINISTRATIVO GUIDA AI CORSI OFFICE PER IL PERSONALE TECNICO AMMINISTRATIVO INDICE Verifica dei requisiti tecnici... 1 *Rimozione blocco popup... 1 In Internet Explorer... 1 In Mozilla Firefox... 4 In Google Chrome...

Dettagli

Internet Terminologia essenziale

Internet Terminologia essenziale Internet Terminologia essenziale Che cos è Internet? Internet = grande insieme di reti di computer collegate tra loro. Rete di calcolatori = insieme di computer collegati tra loro, tramite cavo UTP cavo

Dettagli

NUOVO PORTALE ANCE. MANUALE per la GESTIONE della HOME PAGE VAI ALL INDICE DEI CONTENUTI

NUOVO PORTALE ANCE. MANUALE per la GESTIONE della HOME PAGE VAI ALL INDICE DEI CONTENUTI NUOVO PORTALE ANCE MANUALE per la GESTIONE della HOME PAGE VAI ALL INDICE DEI CONTENUTI DEI CONTENUTI ACCESSO AL MENU PRINCIPALE PAG. 3 CREAZIONE DI UNA NUOVA HOME PAGE 4 SELEZIONE TIPO HOME PAGE 5 DATA

Dettagli

Guida rapida all uso di Moodle per gli studenti

Guida rapida all uso di Moodle per gli studenti Guida rapida all uso di Moodle per gli studenti Introduzione La piattaforma utilizzata per le attività a distanza è Moodle, un software per la gestione di corsi on-line. Per chi accede come studente, essa

Dettagli

Web Programming Specifiche dei progetti

Web Programming Specifiche dei progetti Web Programming Specifiche dei progetti Paolo Milazzo Anno Accademico 2010/2011 Argomenti trattati nel corso Nel corso di Web Programming sono state descritti i seguenti linguaggi (e tecnologie): HTML

Dettagli

Fase1 Fase2 Fase3 Fase4

Fase1 Fase2 Fase3 Fase4 Istruzioni per l'utilizzo del sito https://indata.istat.it/pdc Requisiti tecnologici per la compilazione telematica Per utilizzare la procedura telematica per la fornitura dei dati, il rispondente dovrà

Dettagli

Il World Wide Web. Il Web. La nascita del Web. Le idee di base del Web

Il World Wide Web. Il Web. La nascita del Web. Le idee di base del Web Il World Wide Web Il Web Claudio Fornaro ver. 1.3 1 Il World Wide Web (ragnatela di estensione mondiale) o WWW o Web è un sistema di documenti ipertestuali collegati tra loro attraverso Internet Attraverso

Dettagli

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

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

Dettagli

Introduzione. In questo capitolo

Introduzione. In questo capitolo Introduzione I CSS ( Cascading Style Sheets, fogli di stile a cascata) sono la tecnologia elaborata dal W3C (World Wide Web Consortium; http://www.w3.org/) per definire l aspetto (caratteri, colori e impaginazione)

Dettagli

Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti. I sistemi CMS e un introduzione a Joomla! In questo capitolo

Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti. I sistemi CMS e un introduzione a Joomla! In questo capitolo 1 I sistemi CMS e un introduzione a Joomla! In questo capitolo Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti aggiornati, è svantaggiato. L idea di potenziare

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

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

Dettagli

Server web e protocollo HTTP

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

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

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

Dettagli

Programmare server. Request to to a a Dynamic Site Site

Programmare server. Request to to a a Dynamic Site Site Programmare server Request to to a a Dynamic Site Site! The! The server server must must respond respond dynamically if it if needs it needs to provide to provide different different client-side client-side

Dettagli

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

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

Dettagli

1. FINALITA DELLA DISCIPLINA

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

Dettagli

ACCREDITAMENTO. Manuale Utente

ACCREDITAMENTO. Manuale Utente ACCREDITAMENTO Gestione informatizzata dell iter, dalla domanda alla visita ispettiva Manuale Utente versione 1.0 pag. 2 di35 Sommario ACCREDITAMENTO...1 Manuale Utente...1 Sommario...2 1. Introduzione...3

Dettagli

Come funziona internet

Come funziona internet Come funziona internet Architettura client server URL/URI Richiesta (Request) Risposta (Response) Pagina url e uri Uno Uniform Resource Identifier (URI, acronimo più generico rispetto ad "URL") è una stringa

Dettagli

Applicazione: SIPER Servizi In linea per il PERsonale

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

Dettagli

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI MICROSOFT EXCEL INTRODUZIONE Si tratta di un software appartenente alla categoria dei fogli di calcolo: con essi si intendono veri e propri fogli elettronici, ciascuno dei quali è diviso in righe e colonne,

Dettagli