Vai direttamente ai contenuti della pagina

 

PubbliAccesso

 

Centro Nazionale per l'Informatica nella Pubblica Amministrazione

 


 

ti trovi in: Home Page - Webmaster - Progetto ASSI - Progettazione -

Integrazione a specifiche fornite da AIPA

1 Introduzione

Nel processo di generale e continua trasformazione delle pubbliche amministrazioni, l'innovazione tecnologica rappresenta un fattore di sviluppo e di razionalizzazione, oltre che di contenimento dei costi di funzionamento e di miglioramento dei servizi resi al cittadino-utente.

In questa prospettiva, la realizzazione dei siti web delle amministrazioni pubbliche, risulta essere uno degli strumenti che meglio si presta al raggiungimento dell'obiettivo di innovazione della P.A. rendendo un servizio all'intera comunità. Per far si che tali sistemi siano effettivamente utili all'intera comunità, è fondamentale che essi siano accessibili a tutti colori i quali intendano farlo. Per tale motivo nasce questo progetto.

2 Architettura del Sistema

L'architettura proposta è una architettura n-tier e presenta caratteristiche di modularità e scalabilità essendo essa basata su principi derivati dalla DOC (Distributed Object Computing).

Si possono individuare nell'architettura tre strati logici: lo strato di presentazione, quello di business e quello dei dati. A loro volta questi strati sono composti da più strati fisici software.

Di seguito vengono presentati i diversi componenti che costituiscono l'architettura applicativa:

  • La parte di presentazione sarà realizzata tramite pagine ASP, privilegiando per quanto possibile un approccio a "client leggero", in grado di operare sui maggiori browser di mercato, cercando comunque di mediare questo approccio con i requisiti di interazione per gli utenti finali.
  • Il web server, coerentemente con la scelta di utilizzo della tecnologia Microsoft, è IIS 5.0.
  • Gli oggetti di Business saranno sviluppati come componenti COM+.
  • Lo strato Data Access è realizzato basandosi sulla tecnologia ActiveX Data Object.
  • Il database relazionale è SQL Server 2000.

Una delle specifiche che determinano questa scelta architetturale, è la necessità di voler rendere il sistema ASSI accessibile da qualsiasi postazione client dotato di browser standard. Si è infatti scelta una soluzione di tipo thin-client, posizionando tutta la logica di business e di accesso ai dati sul lato server, in maniera di poter sfruttare al massimo le potenzialità di accesso ai dati e di distribuzione dei componenti, offerte dall'architettura Microsoft, senza così imporre scelte proprietarie dal lato client.

3 Schema relazionale base di dati Macroarea Interazioni Forum

3.1 Analisi dello schema

Un utente ha una visibilità solo attraverso un contenitore di gruppo, può essere associato a più gruppi, avrà come visibilità la somma di tutti i permessi dei gruppi a cui appartiene.

Un gruppo può avere più diritti su diversi canali.

Le tabelle coinvolte sono:

  • tblUtenti per quanto riguarda gli attributi utenti;
  • tblRelUtentiGroup per la relazione tra gli utenti ed i gruppi;
  • tblGroup per la descrizione del gruppo;
  • tblRelGroupRight per la relazione dei gruppi con i canali;
  • tblUserCanali per le singole descrizione dei diritti che si applicano ad un canale.

Quest'ultima si relaziona con la tabella TblCanali per la descrizione del canale.

Per inscrivere un messaggio nel canale bisogna registrarlo su tblMessaggi; se è un messaggio relazionato ad un altro, come una risposta, sarà chiave esterna su tblRelCascade, dove la chiave idIN indica la chiave del messaggio padre e la chiave idOUT la chiave del messaggio figlio.

La tabella dei messaggi possiede relazioni sia con la tabella dei canali, per la chiave del canale, sia con la tabella degli utenti per la chiave AliasUtente, che è la chiave della tabella tblUtenti.

3.2 Descrizione analitica delle tabelle

3.2.1 tblUtenti

  • alias: la chiave univoca della tabella, non è permesso che vi siano più utenti con lo stesso alias;
  • nome: nome dell'utente che viene registrato;
  • password: la password dell'utente che si registra;
  • volatile: flag che indica se un utente ha effettuato una registrazione permanente od una registrazione temporanea, solo per ottenere un proprio alias;
  • datains: data di inserimento dell'utente;
  • typeuser: descrizione della tipologia di utente a cui appartiene;
  • enabled: campo che indica se l'utente sia stato abilitato.

3.2.2 tblRelUtentiGroup

  • idgroup: chiave a molti per la relazione con la tabella tblGroup;
  • aliasu: chiave a molti per la relazione con la tabella tblUtenti;
  • nota: tabella di normalizzazione tra tblUtenti e tblGroup; entrambi i campi della tabella sono ‘valori molti' di una relazione uno a molti.

3.2.3 tblGroup

  • idgruppo: chiave univoca del gruppo;
  • nomegruppo: nome del gruppo;
  • descrizione: possibilità di dare una descrizione al gruppo di utenti.

3.2.4 tblRelGroupRight

  • idgroup: la chiave a molti per la relazione con la tabella tblGroup;
  • iddiritti: la chiave a molti per la relazione con la tabella tblRelUserCanal;
  • nota: tabella di normalizzazione tra tblGroup e tblRelUserCanal; entrambi i campi della tabella sono ‘valori molti' di una relazione uno a molti.

3.2.5 tblRelUserCanali

  • diritti: la chiave identifica una tipologia di diritto per un certo canale;
  • idc: chiave del canale a cui è riferito il diritto;
  • leggi: permesso di lettura (si / no);
  • scrivi: permesso di scrittura (si / no);
  • cancella: permesso di cancellazione (si / no);
  • modera: permesso di moderazione (si / no);
  • scrivise: permesso di scrittura, ma previa moderazione (si / no).

3.2.6 tblCanali

  • idc : la chiave univoca per il canale;
  • nomecanale: il nome del canale;
  • descrizione: la descrizione del canale:
  • modalità: la tipologia del canale (canale per web master o per utenti).

3.2.7 tblMessaggi

  • idn: la chiave per l'identificativo del messaggio;
  • aliasutente: la chiave esterna a tblUtenti, per l'identificazione di chi scrive i messaggi;
  • testo: il corpo del messaggio;
  • soggetto: l'intestazione del messaggio;
  • data: la data di inserimento del messaggio;
  • idc: la chiave del canale in cui il messaggio è scritto;
  • autorizzato: il flag che dichiara se un messaggio è stato confermato del moderatore per essere pubblicato sul forum (si / no);
  • annotazioni: il campo dove il moderatore può aggiungere dei commenti al messaggio utente.

3.2.8 tblRelCascade

  • idin: la chiave esterna di relazione con idn della tabella tblMessaggi, per indicare che idin sarà il padre gerarchico di N idout;
  • idout: la chiave interna di relazione con idn della tabella tblMessaggi per identificare i messaggi figli di idin della stessa tabella.

3.3 Note di progettazione

La base dati è stata normalizzata alla 3° normale non essendo necessaria una eccessiva normalizzazione; infatti, nel caso del forum, è sicuramente più importante la compattezza del dato e la velocità di caricamento.

Sono stati utilizzati valori uniqueidentifier per ottenere una univocità delle chiavi ed avere un meccanismo anche esportabile sulla interfaccia, senza doverci quindi preoccupare circa eventuali corruzioni e/o hackeraggio sulle chiavi; inoltre in tal modo è possibile replicare e unificare più banche dati replicate.

I valori enumerativi sono stati chiusi in udt, che descrivono e circoscrivono la natura del dato.



Inizio pagina [0]

Valid XHTML 1.0!