[Gfoss] SOAP/WSDL e GRASS

Ciao tutti! Sono un nuovo utilizzatore di GRASS e avrei bisogno di un aiuto. Avrei bisogno di creare una applicazione C++ per visualizzare delle mappe e fare dei calcoli, insomma, una applicazione che faccia un po da wrapper per GRASS. L’ideale sarebbe avere GRASS su un server e poter chiamare delle sue funzioni remotamente dai vari client, quindi la priam domanda è: esiste un modo per poter accedere alle funzioni remotamente usando WSDL/SOAP? In caso questo non fosse possibile, mi andrebbe anche bene installare GRASS su ogni Client, ma allo stesso modo dovrei poter lanciare dei comandi di GRASS. Come si fa? GRASS ha delle API? espone delle funzioni? Basta include nel mio pregetto C++ dei file di GRASS?
Grazie mille
Davide

2011/4/1 Davide Perrone <syndacate2004@gmail.com>:

Ciao tutti! Sono un nuovo utilizzatore di GRASS e avrei bisogno di un aiuto.
Avrei bisogno di creare una applicazione C++ per visualizzare delle mappe e
fare dei calcoli, insomma, una applicazione che faccia un po da wrapper per
GRASS. L'ideale sarebbe avere GRASS su un server e poter chiamare delle sue
funzioni remotamente dai vari client, quindi la priam domanda è: esiste un
modo per poter accedere alle funzioni remotamente usando WSDL/SOAP? In caso
questo non fosse possibile, mi andrebbe anche bene installare GRASS su ogni
Client, ma allo stesso modo dovrei poter lanciare dei comandi di GRASS. Come
si fa? GRASS ha delle API? espone delle funzioni? Basta include nel mio
pregetto C++ dei file di GRASS?
Grazie mille
Davide

Ciao Davide
esiste uno standard dell'OGC per il processamento remoto di dati
geografici con web services, il WPS [0] (Web Processing Services).
Esistono varie implementazioni Open Source di tale standard, quelle
che si integrano meglio in GRASS sono ZOO Project [1] e pyWPS [2].

ciao
P

[0] http://www.opengeospatial.org/standards/wps
[1] http://www.zoo-project.org/
[2] http://pywps.wald.intevation.org/

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti

Grazie mille per la risposta! PyWPS lo conosco un po, ma anche in questo caso, non ho idea se è possibile interfacciarsi con lui che poi si interfaccia con GRASS usando SOAP/WSDL. E’ possibile questa cosa?

Il giorno 01 aprile 2011 10:27, Paolo Corti <pcorti@gmail.com> ha scritto:

2011/4/1 Davide Perrone <syndacate2004@gmail.com>:

Ciao tutti! Sono un nuovo utilizzatore di GRASS e avrei bisogno di un aiuto.
Avrei bisogno di creare una applicazione C++ per visualizzare delle mappe e
fare dei calcoli, insomma, una applicazione che faccia un po da wrapper per
GRASS. L’ideale sarebbe avere GRASS su un server e poter chiamare delle sue
funzioni remotamente dai vari client, quindi la priam domanda è: esiste un
modo per poter accedere alle funzioni remotamente usando WSDL/SOAP? In caso
questo non fosse possibile, mi andrebbe anche bene installare GRASS su ogni
Client, ma allo stesso modo dovrei poter lanciare dei comandi di GRASS. Come
si fa? GRASS ha delle API? espone delle funzioni? Basta include nel mio
pregetto C++ dei file di GRASS?
Grazie mille
Davide

Ciao Davide
esiste uno standard dell’OGC per il processamento remoto di dati
geografici con web services, il WPS [0] (Web Processing Services).
Esistono varie implementazioni Open Source di tale standard, quelle
che si integrano meglio in GRASS sono ZOO Project [1] e pyWPS [2].

ciao
P

[0] http://www.opengeospatial.org/standards/wps
[1] http://www.zoo-project.org/
[2] http://pywps.wald.intevation.org/


Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti


Davide

2011/4/1 Davide Perrone <syndacate2004@gmail.com>:

Grazie mille per la risposta! PyWPS lo conosco un po, ma anche in questo
caso, non ho idea se è possibile interfacciarsi con lui che poi si
interfaccia con GRASS usando SOAP/WSDL. E' possibile questa cosa?

Non capisco che intendi con interfacciarsi al servizio.
In poche parole: tu mandi una chiamata xml a pyWPS, lui processa la
richiesta e ti restituisce un xml di risposta con i risultati.
Se i risultati sono dei dati geografici (complex data), ti viene
mandato il link al file o (se vettoriali) vengono mandati in xml come
gml.
Leggi la documentazione per maggior dettaglio:
http://pywps.wald.intevation.org/documentation/course/ogc-wps/index.html

In sostanza dalla tua applicazione fai una chiamata xml al servizio e
ricevi una risposta xml da esso: il WSDL ti descrive la combinazione
entrambi i documenti ottenuti dalle chiamate ai GetCapabilities e
DescribeProcess e puoi ottenerlo con pywps con una chiamata del tipo:
http://localhost/cgi-bin/wps?wsdl
Con la chiamata Execute esegui il processo.

Se leggi la documentazione e' tutto descritto bene.

ciao
P

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti

Ho provato al volo a chiamare l’indirizzo http://localhost/cgi-bin/wps?wsdl dove h installato pywps ma mi dice che WSDL non è una keyword valida. Cercando anche sul dito di pywps qualcosa che abbia a che fare con WSDL non trovo nulla.

WSDL mi verrebbe molto comodo perchè usando GSOAP posso auto generare un po di file con tutte le funzioni C++ comode che fanno le varie chiamate SOAP e XML … Se riuscissi a trovare questo sarebbe perfetto.

In alternativa ho visto che zoo-project sta alla base di QGIS…ecco io dovrei fare una cosa simile a QGIS, ma anche in questo caso non ho ben capito come da una mia applicazione in C++ posso chiamare funzioni di ZOO…

Scusate la mia ignoranza ma sono abbastanza nuovo al mondo WebServices in genere

Il giorno 01 aprile 2011 11:01, Paolo Corti <pcorti@gmail.com> ha scritto:

2011/4/1 Davide Perrone <syndacate2004@gmail.com>:

Grazie mille per la risposta! PyWPS lo conosco un po, ma anche in questo
caso, non ho idea se è possibile interfacciarsi con lui che poi si
interfaccia con GRASS usando SOAP/WSDL. E’ possibile questa cosa?

Non capisco che intendi con interfacciarsi al servizio.
In poche parole: tu mandi una chiamata xml a pyWPS, lui processa la
richiesta e ti restituisce un xml di risposta con i risultati.
Se i risultati sono dei dati geografici (complex data), ti viene
mandato il link al file o (se vettoriali) vengono mandati in xml come
gml.
Leggi la documentazione per maggior dettaglio:
http://pywps.wald.intevation.org/documentation/course/ogc-wps/index.html

In sostanza dalla tua applicazione fai una chiamata xml al servizio e
ricevi una risposta xml da esso: il WSDL ti descrive la combinazione
entrambi i documenti ottenuti dalle chiamate ai GetCapabilities e
DescribeProcess e puoi ottenerlo con pywps con una chiamata del tipo:
http://localhost/cgi-bin/wps?wsdl
Con la chiamata Execute esegui il processo.

Se leggi la documentazione e’ tutto descritto bene.

ciao
P

Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti


Davide

2011/4/1 Davide Perrone <syndacate2004@gmail.com>:

Ho provato al volo a chiamare
l'indirizzo http://localhost/cgi-bin/wps?wsdl dove h installato pywps ma mi
dice che WSDL non è una keyword valida. Cercando anche sul dito di pywps
qualcosa che abbia a che fare con WSDL non trovo nulla.
WSDL mi verrebbe molto comodo perchè usando GSOAP posso auto generare un po
di file con tutte le funzioni C++ comode che fanno le varie chiamate SOAP e
XML ... Se riuscissi a trovare questo sarebbe perfetto.
In alternativa ho visto che zoo-project sta alla base di QGIS...ecco io
dovrei fare una cosa simile a QGIS, ma anche in questo caso non ho ben
capito come da una mia applicazione in C++ posso chiamare funzioni di
ZOO....
Scusate la mia ignoranza ma sono abbastanza nuovo al mondo WebServices in
genere

Devi usare la versione in trunk (quindi non l'ultima stable, che ha
quasi 2 anni!).

Ti conviene comunque aspettare la specifica 2.0, che dara' piu' peso
al discorso SOAP/WSDL.
Quindi fossi in te abbandonerei per il momento il discorso SOAP e
procederei nell'implementazione classica del WPS (quindi non usando
GSOAP).
Ti consiglio, comunque, visto il contenuto altamente specifico del tuo
quesito, di avviare la discussione nella mailing list di pyWPS.

Ad ogni modo, ma l'hai visto il wiki? [0]

ciao
P

[0] http://pywps.wikispaces.com/WSDL

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti

Grazie mi era sfuggita quella WIKI. Quindi la cosa che dovrei fare è mandare richieste XML alla pywps che mi risponde sempre con XML. A quel punto io parso il risultato dall’XML se sono dati semplici o se sono dati complessi nell’XML avrò il link per reperirli. Ho capito bene il giro?

Il giorno 01 aprile 2011 14:43, Paolo Corti <pcorti@gmail.com> ha scritto:

2011/4/1 Davide Perrone <syndacate2004@gmail.com>:

Ho provato al volo a chiamare
l’indirizzo http://localhost/cgi-bin/wps?wsdl dove h installato pywps ma mi
dice che WSDL non è una keyword valida. Cercando anche sul dito di pywps
qualcosa che abbia a che fare con WSDL non trovo nulla.
WSDL mi verrebbe molto comodo perchè usando GSOAP posso auto generare un po
di file con tutte le funzioni C++ comode che fanno le varie chiamate SOAP e
XML … Se riuscissi a trovare questo sarebbe perfetto.
In alternativa ho visto che zoo-project sta alla base di QGIS…ecco io
dovrei fare una cosa simile a QGIS, ma anche in questo caso non ho ben
capito come da una mia applicazione in C++ posso chiamare funzioni di
ZOO…
Scusate la mia ignoranza ma sono abbastanza nuovo al mondo WebServices in
genere

Devi usare la versione in trunk (quindi non l’ultima stable, che ha
quasi 2 anni!).

Ti conviene comunque aspettare la specifica 2.0, che dara’ piu’ peso
al discorso SOAP/WSDL.
Quindi fossi in te abbandonerei per il momento il discorso SOAP e
procederei nell’implementazione classica del WPS (quindi non usando
GSOAP).
Ti consiglio, comunque, visto il contenuto altamente specifico del tuo
quesito, di avviare la discussione nella mailing list di pyWPS.

Ad ogni modo, ma l’hai visto il wiki? [0]

ciao
P

[0] http://pywps.wikispaces.com/WSDL

Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti


Davide