martedì 14 luglio 2009

ECW e software di terze parti

Prendo spunto da un recente post apparso sul blog dedicato ad ERDAS Image Web Server dal titolo "Can I use ECW technology in my third-party server?" per provare a chiarire le condizioni d'uso dei pezzi di software (SDK, che significa Software Develoment Kit) che permettono di sfruttare la compressione ECW in software diversi da quelli della ERDAS Inc.

Scrivo questo post consapevole del fatto che nei prossimi giorni sarò triturato da richieste di chiarimenti ed invettive, ma mi voglio immolare sull'altare della trasparenza :-)
Inoltre mi preme sottolineare che ciò che scrivo di seguito, per il momento, è riferito a come l'ho capita io, e quindi prendetela come un'interpretazione e non come un documento ufficiale.
Le informazioni ufficiali le trovate sul sito web della ERDAS, ok?

Allora partiamo dal fatto che gli SDK ECW sono liberamente scaricabili.
Quando si scaricano dei pezzi di software, è però sempre opportuno leggersi con attenzione la licenza d'uso (la trovate nel file che scaricate).

Distinguiamo dunque gli SDK per visualizzare file ECW (sono quindi quelli per la decompressione: se voglio vedere un file compresso, lo devo decomprimere) da quelli per comprimere immagini in formato ECW (quindi quelli che mi consentono di prendere un GeoTIFF da 2GigaByte e comprimerlo in un ECW da 20 Mb) .
Distinguiamo inoltre l'uso del SDK in software desktop da quello in software server.

1. Visualizzare file ECW in software desktop
In caso di utilizzo della libreria per la consultazione (decompressione) di file ECW su applicazioni di tipo desktop non è necessario acquistare la licenza d'uso. Facile facile.
Vuoi vedere gli ECW in ArcView o AutoCAD Map? Fino a qualche versione fa dovevi scaricare il plug-in; oggi invece puoi visualizzarli senza problemi perché la ESRI e la Autodesk hanno usato il SDK ECW per la visualizzazione.
Hai un software geospaziale a cui vuoi far leggere gli ECW? Fai come gli amici del GFOSS, che hanno usato il SDK ECW per far leggere a QGIS gli ECW. Pacifico.

2. Comprimere file ECW in software desktop
Vuoi aggiungere alla funzione "Salva con nome" del tuo software il supporto per il formato ECW?
Con il SDK posso comprimere senza costi immagini grandi fino a 50Mb.
Se voglio farlo con immagini più grandi... vuol dire che voglio consentire al mio software di fare ciò che da sempre è stato possibile solo con ER Mapper e, dall'acquisizione della software house australiana da parte della ERDAS, con ERDAS IMAGINE. Si capisce bene quindi che la ERDAS questa possibilità non la offrirà a tutti, e di certo non sarà a titolo gratuito.

3. Visualizzare e/o Comprimere file ECW in software server
Anche per applicazioni server, l'uso del SDK ECW non è gratuito. Proviamo a sintetizzare le condizioni d'uso:
  • Sia per leggere che per salvare ECW va acquisita una licenza per ogni macchina su cui si installa.
  • Non esistono licenze gratuite per utilizzo su server. Questo vale per qualsiasi tipo di prodotto server, che sia esso commerciale, proprietario o "open source".
  • La licenza va acquisita da chi utilizza il software server e non necessariamente dal venditore/sviluppatore del software.
  • Chi fornisce/sviluppa il server che utilizza gli ECW deve:
    • fornire il supporto a tali file in stato OFF (disabilitato);
    • spiegare in maniera chiara all'utente come attivare lo stato ON, e che esso necessita dell'acquisto di una licenza.
Quest'ultima condizione fa si che sul mercato siano presenti prodotti server "free", gratuiti, che però includono la tecnologia ECW. Chi li ha sviluppati ha scelto di includere questa funzionalità, però lascia scegliere all'utente finale se sostenere il costo per la sua attivazione.
Perché devo pagare, allora?
Perché la ERDAS continua ad investire nello sviluppo della tecnologia ECW, e nello strumento principe per pubblicare i dati ECW che è Image Web Server.

Image Web Server è, e rimane, il modo più efficiente e che garantisce le migliori performance per pubblicare dati ECW... anzi diciamola tutta, per pubblicare terabyte di immagini su web senza doversi dotare dell'infrastruttura server di Google, perché è stato sviluppato appositamente per quello.
Altri software server nascono probabilmente per fare altro, ed il supporto ECW non garantisce le stesse performance; anche se, indubbiamente, leggere un singolo file ECW è sempre più facile per un mapserver, rispetto all'andarsi a cercare le immagini in un database (si veda al riguardo ciò che ho scritto in un post precedente).
Questo è il motivo per cui la versione attuale di ArcGIS Server non legge gli ECW: non è una questione tecnica, bensì una questione di licenza e di scelte strategiche di ESRI.
In realtà un modo molto semplice per far leggere gli ECW ad ArcIMS o ArcGIS Server c'è: basta installare Image Web Server sulla stessa macchina (con una licenza commerciale opportunamente legata al numero di Core del server), ed abilitare il modulo ECW Connector, incluso in IWS.

Mi sembra opportuno ricordare che tantissimo materiale ed informazioni più approfondite su ECW, JPG2000 ed Image Web Server sono disponibili all'indirizzo http://iws.erdas.com.

3 commenti:

  1. Se installo su un applicativo desktop il plug in per leggere gli ecw posso usare file ecw forniti da server in rete? ad esempio se volessi richiamare all'interno di Qgis un file ecw servito da un server remoto attraverso le chiamate OGC come posso fare?
    RispondiElimina
  2. Esistono solo un paio di persone in Italia che potevano farmi una domanda del genere, e tu secondo me sei una delle due.. ma perché non ti firmi??!
    La licenza d'uso del SDK ECW richiede espressamente che, se io costruisco un plug-in ECW per un software, questo debba poter leggere non solo gli ECW locali (via file system) ma anche che venga abilitato il supporto ECWP: ovvero che sia possibile connettermi ad un Image Web Server che pubblica servizi con il suo protocollo proprietario, che è appunto l'ECWP.

    La risposta alla tua domanda è tuttavia un'altra. Se vuoi richiamare in QGis (o qualsiasi altro GIS desktop) un file ECW servito da un server remoto attraverso una chiamata "OGC", come scrivi tu, devi usare per forza il protocollo WMS (Web Map Service), che è lo standard OGC per le mappe di questo tipo.

    Image Web Server, com'è noto, può servire file ECW in diversi modi contemporaneamente: uno di questi è l'ECWP (più veloce, ma vuole un plug-in lato client perché trasmette pezzi di ECW che vengono decompressi dal client, alleggerendo il lavoro del server); un altro è il WMS, magari leggermente meno performante (ma si dice che IWS sia il più veloce server WMS per i raster al mondo..!!) ma conforme agli standard OGC.

    E per leggere un WMS non ti serve nessun plug-in: il WMS è ormai "consumabile" dalla maggior parte dei GIS desktop (sulla carta, almeno; poi c'è chi lo fa meglio e chi lo fa zoppicando...)
    RispondiElimina
  3. Ho appena controllato la pagina citata sopra dal sito ufficiale di erdas e nel paragrafo "Product enhancements" leggo testuali parole:

    "No more restrictions on the distribution of 'Server Software' under the GPL-style Public Use License Agreement"

    Appena ho tempo scarichero' il nuovo sdk e controllero' le licenze, ma la dicitura che riporto sopra mi sembra abbastanza chiara, no?
    RispondiElimina