• Tidak ada hasil yang ditemukan

Change Requests | OGC

N/A
N/A
Protected

Academic year: 2017

Membagikan "Change Requests | OGC"

Copied!
4
0
0

Teks penuh

(1)

Open Geospatial Consortium

OGC Doc 09-107

CR-Form-v3

CHANGE REQUEST

WPS 1.0 CR ?

 rev

-

 Current version: 2.0 

For

HELP

 

on using this form, see bottom of this page or look at the pop-up text over the symbols.

Proposed change affects:  AS Imp Spec X Best Practices Paper Other

Title:  Simplify WPS HTTP GET requests

Source:  Peter Schut and Steven Keens

Work item code:Date:  July 31st 2009

Category:C

Use one of the following categories:

F (Critical correction)

A (corresponds to a correction in an earlier release)

B (Addition of feature),

C (Functional modification of feature)

D (Editorial modification)

Detailed explanations of the above categories can be found in the TC Policies and Procedures.

Reason for change:  Simplify and improve the WPS operations using KVP encoding. Conform with conventions compatible with REST.

Summary of change: Eliminate the Service, Version, Request, and Identifier request parameters.

 Eliminate the double URL encoding required for DataInputs, ResponseDocument, and RawDataOutput

 Merge the DescribeProcess with the Execute operation

 Repeat selected contents of the Capabilities response with the DescribeProcess response

Consequences if

not approved: Community adoption of WPS will continue to be hindered by an unnecessarily complex HTTP GET interface.

Clauses affected:  Most

Other specs  Other core specifications 

Affected: Abstract specifications

Best Practices Document Supporting Doc.

Other comments:

Status

(2)

WPS Change Request 09-107

1.0 Overview:

If this change request is adopted, each process served by the WPS would be made available via a separate base URL whose form is determined by each implementation. A request to such a base URL, e.g.:

http://foo.bar/foo

would return the full process description for that process, while a simple KVP execute request via HTTP GET would take the form:

http://foo.bar/foo?INPUT1=value1&INPUT2=value2...

Note that the request is dramatically simplified from mechanism specified in WPS 1.0. The primary improvements are that:

 the "Service", "Version", "Request", and "Identifier" parameters are not required.

 There is no double encoding required for Input and Output values

 This mechanism aligns with the REST architectural style.

The following changes to WPS 1.0 are required to enable these improvements.

2.0 GetCapabilities request:

Adjust the content of the GetCapabilities request as follows: 1. Change the Request parameter from mandatory to optional

3.0 GetCapabilities response:

Adjust the content of the GetCapabilities response as follows:

1. Add an attribute called “xlink:href” to the “//Capabilities/ProcessOfferings/Process/” element that includes the URL for the full process description of that process

2. Remove the “//wps:Capabilities/ows:OperationsMetadata/ows:Operation” elements for the “DescribeProcess” and “Execute” operations.

The Capabilities document would still contain a complete list of Process offerings and links to all of the DescribeProcess and Execute operations offered by the service. The difference is that each process offering points to its own DescribeProcess and Execute operation via a link found in the process description. Note that one link serves both purposes, since the base URL for the Execute operation is the same as the complete URL for the DescribeProcess operation (see section 4.0 and 5.0).

4.0 DescribeProcess request:

Adjust the content of the DescribeProcess request as follows: 1. Remove the “Service” parameter

2. Remove the “Version” parameter 3. Remove the “Request” parameter 4. Remove the “Identifier” parameter

The DescribeProcess request would thus normally take the following form:

http://foo.bar/foo

(3)

WPS Change Request 09-107

Note that this request normally has no parameters and would return a process description in the default language of the server. To specify the human readable language of the response via HTTP GET, the “language” parameter would be added to the request, i.e.

http://foo.bar/foo?language=en-CA

The DescribeProcess request is the same as the base URL for the Execute request for that process. For HTTP POST the client simply POSTs the XML to the given URL – the same for SOAP.

5.0 DescribeProcess response:

Adjust the content of the DescribeProcess response as follows:

1. Add the “ows:ServiceIdentification” element from the GetCapabilities response 2. Add the “ows:OperationsMetadata” element from the GetCapabilities response 3. Add the “wps:Languages” element from the GetCapabilities response

The DescribeProcess document would still contain a complete process description. The difference is that it would be supplemented with metadata that is also found in the

GetCapabilities response. This reduces the number of requests required, and makes it possible to share single URLs that provide self-contained service descriptions as well as provide

processing functionality. The GetCapabilities response would still be used to populate service registries.

6.0 Execute request:

Adjust the content of the Execute request as follows: 1. Remove the “Service” parameter

2. Remove the “Version” parameter 3. Remove the “Request” parameter 4. Remove the “Identifier” parameter

5. Remove the “//wps:Execute/wps:Identifier” element from the Execute request XML schema

6. Remove the “DataInputs” parameter and accept all data input identifiers found in each ProcessDescription document as valid separate input parameters

7. Introduce the optional “ResponseForm” parameter, with valid contents “RawDataOutput” or “ResponseDocument”, and default being “RawDataOutput when only one output is returned

8. Introduce the following five reserved parameter identifiers

i. ResponseForm

ii. StoreExecuteResponse iii. Lineage

iv. Status

v. AcceptLanguages (to align with OWS Common 1.2)

9. Introduce the following parameter naming conventions:

i. the combined set of Input and Output identifiers contains no duplicates

ii. the mimetype for a parameter shall be indicated with a separate parameter formed by appending “_mimeType” to the parameter name

(4)

WPS Change Request 09-107

iii. the encoding for a parameter shall be indicated with a separate parameter formed by appending “_encoding” to the parameter name

iv. the XML schema for a parameter shall be indicated with a separate parameter formed by appending “_schema” to the parameter name

v. the UOM for a parameter shall be indicated with a separate parameter formed by appending “_uom” to the parameter name

An example of a valid Execute request via HTTP GET would thus be:

http://foo.bar/foo?

BufferObject=http%3A%2F%2Ffoo.bar%2Ffoo&

BufferObject_SCHEMA= http%3A%2F%2Fschemas.ogc.net%2Fgml%2F3.1.1& BufferDistance=10&

BufferDistance_UOM=meters&

AcceptLanguages=en-CA,en-US,fr-CA& ResponseForm=ResponseDocument

For HTTP POST the client simply POSTs the XML to the given URL – the same for SOAP.

Referensi

Dokumen terkait

Table C.1 shows the fields in a Dimension element: a mandatory name, a mandatory measurement units specifier with an optional unitSymbol, a mandatory string indicating

If specified, the value of the srsName parameter shall be equivalent to the default CRS value specified using the wfs:DefaultCRS element in the capabilities document (see 8.3) or

Reason for change:  Three standard elements or attributes are available to hold object identifiers in GML applications: @gml:id, gml:name and gml:identifier.. There is need for

Summary of change:  Remove <sequence/> from AbstractFeatureMemberType XSD and allow author to choose model group (e.g. <sequence minOccurs=”0”/>,

Summary of change:  Remove <sequence/> from AbstractFeatureMemberType XSD and allow author to choose model group (e.g. <sequence minOccurs=”0”/>,

The proposed resolution is to add optional metadata properties (corresponding to sub-elements of ISO 19139 MD_Metadata) to messages and time slices that each have a narrower scope,

Alternatively, the time specification format that goes into a <when> tag could be expanded to allow the optional inclusion of pieces of seconds (perhaps it could be

Remove the incorrect statement that â �� all elements are substitutable for gml:AbstractValue (and thus transitively for gml:AbstractObject) so that they can be used directly by