Introduction
A Web Processing Service is little without a client. We have developed various clients ourselves in the past, but most of the projects have been discontinued. We developed a prototypical WPS client for ArcMap, however this was never deemed ready to be released. Another open source client we came across is the Quantum GIS WPS client. It works with several WPS implementations and also supports data streaming (see this post). Last year the Ordnance Survey of the U.K. approached us. They use WPS for web-based generalization of vector data. On the client side they use a plugin for OpenJUMP. They then wanted to make the Web Gen WPS accessible from additional GIS platforms and chose ArcGIS as the next target platform. Our mission was to mature our existing prototypical ArcMap WPS client and enable it to work with the WebGen WPS. The existing OpenJUMP client for WebGen WPS is limited to WebGen WPS. It is common that WPS clients can only connect to specific WPS instances, due to the openness of the WPS standard regarding input and output data types. There is practically no limit to what a complex input/output can be. Therefore, a client that needs to handle these inputs and outputs can not support all possible data types. The idea for an Extensible WPS ArcMap client was born.
Extensible client
We have split up the functionality of the client in three parts:
- export of data from ArcMap in a format the WPS can understand
- communication with the WPS
- import of the resulting data to ArcMap
This separation of concerns is not revolutionary, but the idea is to have stand alone ArcMap Geoprocessing tools for the different tasks. The tools are connected via the ArcMap Model Builder and can directly be used with other Geoprocessing tools. Thus, if you want to work with a WPS that requires a new data type, you simply add a new import/export tool for this data type or use the existing ArcMap functionality for the task.
If two different WPS processes can handle the same input/output format, they can be connected directly, enabling effective WPS chaining.
The connected tools (a so-called model in ArcMap) form a new tool that can be executed like any other tool and also itself be part of another tool chain.
The import/export tools are specific for one data type. The WPS communication tool was kept generic and can handle literal data types, such as strings or integers. All tools inherit the look-and-feel of the standard ArcMap Geoprocessing tools.
The extensible client is very flexible and promises a wide range of uses. However, significantly more work is needed to execute a WPS process than with most other Desktop GIS clients. An all-in-one GUI version of the client was implemented in a second phase of the project to make the use of WebGen WPS processes in ArcMap more comfortable.
All-in-one GUI client
The all-in-one GUI version of the client is based on the components described above, but the user does not have to connect the different tools himself. All the different steps, such as import/export, are initiated in one single GUI.
That makes it more easy to execute WPS processes from ArcMap. The drawback of this version is that the client is limited to WebGen WPS. The design of the all-in-one GUI client is similar to the client API the OpenJUMP client is based on (both are implemented in Java). License issues prevented us from re-using the client API.
As far as licenses are concerned, both clients are released under the Apache 2 license.
Future work
As mentioned above, the user can add new tools for importing/exporting data in additional formats. However, there needs to be a place to get those tools. We plan to use the concept of the Geoprocessing App Store for this. Imagine you encounter an unknown data type with the ArcMap client and you get the option to search for a fitting export/import tool in the App store. If such a tool exists, you can download it and use it with the client!
Miscellaneous
Alber Sánchez interned at 52°North for half of year and was deeply involved in the development of the client(s). He won the Institute for Geoinformatics (University of Münster) EDC “Student of the Year” award 2013 for this work !
Resources
Videos:
Extensible WPS ArcMap Client – interaction with the Model Builder
Extensible WPS ArcMap Client – add a WPS process to ArcMap
Download Windows installers:
Download the source code. Documentation can be found in our Wiki.
Leave a Reply