Wednesday 23 June 2010

Start your WPS Services

Now that I have made contact with the different groups a couple things are clear:
  • Everyone is very enthusiastic about having additional clients to talk to (this is the traditional chicken and egg problem with standing up either a client or a service - you need a friend in order to have a conversation - or a chicken I guess)
  • Demo services are available for anything not under active development (this is great news for me)
    • While deegree 3 WPS is still technically under development they are producing a downloadable war making their service easy to test
    • GeoServer documentation needs some work (sad news for me but I can fix it)
    • PyWPS was recommended
    Today's task is to connect to each service and make sure I can parse the capabilities document; and if things go well the describe process documents.

    52 North
    52 North have been very supportive with both a stable service to test against, and in standing up a service from their development branch. Their development branch makes use of GeoTools 2.6 and I am keen to hear how their transition went. Recently we have made some usability improvements for GeoTools 2.7 which will make those updating older applications even easier.
    Thanks to Bastian for setting up the a server using the development branch.

    The ZooWPS mailing list got back to me today and quickly pointed me to both examples and a sample WPS service I can test against.  The examples confused me a bit (as the skip straight to the execute requests and rush over the whole capabilities and describe process steps).
    Thanks to Nicolas for the sample server to test against.

    While the examples are confusing (and show a danger of just using links for data) they have a simple great picture explaining how their WPS functions.

    Deegree makes a number of demonstration services available for testing; but they make use of an older 0.4 version of the WPS specification (and my dedication to standards compatibility has a limit). The new deegree 3 is implementing WPS 1.0 and has a war available that fits my needs.
    (can I capitalise deegree if it is used to start a sentence ... or is it like "iPod" and the shape of the word matters more then silly english sentence conventions?)

    GeoServer WPS Community Module
    While I can quickly produce a war of the community module; my preferred method of testing is to use a very lightweight application server called "Jetty". Indeed use of Jetty is rolled into the maven build system:
    cd web/app
    mvn jetty:run -Pwps
    The only difficulty is that the build tool maven has grown a bit responsible since I last used it and will no longer install plugins such as jetty without me modifying a couple of configuration files first. I am going to sort out what is needed and update the GeoServer docs later today.

    A recommendation from yesterday (thanks Tom) which appears to be a contemporary of deegree in terms of years of experience. One thing that really attracts my eye when looking at a new project is:
    • recent news (showing that the project is alive)
    • documentation (even better if it is called course material)
    And guess what is on the PyWPS home page?

    2010-05-05 New course material added

    New course material added to PyWPS source. See documentation for details.
    I will sign up to the email list and try and introduce myself shortly.

    uDig (ie client)
    The other thing I am working on is user interface ideas to present the idea of external processing. My thinking thus far is to cheat - and represent external results (and if processing is still going use a progress bar as a placeholder).

    If I consider it as a list of results it becomes a more interesting and productive user interface concept:
    • results can be "tagged" to define ad-hoc grouping according to server, process, processing status
    • results that were produced externally (such as to an ftp site) can be listed, and downloaded if needed
    • using a wps could be considered "adding" a result to the list and handled using a wizard (although a wizard is not the best for interacting with the map - such as selecting a calculation area)
    • I should be able to record the steps that were used to produce each result and "rerun" if needed


    mentaer said...

    Hei Jody,

    thanks for the update on WPS.

    (i) If you have been on 52N website you may have also heard about this?

    i.e. web map generalization services - that got later transformed to be WPS compatible with funding from Ordnance Survey.

    (see also papers by Theodor Foerster)

    (ii) I have seen a OrbisGIS demo that involved WPS processing too.. I think. Well.. seems like it was a GearScape demo (which is a mod of OrbisGIS):

    djay said...

    Hi Jody,
    it seems that there was was some missunderstood things in your discussion with Nicolas.

    Indeed he spoke about using xlink:href cause it is an opportunity affored by WPS specification, but you can use anything else, you can pass GeoJson string directly or even mix each other.

    Maybe this web page containing an example of XML POST requests can be usefull to see how you can easily handle href or fully defined ressources : . Please it's only an example so forgive for the syle of the web page which a really minimalist :)

    Hope it will be usefull.



    Jody Garnett said...

    Not to worry Djay; the difficulty in passing a feature collection was strictly on the uDig side :-)

    My coworkers were recently working with ZooWPS and had a lot more success using GeoJson for feature collections rather then GML.

    nĂºria said...

    Thanks for the update, so interesting.

    And which server do you think it's better if I have to implement my own java code? I'm trying with 52north, geoserver and deegree (I'm still working on it) but I don't know exactly 'how' to do it.