6. The COWS WPS User Interface (CWUI)¶
The COWS WPS User Interface is known as CWUI (pronounced “kwee”). This section explains the purpose of the CWUI and its main functions.
6.1. Why build a User Interface?¶
Since WPS is a web service framework there is no requirement to provide a user interface. However, the development of the CWUI has brought the following benefits to COWS WPS:
- automated generation of submission forms for new processes
- test-client for the WPS services
- browser front-end to job/output management functions
- login provider for secured processes
- administrator tools for job/user management
- a development tool for pushing the capabilities of WPS
The CWUI is currently tightly-coupled to the COWS WPS server but should in future allow coupling to external WPS implementations.
6.2. Overview of the CWUI¶
The home page of CWUI is shown in figure 6.1. It includes links to the following sections:
- Home - the home page
- Capabilities - the WPS GetCapabilities XML response
- View - view all available processes, including details of the descriptive metadata, inputs and outputs
- Submit - submit a request for a given process
- Jobs - view previous and current jobs (logged in users only)
- Documentation - link to documents
- Login - user login if service is secured
Figure 6.1. The CWUI Home Page
The “Submit” option allows the user to select a process to submit a request to. Once the process is selected the CWUI reads the process configuration details (the local proxy for the ProcessDescription XML document) and renders a submission form with the appropriate inputs.
6.2.1. Auto-generated forms for job submission¶
Figure 6.2 shows examples of submission forms generated by the CWUI for two different processes.
Figure 6.2. Two example CWUI process submission forms. Both are automatically generated from the process configuration inputs
The submission form is able to recognise, and validate, the following input types:
- Floating point number
- Spatial Bounding Box
The process configuration file inform the submission form whether there is a limited set of possible values, default values or range constraints. The form then validates the user selections against these rules.
6.2.2. CWUI as a test-client¶
Since the COWS WPS provides a framework for deploying multiple processes it is intended to be updated regularly with new processes. As a result, the CWUI is a very useful tool for initial and user testing when new processes are added to the server implementation. The visual client enables testers to identify issues that might not be apparent during standard unit testing.
6.2.3. Submitting requests via URLs¶
The CWUI also provides the option of submitting a job request via a URL rather than via the automated submission form. This option is available from the “Submit” page as shown in figure 6.3.
Figure 6.3. The URL-submission method
6.2.4. Access to previous jobs (logged in users only)¶
For secured services the CWUI also provides a “Jobs” page that lists previous jobs that the WPS server knows about. A job can be interrogated for its outputs and cancelled if it is currently running. Various search filters are available (see figure 6.4) for selecting a subset of previous jobs.
Figure 6.4. The Jobs page and its search filters
Note that an unsecured COWS WPS does not assign a user ID to any particular job and they are all run as the user “anonymous”. As a result, the functionality of the “Jobs” page is disabled.
6.2.5. Viewing the status of asynchronous jobs¶
When a job is submitted via the CWUI the browser is forwarded to the “Job viewer” page (see figure 6.5). This page displays the following information:
- Metadata about the job - including the full WPS Execute request URL, job completion time, duration and output volumes (estimated if job is running)
- Download links to output files (if produced by process)
- View of Execute Response XML document from the WPS server
- View of image outputs (if produced by process and left unzipped)
The page also polls the WPS server routinely when an asynchronous job is running and displays the completion status of the job. Re-loading the page also has the same effect in terms of updating the page with the latest information about the job.
Figure 6.5. The Job-viewer page
Note that clicking on the View job info/outputs link on a job listed in the Jobs page will load the “Job viewer” page for that specific job.
6.2.6. Accessing external WPS services¶
The CWUI is currently tightly-coupled to the COWS WPS server. The following developments will be required to enable the CWUI to interoperate with external WPS servers:
- Configure the “View” pages based on the GetCapabilities and DescribeProcess XML responses from the target WPS
- Configure the “Submit” page based on the DescribeProcess XML response from the target WPS
It should also be noted that some elements of the CWUI such as the searching of previous jobs is unlikely to be compatible with external WPS servers.
6.2.7. Current status¶
The CWUI is under continual development (when we have time!). External groups wishing to contribute to the functionality and to make improvements are greatly encouraged to do so. The aim is that the COWS WPS and the CWUI are community tools that should be useful to the widest possible community.
6.2.8. Browser compatibility¶
The CWUI has been tested with the following browsers:
- Firefox 3+
- Chrome 10+
- Internet Explorer 8
If you find bugs when running the CWUI in any of these browsers please report them. If you test the CWUI in other browsers and it works, please let us know.
6.3. User management in the CWUI¶
The CWUI is currently configured to work with the CEDA Security client that can be configured to connect to the local COWS WPS installation. User IDs are obtained from the CEDA Security interactions and that ID is saved with each request record in the WPS database. Actual information about users is all stored externally in whatever security system the CEDA Security client connects to.