On Sat, 27 Aug 2011 23:30:11 +0200, G. Allegri wrote
In ogni caso, credo sia una cosa utile (sebbene da molti vista come la solita mossa commerciale
d’aggancio all’OS, sullo stile delle varie big farm), perché offre uno strumento in più verso
l’integrazione e l’interoperabilità…
Il che può essere sempre uno step verso una migrazione più free.
mi sono scaricato le API ESRI del GeoDatabase:
eccovi una veloce e sommaria recensione.
LICENZA:
assolutamente non libera: vietata la redistribuzione
a terzi, ciascun singolo utente deve scaricarsi le API
per proprio conto previa registrazione ed accettazione
dell’accordo di licenza con ESRI.
SW:
si tratta di un insieme di librerie per Windows (32 e 64 bit)
e per Linux (32 e 64 bit): Mac Os X pare del tutto non
supportato, così come qualsiasi altra piattaforma.
lib pesantucce: circa il doppio di SpatiaLite (in MB)
LINGUAGGI:
C++ (per WinOz anche C#)
STRUTTURA DEL DBMS:
sorprendentemente, abbastanza simile a MySQL.
un GeoDBMS in effetti è un’intera cartella, che contiene
al suo interno moltissimi file: una singola “tavola/layer”
richiede 3 o 4 files distinti (dati, indici, spatial index,
struttura).
Più ovviamente ulteriori files per metadati e cataloghi
FUNZIONALITA’:
le API consentono di creare un GeoDB, creare e cancellare
le tavole, interrogare lo schema da un GeoDB già esistente etc.
Inoltre supportano l’interrogazione, inserimento, modifica e
cancellazione di singole features.
LIMITAZIONI:
non è possibile gestire i Rasters, le reti e le topologie
possono essere lette ma la scrittura non è abilitata.
L’unico tipo di Spatial Query supportato è il filtraggio
per BBOX aka MBR (non sono sicurissimo, ma pare di capire
che gli Spatial Index anche quando presenti non possono
essere utilizzati).
SQL:
Assai perplimente: almeno dagli esempi, pare proprio che
SQL sia inteso per gestire tutti i dati “normali”, mentre
non supporta affatto la parte Spatial vera e propria.
Non sono riuscito a trovare la minima traccia di supporto
per OFG-SFS: insomma, scordatevi ST_AsText() o ST_GeomFromTex()
Per qualsiasi operazione Spatial occorre usare le API C++
ACCESSI CONCORRENTI:
più utenti possono accedere simultaneamente in lettura.
secondo la documentazione qualsiasi tentativo di accesso
simultaneo in scrittura può facilmente causare la corruzione
irreversibile del GeoDB.
CONCLUSIONI:
Lo dice la documentazione stessa: queste API sono intese
esclusivamente per consentire la migrazione dei dati
da/per altri sistemi di storage.
Insomma, non si tratta affatto di uno Spatial DBMS vero
e proprio, ma semplicemente di un “formato file”, per
quanto sofisticato e complesso.
Per supportare le funzioni Spatial in modo degno
servono comunque i prodotti ArcXxx “veri” (a pagamento).
Molto più prosaicamente queste API consentono di recuperare
i dati memorizzati in un GeoDB, oppure di creare da zero un
GeoDB trasferendovi dati di altra provenienza.
Funzioni sicuramente utili e forse anche preziose quando
l’integrazione spinta con sistemi ESRI è un must assoluto.
Ma altrettanto sicuramente del tutto inutili in qualsiasi
altro contesto, cioè quando l’uso di sw ESRI non è previsto
in nessuna fase.
ciao Sandro