• Non ci sono risultati.

SEZIONE I - SCENARIO E CONTESTO DI RIFERIMENTO

1 Il contesto di riferimento

1.2 Architettura software

Di seguito la descrizione delle principali componenti software oggetto di intervento.

1.2.1 CRUD degli elementi culturali

Le operazioni CRUD (acronimo che indica le operazioni di Create, Read, Update e Delete,) sono previste sulle entità di catalogazione:

Allegato 4 – Capitolato tecnico pag. 9/32

 Unità Topografica

 Complesso topografico

 Sito

 Sito pluristratificato

 Contesto Territoriale Stratificato

 Autore

 Bene Mobile

 Bene Immateriale

 Luogo di Cultura

 Evento

Il componente CRUD è un'applicazione WEB strutturata su più livelli:

 la logica di presentazione è stata implementata attraverso delle JSP (Java Server Pages) ovvero attraverso la programmazione Web in Java, fornendo contenuti dinamici in formato HTML e invocando funzioni predefinite sotto forma di codice Java e/o funzioni JavaScript;

 logica di business è il livello intermedio costituito dal motore applicativo, ovvero la logica applicativa (back-end) basata sul framework Spring MVC che si occupa di mappare metodi e classi Java con determinati url, per gestire differenti tipologie di “viste” restituite al client;

 logica di persistenza è basata su un framework chiamato MyBatis, utilizzato per scrivere delle query, attraverso l’uso di SQL e regole di XML; attraverso la configurazione di alcuni file XML è possibile generare delle classi "repository", ovvero entità di MyBatis con un set di query già pronte.

Si riporta di seguito una descrizione dei componenti del sistema SIRPaC che si occupano dell’editing dei contenuti degli elementi culturali dei CRUD.

Di seguito una descrizione dei componenti riportati nel diagramma:

 sirpac-crud-portlet: Spring MVC portlet (JSR-286) Liferay compliant eseguita sul servlet container di riferimento, contenente tutta la logica applicativa utile all’editing degli elementi culturali;

 sirpac-core: libreria Java contenente tutte le classi utili ad esporre la logica di business per gli applicativi JEE coinvolti nel sistema;

 ElementoCulturaleControllers: componenti invocati dai client che si occupano di richiamare la logica di

Allegato 4 – Capitolato tecnico pag. 10/32

business; comunicano con il service layer sottostante;

 ElementoCulturaleServices: componenti del service layer che permettono di definire la logica di business correlata all’editing degli elementi culturali. Comunicano con il persistence layer sottostante;

 ElementoCulturaleMappers: componenti mappers MyBatis per l’accesso alle tabelle degli schemi

“sirpac” e “sirpac_support” coinvolte nei processi di gestione degli elementi culturali;

 sirpac e sirpac_support: schemi del DBMS PostgreSql contenenti le informazioni utilizzate nei processi che coinvolgono le funzionalità di editing degli elementi culturali.

1.2.2 Front-end Liferay per la fruizione degli elementi culturali

Per la fruizione degli elementi culturali è stata implementata un'applicazione WEB utilizzando le stesse tecnologie del componente CRUD.

Le ricerche nel front-end sono effettuate mediante chiamate AJAX ad un servizio REST pubblico esposto dall’applicazione. Le interrogazioni al servizio vengono interpretate dall’applicazione e trasformate in opportune interrogazioni all’istanza SOLR dove sono indicizzati tutti i contenuti di tutti gli elementi culturali.

Le richieste REST inviate dal browser vengono intercettate da un opportuno controller Spring che a sua volta chiama l’opportuno metodo della classe SearchServiceImpl. Questa classe contiene la logica necessaria per tradurre la ricerca in un’opportuna chiamata all’istanza di SOLR. I risultati della ricerca da parte di SOLR vengono restituiti sotto forma di un oggetto JSON. La classe SearchServiceImpl applica ai risultati della ricerca eventuali filtri necessari in base ai permessi dell’utente attuale e restituisce l’oggetto JSON al controller Spring. Il controller Spring invia l’oggetto JSON inalterato al browser che procede alla renderizzazione dei risultati e alle chiamate al WebGIS necessarie per la visualizzazione dei poligoni rappresentanti i risultati restituiti.

1.2.3 Supporto al multilinguismo

La piattaforma sfrutta il supporto al multilinguismo nativo di Liferay per la redazione e presentazione dei contenuti in lingua. Tutte le schede degli elementi culturali, i vocabolari di supporto e le schede redazionali consentono l’inserimento, aggiornamento e cancellazione dei contenuti in tutte le lingue supportate dalla piattaforma.

1.2.4 WebGIS

Il componente WebGIS è costituito da due elementi:

1. una applicazione web (HTML5 + Javascript) costituita da una pagina web che richiama un servizio di mappe esterno, disegna sulla mappa vari layer di elementi georeferenziati e consente all’utente varie interazioni con la mappa;

2. una web application Java per Tomcat che si occupa di elaborare il pdf della mappa.

L’applicazione web WebGIS di cui al punto 1 è stata integrata nel portale Liferay mediante iframe ed è stato implementato un meccanismo di comunicazione tra l'iframe che contiene il WebGIS ed il resto dell’applicazione Liferay basato sull’utilizzo di Javascript.

Nel richiamare il WebGIS, come parametro di GET deve essere passato il ruolo dell'utente che si è loggato nel sistema: tale ruolo servirà per configurare correttamente. Il WebGIS può essere utilizzato in due modalità:

 georeferenziazione del bene (associazione di una geometria al bene);

 consultazione (e visualizzazione) dei beni presenti in una determinata area, scelta dall'utente.

Per attivare la funzionalità di georeferenziazione del bene bisogna inviare, dal portale, un messaggio al WebGIS:

tale messaggio aprirà un pannello (nel WebGIS) con una procedura guidata che permette di localizzare il bene secondo una delle seguenti modalità:

 inserimento, o prelievo, delle coordinate

 interrogazione della mappa catastale, inserendo le informazioni relative a comune, sezione, foglio e particella

 editing della geometria direttamente in mappa

Allegato 4 – Capitolato tecnico pag. 11/32

A fine procedura il WebGis invia al portale un json contenente il risultato della georeferenziazione. Il portale si occupa di salvare sul database tale geometria, con tutti gli altri attributi del bene.

La funzionalità di consultazione è sempre disponibile sul WebGIS. Tale funzionalità permette di scegliere un'area in mappa ed interrogare il database per conoscere quali beni ricadono all'interno della stessa. L'interrogazione al database dovrebbe essere fatta dal portale, al quale viene inviata una geometria, corrispondente all'area selezionata, dal WebGIS.

La selezione dell'area in mappa può avvenire secondo le seguenti modalità:

 utilizzo di un buffer: si sceglie un punto in mappa e si indica un raggio; l'area è rappresentata da un cerchio avente centro nel punto selezionato e raggio quello indicato

 disegno di un poligono direttamente in mappa

Ad interrogazione eseguita il portale invia al WebGIS il risultato ottenuto, sotto forma di json, in modo che l'elenco dei beni possa essere visualizzato sulla mappa. Nel json inviato, una proprietà "label" consente di abilitare la visualizzazione del codice del bene nei pressi del poligono che lo rappresenta.

Allegato 4 – Capitolato tecnico pag. 12/32