Università degli Studi di Ferrara

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli Studi di Ferrara"

Transcript

1 Università degli Studi di Ferrara FACOLTÀ DI INGEGNERIA Corso di laurea in INGEGNERIA INFORMATICA E DELL'AUTOMAZIONE UN'APPLICAZIONE WEB PER LA GESTIONE E LA CONSULTAZIONE DELL'ARCHIVIO DEI LAVORI PUBBLICI DEL COMUNE DI CENTO Laureando Nino Burini Relatore Cesare Stefanelli Anno Accademico 2005/2006

2 INDICE GENERALE Pag : Introduzione Pag. 5 Pag. 5 Pag. 7 Pag : Presentazione del progetto Servizio Web Lavori Pubblici 2.1: La situazione preesistente 2.2: Il passaggio a un'applicazione Web 2.3: Descrizione del servizio, specifiche e requisiti Pag. 11 Pag. 11 Pag. 15 Pag. 15 Pag. 16 Pag. 19 Pag : Progettazione del servizio 3.1: Progetto e struttura dei dati 3.2: Gruppi di utenti 3.3: Conversazioni e pagine 3.3.1: Le conversazioni 3.3.2: Progetto del layout delle pagine 3.4: Architettura Pag. 23 Pag. 23 Pag. 23 Pag. 24 Pag. 25 Pag. 28 Pag. 29 Pag. 20 Pag. 33 Pag. 38 Pag : Realizzazione del servizio 4.1: Strumenti e Tecnologie 4.1.1: PHP (scripting server-side) 4.1.2: SQL Server (DBMS) 4.1.3: Apache (Web server) 4.1.4: HTML e CSS 4.1.5: Javascript (scripting client-side) 4.2: Costruzione del database 4.3: Utenti, autenticazione e oggetti 4.4: Pagine Web 4.5: Collaudo e test Pag : Conclusione 1

3 2

4 1: Introduzione Negli ultimi anni Internet ha conosciuto una crescita portentosa, in termini di utilizzatori e di maturità. Se all'origine basava il suo funzionamento esclusivamente su elementi statici ora è un complesso molto più dinamico, potente e ricco di servizi; per fare un esempio immediato, si pensi ai molti portali disseminati per la Rete che offrono al visitatore informazioni e, appunto, servizi di vario genere (Web-mail, blog...). Le pubbliche amministrazioni (comuni, province...) in molti casi hanno dimostrato di aver intuito le potenzialità di Internet per quello che riguarda il rapporto con i cittadini. Considerando la loro natura di erogatori di servizi, da questo punto di vista Internet e le tecnologie del Web possono rivelarsi uno strumento utilissimo. Anche a livello nazionale e legislativo se ne è percepita l'importanza e l'introduzione della legge Stanca nel 2004, che spinge gli enti a rendere accessibili i propri siti a quante più persone possibile, ne è la dimostrazione. Il Comune di Cento è uno dei più informatizzati d'italia ed è all'avanguardia nell'erogazione di servizi informatici. Dal suo portale è possibile fruire di molti servizi che di tanto in tanto vengono ampliati e arricchiti. E' questo il caso del Servizio Web Lavori Pubblici, una semplice applicazione web realizzata nella cornice di un tirocinio formativo universitario previsto per i laureandi di Ingegneria Informatica dell'università di Ferrara. Tale tirocinio si è svolto presso il Servizio Sistemi Informativi (SSI), che si occupa di amministrare la struttura hardware e software della intranet del Comune di Cento, del suo portale e dei siti Internet collegati. Servizio Web Lavori Pubblici ha due scopi: da un lato fornire ai dipendenti dell'ufficio Lavori Pubblici uno strumento per poter gestire con semplicità l'archivio comunale delle opere pubbliche del territorio Centese, dall'altro permettere ai cittadini di poter consultare lo stesso via Internet. Se a questi ultimi è concessa la possibilità di effettuare ricerche tra le varie opere pubbliche, i dipendenti possono inserirle, modificarle e cancellarle dal sistema, oltre a poter eseguire una serie di altre operazioni. Presso l'ufficio esisteva già un sistema di gestione dei lavori pubblici che però presentava una serie di difetti anche rilevanti (ad esempio scarsa separazione tra contenuto e 3

5 presentazione, difficoltà nell'ordinamento dei dati, impossibilità di modifiche contemporanee da parte di più persone, ecc.). Il progetto che ha portato alla realizzazione della nuova applicazione è passato attraverso una serie di fasi, la prima delle quali è consistita nell'analisi del vecchio sistema (basato sull'utilizzo di un foglio di calcolo) e in particolare delle sue mancanze. Da questo punto di partenza si è iniziato a cercare una soluzione, almeno a livello generale; è risultata subito evidente la necessità di ricorrere, per la gestione dei dati, all'uso di un database in virtù delle sue caratteristiche in termini di efficacia, efficienza e sicurezza. Grazie ad alcune interviste ai committenti, volte alla raccolta di direttive, si è fatta maggior chiarezza sulle funzioni di cui avrebbe dovuto disporre il servizio una volta sviluppato. In base all'analisi di queste informazioni si è potuti passare all'effettiva progettazione della nuova applicazione. Sono stati individuati e costruiti i dati che avrebbe dovuto gestire (naturalmente i lavori pubblici, ma anche gli avanzamenti di stato, le categorie delle opere pubbliche ed i referenti comunali) e si sono determinati i tipi di utenti che ne avrebbero usufruito, assieme ai loro privilegi; in particolare i gruppi di utenti considerati sono stati due, uno pubblico (i visitatori esterni, che avrebbero potuto eseguire ricerche nel database dei lavori) e uno privato di amministrazione (che oltre alle ricerche avrebbe potuto effettuare modifiche sulla base dati e sulle istanze dei lavori pubblici). In seguito si è studiato in che modo le pagine Web dovessero essere costruite e disposte per permettere all'utente un'adeguata interazione con l'applicazione (ad esempio impostandole tutte con lo stesso layout) e si sono fatte valutazioni sull'infrastruttura hardware sottostante: il nuovo servizio si sarebbe dovuto adattare alla struttura preesistente; fortunatamente, considerate le sue ridotte esigenze, non si è trattato di un problema. A quel punto si è passati alla fase di realizzazione, che ha reso finalmente il Servizio Web Lavori Pubblici operativo. Grazie all'utilizzo di tecnologie provenienti sia dal mondo Open Source (Apache e PHP) che da quello proprietario (SQL Server) è stato creato il database partendo dalla considerazioni sui dati, si è implementata l'autenticazione (single sign-on) degli utenti e sono stati scritti gli script e le pagine. Negli ultimi giorni, per quanto possibile, l'applicazione è stata collaudata e testata per rivelare la presenza di errori fino a qual momento trascurati. 4

6 2: Presentazione del progetto Servizio Web Lavori Pubblici Questo capitolo presenta una visione globale della situazione precedente la realizzazione del progetto Servizio Web Lavori Pubblici e dei primi passi fatti per trovare un'altra soluzione, consistenti nell'analisi dei difetti esistenti e nella raccolta dei requisiti per la nuova applicazione. La fase della raccolta delle specifiche è la prima a svolgersi durante la realizzazione di un progetto software. E' tipicamente un progressivo atto di convergenza tra il committente e lo sviluppatore che si basa su successive interviste durante le quali vengono raccolte quante più informazioni possibile, che vengono poi analizzate e strutturate; chi realizza l'applicazione ha bisogno di chiedere chiarimenti al cliente per poter svolgere al meglio il suo lavoro e nel contempo può proporre soluzioni e suggerire l'aggiunta di funzioni non ancora considerate. Giungere a un punto di accordo comune è molto importante, poiché le successive fasi della realizzazione ne risentono: la modifica o la correzione tardiva delle specifiche può rivelarsi molto costosa, in termini di denaro, tempo e sforzo. 2.1: La situazione preesistente Prima che venisse commissionata la realizzazione del nuovo servizio Web per i lavori pubblici, presso il Comune di Cento le opere sul territorio erano gestite da un dipendente comunale che teneva traccia delle varie attività con un foglio di calcolo elettronico con MS Excel. Il foglio elettronico in questione disponeva le informazioni in tabella, come nell'esempio della Figura 1. Le righe rappresentano le opere pubbliche, le quali sono raggruppate secondo il settore di appartenenza. Le colonne invece riferiscono alcuni valori dell'opera, come il nome, gli importi stanziati per la sua realizzazione, la fonte di finanziamento della stessa o lo stato di avanzamento. Quest'ultimo è indicato attraverso la colorazione della cella corrispondente allo stadio di evoluzione dei lavori e di quelle precedenti; per ogni cella può essere specificata una data (tipicamente quella di raggiungimento dello stato in considerazione) e una nota. 5

7 Figura 1: esempio del foglio di calcolo utilizzato per gestire i lavori pubblici del Comune di Cento Questo sistema di archiviazione presenta dei limiti, in parte legati al modo in cui vengono gestite le informazioni, in parte dovuti alla natura del foglio di calcolo stesso. Per cominciare, esiste un foglio Excel dedicato ai lavori pubblici per ogni anno (per esempio, tutte le opere pubbliche del 2005 sono registrate nello stesso file); accade poi che la presentazione dei dati nei vari fogli di calcolo sia differente. Ciò può comportare delle difficoltà nel caso si volessero confrontare lavori di anni diversi. Il file è presente in un'unica copia sul disco rigido del computer del dipendente comunale addetto al suo controllo, per cui è precluso l'accesso contemporaneo in scrittura da parte di più persone; si potrebbero creare più copie del file ma, oltre a essere questa una pratica poco sicura per quanto riguarda la segretezza dei dati, ci si dovrebbe preoccupare di sincronizzare le modifiche effettuate sulle diverse istanze del foglio di calcolo. Non è di minore impatto il fatto che la responsabilità del backup dei file sia assegnata al suddetto dipendente, che potrebbe sottovalutarne l'importanza o dimenticarsi di eseguirlo: per questo i rischi di perdita di dati in caso di danneggiamento o eliminazione del foglio Excel sono molto forti. Uno dei limiti maggiori è causato dalla scarsa separazione tra contenuto e presentazione presente nei file di Excel. Ne è un esempio il fatto che il colore di sfondo di una cella (che in questo caso è portatore di informazione, indicando lo stato di 6

8 avanzamento dell'opera pubblica) è una proprietà della cella stessa e non ha alcun legame con il suo contenuto: se si prova a cambiare l'ordinamento di una colonna sarà soltanto il testo contenuto nelle celle a essere ordinato, mentre i colori di sfondo non muteranno la loro disposizione. Lo stesso ordinamento è problematico in Excel: se infatti è immediato quando viene eseguito sui contenuti delle celle di una colonna, indipendentemente dalle altre colonne (sintomo del fatto che non esiste una relazione tra i dati), non lo è altrettanto se si cerca di farlo con delle intere righe (circostanza molto più utile e frequente). Nel particolare caso in questione bisogna aggiungere che alcune righe non contengono dati sui lavori pubblici, bensì intestazioni (come il nome della categoria, o i nomi delle colonne): se anche si riuscisse a ordinare righe intere e si sorvolasse su questioni come quella del colore, inevitabilmente queste righe superflue creerebbero un disturbo. Non per ultimo, considerando che le informazioni sui lavori pubblici possono costituire una risorsa interessante, l'uso di un file Excel preclude l'accesso a questi dati ai cittadini del Comune; al più possono accedervi gli utenti della intranet (sebbene con le limitazioni sopraccitate). Questa serie di difetti è dovuta principalmente a un uso errato del foglio di calcolo: questo infatti si presta molto bene per svolgere alcuni compiti come, ad esempio, eseguire calcoli o rappresentare grafici, ma non si comporta adeguatamente nella gestione dei dati (a meno che non si tratti di quantità minuscole e poco articolate). Per questo fine è molto più adatto un database, più complesso e impegnativo ma senz'altro migliore nell'archiviazione delle informazioni. 2.2: Il passaggio a un'applicazione Web I difetti della soluzione basata esclusivamente su di un foglio di calcolo salvato su di un singolo PC della intranet (che quindi potrebbe anche essere spento e non essere accessibile dalle altre postazioni) sono tali che diventa necessario trovarne un'altra, la quale permetta a più persone di attuare operazioni di scrittura anche contemporaneamente, garantisca la sicurezza dei dati, ne assicuri l'uniformità, permetta di manipolarli in maniera più o meno complessa e separi il contenuto dalla presentazione dello stesso, risultando così decisamente più flessibile. 7

9 Uno dei rimedi, quello per cui si è optato, comporta l'abbandono del sistema attuale a favore di uno orientato al modello client-server: in questo modo è possibile trasferire l'archivio dei lavori pubblici in un database installato su di un computer sempre acceso e raggiungibile (il server) il cui scopo è rendere disponibili le risorse dell'archivio agli altri computer che ne facciano richiesta. L'accoppiata tra modello client-server e database corregge tutti i difetti del metodo basato sul foglio Excel. Come si è detto, la base di dati è centralizzata e installata sul server; essendo unica, i dati che ospita devono essere omogenei (eliminando le differenze che si potevano notare sui fogli di calcolo di anni diversi) e raggruppati. Si è giunti inoltre a un gestione di solo contenuto, mentre la presentazione delle informazioni viene trasferita a livelli logici superiori. I database sono in grado di gestire adeguatamente la multiutenza, la concorrenza e le transazioni, molto importante in scrittura. Per questo non costituisce un problema se più persone vorranno intervenire contemporaneamente per effettuare modifiche delle opere pubbliche, senza compromissioni per la segretezza dei dati. Gli stessi database sono anche più severi quanto al controllo dei dati: una rigidità che diminuisce il rischio di inserire dati inconsistenti o formalmente errati. Nel caso particolare del Comune di Cento, i database già presenti sono sottoposti a un backup automatico settimanale; si risolve così il problema della sicurezza. Il modello client-server è quasi sinonimo di applicazioni Web, il che ha reso pressoché naturale optare per questa strada. Il Web offre una serie di vantaggi, primo tra tutti l'uso di un'interfaccia standard basata su browser, che garantisce una facilità d'uso molto alta e che risulta semplice e immediata per molti utenti. Il Web fornisce anche la possibilità di accedere ai servizi forniti da un'applicazione da qualsiasi computer connesso a Internet. Se le circostanze lo richiedessero, il dipendente comunale potrebbe collegarsi da una postazione esterna alla intranet comunale per svolgere il suo lavoro. Una situazione più interessante si delinea se si pensa che in questo modo possono accedere all'archivio delle opere pubbliche del comune anche i suoi cittadini, permettendo loro di accedere a informazioni di pubblica utilità; questo semplice aspetto in realtà dovrebbe essere sufficiente a convincere un'amministrazione pubblica a 8

10 adottare un sistema che permette di fornire informazione e trasparenza ai propri amministrati. 2.3: Descrizione del servizio, specifiche e requisiti Una volta che le intenzioni sono state chiarite, quello che bisogna fare è raccogliere quante più informazioni si riesca per definire chiaramente che cosa il comune voglia fare con la nuova applicazione. Per questo sono stati interpellati i responsabili dell'ufficio Lavori Pubblici e i componenti dell'ssi del Comune di Cento, al fine di apprendere quali funzioni dovesse comprendere il servizio online e al fine di conoscere alcuni dettagli tecnici importanti per lo sviluppo del medesimo. Dai confronti successivi è emerso che il Servizio Web Lavori Pubblici deve disporre di due lati, uno pubblico (di consultazione, per i cittadini) e uno privato (di amministrazione, per i dipendenti comunali). Per quello che riguarda il lato pubblico (detto anche front-end), si vuole che: i visitatori esterni possano navigare all'interno dell'archivio delle opere pubbliche, fornendo gli strumenti per eseguire ricerche secondo alcuni parametri quali lo stadio ( in progettazione, in corso, ultimato ), l'anno e la categoria; gli stessi possano visualizzare il dettaglio di una singola opera pubblica; siano rispettate le normative relative all'accessibilità e all'usabilità previste dalla legge per i siti della pubblica amministrazione. Quanto al lato privato (back-end, o back-office) si richiede una maggior complessità: Utenti: è sufficiente un singolo gruppo di utenti back-end (detti Amministatori o Gestori ) per la gestione dei lavori: quindi tutte le persone ammesse al lato di amministrazione detengono gli stessi poteri e non è necessario specificare ulteriori ruoli. Possono essere Amministratori i membri dell'ufficio Lavori Pubblici che siano stati referenti di almeno un lavoro. L'autenticazione deve essere single sign-on: una volta che un utente ha effettuato il login a Windows da una postazione della intranet l'applicazione 9

11 deve riconoscere lo username e determinare se l'utente sia o meno autorizzato a accedervi. Ricerche: come per il front-end, deve essere possibile effettuare delle ricerche tra i lavori. Stampe formattate: i risultati delle ricerche devono poter di essere stampati con una formattazione abbastanza simile a quella dei fogli di calcolo usati in precedenza. Lavori pubblici: il fulcro dell'applicazione sono i lavori pubblici, che costituiscono l'oggetto più importante e complesso da gestire; per quello che riguarda le proprietà che devono essere considerate, bisogna fare riferimento ai vecchi fogli Excel e aggiungere la locazione, l'anno, delle coordinate cartografiche (ad uso del SIT, Sistema Informativo Territoriale, del Comune di Cento) e l'indirizzo di un'immagine memorizzata sul server che rappresenti il luogo dei lavori; a seconda dello dello stato di avanzamento, un lavoro può essere definito in progettazione, in corso o ultimato. Alcuni dati (ad esempio il nome del progettista e quello del referente comunale) non devono essere visibili dall'utente esterno ma soltanto ai Gestori. E' secondo la discrezione di questi ultimi che si decide quali opere pubbliche debbano o meno essere pubblicate, cioè rese visibili front-end. Referenti e Categorie: tra tutti i dati di un lavoro pubblico sono molto importanti il referente (ossia il dipendente dell'ufficio Lavori Pubblici cui è ne assegnata la supervisione) e la categoria (ad esempio Edilizia Scolastica o Riqualificazione Urbana ): per questo devono essere codificate a livello di database come entità e non come attributi del lavoro. Database: non esiste alcun database preesistente dei lavori pubblici, per cui è necessario crearne un nuovo e popolarlo con tutti i dati registrati nei fogli di calcolo degli ultimi anni. Architettura: si sarebbe dovuta utilizzare l'architettura hardware e software esistente. Viste queste richieste, ci troviamo di fronte a un CMS (Content Management System) non 10

12 molto sofisticato: infatti c'è solo un gruppo di utenti back-office e gli unici oggetti da gestire abbastanza rilevanti sono i lavori pubblici. 11

13 3.0: Progettazione del servizio Le informazioni ricavate in seguito alla raccolta delle specifiche dei requisiti del Servizio Web Lavori Pubblici hanno costituito la base della fase successiva, la progettazione. Si è proceduto anzitutto con l'individuazione e la strutturazione delle entità logiche che dovevano essere trattate (compresi i gruppi di utenti) per continuare con il design dei flussi delle conversazioni che interagiscono con tali entità. A seguire, lo studio e la scelta dei componenti dell'architettura, l'infrastruttura hardware e software sottostante che permette il funzionamento effettivo dell'applicazione. 3.1: Progetto e struttura dei dati Le entità sono rappresentazioni di classi di oggetti contraddistinti da una serie di attributi o proprietà. Una proprietà può essere a valore singolo o avere più valori, mentre il tipo del valore (o dei valori) può essere semplice (una stringa, un numero, un booleano...) o complesso (un oggetto). Le entità possono essere in oltre messe in relazione tra di loro e per ogni relazione possono essere esplicitate le molteplicità, cioè il numero di istanze considerabili. Osservando le specifiche si possono individuare quattro entità di cui il Servizio Web Lavori Pubblici deve tener conto: i lavori pubblici (ai quali sono associati i diversi avanzamenti dello stato), le categorie degli stessi e i referenti comunali. Le relazioni esistenti sono rappresentate dallo schema ER (Entity-Relationship) della Figura 2. Figura 2: schema ER delle entità dell'applicazione 12

14 Le molteplicità sono presto spiegate: ad una categoria possono fare riferimento più lavori, mentre un lavoro viene posto sotto una sola categoria ad un lavoro corrispondono più avanzamenti, un'istanza di avanzamento è riferita a un singolo lavoro un lavoro considera solo un referente, mentre a un referente possono essere assegnati più lavori E' interessante notare che gli avanzamenti sono un'entità debole. Questo perché hanno un'unica relazione e le loro istanze devono essere necessariamente associate a un lavoro per assumere significato: un avanzamento quindi può esistere soltanto se c'è un'opera pubblica che lo comprende. In UML (Unified Modeling Language) questa associazione tra entità prende il nome di composizione. I lavori pubblici (o opere pubbliche) costituiscono l'entità fondamentale che il Servizio Web Lavori Pubblici deve trattare. Essi sono la trasposizione digitale degli interventi di natura edile e infrastrutturale che l'amministrazione comunale attua sul suo territorio. Studiando i requisiti specificati in precedenza è possibile individuare quali proprietà possano interessare un lavoro pubblico. Siamo di fronte a un insieme di attributi semplici a valore singolo (oltre all'oid, il nome, l'anno, la categoria, gli importi stanziati, il finanziamento, il progettista, le coordinate cartografiche, l'url dell'immagine associata, le varie voci che compongono la locazione e un flag che indichi se l'opera pubblica è disponibile front-end) e di attributi complessi, cioé il referente comunale e gli avanzamenti. L'evoluzione di un'opera pubblica è data dalla successione degli avanzamenti che la caratterizzano. Dall'analisi del foglio Excel si può ricavare la sequenza degli stadi attraverso cui occorre passare: 13

15 1. Affidamento incarico 2. Disciplinare incarico 3. Progetto preliminare 4. Attivazione procedura espropriativa 5. Progetto definitivo 6. Quattro (4) pareri 7. Impegno finanziario 8. Progetto esecutivo 9. Gara d'appalto 10. Contratto 11. Consegna lavori 12. Conclusione esproprio 13. Ultimazione lavori 14. Collaudo 15. Economia Dal punto di vista degli attributi dell'avanzamento, queste voci rappresentano i tipi di avanzamento che si possono incontrare. Un'altra proprietà necessaria è un valore numerico che indichi la posizione dell'avanzamento all'interno della sequenza (potrebbe essere l'indice della precedente lista); sarà così possibile disporlo correttamente quando si tratterà di gestire lo stato di un lavoro. Poiché le specifiche richiedono che sia possibile effettuare ricerche tra i lavori secondo lo stadio ( in progettazione, in corso, concluso ) si inserisce un ulteriore attributo, costituito da un flag ternario, che associa all'avanzamento uno dei tre stadi elencati: cercando l'ultimo avanzamento di un lavoro sarà possibile risalire allo stadio dell'opera pubblica (in particolare, sarà in progettazione fino all'impegno finanziario, in corso tra la consegna e l'ultimazione dei lavori e conclusa a partire dal collaudo). Come da specifiche, vanno inclusi anche 2 attributi indicanti la data di raggiungimento dell'avanzamento e una nota di testo. Passando alle altre entità, quella delle categorie si rivela molto semplice poiché ha due soli attributi : l'oid (Object IDentifier) e il nome. Non sono necessarie altre informazioni perché la categorizzazione dei lavori ha un unico livello e a dire il vero l'unica 14

16 ragione che giustifichi l'esistenza di questa entità è la volontà di codificare questo importante attributo delle opere pubbliche. Il referente, inteso come entità, ha due volti: per un verso costituisce una serie di valori per un attributo dei lavori pubblici (come già detto, è il dipendente comunale dell'ufficio Lavori Pubblici che viene assegnato alla supervisione di un'opera pubblica per conto dell'amministrazione locale), per l'altro rappresenta gli utenti che hanno la possibilità di accedere all'amministrazione dell'applicazione (secondo le specifiche infatti i referenti sono anche possibili utenti del Servizio Web Lavori Pubblici nel ruolo di Gestori). Per questi motivi non sono sufficienti proprietà che permettano di identificare le persone (come il nome e il cognome) ma diviene necessario registrare i loro username della intranet per poterli riconoscere come dipendenti comunali e eventualmente autorizzarli ad accedere al servizio. A questo proposito, si inserisce altresì un attributo booleano che indica se il referente è o meno autorizzato a amministrare (l'autorizzazione potrebbe essere tolta, per esempio, a dipendenti comunali che smettono di lavorare nell'ufficio Lavori Pubblici). La Figura 3 riporta un riassunto grafico delle conclusioni di questo capitolo. Figura 3: schema ER espanso delle entità dell'applicazione 15

17 3.2: Gruppi di utenti Per il Servizio Web Lavori Pubblici è necessario un solo gruppo di utenti interni registrati, quello degli Amministratori/Gestori. L'altro gruppo che deve essere considerato è quello degli utenti esterni non registrati (che potremmo chiamare Visitatori, Cittadini o Residenti). Un Gestore, nel contesto dell'applicazione, è paragonabile al dipendente comunale che aggiornava i fogli di calcolo contenenti informazioni sulle opere pubbliche. Ha molto potere per quanto riguarda la gestione dei dati. Si tratta dell'utente che inserisce nuovi lavori pubblici nel database, li modifica, li elimina e ne aggiorna lo stato creando degli avanzamenti. Può creare e modificare le categorie dei lavori e, a patto che non vi siano assegnate delle opere, eliminarle. Può fare lo stesso per i referenti, ai quali può inoltre concedere o negare l'autorizzazione a amministrare i lavori pubblici (visto che corrispondono anche a potenziali utenti). Naturalmente, il Gestore può effettuare ricerche nel database delle opere fornendo determinati parametri (lo stadio, l'anno, la categoria, il nome e il referente, oltre all'ordine e al verso che si desiderano). I Visitatori esterni possono essere immaginati come i cittadini del comune di Cento che accedono al servizio per consultare il database. L'unica opzione di cui dispongono sono le ricerche, quindi possono soltanto navigare l'archivio e visualizzare il dettaglio di un'opera pubblica. Tale funzione è ottenuta per sottrazione da quella analoga del Gestore, eliminando il parametro del referente comunale (che secondo le specifiche è un'informazione riservata). 3.3: Conversazioni e pagine I gruppi di utenti sono stati individuati, il passo seguente consiste nella descrizione delle conversazioni. E' detta conversazione una sequenza di pagine Web che abbia un senso compiuto (ad esempio la successione di pagine necessaria per acquistare un prodotto in un sito di e-commerce); generalmente essa porta alla conclusione di un'azione ed è caratterizzata inoltre dall'insieme dei dati che vengono trasferiti nel passaggio da una pagina a quella seguente (il cosiddetto flusso della conversazione). Nella progettazione delle conversazioni ci si può avvalere di un criterio empirico detto 16

18 di similitudine o di somiglianza : se due pagine sono simili tra di loro, può avere senso fonderle in una sola. Un caso frequente è costituito dall'inserimento e dalla modifica di un'istanza di un'entità: solitamente queste funzioni si realizzano con pagine contenenti i form necessari per raccogliere i dati richiesti all'istanza; la sola differenza che intercorre tra le due è che per la modifica nei campi vengono precaricati i valori specificati al momento della creazione o dell'ultima variazione. Seguire il criterio di somiglianza porta alla riduzione di possibili ridondanze e a un uso più efficiente del codice, con una conseguente maggiore complessità. Infatti, poiché un'unica pagina può servire a più casi, diventa necessario specificarne lo stato (nell'esempio insert o modify ), il quale viene generalmente passato come un parametro GET o POST e indica il contesto d'azione e le operazioni che devono essere eseguite. Il criterio si somiglianza non ha un preciso campo di applicazione e non è detto che fornisca sempre soluzioni convenienti; può elargire indicazioni utili per favorire il progetto delle conversazioni e dei flussi, ma non bisogna dimenticare che si tratta di una regola più congeniale per instradare verso un rimedio che per risolvere : Le conversazioni I paragrafi seguenti illustrano le conversazioni dell'applicazione, partendo da quella di ricerca (comune per i Visitatori e gli Amministratori, seppur con qualche differenza). Per semplicità i flussi sono stati raggruppati a seconda dell'entità che trattano. Ricerca: la prima pagina visualizzata accedendo al Servizio Web Lavori Pubblici è quella contenente il form per inserire i parametri di ricerca per le opere pubbliche. Tali parametri sono per la precisione lo stadio, l'anno, la categoria e il nome (per i Gestori anche il referente) oltre all'ordine e al verso in dovranno essere disposti i record risultanti. Inoltrando il form si accede a un'altra pagina che visualizza i risultati della ricerca, disponendo in una tabella alcune informazioni sui lavori trovati (solo quelle che l'utente è autorizzato a vedere). Selezionando un lavoro è possibile accedere alla schermata che espone informazioni più dettagliate su di esso (naturalmente solo quelle per cui si ha l'autorizzazione). Questa conversazione è rappresentata nella Figura 4. 17

19 Figura 4: conversazione di ricerca Le conversazioni che seguono sono disponibili soltanto per il gruppo dei Gestori. Gestione lavori: l'amministratore ha il potere di inserire nel database nuove opere pubbliche, di modificarle e di eliminarle, come mostrato nella Figura 5. L'inserimento si attua grazie a una pagina che ospita i campi di un form; alcuni di questi sono campi di testo da riempire mentre altri sono menù a tendina popolati con valori codificati sul database (è il caso delle categorie e dei referenti). Naturalmente per creare un lavoro sarà necessario specificarne almeno il nome (gli altri dati potranno essere cambiati in seguito). Inoltrando la richiesta con successo si arriverà alla pagina di dettaglio dell'opera pubblica appena inserita e da questa si potrà partire per modificare i dati del lavoro o per specificarne gli avanzamenti. La modifica sfrutta lo stesso form dell'inserimento, con la differenza che nei campi vengono precaricati i valori specificati in occasioni precedenti; sarà possibile accedere alla pagina in modalità modify dalla schermata di dettaglio dell'opera che si vuole modificare. Se il submit del form ha successo si tornerà al dettaglio del lavoro, aggiornato. Anche l'eliminazione può essere effettuata dalla pagina dell'opera pubblica, con un comando apposito. Se avrà successo, si tornerà alla pagina dei risultati della ricerca. Per comodità si può aggiungere in questa stessa pagina un comando, associato a ogni lavoro pubblico riportato, che permetta di eliminarlo direttamente. 18

20 Figura 5: flussi della gestione dei lavori pubblici Gestione avanzamenti: l'amministratore ha naturalmente il potere di specificare gli avanzamenti di un lavoro, aggiornarli e nel caso cancellarli. Queste operazioni sono permesse partendo dalla pagina di dettaglio del lavoro pubblico. Considerando che nella maggioranza dei casi è sufficiente creare un avanzamento e collegarlo al lavoro senza che sia necessario specificare la data o la nota, può essere sufficiente esporre una lista dei possibili avanzamenti dove cliccando su uno degli elementi si proceda alla sua creazione; fatto questo, l'istanza dell'avanzamento verrebbe in qualche modo evidenziata. Se si volessero precisare la data o la nota allora si dovrebbe procedere alla modifica, selezionando l'avanzamento che interessa: si accede così a una pagina con un semplice form di due campi che permette di precisare i due valori. Se l'inoltro ha successo si ritorna alla schermata del lavoro. L'eliminazione è altrettanto semplice, è sufficiente selezionare il comando apposito associato all'istanza dell'avanzamento che si vuole cancellare. A riguardo di questa conversazione, si consideri la Figura 6. 19

21 Figura 6: flussi della gestione degli avanzamenti Gestione categorie: le categorie sono particolarmente semplici da gestire, possedendo da una sola proprietà (il nome). Poiché inoltre il numero di categorie non sarà mai molto elevato si può usare un'unica pagina per tutte le funzioni, abbinando all'elenco delle categorie già create il form per modificarle e crearne altre. La modifica avviene attraverso due passaggi: nel primo, dopo aver selezionato una categoria, si effettua il precaricamento del form mentre nel secondo avviene l'aggiornamento. L'eliminazione sarà possibile soltanto se la categoria in questione non risulterà associata a nessun lavoro pubblico. Gestione referenti: il caso è del tutto analogo a quello delle categorie, varia soltanto il form. Anche qui l'eliminazione è possibile solo se il referente non è associato a alcuna opera pubblica. Le ultime due paragrafi sono il soggetto della Figura 7. Figura 7: flussi per la gestione delle categorie e dei referenti; le pagine tratteggiate sono state inserite per chiarezza al fine di rendere esplicito il percorso di modifica, in realtà rappresentano sempre la stessa pagina 20

22 3.3.2: Progetto del layout delle pagine E' bene che le diverse pagine che compongono un'applicazione Web siano per quanto possibile graficamente uniformi. Questo accorgimento, che ha il merito di rendere più agevole la navigazione e di standardizzare il posizionamento degli elementi, può essere applicato con una serie di strumenti potenti e flessibili. Generalmente vengono definiti un header e un footer (rispettivamente un'area situata all'estremo superiore della pagina e un'altra posta all'estremo inferiore), assieme a un numero variabile di barre laterali. Solitamente l'header contiene un logo o un intestazione, il footer alcune informazioni secondarie e le barre dei menù che indicano le aree principali del sito. Considerando che le aree di Servizio Web Lavori Pubblici non sono molte (coincidono quasi con i gruppi di conversazioni citati in precedenza) sembra eccessivo utilizzare un'intera porzione laterale dello schermo per poche righe. Per questo un piccolo riquadro che contiene i comandi e i link disponibili per la pagina visualizzata al momento viene posto, assieme a un'intestazione contestuale della pagina, nella sezione alta del content, l'area centrale della pagina che rimane riservata alla visualizzazione del contenuto per cui effettivamente questa è stata richiesta; nel caso questa può essere ulteriormente strutturata per venire incontro alle esigenze che possono presentarsi nelle singole pagine. Il layout del servizio è mostrato nella Figura : Architettura A questo punto si può dire conclusa la progettazione del servizio in sé, resta da definire l'architettura, cioè l'infrastruttura hardware e software sottostante che ne permette il funzionamento materiale. In condizioni normali, a seconda del tipo di applicazione, i componenti del sistema vengono scelti in base a obiettivi ben chiari ma che possono variare di molto dipendentemente delle circostanze (prestazioni, resistenza ai guasti, sicurezza...); tali scelte sono naturalmente influenzate da altrettanto chiari vincoli, quali il budget a disposizione per la realizzazione del progetto, la competenza di chi dovrà gestire il sistema e l'eventuale presenza di un'architettura già in uso. Proprio quest'ultimo è il caso in questione: si dispone di un'infrastruttura già esistente e funzionante che non può essere modificata e alla quale bisogna adattarsi, quella della rete del Comune di Cento. In verità, Servizio Web Lavori Pubblici è un'applicazione semplice che non 21

23 richiede particolari prestazioni da parte dell'hardware per funzionare adeguatamente, né pretende di usare tecnologie particolarmente esclusive o esotiche; non si prevedono nemmeno molti accessi, almeno non tanti da mettere in difficoltà l'architettura presente. Insomma, vista la sua ridotta complessità, l'applicazione può adattarsi facilmente a diversi sistemi. Poiché non è dato di riprogettare l'architettura e le scelte possibili sono poche, è il caso di presentare la struttura attuale della piattaforma che supporta Servizio Web Lavori Pubblici (mostrata nella Figura 9). Figura 8: schema del layout delle pagine del "Servizio Web Lavori Pubblici" 22

24 L'intranet del Comune di Cento è separata da Internet grazie a un firewall. Questo stesso firewall delimita anche la DMZ (DeMilitarized Zone). In origine in questa venne installato un Web server Apache su piattaforma Linux (con PostgreSQL come database) che ospitava il portale del comune e era destinato all'accesso da parte dei visitatori. Nella DMZ c'era anche un server detto Ras, che forniva ai cittadini la possibilità di collegarsi a Internet in modalità dial-up senza dover pagare alcun abbonamento. C'era però un problema, legato al fatto che i cittadini connessi attraverso Ras si collegavano al server Web senza passare attraverso il firewall. Al fine di aumentare la sicurezza, si decise che i nuovi servizi Web sarebbero stati installati in un altro server, interno alla intranet, detto server Applic. Questo ha mantenuto Apache come Web server ma la piattaforma cambiò in Windows, per omogeneità con le postazioni intranet esistenti. Anche il database cambiò a favore di MySQL, ritenuto più semplice. L'ultima evoluzione nel tempo si è verificata ancora per il database, con il passaggio a SQL Server di Miscrosoft per una serie di motivi che vanno dal supporto per l'autenticazione single sign-on alla presenza di funzioni proprietarie che interessano al Comune, al fatto che sono molti i fornitori che lo richiedono per i loro prodotti. Figura 9: schema della rete del Comune di Cento 23

25 La politica attuale dell'ssi, quando si tratta di introdurre nuove applicazioni, privilegia lo sfruttamento degli ultimi strumenti adottati. Per questo motivo Servizio Web Lavori Pubblici è stato installato sul server Applic (quindi una piattaforma Windows), sfrutta Apache come server Web (con PHP come scripting engine) e usa MS SQL Server come database. Un'ultima nota sul funzionamento della rete è rappresentata dalla presenza nella DMZ di un server detto Relay che agisce da proxy per le richieste provenienti dall'esterno indirizzate ai server della intranet, tra i quali il server Applic. 24

26 4: Realizzazione del servizio La fase di progettazione può a questo punto dirsi conclusa. Quella seguente consiste nella realizzazione effettiva del servizio. L'applicazione risultante si può considerare distribuita su più livelli, ognuno con le sue competenze specifiche. Se ne possono individuare almeno 3: il livello dei dati (il database), il livello di presentazione (le pagine Web) ed un altro livello intermedio che può chiamare logica applicativa o business logic (gli script). Il primo è quello più basso e i suoi compiti sono l'archiviazione e l'organizzazione dei dati, mentre il terzo è il più alto a livello logico e si occupa di rendere possibile l'interazione dell'utente col sistema, visualizzando informazioni e recependo comandi e input. La business logic fornisce l'interfaccia di collegamento tra gli altri due grazie agli strumenti che lo compongono; il suo merito principale è aumentare la trasparenza per il livello superiore, che così si limita ad esporre dati e informazione senza dover sapere da chi o come sono stati archiviati. 4.1: Strumenti e Tecnologie I prossimi paragrafi intendono presentare gli strumenti e le tecnologie che sono stati utilizzati per sviluppare il Servizio Web Lavori Pubblici. Assieme a qualche rapida nota storica verranno riassunti il funzionamento e le caratteristiche dello strumento in esame, seguiti da un accenno a quelli concorrenti e ai motivi che hanno portato il personale del comune a rifiutarli in favore del primo : PHP (scripting server-side) PHP è un linguaggio interpretato di scripting, server-side, open-source. Il suo nome è un acronimo ricorsivo che sta per PHP: Hypertext Preprocessor. Ha visto la luce nella sua prima forma nel 1994 per opera dell ingegnere tedesco Rasmus Lerdorf e attualmente è giunto alla versione 5.1.4; circa venti milioni di domini ne fanno uso e il modulo che ne fornisce il supporto è quello più installato sui server Apache. La Figura 10 mostra l'evoluzione della diffusione di PHP negli ultimi anni. 25

27 Figura 10: la diffusione di PHP da gennaio 2000 a oggi (Netcraft) I diversi linguaggi di scripting server side funzionano tutti secondo un concetto simile, per quanto esso possa essere implementato in modi diversi. In generale, all arrivo della richiesta di una pagina al server web, questi si occupa di calcolarla prima di inviarla. Il risultato è una semplice pagina HTML, che può essere letta da qualsiasi browser sia installato sul client. Tale tecnologia permette di avere pagine web sempre aggiornate (in quanto calcolate al momento della richiesta) senza richiedere al client sforzi ulteriori rispetto alla lettura di una pagina statica. Generalmente, i file che contengono il codice di scripting sono normali pagine HTML che hanno al loro interno parti di codice delimitate da particolari tag (nel caso di PHP <?php e?>): prima che le pagine vengono inviate al client viene eseguito il codice, che viene poi sostituito con l'output risultante. Alcune caratteristiche che contraddistinguono il linguaggio sono la tipizzazione dinamica delle variabili (operazioni tra variabili di diverso tipo comportano coercizioni automatiche adeguate al caso) e la presenza di array associativi (le chiavi che identificano i valori dei vettori sono di tipo arbitrario, non necessariamente interi in sequenza, ma anche stringhe; inoltre non è necessario specificare una dimensione al momento della creazione degli array, e è possibile assegnare valori di diverso tipo a chiavi diverse dello stesso array). PHP, nella versione utilizzata per lo sviluppo di questo progetto (4.4.2), prevede anche una sorta di implementazione parziale della programmazione a oggetti. 26

28 Tale implementazione prevede naturalmente la definizione di classi con proprietà e metodi, l ereditarietà singola per le classi, il polimorfismo, l overridding e l introspezione. D altro canto non è prevista la definizione di interfacce (e la conseguente ereditarietà multipla come in Java), la visibilità delle variabili e dei metodi è sempre pubblica, non è prevista la definizione di più costruttori e in generale l overloading (sebbene possa essere simulato). Tali limiti sono stati superati a partire dalla versione 5.0. E' possibile definire funzioni e classi all'interno di un file e utilizzarle in altri; il funzionamento di questa possibilità non si basa però su file header come in C o su import come in Java, bensì su inclusioni (grazie alla funzione include() e alle sue variazioni). Di fatto, al momento dell'inclusione, il file richiesto viene ricopiato e sostituito alla funzione di invocazione; in questo modo oggetti e funzioni operano come se venissero definite nel file che le richiede. La sintassi di PHP è simile a quella di C ma eredita anche alcuni aspetti da Java (ad esempio un operatore per concatenare 2 stringhe) e Perl (le variabili identificate col prefisso '$'). I principali concorrenti di PHP sono JSP (Java Server Pages) di Sun e ASP.NET (Active Server Pages) di Microsoft. La differenza più evidente tra PHP e gli altri due sistemi è che questi sono linguaggi compilati, mentre il primo è interpretato. PHP in genere è più prestante ma le altre tecnologie sono più adatte alla creazione di applicazioni web molto strutturate, basandosi su framework. Un'altra differenza è che PHP è open source e può funzionare su praticamente qualsiasi piattaforma; JSP è proprietario ma free (basandosi su Java) e ha una grande portabilità; ASP.NET è proprietario e funziona soltanto su macchine Windows. PHP è stato scelto come linguaggio di scripting della rete del Comune per la sua semplicità e per la simbiosi che lo lega a Apache : Microsoft SQL Server (DBMS) Un database è uno strumento progettato per organizzare, archiviare e manipolare dati che si basa sull'utilizzo di tabelle, le quali possono essere organizzate secondo vari modelli. Il modello relazionale permette di creare legami logici tra tabelle che rappresentano oggetti o entità mediante l'uso delle chiavi (che sono insiemi di colonne in grado di identificare univocamente i record della tabella). Le informazioni contenute in una 27

29 base di dati possono essere manipolate grazie a alcuni linguaggi appositi che permettono di eseguire query (interrogazioni) ma anche inserire, aggiornare e cancellare i record; il più diffuso e standardizzato e l'sql (Simple Query Language). SQL Server è un DBMS (DataBase Management System) relazionale prodotto da Microsoft. Originariamente venne creato per piattaforme Unix da Sybase, la quale poi si alleò con Microsoft e Ashton-Tate per svilupparne la versione per OS/2. La collaborazione continuò per alcuni anni poi ogni impresa tornò a perseguire i propri scopi; Microsoft così riscrisse SQL Server (giunto alla versione 7.0) per liberarsi da vincoli di licenza con le exalleate. Attualmente il DMBS è giunto alla versione 2005 (9.0) e vanta un'ampia diffusione, specie nelle attività che usano database di dimensioni medio-piccole. SQL Server sfrutta un'estensione proprietaria di SQL, detta T-SQL (Transact SQL), che estende le funzionalità del linguaggio di interrogazione. Queste vanno dall'aggiunta di nuove funzioni all'introduzione di comandi per il controllo di flusso (IF, ELSE, ecc.). In ambito proprietario i grandi concorrenti di Microsoft sono IBM (con DB2) e Oracle, per il mondo open source invece MySQL. Rispetto ai primi due SQL Server è meno potente e performante, ma viene venduto a un prezzo più competitivo. MySQL, pur risultando più veloce, tuttavia non ha tutte le funzionalità aggiuntive di cui dispone il DBMS di Microsoft; d'altro canto MySQL è open source e gratuito (o molto economico). Per ultimo non va trascurato il fatto che SQL Server funziona solo su piattaforme Windows mentre i suoi concorrenti hanno una portabilità molto maggiore. SQL server è l'ultimo DBMS adottato dal Comune di Cento. Questa decisione è stata determinata dai vantaggi proprietari che offre (tra i quali l'autenticazione single sign-on) e dal fatto che molti fornitori lo richiedono per i loro prodotti, poiché alcune applicazioni che interessano all'amministrazione funzionano soltanto con questa base di dati : Apache (Web server) Un Web server è un'applicazione la cui funzione principale è processare richieste HTTP provenienti da Web client (ad esempio un Web browser) e in base a quanto domandato fornire la risposta, la quale può essere un file di qualsiasi tipo (tipicamente HTML, statico o generato dinamicamente) ma anche un messaggio di errore nel caso si sia presentato qualche problema. 28

30 Apache è il server Web più popolare e diffuso al mondo, e detiene il 65-70% del mercato (a tal proposito si veda la Figura 11). E' un prodotto open source che ha iniziato a essere sviluppato nel 1994 a partire dal codice del demone HTTP NCSA, dopo che il creatore ne aveva interrotto lo sviluppo. Vari webmasters che avevano iniziato a estendere e correggere autonomamente il demone crearono una mailing list che permise loro di coordinarsi e a giungere al rilascio della prima versione di Apache. Lo sviluppo continuò e in breve il Web server conquistò il mercato. Apache è in grado di funzionare sui principali sistemi operativi e implementa tutta una serie di servizi che vanno dal virtual hosting alla negoziazione dei contenuti al supporto per HTTPS. La caratteristica più interessante è probabilmente la possibilità di estendere le potenzialità di Apache installando alcuni mod che integrino nuove funzionalità (ce ne sono di ogni tipo) e permettono l'agganciamento con altre applicazioni. Il principale concorrente di Apache è IIS (Internet Information Services) di Microsoft. Entrambi i server Web sono abbastanza competitivi sul fronte delle prestazioni e prevalgono l'uno sull'altro a seconda del contesto. Apache ha dalla sua il supporto multipiattaforma e la gratuità mentre IIS funziona solo con Windows e, per quanto teoricamente gratuito, deve essere acquistato assieme al sistema operativo per essere usato. Figura 11: rilievi sulla diffusione dei server Web dal settembre '95 a oggi 29

31 Apache è stato scelto perché inizialmente il primo computer che fungeva da server Web del Comune aveva Linux come sistema operativo, che è la sua piattaforma ideale. Naturalmente hanno inciso la spese basse e le conoscenze degli addetti alla gestione del server. Per quello che riguarda Servizio Web Lavori Pubblici, è stato installata un'estensione (mod_auth_sspi) che rende possibile il login single sign-on, richiesto nelle specifiche : HTML e CSS L'HTML (HyperText Markup Language) è un linguaggio di formattazione orientato al Web. E' di fatto lo standard per la creazione di pagine Web e è supportato da qualsiasi browser. E' nato nel 1994 nel CERN di Ginevra per opera di Tim Berners Lee. Per vari anni, fino al 1998, le specifiche HTML che si susseguivano cercavano di inseguire le innovazioni proprietarie che erano state introdotte durante la browser war tra Internet Explorer e Netscape Navigator; con HTML 4.0 è cambiata la politica e oggi dovrebbero essere i browser a adattarsi al linguaggio, non viceversa; l'ultima versione rilasciata è stata la L'attuale evoluzione dell'html è nell'xhtml (extensible HTML), la sua versione aderente alle specifiche di XML (extensible Markup Language). Il suo funzionamento di basa su tag, una serie di istruzioni racchiuse tra parentesi angolari. I tag possono contenere del testo e essere caratterizzati da attributi che ne specificano gli effetti, come in questo esempio: <a href= index.html >Home Page</a> Il tag a trasforma il testo che contiene ( Home Page ) in un hyperlink che permette di raggiungere il documento specificato dall'attributo href. HTML soffre di una scarsa divisione tra contenuto e separazione (nonostante una progettazione oculata possa limitare il problema). Questo difetto ha subito una serie di correzioni nel tempo e dovrebbe essere stato risolto con l'xhtml. Una delle tecnologie che ha favorito la separazione è quella dei CSS (Cascading Style Sheet). Sviluppato dal W3C (World Wide Web Consortium), questo strumento è in grado di definire, per qualsiasi 30

32 istanza di un tag di una pagina HTML, delle regole di stile (dimensione, colori, bordi ma anche proprietà specifiche del tag) attraverso una sintassi a base di selettori, regole, classi e identificatori; in questo modo si può gestire il contenuto grazie al markup e la sua presentazione diventa una prerogativa dei fogli di stile. I CSS non usano un linguaggio XML compliant. Uno dei vantaggi della separazione tra contenuto e formattazione sta nel fatto che se il contenuto è autonomo allora è possibile associarvi diverse presentazioni che possano adattarsi ai vari media o utenti, e i CSS prevedono questa possibilità. E' possibile infatti definire diversi fogli di stile a seconda del supporto di output del client (lo schermo di un computer, un videoproiettore, una stampante, ecc.) o personalizzare il layout in base alle esigenze dell'utente (per esempio versioni a alto contrasto per ipovedenti) : Javascript (scripting client-side) Uno script client-side è del codice che viene interpretato dal client Web (tipicamente un browser). Permette di modificare i contenuti della pagina HTML in seguito allo scatenarsi di eventi che possono essere originati dal sistema o dalle azioni dell'utente. Il linguaggio di scripting client-side maggiormente diffuso e supportato (sebbene con qualche incompatibilità cross-browser) è sicuramente Javascript. La sintassi assomiglia abbastanza a quella di Java. Sono definiti dei tipi primitivi e alcuni oggetti dotati di metodi e proprietà che permettono di interagire con il documento. Grazie all'interfaccia DOM (Document Object Model) è possibile accedere alle istanze degli elementi che costituiscono la pagina e interagirvi mediante l'uso degli oggetti citati sopra. L'unica tecnologia sufficientemente diffusa analoga a Javascript è VBScript di Microsoft; può fare le stesse cose, ma è compatibile soltanto con Internet Explorer. Le potere di Javascript è molto e offre molte possibilità, ma non si può essere sicuri che sia attivato sul client e gli errori possono essere rilevati solo al momento dell'esecuzione. Uno dei fini più utili cui questa tecnologia è la validazione di form, i cui campi devono essere inoltrati al server con valori che rispettino precisi parametri. 31

33 4.2: Costruzione del database Il livello più basso del Servizio Web Lavori Pubblici è costituito dal database. E' stato necessario crearne uno nuovo che, come anticipato, si basa su SQL Server ed è stato installato sul server Applic. Ciò comporta un vantaggio: sullo stesso server è presente il database del SIT (basato sullo stesso DBMS) che contiene i nomi di tutte le strade e le località del comune di Cento raggruppate secondo la frazione. La possibilità di specificare l'ubicazione dell'opera pubblica è una specifica richiesta e questa base di dati rappresenta una notevole semplificazione nel raggiungimento di un risultato soddisfacente sotto questo aspetto. Il database contiene tutti i dati che dovranno essere gestiti dall'applicazione, organizzati in tabelle. Queste vengono costruite a partire dallo schema ER dei dati, seguendo alcune regole di modifica. Si procede creando una tabella per ogni entità considerata (quindi lavori, avanzamenti, categorie e referenti). I vari campi (le colonne ) che andranno inclusi nella tabella devono essere scelti facendo attenzione a discernere tra quelli che riguardano le istanze e quelli che invece sono comuni per tutta una classe di oggetti. Per fare un esempio si vedano gli avanzamenti: le proprietà includono data, nota, posizione, stadio e tipo, oltre all'oid. E' chiaro che la data e la nota sono attributi specifici dell'istanza in quanto possono variare per ogni avanzamento creato; al contrario la posizione, lo stadio e il tipo sono in relazione diretta tra di loro, poiché un tipo di avanzamento avrà sempre la stessa posizione rispetto agli altri e farà sempre riferimento allo stesso stadio tra in progettazione, in corso e ultimato. Si capisce che ripetere queste informazioni per ogni record della tabella degli avanzamenti rappresenta un'inutile ridondanza. In questi casi si procede riadattando le entità e le relazioni tra di loro; nell'esempio specifico si introduce una definizione di avanzamento un po' differente: un avanzamento diventa un entità in relazione con i lavori pubblici che registra gli attributi comuni per ogni suo tipo (quindi un tipo di avanzamento ); le proprietà specifiche delle istanze vengono invece esplicitate nella relazione con l'entità delle opere pubbliche (come mostrato nella Figura 12). La nota e la data quindi diventano attributi della relazione. Cambia anche la cardinalità della stessa, che diventa molti a molti: infatti un tipo di avanzamento può essere in relazione con più lavori e viceversa. 32

34 Figura 12: schema ER per il database Per quello che riguarda le tabelle delle categorie e dei referenti non si presentano difficoltà: le colonne sono la semplice trasposizione delle proprietà definite al momento dell'analisi dei dati. Abbastanza facile anche il caso dei lavori, seppur con qualche complicazione. Come per categorie e referenti, vengono riportati gli attributi definiti in precedenza; quello che cambia è dovuto alle relazioni esistenti. Quando due entità sono legate tra di loro bisogna in qualche modo mappare sul database la relazione, altrimenti si avrebbero solo le due tabelle delle entità senza alcun legame. A seconda delle molteplicità si procede così: se uno a molti, l'entità che ammette la molteplicità maggiore include nella sua tabella una colonna che importa la chiave dell'altra entità se molti a molti, viene creata una nuova tabella che importa le chiavi di entrambe le entità e le mette in relazione In questo modo è sempre possibile risalire alle istanze che sono tra di loro collegate. Tornando ai lavori pubblici, secondo quanto appena detto la tabella relativa ha due colonne (categoria e referente_comunale) che importeranno dalle rispettive tabelle gli OID (le chiavi) di categoria e referente. Inoltre, in virtù dell'esistenza della relazione molti a molti con gli avanzamenti, si crea una tabella (Lavori_Avanzamenti) che importa l'oid dei lavori e il nome dei tipi di avanzamento e li lega; alla luce del fatto che le proprietà delle 33

35 istanze degli avanzamenti devono essere espresse nella relazione con le opere pubbliche, si aggiungono altre colonne che riportano la data, la nota e l'oid delle istanze. Dopo aver creato il database (con il nome di Lavori_pubblici ) si fa lo stesso per le tabelle che lo compongono. Per iniziare, si inseriscono tutti i record della tabella dei tipi di avanzamento (poiché le informazioni che li riguardano non potranno essere modificate dall'applicazione; la tabella è mostrata nella Figura 13). Separare attributi di istanza e attributi comuni ha reso molto semplice la modifica di questi ultimi: è sufficiente variare il loro valore nella relativa tabella e subito questa modifica vale per tutte le istanze collegate. Prima di passare ad altri argomenti, alcune considerazioni sull'interazione con la base dati da parte dell'applicazione. L'accesso al database si realizza mediante alcune funzioni di PHP. Questo linguaggio è molto famoso per le performance che realizza quando si collega a delle basi di dati; ciò è possibile grazie alla definizione di funzioni specifiche per ogni DBMS, che ne sfruttano le caratteristiche particolari (ad esempio, per la connessione a MySQL esiste mysql_connect() mentre mssql_connect() è l'analogo per SQL Server). Il costo di queste prestazioni elevate è la mancanza di trasparenza per il programmatore, che deve scegliere le funzioni in base al preciso DBMS. Figura 13: tabella degli avanzamenti popolata 34

36 Esistono delle librerie che realizzano uno strato di astrazione del database (DB abstraction layer) ma vista la bassa complessità di Servizio Web Lavori Pubblici e considerando tutto sommato improbabile che si verifichi un cambio di DBMS (almeno nel medio termine) si può rimediare a questo inconveniente con una soluzione rudimentale ma adatta allo scopo. Si crea un file (database.php) che riporta le informazioni necessarie per accedere al database (host, nome, username e password) e in cui viene definita una serie di funzioni che di fatto ripropongono quelle specifiche per il DBMS che si sta utilizzando. Utilizzando queste nuove funzioni all'interno degli script dell'applicazione non sarà difficile cambiare database in un secondo momento, poiché è sufficiente modificarle inserendo nelle loro implementazioni le invocazioni specifiche per il nuovo sistema (si veda la Figura 14). Figura 14: parte dello script PHP che implementa lo strato di astrazione del database 35

37 4.3: Utenti, autenticazione e oggetti I gruppi di utenti del Servizio Web Lavori Pubblici sono due (Visitatori e Gestori), di cui soltanto uno registrato; pertanto la loro gestione non si presenta particolarmente complessa. Normalmente, le sessioni vengono gestite grazie a cookie (soluzione lato client) o a oggetti-sessione (soluzione lato server) che tengono traccia dei dati dell'utente dopo che questi si è autenticato. Il caso in questione diverge un po' da quanto appena detto. Le specifiche infatti richiedono che l'autenticazione sia single sign-on, cioè che il nome utente e la password siano le stesse dell'account della intranet e che si possa accedere al servizio senza dover effettuare un login esplicito. Perché questo sia possibile è necessario che l'applicazione sia in grado di rintracciare lo username dell'utente collegato; per farlo deve richiederlo alla postazione da cui proviene la richiesta. Questo compito può essere assolto dal Web server: esiste infatti un mod per Apache destinato a tal scopo. Il suo nome è mod_auth_sspi e quello che fa è impostare la variabile d'ambiente del server REMOTE_USER con il nome dell'utente che si collega prendendolo dalla macchina remota, ma non solo; infatti è possibile specificare nel suo file di configurazione una serie di cartelle da proteggere, accessibili soltanto se l'utente ha effettuato il login nella intranet. Quando si prova a accedere con Internet Explorer, una volta autenticati, a una di queste directory, il server riconosce l'utente e consente l'accesso (usando altri browser appare una finestra pop-up che richiede di inserire nuovamente username e password). Perché il mod funzioni come desiderato è necessario inserire dentro una cartella protetta i file che richiedono l'autenticazione dell'utente. Ciò può costituire un problema, perché se tutti i file e le pagine dell'applicazione venissero inclusi nella stessa directory allora sarebbe impossibile accedervi per il visitatore esterno. Ne consegue che le pagine destinate a questi utenti non possono essere contenuti in una cartella interessata da mod_auth_sspi. D'altro canto le pagine di amministrazione devono necessariamente essere accessibili solo da utenti autenticati; per questi motivi si è deciso di definire per Servizio Web Lavori Pubblici due aree, una pubblica e una privata, per soddisfare due esigenze contrapposte. L'area pubblica ospita i file di scripting comuni alle due parti (definizioni di classi, funzioni...) e le pagine Web destinate ai visitatori; quella privata contiene solamente le pagine Web per gli utenti di amministrazione. 36

38 Questa scelta va in parte contro a una regola della buona programmazione, che esorta a evitare la replicazione di codice: infatti le pagine per la ricerca e per la visualizzazione del dettaglio dei lavori pubblici sono presenti in entrambe le aree. Tutto considerato però il danno non è molto grave: le pagine riprodotte sono soltanto tre e a ogni modo la loro versione privata è leggermente diversa da quella pubblica (principalmente per i dati visualizzati). Se i gruppi di utenti fossero stati di più di due allora il costo di una simile replicazione sarebbe stato ben maggiore, ma in questo caso è senz'altro più semplice duplicare le pagine che usarne solo una copia ma più complessa (dovrebbe riconoscere il tipo di utente che la richiede e agire di conseguenza). Grazie al mod, l'area di amministrazione è accessibile soltanto a utenti che dispongono di un account nella intranet comunale. Ciò però non è sufficiente perché dovrebbe esserlo soltanto per i referenti indicati nel database (e autorizzati). Bisogna per cui riuscire a riconoscere il nome dell'utente che prova a collegarsi e confrontarlo con gli username di questi; in PHP è possibile grazie alla variabile $REMOTE_USER, che funziona analogamente a quella di Apache. Con un semplice script (mostrato in Figura 15) è possibile verificare l'autorizzazione e, nel caso non fosse concessa, mostrare al visitatore un messaggio di errore. Figura 15: codice PHP che verifica se l'utente è autorizzato ad accedere al back-office 37

39 Superate le questioni riguardanti gli utenti viene il momento della definizione degli oggetti che opereranno nell'applicazione. Un oggetto è un'istanza di una classe, cioè un'astrazione che rappresenta un'entità caratterizzata da uno stato e dalle operazioni che può svolgere. A livello di programmazione questi sono rappresentati rispettivamente da attributi (un insieme di variabili) e metodi (delle funzioni). Le classi che Servizio Web Lavori Pubblici deve contemplare sono le corrispondenti delle entità rappresentate nel database, quindi i lavori pubblici, gli avanzamenti, i referenti e le categorie. PHP, seppure con qualche limite nella versione utilizzata per lo sviluppo, permette di definire classi e istanziare oggetti costruendone attributi e metodi. A titolo di esempio nella Figura 16 è riportato il codice della classe Referente. Figura 16: codice PHP che implementa la classe dei referenti 38

40 Nell'implementazione dei costruttori ci sono delle query SQL che reperiscono dal database i dati necessari per la creazione dell'istanza e che vengono usati per inizializzare gli attributi. Nel caso dei lavori pubblici, che hanno alcune proprietà costituite da oggetti (come gli avanzamenti), si susseguono invocazioni di costruttori finché non si giunge a impostare tutte le proprietà. Una simile sequela di query probabilmente non rappresenta la soluzione in assoluto più efficiente riguardo alle prestazioni; vero è che si rivela senz'altro efficace e semplice e considerando che il carico atteso per il Servizio Web Lavori Pubblici non è molto non è il caso di temere eccessivamente un sovraccarico del database o tempi di attesa interminabili. Per ogni classe è stato creato un file.php di servizio dove vengono definite una serie di funzioni utili che si occupano principalmente delle operazioni sul database (inserimento, modifica, selezione di una serie di istanze, ecc.). L'accoppiata delle classi e di questi script di servizio rendono abbastanza trasparente la programmazione quando si tratta di gestire le entità all'interno delle pagine Web: infatti chi scrive dovrà preoccuparsi solo raramente dei livelli inferiori (come la base dati) e potrà ragionare solo sugli oggetti, di cui potrà disporre grazie alle funzioni che sono state definite. Un esempio è fornito nella Figura 17, che riporta la funzione che permette di modificare la data e la nota di un avanzamento. Figura 17: script PHP che permette la modifica di un avanzamento sul database 39

41 Un ultimo appunto sulla classe delle categorie: essendo particolarmente semplice (è caratterizzata dal solo nome) si è preferito evitare la definizione di un oggetto software specifico perché tale iniziativa non avrebbe portato vantaggi tali da giustificare l'aumento di complessità. E' invece stato prodotto il file di servizio che implementa le funzioni che gestiscono le categorie sul database e le forniscono all'applicazione. 4.4: Pagine Web Giunti a questo punto è il momento di costruire il livello grafico e di presentazione del Servizio Web Lavori Pubblici. Anzitutto si codifica in HTML la struttura della pagina che è stata determinata in capitoli precedenti al fine di creare un modello da usare per tutte le schermate che comporranno il sito, come mostrato nella Figura 18. Figura 18: codice HTML del modello del layout delle pagine Web del servizio 40

42 Grazie ai tag <div></div> è possibile definire delle porzioni di documento che possono essere collocate a piacimento nella pagina grazie ai fogli di stile (si veda il codice che segue). Si noti il tag <link /> all'interno della sezione head, che lega il file al foglio di stile stile.css, dove sono definite le regole che dispongono e formatto gli elementi costitutivi della pagina. Esaminiamo più in dettaglio le singole pagine che compongono l'applicazione. index.php (ricerca, si veda la Figura 19): questa pagina contiene il form che permette di effettuare ricerche tra i lavori presenti sul database. E' semplice e non ha nulla di particolare. La versione pubblica differisce da quella privata per l'assenza del menù a tendina con i nomi dei referenti. Figura 19: pagina di ricerca per il back-office 41

43 risultati.php: pagina che visiona la lista dei lavori che soddisfano i parametri di ricerca (mostrata in Figura 20). Questi sono disposti in una tabella preceduta da un messaggio che ricorda i parametri inseriti nell'ultima operazione di ricerca. Le righe della tabella sono colorate a seconda dello stadio del lavoro che rappresentano e una concisa legenda nel riquadro comandi fornisce la chiave di interpretazione. A seconda dell'ordinamento richiesto i lavori vengono visualizzati nei fatti in gruppi, al termine di ognuno dei quali trova spazio una riga che riporta la somma di tutti importi stanziati dei lavori che lo compongono (non appare se l'ordinamento è secondo l'oid, il nome o gli importi perché non avrebbe senso); in fondo alla tabella, in ogni caso, una riga visualizza il totale della somma di tutti i lavori contenuti nella pagina. Ogni volta che viene effettuata una nuova ricerca viene aggiornato un cookie che registra gli ultimi parametri inoltrati; in questo modo è possibile ricostruire l'ultima ricerca effettuata anche in un secondo momento, a esempio dopo che l'utente ha visualizzato il dettaglio di un lavoro e torna quindi alla pagina dei risultati. Ciò comporta una migliore navigazione del sito per i client che hanno attivato il cookie ma dall'altro lato non costituisce un ostacolo o un vincolo per quelli che lo hanno disattivato, in quanto si tratta di un extra e non di un esigenza. Figura 20: pagina dei risultati front-end 42

44 Una ricerca potrebbe trovare un gran numero di lavori, tanti che sarebbe difficile visualizzarli tutti contemporaneamente nella stessa pagina senza disagi. A questo fine è stato introdotto un meccanismo di paginazione dei risultati che divide i lavori in gruppi di un certo numero (specificato in una costante su un apposito file.php), assegna a ogni gruppo un indice che viene visualizzato in fondo al content e propone di volta in volta soltanto un gruppo di istanze delle opere pubbliche a seconda dell'indice selezionato; di fatto diventa come sfogliare le pagine di un catalogo. Anche in questo caso la versione privata e pubblica divergono, principalmente perché la prima comprende alcune colonne aggiuntive (progettista e referente) e in fondo a ogni riga include un comando per l'eliminazione diretta del lavoro pubblico elencato. Infine, tra i comandi ve ne è uno che permette di stampare la pagina associandola a un foglio si stile più print-friendly. dettagliolavoro.php: questa è la pagina le cui due versioni differiscono maggiormente. Per quella pubblica (Figura 21), il contenuto è diviso in due aree laterali: quella sinistra contiene i dati dell'opera pubblica mentre quella destra ospita l'immagine del luogo di lavoro (se non ne è stata specificata una appare lo stemma del Comune di Cento). La versione privata può contare sulle due stesse aree (anche se con un assortimento di dati più ricco) più una terza, posta sotto le altre due, che elenca lo stato e gli avanzamenti del lavoro pubblico. Tutti gli avanzamenti possibili sono disposti in riga; il colore di sfondo della cella che li contraddistingue indica se sono stati raggiunti (giallo) o meno (bianco); per creare un avanzamento è sufficiente cliccare sul relativo link avanza mentre selezionando avanza tutti verranno creati anche tutti gli avanzamenti che precedono. Il discorso è leggermente diverso per il tipo di avanzamento pareri : dopo aver istanziato il primo diventa disponibile il comando aggiungi che permette di creare un altro avanzamento dello stesso tipo (si ricordi che un'opera pubblica può disporre di più pareri). Il comando modifica invece permette di impostare o cambiare la data e la nota associate a uno stato indirizzando l'utente verso la relativa pagina. Come nel caso dei risultati, anche qui è previsto un comando di stampa. 43

45 Figura 21: dettaglio dell'opera pubblica back-end modificalavoro.php e modificaavanzamenti.php: queste due pagine sono quasi identiche nella forma e sono disponibili soltanto back-end (si veda quella per la gestione degli avanzamenti in Figura 22). Poiché permettono di creare e modificare i dati rispettivamente dei lavori pubblici e degli avanzamenti sono diverse nel numero e nel tipo di campi che costituiscono il relativo form (di fatto l'unico contenuto della pagina). gestionecategorie.php e gestionereferenti.php: anche in questo caso la struttura delle pagine è molto simile. Il content è diviso in due parti, una superiore che espone la lista delle istanze di una delle due entità con eventuali comandi, e una inferiore costituita dal form che permette la gestione degli oggetti. Le due pagine sono disponibili solo per i Gestori. 44

46 Figura 22: pagina per la gestione degli avanzamenti Come si è potuto constatare sono molti i form utilizzati dall'applicazione. Per molti campi di questi sono state definite delle regole di validazione grazie a Javascript, al fine di impedire l'inserimento di dati non coerenti. Molte di queste chiedono che il valore inserito rispetti determinati parametri (quali la lunghezza, i caratteri utilizzati, la presenza di numeri, simboli...) e se questo non accade allertano l'utente con un messaggio di errore pop-up per indurlo a effettuare delle correzioni (in certi casi invece è possibile effettuare una correzione automatica dei dati proposti). Messaggi di avvertimento appaiono anche in casi particolari come l'eliminazione di un'istanza di qualsiasi entità, per chiedere conferma all'utente circa l'esecuzione un'operazione non reversibile. La Figura 23 illustra un esempio di funzione javascript che prende in ingresso un campo testuale di un form e verifica che non siano presenti delle backslash ('\'); se ne trova le sostituisce con delle slash ('/'). 45

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

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

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

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

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

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

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

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

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

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

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

COGITEK s.r.l. Via Fregene, 14 00183 ROMA Tel. 0689820236 Fax. 0689820213 Cod. Fisc. e Part. IVA 06012550015 Cap. Soc. 70.000 i.v.

COGITEK s.r.l. Via Fregene, 14 00183 ROMA Tel. 0689820236 Fax. 0689820213 Cod. Fisc. e Part. IVA 06012550015 Cap. Soc. 70.000 i.v. Sommario 1. I presupposti di GRAM AUDIT... 4 2. I vantaggi di GRAM AUDIT... 4 3. Aspetti metodologici alla base del Modello... 5 3.1. La gestione degli utenti... 5 3.2. La composizione del Piano di Audit

Dettagli

Informatica Documentale

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

Dettagli

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

Content Management Systems

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

Dettagli

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

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

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

CORSO WEB SERVER, DBMS E SERVER FTP

CORSO WEB SERVER, DBMS E SERVER FTP CORSO WEB SERVER, DBMS E SERVER FTP DISPENSA LEZIONE 1 Autore D. Mondello Transazione di dati in una richiesta di sito web Quando viene effettuata la richiesta di un sito Internet su un browser, tramite

Dettagli

Questo punto richiederebbe uno sviluppo molto articolato che però a mio avviso va al di là delle possibilità fornite al candidato dal tempo a disposizione. Mi limiterò quindi ad indicare dei criteri di

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 A2 Introduzione ai database 1 Prerequisiti Concetto di sistema File system Archivi File e record 2 1 Introduzione Nella gestione di una attività, ad esempio un azienda, la

Dettagli

Descrizione del prodotto WebPEG: Piano Esecutivo Gestione

Descrizione del prodotto WebPEG: Piano Esecutivo Gestione Descrizione del prodotto WebPEG: Piano Esecutivo Gestione Il Piano Esecutivo di Gestione rappresenta, nell'ambito del procedimento di programmazione dell'ente locale, una delle novità più rilevanti introdotte

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

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

Dettagli

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

Simonotti Graziano DATABASE

Simonotti Graziano DATABASE DATABASE 1 - Che cos'è un database? Il database è un archivio di dati, che può essere gestito con sistemi informatici oppure in modo manuale. 2 - Come si chiamano i programmi che gestiscono gli archivi?

Dettagli

Basi di dati. Basi di dati = database. Basi di dati

Basi di dati. Basi di dati = database. Basi di dati Basi di dati Da leggere: Cap. 6 Sawyer, Williams (testo A) Basi di dati = database Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi -> oggi anche

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

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

Dettagli

L'elaborazione dei dati su client Linguaggi di script

L'elaborazione dei dati su client Linguaggi di script Pagina 1 di 5 L'elaborazione dei dati su client Linguaggi di script Attualmente si tende a scaricare sul computer dell'utente piccoli programmi (Javascript o applet Java) che svolgano parte dell'elaborazione

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

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

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

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

Dettagli

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

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

2010 Antonio Musarra s Blog. Sessione introduttiva sui CMS (versione 1.0 16/03/2010)

2010 Antonio Musarra s Blog. Sessione introduttiva sui CMS (versione 1.0 16/03/2010) 2010 Antonio Musarra s Blog 1 Sessione introduttiva sui CMS (versione 1.0 16/03/2010) CMS Content Management System 2 Un Content Management System, in acronimo CMS, letteralmente "sistema di gestione dei

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

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

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

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

PROGETTO - Ingegneria del Software. Università degli Studi di Milano Polo di Crema. Corso di laurea in Scienze Matematiche, Fisiche e Naturali

PROGETTO - Ingegneria del Software. Università degli Studi di Milano Polo di Crema. Corso di laurea in Scienze Matematiche, Fisiche e Naturali Università degli Studi di Milano Polo di Crema Corso di laurea in Scienze Matematiche, Fisiche e Naturali INFORMATICA Corso di Ingegneria del Software progetto IL SISTEMA CALENDAR Presentato al dott. Paolo

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

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

Dettagli

Software per la gestione di musei di arte contemporanea1

Software per la gestione di musei di arte contemporanea1 Software per la gestione di musei di arte contemporanea1 Identificativo del progetto: CA Nome documento: System Design(SD) Identificativo del documento: 6 CA_SD_E1_R1 Data del documento: 21/05/2012 Prima

Dettagli

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

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

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

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

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

Quando il funzionale è anche bello

Quando il funzionale è anche bello Quando il funzionale è anche bello Non è la specie più forte che sopravvive, né la più intelligente, ma quella più ricettiva ai cambiamenti Charles Darwin Pagina 1 di 11 Premessa Il linguaggio PHP è di

Dettagli

Outline. Chi sono L.A.M.P. Hosting CMS e Blog Wordpress Il caso >> Informare Per Resistere. Sviluppi futuri. www.informarexresistere.

Outline. Chi sono L.A.M.P. Hosting CMS e Blog Wordpress Il caso >> Informare Per Resistere. Sviluppi futuri. www.informarexresistere. Outline Chi sono L.A.M.P. Hosting CMS e Blog Wordpress Il caso >> Informare Per Resistere www.informarexresistere.fr Sviluppi futuri Outline Chi sono L.A.M.P. Hosting CMS e Blog Wordpress Il caso >> Informare

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

Sme.UP Web Application

Sme.UP Web Application Sme.UP Web Application Web Application Web.UP Una interfaccia web per i vostri dati gestionali Il modulo applicativo Web.UP fornisce al progettista di siti Internet una serie di potenti strumenti per l'integrazione

Dettagli

Aspetti applicativi e tecnologia

Aspetti applicativi e tecnologia Aspetti applicativi e tecnologia Premessa Architetture usate per i database Le prime applicazioni erano definite monolitiche, cioè un unico computer (mainframe) gestiva sia le applicazioni che i dati,

Dettagli

sito web sito Internet

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

Dettagli

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Pagina 1 di 10 Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Nel corso della lezione precedente abbiamo analizzato le caratteristiche dell'architettura CGI.

Dettagli

Wordpress corso base. Mario Marino Corso Base Wordpress

Wordpress corso base. Mario Marino Corso Base Wordpress Wordpress corso base Mario Marino Corso Base Wordpress introduzione Cosa sappiamo fare adesso e cosa vorremmo sapere fare alla fine del corso Parole chiave Sito / Blog Database CMS Client / Server Account

Dettagli

Cos'è XTOTEM FREESTYLE. Cosa si può fare con XTOTEM. Perché usare XTOTEM

Cos'è XTOTEM FREESTYLE. Cosa si può fare con XTOTEM. Perché usare XTOTEM Pagina Cos'è XTOTEM FREESTYLE XTOTEM FREESTYLE è un sistema studiato per gestire Siti Internet e Pannelli Informativi. Con XTOTEM si possono disegnare e modificare siti anche molto complessi senza la necessità

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

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

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

Introduzione ai database I concetti fondamentali Database e DBMS Per comprendere appieno cos'è un Database e quali sono i vantaggi legati al suo impiego, soprattutto nel settore gestionale, è necessario

Dettagli

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento. L implementazione del sito: piattaforme tecnologiche e linguaggi

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento. L implementazione del sito: piattaforme tecnologiche e linguaggi APPROFONDIMENTO ICT Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto Approfondimento L implementazione del sito: piattaforme tecnologiche e linguaggi ORGANISMO BILATERALE PER LA FORMAZIONE

Dettagli

Informazioni corso AMMINISTRATORE. BO XI - Introduzione. abaroni@yahoo.com. adolfo.baroni@silnet.it Argomenti

Informazioni corso AMMINISTRATORE. BO XI - Introduzione. abaroni@yahoo.com. adolfo.baroni@silnet.it Argomenti abaroni@yahoo.com Informazioni corso AMMINISTRATORE Argomenti h Capitolo 1 Introduzione h Capitolo 2 Architettura di BusinessObjects Enterprise h Capitolo 3 Nozioni di base di Central Management Console

Dettagli

DEFINIZIONI FONDAMENTALI

DEFINIZIONI FONDAMENTALI Consorzio per la formazione e la ricerca in Ingegneria dell'informazione DEFINIZIONI FONDAMENTALI Per vincere ci vuole una buona partenza... Docente: Cesare Colombo CEFRIEL colombo@cefriel.it http://www.cefriel.it

Dettagli

Il sito della scuola con

Il sito della scuola con Incontro in aula virtuale del 24 gennaio 2013 Il sito della scuola con La sicurezza di un sito Joomla Il Pacchetto Joomla pasw quickstart versione 2.0. a cura di Gianluigi Pelizzari IIS Fantoni Clusone

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

ARCHIVI E LORO ORGANIZZAZIONI

ARCHIVI E LORO ORGANIZZAZIONI ARCHIVI E LORO ORGANIZZAZIONI Archivio: - insieme di registrazioni (record), ciascuna costituita da un insieme prefissato di informazioni elementari dette attributi (campi) - insieme di informazioni relative

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

ITI M. FARADAY Programmazione modulare a.s. 2014-2015

ITI M. FARADAY Programmazione modulare a.s. 2014-2015 Indirizzo: INFORMATICA E TELECOMUNICAZIONI Disciplina: Informatica Docente:Maria Teresa Niro Classe: Quinta B Ore settimanali previste: 6 (3 ore Teoria - 3 ore Laboratorio) ITI M. FARADAY Programmazione

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

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

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Database. Informatica 2014-2015 - Dott. Muzzioli Valerio. 1 di 1. Argomenti trattati: Nozioni di base: i database, i modelli di dati, DBMS

Database. Informatica 2014-2015 - Dott. Muzzioli Valerio. 1 di 1. Argomenti trattati: Nozioni di base: i database, i modelli di dati, DBMS Database Argomenti trattati: Nozioni di base: i database, i modelli di dati, DBMS Database relazionali: tabelle, campi, record; indici di taballa Chiavi primarie ed esterne Relazioni tra tabelle: definizione

Dettagli

Introduzione alla famiglia di soluzioni Windows Small Business Server

Introduzione alla famiglia di soluzioni Windows Small Business Server Introduzione alla famiglia di soluzioni Windows Small Business Server La nuova generazione di soluzioni per le piccole imprese Vantaggi per le piccole imprese Progettato per le piccole imprese e commercializzato

Dettagli

ARCHIVI CLASSICI. Concetti di base

ARCHIVI CLASSICI. Concetti di base ARCHIVI CLASSICI Concetti di base Per svolgere una qualsiasi attività gestionale, amministrativa, o statistica è necessario utilizzare grandi quantità di dati e scegliere per essi una opportuna organizzazione,

Dettagli

M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2009 Seconda prova scritta M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA Tema di: INFORMATICA (Testo valevole per i corsi di

Dettagli

APPENDICE A Servlet e Java Server Page

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

Dettagli

i n t e r n e t s i t i e c om pl e t o p e r g e st ire portali i l e f a c t r u m e n t o L o InfoTecna QuickWeb

i n t e r n e t s i t i e c om pl e t o p e r g e st ire portali i l e f a c t r u m e n t o L o InfoTecna QuickWeb i n t e r n e t s t r u m e n t o f a c i l e e c om pl e t o p e r g e st ire portali e s i t i L o InfoTecna QuickWeb QuickWeb è un' applicazione in grado di dare forma a siti web dinamici, avvalendosi

Dettagli

CONTENT MANAGMENT SYSTEMS

CONTENT MANAGMENT SYSTEMS CONTENT MANAGMENT SYSTEMS ESTRATTO DA: Ileana D'Incecco, Progettare la comunicazione web per organizzazioni non-profit con strumenti open source: ideazione e realizzazione del sito web della Casa delle

Dettagli

Politecnico di Milano

Politecnico di Milano 1 Politecnico di Milano Facoltà di Ingegneria dell Informazione Progetto di Ingegneria del Software 2: SWIMv2 Prof.ssa Mirandola Raffaella A.A 2012/2013 SWIMv2: Small World hypotesis Machine v2 Realizzato

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

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

manuale utente rev. 2.0 powered by

manuale utente rev. 2.0 powered by manuale utente rev. 2.0 powered by www.cantierecreativo.net MANUALE UTENTE REV.2 Indice generale 1 Introduzione... 2 2 Accesso all'area amministrativa...3 3 Sezione Pagine... 4 3.1 Pagine recenti...4 3.2

Dettagli

Componenti Web: client-side e server-side

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

Dettagli

ADA. E learning e open source

ADA. E learning e open source 1 ADA. E learning e open source ADA 1.7.1 Come cresce un Ambiente Digitale per l'apprendimento open source Maurizio Graffio Mazzoneschi 2 Cos'è il software libero Libertà 0, o libertà fondamentale: la

Dettagli

Progettazione Web Applicazioni client-server

Progettazione Web Applicazioni client-server Progettazione Web Applicazioni client-server Sviluppo di un'applicazione Web integrando: HTML MySQL PHP Apache Applicativi utilizzabili: gestione database: JDER, MySQL Workbench, HeidiSQL (Win), DBeaver

Dettagli

Web Intelligence. Argomenti 10/5/2010. abaroni@yahoo.com

Web Intelligence. Argomenti 10/5/2010. abaroni@yahoo.com Web Intelligence Argomenti Cap.1 Introduzione Cap.2 Creazione/Modifica di QUERY (semplici,custom,unioni) Cap.3 Uso dei Filtri e delle Condizioni Slide 2 - Copyright 2007 Business Objects SA - All Rights

Dettagli

Ipertesto, navigazione e cenni HTML. Lezione Informatica I CLAWEB

Ipertesto, navigazione e cenni HTML. Lezione Informatica I CLAWEB Ipertesto, navigazione e cenni HTML Lezione Informatica I CLAWEB 1 Il concetto di Ipertesto (1/2) Definizione: Modello testuale in cui le diverse unità di contenuti non sono articolate secondo un ordine

Dettagli

REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007

REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007 SISTEMA A SUPPORTO DEI PROCESSI DI PROGRAMMAZIONE E CONTROLLO DI GESTIONE NELLE ORGANIZZAZIONI PUBBLICHE REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007 Copyright 2010 CSIO Società di Informatica

Dettagli

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

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

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

Creazione ed uso di un data base in ACCESS Lezioni ed esercizi

Creazione ed uso di un data base in ACCESS Lezioni ed esercizi Creazione ed uso di un data base in ACCESS Lezioni ed esercizi 1 ACCESS Gli archivi Gli archivi sono un insieme organizzato di informazioni. Aziende Clienti e fornitori Personale Magazzino Enti pubblici

Dettagli

www.informarsi.net MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http://www.informarsi.net/ecdl/powerpoint/

www.informarsi.net MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http://www.informarsi.net/ecdl/powerpoint/ MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http:///ecdl/powerpoint/ INTERFACCIA UTENTE TIPICA DI UN SOFTWARE DI PRESENTAZIONE APERTURA E SALVATAGGIO DI UNA PRESENTAZIONE

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

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

Informatica I per la. Fisica

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

Dettagli

REQUISITO DI ACCESSIBILITA

REQUISITO DI ACCESSIBILITA ISTITUTO COMPRENSIVO Pascoli - Crispi Via Gran Priorato, 11-98121 Messina Via Monsignor D'Arrigo, 18-98122 Messina Tel/Fax. 09047030 090360037 e-mail: meic87300t@istruzione.it / meee00800r@istruzione.it

Dettagli

PROGRAMMA DI INFORMATICA CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING Anno Scolastico 2014-2015

PROGRAMMA DI INFORMATICA CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING Anno Scolastico 2014-2015 CLASSE: 1 C Indirizzo: AMMINISTRAZIONE FINANZA E MARKETING MODULO HARDWARE 1. Che cos è il PC - Gli elementi del computer- Unità centrale:uc-alu- RAM - La memorizzazione delle informazioni:bit-byte. Sistemi

Dettagli

GUIDA UTENTE INTERNET CAFE MANAGER (Vers. 5.2.0)

GUIDA UTENTE INTERNET CAFE MANAGER (Vers. 5.2.0) GUIDA UTENTE INTERNET CAFE MANAGER (Vers. 5.2.0) GUIDA UTENTE INTERNET CAFE MANAGER (Vers. 5.2.0)...1 Installazione e configurazione...2 Installazione ICM Server...3 Primo avvio e configurazione di ICM

Dettagli

Il linguaggio HTML - Nozioni di base

Il linguaggio HTML - Nozioni di base Corso IFTS Informatica, Modulo 3 Progettazione pagine web statiche (50 ore) Il linguaggio HTML - Nozioni di base Dott. Chiara Braghin braghin@dti.unimi.it What is HTML? HTML (HyperText Markup Language)

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

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

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli