On Oct 15, 2009, at 6:00 PM, Eric Lemoine wrote:


On Thursday, October 15, 2009, Sean Gillies <[email protected]> wrote:

Hi all,

I launched this group soon after chatting with a bunch of different folks about feature processing. Mainly in the context of WPS services. I don't do a lot of what GIS people call "geoprocessing" these days, but enjoy thinking about it. I wonder if we might be able to move past one-off scripts to frameworks for processing like we've moved past one-off CGI scripts to web frameworks. What would a geoprocessing framework look like? Does anyone have one they'd like to introduce? FWIW, I think a WPS service isn't a framework by itself, but could be backed up by a framework.

Hi Sean. What do you think makes processing web services different
than other web services?

Because processing web services take longer to respond? We could
envision using queues and polling if that makes sense from the client
perspective.

One thing that WPS has is chaining. That makes me think that WSGI
might be a potential architecture, with chain elements being
implemented as WSGI middleware.

Cheers,

A framework is something that runs my/your code. Write a Python callable or class that carries out a specific feature or raster processing task, register it with the framework, and it's executed at the right step.

In Django, iirc (it's been awhile), you write a controller or view, register it with the URL dispatcher, and it's executed when that URL is dereferenced. In Zope, you can plugin in almost anywhere with the application registry and the framework runs your code on URL traversal, URL viewing, whatever. Safe's FME includes a framework that will run Python scripts, right? I'm not at all familiar with its entry points or API, but it seems to be there. I've never used it, so correct me if I'm wrong.

This is the kind of framework I was thinking of, thought there are certainly variations. GIS data would be herded through processing steps by the framework, which calls your specific code at the right point. It probably allows you to chain processing steps, split features into several streams, and merge them again. Maybe it should allow one to distribute work among the machines of a network a la Hadoop or octo.py.

Jáchym Čepický's PyWPS will run your code that uses its entry points, but isn't a full-fledged framework. If it permits chaining, in Python, I didn't see it.

I've had an introduction to ZOO, but not the time to login and look through the code. It uses the familiar unix pipe paradigm, but I got the sense that you'd still have to roll your own framework.

WPS could be useful to expose occasionally used geoprocessing to clients that have no GIS toolset at all, or to expose a proprietary process (like a street routing algorithm) when you don't want to share the code. If I worked in a data-processing shop, I'd want something than runs on my own cluster of machines, with optimal performance and agility. WPS wouldn't be part of that.

Reply via email to