Project: Apache Taverna (incubating) http://taverna.incubator.apache.org/
Mentor: Alan Robert Williams <firstname.lastname@example.org>
Apache Taverna, http://taverna.incubator.apache.org/, “is an open source and domain-independent Workflow Management System – a suite of tools used to design and execute scientific workflows and aid in silico experimentation”. The workflows consist of instances of services joined by connections. There are different types of services, such as making a REST call, running an R script or requesting information from a user.
“The Open Geospatial Consortium (OGC) is an international industry consortium of 511 companies, government agencies and universities participating in a consensus process to develop publicly available interface standards. OGC® Standards support interoperable solutions that "geo-enable" the Web, wireless and location-based services and mainstream IT. The standards empower technology developers to make complex spatial information and services accessible and useful with all kinds of applications.” - http://www.opengeospatial.org/ogc
“The OGC’s Web Processing Standard Service Interface Standard provides rules for standardizing how inputs and outputs (requests and responses) for geospatial processing services, such as polygon overlay. The standard also defines how a client can request the execution of a process, and how the output from the process is handled. It defines an interface that facilitates the publishing of geospatial processes and clients’ discovery of and binding to those processes. The data required by the WPS can be delivered across a network or they can be available at the server.” - http://www.opengeospatial.org/standards/wps
There have been several requests from users, including two in 2015, for Taverna to be able to include the calling of WPS services within workflows.
The WPS services can be discovered and invoked by either WSDL operations or REST calls to the WPS Server. However, the operations of a server do not take account of the processes that are available on the server. Instead, they allow you to ask what processes are known to the server, and to execute a process on the server. Exactly the same operations are used to call different processes. You have to specify the process name as a parameter to the operation.
These generic operations are not very useful when you want to call specific processes in a workflow. Instead, you want an operation to call a specific process. So each process known to the server would have its own operation(s).
One server-side solution, PyWPS has been developed http://pywps.wald.intevation.org/ . PyWPS makes a WSDL that calls the specific operations. However, this involves making changes to the WPS server, to which the workflow designer may not have access. It is also only available for installation on certain types of WPS server.
Some initial work has been made to create Taverna-side solutions, so that Taverna would be able to discover the WPS services and to invoke them, https://github.com/zzpwelkin/taverna-wps-plugin.git and https://github.com/alaninmcr/wps-taverna.git . Both of these have limitations and have not been extensively tested. They are similar in their use of the 52°North WPS library http://52north.org/communities/geoprocessing/wps . They also work with Taverna 2.5 rather than the currently being developed Taverna 3.
This proposed GSOC project is to, in collaboration with dev@taverna and the mentor
- Improve/complete the existing Taverna 2.5 WPS prototype support
- Discovery of WPS services from a user-specified WPS server
- Configuration of WPS services
- Execution of WPS services
- Test WPS support using pre-selected WPS servers and services
- Migrate the WPS support to the Taverna 3 codebase
- Document the Taverna 3 WPS service support
There are other related OGC standards such as the Web Map Service (WMS) and Sensor Observation Service (SOS). The project can be extended to include the discovery and execution of such services.
Your WPS service would be added to Apache Taverna, so you would be a part of the Apache Taverna developer community http://taverna.incubator.apache.org/community/ which will be able to give feedback, testing and guidance for this GSOC project and beyond.