Hi,
time ago I've proposed a patch to update the process API in
various ways:
http://n2.nabble.com/Proposal-for-updating-the-process-API-td3321412.html

One significant feedback I got was to use Name instead of a String
to indentify the processes. I mulled over it a bit but in the end
it makes a lot of sense, since the quickest way to get lots of
processes is to bind external providers, that most likely will
have similarly named processes. For example, I think we have buffering
in GeoTools, but there is one in Sextante as well, and if we ever
decide to hook up GRASS abilities as well we'd have a third one.
So... it's a good idea to namespace them a little.

The attached patch uses Name, as in org.opengis.feature.type.Name,
and using org.geotools.feature.NameImpl to back it.

Now, the interesting part is that WPS process names are CodeType
thingies. A CodeType is a strange bease in that it has a value
(local name?) and a code space as an attribute (namespace prefix of
sorts?).
In practice thought, I've looked around and never seen anyone
use the code space, that is, never seen something like:

<Identifier codeSpace="xxx">buffer</Identifier>

For example 52N WPS will apparently use the fully qualified
name of the class as the process identifier, lots of
dots and qualifications, but no codeSpace usage.

Adding to that, the KVP encoding requires the identifier
to be specified somehow in the mandatory DescribeProcess
KVP request asks one to use an Identifier in the KVP, but
there is no guidance on how to encode the codespace,
and all the examples do use plain jane strings, stuff like:

http://foo.bar/foo?
       Service=WPS&
       Request=DescribeProcess&
       Version=1.0.0&
       Language=en-CA
       Identifier=intersection,union

Following the patch in GeoServer I've basically ignored
the codeSpace and made a convention that ":" is used
to separate the namespace from the local name, so for
example the GeoTools buffer process will be named

<Identifier>gt:buffer</Identifier>

and a KVP request will say &Identifier=gt:buffer...
Hacky but works and it's consistent between
XML and KVP encodings... anyone with a better idea?

Long story short, using namespaced identiferies is a
good idea, but it does not seem to apply in a straightforward
way to the WPS protocol as is today.

Can anyone review? I would like to commit and finally
bind some Sextante processes to GeoServer.

Cheers
Andrea

-- 
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to