I sistemi per l’acquisizione, il monitoraggio e la verifica della qualità della registrazione e consultazione di dati e immagini19
7.3 Il sistema di acquisizione e monitoraggio della registrazione (Samor-Pop)
L’applicazione generalizzata Samor-Pop consente l’acquisizione e il controllo dei dati presenti nei blocchi di dati trasmessi dall’azienda di registrazione. Più precisamente, verifica che i file, trasferiti dall’azienda nell’apposita area di appoggio, siano conformi ai tracciati record descritti nel manuale di registrazione, fornisce i risultati dei controlli formali nella stessa area su appositi file di log in formato testo, e consente l’immissione in un database relazionale dei dati rilevati.
L’accesso a Samor-Pop è regolato tramite utenza, password e ruolo. In base ai ruoli attribuiti ad un utente, l’applicazione consente di usufruire delle funzioni previste per lo stesso. Nel caso in esame i ruoli di interesse sono:
amministratore: che ha il compito di configurare il sistema; superutente: che è l’utenza per l’azienda di registrazione;
gestore controllo di qualità: che si occupa del controllo di qualità dei dati;
gestore del monitoraggio: che ha il compito di monitorare lo stato di lavorazione dei modelli di rilevazione.
Samor-Pop consente la definizione delle utenze del sistema e notifica le credenziali agli utenti creati. La password è generata automaticamente e deve essere obbligatoriamente cambiata al
primo accesso. L’applicazione dispone di controlli di sicurezza per gli accessi al fine di evitare intrusioni. Dopo tre tentativi falliti viene proposta una stringa di caratteri da immettere, al decimo tentativo viene disabilitato temporaneamente l’indirizzo IP del computer che tenta la connessione. L’applicazione mette a disposizione le funzioni per il caricamento delle definizioni dei tracciati record a partire da file xls, e gestisce dinamicamente le regole che consentono i controlli sui dati, pertanto può essere utilizzata per acquisire e controllare i dati provenienti da qualsiasi rilevazione. Nel caso del 15° Censimento Generale della Popolazione e delle Abitazioni, i file risultanti dal processo di registrazione dei questionari cartacei sono in formato testo a lunghezza fissa e seguono precise regole di nomenclatura. Il processo di controllo di tali file può essere attivato sia in modalità batch, ad orari prestabiliti, sia attraverso l’interfaccia web dell’applicazione. In ogni caso il processo di controllo avviene in background, consentendo l’utilizzo continuo dell’applicazione. Gli esiti del controllo possono essere interrogati consultando direttamente i file di log predisposti dal sistema oppure accedendo alle pagine dell’interfaccia web dedicate ai risultati delle elaborazioni. Le indicazioni sugli errori formali riscontrati consentono di individuare il file, i tracciati, il questionario, la riga, il campo e il tipo di errore riscontrato.
In caso di esito negativo il sistema memorizza i dati in tabelle di appoggio e segna il file zip come “controllo della registrazione negativo”. Il blocco, una volta corretto, dovrà essere nuovamente sottoposto dall’azienda di registrazione a file transfer e controlli formali. In caso di esito positivo il sistema registra la data di consegna del blocco, utilizzata per monitorare i livelli di servizio previsti per l’azienda di registrazione; memorizza i dati dei questionari nelle tabelle definitive, strutturate secondo quanto definito nei tracciati record previsti dal manuale di registrazione; etichetta il file zip come “controllo di registrazione positivo” rendendolo disponibile per il successivo controllo di qualità. Le pagine di reportistica dell’interfaccia web dell’applicazione mettono a disposizione degli utenti con ruolo di amministratore o gestore del monitoraggio alcuni report contenenti le seguenti informazioni:
numero di questionari elaborati per Comune e tipo di modello di rilevazione; Comuni completati per Provincia.
7.3.1 I controlli previsti dal sistema
I tipi di controllo previsti dal sistema Samor-Pop sono:
controlli di nomenclatura: il sistema verifica che siano rispettate le regole di nomenclatura definite per i file oggetto della fornitura;
controlli formali sui dati: per ciascun campo il sistema verifica che siano rispettate le regole relative a tipo (numerico/alfanumerico), lunghezza, dominio, ecc.;
controlli di congruenza: il sistema verifica la congruenza tra i dati e il relativo modello per ogni tipologia di modello di censimento.
Il processo di controllo dei dati, attivato dall’applicazione, dopo aver verificato la presenza nell’area di trasferimento dei file zip corrispondenti ai blocchi di fornitura, esegue per ciascuno di essi i seguenti passi:
1) Verifica che la denominazione del file zip rispetti la seguente regola di nomenclatura:
{AAAAMMGG}_{IDBLOCCO}_{TIPO}_{PROGR}_{ULTIMO}.zip dove:
AAAAMMGG rappresenta la data di creazione indicata dall’azienda di registrazione; IDBLOCCO rappresenta l’identificativo univoco assegnato al blocco logico;
PROGR è il numero progressivo di frazionamento del blocco fisico, assegnato nel caso in cui il blocco fisico debba essere partizionato perché supera la dimensione massima di byte consentita;
ULTIMO è un flag che identifica l’ultimo frammento del blocco fisico.
2) Verifica che il file zip non sia mai stato trattato o che non abbia già superato i controlli. Infatti
se la sua versione precedente ha superato i controlli formali o addirittura ha superato il controllo di qualità non deve essere riprocessato.
3) Decomprime il file zip e verifica che la denominazione dei file-tracciato estratti rispetti la
seguente regola di nomenclatura:
{AAAAMMGG}_{RRPPPCCC}_{PROGR}_{TRK}_{COMPLETO}.txt dove:
AAAAMMGG rappresenta la data di creazione indicata dall’azienda di registrazione e deve essere la stessa del blocco fisico corrispondente;
RRPPPCCC rappresenta il codice territoriale Istat (RR = codice regione, PPP = codice provincia, CCC = codice comune);
PROGR è il numero progressivo di partizionamento dell’insieme dei questionari di un comune;
TRK è il codice del tracciato record;
COMPLETO è un flag di completezza che indica se tutti i questionari del comune sono stati consegnati dall’azienda di registrazione.
Al termine dei controlli di nomenclatura, il processo verifica che il tracciato sia tra quelli previsti per il corrispondente blocco e che siano presenti i file-tracciato obbligatori:
1) Memorizza nel database le informazioni relative al blocco dati e ne calcola la versione. 2) Passa il controllo alla stored procedure che estrae i dati dai file-tracciato, li appoggia nelle
tabelle del database ed esegue i controlli formali e i controlli di congruenza previsti dal manuale di registrazione su tutti i record dei file-tracciato contenuti nel blocco. in caso di esito negativo di uno dei controlli, memorizza nel log le indicazioni sul tipo di errore riscontrato e sulla posizione (blocco, tracciato, riga) e passa al record successivo.
3) Al termine dell’elaborazione della stored procedure, se almeno uno dei controlli è fallito
memorizza lo stato del blocco e dei file-tracciato come “errato”; altrimenti se l’esito dei controlli è positivo:
memorizza i dati contenuti nei file-tracciato nelle corrispondenti tabelle definitive, strutturate secondo quanto definito nei tracciati record previsti dal manuale di registrazione;
memorizza lo stato del blocco e dei file-tracciato come “controllo formale superato”; per ogni singolo questionario, memorizza nel registro invii il tracciato inviato ed il
riferimento al blocco di appartenenza; memorizza l’esito del processo nel log; registra la data di consegna del blocco.
Nei file di log prodotti dall’applicazione durante la fase di controllo dei file di dati sono presenti le informazioni sugli errori riscontrati. Tali informazioni consentono di individuare il blocco, il file, il/i tracciato/i, il questionario, la riga, la colonna di inizio del campo, il nome del campo, il codice e il tipo di errore riscontrato. In particolare, il contenuto del file è organizzato come segue:
1) la prima riga del file contiene dati generali del blocco fisico (nome, versione, data inizio
2) le successive righe riportano i dati per individuare gli errori riscontrati (nome file-tracciato,
chiave identificativa riga, progressivo riga, colonna inizio campo, nome campo, codice errore, descrizione errore);
3) Il sistema mette a disposizione due diverse modalità di consultazione dei risultati dei
controlli:
4) consultazione con accesso diretto ai file di log prodotti da Samor-Pop nell’area di
trasferimento dei blocchi dati;
5) consultazione con accesso tramite interfaccia web previa autenticazione (figura 7.1).
Figura 7.1 - Pagina web di Samor-Pop per la consultazione dei risultati dei controlli
7.3.2 L’architettura del sistema
L’applicazione in oggetto è una web application a tre livelli, realizzata in Java 2 Enterprise Edition, con Jacarta Tomcat 6.0 come Web Container e Oracle 11g come Rdbms. L’elenco delle principali librerie utilizzate e le relative versioni è il seguente:
Struts 2.1.8 (Mvc framework);
MyBatis 3.0.6 (Java persistence framework);
Spring 3.0.6 (per gestire l’interazione con il database); Jasypt 1.6 (Java simplified encryption);
Simplecaptcha 1.1.1. (per la generazione di Captcha nella login).
Il processo di acquisizione dei blocchi di dati è avviabile sia in modalità interattiva attraverso l’interfaccia web di Samor-Pop, sia attivando un modulo software che periodicamente controlla la presenza dei file nell’area di trasferimento. Il numero di processi contemporaneamente attivi è regolato in base ad un parametro di sistema. Dopo l’avvio del processo di controllo, il blocco viene trasferito nell’area di lavoro dell’applicazione e sottoposto ai controlli formali e di coerenza della stored procedure (figura 7.2). Inoltre, per ogni blocco in lavorazione viene creato nell’area di consegna dei dati un file di presa in carico del blocco fisico, con la seguente denominazione: suffisso “WK_” seguito dal nome del file del blocco fisico corrispondente.
Il sistema Samor-Pop accede alle seguenti directory:
Upload: che raccoglie i file zip trasferiti dall’azienda di registrazione; quelli prodotti dall’applicazione per la presa in carico del blocco; quelli di log prodotti dall’applicazione con i risultati dei controlli;
Filereg: che è una work area utilizzata dai processi di controllo di Samor-Pop.
Figura 7.2 - Schema del processo di acquisizione e controllo dei blocchi di dati
7.3.3 Il modello dei dati
Il modello della base di dati necessaria alle funzionalità dell’applicazione Samor-Pop è rappresentabile in 4 aree concettuali:
1) Metadati Tracciati: contenente tutte le definizioni dei tracciati record indicate nel manuale di
registrazione. In particolare, le entità coinvolte sono: MD_TRACCIATI per la descrizione dei tracciati record;
MD_CAMPI_TRACCIATI per la descrizione dei campi dei tracciati record;
T_STATO_TRACCIATI per lo stato di inserimento della definizione del tracciato record; T_PARTIZIONI per l’elenco dei blocchi logici;
MD_TIPI_CONTROLLI per l’elenco dei tipi di controllo da effettuare sui record dei file di registrazione.
2) Gestione Acquisizione e Controllo: contenente le informazioni associate ai file-tracciato ed al
loro stato di lavorazione. In particolare, le entità coinvolte sono: FILEZIP_PERVENUTI per il registro dei file zip pervenuti;
FILE_PERVENUTI per il registro dei file-tracciato pervenuti e delle relative elaborazioni; PACCHI per le informazioni presenti nei modelli di supporto alla rilevazione;
LOG_ELABORAZIONE_FILE per il registro delle elaborazioni di controllo dei file pervenuti;
SA_TABELLA per i dati contenuti nei file-tracciato;
T_JOBRUN per lo stato di elaborazione del processo di controllo; COMUNI per l’elenco dei Comuni italiani;
REGIONI per l’elenco delle Regioni italiane; MD_PARAMETRI per i parametri del sistema;
MD_PARAMETRI_TIPI per la classificazione dei parametri del sistema.
3) Tabelle Blocco Cq: contenente le informazioni identificative del blocco logico e lo stato di
lavorazione. In particolare, le entità coinvolte sono: BLOCCO_CQ per le informazioni sul blocco logico;
VERSIONE_BLOCCO_CQ per la versione del blocco logico;
PACCHI per le informazioni presenti nei modelli di supporto alla rilevazione; SA_RECORD_LOTTO_CQ per i record presenti nel blocco logico;
STATO_LOTTO_CQ per lo stato di elaborazione del blocco logico; T_INDAGINE per la descrizione del tipo di indagine.
4) Utenti: contenente la profilatura utenti e relativi permessi. In particolare, le entità coinvolte
sono:
UTENTI per gli utenti del sistema; T_PROFILI per le classi di utenza; T_FUNZIONI per le funzioni del sistema; COMUNI per l’elenco dei comuni italiani;
ENTI per l’ente di appartenenza degli utenti (Istat oppure azienda di registrazione con le sue eventuali sedi).