Progetto GRID

   

Lo scopo del progetto GRID è di permettere a persone non esperti di informatica di progettare, realizzare e mantenere una base dati e renderla accessibile tramite un PC, un tablet o uno smartphone connesso in rete.

Esempi di basi dati

1. Applicazione GRID

Per raggiungere gli obiettivi del progetto GRID, la base dati deve essere collegata ad un'applicazione web-based le cui operazioni di raccolta dei dati per costituire una base dati, di interrogazione e presentazione di questi dati, di elaborazione statistiche, ecc. sono predisposte e configurabili. Quest'applicazione web-based si chiama "Applicazione GRID".

Un'applicazione GRID è quindi una particolare applicazione ADG (cfr. il framework di ADG), progettata per la fruizione e la gestione di basi dati. Al contempo una base dati può essere collegata ad una o più applicazioni GRID. Un'applicazione GRID utilizza la logica per la gestione degli accessi del framework di ADG.

La realizzazione e manutenzione di un'applicazione GRID e della base dati collegata necessità la collaborazione di tre mestieri, distinti ma complementari, che possono essere posseduti da una o più persone:

  • webmaster, che fornisce un supporto sistemistico
  • responsabile della base dati, che la realizza e la mantiene
  • utenti finali, che accedono ai dati

Mestiere

Descrizione

Webmaster

  • Progetta la base dati e definisce lo schema concettuale in collaborazione con il responsabile della base dati
  • Pubblica sul web la base dati iniziale
  • Gestisce l'anagrafica degli utenti e le autorizzazioni con il tool GIA
  • Applica gli aggiornamenti software (Web di ADG), Framework di ADG), GRID)

Responsabile
della base dati

  • Eventuale migra precedente dati MS Excel / Access nella base dati in collaborazione con il Webmaster
  • Configura l'applicazione GRID collegata alla base dati con il tool CDA
  • Mantiene la base dati: inserimenti di nuovo record, aggiornamenti dei dati, cancellazioni di record, ecc.

Utenti finali

  • Accede ai dati, naviga nella base dati
  • Interroga la base dati
  • Elabora statistiche

Esempio: Bacheca online di un professore universitario

Utenti finali:

Sono gli studenti che consultano la bacheca del professore dal loro smartphone / tablet / PC

Responsabile dell'applicazione:

E' il professore, non esperto di informatica, che inserisce nella sua bacheca gli avvisi per i suoi studenti

Webmaster:

Fa parte della Direzione informatica dell'Università che offre a ogni membro del Corpo docente una bacheca online sul sito web dell'Università

Esempio della Bacheca online nella Home Page di Ananiainrete.info

2. Progettare una base dati in un contesto GRID

1) Architettura

Se la base dati non esiste, la prima operazione consiste nel definire il suo schema concettuale. Se invece la base dati esiste già, si può passare direttamente alla creazione della (o delle) applicazione/i GRID per questa base dati.

La progettazione dello schema concettuale deve essere fatta da un specialista di base dati, ovviamente in collaborazione con il responsabile della base dati, ovvero la persona che consce a fondo il significato dei dati.

Un'applicazione GRID può gestire varie architetture; esse possono essere, dalla più semplice alla più complessa:

  • Una tabella MySql unica
  • Una tabella MySql , le cui colonne "qualitative" sono associate a tabelle MySql di decodifica - in questa pagina web si utilizza la parola "colonna" quando si fa riferimento ad una tabella MySql e la parola "campo" quando si fa riferimento ad un'applicazione GRID. La parola "campo" viene anche utilizzata facendo riferimento ai campi di una maschera HTML (SEARCH, SHOW, CRUD, ecc.) -
  • Alcune tabelle MySql in join, eventualmente associate ad alcune tabelle MySql di decodifica

2) Tabella condivisa

Un'applicazione GRID gestisce tabelle condivise da più utenti tramite una campo "identificatore".

Nel precedente esempio delle bacheche online dei Professori di una Università, tutti gli avvisi di tutti i Professori si trovano registrati in una unica tabella MySql.

Quando un Professore aggiorna la sua bacheca, l'applicazione GRID crea dinamicamente una tabella di lavoro con i suoi avvisi. Alla fine delle modifiche, se il Professore decide di salvare queste modifiche, gli avvisi della tabella dinamica vengono copiati nella tabella originale.

3) Tabella di decodifica

Quando una colonna della base dati contiene valori qualitativi (per esempio la colonna "Genere" della base dati dimostrativa "DVD") essa viene chiamata colonna qualitativa oppure campo qualitativo.

NB: Le descrizioni in italiano della colonna qualitativa "Genere" sono: Animazione, Avventura, Azione, Biografico, Catastrofico, Commedia, Cortometraggio, Documentario, Drammatico, Fantascienza, Fantasy, Giallo, Grottesco, Guerra, Horror, Medico, Mitologico, Musical, Muto, Noir, Poliziesco, Ragazzi, Religioso, Sentimentale, Spionaggio, Sportivo, Storico, Telefilm, Thriller e Western.

Nel caso di una colonna qualitativa è opportuno che i suoi valori siano dei codici invece delle descrizioni; questo per facilitare la manutenzione della base dati. Per esempio se dovesse essere necessario la modifica di una descrizione, con l'impiego di una "tabella di decodifica", la modifica si fa una volta sola sulla tabella di codifica, senza dover modificare la tabella dati.

Concretamente, nella maschera SHOW, l'applicazione GRID sostituisce il codice con la descrizione corrispondente. Invece, nelle maschere SEARCH e CRUD, l'applicazione GRID visualizza le possibili descrizioni con l'aiuto di un menu a tendina.

NB: CRUD è un acronimo in inglese, che deriva dalle iniziali dalle quattro operazioni fondamentali compiute nelle base dati: Create (creare i dati), Read o Retrieve (leggere i dati), Update (aggiornare i dati) e Delete (eliminare i dati).

Inoltre l'utilizzo delle tabelle di decodifiche garantisce il multilinguismo dell'applicazione. Nell'esempio che segue, la colonna "paese" di una tabella dati contiene il codice ISO del paese.

NB: Il codice ISO è un codice alfabetico che viene assegnato ad ogni paese dall'International Organization for Standardization (ISO).

Al contempo la tabella di decodifica ISO contiene lo stesso codice con la sua descrizione, sia in italiano che in inglese. L'applicazione GRID sceglie automaticamente la descrizione nella lingua in uso dall'interfaccia.

4) Colonne a valori multipli

Per facilitare il disegno dello schema concettuale, l'applicazione GRID mette a disposizione del Webmaster la funzionalità "colonna a valori multipli" o "campo a valori multipli" per poter ricevere più di un valore.

Nel caso della base dati dimostrativa "DVD", le colonne Titoli, Registi, Attori, Maestri e Nazioni sono colonne a valori multipli. Per esempio è possibile inserire nel campo "Titoli" il titolo del film in italiano e, se esiste, in lingua originale. Così un film può avere più di un regista, ovviamente può avere tanti attori, essere prodotti da più paesi, ecc. Concretamente, nella maschera SHOW, l'applicazione GRID visualizza i vari valori con una lista puntata.

Esempio di colonne a valori multipli: maschera SHOW dell'applicazione dimostrativa DVD - modalità informativa

Nella maschera CRUD, l'applicazione GRID permette al responsabile della base dati di inserire, per ciascun campo, uno o più valori. Esistono due casi:

5) La procedura per la migrazione da Excel a GRID

Se alcuni dati sono già disponibili (per esempio in Microsoft Excel, in Microsoft Access oppure su pagine HTML strutturate), la procedura per la migrazione da Excel a GRID permette il trasferimento dei dati verso una base dati MySql in maniera facile e veloce.

Dopo il trasferimento, il tool per la Manipolazione delle Tabelle MySql (MTM) permette di eseguire alcune azioni frequentemente necessarie, senza la necessità di avere competenze tecniche relative a MySQL.

Il tool MTM consente di codificare i valori delle colonne qualitative con la generazione automatica di nuove tabelle decodifica.

Il tool MTM consente anche di fare alcuni check sui dati; ad esempio il tool può verificare, per ciascun record, che le colonne "obbligatorie" abbiano un valore. Il check può essere fatto tenendo conto anche di eventuali dipendenze da altre colonne: per esempio la colonna X deve obbligatoriamente contenere un valore se il valore della colonna Y vale un specifico valore.

3. Alcune caratteristiche fondamentali di un'applicazione GRID

1) Modalità di accesso

L'accesso ad un'applicazione GRID può essere libero; in questo caso qualsiasi visitatore del sito web può accedere alla base dati tramite l'applicazione.

Oppure l'accesso all'applicazione è riservato ad alcuni utenti registrati che devono "loggarsi" con le loro credenziali di accesso (nome e password) prima di accedere all'applicazione.

2) Modalità operativa

Un parametro importante di ciascuna applicazione GRID è la sua modalità operativa, che può essere informativa o dispositiva (questa terminologia proviene dal mondo bancario):

  • Un'applicazione GRID viene chiamata informativa quando l'utente può accedere soltanto in lettura ai dati e non può modificare i dati delle base dati collegata
  • Un'applicazione GRID viene chiamata dispositiva quando l'utente può anche aggiornare i dati delle base dati collegata.

3) Tipi di applicazioni

Da queste considerazioni si può dedurre che le applicazioni GRID si possono dividere in quattro categorie:

  • Applicazioni informative ad accesso libero:
    sono applicazioni pubbliche alle quali tutti i visitatori del sito web possono accedere anonimamente: bacheca online, catalogo beni/servizi, ecc.
  • Applicazioni informative ad accesso riservato:
    sono applicazioni riservate ad alcuni utenti registrati; normalmente il loro accesso è riservato perché contengono dati riservati e/o sensibili e, al contempo, questi dati non sono modificabili dagli utenti registrati: listino prezzi, calendario appuntamenti, ecc.
  • Applicazioni dispositive ad accesso libero:
    sono applicazioni pubbliche alle quali tutti i visitatori del sito Web possono accedere anonimamente in modalità dispositiva; normalmente l'unica operazione dispositiva consentita è il data entry: invio di un feedback, modulo 'contatti' online, registrazione ad una newsletter online, registrazione ad eventi (per aumentare l'affidabilità del processo di registrazione viene usato il double double-opt-in), ecc.
  • Applicazioni dispositive ad accesso riservato:
    sono applicazioni riservate per alcuni utenti registrati, autorizzati alla manipolazione dei dati: gestione archivi e base dati, survey online (per garantire l'anonimato viene impiegato un token), ecc.

4) L'interfaccia

L'interfaccia di un'applicazione GRID - sia informativa che dispositiva - è progettata per utenti non esperti di informatica. L'interfaccia, familiare ed intuitiva, permette agli utenti di operare sui dati in sicurezza.

L'interfaccia di un'applicazione GRID è composta sostanzialmente da tre maschere principali:

  • una o più maschere SEARCH per l'interrogazione dei dati
  • la maschera SHOW per la visualizzazione dei dati
  • se l'applicazione è dispositiva, una maschera CRUD per la manipolazione dei dati tramite operazioni dispositive: inserimento, aggiornamento, upload, cancellazione, operazioni multiple, ecc.

Esempi di maschere GRID

Maschera SEARCH (ricerca standard) dell'applicazione dimostrativa 'DVD'

Maschera SHOW (griglia) dell'applicazione 'Lezione di Musica', modalità informativa

Maschera SHOW (griglia) dell'applicazione 'Lezione di Musica', modalità dispositiva

Maschera CRUD (aggiornamento) dell'applicazione 'Bacheca online'

A queste tre maschere principali si aggiungono altre maschere: configurazione statistiche qualitative, configurazione export, login, ecc.

Pop-up per la configurazione delle statistiche qualitative dell'applicazione 'Lezione di Musica'

5) Multilinguismo

ADG in generale, e GRID in particolare, gestiscono in modo nativo l'italiano e l'inglese. In particolare l'interfaccia gestisce automaticamente:

  • i titoli, la messaggistica, i nomi delle colonne della base dati, ecc.
  • la visualizzazione dei valori codificati in funzione della lingua corrente
  • la validazione e visualizzazione dei numeri: separatore migliaia e separatore dei decimali, secondo lo standard europeo oppure anglosassone
  • la validazione e visualizzazione delle date, secondo lo standard europeo oppure anglosassone
  • la messaggistica di errore

Se la base dati contenesse colonne bilingue (una colonna per l'italiano e un'altra per l'inglese), l'interfaccia sceglie automaticamente la colonna da utilizzare per le operazioni di ricerca e visualizzazione in funzione della lingua in uso dall'interfaccia.

Per esempio una bacheca online dovrebbe essere in grado di visualizzare gli avvisi in italiano e in inglese, per essere meglio accessibile. L'applicazione GRID prevede due campi per ricevere, uno l'avviso in italiano, l'altro l'avviso in inglese. Al contempo, se il testo in inglese di un avviso non fosse disponibile, è sufficiente inserire il carattere uguale nel campo "Avviso in inglese" della bacheca. In questo caso, nella pagina Web in inglese, il testo italiano dell'avviso sarà automaticamente visualizzato al posto del carattere uguale.

6) Dipendenze da prodotti software di terze parti

  • CKEditor: rich text editor, from CKSource sp. z o.o. sp.k.
  • Select2: the jQuery replacement for select boxes, by Kevin Brown.
  • jQuery: una libreria JavaScript per applicazioni web, by John Resig
  • Biblioteca grafica PHP GD

4. Realizzare un'applicazione GRID

Una base dati può essere collegata ad una o più applicazioni GRID.

Tipicamente il responsabile della base dati sviluppa una prima applicazione GRID dispositiva ad accesso riservato per popolare la base dati. Quest'applicazione serve poi per mantenere la base dati.

Se si desidera rendere pubblica la base dati - o parte di essa - il responsabile della base dati sviluppa successivamente una seconda applicazione GRID, questa volta informativa ad accesso libero, per consentire ai visitatori del sito web di accedere ai dati.

Concretamente la realizzazione di una nuova applicazione consiste essenzialmente a crearla e poi a configurarla con il tool per la Configurazione delle Applicazioni (CDA).

Il tool CDA ricava automaticamente molte informazioni dallo schema concettuale della base dati. Altre informazioni e preferenze devono essere fornite dal responsabile della base dati tramite il tool CDA. Si prega il lettore di rivolgersi al "Manuale utente del tool CDA" per maggiori informazioni e, in particolare, per consultare la lista delle opzioni.

La manutenzione dell'applicazione - o delle applicazioni - relative ad una base dati avviene con il tool CDA che consente di aggiornare facilmente le maschere SHOW e/o SEARCH e/o CRUD in funzione delle esigenze del responsabile della base dati.

Esempio: Modifica dello schema concettuale e aggiornamento dell'applicazione GRID

Dopo una modifica dello schema concettuale della base dati, ad esempio dopo l'aggiunto di un nuovo campo ad una tabella MySql, la maschera SHOW deve essere aggiornata per visualizzare il nuovo campo, la o le maschere SEARCH devono essere aggiornate se si vuole prendere in considerazione questo nuovo campo in fase di ricerca e la maschera CRUD deve essere aggiornata per poter inserire nuovi valori in questo campo oppure aggiornare i valori attuali.

L'ultimo passo consiste nel scegliere gli utenti autorizzati ad accedere all'applicazione GRID. Questo viene fatto dal Webmaster con l'aiuto del tool per la Gestione delle Identità e degli Accessi (GIA), tool responsabile della gestione dell'anagrafica degli utenti e dell'archivio dei diritti e privilegi.

5. Accedere alla base dati in lettura

1) Filtrare i dati

I visitatori del sito web - che ospita le applicazioni GRID - possono accedere alla base dati soltanto in lettura, tramite applicazioni informative.

Le operazioni più importanti sono l'interrogazione di una base dati tramite una o più maschere di ricerca (SEARCH) e la visualizzazione dei dati tramite la maschera SHOW.

Nei casi più semplice, una sola maschera di ricerca è disponibile. Essa è composta da più campi; essi sono utilizzati in AND sulle colonne della base dati.

Maschera SEARCH (ricerca standard) dell'applicazione 'Lezione di Musica'

Abitualmente la ricerca sulle stringhe si avvale della funzionalità traslitterazione per non tener conto delle lettere accentate.

Se una sola maschera non è adeguata alle necessità funzionali dell'applicazione, è possibile definire più di una maschera di ricerca. Nell'applicazione DVD, è stata definita una maschera di ricerca chiamata "semplice" perché è costituita da un solo campo. La stringa digitata dall'utente viene cercata in tutte le colonne della base dati. Questa soluzione risulta comoda quando non si conosce bene la struttura della base dati.

Maschera SEARCH (ricerca semplice) dell'applicazione dimostrativa'DVD'

L'immagine presenta anche un esempio di tooltip. Un tooltip è un box informativo che appare quando l'utente clicca sull'icona . In questo esempio il box informativo contiene la lista dei campi nei quali l'applicazione GRID cerca la stringa di ricerca.

Esempio di ricerca con la stringa "leon"

Se l'utente digita la stringa "leon", vengono visualizzati sia il film "Léon" di Luc Besson, sia i film del regista Sergio Leone, sia i film con gli attori Carlos Leon e/o Leon Russom.

Ricerca della stringa "leon" nella base dati dimostrativa 'DVD'

Risultato della ricerca della stringa "leon" nella base dati dimostrativa 'DVD'

L'applicazione GRID permette anche al visitatore di "raffinare" una ricerca, ossia di renderla man mano più selettiva, con lo scopo di ridurre il numero di record selezionati e quindi da visualizzare.

2) Visualizzare i dati

La maschera di visualizzazione (SHOW) è composta da due sezioni:

  • la sezione che presenta i dati selezionati
  • la bottoniera e la barra di navigazione.

Abitualmente i dati selezionati vengono visualizzati per default con la modalità "griglia". Il visitatore può scegliere, durante la consultazione, l'altra modalità, ossia "lista", più adatta per i campi testuali. Questa modalità risulta utile anche quando la base dati ha colonne con celle spesso vuote.

Maschera SHOW (modalità griglia) dell'applicazione 'Lezione di Musica'

Maschera SHOW (modalità lista) dell'applicazione 'Lezione di Musica'

La bottoniera permette di eseguire operazioni quali eseguire una nuova ricerca, raffinare l'attuale ricerca, scegliere le colonne da visualizzare, richiedere operazioni sui dati quali statistiche sulle colonne qualitative, export dei dati, ecc.

La barra di navigazione permette di spostarsi all'interno dei record selezionati.

L'interfaccia delle maschere SEARCH e SHOW è disponibile in italiano e in inglese.

6. Mantenere la base dati

Il responsabile della base dati aggiorna i dati periodicamente via web con operazioni di tipo CRUD.

Dopo una fase di "login", il responsabile della base dati accede alla maschera SHOW dispositiva dalla quale può inserire nuovi record, oppure aggiornare i valori dei record attuali oppure cancellare record esistenti.

Maschera SHOW dispositiva dell'applicazione dimostrativa 'DVD'

A sinistra sono visibili le classiche icone dispositive, in particolare l'operazione Copy (di un record). La maschera permette inoltre di eseguire operazioni su più record selezionati: modificare il valore di uno o più campi di alcuni record, cancellare alcuni record, cancellare soltanto gli allegati (file e/o immagini) collegati ad alcuni record, copiare, spostare, ecc.

Un'applicazione GRID può svolgere anche operazioni "specifiche" per alcune applicazioni.

Esempio: Spostare un avviso su e giù

Per fare salire un avviso di una bacheca online - ossia farlo diventare più visibile spostandolo su - oppure per farlo scendere, la maschera dispositiva dispone di un icona particolare . L'interfaccia permette quindi di cambiare facilmente l'ordine degli avvisi.

Maschera SHOW dispositiva con l'icona "up down"

Esempio: Periodo di validità di un avviso

Sempre nel caso di una bacheca online, gli avvisi possono essere scadenzati, ossia dispongono di una data "inizio pubblicazione" e di una data "fine pubblicazione" per la visualizzazione automatica degli avvisi in funzione della data odierna. Si possono così predisporre avvisi "in anticipo" rispetto a quando si desidera che vadano online; viceversa, automaticamente, avvisi con data di scadenza inferiore alla data odierna non saranno più visualizzati, ma rimangono nella bacheca per un possibile utilizzo successivo.

Maschera CRUD per l'aggiornamento della bacheca online

L'interfaccia della maschera CRUD è disponibile in italiano e in inglese.