[Geoserver-devel] WPS plugin for geoserver

Hi,
I just started to extend geoserver (v.1.3.0) for WPS support. The idea
is to serve geoprocesses through geoserver, in particular through the
WMS (WFS could be a future task). I am writing the WPS extension as a
read-only DataStore in geoserver. By now, I can create WPS instances in
geoserver as DataStores, but what do I have to do to create actual
FeatureStores? Or how do I get the processed results out to geoserver?
What is the role of the namespaces? How can I pass dynamic parameters of
the WMS request to the DataStore?

I will match each WPS-process with a FeatureType. However that s perhaps
not the best way, but straight-forward. Additionally I have to deal with
a little time constraint. The stuff has to work until end of next week
:slight_smile:

I am looking forward to any comments concerning some design issues, but
also how to solve the above mentioned problems.

Cheers
Theodor

ITC, Enschede
Department of Geo Information Processing PO. Box 6 7500 AA Enschede the
Netherlands

That is a lot of questions, let me try:

Hi,
I just started to extend geoserver (v.1.3.0) for WPS support. The idea
is to serve geoprocesses through geoserver, in particular through the
WMS (WFS could be a future task). I am writing the WPS extension as a
read-only DataStore in geoserver.

That is a interesting choice, WPS is a protocol (not a source of data) - I am not sure I understand this design decision?

By now, I can create WPS instances in geoserver as DataStores, but what do I have
to do to create actual FeatureStores?

You need to configure a GeoTools FeatureTypeInfo, you can do this using the user interface (or by hacking and XML in your own conf directory). You may also try out Justin's new GeoTools catalog backed GeoServer available in the community module (which I am trying to figure out now) - the api for programmers is a lot more direct.

However in my limited understanding a Web Processing Service, is supposed to accept an OWS Request that includes a WFS request to a Web Feature Service, the WPS would fetch features, process them, and return the result. (I do hope that is correct).

You can find an example HelloWorld Open Web Service as part of the GeoServer 1.4 documentation.

Or how do I get the processed results out to geoserver?
  

If your processed results are set up as part of your geoserver configuration (either the xml files, or by hand using the config ui) they will be published for other applications. Alternatively the WPS specification tells you an different protocol (ie not Web Feature Server) by which you can do this.

What is the role of the namespaces?

namespace is the namespace for the resulting GML content.

How can I pass dynamic parameters of the WMS request to the DataStore?
  

The dynamic paramters from the WMS request are limited to a bounding box, it will get reprojected into some kind of spatial query based on a Polygon, the other dynamic parameters are based on the Style Layer Descriptor specificaiton and are handled by the rendering process. (as an example they define a series of explicit queries against your DataStore, sometimes only requesting a geometry attribute for display).

I will match each WPS-process with a FeatureType. However that s perhaps
not the best way, but straight-forward. Additionally I have to deal with
a little time constraint. The stuff has to work until end of next week
:slight_smile:
  

Fun, so does your WPS need to be in agreement with the specification? If so you should start defining your own community module to handle WPS requests, capturing each request in a DataStore would be tough, you could (when you define your process) accept DataStoreFactorySPI parameters to handle the "dynamic" paramters include in your specific request.

You would be making these datastores up per each request though, so you would really need to understand Justins new catalog. Or you could just make them, use them to generate some GML, and then throw them away again.

I am looking forward to any comments concerning some design issues, but
also how to solve the above mentioned problems.
  

Sounds to me like you are making up a new service:
1. define a module (as per examples in the community space)
2. when handling your request produce a Map of the dynamic parameters
3. use the Map of parameters to create a new "DataStore"
4. use that datastore to generate some GML (using the existing geoserver codebase as an example)
5. throw away the datastore after use.
Cheers,
Jody

Cheers
Theodor

ITC, Enschede
Department of Geo Information Processing PO. Box 6 7500 AA Enschede the
Netherlands

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
  

Jody, thanks for your comments. I just went through them and saw a lot
of new decisions appearing. I think I will try to set up the
WPSDataStore for each WPS instance. Thus one WPSDataStore has multiple
FeatureTypes (i.e. processes). By now that s only a prototype... I will
try to figure out the Geotools OWS capabilties later, if the prototype
is suffient.

To give some more details about the context of my planned
implementation. I will trigger mostly the WPS, provided by 52north at
incubator52n.de/twiki/bin/view/Processing/52nWebProcessingService .
Finally I will link there any implementation code of the extension, if
there are no problems with any licensing...

I may get back to one of your comments in advance... Thanks again!

Theodor

-----Original Message-----
From: Jody Garnett [mailto:jgarnett@anonymised.com]
Sent: Thursday, August 31, 2006 5:19 PM
To: Theodor Foerster
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] WPS plugin for geoserver

That is a lot of questions, let me try:

Hi,
I just started to extend geoserver (v.1.3.0) for WPS support. The idea

is to serve geoprocesses through geoserver, in particular through the
WMS (WFS could be a future task). I am writing the WPS extension as a
read-only DataStore in geoserver.

That is a interesting choice, WPS is a protocol (not a source of data) -
I am not sure I understand this design decision?

By now, I can create WPS instances in geoserver as DataStores, but
what do I have to do to create actual FeatureStores?

You need to configure a GeoTools FeatureTypeInfo, you can do this using
the user interface (or by hacking and XML in your own conf directory).
You may also try out Justin's new GeoTools catalog backed GeoServer
available in the community module (which I am trying to figure out now)
- the api for programmers is a lot more direct.

However in my limited understanding a Web Processing Service, is
supposed to accept an OWS Request that includes a WFS request to a Web
Feature Service, the WPS would fetch features, process them, and return
the result. (I do hope that is correct).

You can find an example HelloWorld Open Web Service as part of the
GeoServer 1.4 documentation.

Or how do I get the processed results out to geoserver?
  

If your processed results are set up as part of your geoserver
configuration (either the xml files, or by hand using the config ui)
they will be published for other applications. Alternatively the WPS
specification tells you an different protocol (ie not Web Feature
Server) by which you can do this.

What is the role of the namespaces?

namespace is the namespace for the resulting GML content.

How can I pass dynamic parameters of the WMS request to the DataStore?
  

The dynamic paramters from the WMS request are limited to a bounding
box, it will get reprojected into some kind of spatial query based on a
Polygon, the other dynamic parameters are based on the Style Layer
Descriptor specificaiton and are handled by the rendering process. (as
an example they define a series of explicit queries against your
DataStore, sometimes only requesting a geometry attribute for display).

I will match each WPS-process with a FeatureType. However that s
perhaps not the best way, but straight-forward. Additionally I have to

deal with a little time constraint. The stuff has to work until end of

next week
:slight_smile:
  

Fun, so does your WPS need to be in agreement with the specification? If
so you should start defining your own community module to handle WPS
requests, capturing each request in a DataStore would be tough, you
could (when you define your process) accept DataStoreFactorySPI
parameters to handle the "dynamic" paramters include in your specific
request.

You would be making these datastores up per each request though, so you
would really need to understand Justins new catalog. Or you could just
make them, use them to generate some GML, and then throw them away
again.

I am looking forward to any comments concerning some design issues,
but also how to solve the above mentioned problems.
  

Sounds to me like you are making up a new service:
1. define a module (as per examples in the community space) 2. when
handling your request produce a Map of the dynamic parameters 3. use the
Map of parameters to create a new "DataStore"
4. use that datastore to generate some GML (using the existing geoserver
codebase as an example) 5. throw away the datastore after use.
Cheers,
Jody

Cheers
Theodor

ITC, Enschede
Department of Geo Information Processing PO. Box 6 7500 AA Enschede
the Netherlands

----------------------------------------------------------------------
--- Using Tomcat but need to do more? Need to support web services,
security?
Get stuff done quickly with pre-integrated technology to make your job

easier Download IBM WebSphere Application Server v.1.0.1 based on
Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=1216
42 _______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
  

Dude since you are on a timeline, the FROGS project does have a WPS stack already in place
we tried working with them, but they were shy on email. Why not grab there code and see if you
can get done quicker.
(at the very least they probably have something that parses a WPS request).
Jody

Jody, thanks for your comments. I just went through them and saw a lot
of new decisions appearing. I think I will try to set up the
WPSDataStore for each WPS instance. Thus one WPSDataStore has multiple
FeatureTypes (i.e. processes). By now that s only a prototype... I will
try to figure out the Geotools OWS capabilties later, if the prototype
is suffient.

To give some more details about the context of my planned
implementation. I will trigger mostly the WPS, provided by 52north at
incubator52n.de/twiki/bin/view/Processing/52nWebProcessingService .
Finally I will link there any implementation code of the extension, if
there are no problems with any licensing...

I may get back to one of your comments in advance... Thanks again!

Theodor

-----Original Message-----
From: Jody Garnett [mailto:jgarnett@anonymised.com] Sent: Thursday, August 31, 2006 5:19 PM
To: Theodor Foerster
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] WPS plugin for geoserver

That is a lot of questions, let me try:

Hi,
I just started to extend geoserver (v.1.3.0) for WPS support. The idea
    
is to serve geoprocesses through geoserver, in particular through the WMS (WFS could be a future task). I am writing the WPS extension as a read-only DataStore in geoserver.
    

That is a interesting choice, WPS is a protocol (not a source of data) -
I am not sure I understand this design decision?
  

By now, I can create WPS instances in geoserver as DataStores, but what do I have to do to create actual FeatureStores?
    

You need to configure a GeoTools FeatureTypeInfo, you can do this using
the user interface (or by hacking and XML in your own conf directory). You may also try out Justin's new GeoTools catalog backed GeoServer
available in the community module (which I am trying to figure out now)
- the api for programmers is a lot more direct.

However in my limited understanding a Web Processing Service, is
supposed to accept an OWS Request that includes a WFS request to a Web
Feature Service, the WPS would fetch features, process them, and return
the result. (I do hope that is correct).

You can find an example HelloWorld Open Web Service as part of the
GeoServer 1.4 documentation.
  

Or how do I get the processed results out to geoserver?
  

If your processed results are set up as part of your geoserver
configuration (either the xml files, or by hand using the config ui)
they will be published for other applications. Alternatively the WPS
specification tells you an different protocol (ie not Web Feature
Server) by which you can do this.
  

What is the role of the namespaces?
    

namespace is the namespace for the resulting GML content.
  

How can I pass dynamic parameters of the WMS request to the DataStore?
  

The dynamic paramters from the WMS request are limited to a bounding
box, it will get reprojected into some kind of spatial query based on a
Polygon, the other dynamic parameters are based on the Style Layer
Descriptor specificaiton and are handled by the rendering process. (as
an example they define a series of explicit queries against your
DataStore, sometimes only requesting a geometry attribute for display).
  

I will match each WPS-process with a FeatureType. However that s perhaps not the best way, but straight-forward. Additionally I have to
    
deal with a little time constraint. The stuff has to work until end of
    
next week
:slight_smile:
  

Fun, so does your WPS need to be in agreement with the specification? If
so you should start defining your own community module to handle WPS
requests, capturing each request in a DataStore would be tough, you
could (when you define your process) accept DataStoreFactorySPI
parameters to handle the "dynamic" paramters include in your specific
request.

You would be making these datastores up per each request though, so you
would really need to understand Justins new catalog. Or you could just
make them, use them to generate some GML, and then throw them away
again.
  

I am looking forward to any comments concerning some design issues, but also how to solve the above mentioned problems.
  

Sounds to me like you are making up a new service:
1. define a module (as per examples in the community space) 2. when
handling your request produce a Map of the dynamic parameters 3. use the
Map of parameters to create a new "DataStore"
4. use that datastore to generate some GML (using the existing geoserver
codebase as an example) 5. throw away the datastore after use.
Cheers,
Jody
  

Cheers
Theodor

ITC, Enschede
Department of Geo Information Processing PO. Box 6 7500 AA Enschede the Netherlands

----------------------------------------------------------------------
--- Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job
    
easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=1216
42 _______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
  
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
  

Hi Theodor,
I recently added WPS 0.4.0 support to the Geoserver 1.3.0 codebase in the same style as the geoserver WMS and WFS modules. Sounds a lot different from your DataStore approach, but you are free to take a look at my source code if you want. The WPS supports two simple processes: one that calculates the perimeter of a geometry, and one that performs an asynchronic or synchronic buffer operation on a geometry.

Regards,
Jonas

On 8/31/06, Theodor Foerster <foerster@anonymised.com> wrote:

Hi,
I just started to extend geoserver (v.1.3.0) for WPS support. The idea
is to serve geoprocesses through geoserver, in particular through the
WMS (WFS could be a future task). I am writing the WPS extension as a
read-only DataStore in geoserver. By now, I can create WPS instances in
geoserver as DataStores, but what do I have to do to create actual
FeatureStores? Or how do I get the processed results out to geoserver?
What is the role of the namespaces? How can I pass dynamic parameters of
the WMS request to the DataStore?

I will match each WPS-process with a FeatureType. However that s perhaps
not the best way, but straight-forward. Additionally I have to deal with
a little time constraint. The stuff has to work until end of next week
:slight_smile:

I am looking forward to any comments concerning some design issues, but
also how to solve the above mentioned problems.

Cheers
Theodor

ITC, Enschede
Department of Geo Information Processing PO. Box 6 7500 AA Enschede the
Netherlands


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

I think the difference is that Theodor is actually more looking to just use the WMS to portray the results of a WPS call. So this is really more in the service chaining realm of things.

Theodor, what does your WPS currently output? GML?

Thinking on it a bit, I think your approach is the quickest. A datastore for each WPS, and a featureType for each process. The problem though is getting the correct parameters passed back.

I think the more pure way to do this would be to make a Feature Portrayal Service that works against a WPS instead of a WFS - and then you could pass the parameters in to it. From a GeoServer perspective you'd use the WMS module hooks, but create the requests on the fly.

From a hackier, quicker way, you might just clone the WMS module and let it take additional parameters, and then also pass the scale and other stuff that's a part of the WMS to your backend. You'd probably construct the featureStore on the fly based on your params. Like the ideal would probably be a datastore that can create featureTypes based on params passed in?

Not sure if this is for sure the right way, just throwing some thoughts out. And not sure how dynamic you need things. Obviously the simpler way out is that one would define a featureType based on set parameters...

Chris

Jonas Johansson wrote:

Hi Theodor,
I recently added WPS 0.4.0 support to the Geoserver 1.3.0 codebase in the same style as the geoserver WMS and WFS modules. Sounds a lot different from your DataStore approach, but you are free to take a look at my source code if you want. The WPS supports two simple processes: one that calculates the perimeter of a geometry, and one that performs an asynchronic or synchronic buffer operation on a geometry.

Regards,
Jonas

On 8/31/06, *Theodor Foerster* <foerster@anonymised.com <mailto:foerster@anonymised.com>> wrote:

    Hi,
    I just started to extend geoserver (v.1.3.0) for WPS support. The idea
    is to serve geoprocesses through geoserver, in particular through the
    WMS (WFS could be a future task). I am writing the WPS extension as a
    read-only DataStore in geoserver. By now, I can create WPS instances in
    geoserver as DataStores, but what do I have to do to create actual
    FeatureStores? Or how do I get the processed results out to geoserver?
    What is the role of the namespaces? How can I pass dynamic parameters of
    the WMS request to the DataStore?

    I will match each WPS-process with a FeatureType. However that s perhaps
    not the best way, but straight-forward. Additionally I have to deal
    with
    a little time constraint. The stuff has to work until end of next week
    :)

    I am looking forward to any comments concerning some design issues, but
    also how to solve the above mentioned problems.

    Cheers
    Theodor

    ITC, Enschede
    Department of Geo Information Processing PO. Box 6 7500 AA Enschede the
    Netherlands

    -------------------------------------------------------------------------
    Using Tomcat but need to do more? Need to support web services,
    security?
    Get stuff done quickly with pre-integrated technology to make your
    job easier
    Download IBM WebSphere Application Server v.1.0.1 based on Apache
    Geronimo
    http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
    <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642&gt;
    _______________________________________________
    Geoserver-devel mailing list
    Geoserver-devel@lists.sourceforge.net
    <mailto:Geoserver-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f7279a120061362196140!

------------------------------------------------------------------------

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

!DSPAM:1003,44f7279a120061362196140!

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f7279a120061362196140!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

Yes, something like this I had in mind. But I am still struggeling with
the idea of featureTypes and the relation with namespaces. Hopefully I
will come to a solution tomorrow. Our WPS is able to serve all kind of
data, XML and binary data. Therefore we have designed a pluggable
architecture for dataHandlers and processes. The actual coupling is done
through outside code configuration. The WPS architecture will be also
the topic of my talk at the Foss4G in Lausanne in two weeks.

For our scenario, which is into generalization (particularly in
simplification), I need only to have Bbox and width and height, to
calculate the scale parameter (additionally perhaps style).

I am just reading the WFSDataStore, seems to be a good source of such
problem solutions...

Theodor

-----Original Message-----
From: Chris Holmes [mailto:cholmes@anonymised.com]
Sent: Thursday, August 31, 2006 8:31 PM
To: Jonas Johansson
Cc: Theodor Foerster; geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] WPS plugin for geoserver

I think the difference is that Theodor is actually more looking to just
use the WMS to portray the results of a WPS call. So this is really
more in the service chaining realm of things.

Theodor, what does your WPS currently output? GML?

Thinking on it a bit, I think your approach is the quickest. A
datastore for each WPS, and a featureType for each process. The problem
though is getting the correct parameters passed back.

I think the more pure way to do this would be to make a Feature
Portrayal Service that works against a WPS instead of a WFS - and then
you could pass the parameters in to it. From a GeoServer perspective
you'd use the WMS module hooks, but create the requests on the fly.

From a hackier, quicker way, you might just clone the WMS module and
let it take additional parameters, and then also pass the scale and
other stuff that's a part of the WMS to your backend. You'd probably
construct the featureStore on the fly based on your params. Like the
ideal would probably be a datastore that can create featureTypes based
on params passed in?

Not sure if this is for sure the right way, just throwing some thoughts
out. And not sure how dynamic you need things. Obviously the simpler
way out is that one would define a featureType based on set
parameters...

Chris

Jonas Johansson wrote:

Hi Theodor,
I recently added WPS 0.4.0 support to the Geoserver 1.3.0 codebase in
the same style as the geoserver WMS and WFS modules. Sounds a lot
different from your DataStore approach, but you are free to take a
look at my source code if you want. The WPS supports two simple

processes:

one that calculates the perimeter of a geometry, and one that performs

an asynchronic or synchronic buffer operation on a geometry.

Regards,
Jonas

On 8/31/06, *Theodor Foerster* <foerster@anonymised.com
<mailto:foerster@anonymised.com>> wrote:

    Hi,
    I just started to extend geoserver (v.1.3.0) for WPS support. The

idea

    is to serve geoprocesses through geoserver, in particular through

the

    WMS (WFS could be a future task). I am writing the WPS extension

as a

    read-only DataStore in geoserver. By now, I can create WPS

instances in

    geoserver as DataStores, but what do I have to do to create actual
    FeatureStores? Or how do I get the processed results out to

geoserver?

    What is the role of the namespaces? How can I pass dynamic

parameters of

    the WMS request to the DataStore?

    I will match each WPS-process with a FeatureType. However that s

perhaps

    not the best way, but straight-forward. Additionally I have to

deal

    with
    a little time constraint. The stuff has to work until end of next

week

    :)

    I am looking forward to any comments concerning some design

issues, but

    also how to solve the above mentioned problems.

    Cheers
    Theodor

    ITC, Enschede
    Department of Geo Information Processing PO. Box 6 7500 AA

Enschede the

    Netherlands

------------------------------------------------------------------------
-

    Using Tomcat but need to do more? Need to support web services,
    security?
    Get stuff done quickly with pre-integrated technology to make your
    job easier
    Download IBM WebSphere Application Server v.1.0.1 based on Apache
    Geronimo

http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

<http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=12164
2>

    _______________________________________________
    Geoserver-devel mailing list
    Geoserver-devel@lists.sourceforge.net
    <mailto:Geoserver-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f7279a120061362196140!

----------------------------------------------------------------------
--

----------------------------------------------------------------------
--- Using Tomcat but need to do more? Need to support web services,
security?
Get stuff done quickly with pre-integrated technology to make your job

easier Download IBM WebSphere Application Server v.1.0.1 based on
Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=1216
42

!DSPAM:1003,44f7279a120061362196140!

----------------------------------------------------------------------
--

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f7279a120061362196140!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

Theodor Foerster wrote:

Yes, something like this I had in mind. But I am still struggeling with
the idea of featureTypes and the relation with namespaces.

What do you mean by this? What namespaces are you talking about? Those used in GeoServer? Or is this part of your work? Namespaces in GeoServer are very simple, you just define one and you can attach one or more datastores to them.

Hopefully I

will come to a solution tomorrow. Our WPS is able to serve all kind of
data, XML and binary data. Therefore we have designed a pluggable
architecture for dataHandlers and processes. The actual coupling is done
through outside code configuration. The WPS architecture will be also
the topic of my talk at the Foss4G in Lausanne in two weeks.

For our scenario, which is into generalization (particularly in
simplification), I need only to have Bbox and width and height, to
calculate the scale parameter (additionally perhaps style).

Ok, this makes sense. Let me think a bit on the best way to pass that back.

I am just reading the WFSDataStore, seems to be a good source of such
problem solutions...

Could work. WFS DataStore is still in beta, we're not distributing yet. It's not up to par for cascading WFS, but I think it works decently for just WMS.

Chris

Theodor

-----Original Message-----
From: Chris Holmes [mailto:cholmes@anonymised.com] Sent: Thursday, August 31, 2006 8:31 PM
To: Jonas Johansson
Cc: Theodor Foerster; geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] WPS plugin for geoserver

I think the difference is that Theodor is actually more looking to just
use the WMS to portray the results of a WPS call. So this is really
more in the service chaining realm of things.

Theodor, what does your WPS currently output? GML?

Thinking on it a bit, I think your approach is the quickest. A
datastore for each WPS, and a featureType for each process. The problem
though is getting the correct parameters passed back.

I think the more pure way to do this would be to make a Feature
Portrayal Service that works against a WPS instead of a WFS - and then
you could pass the parameters in to it. From a GeoServer perspective
you'd use the WMS module hooks, but create the requests on the fly.

From a hackier, quicker way, you might just clone the WMS module and
let it take additional parameters, and then also pass the scale and
other stuff that's a part of the WMS to your backend. You'd probably
construct the featureStore on the fly based on your params. Like the
ideal would probably be a datastore that can create featureTypes based
on params passed in?

Not sure if this is for sure the right way, just throwing some thoughts
out. And not sure how dynamic you need things. Obviously the simpler
way out is that one would define a featureType based on set
parameters...

Chris

Jonas Johansson wrote:

Hi Theodor,
I recently added WPS 0.4.0 support to the Geoserver 1.3.0 codebase in the same style as the geoserver WMS and WFS modules. Sounds a lot different from your DataStore approach, but you are free to take a look at my source code if you want. The WPS supports two simple

processes:

one that calculates the perimeter of a geometry, and one that performs

an asynchronic or synchronic buffer operation on a geometry.

Regards,
Jonas

On 8/31/06, *Theodor Foerster* <foerster@anonymised.com <mailto:foerster@anonymised.com>> wrote:

    Hi,
    I just started to extend geoserver (v.1.3.0) for WPS support. The

idea

    is to serve geoprocesses through geoserver, in particular through

the

    WMS (WFS could be a future task). I am writing the WPS extension

as a

    read-only DataStore in geoserver. By now, I can create WPS

instances in

    geoserver as DataStores, but what do I have to do to create actual
    FeatureStores? Or how do I get the processed results out to

geoserver?

    What is the role of the namespaces? How can I pass dynamic

parameters of

    the WMS request to the DataStore?

    I will match each WPS-process with a FeatureType. However that s

perhaps

    not the best way, but straight-forward. Additionally I have to

deal

    with
    a little time constraint. The stuff has to work until end of next

week

    :)

    I am looking forward to any comments concerning some design

issues, but

    also how to solve the above mentioned problems.

    Cheers
    Theodor

    ITC, Enschede
    Department of Geo Information Processing PO. Box 6 7500 AA

Enschede the

    Netherlands

------------------------------------------------------------------------
-

    Using Tomcat but need to do more? Need to support web services,
    security?
    Get stuff done quickly with pre-integrated technology to make your
    job easier
    Download IBM WebSphere Application Server v.1.0.1 based on Apache
    Geronimo

http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
<http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=12164
2>

    _______________________________________________
    Geoserver-devel mailing list
    Geoserver-devel@lists.sourceforge.net
    <mailto:Geoserver-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/geoserver-devel

----------------------------------------------------------------------
--

----------------------------------------------------------------------
--- Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job

easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=1216
42

!DSPAM:1003,44f7279a120061362196140!

----------------------------------------------------------------------
--

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f7279a120061362196140!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f72d8c123871995013331!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

Ok, I will try tomorrow to get the FeatureType running for getSchema().
I will just use the GMLComplexTypes and parse the schema of the Output
of the designated process. Then I will implement getFeatureReader().
That will be tricky, because I have to get the right things out of the
queryObj.
Do you think, I have also to implement getFeatureSource?

Theodor

-----Original Message-----
From: Chris Holmes [mailto:cholmes@anonymised.com]
Sent: Thursday, August 31, 2006 9:01 PM
To: Theodor Foerster
Cc: Jonas Johansson; geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] WPS plugin for geoserver

Theodor Foerster wrote:

Yes, something like this I had in mind. But I am still struggeling
with the idea of featureTypes and the relation with namespaces.

What do you mean by this? What namespaces are you talking about? Those
used in GeoServer? Or is this part of your work? Namespaces in
GeoServer are very simple, you just define one and you can attach one or
more datastores to them.

Hopefully I

will come to a solution tomorrow. Our WPS is able to serve all kind of

data, XML and binary data. Therefore we have designed a pluggable
architecture for dataHandlers and processes. The actual coupling is
done through outside code configuration. The WPS architecture will be
also the topic of my talk at the Foss4G in Lausanne in two weeks.

For our scenario, which is into generalization (particularly in
simplification), I need only to have Bbox and width and height, to
calculate the scale parameter (additionally perhaps style).

Ok, this makes sense. Let me think a bit on the best way to pass that
back.

I am just reading the WFSDataStore, seems to be a good source of such
problem solutions...

Could work. WFS DataStore is still in beta, we're not distributing yet.

  It's not up to par for cascading WFS, but I think it works decently
for just WMS.

Chris

Theodor

-----Original Message-----
From: Chris Holmes [mailto:cholmes@anonymised.com]
Sent: Thursday, August 31, 2006 8:31 PM
To: Jonas Johansson
Cc: Theodor Foerster; geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] WPS plugin for geoserver

I think the difference is that Theodor is actually more looking to
just use the WMS to portray the results of a WPS call. So this is
really more in the service chaining realm of things.

Theodor, what does your WPS currently output? GML?

Thinking on it a bit, I think your approach is the quickest. A
datastore for each WPS, and a featureType for each process. The
problem though is getting the correct parameters passed back.

I think the more pure way to do this would be to make a Feature
Portrayal Service that works against a WPS instead of a WFS - and then

you could pass the parameters in to it. From a GeoServer perspective
you'd use the WMS module hooks, but create the requests on the fly.

From a hackier, quicker way, you might just clone the WMS module and
let it take additional parameters, and then also pass the scale and
other stuff that's a part of the WMS to your backend. You'd probably
construct the featureStore on the fly based on your params. Like the
ideal would probably be a datastore that can create featureTypes based

on params passed in?

Not sure if this is for sure the right way, just throwing some
thoughts out. And not sure how dynamic you need things. Obviously
the simpler way out is that one would define a featureType based on
set parameters...

Chris

Jonas Johansson wrote:

Hi Theodor,
I recently added WPS 0.4.0 support to the Geoserver 1.3.0 codebase in

the same style as the geoserver WMS and WFS modules. Sounds a lot
different from your DataStore approach, but you are free to take a
look at my source code if you want. The WPS supports two simple

processes:

one that calculates the perimeter of a geometry, and one that
performs

an asynchronic or synchronic buffer operation on a geometry.

Regards,
Jonas

On 8/31/06, *Theodor Foerster* <foerster@anonymised.com
<mailto:foerster@anonymised.com>> wrote:

    Hi,
    I just started to extend geoserver (v.1.3.0) for WPS support. The

idea

    is to serve geoprocesses through geoserver, in particular through

the

    WMS (WFS could be a future task). I am writing the WPS extension

as a

    read-only DataStore in geoserver. By now, I can create WPS

instances in

    geoserver as DataStores, but what do I have to do to create

actual

    FeatureStores? Or how do I get the processed results out to

geoserver?

    What is the role of the namespaces? How can I pass dynamic

parameters of

    the WMS request to the DataStore?

    I will match each WPS-process with a FeatureType. However that s

perhaps

    not the best way, but straight-forward. Additionally I have to

deal

    with
    a little time constraint. The stuff has to work until end of next

week

    :)

    I am looking forward to any comments concerning some design

issues, but

    also how to solve the above mentioned problems.

    Cheers
    Theodor

    ITC, Enschede
    Department of Geo Information Processing PO. Box 6 7500 AA

Enschede the

    Netherlands

----------------------------------------------------------------------
--
-

    Using Tomcat but need to do more? Need to support web services,
    security?
    Get stuff done quickly with pre-integrated technology to make

your

    job easier
    Download IBM WebSphere Application Server v.1.0.1 based on Apache
    Geronimo

http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=1216
42
<http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121
64
2>

    _______________________________________________
    Geoserver-devel mailing list
    Geoserver-devel@lists.sourceforge.net
    <mailto:Geoserver-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/geoserver-devel

---------------------------------------------------------------------
-
--

---------------------------------------------------------------------
-
--- Using Tomcat but need to do more? Need to support web services,
security?
Get stuff done quickly with pre-integrated technology to make your
job

easier Download IBM WebSphere Application Server v.1.0.1 based on
Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121
6
42

!DSPAM:1003,44f7279a120061362196140!

---------------------------------------------------------------------
-
--

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f7279a120061362196140!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

----------------------------------------------------------------------
--- Using Tomcat but need to do more? Need to support web services,
security?
Get stuff done quickly with pre-integrated technology to make your job

easier Download IBM WebSphere Application Server v.1.0.1 based on
Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=1216
42 _______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f72d8c123871995013331!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

Theodor Foerster wrote:

Ok, I will try tomorrow to get the FeatureType running for getSchema().
I will just use the GMLComplexTypes and parse the schema of the Output
of the designated process. Then I will implement getFeatureReader().
That will be tricky, because I have to get the right things out of the
queryObj.
Do you think, I have also to implement getFeatureSource?

There should be quite a few abstract methods to help, I believe there's an AbstractDataStore, and it tells you the minimum you need to implement?

Though are you just using the WFSDatastore? Having that send the requests you want it to? (I don't know GMLComplexTypes - I don't know WFS datastore that well at all)

Chris

Theodor

-----Original Message-----
From: Chris Holmes [mailto:cholmes@anonymised.com] Sent: Thursday, August 31, 2006 9:01 PM
To: Theodor Foerster
Cc: Jonas Johansson; geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] WPS plugin for geoserver

Theodor Foerster wrote:

Yes, something like this I had in mind. But I am still struggeling with the idea of featureTypes and the relation with namespaces.

What do you mean by this? What namespaces are you talking about? Those
used in GeoServer? Or is this part of your work? Namespaces in
GeoServer are very simple, you just define one and you can attach one or
more datastores to them.

Hopefully I

will come to a solution tomorrow. Our WPS is able to serve all kind of

data, XML and binary data. Therefore we have designed a pluggable architecture for dataHandlers and processes. The actual coupling is done through outside code configuration. The WPS architecture will be also the topic of my talk at the Foss4G in Lausanne in two weeks.

For our scenario, which is into generalization (particularly in simplification), I need only to have Bbox and width and height, to calculate the scale parameter (additionally perhaps style).

Ok, this makes sense. Let me think a bit on the best way to pass that
back.

I am just reading the WFSDataStore, seems to be a good source of such problem solutions...

Could work. WFS DataStore is still in beta, we're not distributing yet.

  It's not up to par for cascading WFS, but I think it works decently
for just WMS.

Chris

Theodor

-----Original Message-----
From: Chris Holmes [mailto:cholmes@anonymised.com]
Sent: Thursday, August 31, 2006 8:31 PM
To: Jonas Johansson
Cc: Theodor Foerster; geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] WPS plugin for geoserver

I think the difference is that Theodor is actually more looking to just use the WMS to portray the results of a WPS call. So this is really more in the service chaining realm of things.

Theodor, what does your WPS currently output? GML?

Thinking on it a bit, I think your approach is the quickest. A datastore for each WPS, and a featureType for each process. The problem though is getting the correct parameters passed back.

I think the more pure way to do this would be to make a Feature Portrayal Service that works against a WPS instead of a WFS - and then

you could pass the parameters in to it. From a GeoServer perspective you'd use the WMS module hooks, but create the requests on the fly.

From a hackier, quicker way, you might just clone the WMS module and let it take additional parameters, and then also pass the scale and other stuff that's a part of the WMS to your backend. You'd probably construct the featureStore on the fly based on your params. Like the ideal would probably be a datastore that can create featureTypes based

on params passed in?

Not sure if this is for sure the right way, just throwing some thoughts out. And not sure how dynamic you need things. Obviously the simpler way out is that one would define a featureType based on set parameters...

Chris

Jonas Johansson wrote:

Hi Theodor,
I recently added WPS 0.4.0 support to the Geoserver 1.3.0 codebase in

the same style as the geoserver WMS and WFS modules. Sounds a lot different from your DataStore approach, but you are free to take a look at my source code if you want. The WPS supports two simple

processes:

one that calculates the perimeter of a geometry, and one that performs
an asynchronic or synchronic buffer operation on a geometry.

Regards,
Jonas

On 8/31/06, *Theodor Foerster* <foerster@anonymised.com <mailto:foerster@anonymised.com>> wrote:

    Hi,
    I just started to extend geoserver (v.1.3.0) for WPS support. The

idea

    is to serve geoprocesses through geoserver, in particular through

the

    WMS (WFS could be a future task). I am writing the WPS extension

as a

    read-only DataStore in geoserver. By now, I can create WPS

instances in

    geoserver as DataStores, but what do I have to do to create

actual

    FeatureStores? Or how do I get the processed results out to

geoserver?

    What is the role of the namespaces? How can I pass dynamic

parameters of

    the WMS request to the DataStore?

    I will match each WPS-process with a FeatureType. However that s

perhaps

    not the best way, but straight-forward. Additionally I have to

deal

    with
    a little time constraint. The stuff has to work until end of next

week

    :)

    I am looking forward to any comments concerning some design

issues, but

    also how to solve the above mentioned problems.

    Cheers
    Theodor

    ITC, Enschede
    Department of Geo Information Processing PO. Box 6 7500 AA

Enschede the

    Netherlands

----------------------------------------------------------------------
--
-

    Using Tomcat but need to do more? Need to support web services,
    security?
    Get stuff done quickly with pre-integrated technology to make

your

    job easier
    Download IBM WebSphere Application Server v.1.0.1 based on Apache
    Geronimo

http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=1216
42
<http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121
64
2>

    _______________________________________________
    Geoserver-devel mailing list
    Geoserver-devel@lists.sourceforge.net
    <mailto:Geoserver-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/geoserver-devel

---------------------------------------------------------------------
-
--

---------------------------------------------------------------------
-
--- Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job
easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121
6
42

---------------------------------------------------------------------
-
--

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f7279a120061362196140!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

----------------------------------------------------------------------
--- Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job

easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=1216
42 _______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,44f72d8c123871995013331!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

!DSPAM:1003,44f739ec130721219810056!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org