L'architettura software rappresenta il livello attraverso il quale i principi definiti nelle sezioni precedenti vengono tradotti in componenti applicativi concreti.
L'obiettivo non consiste nell'individuare un insieme rigido di prodotti tecnologici, ma nel definire una struttura modulare capace di garantire interoperabilità, scalabilità e sostenibilità nel lungo periodo.
L'architettura proposta segue un modello a livelli (layered architecture), nel quale ogni componente svolge una funzione specifica e comunica con gli altri attraverso interfacce standardizzate.
8.1 Obiettivi dell'architettura
L'architettura software dovrà perseguire alcuni obiettivi fondamentali:
- separazione delle responsabilità;
- indipendenza tra componenti;
- interoperabilità;
- semplicità di manutenzione;
- possibilità di evoluzione progressiva;
- elevata disponibilità dei servizi;
- facilità di integrazione con sistemi esterni.
Figura 8.1 – Architettura logica generale
Applicazioni
┌──────────────────────────────────────────┐
│ Portale │ API │ GIS │ Open Data │ Mobile │
└──────────────────────────────────────────┘
│
▼
Servizi applicativi
┌──────────────────────────────────────────┐
│ Ricerca │ Workflow │ Media │ Catalogo │
└──────────────────────────────────────────┘
│
▼
Livello dati
┌──────────────────────────────────────────┐
│ Database │ Metadata │ File │ Cartografia │
└──────────────────────────────────────────┘
│
▼
Infrastruttura tecnologica
┌──────────────────────────────────────────┐
│ Linux │ Storage │ Backup │ Monitoraggio │
└──────────────────────────────────────────┘Figura 8.1 – Schema logico dell'architettura software.
8.2 Architettura a livelli
La piattaforma sarà organizzata secondo quattro livelli principali.
Livello di presentazione
Comprende le applicazioni utilizzate dagli utenti:
- portale web;
- applicazioni mobili;
- dashboard;
- servizi cartografici;
- API pubbliche.
Livello dei servizi
Comprende la logica applicativa.
Qui risiedono:
- catalogazione;
- ricerca;
- autenticazione;
- workflow;
- gestione documentale;
- gestione dei media;
- pubblicazione Open Data.
Livello dei dati
Raccoglie tutte le informazioni persistenti della piattaforma:
- database;
- metadati;
- file;
- cartografia;
- repository documentali.
Livello infrastrutturale
Comprende:
- sistema operativo;
- virtualizzazione;
- storage;
- backup;
- sicurezza;
- monitoraggio.
BOX 8.1 – Perché un'architettura a livelli?
La separazione in livelli consente di aggiornare o sostituire singoli componenti senza compromettere il funzionamento complessivo del sistema, aumentando affidabilità, manutenibilità e capacità evolutiva.
Conclusioni
L'architettura software proposta costituisce il riferimento logico per tutte le componenti tecnologiche della piattaforma. Nei capitoli successivi ciascun livello sarà approfondito, definendo il modello dei dati, le modalità di interoperabilità e le tecnologie più idonee alla realizzazione dell'ecosistema.
- L'architettura software traduce la visione strategica in una struttura tecnica.
- La separazione in livelli favorisce modularità, manutenzione ed evoluzione.
- Ogni componente svolge una funzione specifica e comunica attraverso interfacce standard.
- Il Piano privilegia architetture aperte e indipendenti dalle singole tecnologie.
- L'implementazione dovrà poter evolvere senza compromettere la stabilità dell'intero sistema.