[52N Geoprocessingservices] chaining WPS processes

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

[52N Geoprocessingservices] chaining WPS processes

Sebastian Geithner
Hi all,
at first I want to thank you for your great work on such a nice
project. Thank you for this! :)

I have a WPS server up and running and now I would like to chain some
algorithms like in the demo scenario in this report:
http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
But I would like to do so with just posting something like a WPS
request to the server and getting back a GML response. Is there any
implementation for such an issue or do I have to rebuild the request
in another way?

Thanks

Sebastian
_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Theodor Foerster
Sebastian,
WPS interface specification allows you to specify ComplexValueReferences with message bodies. These message bodies can include a WPS request. Thus, chaining of WPS is possible (taken the output of one WPS request as input for another WPS request).

Please note, that you need to be careful with the used schemas, as the format of the output of the one WPS needs to match the input of the other WPS process. For this reason, WPS requests, which are used as further input should be specify RawDataOutput as result. Then your WPS requests returns plain data with no WPS-specific message envelope.

If you have further questions, please let me know.
Best regards

Theodor

--
Dr. Theodor Foerster
Research Associate
Institute for Geoinformatics
Sensor Web, web-based geoprocessing & simulation lab
http://sensorweb.uni-muenster.de
http://ifgi.uni-muenster.de/~tfoer_01


On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner <[hidden email]> wrote:
Hi all,
at first I want to thank you for your great work on such a nice
project. Thank you for this! :)

I have a WPS server up and running and now I would like to chain some
algorithms like in the demo scenario in this report:
http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
But I would like to do so with just posting something like a WPS
request to the server and getting back a GML response. Is there any
implementation for such an issue or do I have to rebuild the request
in another way?

Thanks

Sebastian
_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices


_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Sebastian Geithner
Hi,
I'm still trying to get WPS chaining working. At first I tried it via
a GET request and the official WPS spec document which totally
confused me. Then I realised that there is a corrigendum for the spec
with an actually understandable example. But that won't work ether.
Here is the decoded request from the corrigendum:

http://foo.bar.1/wps?version=1.0.0&request=Execute&service=WPS&
    Identifier=Buffer&
    DataInputs=BufferObject=@xlink:href=http://foo.bar2/wps?Service=WPS&Version=1.0.0&Request=Execute&
        Identifier=ShpConvertToGML&
        DataInputs=ShapefileToConvert=
            @xlink:href=http://foo.bar.3/shapefile@mimeType=text/xml@encoding=utf-8@schema=http://foo.bar/foo.xsd;
    BufferDistance=100@datatype=integer@uom=meter

and mine:

http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
    Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
    DataInputs=data=
        @xlink:href=http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
        Identifier=org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm&
        DataInputs=FEATURES=
            @xlink:href=http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads;
        TOLERANCE=0.5&RawDataOutput=result;
    width=0.0005

(I'm not sure with the semicolons in there) following with encoded DataInputs:

http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
    Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
    DataInputs=data%3D
        %40xlink%3Ahref%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fwps%2FWebProcessingService%3FService%3DWPS%26Version%3D1.0.0%26Request%3DExecute%26
        Identifier%3Dorg.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm%26
        DataInputs%3DFEATURES%253D
            %2540xlink%253Ahref%253Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fows%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%253B
TOLERANCE%253D0.5%2526RawDataOutput%253Dresult%3B
    width%3D0.0005

The strange thing to me is that it possibly isn't the chaining that's
wrong, cause I get the following error message:

<ns:ExceptionReport>
    <ns:Exception exceptionCode="InvalidParameterValue">
        <ns:ExceptionText>Error while accessing the inputValue:
data</ns:ExceptionText>
    </ns:Exception>
    <ns:Exception exceptionCode="JAVA_StackTrace">
        <ns:ExceptionText>
            org.n52.wps.server.request.InputHandler.<init>:112
            org.n52.wps.server.request.ExecuteRequest.call:518
            org.n52.wps.server.request.Request.call:1
            java.util.concurrent.FutureTask$Sync.innerRun:334
            java.util.concurrent.FutureTask.run:166
            java.util.concurrent.ThreadPoolExecutor.runWorker:1110
            java.util.concurrent.ThreadPoolExecutor$Worker.run:603
            java.lang.Thread.run:636
        </ns:ExceptionText>
    </ns:Exception>
    <ns:Exception exceptionCode="JAVA_RootCause"/>
</ns:ExceptionReport>

So I tried a simple unchained one:

http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
    Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
    DataInputs=data=
        @xlink:href=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fservice%3DWFS%26version%3D1.0.0%26request%3DGetFeature%26typeName%3Dtopp%3Atasmania_roads;
    width=20&RawDataOutput=result

with the same error. But POSTing the same WPS request works quiet well:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wps:Execute service="WPS" version="1.0.0"
xmlns:wps="http://www.opengis.net/wps/1.0.0"
xmlns:ows="http://www.opengis.net/ows/1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
        http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd">
        <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
        <wps:DataInputs>
                <wps:Input>
                        <ows:Identifier>data</ows:Identifier>
                        <wps:Reference
schema="http://schemas.opengis.net/gml/2.1.2/feature.xsd"
xlink:href="http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typeName=topp:tasmania_roads"/>
                </wps:Input>
                <wps:Input>
                        <ows:Identifier>width</ows:Identifier>
                        <ows:Title>Distance which people will walk to get to a
playground.</ows:Title>
                        <wps:Data>
                                <wps:LiteralData>20</wps:LiteralData>
                        </wps:Data>
                </wps:Input>
        </wps:DataInputs>
        <wps:ResponseForm>
                <wps:RawDataOutput>
                        <ows:Identifier>result</ows:Identifier>
                </wps:RawDataOutput>
        </wps:ResponseForm>
</wps:Execute>

No my questions ;). What could be the error in the GET request? And is
it possible to turn that GET chaining to a POST based one? If it's
possible can you give me please an example on how it should look like?

I read in the spec that there are three ways to chain. The first one
is known and then there are the other ways:

    * A BPEL engine can be used to orchestrate a service chain that
includes one or more WPS processes.
    * A WPS process can be designed to call a sequence of web services
includingother WPS processes, thus acting as the service chaining
engine.

Is any of this ways included in the 52n-WPS server?

Thanks in advance

Sebastian


2010/8/16 Theodor Foerster <[hidden email]>:

> Sebastian,
> WPS interface specification allows you to specify ComplexValueReferences
> with message bodies. These message bodies can include a WPS request. Thus,
> chaining of WPS is possible (taken the output of one WPS request as input
> for another WPS request).
>
> Please note, that you need to be careful with the used schemas, as the
> format of the output of the one WPS needs to match the input of the other
> WPS process. For this reason, WPS requests, which are used as further input
> should be specify RawDataOutput as result. Then your WPS requests returns
> plain data with no WPS-specific message envelope.
>
> If you have further questions, please let me know.
> Best regards
>
> Theodor
>
> --
> Dr. Theodor Foerster
> Research Associate
> Institute for Geoinformatics
> Sensor Web, web-based geoprocessing & simulation lab
> http://sensorweb.uni-muenster.de
> http://ifgi.uni-muenster.de/~tfoer_01
>
> On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner
> <[hidden email]> wrote:
>>
>> Hi all,
>> at first I want to thank you for your great work on such a nice
>> project. Thank you for this! :)
>>
>> I have a WPS server up and running and now I would like to chain some
>> algorithms like in the demo scenario in this report:
>>
>> http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
>> But I would like to do so with just posting something like a WPS
>> request to the server and getting back a GML response. Is there any
>> implementation for such an issue or do I have to rebuild the request
>> in another way?
>>
>> Thanks
>>
>> Sebastian
>> _______________________________________________
>> Geoprocessingservices mailing list
>> [hidden email]
>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>
>
_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Bastian Schäffer
Hi Sebastian,

either the request is wrong or there is a bug :-)

I suggest to put a brakepoint in the InputHandler and you will directly
see what's wrong.

Concerning the orchestration:
1. BPEL
We have a connector for Oracle BPEL engines and prototypical one for
active bpel.
2. End of the month we will release a component that is capable of
orchestrating WPSs with a very simple script. It is also able to
automatically negotiating schemas etc.
If you are interested, I can give you a preview.

Regards,
Bastian Schäffer

Am 18.08.2010 16:02, schrieb Sebastian Geithner:

> Hi,
> I'm still trying to get WPS chaining working. At first I tried it via
> a GET request and the official WPS spec document which totally
> confused me. Then I realised that there is a corrigendum for the spec
> with an actually understandable example. But that won't work ether.
> Here is the decoded request from the corrigendum:
>
> http://foo.bar.1/wps?version=1.0.0&request=Execute&service=WPS&
>     Identifier=Buffer&
>     DataInputs=BufferObject=@xlink:href=http://foo.bar2/wps?Service=WPS&Version=1.0.0&Request=Execute&
>         Identifier=ShpConvertToGML&
>         DataInputs=ShapefileToConvert=
>             @xlink:href=http://foo.bar.3/shapefile@mimeType=text/xml@encoding=utf-8@schema=http://foo.bar/foo.xsd;
>     BufferDistance=100@datatype=integer@uom=meter
>
> and mine:
>
> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>     DataInputs=data=
>         @xlink:href=http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>         Identifier=org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm&
>         DataInputs=FEATURES=
>             @xlink:href=http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads;
>         TOLERANCE=0.5&RawDataOutput=result;
>     width=0.0005
>
> (I'm not sure with the semicolons in there) following with encoded DataInputs:
>
> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>     DataInputs=data%3D
>         %40xlink%3Ahref%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fwps%2FWebProcessingService%3FService%3DWPS%26Version%3D1.0.0%26Request%3DExecute%26
>         Identifier%3Dorg.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm%26
>         DataInputs%3DFEATURES%253D
>             %2540xlink%253Ahref%253Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fows%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%253B
> TOLERANCE%253D0.5%2526RawDataOutput%253Dresult%3B
>     width%3D0.0005
>
> The strange thing to me is that it possibly isn't the chaining that's
> wrong, cause I get the following error message:
>
> <ns:ExceptionReport>
>     <ns:Exception exceptionCode="InvalidParameterValue">
>         <ns:ExceptionText>Error while accessing the inputValue:
> data</ns:ExceptionText>
>     </ns:Exception>
>     <ns:Exception exceptionCode="JAVA_StackTrace">
>         <ns:ExceptionText>
>             org.n52.wps.server.request.InputHandler.<init>:112
>             org.n52.wps.server.request.ExecuteRequest.call:518
>             org.n52.wps.server.request.Request.call:1
>             java.util.concurrent.FutureTask$Sync.innerRun:334
>             java.util.concurrent.FutureTask.run:166
>             java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>             java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>             java.lang.Thread.run:636
>         </ns:ExceptionText>
>     </ns:Exception>
>     <ns:Exception exceptionCode="JAVA_RootCause"/>
> </ns:ExceptionReport>
>
> So I tried a simple unchained one:
>
> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>     DataInputs=data=
>         @xlink:href=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fservice%3DWFS%26version%3D1.0.0%26request%3DGetFeature%26typeName%3Dtopp%3Atasmania_roads;
>     width=20&RawDataOutput=result
>
> with the same error. But POSTing the same WPS request works quiet well:
>
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <wps:Execute service="WPS" version="1.0.0"
> xmlns:wps="http://www.opengis.net/wps/1.0.0"
> xmlns:ows="http://www.opengis.net/ows/1.1"
> xmlns:xlink="http://www.w3.org/1999/xlink"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
> http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd">
> <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
> <wps:DataInputs>
> <wps:Input>
> <ows:Identifier>data</ows:Identifier>
> <wps:Reference
> schema="http://schemas.opengis.net/gml/2.1.2/feature.xsd"
> xlink:href="http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typeName=topp:tasmania_roads"/>
> </wps:Input>
> <wps:Input>
> <ows:Identifier>width</ows:Identifier>
> <ows:Title>Distance which people will walk to get to a
> playground.</ows:Title>
> <wps:Data>
> <wps:LiteralData>20</wps:LiteralData>
> </wps:Data>
> </wps:Input>
> </wps:DataInputs>
> <wps:ResponseForm>
> <wps:RawDataOutput>
> <ows:Identifier>result</ows:Identifier>
> </wps:RawDataOutput>
> </wps:ResponseForm>
> </wps:Execute>
>
> No my questions ;). What could be the error in the GET request? And is
> it possible to turn that GET chaining to a POST based one? If it's
> possible can you give me please an example on how it should look like?
>
> I read in the spec that there are three ways to chain. The first one
> is known and then there are the other ways:
>
>     * A BPEL engine can be used to orchestrate a service chain that
> includes one or more WPS processes.
>     * A WPS process can be designed to call a sequence of web services
> includingother WPS processes, thus acting as the service chaining
> engine.
>
> Is any of this ways included in the 52n-WPS server?
>
> Thanks in advance
>
> Sebastian
>
>
> 2010/8/16 Theodor Foerster <[hidden email]>:
>> Sebastian,
>> WPS interface specification allows you to specify ComplexValueReferences
>> with message bodies. These message bodies can include a WPS request. Thus,
>> chaining of WPS is possible (taken the output of one WPS request as input
>> for another WPS request).
>>
>> Please note, that you need to be careful with the used schemas, as the
>> format of the output of the one WPS needs to match the input of the other
>> WPS process. For this reason, WPS requests, which are used as further input
>> should be specify RawDataOutput as result. Then your WPS requests returns
>> plain data with no WPS-specific message envelope.
>>
>> If you have further questions, please let me know.
>> Best regards
>>
>> Theodor
>>
>> --
>> Dr. Theodor Foerster
>> Research Associate
>> Institute for Geoinformatics
>> Sensor Web, web-based geoprocessing & simulation lab
>> http://sensorweb.uni-muenster.de
>> http://ifgi.uni-muenster.de/~tfoer_01
>>
>> On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner
>> <[hidden email]> wrote:
>>>
>>> Hi all,
>>> at first I want to thank you for your great work on such a nice
>>> project. Thank you for this! :)
>>>
>>> I have a WPS server up and running and now I would like to chain some
>>> algorithms like in the demo scenario in this report:
>>>
>>> http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
>>> But I would like to do so with just posting something like a WPS
>>> request to the server and getting back a GML response. Is there any
>>> implementation for such an issue or do I have to rebuild the request
>>> in another way?
>>>
>>> Thanks
>>>
>>> Sebastian
>>> _______________________________________________
>>> Geoprocessingservices mailing list
>>> [hidden email]
>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>
>>
> _______________________________________________
> Geoprocessingservices mailing list
> [hidden email]
> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>


--
Bastian Schäffer
Institute for Geoinformatics (IfGI), University of Muenster, Germany
Weseler Str. 253, 48151 Muenster
Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
email: [hidden email]
IfGI-site: http://ifgi.uni-muenster.de



_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Sebastian Geithner
Hi all,
after several hours of trying to chain two processes in a GET request
I came to the conclusion that 52n-WPS server isn't compliant to WPS
1.0.0 in this issue.
Now to the problem: at first, my previous posted input for "data" of
the org.n52.wps.server.algorithm.SimpleBufferAlgorithm wasn't correct.
I had to add the following schema:

    ..@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd..

then I got this error message:

    <ns:ExceptionReport>
        <ns:Exception exceptionCode="NoApplicableCode">
            <ns:ExceptionText>
                Error. No applicable parser found for
http%3A%2F%2Fschemas.opengis.net%2Fgml%2F2.1.2%2Ffeature.xsd,text%2Fxml,UTF-8
            </ns:ExceptionText>
        </ns:Exception>
        <ns:Exception exceptionCode="JAVA_StackTrace">
            <ns:ExceptionText>

org.n52.wps.server.request.InputHandler.handleComplexValueReference:319
                org.n52.wps.server.request.InputHandler.<init>:109
                org.n52.wps.server.request.ExecuteRequest.call:518
                org.n52.wps.server.request.Request.call:1
                java.util.concurrent.FutureTask$Sync.innerRun:334
                java.util.concurrent.FutureTask.run:166
                java.util.concurrent.ThreadPoolExecutor.runWorker:1110
                java.util.concurrent.ThreadPoolExecutor$Worker.run:603
                java.lang.Thread.run:636
            </ns:ExceptionText>
        </ns:Exception>
        <ns:Exception exceptionCode="JAVA_RootCause"/>
    </ns:ExceptionReport>

This means that the server doesn't decode the values of the attribute.
But the spec says (more exact the corrigendum of it [p. 7ff]:
http://portal.opengeospatial.org/files/?artifact_id=32766) that you
have to encode the in/outputs AND the attributes. So it had to look
like this:

encoded WPS request:
http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data%3D%40xlink%3Ahref%3Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fwfs%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%40schema%3Dhttp%253A%252F%252Fschemas.opengis.net%252Fgml%252F2.1.2%252Ffeature.xsd%40mimeType%3Dtext%252Fxml%40encoding%3DUTF-8%3Bwidth%3D20&RawDataOutput=result

decoded WPS request:
http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data=@xlink:href=http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd@mimeType=text/xml@encoding=UTF-8;width=20&RawDataOutput=result

If I now omit the encoding of the attribute values it works!

Regards

Sebastian


2010/8/18 Bastian Schäffer <[hidden email]>:

> Hi Sebastian,
>
> either the request is wrong or there is a bug :-)
>
> I suggest to put a brakepoint in the InputHandler and you will directly
> see what's wrong.
>
> Concerning the orchestration:
> 1. BPEL
> We have a connector for Oracle BPEL engines and prototypical one for
> active bpel.
> 2. End of the month we will release a component that is capable of
> orchestrating WPSs with a very simple script. It is also able to
> automatically negotiating schemas etc.
> If you are interested, I can give you a preview.
>
> Regards,
> Bastian Schäffer
>
> Am 18.08.2010 16:02, schrieb Sebastian Geithner:
>> Hi,
>> I'm still trying to get WPS chaining working. At first I tried it via
>> a GET request and the official WPS spec document which totally
>> confused me. Then I realised that there is a corrigendum for the spec
>> with an actually understandable example. But that won't work ether.
>> Here is the decoded request from the corrigendum:
>>
>> http://foo.bar.1/wps?version=1.0.0&request=Execute&service=WPS&
>>     Identifier=Buffer&
>>     DataInputs=BufferObject=@xlink:href=http://foo.bar2/wps?Service=WPS&Version=1.0.0&Request=Execute&
>>         Identifier=ShpConvertToGML&
>>         DataInputs=ShapefileToConvert=
>>             @xlink:href=http://foo.bar.3/shapefile@mimeType=text/xml@encoding=utf-8@schema=http://foo.bar/foo.xsd;
>>     BufferDistance=100@datatype=integer@uom=meter
>>
>> and mine:
>>
>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>     DataInputs=data=
>>         @xlink:href=http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>         Identifier=org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm&
>>         DataInputs=FEATURES=
>>             @xlink:href=http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads;
>>         TOLERANCE=0.5&RawDataOutput=result;
>>     width=0.0005
>>
>> (I'm not sure with the semicolons in there) following with encoded DataInputs:
>>
>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>     DataInputs=data%3D
>>         %40xlink%3Ahref%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fwps%2FWebProcessingService%3FService%3DWPS%26Version%3D1.0.0%26Request%3DExecute%26
>>         Identifier%3Dorg.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm%26
>>         DataInputs%3DFEATURES%253D
>>             %2540xlink%253Ahref%253Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fows%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%253B
>> TOLERANCE%253D0.5%2526RawDataOutput%253Dresult%3B
>>     width%3D0.0005
>>
>> The strange thing to me is that it possibly isn't the chaining that's
>> wrong, cause I get the following error message:
>>
>> <ns:ExceptionReport>
>>     <ns:Exception exceptionCode="InvalidParameterValue">
>>         <ns:ExceptionText>Error while accessing the inputValue:
>> data</ns:ExceptionText>
>>     </ns:Exception>
>>     <ns:Exception exceptionCode="JAVA_StackTrace">
>>         <ns:ExceptionText>
>>             org.n52.wps.server.request.InputHandler.<init>:112
>>             org.n52.wps.server.request.ExecuteRequest.call:518
>>             org.n52.wps.server.request.Request.call:1
>>             java.util.concurrent.FutureTask$Sync.innerRun:334
>>             java.util.concurrent.FutureTask.run:166
>>             java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>             java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>             java.lang.Thread.run:636
>>         </ns:ExceptionText>
>>     </ns:Exception>
>>     <ns:Exception exceptionCode="JAVA_RootCause"/>
>> </ns:ExceptionReport>
>>
>> So I tried a simple unchained one:
>>
>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>     DataInputs=data=
>>         @xlink:href=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fservice%3DWFS%26version%3D1.0.0%26request%3DGetFeature%26typeName%3Dtopp%3Atasmania_roads;
>>     width=20&RawDataOutput=result
>>
>> with the same error. But POSTing the same WPS request works quiet well:
>>
>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> <wps:Execute service="WPS" version="1.0.0"
>> xmlns:wps="http://www.opengis.net/wps/1.0.0"
>> xmlns:ows="http://www.opengis.net/ows/1.1"
>> xmlns:xlink="http://www.w3.org/1999/xlink"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
>>       http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd">
>>       <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
>>       <wps:DataInputs>
>>               <wps:Input>
>>                       <ows:Identifier>data</ows:Identifier>
>>                       <wps:Reference
>> schema="http://schemas.opengis.net/gml/2.1.2/feature.xsd"
>> xlink:href="http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typeName=topp:tasmania_roads"/>
>>               </wps:Input>
>>               <wps:Input>
>>                       <ows:Identifier>width</ows:Identifier>
>>                       <ows:Title>Distance which people will walk to get to a
>> playground.</ows:Title>
>>                       <wps:Data>
>>                               <wps:LiteralData>20</wps:LiteralData>
>>                       </wps:Data>
>>               </wps:Input>
>>       </wps:DataInputs>
>>       <wps:ResponseForm>
>>               <wps:RawDataOutput>
>>                       <ows:Identifier>result</ows:Identifier>
>>               </wps:RawDataOutput>
>>       </wps:ResponseForm>
>> </wps:Execute>
>>
>> No my questions ;). What could be the error in the GET request? And is
>> it possible to turn that GET chaining to a POST based one? If it's
>> possible can you give me please an example on how it should look like?
>>
>> I read in the spec that there are three ways to chain. The first one
>> is known and then there are the other ways:
>>
>>     * A BPEL engine can be used to orchestrate a service chain that
>> includes one or more WPS processes.
>>     * A WPS process can be designed to call a sequence of web services
>> includingother WPS processes, thus acting as the service chaining
>> engine.
>>
>> Is any of this ways included in the 52n-WPS server?
>>
>> Thanks in advance
>>
>> Sebastian
>>
>>
>> 2010/8/16 Theodor Foerster <[hidden email]>:
>>> Sebastian,
>>> WPS interface specification allows you to specify ComplexValueReferences
>>> with message bodies. These message bodies can include a WPS request. Thus,
>>> chaining of WPS is possible (taken the output of one WPS request as input
>>> for another WPS request).
>>>
>>> Please note, that you need to be careful with the used schemas, as the
>>> format of the output of the one WPS needs to match the input of the other
>>> WPS process. For this reason, WPS requests, which are used as further input
>>> should be specify RawDataOutput as result. Then your WPS requests returns
>>> plain data with no WPS-specific message envelope.
>>>
>>> If you have further questions, please let me know.
>>> Best regards
>>>
>>> Theodor
>>>
>>> --
>>> Dr. Theodor Foerster
>>> Research Associate
>>> Institute for Geoinformatics
>>> Sensor Web, web-based geoprocessing & simulation lab
>>> http://sensorweb.uni-muenster.de
>>> http://ifgi.uni-muenster.de/~tfoer_01
>>>
>>> On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner
>>> <[hidden email]> wrote:
>>>>
>>>> Hi all,
>>>> at first I want to thank you for your great work on such a nice
>>>> project. Thank you for this! :)
>>>>
>>>> I have a WPS server up and running and now I would like to chain some
>>>> algorithms like in the demo scenario in this report:
>>>>
>>>> http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
>>>> But I would like to do so with just posting something like a WPS
>>>> request to the server and getting back a GML response. Is there any
>>>> implementation for such an issue or do I have to rebuild the request
>>>> in another way?
>>>>
>>>> Thanks
>>>>
>>>> Sebastian
>>>> _______________________________________________
>>>> Geoprocessingservices mailing list
>>>> [hidden email]
>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>
>>>
>> _______________________________________________
>> Geoprocessingservices mailing list
>> [hidden email]
>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>
>
>
> --
> Bastian Schäffer
> Institute for Geoinformatics (IfGI), University of Muenster, Germany
> Weseler Str. 253, 48151 Muenster
> Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
> email: [hidden email]
> IfGI-site: http://ifgi.uni-muenster.de
>
>
>
>
_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Sebastian Geithner
Hi,
I take back what I wrote in my last mail!

After the mentioned hours of messing around with trying to chain WPS
processes, I realized that it was not a chain! :(
It is a simple buffer algorithm that I executed.

Sorry if I have confused anybody!

Best Regards

Sebastian


2010/8/19 Sebastian Geithner <[hidden email]>:

> Hi all,
> after several hours of trying to chain two processes in a GET request
> I came to the conclusion that 52n-WPS server isn't compliant to WPS
> 1.0.0 in this issue.
> Now to the problem: at first, my previous posted input for "data" of
> the org.n52.wps.server.algorithm.SimpleBufferAlgorithm wasn't correct.
> I had to add the following schema:
>
>    ..@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd..
>
> then I got this error message:
>
>    <ns:ExceptionReport>
>        <ns:Exception exceptionCode="NoApplicableCode">
>            <ns:ExceptionText>
>                Error. No applicable parser found for
> http%3A%2F%2Fschemas.opengis.net%2Fgml%2F2.1.2%2Ffeature.xsd,text%2Fxml,UTF-8
>            </ns:ExceptionText>
>        </ns:Exception>
>        <ns:Exception exceptionCode="JAVA_StackTrace">
>            <ns:ExceptionText>
>
> org.n52.wps.server.request.InputHandler.handleComplexValueReference:319
>                org.n52.wps.server.request.InputHandler.<init>:109
>                org.n52.wps.server.request.ExecuteRequest.call:518
>                org.n52.wps.server.request.Request.call:1
>                java.util.concurrent.FutureTask$Sync.innerRun:334
>                java.util.concurrent.FutureTask.run:166
>                java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>                java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>                java.lang.Thread.run:636
>            </ns:ExceptionText>
>        </ns:Exception>
>        <ns:Exception exceptionCode="JAVA_RootCause"/>
>    </ns:ExceptionReport>
>
> This means that the server doesn't decode the values of the attribute.
> But the spec says (more exact the corrigendum of it [p. 7ff]:
> http://portal.opengeospatial.org/files/?artifact_id=32766) that you
> have to encode the in/outputs AND the attributes. So it had to look
> like this:
>
> encoded WPS request:
> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data%3D%40xlink%3Ahref%3Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fwfs%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%40schema%3Dhttp%253A%252F%252Fschemas.opengis.net%252Fgml%252F2.1.2%252Ffeature.xsd%40mimeType%3Dtext%252Fxml%40encoding%3DUTF-8%3Bwidth%3D20&RawDataOutput=result
>
> decoded WPS request:
> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data=@xlink:href=http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd@mimeType=text/xml@encoding=UTF-8;width=20&RawDataOutput=result
>
> If I now omit the encoding of the attribute values it works!
>
> Regards
>
> Sebastian
>
>
> 2010/8/18 Bastian Schäffer <[hidden email]>:
>> Hi Sebastian,
>>
>> either the request is wrong or there is a bug :-)
>>
>> I suggest to put a brakepoint in the InputHandler and you will directly
>> see what's wrong.
>>
>> Concerning the orchestration:
>> 1. BPEL
>> We have a connector for Oracle BPEL engines and prototypical one for
>> active bpel.
>> 2. End of the month we will release a component that is capable of
>> orchestrating WPSs with a very simple script. It is also able to
>> automatically negotiating schemas etc.
>> If you are interested, I can give you a preview.
>>
>> Regards,
>> Bastian Schäffer
>>
>> Am 18.08.2010 16:02, schrieb Sebastian Geithner:
>>> Hi,
>>> I'm still trying to get WPS chaining working. At first I tried it via
>>> a GET request and the official WPS spec document which totally
>>> confused me. Then I realised that there is a corrigendum for the spec
>>> with an actually understandable example. But that won't work ether.
>>> Here is the decoded request from the corrigendum:
>>>
>>> http://foo.bar.1/wps?version=1.0.0&request=Execute&service=WPS&
>>>     Identifier=Buffer&
>>>     DataInputs=BufferObject=@xlink:href=http://foo.bar2/wps?Service=WPS&Version=1.0.0&Request=Execute&
>>>         Identifier=ShpConvertToGML&
>>>         DataInputs=ShapefileToConvert=
>>>             @xlink:href=http://foo.bar.3/shapefile@mimeType=text/xml@encoding=utf-8@schema=http://foo.bar/foo.xsd;
>>>     BufferDistance=100@datatype=integer@uom=meter
>>>
>>> and mine:
>>>
>>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>     DataInputs=data=
>>>         @xlink:href=http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>>         Identifier=org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm&
>>>         DataInputs=FEATURES=
>>>             @xlink:href=http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads;
>>>         TOLERANCE=0.5&RawDataOutput=result;
>>>     width=0.0005
>>>
>>> (I'm not sure with the semicolons in there) following with encoded DataInputs:
>>>
>>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>     DataInputs=data%3D
>>>         %40xlink%3Ahref%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fwps%2FWebProcessingService%3FService%3DWPS%26Version%3D1.0.0%26Request%3DExecute%26
>>>         Identifier%3Dorg.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm%26
>>>         DataInputs%3DFEATURES%253D
>>>             %2540xlink%253Ahref%253Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fows%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%253B
>>> TOLERANCE%253D0.5%2526RawDataOutput%253Dresult%3B
>>>     width%3D0.0005
>>>
>>> The strange thing to me is that it possibly isn't the chaining that's
>>> wrong, cause I get the following error message:
>>>
>>> <ns:ExceptionReport>
>>>     <ns:Exception exceptionCode="InvalidParameterValue">
>>>         <ns:ExceptionText>Error while accessing the inputValue:
>>> data</ns:ExceptionText>
>>>     </ns:Exception>
>>>     <ns:Exception exceptionCode="JAVA_StackTrace">
>>>         <ns:ExceptionText>
>>>             org.n52.wps.server.request.InputHandler.<init>:112
>>>             org.n52.wps.server.request.ExecuteRequest.call:518
>>>             org.n52.wps.server.request.Request.call:1
>>>             java.util.concurrent.FutureTask$Sync.innerRun:334
>>>             java.util.concurrent.FutureTask.run:166
>>>             java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>>             java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>>             java.lang.Thread.run:636
>>>         </ns:ExceptionText>
>>>     </ns:Exception>
>>>     <ns:Exception exceptionCode="JAVA_RootCause"/>
>>> </ns:ExceptionReport>
>>>
>>> So I tried a simple unchained one:
>>>
>>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>     DataInputs=data=
>>>         @xlink:href=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fservice%3DWFS%26version%3D1.0.0%26request%3DGetFeature%26typeName%3Dtopp%3Atasmania_roads;
>>>     width=20&RawDataOutput=result
>>>
>>> with the same error. But POSTing the same WPS request works quiet well:
>>>
>>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>>> <wps:Execute service="WPS" version="1.0.0"
>>> xmlns:wps="http://www.opengis.net/wps/1.0.0"
>>> xmlns:ows="http://www.opengis.net/ows/1.1"
>>> xmlns:xlink="http://www.w3.org/1999/xlink"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
>>>       http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd">
>>>       <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
>>>       <wps:DataInputs>
>>>               <wps:Input>
>>>                       <ows:Identifier>data</ows:Identifier>
>>>                       <wps:Reference
>>> schema="http://schemas.opengis.net/gml/2.1.2/feature.xsd"
>>> xlink:href="http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typeName=topp:tasmania_roads"/>
>>>               </wps:Input>
>>>               <wps:Input>
>>>                       <ows:Identifier>width</ows:Identifier>
>>>                       <ows:Title>Distance which people will walk to get to a
>>> playground.</ows:Title>
>>>                       <wps:Data>
>>>                               <wps:LiteralData>20</wps:LiteralData>
>>>                       </wps:Data>
>>>               </wps:Input>
>>>       </wps:DataInputs>
>>>       <wps:ResponseForm>
>>>               <wps:RawDataOutput>
>>>                       <ows:Identifier>result</ows:Identifier>
>>>               </wps:RawDataOutput>
>>>       </wps:ResponseForm>
>>> </wps:Execute>
>>>
>>> No my questions ;). What could be the error in the GET request? And is
>>> it possible to turn that GET chaining to a POST based one? If it's
>>> possible can you give me please an example on how it should look like?
>>>
>>> I read in the spec that there are three ways to chain. The first one
>>> is known and then there are the other ways:
>>>
>>>     * A BPEL engine can be used to orchestrate a service chain that
>>> includes one or more WPS processes.
>>>     * A WPS process can be designed to call a sequence of web services
>>> includingother WPS processes, thus acting as the service chaining
>>> engine.
>>>
>>> Is any of this ways included in the 52n-WPS server?
>>>
>>> Thanks in advance
>>>
>>> Sebastian
>>>
>>>
>>> 2010/8/16 Theodor Foerster <[hidden email]>:
>>>> Sebastian,
>>>> WPS interface specification allows you to specify ComplexValueReferences
>>>> with message bodies. These message bodies can include a WPS request. Thus,
>>>> chaining of WPS is possible (taken the output of one WPS request as input
>>>> for another WPS request).
>>>>
>>>> Please note, that you need to be careful with the used schemas, as the
>>>> format of the output of the one WPS needs to match the input of the other
>>>> WPS process. For this reason, WPS requests, which are used as further input
>>>> should be specify RawDataOutput as result. Then your WPS requests returns
>>>> plain data with no WPS-specific message envelope.
>>>>
>>>> If you have further questions, please let me know.
>>>> Best regards
>>>>
>>>> Theodor
>>>>
>>>> --
>>>> Dr. Theodor Foerster
>>>> Research Associate
>>>> Institute for Geoinformatics
>>>> Sensor Web, web-based geoprocessing & simulation lab
>>>> http://sensorweb.uni-muenster.de
>>>> http://ifgi.uni-muenster.de/~tfoer_01
>>>>
>>>> On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner
>>>> <[hidden email]> wrote:
>>>>>
>>>>> Hi all,
>>>>> at first I want to thank you for your great work on such a nice
>>>>> project. Thank you for this! :)
>>>>>
>>>>> I have a WPS server up and running and now I would like to chain some
>>>>> algorithms like in the demo scenario in this report:
>>>>>
>>>>> http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
>>>>> But I would like to do so with just posting something like a WPS
>>>>> request to the server and getting back a GML response. Is there any
>>>>> implementation for such an issue or do I have to rebuild the request
>>>>> in another way?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Sebastian
>>>>> _______________________________________________
>>>>> Geoprocessingservices mailing list
>>>>> [hidden email]
>>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>>
>>>>
>>> _______________________________________________
>>> Geoprocessingservices mailing list
>>> [hidden email]
>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>
>>
>>
>> --
>> Bastian Schäffer
>> Institute for Geoinformatics (IfGI), University of Muenster, Germany
>> Weseler Str. 253, 48151 Muenster
>> Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
>> email: [hidden email]
>> IfGI-site: http://ifgi.uni-muenster.de
>>
>>
>>
>>
>
_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Bastian Schäffer
Hi Sebastian,

I am pretty busy right now. Will double check over the weekend.

Regards,
Bastian

Am 20.08.2010 08:32, schrieb Sebastian Geithner:

> Hi,
> I take back what I wrote in my last mail!
>
> After the mentioned hours of messing around with trying to chain WPS
> processes, I realized that it was not a chain! :(
> It is a simple buffer algorithm that I executed.
>
> Sorry if I have confused anybody!
>
> Best Regards
>
> Sebastian
>
>
> 2010/8/19 Sebastian Geithner <[hidden email]>:
>> Hi all,
>> after several hours of trying to chain two processes in a GET request
>> I came to the conclusion that 52n-WPS server isn't compliant to WPS
>> 1.0.0 in this issue.
>> Now to the problem: at first, my previous posted input for "data" of
>> the org.n52.wps.server.algorithm.SimpleBufferAlgorithm wasn't correct.
>> I had to add the following schema:
>>
>>    ..@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd..
>>
>> then I got this error message:
>>
>>    <ns:ExceptionReport>
>>        <ns:Exception exceptionCode="NoApplicableCode">
>>            <ns:ExceptionText>
>>                Error. No applicable parser found for
>> http%3A%2F%2Fschemas.opengis.net%2Fgml%2F2.1.2%2Ffeature.xsd,text%2Fxml,UTF-8
>>            </ns:ExceptionText>
>>        </ns:Exception>
>>        <ns:Exception exceptionCode="JAVA_StackTrace">
>>            <ns:ExceptionText>
>>
>> org.n52.wps.server.request.InputHandler.handleComplexValueReference:319
>>                org.n52.wps.server.request.InputHandler.<init>:109
>>                org.n52.wps.server.request.ExecuteRequest.call:518
>>                org.n52.wps.server.request.Request.call:1
>>                java.util.concurrent.FutureTask$Sync.innerRun:334
>>                java.util.concurrent.FutureTask.run:166
>>                java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>                java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>                java.lang.Thread.run:636
>>            </ns:ExceptionText>
>>        </ns:Exception>
>>        <ns:Exception exceptionCode="JAVA_RootCause"/>
>>    </ns:ExceptionReport>
>>
>> This means that the server doesn't decode the values of the attribute.
>> But the spec says (more exact the corrigendum of it [p. 7ff]:
>> http://portal.opengeospatial.org/files/?artifact_id=32766) that you
>> have to encode the in/outputs AND the attributes. So it had to look
>> like this:
>>
>> encoded WPS request:
>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data%3D%40xlink%3Ahref%3Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fwfs%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%40schema%3Dhttp%253A%252F%252Fschemas.opengis.net%252Fgml%252F2.1.2%252Ffeature.xsd%40mimeType%3Dtext%252Fxml%40encoding%3DUTF-8%3Bwidth%3D20&RawDataOutput=result
>>
>> decoded WPS request:
>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data=@xlink:href=http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd@mimeType=text/xml@encoding=UTF-8;width=20&RawDataOutput=result
>>
>> If I now omit the encoding of the attribute values it works!
>>
>> Regards
>>
>> Sebastian
>>
>>
>> 2010/8/18 Bastian Schäffer <[hidden email]>:
>>> Hi Sebastian,
>>>
>>> either the request is wrong or there is a bug :-)
>>>
>>> I suggest to put a brakepoint in the InputHandler and you will directly
>>> see what's wrong.
>>>
>>> Concerning the orchestration:
>>> 1. BPEL
>>> We have a connector for Oracle BPEL engines and prototypical one for
>>> active bpel.
>>> 2. End of the month we will release a component that is capable of
>>> orchestrating WPSs with a very simple script. It is also able to
>>> automatically negotiating schemas etc.
>>> If you are interested, I can give you a preview.
>>>
>>> Regards,
>>> Bastian Schäffer
>>>
>>> Am 18.08.2010 16:02, schrieb Sebastian Geithner:
>>>> Hi,
>>>> I'm still trying to get WPS chaining working. At first I tried it via
>>>> a GET request and the official WPS spec document which totally
>>>> confused me. Then I realised that there is a corrigendum for the spec
>>>> with an actually understandable example. But that won't work ether.
>>>> Here is the decoded request from the corrigendum:
>>>>
>>>> http://foo.bar.1/wps?version=1.0.0&request=Execute&service=WPS&
>>>>     Identifier=Buffer&
>>>>     DataInputs=BufferObject=@xlink:href=http://foo.bar2/wps?Service=WPS&Version=1.0.0&Request=Execute&
>>>>         Identifier=ShpConvertToGML&
>>>>         DataInputs=ShapefileToConvert=
>>>>             @xlink:href=http://foo.bar.3/shapefile@mimeType=text/xml@encoding=utf-8@schema=http://foo.bar/foo.xsd;
>>>>     BufferDistance=100@datatype=integer@uom=meter
>>>>
>>>> and mine:
>>>>
>>>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>     DataInputs=data=
>>>>         @xlink:href=http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>>>         Identifier=org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm&
>>>>         DataInputs=FEATURES=
>>>>             @xlink:href=http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads;
>>>>         TOLERANCE=0.5&RawDataOutput=result;
>>>>     width=0.0005
>>>>
>>>> (I'm not sure with the semicolons in there) following with encoded DataInputs:
>>>>
>>>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>     DataInputs=data%3D
>>>>         %40xlink%3Ahref%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fwps%2FWebProcessingService%3FService%3DWPS%26Version%3D1.0.0%26Request%3DExecute%26
>>>>         Identifier%3Dorg.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm%26
>>>>         DataInputs%3DFEATURES%253D
>>>>             %2540xlink%253Ahref%253Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fows%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%253B
>>>> TOLERANCE%253D0.5%2526RawDataOutput%253Dresult%3B
>>>>     width%3D0.0005
>>>>
>>>> The strange thing to me is that it possibly isn't the chaining that's
>>>> wrong, cause I get the following error message:
>>>>
>>>> <ns:ExceptionReport>
>>>>     <ns:Exception exceptionCode="InvalidParameterValue">
>>>>         <ns:ExceptionText>Error while accessing the inputValue:
>>>> data</ns:ExceptionText>
>>>>     </ns:Exception>
>>>>     <ns:Exception exceptionCode="JAVA_StackTrace">
>>>>         <ns:ExceptionText>
>>>>             org.n52.wps.server.request.InputHandler.<init>:112
>>>>             org.n52.wps.server.request.ExecuteRequest.call:518
>>>>             org.n52.wps.server.request.Request.call:1
>>>>             java.util.concurrent.FutureTask$Sync.innerRun:334
>>>>             java.util.concurrent.FutureTask.run:166
>>>>             java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>>>             java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>>>             java.lang.Thread.run:636
>>>>         </ns:ExceptionText>
>>>>     </ns:Exception>
>>>>     <ns:Exception exceptionCode="JAVA_RootCause"/>
>>>> </ns:ExceptionReport>
>>>>
>>>> So I tried a simple unchained one:
>>>>
>>>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>     DataInputs=data=
>>>>         @xlink:href=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fservice%3DWFS%26version%3D1.0.0%26request%3DGetFeature%26typeName%3Dtopp%3Atasmania_roads;
>>>>     width=20&RawDataOutput=result
>>>>
>>>> with the same error. But POSTing the same WPS request works quiet well:
>>>>
>>>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>>>> <wps:Execute service="WPS" version="1.0.0"
>>>> xmlns:wps="http://www.opengis.net/wps/1.0.0"
>>>> xmlns:ows="http://www.opengis.net/ows/1.1"
>>>> xmlns:xlink="http://www.w3.org/1999/xlink"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
>>>>       http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd">
>>>>       <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
>>>>       <wps:DataInputs>
>>>>               <wps:Input>
>>>>                       <ows:Identifier>data</ows:Identifier>
>>>>                       <wps:Reference
>>>> schema="http://schemas.opengis.net/gml/2.1.2/feature.xsd"
>>>> xlink:href="http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typeName=topp:tasmania_roads"/>
>>>>               </wps:Input>
>>>>               <wps:Input>
>>>>                       <ows:Identifier>width</ows:Identifier>
>>>>                       <ows:Title>Distance which people will walk to get to a
>>>> playground.</ows:Title>
>>>>                       <wps:Data>
>>>>                               <wps:LiteralData>20</wps:LiteralData>
>>>>                       </wps:Data>
>>>>               </wps:Input>
>>>>       </wps:DataInputs>
>>>>       <wps:ResponseForm>
>>>>               <wps:RawDataOutput>
>>>>                       <ows:Identifier>result</ows:Identifier>
>>>>               </wps:RawDataOutput>
>>>>       </wps:ResponseForm>
>>>> </wps:Execute>
>>>>
>>>> No my questions ;). What could be the error in the GET request? And is
>>>> it possible to turn that GET chaining to a POST based one? If it's
>>>> possible can you give me please an example on how it should look like?
>>>>
>>>> I read in the spec that there are three ways to chain. The first one
>>>> is known and then there are the other ways:
>>>>
>>>>     * A BPEL engine can be used to orchestrate a service chain that
>>>> includes one or more WPS processes.
>>>>     * A WPS process can be designed to call a sequence of web services
>>>> includingother WPS processes, thus acting as the service chaining
>>>> engine.
>>>>
>>>> Is any of this ways included in the 52n-WPS server?
>>>>
>>>> Thanks in advance
>>>>
>>>> Sebastian
>>>>
>>>>
>>>> 2010/8/16 Theodor Foerster <[hidden email]>:
>>>>> Sebastian,
>>>>> WPS interface specification allows you to specify ComplexValueReferences
>>>>> with message bodies. These message bodies can include a WPS request. Thus,
>>>>> chaining of WPS is possible (taken the output of one WPS request as input
>>>>> for another WPS request).
>>>>>
>>>>> Please note, that you need to be careful with the used schemas, as the
>>>>> format of the output of the one WPS needs to match the input of the other
>>>>> WPS process. For this reason, WPS requests, which are used as further input
>>>>> should be specify RawDataOutput as result. Then your WPS requests returns
>>>>> plain data with no WPS-specific message envelope.
>>>>>
>>>>> If you have further questions, please let me know.
>>>>> Best regards
>>>>>
>>>>> Theodor
>>>>>
>>>>> --
>>>>> Dr. Theodor Foerster
>>>>> Research Associate
>>>>> Institute for Geoinformatics
>>>>> Sensor Web, web-based geoprocessing & simulation lab
>>>>> http://sensorweb.uni-muenster.de
>>>>> http://ifgi.uni-muenster.de/~tfoer_01
>>>>>
>>>>> On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner
>>>>> <[hidden email]> wrote:
>>>>>>
>>>>>> Hi all,
>>>>>> at first I want to thank you for your great work on such a nice
>>>>>> project. Thank you for this! :)
>>>>>>
>>>>>> I have a WPS server up and running and now I would like to chain some
>>>>>> algorithms like in the demo scenario in this report:
>>>>>>
>>>>>> http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
>>>>>> But I would like to do so with just posting something like a WPS
>>>>>> request to the server and getting back a GML response. Is there any
>>>>>> implementation for such an issue or do I have to rebuild the request
>>>>>> in another way?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Sebastian
>>>>>> _______________________________________________
>>>>>> Geoprocessingservices mailing list
>>>>>> [hidden email]
>>>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Geoprocessingservices mailing list
>>>> [hidden email]
>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>>
>>>
>>>
>>> --
>>> Bastian Schäffer
>>> Institute for Geoinformatics (IfGI), University of Muenster, Germany
>>> Weseler Str. 253, 48151 Muenster
>>> Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
>>> email: [hidden email]
>>> IfGI-site: http://ifgi.uni-muenster.de
>>>
>>>
>>>
>>>
>>
>


--
Bastian Schäffer
Institute for Geoinformatics (IfGI), University of Muenster, Germany
Weseler Str. 253, 48151 Muenster
Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
email: [hidden email]
IfGI-site: http://ifgi.uni-muenster.de



_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Sebastian Geithner
In reply to this post by Sebastian Geithner
I don't get it. Why can't I trust myself. It looks like I thought I
messed up but I didn't. The apology was premature.
Sorry for mixing up the not mixed up.

If you are still not confused, I'm sorry, too.

Sebastian

2010/8/20 Sebastian Geithner <[hidden email]>:

> Hi,
> I take back what I wrote in my last mail!
>
> After the mentioned hours of messing around with trying to chain WPS
> processes, I realized that it was not a chain! :(
> It is a simple buffer algorithm that I executed.
>
> Sorry if I have confused anybody!
>
> Best Regards
>
> Sebastian
>
>
> 2010/8/19 Sebastian Geithner <[hidden email]>:
>> Hi all,
>> after several hours of trying to chain two processes in a GET request
>> I came to the conclusion that 52n-WPS server isn't compliant to WPS
>> 1.0.0 in this issue.
>> Now to the problem: at first, my previous posted input for "data" of
>> the org.n52.wps.server.algorithm.SimpleBufferAlgorithm wasn't correct.
>> I had to add the following schema:
>>
>>    ..@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd..
>>
>> then I got this error message:
>>
>>    <ns:ExceptionReport>
>>        <ns:Exception exceptionCode="NoApplicableCode">
>>            <ns:ExceptionText>
>>                Error. No applicable parser found for
>> http%3A%2F%2Fschemas.opengis.net%2Fgml%2F2.1.2%2Ffeature.xsd,text%2Fxml,UTF-8
>>            </ns:ExceptionText>
>>        </ns:Exception>
>>        <ns:Exception exceptionCode="JAVA_StackTrace">
>>            <ns:ExceptionText>
>>
>> org.n52.wps.server.request.InputHandler.handleComplexValueReference:319
>>                org.n52.wps.server.request.InputHandler.<init>:109
>>                org.n52.wps.server.request.ExecuteRequest.call:518
>>                org.n52.wps.server.request.Request.call:1
>>                java.util.concurrent.FutureTask$Sync.innerRun:334
>>                java.util.concurrent.FutureTask.run:166
>>                java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>                java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>                java.lang.Thread.run:636
>>            </ns:ExceptionText>
>>        </ns:Exception>
>>        <ns:Exception exceptionCode="JAVA_RootCause"/>
>>    </ns:ExceptionReport>
>>
>> This means that the server doesn't decode the values of the attribute.
>> But the spec says (more exact the corrigendum of it [p. 7ff]:
>> http://portal.opengeospatial.org/files/?artifact_id=32766) that you
>> have to encode the in/outputs AND the attributes. So it had to look
>> like this:
>>
>> encoded WPS request:
>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data%3D%40xlink%3Ahref%3Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fwfs%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%40schema%3Dhttp%253A%252F%252Fschemas.opengis.net%252Fgml%252F2.1.2%252Ffeature.xsd%40mimeType%3Dtext%252Fxml%40encoding%3DUTF-8%3Bwidth%3D20&RawDataOutput=result
>>
>> decoded WPS request:
>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data=@xlink:href=http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd@mimeType=text/xml@encoding=UTF-8;width=20&RawDataOutput=result
>>
>> If I now omit the encoding of the attribute values it works!
>>
>> Regards
>>
>> Sebastian
>>
>>
>> 2010/8/18 Bastian Schäffer <[hidden email]>:
>>> Hi Sebastian,
>>>
>>> either the request is wrong or there is a bug :-)
>>>
>>> I suggest to put a brakepoint in the InputHandler and you will directly
>>> see what's wrong.
>>>
>>> Concerning the orchestration:
>>> 1. BPEL
>>> We have a connector for Oracle BPEL engines and prototypical one for
>>> active bpel.
>>> 2. End of the month we will release a component that is capable of
>>> orchestrating WPSs with a very simple script. It is also able to
>>> automatically negotiating schemas etc.
>>> If you are interested, I can give you a preview.
>>>
>>> Regards,
>>> Bastian Schäffer
>>>
>>> Am 18.08.2010 16:02, schrieb Sebastian Geithner:
>>>> Hi,
>>>> I'm still trying to get WPS chaining working. At first I tried it via
>>>> a GET request and the official WPS spec document which totally
>>>> confused me. Then I realised that there is a corrigendum for the spec
>>>> with an actually understandable example. But that won't work ether.
>>>> Here is the decoded request from the corrigendum:
>>>>
>>>> http://foo.bar.1/wps?version=1.0.0&request=Execute&service=WPS&
>>>>     Identifier=Buffer&
>>>>     DataInputs=BufferObject=@xlink:href=http://foo.bar2/wps?Service=WPS&Version=1.0.0&Request=Execute&
>>>>         Identifier=ShpConvertToGML&
>>>>         DataInputs=ShapefileToConvert=
>>>>             @xlink:href=http://foo.bar.3/shapefile@mimeType=text/xml@encoding=utf-8@schema=http://foo.bar/foo.xsd;
>>>>     BufferDistance=100@datatype=integer@uom=meter
>>>>
>>>> and mine:
>>>>
>>>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>     DataInputs=data=
>>>>         @xlink:href=http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>>>         Identifier=org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm&
>>>>         DataInputs=FEATURES=
>>>>             @xlink:href=http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads;
>>>>         TOLERANCE=0.5&RawDataOutput=result;
>>>>     width=0.0005
>>>>
>>>> (I'm not sure with the semicolons in there) following with encoded DataInputs:
>>>>
>>>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>     DataInputs=data%3D
>>>>         %40xlink%3Ahref%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fwps%2FWebProcessingService%3FService%3DWPS%26Version%3D1.0.0%26Request%3DExecute%26
>>>>         Identifier%3Dorg.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm%26
>>>>         DataInputs%3DFEATURES%253D
>>>>             %2540xlink%253Ahref%253Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fows%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%253B
>>>> TOLERANCE%253D0.5%2526RawDataOutput%253Dresult%3B
>>>>     width%3D0.0005
>>>>
>>>> The strange thing to me is that it possibly isn't the chaining that's
>>>> wrong, cause I get the following error message:
>>>>
>>>> <ns:ExceptionReport>
>>>>     <ns:Exception exceptionCode="InvalidParameterValue">
>>>>         <ns:ExceptionText>Error while accessing the inputValue:
>>>> data</ns:ExceptionText>
>>>>     </ns:Exception>
>>>>     <ns:Exception exceptionCode="JAVA_StackTrace">
>>>>         <ns:ExceptionText>
>>>>             org.n52.wps.server.request.InputHandler.<init>:112
>>>>             org.n52.wps.server.request.ExecuteRequest.call:518
>>>>             org.n52.wps.server.request.Request.call:1
>>>>             java.util.concurrent.FutureTask$Sync.innerRun:334
>>>>             java.util.concurrent.FutureTask.run:166
>>>>             java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>>>             java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>>>             java.lang.Thread.run:636
>>>>         </ns:ExceptionText>
>>>>     </ns:Exception>
>>>>     <ns:Exception exceptionCode="JAVA_RootCause"/>
>>>> </ns:ExceptionReport>
>>>>
>>>> So I tried a simple unchained one:
>>>>
>>>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>     DataInputs=data=
>>>>         @xlink:href=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fservice%3DWFS%26version%3D1.0.0%26request%3DGetFeature%26typeName%3Dtopp%3Atasmania_roads;
>>>>     width=20&RawDataOutput=result
>>>>
>>>> with the same error. But POSTing the same WPS request works quiet well:
>>>>
>>>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>>>> <wps:Execute service="WPS" version="1.0.0"
>>>> xmlns:wps="http://www.opengis.net/wps/1.0.0"
>>>> xmlns:ows="http://www.opengis.net/ows/1.1"
>>>> xmlns:xlink="http://www.w3.org/1999/xlink"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
>>>>       http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd">
>>>>       <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
>>>>       <wps:DataInputs>
>>>>               <wps:Input>
>>>>                       <ows:Identifier>data</ows:Identifier>
>>>>                       <wps:Reference
>>>> schema="http://schemas.opengis.net/gml/2.1.2/feature.xsd"
>>>> xlink:href="http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typeName=topp:tasmania_roads"/>
>>>>               </wps:Input>
>>>>               <wps:Input>
>>>>                       <ows:Identifier>width</ows:Identifier>
>>>>                       <ows:Title>Distance which people will walk to get to a
>>>> playground.</ows:Title>
>>>>                       <wps:Data>
>>>>                               <wps:LiteralData>20</wps:LiteralData>
>>>>                       </wps:Data>
>>>>               </wps:Input>
>>>>       </wps:DataInputs>
>>>>       <wps:ResponseForm>
>>>>               <wps:RawDataOutput>
>>>>                       <ows:Identifier>result</ows:Identifier>
>>>>               </wps:RawDataOutput>
>>>>       </wps:ResponseForm>
>>>> </wps:Execute>
>>>>
>>>> No my questions ;). What could be the error in the GET request? And is
>>>> it possible to turn that GET chaining to a POST based one? If it's
>>>> possible can you give me please an example on how it should look like?
>>>>
>>>> I read in the spec that there are three ways to chain. The first one
>>>> is known and then there are the other ways:
>>>>
>>>>     * A BPEL engine can be used to orchestrate a service chain that
>>>> includes one or more WPS processes.
>>>>     * A WPS process can be designed to call a sequence of web services
>>>> includingother WPS processes, thus acting as the service chaining
>>>> engine.
>>>>
>>>> Is any of this ways included in the 52n-WPS server?
>>>>
>>>> Thanks in advance
>>>>
>>>> Sebastian
>>>>
>>>>
>>>> 2010/8/16 Theodor Foerster <[hidden email]>:
>>>>> Sebastian,
>>>>> WPS interface specification allows you to specify ComplexValueReferences
>>>>> with message bodies. These message bodies can include a WPS request. Thus,
>>>>> chaining of WPS is possible (taken the output of one WPS request as input
>>>>> for another WPS request).
>>>>>
>>>>> Please note, that you need to be careful with the used schemas, as the
>>>>> format of the output of the one WPS needs to match the input of the other
>>>>> WPS process. For this reason, WPS requests, which are used as further input
>>>>> should be specify RawDataOutput as result. Then your WPS requests returns
>>>>> plain data with no WPS-specific message envelope.
>>>>>
>>>>> If you have further questions, please let me know.
>>>>> Best regards
>>>>>
>>>>> Theodor
>>>>>
>>>>> --
>>>>> Dr. Theodor Foerster
>>>>> Research Associate
>>>>> Institute for Geoinformatics
>>>>> Sensor Web, web-based geoprocessing & simulation lab
>>>>> http://sensorweb.uni-muenster.de
>>>>> http://ifgi.uni-muenster.de/~tfoer_01
>>>>>
>>>>> On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner
>>>>> <[hidden email]> wrote:
>>>>>>
>>>>>> Hi all,
>>>>>> at first I want to thank you for your great work on such a nice
>>>>>> project. Thank you for this! :)
>>>>>>
>>>>>> I have a WPS server up and running and now I would like to chain some
>>>>>> algorithms like in the demo scenario in this report:
>>>>>>
>>>>>> http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
>>>>>> But I would like to do so with just posting something like a WPS
>>>>>> request to the server and getting back a GML response. Is there any
>>>>>> implementation for such an issue or do I have to rebuild the request
>>>>>> in another way?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Sebastian
>>>>>> _______________________________________________
>>>>>> Geoprocessingservices mailing list
>>>>>> [hidden email]
>>>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Geoprocessingservices mailing list
>>>> [hidden email]
>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>>
>>>
>>>
>>> --
>>> Bastian Schäffer
>>> Institute for Geoinformatics (IfGI), University of Muenster, Germany
>>> Weseler Str. 253, 48151 Muenster
>>> Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
>>> email: [hidden email]
>>> IfGI-site: http://ifgi.uni-muenster.de
>>>
>>>
>>>
>>>
>>
>
_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Bastian Schäffer
Hi Sebastian,

you were right. There was a bug.

It should be resolved. Please update and check again.

Regards,
Bastian Schäffer

Am 20.08.2010 09:32, schrieb Sebastian Geithner:

> I don't get it. Why can't I trust myself. It looks like I thought I
> messed up but I didn't. The apology was premature.
> Sorry for mixing up the not mixed up.
>
> If you are still not confused, I'm sorry, too.
>
> Sebastian
>
> 2010/8/20 Sebastian Geithner <[hidden email]>:
>> Hi,
>> I take back what I wrote in my last mail!
>>
>> After the mentioned hours of messing around with trying to chain WPS
>> processes, I realized that it was not a chain! :(
>> It is a simple buffer algorithm that I executed.
>>
>> Sorry if I have confused anybody!
>>
>> Best Regards
>>
>> Sebastian
>>
>>
>> 2010/8/19 Sebastian Geithner <[hidden email]>:
>>> Hi all,
>>> after several hours of trying to chain two processes in a GET request
>>> I came to the conclusion that 52n-WPS server isn't compliant to WPS
>>> 1.0.0 in this issue.
>>> Now to the problem: at first, my previous posted input for "data" of
>>> the org.n52.wps.server.algorithm.SimpleBufferAlgorithm wasn't correct.
>>> I had to add the following schema:
>>>
>>>    ..@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd..
>>>
>>> then I got this error message:
>>>
>>>    <ns:ExceptionReport>
>>>        <ns:Exception exceptionCode="NoApplicableCode">
>>>            <ns:ExceptionText>
>>>                Error. No applicable parser found for
>>> http%3A%2F%2Fschemas.opengis.net%2Fgml%2F2.1.2%2Ffeature.xsd,text%2Fxml,UTF-8
>>>            </ns:ExceptionText>
>>>        </ns:Exception>
>>>        <ns:Exception exceptionCode="JAVA_StackTrace">
>>>            <ns:ExceptionText>
>>>
>>> org.n52.wps.server.request.InputHandler.handleComplexValueReference:319
>>>                org.n52.wps.server.request.InputHandler.<init>:109
>>>                org.n52.wps.server.request.ExecuteRequest.call:518
>>>                org.n52.wps.server.request.Request.call:1
>>>                java.util.concurrent.FutureTask$Sync.innerRun:334
>>>                java.util.concurrent.FutureTask.run:166
>>>                java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>>                java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>>                java.lang.Thread.run:636
>>>            </ns:ExceptionText>
>>>        </ns:Exception>
>>>        <ns:Exception exceptionCode="JAVA_RootCause"/>
>>>    </ns:ExceptionReport>
>>>
>>> This means that the server doesn't decode the values of the attribute.
>>> But the spec says (more exact the corrigendum of it [p. 7ff]:
>>> http://portal.opengeospatial.org/files/?artifact_id=32766) that you
>>> have to encode the in/outputs AND the attributes. So it had to look
>>> like this:
>>>
>>> encoded WPS request:
>>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data%3D%40xlink%3Ahref%3Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fwfs%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%40schema%3Dhttp%253A%252F%252Fschemas.opengis.net%252Fgml%252F2.1.2%252Ffeature.xsd%40mimeType%3Dtext%252Fxml%40encoding%3DUTF-8%3Bwidth%3D20&RawDataOutput=result
>>>
>>> decoded WPS request:
>>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&DataInputs=data=@xlink:href=http://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads@schema=http://schemas.opengis.net/gml/2.1.2/feature.xsd@mimeType=text/xml@encoding=UTF-8;width=20&RawDataOutput=result
>>>
>>> If I now omit the encoding of the attribute values it works!
>>>
>>> Regards
>>>
>>> Sebastian
>>>
>>>
>>> 2010/8/18 Bastian Schäffer <[hidden email]>:
>>>> Hi Sebastian,
>>>>
>>>> either the request is wrong or there is a bug :-)
>>>>
>>>> I suggest to put a brakepoint in the InputHandler and you will directly
>>>> see what's wrong.
>>>>
>>>> Concerning the orchestration:
>>>> 1. BPEL
>>>> We have a connector for Oracle BPEL engines and prototypical one for
>>>> active bpel.
>>>> 2. End of the month we will release a component that is capable of
>>>> orchestrating WPSs with a very simple script. It is also able to
>>>> automatically negotiating schemas etc.
>>>> If you are interested, I can give you a preview.
>>>>
>>>> Regards,
>>>> Bastian Schäffer
>>>>
>>>> Am 18.08.2010 16:02, schrieb Sebastian Geithner:
>>>>> Hi,
>>>>> I'm still trying to get WPS chaining working. At first I tried it via
>>>>> a GET request and the official WPS spec document which totally
>>>>> confused me. Then I realised that there is a corrigendum for the spec
>>>>> with an actually understandable example. But that won't work ether.
>>>>> Here is the decoded request from the corrigendum:
>>>>>
>>>>> http://foo.bar.1/wps?version=1.0.0&request=Execute&service=WPS&
>>>>>     Identifier=Buffer&
>>>>>     DataInputs=BufferObject=@xlink:href=http://foo.bar2/wps?Service=WPS&Version=1.0.0&Request=Execute&
>>>>>         Identifier=ShpConvertToGML&
>>>>>         DataInputs=ShapefileToConvert=
>>>>>             @xlink:href=http://foo.bar.3/shapefile@mimeType=text/xml@encoding=utf-8@schema=http://foo.bar/foo.xsd;
>>>>>     BufferDistance=100@datatype=integer@uom=meter
>>>>>
>>>>> and mine:
>>>>>
>>>>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>>     DataInputs=data=
>>>>>         @xlink:href=http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>>>>         Identifier=org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm&
>>>>>         DataInputs=FEATURES=
>>>>>             @xlink:href=http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads;
>>>>>         TOLERANCE=0.5&RawDataOutput=result;
>>>>>     width=0.0005
>>>>>
>>>>> (I'm not sure with the semicolons in there) following with encoded DataInputs:
>>>>>
>>>>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>>     DataInputs=data%3D
>>>>>         %40xlink%3Ahref%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fwps%2FWebProcessingService%3FService%3DWPS%26Version%3D1.0.0%26Request%3DExecute%26
>>>>>         Identifier%3Dorg.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm%26
>>>>>         DataInputs%3DFEATURES%253D
>>>>>             %2540xlink%253Ahref%253Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fows%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%253B
>>>>> TOLERANCE%253D0.5%2526RawDataOutput%253Dresult%3B
>>>>>     width%3D0.0005
>>>>>
>>>>> The strange thing to me is that it possibly isn't the chaining that's
>>>>> wrong, cause I get the following error message:
>>>>>
>>>>> <ns:ExceptionReport>
>>>>>     <ns:Exception exceptionCode="InvalidParameterValue">
>>>>>         <ns:ExceptionText>Error while accessing the inputValue:
>>>>> data</ns:ExceptionText>
>>>>>     </ns:Exception>
>>>>>     <ns:Exception exceptionCode="JAVA_StackTrace">
>>>>>         <ns:ExceptionText>
>>>>>             org.n52.wps.server.request.InputHandler.<init>:112
>>>>>             org.n52.wps.server.request.ExecuteRequest.call:518
>>>>>             org.n52.wps.server.request.Request.call:1
>>>>>             java.util.concurrent.FutureTask$Sync.innerRun:334
>>>>>             java.util.concurrent.FutureTask.run:166
>>>>>             java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>>>>             java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>>>>             java.lang.Thread.run:636
>>>>>         </ns:ExceptionText>
>>>>>     </ns:Exception>
>>>>>     <ns:Exception exceptionCode="JAVA_RootCause"/>
>>>>> </ns:ExceptionReport>
>>>>>
>>>>> So I tried a simple unchained one:
>>>>>
>>>>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>>>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>>>>     DataInputs=data=
>>>>>         @xlink:href=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fservice%3DWFS%26version%3D1.0.0%26request%3DGetFeature%26typeName%3Dtopp%3Atasmania_roads;
>>>>>     width=20&RawDataOutput=result
>>>>>
>>>>> with the same error. But POSTing the same WPS request works quiet well:
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>>>>> <wps:Execute service="WPS" version="1.0.0"
>>>>> xmlns:wps="http://www.opengis.net/wps/1.0.0"
>>>>> xmlns:ows="http://www.opengis.net/ows/1.1"
>>>>> xmlns:xlink="http://www.w3.org/1999/xlink"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
>>>>>       http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd">
>>>>>       <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
>>>>>       <wps:DataInputs>
>>>>>               <wps:Input>
>>>>>                       <ows:Identifier>data</ows:Identifier>
>>>>>                       <wps:Reference
>>>>> schema="http://schemas.opengis.net/gml/2.1.2/feature.xsd"
>>>>> xlink:href="http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typeName=topp:tasmania_roads"/>
>>>>>               </wps:Input>
>>>>>               <wps:Input>
>>>>>                       <ows:Identifier>width</ows:Identifier>
>>>>>                       <ows:Title>Distance which people will walk to get to a
>>>>> playground.</ows:Title>
>>>>>                       <wps:Data>
>>>>>                               <wps:LiteralData>20</wps:LiteralData>
>>>>>                       </wps:Data>
>>>>>               </wps:Input>
>>>>>       </wps:DataInputs>
>>>>>       <wps:ResponseForm>
>>>>>               <wps:RawDataOutput>
>>>>>                       <ows:Identifier>result</ows:Identifier>
>>>>>               </wps:RawDataOutput>
>>>>>       </wps:ResponseForm>
>>>>> </wps:Execute>
>>>>>
>>>>> No my questions ;). What could be the error in the GET request? And is
>>>>> it possible to turn that GET chaining to a POST based one? If it's
>>>>> possible can you give me please an example on how it should look like?
>>>>>
>>>>> I read in the spec that there are three ways to chain. The first one
>>>>> is known and then there are the other ways:
>>>>>
>>>>>     * A BPEL engine can be used to orchestrate a service chain that
>>>>> includes one or more WPS processes.
>>>>>     * A WPS process can be designed to call a sequence of web services
>>>>> includingother WPS processes, thus acting as the service chaining
>>>>> engine.
>>>>>
>>>>> Is any of this ways included in the 52n-WPS server?
>>>>>
>>>>> Thanks in advance
>>>>>
>>>>> Sebastian
>>>>>
>>>>>
>>>>> 2010/8/16 Theodor Foerster <[hidden email]>:
>>>>>> Sebastian,
>>>>>> WPS interface specification allows you to specify ComplexValueReferences
>>>>>> with message bodies. These message bodies can include a WPS request. Thus,
>>>>>> chaining of WPS is possible (taken the output of one WPS request as input
>>>>>> for another WPS request).
>>>>>>
>>>>>> Please note, that you need to be careful with the used schemas, as the
>>>>>> format of the output of the one WPS needs to match the input of the other
>>>>>> WPS process. For this reason, WPS requests, which are used as further input
>>>>>> should be specify RawDataOutput as result. Then your WPS requests returns
>>>>>> plain data with no WPS-specific message envelope.
>>>>>>
>>>>>> If you have further questions, please let me know.
>>>>>> Best regards
>>>>>>
>>>>>> Theodor
>>>>>>
>>>>>> --
>>>>>> Dr. Theodor Foerster
>>>>>> Research Associate
>>>>>> Institute for Geoinformatics
>>>>>> Sensor Web, web-based geoprocessing & simulation lab
>>>>>> http://sensorweb.uni-muenster.de
>>>>>> http://ifgi.uni-muenster.de/~tfoer_01
>>>>>>
>>>>>> On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner
>>>>>> <[hidden email]> wrote:
>>>>>>>
>>>>>>> Hi all,
>>>>>>> at first I want to thank you for your great work on such a nice
>>>>>>> project. Thank you for this! :)
>>>>>>>
>>>>>>> I have a WPS server up and running and now I would like to chain some
>>>>>>> algorithms like in the demo scenario in this report:
>>>>>>>
>>>>>>> http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
>>>>>>> But I would like to do so with just posting something like a WPS
>>>>>>> request to the server and getting back a GML response. Is there any
>>>>>>> implementation for such an issue or do I have to rebuild the request
>>>>>>> in another way?
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Sebastian
>>>>>>> _______________________________________________
>>>>>>> Geoprocessingservices mailing list
>>>>>>> [hidden email]
>>>>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> Geoprocessingservices mailing list
>>>>> [hidden email]
>>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>>>
>>>>
>>>>
>>>> --
>>>> Bastian Schäffer
>>>> Institute for Geoinformatics (IfGI), University of Muenster, Germany
>>>> Weseler Str. 253, 48151 Muenster
>>>> Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
>>>> email: [hidden email]
>>>> IfGI-site: http://ifgi.uni-muenster.de
>>>>
>>>>
>>>>
>>>>
>>>
>>
>


--
Bastian Schäffer
Institute for Geoinformatics (IfGI), University of Muenster, Germany
Weseler Str. 253, 48151 Muenster
Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
email: [hidden email]
IfGI-site: http://ifgi.uni-muenster.de



_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
Reply | Threaded
Open this post in threaded view
|

Re: [52N Geoprocessingservices] chaining WPS processes

Sebastian Geithner
In reply to this post by Bastian Schäffer
Hi Bastian,
can you please announce when and where the WPS orchestrating component
will be availible?

Thanks

Sebastian

2010/8/18 Bastian Schäffer <[hidden email]>:

> Hi Sebastian,
>
> either the request is wrong or there is a bug :-)
>
> I suggest to put a brakepoint in the InputHandler and you will directly
> see what's wrong.
>
> Concerning the orchestration:
> 1. BPEL
> We have a connector for Oracle BPEL engines and prototypical one for
> active bpel.
> 2. End of the month we will release a component that is capable of
> orchestrating WPSs with a very simple script. It is also able to
> automatically negotiating schemas etc.
> If you are interested, I can give you a preview.
>
> Regards,
> Bastian Schäffer
>
> Am 18.08.2010 16:02, schrieb Sebastian Geithner:
>> Hi,
>> I'm still trying to get WPS chaining working. At first I tried it via
>> a GET request and the official WPS spec document which totally
>> confused me. Then I realised that there is a corrigendum for the spec
>> with an actually understandable example. But that won't work ether.
>> Here is the decoded request from the corrigendum:
>>
>> http://foo.bar.1/wps?version=1.0.0&request=Execute&service=WPS&
>>     Identifier=Buffer&
>>     DataInputs=BufferObject=@xlink:href=http://foo.bar2/wps?Service=WPS&Version=1.0.0&Request=Execute&
>>         Identifier=ShpConvertToGML&
>>         DataInputs=ShapefileToConvert=
>>             @xlink:href=http://foo.bar.3/shapefile@mimeType=text/xml@encoding=utf-8@schema=http://foo.bar/foo.xsd;
>>     BufferDistance=100@datatype=integer@uom=meter
>>
>> and mine:
>>
>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>     DataInputs=data=
>>         @xlink:href=http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>         Identifier=org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm&
>>         DataInputs=FEATURES=
>>             @xlink:href=http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads;
>>         TOLERANCE=0.5&RawDataOutput=result;
>>     width=0.0005
>>
>> (I'm not sure with the semicolons in there) following with encoded DataInputs:
>>
>> http://localhost:8080/wps/WebProcessingService?version=1.0.0&request=Execute&service=WPS&
>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>     DataInputs=data%3D
>>         %40xlink%3Ahref%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fwps%2FWebProcessingService%3FService%3DWPS%26Version%3D1.0.0%26Request%3DExecute%26
>>         Identifier%3Dorg.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm%26
>>         DataInputs%3DFEATURES%253D
>>             %2540xlink%253Ahref%253Dhttp%253A%252F%252Flocalhost%253A8080%252Fgeoserver%252Fows%253Fservice%253DWFS%2526version%253D1.0.0%2526request%253DGetFeature%2526typeName%253Dtopp%253Atasmania_roads%253B
>> TOLERANCE%253D0.5%2526RawDataOutput%253Dresult%3B
>>     width%3D0.0005
>>
>> The strange thing to me is that it possibly isn't the chaining that's
>> wrong, cause I get the following error message:
>>
>> <ns:ExceptionReport>
>>     <ns:Exception exceptionCode="InvalidParameterValue">
>>         <ns:ExceptionText>Error while accessing the inputValue:
>> data</ns:ExceptionText>
>>     </ns:Exception>
>>     <ns:Exception exceptionCode="JAVA_StackTrace">
>>         <ns:ExceptionText>
>>             org.n52.wps.server.request.InputHandler.<init>:112
>>             org.n52.wps.server.request.ExecuteRequest.call:518
>>             org.n52.wps.server.request.Request.call:1
>>             java.util.concurrent.FutureTask$Sync.innerRun:334
>>             java.util.concurrent.FutureTask.run:166
>>             java.util.concurrent.ThreadPoolExecutor.runWorker:1110
>>             java.util.concurrent.ThreadPoolExecutor$Worker.run:603
>>             java.lang.Thread.run:636
>>         </ns:ExceptionText>
>>     </ns:Exception>
>>     <ns:Exception exceptionCode="JAVA_RootCause"/>
>> </ns:ExceptionReport>
>>
>> So I tried a simple unchained one:
>>
>> http://localhost:8080/wps/WebProcessingService?Service=WPS&Version=1.0.0&Request=Execute&
>>     Identifier=org.n52.wps.server.algorithm.SimpleBufferAlgorithm&
>>     DataInputs=data=
>>         @xlink:href=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fservice%3DWFS%26version%3D1.0.0%26request%3DGetFeature%26typeName%3Dtopp%3Atasmania_roads;
>>     width=20&RawDataOutput=result
>>
>> with the same error. But POSTing the same WPS request works quiet well:
>>
>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> <wps:Execute service="WPS" version="1.0.0"
>> xmlns:wps="http://www.opengis.net/wps/1.0.0"
>> xmlns:ows="http://www.opengis.net/ows/1.1"
>> xmlns:xlink="http://www.w3.org/1999/xlink"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
>>       http://schemas.opengis.net/wps/1.0.0/wpsExecute_request.xsd">
>>       <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
>>       <wps:DataInputs>
>>               <wps:Input>
>>                       <ows:Identifier>data</ows:Identifier>
>>                       <wps:Reference
>> schema="http://schemas.opengis.net/gml/2.1.2/feature.xsd"
>> xlink:href="http://localhost:8080/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typeName=topp:tasmania_roads"/>
>>               </wps:Input>
>>               <wps:Input>
>>                       <ows:Identifier>width</ows:Identifier>
>>                       <ows:Title>Distance which people will walk to get to a
>> playground.</ows:Title>
>>                       <wps:Data>
>>                               <wps:LiteralData>20</wps:LiteralData>
>>                       </wps:Data>
>>               </wps:Input>
>>       </wps:DataInputs>
>>       <wps:ResponseForm>
>>               <wps:RawDataOutput>
>>                       <ows:Identifier>result</ows:Identifier>
>>               </wps:RawDataOutput>
>>       </wps:ResponseForm>
>> </wps:Execute>
>>
>> No my questions ;). What could be the error in the GET request? And is
>> it possible to turn that GET chaining to a POST based one? If it's
>> possible can you give me please an example on how it should look like?
>>
>> I read in the spec that there are three ways to chain. The first one
>> is known and then there are the other ways:
>>
>>     * A BPEL engine can be used to orchestrate a service chain that
>> includes one or more WPS processes.
>>     * A WPS process can be designed to call a sequence of web services
>> includingother WPS processes, thus acting as the service chaining
>> engine.
>>
>> Is any of this ways included in the 52n-WPS server?
>>
>> Thanks in advance
>>
>> Sebastian
>>
>>
>> 2010/8/16 Theodor Foerster <[hidden email]>:
>>> Sebastian,
>>> WPS interface specification allows you to specify ComplexValueReferences
>>> with message bodies. These message bodies can include a WPS request. Thus,
>>> chaining of WPS is possible (taken the output of one WPS request as input
>>> for another WPS request).
>>>
>>> Please note, that you need to be careful with the used schemas, as the
>>> format of the output of the one WPS needs to match the input of the other
>>> WPS process. For this reason, WPS requests, which are used as further input
>>> should be specify RawDataOutput as result. Then your WPS requests returns
>>> plain data with no WPS-specific message envelope.
>>>
>>> If you have further questions, please let me know.
>>> Best regards
>>>
>>> Theodor
>>>
>>> --
>>> Dr. Theodor Foerster
>>> Research Associate
>>> Institute for Geoinformatics
>>> Sensor Web, web-based geoprocessing & simulation lab
>>> http://sensorweb.uni-muenster.de
>>> http://ifgi.uni-muenster.de/~tfoer_01
>>>
>>> On Mon, Aug 16, 2010 at 4:33 PM, Sebastian Geithner
>>> <[hidden email]> wrote:
>>>>
>>>> Hi all,
>>>> at first I want to thank you for your great work on such a nice
>>>> project. Thank you for this! :)
>>>>
>>>> I have a WPS server up and running and now I would like to chain some
>>>> algorithms like in the demo scenario in this report:
>>>>
>>>> http://www.unicore.eu/community/development/WPS-G/OGF22%20-%20WPS-G%20Report.pdf.
>>>> But I would like to do so with just posting something like a WPS
>>>> request to the server and getting back a GML response. Is there any
>>>> implementation for such an issue or do I have to rebuild the request
>>>> in another way?
>>>>
>>>> Thanks
>>>>
>>>> Sebastian
>>>> _______________________________________________
>>>> Geoprocessingservices mailing list
>>>> [hidden email]
>>>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>>
>>>
>> _______________________________________________
>> Geoprocessingservices mailing list
>> [hidden email]
>> http://www2.52north.org/mailman/listinfo/geoprocessingservices
>>
>
>
> --
> Bastian Schäffer
> Institute for Geoinformatics (IfGI), University of Muenster, Germany
> Weseler Str. 253, 48151 Muenster
> Fon: +49 (0)251 - 83-30046   Fax: +49 (0)251 - 83-39763
> email: [hidden email]
> IfGI-site: http://ifgi.uni-muenster.de
>
>
>
>
_______________________________________________
Geoprocessingservices mailing list
[hidden email]
http://www2.52north.org/mailman/listinfo/geoprocessingservices
http://geoprocessing.forum.52north.org