Esri technology di Giorgio Forti
La scatola degli strumenti di Esri
Nella Newsletter di questo mese approfondiamo l’argomento relativo ai Framework di sviluppo della piattaforma Esri.
Per prima cosa ci sono dei principi generali da evidenziare:
- Tutti i prodotti Esri hanno incluso l’ambiente di sviluppo
Questo significa che appena l’utilizzatore finale ha in mano il prodotto Esri ha già tutti gli strumenti che servono per poter sviluppare applicazioni o estensioni dello stesso prodotto.
- Esri non usa linguaggi proprietari ma standard tecnologici
Si può affermare che ArcGIS è aperto e interoperabile poiché:
- supporta tutti i principali standard di programmazione e formati aperti (OGC, REST, SOAP, SQL, XLSForm ..etc)
- si connette con le piattaforme dei principali vendor di mercato (Autodesk, SAP, Microsoft ..etc)
- la piattaforma Esri ha un'architettura, accesso ai dati e API “open” che permettono anche l’integrazione con componenti e tool open-source. Questo la rende facilmente estendibile per gli sviluppatori.
Questo il link per approfondire l’argomento.
L’architettura dei prodotti Esri come è noto è di tipo Web-Centrico e quindi basata su “servizi” (Web Services) ospitati in ArcGIS Online e ArcGIS Enterprise (a seconda se lavoriamo nel Cloud Esri o se abbiamo la nostra architettura On-Premises).
Questi servizi posso essere creati tramite ArcGIS Pro o direttamente usando l’interfaccia “Map” o “Scene”. Questi contenuti 2D e 3D vengono quindi inseriti all’interno delle “Web Map” o delle “Web Scene” che sono dei veri e propri contenitori di varie tipologie di servizi (Feature Services, Image Services, Geoprocessing Services, Stream Services..etc..).
Questo è molto importante poiché la piattaforma Esri, tramite i Template e gli “App Builder” permette, anche a un utente che non abbia conoscenze nell’ambito della programmazione, di configurare delle applicazioni Web e Mobile e di creare delle applicazioni ricche di funzionalità.
I template più semplici permettono con pochi click di configurare applicazioni Web. A questo link sono disponibili ulteriori approfondimenti.
Possiamo creare applicazioni semplici (ad esempio per la consultazione) oppure applicazioni più evolute come le Story Map, che possono includere a loro volta volta mappe, applicazioni, pagine web, video e contenuti vari. Sono adatte, per esempio, per briefing o per raccontare storie digitali utilizzando la componente geografica. Di seguito la galleria degli esempi proveniente da tutto il mondo.
Altra tipologia molto importante e molto diffusa è quella delle Operation Dashboard, che permettono di creare Web App di tipo “Situational Awareness”, oppure Web app per il monitoraggio dei dati rilevati in campo in tempo reale.
Se questo non è sufficiente è possibile ulteriormente personalizzare , come abbiamo già detto in precedenza, utilizzando gli “App Builder”. Partiamo dal Web AppBuilder. Tale framework consiste in un template visuale che permette di configurare e personalizzare applicazioni Web impostando dei “Widget” e che fornisce una struttura di base già operativa con decine di funzionalità.
La piattaforma Esri permette, con gli strumenti descritti precedentemente, di distribuire una applicazione Web (appena è disponibile il contenuto informativo all’interno di una mappa), in pochi minuti senza avere alcuna conoscenza di un linguaggio di programmazione. L’utente finale potrà già avere a disposizione delle funzionalità (Initial Capabilities) senza dover aspettare che gli venga rilasciata l’applicazione finale (Final Capabilities). Il principio di base è “prima configurare, poi sviluppare”.
Dunque lo sviluppatore, nel creare l’applicazione, non parte da zero e potrà utilizzare questo framework per la realizzazione della struttura di base dell’applicazione Web, alla quale saranno aggiunti dei nuovi moduli denominati Widget, che estenderanno le funzionalità di base aggiungendo così le nuove funzionalità espressamente richieste dall’utente finale. Il linguaggio di programmazione utilizzato per realizzare i widget custom è Javascript, tramite l’utilizzo delle librerie Esri “ArcGIS API for Javascript” (Versione attuale 4.1.2).
Gli sviluppatori possono registrarsi al sito https://developers.arcgis.com/ e cominciare subito a sviluppare e consultare tutta la documentazione e gli esempi (corredati dal codice sorgente) relativi alle API e gli SDK disponibili.
La documentazione sulle API Javascript si trova a questo link, compresi gli esempi “live” .
In questa sezione del Sito Esri troviamo anche le librerie, la documentazione e gli esempi relativi all’ArcGIS Runtime SDK. Queste potenti librerie si utilizzano per creare App “native” semplici o complesse, sia per ambienti desktop sia mobile come Smartphone, Tablet o in generale device portabili in genere.
Le librerie sono disponibili per Android, iOS, .NET, QT e Java in ambiente Linux o Windows oltre che Xamarin che è un ambiente multipiattaforma.
La caratteristica più importante di queste librerie e che possono accedere ai dati pubblicati come servizi su ArcGIS Enterprise e ArcGIS Online ma possono lavorare anche in ambiente offline e, cosa importante, mantenendo le funzionalità di analisi e sincronizzando automaticamente i dati appena è di nuovo disponibile la connessione.
Nel sito per developer è possibile per chiunque entrare, scaricare le librerie e cominciare a sviluppare. Il primo livello “Essential” è totalmente gratuito. Se è necessario avere un ambiente completo (per esempio con la componente ArcGIS Enterprise o ArcGIS Pro) è possibile accedere a diversi piani di abbonamento (Builder, Professional, Premium e Enterprise).
Per chi vuole semplificare lo sviluppo di queste applicazioni, anche in questo caso Esri mette a disposizione un “App Builder” chiamato AppStudio for ArcGIS.
Ora parliamo dei linguaggi utilizzati per creare automazioni e procedure in ambiente ArcGIS Pro e ArcGIS Enterprise. Esri si affida al Python, che è un linguaggio di programmazione aperto e diffuso oltre che multipiattaforma e ampiamente utilizzato negli ambienti scientifici. ArcPy è un l’insieme delle librerie Python che è disponibile in ArcGIS Pro per creare degli script per la gestione dei dati geografici, la conversione dei dati, e l’ automazione della composizione e vestizione delle mappe.
Questo si affianca all’ambiente visuale chiamato Model Builder quando la complessità delle procedure è più elevata. I toolbox e gli script così creati possono essere anche pubblicati come “Geoprocessing Services” e esposti via Web con ArcGIS Enterprise.
Per quanto riguarda ArcGIS Enterprise sono disponibili le ArcGIS API for Python che sono librerie Python per lavorare con mappe e dati geospaziali, basate sul web GIS. Fornisce strumenti semplici ed efficienti per sofisticate analisi vettoriali e raster, geocodifica, creazione di mappe, analisi spaziali, nonché può essere utilizzato per l’automazione dell'organizzazione e la gestione del Portal for ArcGIS (utenti, gruppi e contenuti) . Si integra bene con l'ecosistema scientifico di Python e ne include le librerie (Es. Pandas) utilizzando come interfaccia il Notebook Jupyter.
Inoltre c’è un’altra possibilità di estendere la componente server di ArcGIS utilizzando dei meccanismi chiamati SOE (Server Object Extensions) e SOI (Server Object Interceptors).
Le SOE consentono estendere le proprietà di un servizio cartografico pubblicato via Web. LE SOE sono sviluppate in linguaggio .NET o Java (per Windows e Linux) e le funzionalità sono esposte e accessibili utilizzando gli standard REST e SOAP.
Le SOI consentono agli sviluppatori di intercettare le richieste da e per ArcGIS Server mediante pre-elaborazione o post-elaborazione delle richieste e delle risposte. Questo significa che le SOI agiscono sullo scambio dei parametri in input e output effettuando aggiunte o modifiche alle API REST esistenti.
Di seguito i riferimenti relativi all’SDK di ArcGIS Enterprise.
Anche ArcGIS Pro può essere personalizzato, oltre che tramite il Model Builder e gli scripting python (ArcPy) come già descritto in precedenza, utlizzando le librerie ArcGIS Pro SDK for Microsoft .NET. Tramite queste librerie è possibile creare nuove funzionalità per ArcGIS Pro (Add-ins) oltre che personalizzare completamente la sua interfaccia grafica. Le librerie sono disponibili solo in ambiente Microsoft .
Altro componente parte dell’Esri Geospatial Cloud è Esri Geoportal Server. Esri Geoportal Server è un prodotto open source che consente di creare portali per la ricerca dei dati Geospaziali tramite i metadati in ambiente Web (ad esempio compliant con il Discovery Service di INSPIRE). Può essere configurato e personalizzato dalle organizzazioni per gestire e pubblicare metadati delle proprie risorse geospaziali e consentire agli utenti di cercare , esplorare e accedere a tali risorse.
Si può considerare a tutti gli effetti un prodotto Open Source di Esri ed è disponibile quindi anche il codice sorgente.