On Fri, Aug 10, 2012 at 10:40 PM, Justin Deoliveira <[email protected]>wrote:

> If we start having processes in the same factory with different prefixes
>> the issue you were talking
>> about above, being difficult to guess in which "group" a process falls
>> into, will only get worse.
>>
>
> I actually think the namespace and the group should be decoupled. I look
> at a process namespace as publishing metadata rather than a grouping
> mechanism although i can see why its used for that.
>
> It seems like unnecessary overhead to have to write a factory just to set
> up a custom namespace. And it goes against making things as easy as
> possible to write a custom process, like with the annotation based process
> stuff which hides the factory from you. Also thinking of the scripting
> extension here where it's one process factory that loads scripts. I would
> be +1 for being able to define it at the process level.
>
> Others may disagree but i also don't feel like the current grouping is all
> that unintuitive... it actually seems rather arbitrary which I think is a
> strong argument for allowing "group" information to be specified on the
> process itself since it knows which groups it will fall into best... Not by
> any means saying that needs to be done now but I think at some point it
> makes sense to rethink the grouping strategy perhaps coming up with a well
> defined "taxonomy" if you will for processes which could potentially be
> much more finer grained than what we have now.
>

This line of thinking will require changes to the GeoTools process API to
be implemented and as a consequence to the work I've just completed,
and if pushed to the end will break backwards compatibility for existing
users (that is, moving processes around in different namespaces,
changing their unique name).

The current situation is as follows. The factory is the only grouping
element that can be found, and the only one that has a Title
that can describe itself (that is used in the main process selection panel).

We can factories that publish in different "namespaces" (actually, they are
just prefixes so far), but unless there is a change
in the API you won't be able to give a title to those prefixes, there is no
way to describe it, so you actually get no group
you can speak about with users.

Let's say you add a way for factories to report a title per prefix, and
annotations that allow you to specify
that on a per process basis. How do you reach consistency  that way?
Before you know you'll get the same prefix associated with 4 different
titles due to typos or cut and paste errors.
Wouldn't it be better to make it easier to create your own factory instead,
so that you specify the group metadata
just once?
Imho it's not hard to do so today, there are two ways:
* create a 5 lines class and register it in the app context:

public class FooFactory extends SpringBeanProcessFactory {
  public FooFactory() {
     super("foo is cool", "foo", FooProcess.class);
  }
}

<bean name="fooFactory" class="org.foo.FooFactory"/>

* for scripting languages, you could use the ability to register factories
at runtime with Processors.addProcessFactory(...)

Changing topic and moving to the existing process grouping, it is was
originally based on source instead of function,
GeoServer processes, JTS processes, GRASS processes, Sextante processes and
so on (which is not an uncommon
way, look at 52N and QGis for example), while moving to GeoTools Jody tried
to rewire it so that it's based on function
instead and we ended up with the current mixed bag.
Imho the "per function" approach is not so easy to maintain, it works for
our own processes, but hopefully
one day someone will write a factory that binds to GRASS, will that person
have to pick the hundreds of
processes over there and assign each of them to the proper group?
GRASS and Sextante both organize processes per data type or functional
area, but neither integrates
processes from outside, while systems that integrate processes from outside
normally do so by organizing
them by source (QGis, 52N).
GeoServer seems to be in a position to have both, maybe what's needed is a
double level classification,
both source and functional area, "gs.v.Bounds", "gs.r2v.Contour", and so on?

However changing the process names now will break all existing applications
that use WPS,
given that WPS is in supported land this is bad.
How do we get a new classification without breaking existing users?

Cheers
Andrea

-- 
==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more
information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:   +39 0584 962313
mob:   +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to