Piattaforma Digitale

Architettura Logica

WebGIS

Applicazione WebGIS SITAR

Applicazione web che consente agli utenti di visualizzare su mappa, interrogare ed acquisire i dati relativi a migliaia di indagini archeologiche condotte dalla Soprintendenza Speciale Archeologia Belle Arti e Paesaggio sul territorio del Comune di Roma.

Sviluppata in React v16, framework MVC open-source per la creazione di applicazioni web e native, scritto interamente in JavaScript.

Fa uso delle librerie open-source: OpenLayers v6.7 (2D) e Cesium v1.86 (3D).

Esposto come Single-Page Application dal modulo Zuul Proxy.

Approfondimenti:

WebGIS React OpenLayers Cesium
Accedi al WebGIS SITAR

Zuul Proxy

Gateway e Proxy di richieste

Micro-servizio sviluppato tramite Spring MVC v1.5, esposto tramite web server Apache Tomcat v9.0.

Sfrutta la libreria Zuul (Netflix) per implementare un gateway che fornisce capacità di routing dinamico, monitoraggio del traffico, resilienza e sicurezza.

Permette di nascondere all’esterno i servizi offerti dalla piattaforma e risolve i problemi di caricamento di risorse Cross Origin.

Si occupa dell’autenticazione al sistema e filtra le richieste ai diversi servizi in base al Ruolo operativo dell’Utente.

Approfondimenti:

Zuul Spring MVC Apache Tomcat

REST API

REST API provider

Micro-servizio sviluppato tramite Spring Boot v1.5, esposto tramite web server Apache Tomcat v9.0.

Il cuore dell’applicativo SITAR, espone la maggiorparte delle API REST di visualizzazione e modifica dei dati contenuti nella banca dati.

Filtra i dati in base al Ruolo e all’Organizzazione di cui fa parte.

Approfondimenti:

Spring Boot Apache Tomcat

File Service

Scansione OCR documenti e indicizzazione

Micro-servizio sviluppato tramite Spring Boot v1.5, esposto tramite web server Apache Tomcat v9.0.

Si occupa della scansione OCR dei documenti e della raccolta dei relativi metadati.

E’ responsabile dell’indicizzazione dei documenti su ElasticSearch e abilita la ricerca tramite il testo contenuto negli stessi

espone le API di visualizzazione e gestione dei documenti.

Permette di filtrare i dati in base al Ruolo e all’Organizzazione di cui fa parte.

Approfondimenti:

Spring Boot Apache Tomcat

GeoServer

Provider dati geospaziali

Server open-source scritto in Java che permette agli utenti di condividere, elaborare e modificare dati geospaziali.

Progettato per l’interoperabilità, pubblica dati da qualsiasi fonte di dati spaziali che usa standard aperti.

Esposto tramite web server Apache Tomcat v9.0.

Approfondimenti:

GeoServer Apache Tomcat

Map Tiles Cache

Cache mappe MapProxy

Server open-source progettato per i dati geospaziali che si occupa di immagazzinare e ottimizzare le mappe per la fruizione.

Permette di applicare trasformazioni sui dati esistenti.

Serve rapidamente le mappe (Tiles) a tutti i client sia desktop che web.

Viene sfruttato principalmente per il precaricamento (seeding) e il caching delle mappe base.

Approfondimenti:

MapProxy

ElasticSearch

Server di ricerca

Nodo principale e fondamentale dell’Elastic Stack, è aggiornato alla versione 7.16.

Server di ricerca open-source, basato su Lucene, con capacità avanzate di ricerca FullText.

Progettato per scalare in architetture distribuite.

Espone tutte le sue funzionalità tramite API REST che adoperano il formato JSON come standard di interscambio.

Approfondimenti:

ElasticSearch

Kibana

Dashboard di ElasticSearch

La dashboard di gestione delle istanze di ElasticSearch.

Permette di gestire l’indicizzazione e il mapping dei dati per favorire le prestazioni e l’esattezza dei risultati di ricerca.

Fornisce funzionalità di visualizzazione avanzate e permette la creazione di grafici personalizzati su grandi volumi di dati.

Fornisce la possibilità di utilizzare modelli di Machine Learning per l’identificazione ed estrapolazione di indagini approfondite sui dati e le loro relazioni.

Approfondimenti:

Kibana

LogStash

Raccolta dati per ElasticSearch

Tool open-source, facente parte dell’ecosistema Elastic, si occupa della raccolta, della trasformazione e dell’invio di dati ad ElasticSearch che provvederà ad indicizzare ed esporre.

Facilmente configurabile, è in grado di elaborare grandi quantità di dati, può essere impiegato per single run o temporizzato per avviare aggiornamenti con cadenza fissata.

In questo progetto viene sfruttato per raccogliere e inviare ad ElasticSearch tutti i dati strutturati necessari per le ricerche pubbliche sulle entità principali del sistema e la relativa documentazione caricata dagli operatori SITAR.

Approfondimenti:

LogStash

PostgreSQL + PostGIS

DataBase + Estensione spaziale

PostgreSQL è un DBMS relazionale orientato agli oggetti che gode dei requisiti ACID per le transazioni: Atomicità, Consistenza, Isolamento e Durabilità.

PostGIS è un’estensione spaziale per il database PostgreSQL.

Fornisce i tipi di dati specificati negli standard dell’Open Geospatial Consortium.

In particolare è un geodatabase e fornisce il sistema di gestione dati sui quali è basato il WebGIS.

Approfondimenti:

PostgreSQL PostGIS

File Storage

Archivio documentazione e immagini

Il server File Storage è il luogo fisico in cui vengono archiviati i file caricati tramite il WebGIS.

Espone i file tramite protocollo FTP e NFS.

E’ collegato al nodo File Service tramite network dedicato.

SMTP

Posta in uscita

Fornisce il servizio di posta in uscita dal sistema.

Certifica l’autenticità del mittente SITAR.

Permette l’accesso al servizio ad una whitelist di server specificati.

WWW

Sito di presentazione

Espone il sito web di presentazione del progetto.

Presenta tutti i contenuti in duplice lingua.

E’ sviluppato rispettando le linee guida per l’Accessibilità.

Basato sulla piattaforma wordpress, è facilmente manutenibile e ottimizzato per alte prestazioni.

DNS

Posta in uscita

Fornisce il servizio di posta in uscita dal sistema.

Certifica l’autenticità del mittente SITAR.

Permette l’accesso al servizio ad una whitelist di server specificati.

GitLab

Versioning del codice sorgente

Piattaforma web open-source per la gestione di repository Git, cioè il versioning del codice sorgente dei diversi moduli del progetto.

Offre strumenti a supporto dello sviluppo, della gestione dei team di sviluppatori e delle operazioni di risoluzione dei malfunzionamenti.

Permette l’integrazione con sistemi esterni per l’attivazione di pipeline di operazioni.

Fornisce quindi il supporto per l’implementazione della CI/CD (Continuous Integration, Continuous Delivery).

Approfondimenti:

GitLab

Jenkins

Continuous Integration / Continuous Delivery

E’ uno strumento open-source di supporto allo sviluppo software.

Fornisce servizi di integrazione continua ed estensioni per la gestione dei flussi di rilascio di pacchetti software compilati in tempo reale.

Viene invocato tramite Webhook direttamente da Gitlab a valle del rilascio di nuove versioni del codice.

Approfondimenti:

Jenkins

Data Model

Il SITAR è organizzato in livelli logici che seguono questa filiera conoscitiva:

  • le Origini dell’Informazione per l’individuazione e la raccolta dei dati
  • le Partizioni Archeologiche per la descrizione dei dati
  • le Unità Archeologiche per l’organizzazione e interpretazione dei dati
  • I Dispositivi di Tutela a supporto della protezione del patrimonio culturale

OI – Origine dell’Informazione

Geometria OI

L’Origine dell’Informazione (OI) è il livello che racconta la storia dell’indagine archeologica e raccoglie tutte le informazioni di carattere anagrafico, tecnico e descrittivo che consentono di individuare l’origine del dato.

L’Origine dell’Informazione non identifica un oggetto archeologico fisico o un sito, ma l’areale che ha generato e contiene l’informazione. Questo livello raccoglie la generalità dei dati provenienti dalla ricerca archeologica (scavi, sondaggi archeologici e geognostici, ricerche bibliografiche e d’archivio, studio monografico di complessi o singoli monumenti) costituendo esso stesso un metadato del sistema.

PA – Partizione Archeologica

Geometre PA

La Partizione Archeologica (PA) è il livello analitico dell’informazione e registra i dati essenziali della conoscenza archeologica, vale a dire tutti i rinvenimenti che ciascuna indagine ha individuato.

Le Partizioni Archeologiche corrispondono ad azioni umane circoscritte nel tempo e nello spazio: ogni partizione viene distinta sulla base di un criterio di omogeneità cronologica e funzionale (generalmente corrisponde a quello che nell’analisi del dato stratigrafico è definito attività/gruppo di attività) consentendo una mappatura dello sviluppo diacronico e delle variazioni d’uso di ogni sito esaminato.

UA – Unità Archeologica

UA Geometrie

L’Unità Archeologica (UA) è il livello di sintesi interpretativa all’interno del quale le singole Partizioni Archeologiche appartenenti ad un unico contesto, che la storia ha diviso, vengono riaggregate per una ricostruzione dei tessuti storici della città di Roma.

DT – Dispositivi di Tutela

DT geometrie

I Dispositivi di Tutela (DT) sono aree di salvaguardia di complessi, siti e monumenti archeologici, monumenti architettonici o contesti paesaggistici di particolare interesse e rilevanza.