ConceptioArchiveOpen Geospatial Consortium (OGC)
Open Geospatial Consortium (OGC)open access

OGC Sensor Planning Service Implementation Standard (version 2.0) — OGC 09-000

Open Geospatial Consortium · Open Geospatial Consortium (OGC)
Open Geospatial Consortium (OGC) · Standards · License: Open Access
Open Source ↗Direct PDF ↓
geospatialimplementationogcogc09opengeospatialconsortiumplanningsensor
ogc, geospatial, standard, open geospatial consortium, sps, ogc sps, 09-000, ogc 09-000, 2.0, sensor, planning, service, implementation

Open Geospatial Consortium Date: 2011-03-28 Reference number of this document: OGC 09-000 OGC name of this OGC® project document: http://www.opengis.net/doc/IS/SPS/2.0 Version: 2.0 ®

Category: OpenGIS Implementation Standard Editor(s): Ingo Simonis, Johannes Echterhoff

OGC® Sensor Planning Service Implementation Standard

Copyright © 2011 Open Geospatial Consortium To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.

Warning This document is an OGC Member approved international standard. This document is available on a royalty free, non-discriminatory basis. Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.

Document type: Document subtype: Document stage: Document language:

OpenGIS® Standard Interface Approved English

Copyright © 2011 Open Geospatial Consortium

License Agreement Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement. If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR. THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD. THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY. This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party. Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications. This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it. None of the Intellectual Property or underlying information or technology may be downloaded or otherwise exported or reexported in violation of U.S. export laws and regulations. In addition, you are responsible for complying with any local laws in your jurisdiction which may impact your right to import, export or use the Intellectual Property, and you represent that you have complied with any regulations or registration procedures required by applicable law to make this license enforceable

ii

Copyright © 2012 Open Geospatial Consortium

OGC 09-000

Contents 1

Page

Scope ........................................................................................................................1

2 2.1 2.2

Compliance ..............................................................................................................2 Specification identifier ........................................................................................2 Conformance Classes ..........................................................................................2

3

Normative references ...............................................................................................4

4

Terms and definitions ..............................................................................................6

5 5.1 5.2 5.3 5.4 5.5 5.6

Conventions .............................................................................................................7 Abbreviated terms ...............................................................................................7 UML notation ......................................................................................................8 Platform-neutral and platform-specific standards ...............................................8 Data dictionary tables ..........................................................................................8 Classes imported from other specifications with predefined XML encoding ..............................................................................................................8 Namespace Conventions ...................................................................................10

6

Sensor Planning Service – Abstract Overview ......................................................11 6.1 Introduction .......................................................................................................11 6.2 Client Server Interaction ...................................................................................12 6.3 Task – Concept and Handling ...........................................................................15 6.3.1 Introduction ...................................................................................................15 6.3.2 Tasking Parameters .......................................................................................16 6.3.3 Tasking requests............................................................................................16 6.3.4 Feasibility of a Task ......................................................................................17 6.3.5 Reserving a Task ...........................................................................................19 6.3.6 State Handling ...............................................................................................19 6.4 Status Reporting ................................................................................................22 6.5 Levels of Abstraction – SPS Chains..................................................................22 6.6 Asynchronous Communication .........................................................................23 6.7 Information Access............................................................................................24

7

Sensor Planning Service – Implementation Model ................................................25 7.1 Interface Overview ............................................................................................25 7.2 SPS Exceptions..................................................................................................29 7.3 Package Overview .............................................................................................31 7.3.1 Common Package .........................................................................................34 7.3.1.1 Introduction ................................................................................................34 7.3.1.2 Data Types .................................................................................................34 7.3.1.3 TaskingRequest ..........................................................................................36 7.3.1.4 TaskingResponse .......................................................................................38 7.3.1.5 StatusReport ...............................................................................................41 7.3.1.6 Task 45 7.3.1.7 TaskingRequestStatusCode........................................................................46 7.3.1.8 TaskStatusCode..........................................................................................47

ii

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.3.1.9 EventCode ..................................................................................................48 7.3.1.10 Alternative..................................................................................................50 7.3.1.11 ParameterData ............................................................................................50 7.3.2 GetCapabilities Operation .............................................................................51 7.3.2.1 Introduction ................................................................................................51 7.3.2.2 Data Types .................................................................................................51 7.3.2.3 Operation Request – GetCapabilities .........................................................52 7.3.2.4 Operation Response – Capabilities ............................................................54 7.3.2.5 Exceptions ..................................................................................................59 7.3.2.6 Examples ....................................................................................................59 7.3.3 Contents Package ..........................................................................................59 7.3.3.1 Introduction ................................................................................................59 7.3.3.2 Data Types .................................................................................................59 7.3.3.3 SPSContents...............................................................................................61 7.3.3.4 SensorOffering ...........................................................................................62 7.3.3.5 PointOrPolygon..........................................................................................63 7.3.4 DescribeTasking Operation ..........................................................................63 7.3.4.1 Introduction ................................................................................................63 7.3.4.2 Data Types .................................................................................................64 7.3.4.3 Operation Request - DescribeTasking .......................................................64 7.3.4.4 Operation Response - DescribeTaskingResponse .....................................65 7.3.4.5 Exceptions ..................................................................................................66 7.3.4.6 Examples ....................................................................................................66 7.3.5 Submit Operation ..........................................................................................66 7.3.5.1 Introduction ................................................................................................66 7.3.5.2 Data Types .................................................................................................66 7.3.5.3 Operation Request - Submit .......................................................................68 7.3.5.4 Operation Response - SubmitResponse .....................................................68 7.3.5.5 Exceptions ..................................................................................................70 7.3.5.6 Examples ....................................................................................................70 7.3.6 GetStatus Operation ......................................................................................71 7.3.6.1 Introduction ................................................................................................71 7.3.6.2 Data Types .................................................................................................72 7.3.6.3 Operation Request - GetStatus ...................................................................73 7.3.6.4 Operation Response - GetStatusResponse .................................................74 7.3.6.5 Exceptions ..................................................................................................83 7.3.6.6 Examples ....................................................................................................83 7.3.7 GetTask Operation ........................................................................................83 7.3.7.1 Introduction ................................................................................................83 7.3.7.2 Data Types .................................................................................................84 7.3.7.3 Operation Request – GetTask ....................................................................84 7.3.7.4 Operation Response – GetTaskResponse ..................................................85 7.3.7.5 Exceptions ..................................................................................................86 7.3.7.6 Examples ....................................................................................................87 7.3.8 DescribeResultAccess Operation ..................................................................87 7.3.8.1 Introduction ................................................................................................87 7.3.8.2 Data Types .................................................................................................95

Copyright © 2011 Open Geospatial Consortium

iii

OGC 09-000

7.3.8.3 Operation Request – DescribeResultAccess ..............................................96 7.3.8.4 TaskOrProcess ...........................................................................................97 7.3.8.5 Operation Response - DescribeResultAccessResponse .............................98 7.3.8.6 AvailableOrNot ..........................................................................................98 7.3.8.7 DataAvailable ............................................................................................99 7.3.8.8 DataNotAvailable ....................................................................................100 7.3.8.9 UnavailableCode ......................................................................................100 7.3.8.10 SPSMetadata ............................................................................................101 7.3.8.11 Exceptions ................................................................................................102 7.3.8.12 Examples ..................................................................................................102 7.3.9 Reserve Operation .......................................................................................103 7.3.9.1 Introduction ..............................................................................................103 7.3.9.2 Data Types ...............................................................................................103 7.3.9.3 Operation Request - Reserve ...................................................................105 7.3.9.4 Operation Response - ReservationReport ................................................105 7.3.9.5 ReservationReport....................................................................................107 7.3.9.6 Exceptions ................................................................................................108 7.3.9.7 Examples ..................................................................................................108 7.3.10 Confirm Operation ......................................................................................108 7.3.10.1 Introduction ..............................................................................................108 7.3.10.2 Data Types ...............................................................................................108 7.3.10.3 Operation Request - Confirm ...................................................................109 7.3.10.4 Operation Response - ConfirmResponse .................................................110 7.3.10.5 Exceptions ................................................................................................111 7.3.10.6 Examples ..................................................................................................111 7.3.11 GetFeasibility Operation .............................................................................112 7.3.11.1 Introduction ..............................................................................................112 7.3.11.2 Data Types ...............................................................................................112 7.3.11.3 Operation Request - GetFeasibility ..........................................................113 7.3.11.4 Operation Response - GetFeasibilityResponse ........................................114 7.3.11.5 Exceptions ................................................................................................115 7.3.11.6 Examples ..................................................................................................116 7.3.12 Update Operation ........................................................................................116 7.3.12.1 Introduction ..............................................................................................116 7.3.12.2 Data Types ...............................................................................................117 7.3.12.3 Operation Request - Update .....................................................................118 7.3.12.4 Operation Response - UpdateResponse ...................................................119 7.3.12.5 Exceptions ................................................................................................122 7.3.12.6 Examples ..................................................................................................122 7.3.13 Cancel Operation ........................................................................................122 7.3.13.1 Introduction ..............................................................................................122 7.3.13.2 Data Types ...............................................................................................122 7.3.13.3 Operation Request - Cancel .....................................................................123 7.3.13.4 Operation Response - CancelResponse ...................................................124 7.3.13.5 Exceptions ................................................................................................125 7.3.13.6 Examples ..................................................................................................126 7.4 SPS tasking parameters representation............................................................127

iv

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.4.6 7.4.7 8 8.1 8.2 8.3 9

Optional Parameters ....................................................................................128 Default Values ............................................................................................129 Updatable parameters..................................................................................130 Constraints/restrictions ...............................................................................132 Definition (observedProperty)/Semantics ...................................................133 Uoms ...........................................................................................................133 Encoding (XML, text, binary) ....................................................................133

Publish/Subscribe.................................................................................................133 Introduction .....................................................................................................133 SPS Events ......................................................................................................134 Channel based filtering/SPS notification topics ..............................................136

SOAP binding ......................................................................................................140 9.1 Introduction .....................................................................................................140 9.2 Exceptions .......................................................................................................140 9.2.1 StatusInformationExpired exception ..........................................................140 9.2.2 ModificationOfFinalizedTask exception ....................................................141 9.3 Action URIs .....................................................................................................141 9.4 Realization of Publish/Subscribe.....................................................................145 9.5 Realization of Asynchronous Request/Response ............................................145 9.6 SPS Examples Scenario...................................................................................145 9.6.1 Retrieving the Capabilities Document ........................................................146 9.6.2 Getting Result Access Information for a Procedure ...................................150 9.6.3 Getting the Tasking Parameter Description ................................................151 9.6.4 Determining the Feasibility of a Tasking Request......................................153 9.6.5 Scheduling a Task (Submit / Reserve) ........................................................154 9.6.5.1 Task Submission ......................................................................................154 9.6.5.2 Reserving a Task ......................................................................................155 9.6.5.3 Automatic Reservation Expiration ...........................................................156 9.6.5.4 Confirming a Reserved Task ...................................................................157 9.6.5.5 Cancelling a Scheduled Task ...................................................................158 9.6.5.6 Task Failure .............................................................................................159 9.6.5.7 Updating a Scheduled Task .....................................................................159 9.6.5.8 Usage of LatestResponseTime .................................................................162 9.6.5.9 Task Completion ......................................................................................163 9.6.6 Getting Result Access Information for a Task ............................................165 9.6.7 Service Exceptions ......................................................................................167 9.6.8 Notifications ................................................................................................168 9.6.9 Using WS-Addressing ................................................................................172

10 SPS Task/Tasking Request State Machine Documentation.................................177 10.1 Task State Machine .........................................................................................177 10.1.1 Diagrams .....................................................................................................177 10.1.2 States/Choices .............................................................................................179 10.1.2.1 Scheduled State ........................................................................................180 10.1.2.2 InExecution State .....................................................................................181 10.1.2.3 Reserved State ..........................................................................................183 10.1.2.4 Tasking Request Choice ..........................................................................183

Copyright © 2011 Open Geospatial Consortium

v

OGC 09-000

10.1.2.5 Final State ................................................................................................184 10.1.2.6 Initial State ...............................................................................................185 10.1.3 Events/Trigger.............................................................................................186 10.1.3.1 DataPublished ..........................................................................................186 10.1.3.2 ReservationExpired ..................................................................................186 10.1.3.3 TaskCancelled ..........................................................................................186 10.1.3.4 TaskCompleted ........................................................................................186 10.1.3.5 TaskConfirmed ........................................................................................187 10.1.3.6 TaskFailed ................................................................................................187 10.1.3.7 TaskReserved ...........................................................................................187 10.1.3.8 TaskSubmitted .........................................................................................187 10.1.3.9 TaskUpdated ............................................................................................187 10.2 Tasking Request State Machine ......................................................................187 10.2.1 Diagrams .....................................................................................................187 10.2.2 States/Choices .............................................................................................188 10.2.2.1 Pending State ...........................................................................................188 10.2.2.2 Accepted State .........................................................................................189 10.2.2.3 ChoiceA ...................................................................................................190 10.2.2.4 ChoiceB....................................................................................................190 10.2.2.5 Initial State ...............................................................................................191 10.2.2.6 Rejected (Final) State...............................................................................191 10.2.3 Events/Trigger.............................................................................................192 10.2.3.1 TaskingRequestAccepted .........................................................................192 10.2.3.2 TaskingRequestExpired ...........................................................................192 10.2.3.3 TaskingRequestRejected ..........................................................................193 10.2.3.4 TaskingRequestPending ...........................................................................193 11 Annex A – Abstract Test Suite and Conformance Testing (normative) ..............194 11.1 Conformance Class – Core ..............................................................................194 11.1.1 Capability Test ............................................................................................194 11.1.2 Modules with Basic Tests ...........................................................................194 11.1.2.1 Common Request Response Handling.....................................................194 11.1.2.2 Exception Reporting ................................................................................195 11.1.2.3 Service Metadata ......................................................................................196 11.1.2.4 DescribeTasking ......................................................................................199 11.1.2.5 Tasking.....................................................................................................200 11.1.2.6 State Handling ..........................................................................................201 11.1.2.7 Submit ......................................................................................................204 11.1.2.8 Result Handling .......................................................................................205 11.2 Conformance Class – State Logger .................................................................207 11.2.1 Capability Test ............................................................................................207 11.2.2 Modules with Basic Tests ...........................................................................208 11.2.2.1 Service Metadata ......................................................................................208 11.2.2.2 Behavior ...................................................................................................208 11.3 Conformance Class – Reservation Manager ...................................................209 11.3.1 Capability Test ............................................................................................209 11.3.2 Modules with Basic Tests ...........................................................................210 11.3.2.1 Structure ...................................................................................................210 vi

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

11.3.2.2 Service Metadata ......................................................................................210 11.3.2.3 Behavior ...................................................................................................211 11.4 Conformance Class – Task Canceller .............................................................212 11.4.1 Capability Test ............................................................................................212 11.4.2 Modules with Basic Tests ...........................................................................212 11.4.2.1 Structure ...................................................................................................212 11.4.2.2 Behavior ...................................................................................................213 11.4.2.3 Service Metadata ......................................................................................213 11.5 Conformance Class – Feasibility Controller ...................................................213 11.5.1 Capability Test ............................................................................................213 11.5.2 Modules with Basic Tests ...........................................................................214 11.5.2.1 Structure ...................................................................................................214 11.5.2.2 Service Metadata ......................................................................................214 11.6 Conformance Class – Task Updater ................................................................214 11.6.1 Capability Test ............................................................................................214 11.6.2 Modules with Basic Tests ...........................................................................215 11.6.2.1 Structure ...................................................................................................215 11.6.2.2 Behavior ...................................................................................................215 11.6.2.3 Service Metadata ......................................................................................217 11.7 Conformance Class – Basic PubSub ...............................................................218 11.7.1 Capability Test ............................................................................................218 11.7.2 Modules with Basic Tests ...........................................................................218 11.7.2.1 Event Publication .....................................................................................218 11.7.2.2 Notification Service Metadata .................................................................219 11.8 Conformance Class – Channel Based PubSub ................................................219 11.8.1 Capability Test ............................................................................................219 11.8.2 Modules with Basic Tests ...........................................................................220 11.8.2.1 Channel based Event Publication.............................................................220 11.8.2.2 Channel based Notification Service Metadata .........................................220 11.9 Conformance Class – XML Encoding ............................................................221 11.9.1 Capability Test ............................................................................................221 11.9.2 Modules with Basic Tests ...........................................................................221 11.9.2.1 Validation.................................................................................................221 11.10 Conformance Class – SOAP ...........................................................................222 11.10.1 Capability Test ............................................................................................222 11.10.2 Modules with Basic Tests ...........................................................................222 11.10.2.1 Action URIs ...................................................................................222 11.10.2.2 Exception Handling .......................................................................223 11.10.2.3 Service Metadata ...........................................................................223 12

Annex B - XML Schema Documents (normative) ..............................................225

13

Annex C - Revision history .................................................................................229

Copyright © 2011 Open Geospatial Consortium

vii

OGC 09-000

Figures

Page

Figure 1 - SPS Conformance Classes and their dependencies .............................................4 Figure 2 — SWE Interface of an Asset (Management System) ........................................11 Figure 3 — client server interaction part 1 ........................................................................12 Figure 4 — client server interaction part 2 ........................................................................13 Figure 5 — client server interaction part 3 ........................................................................14 Figure 6 — client server interaction part 4 ........................................................................15 Figure 7 — dynamics of a feasibility study result .............................................................18 Figure 8 — tasking request state machine diagram ...........................................................20 Figure 9 — task state machine diagram.............................................................................21 Figure 10 — tasking on various abstraction levels ............................................................23 Figure 11 — SPS interfaces UML diagram .......................................................................26 Figure 12 — SPS operations with applicable exceptionCodes ..........................................30 Figure 13 — SPS model external dependencies ................................................................32 Figure 14 — SPS package dependencies ...........................................................................32 Figure 15 — Data types contained in the Common package.............................................35 Figure 16 — Data types of the GetCapabilities operation .................................................52 Figure 17 — Data types contained in the Contents package .............................................60 Figure 18 — Data types of the DescribeTasking operation...............................................64 Figure 19 — Data types of the Submit operation ..............................................................67 Figure 20 — Data types of the GetStatus operation ..........................................................73 Figure 21 – Status information returned for various exemplary tasks/tasking requests when the “since” parameter was used in GetStatus request ..................................77 Figure 22 – Status information returned for various exemplary tasks/tasking requests when the “since” parameter was not used in GetStatus request ..............78 Figure 23 — Data types of the GetTask operation ............................................................84 Figure 24 – Status information returned in the GetTaskResponse for various exemplary tasks/tasking requests when the state logger conformance class is supported by the service.........................................................................................86 Figure 25 — Mapping of UML Reference elements to XML Schema elements. Rarely used elements are grayed out .....................................................................94 Figure 26 — Data types of the DescribeResultAccess operation ......................................96

viii

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 27 — Data types of the Reserve operation ...........................................................104 Figure 28 — Data types of the Confirm operation ..........................................................109 Figure 29 — Data types of the GetFeasibility operation .................................................113 Figure 30 — Data types of the Update operation ............................................................118 Figure 31 — Data types of the Cancel operation.............................................................123 Figure 32 — task state machine diagram.........................................................................178 Figure 33 — task state machine diagram – tabular representation ..................................179 Figure 34 — tasking request state machine diagram .......................................................188

Copyright © 2011 Open Geospatial Consortium

ix

OGC 09-000

Tables

Page

Table 1 — SPS Conformance Classes .......................................................................................... 3 Table 2 — Implementation of types from OWS Common [OGC 06-121r3]............................ 9 Table 3 — Implementation of types from SWE Common Data Model [OGC 08-094] ........... 9 Table 4 — Implementation of types from SWE Service Model [OGC 09-001] ....................... 9 Table 5 — Prefixes and Namespaces used in this standard ..................................................... 10 Table 6 — Exception (code) defined by SPS ............................................................................. 29 Table 7 — Properties in the TaskingRequest data type........................................................... 38 Table 8 — Status Codes, usage and meaning in TaskingResponse specializations ................ 40 Table 9 — Properties in the TaskingResponse data type ........................................................ 41 Table 10 — Properties in the StatusReport data type ............................................................. 44 Table 11 — Properties in the Task data type............................................................................ 46 Table 12 — Properties in the TaskingRequestStatusCode code list ....................................... 47 Table 13 — Properties in the TaskStatusCode code list .......................................................... 48 Table 14 — Properties in the EventCode code list ................................................................... 49 Table 15 — Properties in the Alternative data type ................................................................. 50 Table 16 — Properties in the ParameterData data type .......................................................... 51 Table 17 — Properties in the GetCapabilities data type ......................................................... 53 Table 18 — Additional Section name value and meaning ....................................................... 53 Table 19 — Implementation of parameters in GetCapabilities operation request ............... 54 Table 20 — Properties in the Capabilities data type ................................................................ 55 Table 21 — SPS section name values and contents .................................................................. 56 Table 22 — Required values of OperationsMetadata section attributes................................ 57 Table 23 — Optional values of OperationsMetadata section attributes ................................ 57 Table 24 — Properties in the SPSContents data type .............................................................. 61 Table 25 — Code values applicable to the supportedEncoding property .............................. 62 Table 26 — Properties in the SensorOffering type .................................................................. 62 Table 27 — Inheritance of SensorOffering properties (from SPSContents) ......................... 63 Table 28 — Properties in the PointOrPolygon union .............................................................. 63 Table 29 — Property in the DescribeTasking data type .......................................................... 65 Table 30 – Properties in the DescribeTaskingResponse data type.......................................... 65 Table 31 – StatusReport usage for different state transitions of a Submit request ............... 69

x

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Table 32 — Properties in the GetStatus data type ................................................................... 74 Table 33 — Properties in the GetStatusResponse data type ................................................... 75 Table 34 – Providing status information on GetFeasibility and Update requests ................. 79 Table 35 – Providing status information on Reserve and Submit requests ........................... 80 Table 36 – Providing status information on scheduled tasks (part 1) .................................... 81 Table 37 – Providing status information on scheduled tasks (part 2) .................................... 82 Table 38 — Properties in the GetTask data type ..................................................................... 85 Table 39 — Properties in the GetTaskResponse data type ..................................................... 85 Table 40 — Semantics of DescribeResultAccess operation request using task or procedure identifier ................................................................................................................................ 87 Table 41 – Service Reference Mapping ..................................................................................... 90 Table 42 – Examples of applicable mime types when referencing data ................................. 94 Table 43 — Property in the DescribeResultAccess data type................................................... 97 Table 44 — Properties in the TaskOrProcess union ................................................................. 98 Table 45 — Property in the DescribeResultAccessResponse data type.................................. 98 Table 46 — Properties in the AvailableOrNot union ............................................................... 99 Table 47 — Property in the DataAvailable data type .............................................................. 99 Table 48 — Properties in the DataNotAvailable data type ................................................... 100 Table 49 — Properties in the UnavailableCode code list ....................................................... 101 Table 50 — Properties in the SPSMetadata data type ........................................................... 102 Table 51 — Property in the Reserve data type ....................................................................... 105 Table 52 – StatusReport usage for different state transitions of a Reserve request ............ 107 Table 53 — Property in the ReservationReport type ............................................................. 108 Table 54 — Property in the Confirm data type ...................................................................... 110 Table 55 — Property in the ConfirmResponse data type ...................................................... 110 Table 56 – StatusReport property usage in Confirm operation response ............................ 111 Table 57 – StatusReport usage for different state transitions of a GetFeasibility request . 115 Table 58 — Property in the Update data type ........................................................................ 119 Table 59 — Property in the UpdateResponse data type ........................................................ 120 Table 60 – StatusReport usage for different state transitions of an Update request........... 121 Table 61 — Property in the Cancel data type ......................................................................... 124 Table 62 — Properties in the CancelResponse data type ...................................................... 124 Table 63 – StatusReport property usage in Cancel operation response ............................... 125 Table 64 — SPS Events and their encoding ............................................................................ 134 Table 65 – StatusReport encoding for notification of tasking request state transition ....... 136 Table 66 – StatusReport encoding for notification of scheduled task state transition ........ 136

Copyright © 2011 Open Geospatial Consortium

xi

OGC 09-000 Table 67 — Topics and the events posted on them ................................................................. 139 Table 68 — Action URIs for SPS message facets ................................................................... 143 Table 69 — Action URI for SPS exceptions/fault types ......................................................... 144 Table 70 — Connections of the Scheduled state...................................................................... 181 Table 71 — Connections of the InExecution state .................................................................. 182 Table 72 — Connections of the Reserved state ........................................................................ 183 Table 73 — Connections of the Tasking Request choice......................................................... 184 Table 74 — Connections of the Final state .............................................................................. 185 Table 75 — Connections of the Initial state ............................................................................ 186 Table 76 — Connections of the Pending state ......................................................................... 189 Table 77 — Connections of the Accepted state ........................................................................ 190 Table 78 — Connections of the ChoiceA choice ...................................................................... 190 Table 79 — Connections of the ChoiceB choice ...................................................................... 191 Table 80 — Connections of the Initial state ............................................................................ 191 Table 81 — Connections of the Rejected state ......................................................................... 192 Table 82 — XML Schema implementation of types defined by the SPS conceptual model 226

xii

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

i.

Abstract

The OpenGIS® Sensor Planning Service Interface Standard (SPS) defines interfaces for queries that provide information about the capabilities of a sensor and how to task the sensor. The standard is designed to support queries that have the following purposes: to determine the feasibility of a sensor planning request; to submit and reserve/commit such a request; to inquire about the status of such a request; to update or cancel such a request; and to request information about other OGC Web services that provide access to the data collected by the requested task. This is one of the OGC Sensor Web Enablement (SWE) [http://www.opengeospatial.org/ogc/markets-technologies/swe] suite of standards.

ii.

Keywords

ogcdoc, sps, swe, swes, gml

iii.

Preface

This standard is part of OGC’s Sensor Web Enablement (SWE) activity. It is the successor of SPS version 1.0.0 (OGC 07-014r3). Suggested additions, changes, and comments on this report are welcome and encouraged. Such suggestions may be submitted using the OGC online change request application: http://portal.opengeospatial.org/public_ogc/change_request.php

iv.

Document terms and definitions

This document uses the standard terms defined in Subclause 5.3 of [OGC 06-121r3], which is based on the ISO/IEC Directives, Part 2. Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.

v.

Submitting organizations

The following organizations submitted this document to the Open Geospatial Consortium Inc. a) International Geospatial Services Institute GmbH (iGSI) b) Spot Image, S.A. c) SeiCorp, Inc. Copyright © 2011 Open Geospatial Consortium

xiii

OGC 09-000

vi.

Document contributor contact points

All questions regarding this document should be directed to the editor or the contributors: CONTACT Johannes Echterhoff (editor) Ingo Simonis (editor) Alexandre Robin Jim Greenwood

vii.

COMPANY iGSI iGSI Spot Image, S.A. SeiCorp, Inc.

EMAIL [email protected] [email protected] [email protected] [email protected]

Issues

Any issues in this specification are captured in the following format: Issue Name: [Issue Name goes here.] (Your Initials, Date) Issue Description: [Issue Description.] Resolution: [Insert Resolution Details and History.] (Your Initials, Date)]

viii.

Changes to the OGC Abstract Specification

The OpenGIS® Abstract Specification does not require changes to accommodate the technical contents of this document.

ix.

Future work

Future Work will mainly address the abstraction of the currently operation-based specification to a behavior-based specification. Then, all binding approaches, such as SOAP or REST, will be defined in extensions to the core specification. Direct subscriptions together with a tasking request are currently out-of-scope for the standard. This can lead to situations in which a client interested in receiving notifications about that tasking request or implied task misses published notifications. Functionality to enable performing a tasking request and directly subscribing for notification of related events should be realized in the future – either in a revision of the standard itself or as an extension. Conditional dependencies between parameters (example: if parameter A has value Y then parameter B may only have value Z etc) can be supported in future versions of this standard. The functionality could also be added through extensions.

xiv

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

During the development of this standard, the OGC has changed its specification document template and development policies. This standard reflects those changes as much as possible, but full compliancy to the new OGC specification model needs to be achieved in future releases.

Copyright © 2011 Open Geospatial Consortium

xv

OGC 09-000

Foreword This SPS 2.0 standard replaces version 1.0 of the SPS standard (OGC 07-014r3). Version 2 revises and extends version 1. Though the general functionality of the service is preserved, the interface defined in this document is not backwards compatible to that of SPS version 1.0.0 The Sensor Planning Service is part of the OGC Sensor Web Enablement document suite. This document includes three annexes. Annexes A and B are normative, and Annex C is informative. Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights. Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.

xvi

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Introduction The Sensor Planning Service (SPS) is intended to provide a standard interface to task collection assets (i.e., satellites, other sensors, and other information gathering assets) and to the support systems that surround them. Not only will different kinds of assets with differing capabilities be supported, but also different kinds of request processing systems, which may or may not provide access to the different stages of planning, scheduling, tasking, collection, processing, archiving, and distribution of requests and the resulting observation data and information that is the result of the requests. The SPS is designed to be flexible enough to handle such a wide variety of configurations. This standard begins with an abstract overview of the SPS interface before describing the information model for operation requests and responses in a platform-neutral manner and subsequently applying this model to a specific binding (SOAP in this case).

Copyright © 2011 Open Geospatial Consortium

xvii

OpenGIS® Implementation Standard

OGC 09-000

OpenGIS® Sensor Planning Service Implementation Standard 1

Scope

This OGC™ standard establishes the baseline of Sensor Planning Service functionality and requirements describing this functionality. This document defines service interfaces for parameterizing – also called tasking – of taskable devices, such as sensors or actuators. It defines terms and their synonyms relevant to the device control domain (task, tasking, sensor, asset etc). The interfaces defined in this document provide functionality to: • • • • • • • • •

Retrieve metadata about the service (to understand service capabilities) Describe the parameterization options available for the sensor Check if the service is capable of performing a planned task (feasibility check) Reserve resources required to perform a planned task for a certain amount of time (useful for handling combined tasking of multiple sensors) Instruct the service to execute a task for a sensor Retrieve the status of a task Update a task Retrieve information about access to the data collected by a sensor – also on a per-task basis Cancel a task

This document leverages functionality defined by other standards, which enables: • •

Provision and management of sensor descriptions Publication of and subscription for information on events recognized by the service – for example to automatically notify clients of new information on their task (that new data is available, that it was completed etc.)

The first sections of this document describe the theoretical background to understand SPS functionalities. After that, the common information and communication model for SPS is specified. This OGC™ standard is applicable to all use cases in which one or more sensors or sensor systems can or need to be parameterized in order to influence the measurement process and therefore the information gathered by assets or systems.

Copyright © 2011 Open Geospatial Consortium

1

OGC 09-000

2

Compliance

2.1 Specification identifier

All requirements and conformance-classes described in this document are owned by the standard identified as http://www.opengis.net/spec/SPS/2.0. 2.2 Conformance Classes

The following Table 1 specifies the conformance classes defined by this standard. Compliance with a given conformance class shall be checked using the relevant tests specified in Annex A (normative).

2

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 1 — SPS Conformance Classes Conformance class name

Conformance class identifier

Operation and/or behavior

Core

http://www.opengis.net/sp ec/SPS/2.0/conf/Core

State Logger

http://www.opengis.net/sp ec/SPS/2.0/conf/StateLo gger

Feasibility Controller

http://www.opengis.net/sp ec/SPS/2.0/conf/Feasibil ityController

Reservation Manager

http://www.opengis.net/sp ec/SPS/2.0/conf/Reserva tionManager

Task Updater

http://www.opengis.net/sp ec/SPS/2.0/conf/TaskUp dater http://www.opengis.net/sp ec/SPS/2.0/conf/TaskCa nceller http://www.opengis.net/sp ec/SPS/2.0/conf/BasicPu bSub

The server implements the GetCapabilities, DescribeTasking, Submit, GetStatus, GetTask and DescribeResultAccess operations as defined by this standard as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server implements state logger functionality as defined by this standard as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server implements the GetFeasibility operation as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server implements the Reserve and Confirm operations as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server implements the Update operation as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server implements the Cancel operation as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server implements publish/subscribe functionality and publish SPS events as defined in this standard as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server implements publish/subscribe functionality and publish SPS events on the SPS channels/topics as defined by this standard as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server encodes the data types from the conceptual model in XML as defined by this standard as well as the conformance classe(s) that this conformance class depends upon (see Figure 1). The server implements the SOAP binding as defined in this standard as well as the conformance classe(s) that this conformance class depends upon (see Figure 1).

Task Canceller Basic PubSub

ChannelBased PubSub

http://www.opengis.net/sp ec/SPS/2.0/conf/Channel BasedPubSub

XML Encoding

http://www.opengis.net/sp ec/SPS/2.0/conf/XMLEn coding

SOAP

http://www.opengis.net/sp ec/SPS/2.0/conf/SOAP

Copyright © 2011 Open Geospatial Consortium

3

OGC 09-000

Figure 1 - SPS Conformance Classes and their dependencies

3

Normative references

The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies. ISO 19105:2000, Geographic information — Conformance and Testing ISO 19108:2002, Geographic information — Temporal schema ISO 19136:2007, Geographic information -- Geography Markup Language (GML) (see also: OpenGIS® Encoding Standard Geography Markup Language, OGC document 07-036) ISO DIS 19156:2010, Geographic information — Observations and Measurements OGC 06-121r3, OpenGIS® Web Services Common Specification This OWS Common Specification contains a list of normative references that are also applicable to this Implementation Standard.

NOTE

4

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

OpenGIS® Encoding Standard, SWE Common Data Model, OGC document number 08094 OpenGIS® Implementation Standard, SWE Service Model, OGC document number 09001 This SWE Service Model standard contains a list of normative references that are also applicable to this Implementation Standard.

NOTE

In addition to this document, this standard includes several normative XML Schema Document files as specified in Annex B.

Copyright © 2011 Open Geospatial Consortium

5

OGC 09-000

4

Terms and definitions

For the purposes of this standard, the terms and definitions specified in clause 4 of [OGC 06-121r3] shall apply, as well as the terms and definitions specified in clause 4 of [09001]. In addition, the following terms and definitions apply. Asset synonyms: sensor, simulation an available means of collecting information 4.1

Asset Management System synonyms: acquisition system, asset support system system for controlling the effective utilization of an asset 4.2

Collection act of gathering information 4.3

NOTE

In the context of SPS, the term is usually perceived having the process of gathering information in mind. Another interpretation is the aggregation of the results of one or more collection processes.

Requirement something that is necessary in advance 4.4

Simulation use of models to investigate time dependent processes 4.5

Task (conceptual) resource that represents a SPS assignment. It includes the (possibly empty) set of tasking parameters. 4.6

Tasking parameterizing an asset; can be done by sending one or more tasking requests 4.7

Tasking request request with certain tasking semantics that contains tasking parameters 4.8

NOTE

In the context of SPS, the GetFeasibility, Reserve, Submit and Update requests are tasking requests.

Tasking Parameter parameter that has an influence on the parameterization of an asset 4.9

6

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

5

Conventions

5.1 Abbreviated terms

Most of the abbreviated terms listed in Subclause 5.1 of the OWS Common Implementation Specification [OGC 06-121r3] apply to this document, plus the following abbreviated terms. AOI

Area Of Interest

FES

Filter Encoding Specification

AM

Asset Management

O&M

Observation and Measurement

SensorML

Sensor Model Language

SOS

Sensor Observation Service

SPS

Sensor Planning Service

SWE

Sensor Web Enablement

SWE Common SWE Common Data Model SWES

SWE Service Model

WCS

Web Coverage Service

WMS

Web Map Service

WNS

Web Notification Service

Copyright © 2011 Open Geospatial Consortium

7

OGC 09-000

5.2 UML notation

Diagrams that appear in this standard are presented using the Unified Modeling Language (UML) static structure diagram, as described in Subclause 5.2 of [OGC 06-121r3]. NOTE Packages and data types from foreign namespaces or data types from packages other than the one under consideration are shown with grey background unless they are given only as types of attributes from classes in the model defined in this specification. Interfaces are shown with light turquoise background.

5.3 Platform-neutral and platform-specific standards

For compliance with Clause 10 of OGC Topic 12 and ISO 19119, this standard follows the pattern defined in subclause 5.4 of [OGC 06-121r3]. That is, model elements are specified in platform-neutral fashion first, using tables that serve as data dictionaries for the UML model (see clause 5.4 of this document). Platform-specific encodings of these model elements are provided in separate clauses or documents. The XML Schema encoding has automatically been generated using the rules defined in clause 24 of [OGC 09-001]. This document specifies platform-specific encodings appropriate for a SOAP/WSDL operation binding. However, the model as well as its XML Schema encoding (and other data) can be used by other bindings as well, like REST(ful) or POX (Plain Old XML) over HTTP (using XML or KVP encoding). 5.4 Data dictionary tables

The UML model data dictionary is specified herein in a series of tables. The contents of the columns in these tables are described in table 1 of [OGC 06-121r3]. The contents of these data dictionary tables are normative, including any table footnotes. 5.5 Classes imported from other specifications with predefined XML encoding

This specification uses an automatic mapping approach from the UML model to the XML Schema encoding. The approach is described in chapter 24 of [OGC 09-001]. As shown in Figure 13, this standard uses types defined by other standards. For the mapping to XML Schema, the implementation instructions listed in table D.2 of [OGC 07-036] are used together with the instructions listed in Table 2, Table 3 and Table 4 in this standard and Table 4 from [OGC 09-001]. For an explanation of the table columns, see clause D.2.1 in OGC 07-036.

8

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 2 — Implementation of types from OWS Common [OGC 06-121r3] UML class

object element

type

property type

AbstractMetadata

ows:AbstractMetaData

-

-

GetCapabilities

-

ows:GetCapabilitiesType

-

LanguageString

-

ows:LanguageStringType

-

OWSServiceMetadata

-

ows:CapabilitiesBaseType

-

ReferenceGroup

ows:ReferenceGroup

ows:ReferenceGroupType

-

Table 3 — Implementation of types from SWE Common Data Model [OGC 08-094] UML class

object element

type

property type

AbstractDataCom ponent

swe:AbstractDataCo mponent

swe:AbstractDataCompo nentType

swe:AbstractDataComponentP ropertyType

AbstractEncoding

swe:AbstractEncodin g

swe:AbstractEncodingTy pe

swe:AbstractEncodingPropert yType

Table 4 — Implementation of types from SWE Service Model [OGC 09-001] UML class

object element

type

property type

AbstractContents

swes:AbstractContent s

swes:AbstractContentsTy pe

swes:AbstractContentsProper tyType

AbstractOffering

swes:AbstractOffering

swes:AbstractOfferingTy pe

swes:AbstractOfferingProper tyType

ExtensibleRequest

swes:ExtensibleReque st

swes:ExtensibleRequestT ype

swes:ExtensibleRequestProp ertyType

ExtensibleRespons e

swes:ExtensibleRespo nse

swes:ExtensibleResponse Type

swes:ExtensibleResponsePro pertyType

NotificationProduc erMetadata

swes:NotificationProd ucerMetadata

swes:NotificationProduce rMetadataType

swes:NotificationProducerM etadataPropertyType

Copyright © 2011 Open Geospatial Consortium

9

OGC 09-000

5.6 Namespace Conventions

This standard uses a number of namespace prefixes throughout; they are listed in Table 5. Note that the choice of any namespace prefix is arbitrary and not semantically significant. Table 5 — Prefixes and Namespaces used in this standard Prefix

10

Namespace

gml

http://www.opengis.net/gml/3.2

ows

http://www.opengis.net/ows/1.1

soap11

http://schemas.xmlsoap.org/soap/

soap12

http://www.w3.org/2003/05/soap-envelope

swe

http://www.opengis.net/swe/2.0

swes

http://www.opengis.net/swes/2.0

wsa

http://www.w3.org/2005/08/addressing

wsn-b

http://docs.oasis-open.org/wsn/b-2

xs

http://www.w3.org/2001/XMLSchema

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

6

Sensor Planning Service – Abstract Overview

6.1 Introduction

The operational context of the SPS is abstracted from, and therefore applies to, several areas of interest. In the scientific area there is a constant interplay between facts, and theories that explain the facts, which then gives rise to the need for more information in order to confirm and extend the theories. Similarly, in the medical area symptoms give rise to a need for information that calls for tests that support diagnosis. In the military area there is always a great deal that is unknown about a battle space, or about a theatre of operations other than war, which gives rise to needs for specific useful information. In the business area corporations and other non-governmental organizations have a need for global economic intelligence. All of these areas have information needs, and the SPS is used to task assets to satisfy those needs. The SPS provides an interface to parameterize assets and asset management systems. It can be applied whenever a client is allowed to influence the internal processes of such a system. The SPS does not provide direct access to the information gathered by the system itself. This will be done via a SOS or some other (OGC) Web service. It rather serves as an interface layer to the parameterization interface of the underlying system (see Figure 2).

Figure 2 — SWE Interface of an Asset (Management System) The SPS is an interface to a system of any complexity. The system itself is considered as a black box. In this black box, some sort of process gets executed that can be manipulated by setting specific parameters. Example: a webcam takes pictures every minute. The SPS interface to this webcam allows modifying this time interval to anything between 10sec and 1hr. Example: A more complex example is that of a satellite. The SPS interface allows to set a number of parameters, such as region of interest, time of interest, incidence angle with azimuth and elevation, ground resolution etc.

It is up to the SPS provider to define which parameterization options are available to clients via the SPS interface of the given service. A system operator may even decide to have a chain of SPS instances to provide different capabilities to different types of users for the very same asset.

Copyright © 2011 Open Geospatial Consortium

11

OGC 09-000 Example: Consider the webcam again. Authorized users may change the looking angle and the zoom value, whereas non-authorized users can only chose between three pre-defined settings.

This concept of abstraction levels is described in more detail in section 6.5. 6.2 Client Server Interaction

This section explains the typical interaction between an SPS client and service. The interaction starts with the GetCapabilities request to explore what the service can offer. If additional information about a sensor is required, the DescribeSensor operation is used to retrieve all available information about the sensor (see Figure 3).

Figure 3 — client server interaction part 1 Next, the client needs to learn which parameters have to be set in order to task the sensor. The client sends a DescribeTasking request and receives a DescribeTaskingResponse, which defines syntax and semantic of each tasking parameter, including choices between different parameter settings, default values, and value ranges. Note: For complex missions, a huge number of parameters might need to be set by clients. Alternatively, the service might only provide a choice between five preconfigured missions, and then there might only be a single parameter to be set by clients, even though the missions are very complex in nature. It fully depends on the service provider to define the parameters the client shall or may set. The definition of tasking profiles is encouraged to reflect the specific requirements of different communities in a consistent way. Nevertheless, tasking parameters are encoded using SWE Common and the SPS provider should add semantic annotation to them. This allows generic SPS clients to display more specific parameter descriptions including their semantic annotations so that a client can still meaningfully task an asset even if the client software does not provide any other support for this activity (which client software that was specifically developed to support certain tasking profiles will most probably do).

12

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

After the client learned about the tasking parameters, it can choose to either submit a tasking request (Submit operation) or to perform a feasibility check (GetFeasibility operation) – see Figure 4. Both operations create – if valid and accepted – a SPS assigment called task. Other operations allow to reserve and update a task, which will be discussed later on.

Figure 4 — client server interaction part 2 Note: Before being accepted, each tasking request is checked for feasibility by the service. Even though a tasking request has been reported previously as feasible, it does not mean that this task is still feasible at the time of submitting the task. The façaded asset might have been tasked by someone else in the meantime or became unavailable (see clause 6.3.4 for further details).

The GetFeasibilityResponse contains a StatusReport, which indicates that the tasking request is or is not feasible. Optionally, the report lists alternative sets of tasking parameters that might help the client in formulating a tasking request that is feasible and that satisfies his information needs.

Copyright © 2011 Open Geospatial Consortium

13

OGC 09-000

Independent of a prior GetFeasibility request, clients always send Submit/Reserve tasking requests with all required tasking parameters to the service. There is no option to use the identifier of a previous GetFeasibility tasking request in a subsequent Submit/Reserve tasking request. This lifts the burden from the service to store all GetFeasibility request payloads. 1 If a task defined by the client is submitted to the service and is feasible, it is executed by the service. A client may reserve a task using the Reserve operation. All resources required to execute the task are blocked by the service but execution does not start until the client explicitly confirms it (via the Confirm operation) – see Figure 5.

Figure 5 — client server interaction part 3 A reservation expires at a defined point in time at which a service can reclaim all resources blocked by the reservation. Once a task is submitted/reserved, the client can Update or Cancel it. If a service cannot reserve/execute a request as provided by the client, it can provide a list of alternative parameter settings. A client can always ask for the current status of a task / tasking request via the GetStatus operation – see Figure 6.

1 However, such behavior can be defined in an extension of this specification.

14

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 6 — client server interaction part 4 The SPS responds to DescribeResultAccess requests with references to all data that was produced for a given task, even if the task was cancelled or has failed. Clients can explore the references and retrieve the data gathered for this task. The SPS service can also send notifications including StatusReports to inform interested clients about specific events, for example that new data has been published for a task, that a task was completed or has failed. See clause 8 for further details on asynchronous notification behavior. 6.3 Task – Concept and Handling 6.3.1

Introduction

The following sections discuss relevant aspects of tasking assets via SPS. The terms task, tasking, tasking request and tasking parameter are defined in clause 4 and thus are not defined again in this section.

Copyright © 2011 Open Geospatial Consortium

15

OGC 09-000 6.3.2

Tasking Parameters

In order to parameterize an asset (management system), clients need to provide tasking parameters that influence the parameterization of the asset. Tasking parameters need to: •

describe full syntax as well as semantic of the parameter

be extensible with metadata

support optional parameters

support choices between parameterization options

support default values

support provision of value constraints

indicate whether the parameter can be used in a task update

The data types defined in SWE Common Data Model [OGC 08-094] satisfy these requirements and thus are used by SPS for defining tasking parameters and for encoding their values. 6.3.3

Tasking requests

To parameterize an asset, a client first has to initialize a set of tasking parameters, which constitute the task that the client is interested in getting executed by the SPS. The definition of the tasking parameters for a given asset can be retrieved via the SPS describeTasking operation. Then, the client has required all information to formulate and send a tasking request to the SPS. Four types of tasking request are differentiated. •

• •

getFeasibility – to determine whether the task (remember, a tasking request contains tasking parameters) can be executed by the service or not, depending upon its current state (see clause 6.3.4). This operation can also be used to check if an update of an existing task is feasible. reserve – to block all resources required to execute the task (if it is feasible) for a certain amount of time; this is useful to ensure that assets from different services can be tasked together (see clause 6.3.5). The reserved task either expires or gets confirmed to be executed by the client. submit – to instruct the service to execute the task (if it is feasible). update – to update (if feasible) the tasking parameters for a task that is already reserved or in execution.

Determining if a tasking request is feasible can take a long time, depending on the procedures executed by the service to evaluate the feasibility. In simple cases a trivial syntax check of the tasking parameters might be sufficent, while in other cases the service might have to wait for human approval. 16

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

However, clients may require information to be collected until a certain point in time and thus need the feasibility check to be completed some time before. Clients define this latest time when the response to a getFeasibility request must be available using the lastestResponseTime property in their request (see clause 7.3.1.3). If the service is not able to determine the feasibility of a tasking request until then, both the service and the client consider the tasking request as not feasible. This decision cannot be changed later on, i.e. any response sent by the service at a later stage is void. A feasible tasking request means that it is accepted by the service. Depending on the request, the SPS either schedules a new task or provides a positive feasibility response without doing any further activity internally (see clause 6.3.6 for further details on state handling). Tasking in general can involve a sequence of tasking requests to have an asset gather the desired information. Example: A client first checks the feasibility of a task (via the getFeasibility operation) – once a feasible set of tasking parameters has been determined, the task is submitted (via the submit operation) and is then updated multiple times to adjust the way the asset is gathering information. This can for example be a switch of the sampling frequency, or orientation of a remote sensor.

Clause 6.2 explained the client/server interactions for tasking an asset via the SPS in more detail. 6.3.4

Feasibility of a Task

To task a certain asset or system, tasking parameters have to be provided by the client. The definition of these parameters depends on the given asset and the parameterization abstraction level chosen by the service provider (see clause 6.5 for further information). A set of tasking parameters – or better: the set of values for these parameters – constitutes a tasking request (see clause 6.3.3). Before an SPS can accept such a tasking request, it has to check whether that task can be performed or not. This is called a feasibility check. Feasibility of a task (or tasking request) shall be checked: • •

• •

by client request, i.e. if a client needs a pre-check for an intended task. if a client wants to reserve a task; a reserved task can be set to operational state by the client at any time until the reservation expires. The service has to ensure the full feasibility of the task during the reservation time. Under certain conditions, the service cannot maintain the feasibility of a reserved task, e.g. if the asset was tasked by someone else with higher priority. If the service supports publish/subscribe functionality as described in this specification then it informs the client that the reserved task has failed. when a task is submitted; the task can only be executed if it is feasible. whenever the client wants to perform an update of a reserved or submitted task.

The feasibility check performed by the service shall proof that the asset is capable of executing the intended task or task update. As such, during a feasibility study a service can check the items on the following (not exhaustive) list:

Copyright © 2011 Open Geospatial Consortium

17

OGC 09-000

• • • • •

syntax of tasking parameters presence of mandatory parameters validity of parameter configuration asset availability parameterization update is valid according to current execution state

The result of a feasibility check depends on the current state of the service and associated resources (e.g. the asset itself but also operators, support units, radio links, etc). As an example, imagine a task intended to be performed during a certain interval of time by a specific asset (see Figure 7).

Figure 7 — dynamics of a feasibility study result Client A checks the feasibility of a task to be executed in the time interval t1-t2 (1.1). The SPS checks the internal schedule for asset X (1.2) and recognizes that the time frame is not blocked by any other task. The SPS therefore responds that the task is feasible. Before client A acts again, client B submits a task for asset X with the time interval t1-t2 (2.1). Again the SPS checks if the time frame is not already blocked by another task (2.2) and – as this is not the case – adds the task to the schedule of asset X (2.3). The time interval t1-t2 in the schedule of asset X is now blocked by the task from client B. The SPS has accepted the submission of the task from client B and sends an according response. Now client A submits its tasking request (3.1). The SPS checks the internal schedule of asset X and recognizes that the time frame t1-t2 is already blocked by another task (from client B). It thus rejects the submission.

18

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 6.3.5

Reserving a Task

Clients can reserve tasks. This is useful e.g. if a client needs to task several assets (that are useful to him only if tasked in one go) via different services. A task can also be reserved before being submitted. Such a reservation actually represents a task for which all required resources are allocated by the service but which shall not be executed until the client confirms it. In other words, the client puts a reserved task "on hold". This can be compared to a transaction in which the client first provides all parameterization details and finally confirms his task. The service shall check the feasibility of the task before it accepts the reservation. When the client confirms the reserved task, it is executed by the service. The confirmation does not involve an additional feasibility check by the service because a reserved task shall be feasible until it expires. If a service can no longer guarantee the feasibility of a reserved task for any reason, the reservation shall fail. The expiration time of a reserved task is defined by the service (optionally in agreement with the expiration time the client requested), thus making sure that resources are not blocked forever. The client can cancel a reservation if the service supports the cancel operation. A reserved task can be updated if tasking parameters are updatable (see clause 6.3.2). Each update is subject to a feasibility check by the service. 6.3.6

State Handling

This section explains in more detail how an SPS handles the states of a tasking request and a task. This is done via two state machine diagrams. A formal documentation of the diagrams is given in clause 10. NOTE: One or more of the transitions shown in the following state diagrams are triggered by events and have a specific effect, which is to notify interested clients about the event (/Notify). A service that implements publish/subscribe functionality can inform clients about these events.

When a client sends a tasking request to the service, it initiates the behavior shown in Figure 8.

Copyright © 2011 Open Geospatial Consortium

19

OGC 09-000

Figure 8 — tasking request state machine diagram The decision if a tasking request is feasible or not is either directly available (feasibility determined), or requires more time (feasibility pending). The latter causes the tasking request to transition into the Pending state. If the feasibility of the (pending) tasking request cannot be determined before the request expires, then the tasking request automatically transitions from Pending into the Rejected state. Otherwise the tasking request gets back into the decision cycle: if the tasking request is feasible, then it shall be Accepted by the service – otherwise it shall be Rejected. A task shall be scheduled by the service if the client reserved or submitted it. The following state diagram illustrates the state handling for such a task.

20

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 9 — task state machine diagram Based on the user’s intention, the task automatically transitions either into the state Reserved or InExecution. A Reserved task can be updated by the client but shall not change to state InExecution unless the client confirms it. If the client does not confirm a Reserved task before it expires, the task (automatically) transitions into the final state (category Expired). The client can update a task that is InExecution at any time. If such a task produces new data that is made available to the client, the SPS can send a notification. The task itself remains in its current state (InExecution or a substate thereof) – or more specifically: it transitions (back) into its current state. If the task is completed it transitions into the final state (category Completed). This implies that all data gathered for the task has been published. A client can cancel a scheduled task at any time. The task then transitions into the final state (category Cancelled). If the server fails to complete a scheduled task as planned, then the task transitions into the final state (category Failed).

Copyright © 2011 Open Geospatial Consortium

21

OGC 09-000 6.4 Status Reporting

Status reports provide information about the status of a task and tasking request but also about the outcome of the cancellation/confirmation of a task. Status reports are contained in operation responses but are also used to encode event information, which can be published to subscribed clients. Note: The conceptual model of a status report (see clause 7.3.1.5) is therefore quite flexible. Which features of the tasking report are used depends on the specific functionality that was invoked. This is described in detail in the according clauses.

Whenever an SPS receives a tasking request, it assigns a unique identifier to it and provides this identifier in the status report (concerning the status of the request) that is contained in the tasking response. The identifier is created even though the decision on the request may still be pending (i.e. the request is not accepted yet). Once the request gets accepted, in the case of a Submit or Reserve request a task will be scheduled. The identifier remains the same, i.e. the initially created identifier for a request now becomes an identifier for a task. This allows clients to use the identifier received with the response for subsequent requests to retrieve information about such tasks, e.g. via GetStatus. Example: the state history of a feasible Submit request and resulting task can thus be the sequence of the states Pending Æ Accepted/InExecution (this state can be entered more than once, e.g. when the task was updated or data was published) Æ Completed Example: the state history for a feasible Reserve request can be the sequence of the states Accepted/Reserved (the Reserved state can also be entered more than once if the reservation was updated) Æ Expired; another possible sequence is Pending Æ Accepted/Reserved Æ InExecution Æ Completed

The SPS reports the current status of a tasking request or task following the state types defined in the state machines (see clauses 6.3.6 and chapter 10). A service includes only final and non-final states. Whenever a task has reached a state, even the same state yet again (e.g. after an update the state is still inExecution) after being triggered by an event recognized by this standard (see clauses 10.1.3 and 10.2.3) or an extension of this standard, the code for this event (see clause 7.3.1.9) shall be added to the report as well. This helps clients keeping track of the current status of a task/tasking request and the reason why a certain state was (re-)entered. By default, an SPS therefore logs the information about the latest state transition that a tasking request/task made. An SPS can also support provision of the full state history, i.e. all state transitions. This capability is indicated in the service’s metadata. If this capability is not supported by a service instance then such a service can discard information about all state transitions of a task/tasking request except for the latest one. In any case, an SPS is only obliged to provide status information for a certain period of time after a tasking request/task was finalized. How long exactly this period is depends on the given service instance. 6.5 Levels of Abstraction – SPS Chains

The functionality offered to a client through the SPS by the asset owner can range from full blown, detailed parameterization options to just a small set of very abstract parameters. Asset owners usually define the tasking parameters of their system according to which functionality they want to make available to their clients. Several abstraction 22

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

layers can be put in place to make tasking more intuitive for end users – thereby hiding system complexity – while still allowing experts to take advantage of the full set of parameterization options (see following figure).

Figure 10 — tasking on various abstraction levels The figure above shows an example of an asset management system (or a concrete sensor), which has a number of SPS instances assigned to it. The system has a number of parameters to be set (red hexagons). In order to task the system, all parameters have to be defined, which is handled by the first SPS instance (SPS 1). The abstraction interface on top (SPS 2) only shows two parameters and a second abstraction interface (SPS 3) shows a single parameter only. As an example for such an SPS chain, imagine a satellite control system. The system itself requires the parameters region of interest, time of interest, min/max of azimuth and elevation as well as coverage type to be set. The base SPS interface therefore describes seven tasking parameters. At the next abstraction level, the clients can only define region of interest, time of interest and coverage type. The SPS instance at that level will take care for the missing parameters azimuth and elevation. At the highest abstraction level, the SPS interface describes only a single parameter: region of interest. Thus, clients cannot define the time of interest or any of the other parameters, but need to accept what is offered by the service. The different SPS instances simply forward the information provided by a client from the highest level to the asset management system and define the missing parameters with their own data. Clients are usually not aware of this “request enrichment”; it is opaque to them. The same chain of SPS instances is conceivable for different types of SPS, like simulation systems, processing systems, fusion systems and real physical assets. 6.6 Asynchronous Communication

The Sensor Planning Service interface often facades complex asset management systems that do not provide an immediate response to operation requests or which need a long time to gather needed information. The former can be due to the fact that the request has

Copyright © 2011 Open Geospatial Consortium

23

OGC 09-000

to be analyzed first, which might be a time consuming task. The latter can be due to the fact that the asset – for example a reconnaissance drone or satellite – is not located above the area of interest and therefore has to be moved there, first. Another example is to have the service itself inform the client about a situation of interest. In either case, this shows that the SPS needs to have functionality to support an asynchronous interaction pattern. 6.7 Information Access

The service functionality of SPS does not encompass operations for direct access to the information gathered or produced by an asset. Data retrieval services like SOS (Sensor Observation Service), WMS (Web Map Service), or WCS (Web Coverage Service), or even FTP or REST-based services are much more suited to perform this functionality. The SPS interface provides references to the information gathered by an asset. The reference data contains enough information to retrieve the complete set of data output by an asset for a certain task.

24

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7

Sensor Planning Service – Implementation Model

7.1 Interface Overview

The SPS operations can be divided into informational and functional operations. The informational operations include GetCapabilities, DescribeTasking, DescribeResultAccess, GetTask and GetStatus operation. The functional operations are the GetFeasibility, Reserve, Confirm, Submit, Update and Cancel operations. All functional operations have an effect on the asset management system. The SPS defines five interfaces with eleven operations that can be requested by a client and performed by an SPS server. In addition, it incorporates two interfaces from the SWE Common Service Model [OGC 09-001] – these interfaces define two more operations. Figure 11 is a UML diagram showing these interfaces (grey interfaces are defined by OGC 09-001).

Copyright © 2011 Open Geospatial Consortium

25

OGC 09-000

Figure 11 — SPS interfaces UML diagram NOTE In this UML diagram, the request and response for each operation is shown as a single parameter that is a data structure containing multiple lower-level parameters. These structures are discussed in subsequent clauses. The UML classes modeling these data structures are included in the following clauses.

26

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

The SPS interfaces are: a) BasicSensorPlanner (mandatory) – This interface represents the core functionality of an SPS. It contains the following operations: a. GetCapabilities – This operation allows a client to request and receive service metadata documents that describe the capabilities of the specific server implementation. This operation also supports negotiation of the specification version being used for client-server interactions. b. DescribeTasking – This operation allows a client to request the information that is needed in order to prepare a tasking request targeted at the assets that are supported by the SPS and that are selected by the client. The server will return information about all parameters that have to be set by the client in order to create a task. c. Submit – This operation submits a task. Depending on the façaded asset, it may perform a simple modification of the asset or start a complex mission. d. GetStatus – This operation allows a client to receive information about the current status of the requested task. e. GetTask – This operation returns complete information about the requested task. f. DescribeResultAccess – This operation allows a client to retrieve information, which enables access to the data produced by the asset. The server response may contain references to any kind of data accessing OGC Web services such as SOS, WMS, WCS or WFS. b) SensorProvider (mandatory) – It specifies the following operation: a. DescribeSensor – This operation allows a client to request a detailed description of a sensor. The request can be targeted at a description that was valid at a certain point in or during a certain period of time in the past [OGC 09-001 clause 11]. c) ReservationManager (optional) – This optional interface enables clients to reserve a task instead of directly submitting it. This facilitates tasking of a group of SPSs. Reserved tasks have a finite lifetime before they expire. During this lifetime such a task can be confirmed so that the service starts execution. The interface contains the following operations: a. Reserve – This operation reserves a task. A reservation lasts for a certain amount of time and can be confirmed during this timeframe b. Confirm – This operation is used to confirm a reserved task. By confirming a reserved task the SPS executes the task. Copyright © 2011 Open Geospatial Consortium

27

OGC 09-000

d) FeasibilityController (optional) – SPS implementing this interface are capable of evaluating the feasibility of a task. This allows clients to pre-check their tasking request. The interface contains the following operation: a. GetFeasibility – This operation checks whether a tasking request is feasible based on the current state of the service and façaded asset(s). It can be used to provide alternative tasking requests to the client. Depending on the asset type façaded by the SPS, the SPS server action may be as simple as checking that the request parameters are valid, and are consistent with certain business rules, or it may be a complex operation that calculates the utilizability of the asset to perform a specific task at the defined location, time, orientation, calibration etc. e) TaskUpdater (optional) – A service that implements this interface allows clients to update a reserved or accepted task. The interface contains the following operation: a. Update – This operation is used to request a modification of a reserved or accepted task. f) TaskCanceller (optional) – This interface, if implemented, enables clients to cancel a reserved or accepted task. The interface contains the following operation: a. Cancel – This operation allows a client to cancel a previously reserved or accepted task. g) SensorDescriptionManager (optional). It specifies the following operation: a. UpdateSensorDescription - This operation allows clients to update the description of a sensor [OGC 09-001 clause 12]. The operations of those interfaces decribed above have many similarities with other OGC Web Services operations/interfaces. Aspects that are common with other OWS specifications are thus specified in the OpenGIS® Web Services Common Implementation Specification [OGC 06-121r3]. Many of these common aspects are normatively referenced herein, instead of being repeated in this specification. The operations in each of the SPS interfaces will be described in subsequent clauses. Requirement http://www.opengis.net/spec/SPS/2.0/req/interfaces REQ 1.

28

Each SPS instance shall implement the interfaces BasicSensorPlanner and SensorProvider.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 7.2 SPS Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/exceptions REQ 2.

Whenever an SPS server encounters an error while performing one of its operations, it shall return an exception message according to the model/schema defined in chapter 8 of [OGC 06-121r3].

Requirement http://www.opengis.net/spec/SPS/2.0/req/exceptions/codes REQ 3.

The allowed standard exception codes shall include those defined in clause 15 of [OGC 09-001] and those defined in Table 6 in this standard. They shall be used according to Figure 12. Only, the OperationNotSupported exception shall not apply for the DescribeSensor operation implemented by an SPS, because that operation is mandatory for an SPS implementation. Table 6 — Exception (code) defined by SPS

exceptionCode value StatusInformationExpi red ModificationOfFinaliz edTask

Meaning of code The service already discarded status information for the requested task / tasking request. The client attempted to modify (e.g. cancel, update or confirm) a task that was already finalized.

“locator” value None, omit “locator” parameter None, omit “locator” parameter

NOTE: Each SPS operation may define additional requirements with respect to exception handling for that operation.

Copyright © 2011 Open Geospatial Consortium

29

exceptionCode

Operation defined by

O pe r M atio is si nN In ng otS va Pa up l r V idP a m po er r a e si ra te ted In on me rVa va Ne te lu r l g e O idU ot Val pt u p ia io da tio e N nN te nF oA o S a p t S eq ile In pli up ue d va ca po nc R lidR ble rte e eq e C d ue qu od e s e N tE st o S tS xte ta up n tu p si M sIn ort on od fo e ifi rm d ca a tio tio nO nE fF xp in ire al iz d ed Ta sk

OGC 09-000

Name

Cancel Confirm DescribeResultAccess DescribeTasking this GetCapabilities standard GetFeasibility [OGC GetStatus 09-000] GetTask Reserve Submit Update [OGC DescribeSensor 09-001] UpdateSensorDescription exception code defined by:

x x

x

x x x

x x x x x x x x x x x x x

x x x x x x x x x x x x x

x

x

OGC 06-121r3

x x x x x x x x x x x x x

x x x x x x x x x x x x x

x x x x x x x x x x x x x

x x x x x x x x x x x x x OGC 09-001

x x

x x

x

OGC 09-000

Figure 12 — SPS operations with applicable exceptionCodes

Requirement http://www.opengis.net/spec/SPS/2.0/req/exceptions/UnknownIdentifier REQ 4.

If the value of an identifier used in a request is unknown to the service, it shall return an InvalidParameterValue exception, with the exception locator naming the property of the request that contained the unknown value (“task”, “procedure” etc. – lookup the actual name in the UML model/table describing the properties of the request type).

SPS may drop all information about a finalized task after the minimum storage time for that information has passed (see documentation on minStatusTime provided in clause 7.3.3.3). In consequence, a previously valid task identifier in a GetStatus request can cause an InvalidParameterValue exception once the task information is no longer available at SPS.

30

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/exceptions/InvalidTaskingParameters REQ 5.

If a service encounters in a TaskingRequest that either •

the tasking parameters sent in the request are not structured according to the description provided in the DescribeTasking response,

the encoding used by the client is not supported by the service, or

the provided values are not encoded correctly,

an InvalidParameterValue exception with locator taskingParameters shall be returned. Requirement http://www.opengis.net/spec/SPS/2.0/req/exceptions/ModificationOfFinalizedTask REQ 6.

If a client attempts to perform an operation on a finalized task (like updating, confirming or cancelling it) then the service shall return a ModificationOfFinalizedTask exception.

7.3 Package Overview

This standard defines 13 packages that correspond to the operations introduced in clause 7.1. Each package contains a number of data types and definitions. In addition, SPS makes use of two packages defined in other standards: The Common package, which contains data types shared by several operations, and the Contents package, which contains data types used in the GetCapabilities operation, are defined in OGC 08-094 and OGC 09-001 respectively. All SPS packages use data types specified in other standards. Those data types are normatively referenced herein, instead of being repeated in this standard. Figure 13 shows a UML diagram summarizing the external dependencies of the SPS. Note: The InsertSensor and DeleteSensor operations, defined in OGC 09-001 (SWE Service Model), are not specified in this version of SPS.

Copyright © 2011 Open Geospatial Consortium

31

OGC 09-000

Figure 13 — SPS model external dependencies Figure 14 shows a UML diagram summarizing the package dependencies of the SPS.

Figure 14 — SPS package dependencies The following clauses describe each package in more detail. Each operation request type defined in the following sections requires to set the service and version properties.

32

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/ServiceAndVersion REQ 7.

For each operation request data type, the service property shall have the value “SPS” and the version property shall have the value “2.0.0”.

Copyright © 2011 Open Geospatial Consortium

33

OGC 09-000

7.3.1

7.3.1.1

Common Package

Introduction

This package contains all data types used by two or more service operations. 7.3.1.2

Data Types

The conceptual model of the Common package is shown in the following UML diagram.

34

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 15 — Data types contained in the Common package Copyright © 2011 Open Geospatial Consortium

35

OGC 09-000

The details of each class contained in the package are explained in the following subclauses. 7.3.1.3

TaskingRequest

This abstract data type serves as the super class for all tasking requests such as GetFeasibility, Reserve, Submit and Update requests. Usually, tasking requests contain one or more tasking parameters (see clauses 6.3.2 and 7.4). Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequest/parameters REQ 8.

The tasking parameters for tasking a given procedure shall be structured according to the tasking parameter description for that procedure.

Any valid tasking request leads to a TaskingResponse. Although the SPS is supposed to send a TaskingResponse when receiving a TaskingRequest, the decision whether to accept or reject a tasking request might not be available immediately (or takes longer than the timeout of the used communication protocol allows). This leads to a Pending state. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequest/pending REQ 9.

If a task acceptance or rejection decision is not available immediately, the state of the tasking request shall be set to Pending.

To avoid tasking requests on Pending for time periods longer than acceptable for clients, the SPS provides a mechanism allowing clients to constrain this period of time. A client can define a latestResponseTime for a tasking request. If the server does not provide a TaskingResponse with final result until then, the requested tasking is agreed both by the client and service as being rejected. The tasking request is expired (see definition of the event TaskingRequestExpired in clauses 6.3.6, 7.3.1.9 and 10.2.3.1).

36

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequest/updateTaskingExpirationHandling

REQ 10.

In case that the intention of the tasking request was to update a reserved or submitted task but the tasking request expired, the task remains in its current state. The service shall set the tasking request status to Rejected.

Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequest/synchronousTasking REQ 11.

If synchronous request-response handling is taking place, the service shall provide an immediate tasking response with request status Pending if the service cannot bring about a decision directly.

In such a situation, the default mechanism for the client to retrieve the result is to perform a GetStatus request (see clause 7.3.6), possibly involving multiple GetStatus requests until the final result is provided by the service. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequest/asynchronousTasking REQ 12.

If asynchronous request-response handling is taking place, and the client provided an endpoint address, the service shall send any state transition to that address. The first state transition might be the transfer into state Pending.

Note: this way, the entity at the endpoint (where the response shall be delivered to asynchronously) gets the information (task identifier) required to pull for the status of the tasking request The defined behavior also ensures consistency of the tasking request handling regardless if synchronous or asynchronous requestresponse is in use.

The abstract TaskingRequest data type is derived from the ExtensibleRequest data type specified in clause 9 of [OGC09-001] and therefore inherits all the properties contained in that data type. TaskingRequest does not restrict the content model of ExtensibleRequest.

Copyright © 2011 Open Geospatial Consortium

37

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequest/dataType REQ 13.

The TaskingRequest data type shall contain the properties defined for ExtensibleRequest. In addition, it shall contain the properties according to Table 7.

Table 7 — Properties in the TaskingRequest data type Name

Definition

Data type and values

latestRespo nseTime

point in time at which the definite decision about the tasking request (the requested tasking action being accepted or rejected) has to be provided by the SPS.

procedure

Pointer to the procedure that is to be tasked.

DateTime (see ISO 19103 and OGC 07-036 Table D.2) shall be a point in time in the future (compared to server time when the tasking request was received) OM_Process id (see ISO DIS 19156)

taskingPara meters

parameter values required to task the sensor

ParameterData, see clause 7.3.1.11

Multiplicity and use Zero or one (optional)

One (mandatory) One (mandatory) values for tasking parameters shall be provided in one of the encodings supported by the service, see clause 7.3.3.3

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

7.3.1.4

TaskingResponse

7.3.1.4.1 TaskingResponse – Content and StatusCodes A tasking response is sent as the direct response to a tasking request. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingResponse/content REQ 14.

38

The tasking response shall contain a (subclass of the) StatusReport (see clause 7.3.1.5), which indicates if the requested tasking action was accepted, rejected or if the decision is pending.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingResponse/statusCodes REQ 15.

In the StatusReport, the SPS shall use the status codes defined in Table 8.

The following table defines the valid status codes (see clauses 7.3.1.6 and 7.3.1.8) of a StatusReport (see clause 7.3.1.5) in response to a specific request.

Copyright © 2011 Open Geospatial Consortium

39

OGC 09-000

Table 8 — Status Codes, usage and meaning in TaskingResponse specializations requestStatus Code 3

taskStatus Code 3

Pending

-1

Rejected

-1

task is not feasible

Accepted

-2

task is feasible

Reserved

NA

InExecution

NA

NA

task is submitted and the service executes it

NA (do not set taskStatus)

Completed

NA

NA

the task was submitted and the service already completed its execution

NA

Cancelled

NA

NA

NA

NA

Failed

NA

NA

NA

NA

Expired

NA

NA

NA

NA

taskStatus code usage and overall meaning in Get Feasibility Response

Reserve Response

Submit Response

Update Response

tasking request is pending task is not reserved

task is rejected

update is rejected

NA NA (taskStatus (taskStatus is is mandatory mandatory here, use,value here, use “InExecution“ value or “Reserved“) “Completed“) task is NA reserved

task was updated

NA (do not set taskStatus)

NA = taskStatus value not applicable Notes: 1) If requestStatus is Pending or Rejected then taskStatus is not set by the service 2) If requestStatus is Accepted then taskStatus is not used in GetFeasibilityResponse/UpdateResponse – however, taskStatus is then required in ReserveResponse/SubmitResponse 3) or any other sub code

40

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.3.1.4.2 TaskingResponse – Data Type The abstract data type TaskingResponse serves as the super class for the GetFeasibilityResponse, ReserveResponse, SubmitResponse, and UpdateResponse types. The abstract TaskingResponse data type is derived from the ExtensibleResponse data type specified in clause 9 of [OGC09-001] and therefore inherits all the properties contained in that data type. TaskingResponse does not restrict the content model of ExtensibleResponse. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingResponse/dataType REQ 16.

The TaskingResponse data type shall contain the properties defined for ExtensibleResponse. In addition, it shall contain the properties according to Table 9. Table 9 — Properties in the TaskingResponse data type

Name

Definition

Data type and values

Multiplicity and use

latestRespo nseTime

Point in time at which the definite decision about the tasking request (the requested action being accepted or rejected) will be provided by the SPS. The parameter allows clients to understand how long the decision process (accept or reject the tasking request) might take.

DateTime (see ISO 19103 and OGC 07-036 Table D.2) shall be a point in time in the future

result

provides the outcome of the tasking request

StatusReport or subclass, see clause 7.3.1.5

Zero or one (optional) shall be included by the service if the client included a latestResponseTime in the tasking request – the service shall then use that time (as a confirmation of the response time requested by the client) or use a time that is before the one requested by the client (the earlier time is per definition the latestResponseTime that both client and server agree upon) One (mandatory)

7.3.1.5

StatusReport

This data type provides information about the status of a given task/tasking request. In addition, it is the super class of ReservationReport. The status report identifies the sensor

Copyright © 2011 Open Geospatial Consortium

41

OGC 09-000

that is tasked (procedure) and the task itself (task). It contains status codes to indicate the status of a tasking request (requestStatus) and task (taskStatus) as well as optionally a server defined status message (statusMessage) in addition to the time when a certain status was entered (updateTime). If an event known to the service (see state machine diagram in Figure 9 and event definitions in Table 14) caused the transition into the new status, the code for the event can also be provided. The status message can be provided in any number of languages. Further on, the StatusReport provides an estimation of the time to completion of the task (estimatedToC) and information about the overall progress of an executed task (percentCompletion). The StatusReport can also contain Alternatives and the taskingParameters that were provided by the client when submitting, reserving or updating a task. Requirement http://www.opengis.net/spec/SPS/2.0/req/StatusReport/taskingParameters REQ 17.

By default, taskingParameters are only provided in StatusReports of GetStatus and GetTask responses. By default, StatusReports in responses to tasking requests do not reflect the taskingParameters used in the request. Note: This behaviour may get overwritten in an extension to this standard, if focus is more on verification of tasking parameters than on lightweight response messages.

Requirement http://www.opengis.net/spec/SPS/2.0/req/StatusReport/announcement REQ 18.

SPS servers shall announce in their Capabilities if all state changes are tracked for non-finalized tasks and tasking requests (see clause 7.3.2.4.3).

If supported by the server, clients can request this status history of a task or tasking request by using a GetStatus request with since parameter (see clause 7.3.6.1 for further information). If supported by the service, status reports caused by certain events can also be published to a list of interested consumers (see clause 6.4). Requirement http://www.opengis.net/spec/SPS/2.0/req/StatusReport/dataType REQ 19.

42

The StatusReport type shall contain the properties according to Table 10.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Note: the usage of the StatusReport in the Cancel, Confirm, GetFeasibility, Reserve, Submit and Update operations is further defined in the according clauses.

Copyright © 2011 Open Geospatial Consortium

43

OGC 09-000

Table 10 — Properties in the StatusReport data type Name task estimatedToC

Definition Pointer to the task that this status report belongs to. estimated completion time of the task

Data type and values id

Task type see clause 7.3.1.6

One (mandatory)

DateTime (see ISO 19103 and OGC 07-036 Table D.2) EventCode see clause 7.3.1.9

Zero or one (optional) Include if estimation makes sense and can be provided. Zero or one (optional) Shall be included if transition to current state was triggered by a known event (one of those listed in the EventCode code list, see clause 7.3.1.9 – or extensions thereof) Zero or one (optional) Shall only be used for StatusReports with taskStatus ‘InExecution’, a following state or a substate thereof. One (mandatory)

event

signifies the event that caused the transition into the new state/status

percentCompl etion

indicates the progress made in executing the task

Real (see ISO 19103) value shall be in the range of 0-100

procedure

Pointer to the process that is the subject of the task for which the report was generated. identifies the state of the request (that may have led to the scheduling of the task) Server defined free text that further describes the status. Parameters used in a tasking request that led to the current status. identifies the state of a scheduled task point in time at which the task entered the reported state

OM_Process id see ISO DIS 19156

requestStatus

statusMessage taskingParam eters taskStatus updateTime

alternative

alternative set of tasking parameters that would be feasible at the time of report generation

Multiplicity and use

TaskingRequestStatus Code, see clause 7.3.1.7

One (mandatory)

LanguageString, see clause 10.7 in [OGC 06-121r3] ParameterData, see clause 7.3.1.11

Zero to many (optional)

TaskStatusCode, see clause 7.3.1.8 DateTime (see ISO 19103 and OGC 07-036 Table D.2) Alternative type, see clause 7.3.1.10

Zero or one (optional)

Zero or one (optional)

One (mandatory)

Zero to many (optional)

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

44

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/StatusReport/completionRatio REQ 20.

SPS servers shall put the percentCompletion property to 0% when the task entered the InExecution state. Only when the task is InExecution shall the percentCompletion be increased.

Whenever a task InExecution was cancelled or failed, the last status report show the progress of the task made until then. A completed task has 100% completion. Note that the percentCompletion value can in fact decrease in two consecutive GetStatus requests. This happens for example if the SPS receives an Update request and needs to start over the requested activites.

7.3.1.6

Task

The Task type represents the complete information about a task. This encompasses information about the current and – optionally – also previous statuses the task was in. The according status reports also include the tasking parameters that were used when reserving/submitting and updating the task. Requirement http://www.opengis.net/spec/SPS/2.0/req/Task/uniqueIdentifier REQ 21.

An SPS shall assign a unique identifier for each task (including tasking requests) it creates (using the identifier property it automatically inherits as defined in OGC 09-001 clause 24.2.4.1).

Requirement http://www.opengis.net/spec/SPS/2.0/req/Task/pendingRequestTaskIdentifier REQ 22.

An SPS shall assign a unique identifier for each tasking request if the tasking request enters Pending state. Thus, the Task identifier can identify a task or a pending tasking request.

Copyright © 2011 Open Geospatial Consortium

45

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/Task/identifierPassing REQ 23.

If an SPS defines a unique identifier for a tasking request and no task identifier has beeen created already, the same identifier shall be used for the task that will be created as a result of this request. Thus, the passing of identifiers applies to all tasking requests except for the Update request, where a task identifier was already created.

Requirement http://www.opengis.net/spec/SPS/2.0/req/Task/dataType REQ 24.

The Task type shall contain the properties according to Table 11. Table 11 — Properties in the Task data type

Name status

Definition Status information of the task.

7.3.1.7

Data type and values StatusReport, see clause 7.3.1.5

Multiplicity and use One or more (mandatory) At least the current status shall be available for a task.

TaskingRequestStatusCode

The TaskingRequestStatusCode code list defines the different status codes for tasking requests. The states that a tasking request can transition through are discussed in clause 6.3.6 and in detail in clause 10. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequestStatusCode/list REQ 25.

46

The TaskingRequestStatusCode code list shall contain the properties/code values according to Table 12.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 12 — Properties in the TaskingRequestStatusCode code list Code Accepted Pending Rejected

Definition

Value

See clause 10.2.2.2 – Tasking request was accepted; this is a final state for a tasking request. See clause 10.2.2.1 – Tasking request is pending. See clause 10.2.2.6 – Tasking request was rejected; this is a final state for a tasking request.

“Accepted” “Pending” “Rejected”

This code list is extensible. SPS profiles/extensions or implementations may add additional codes that define sub states of those defined in this specification. The concrete SPS implementation using sub states defines when to send which notifications to the clients if publish/subscribe functionality is supported by the service. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequestStatusCode/codeSyntax REQ 26.

New TaskingRequestStatusCodes shall conform to the following syntax: other: <existing_code>_<new_code_for_substate>

Code names shall only use the characters A-Z, a-z and 0-9. By adhering to this syntax, clients can ignore sub states but will still understand the main state. EXAMPLE: A valid new sub state would be “other: Pending_OperatorInformed”.

7.3.1.8

TaskStatusCode

The TaskStatusCode code list defines the different status codes for tasks. The states and the transition between the states are discussed in clause 6.3.6 and in detail in clause 10. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskStatusCode/list REQ 27.

The TaskStatusCode code list shall contain the properties/code values according to Table 13.

Copyright © 2011 Open Geospatial Consortium

47

OGC 09-000

Table 13 — Properties in the TaskStatusCode code list Code Cancelled Completed Expired Failed InExecution Reserved

Definition

Value

See clause 10.1.2.5 – Task was cancelled; this code identifies a subcategory of the final state in the task state machine. See clause 10.1.2.5 – Task was completed as planned; this code identifies a subcategory of the final state in the task state machine. See clause 10.1.2.5 – Task reservation expired; this code identifies a subcategory of the final state in the task state machine. See clause 10.1.2.5 – Task failed; this code identifies a subcategory of the final state in the task state machine. See clause 10.1.2.2 – Task is executed by the service. See clause 10.1.2.3 – Task is reserved at the service.

“Cancelled” “Completed” “Expired” “Failed” “InExecution” “Reserved”

This code list is extensible. SPS profiles/extensions or implementations may add additional codes that define sub states of those defined in this specification. The concrete SPS implementation using sub states defines when to send which notifications to the clients if publish/subscribe functionality is supported by the service. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskStatusCode/codeSyntax REQ 28.

New TaskStatusCodes shall conform to the following syntax: other: <existing_code>_<new_code_for_substate>

Code names shall only use the characters A-Z, a-z and 0-9. By adhering to this syntax, clients can ignore sub states but will still understand the main state. EXAMPLE: A valid new sub state would be “other: InExecution_SensorInitialized”.

7.3.1.9

EventCode

The EventCode type is a list of codes signifying events that happen in SPSs and are identified in this standard. Requirement http://www.opengis.net/spec/SPS/2.0/req/EventCode/list REQ 29.

48

The EventCode code list shall contain the properties/code values according to Table 14.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

The events defined in this table can trigger state transitions – see clause 10 for further details. Table 14 — Properties in the EventCode code list Name a

Definition

Value a

DataPublished

New data was published for a task that is 'InExecution'. A reserved task has expired (the expiration time set by the service is before now - "now" being the time measured by the service). A scheduled task has been cancelled. b A task that was 'InExecution' was completed as planned. Implies that all data gathered for the task has been published. A reserved task was confirmed. A scheduled task has failed. c A pending tasking request has expired.

“DataPublished”

ReservationExpired TaskCancelled TaskCompleted TaskConfirmed TaskFailed TaskingRequestExp ired TaskReserved TaskSubmitted TaskUpdated

A task was reserved. A task was submitted. A task was updated.

“ReservationExpi red” “TaskCancelled” “TaskCompleted” “TaskConfirmed” “TaskFailed” “TaskingRequest Expired” “TaskReserved” “TaskSubmitted” “TaskUpdated”

a Although some values listed in the column appear to contain spaces, they shall not contain spaces. b Data gathered and published for the cancelled task should not automatically be deleted so that a client can retrieve the data that was gathered until the task was cancelled. c Data gathered and published for the failed task should not automatically be deleted so that a client can at least retrieve the data that was gathered until the task failed.

This code list is extensible. SPS profiles/extensions or implementations can add additional event codes that can for example identify transition events in substates of the InExecution state. Requirement http://www.opengis.net/spec/SPS/2.0/req/EventCode/codeSyntax REQ 30.

New EventCodes shall conform to the following syntax: other: [A-Za-z0-9_]{2,} Code names shall only use the characters A-Z, a-z and 0-9. By adhering to this syntax, clients can ignore sub states but will still understand the main state.

EXAMPLE: A valid new sub state would be “other: OperatorInformed”.

Copyright © 2011 Open Geospatial Consortium

49

OGC 09-000

7.3.1.10

Alternative

This data type represents a suggestion of a set of alternative tasking parameter values. An optional description may be used to provide further information on this alternative. Requirement http://www.opengis.net/spec/SPS/2.0/req/Alternative/dataType REQ 31.

The Alternative type shall contain the properties according to Table 15. Table 15 — Properties in the Alternative data type

Name

Definition

Data type and values

Multiplicity and use

description

human readable description of the alternative block of encoded values together with a description of the encoding

LanguageString, see clause 10.7 in [OGC 06-121r3] ParameterData, see clause 7.3.1.11

Zero to many (optional)

taskingPara meters

7.3.1.11

One (mandatory)

ParameterData

This data type contains properties to store (tasking) parameter values and a description of the encoding being used. It aggregates the required types from the SWE Common Data Model. This data type is used by SPS whenever data needs to be delivered to or from the service in an efficient way (see also clause 7.4 - SPS tasking parameters representation). The DescribeTasking operation (see clause 7.3.4) provides the description of the tasking parameters and how they should be structured when encapsulated in the values attribute of the ParameterData object. Requirement http://www.opengis.net/spec/SPS/2.0/req/ParameterData/dataType REQ 32.

50

The ParameterData type shall contain the properties according to Table 16.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 16 — Properties in the ParameterData data type Name encoding

values

Definition

Data type and values

description of the AbstractEncoding, see encoding used to clause 7.6 in [OGC encode the given values 08-094] shall provide details for one of the encodings supported by the service (see clause 7.3.3.3, Table 24) block of values encoded Any type as specified by the value shall be as encoding (description) defined by the encoding

7.3.2

GetCapabilities Operation

7.3.2.1

Introduction

Multiplicity and use One (mandatory)

One (mandatory)

The mandatory GetCapabilities operation allows clients to retrieve service metadata from a server. The response to a GetCapabilities request contains service metadata about the server, including specific information about the sensors provided by the service, supported data encodings, and – if supported by the service – metadata about the supported notification functionality. 7.3.2.2

Data Types

The conceptual model of the GetCapabilities operation is shown in the following UML diagram.

Copyright © 2011 Open Geospatial Consortium

51

OGC 09-000

Figure 16 — Data types of the GetCapabilities operation The details of the operation request and response are explained in the following subclauses. 7.3.2.3

Operation Request – GetCapabilities

Sending an instance of the GetCapabilities data type to the service performs an SPS GetCapabilities operation request. The GetCapabilities data type is derived from the similarly named data type defined by OWS Common (see clauses 7.2 and 7.3 in [06-121r3]).

52

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesRequest/dataType REQ 33.

The SPS GetCapabilities data type shall contain the properties of the OWS Common GetCapabilities data type from OWS Common (listed in table 3 of [06-121r3]). In addition, it shall contain the properties according to Table 17. Table 17 — Properties in the GetCapabilities data type

Name

Definition

Data type and values

Multiplicity and use

extension

container for elements defined by extension specifications

Zero or more (optional)

service

service type identifier

Any type value is defined by the extension specification Character String type, not empty value shall be “SPS”

Zero or one (optional) default value is “SPS”

NOTE The request property – derived from OWS Common GetCapabilities type – is explicit or implied by each specific binding of the GetCapabilities operation, so is not necessarily part of the request representation defined by that binding.

OWS operations usually do not allow the addition of elements. However, with respect to the core & extension pattern for service specifications (where the core service functionality is defined in the base specification and extension specifications may define further functionality that integrates with the existing one) it is desirable to have a place in service requests and responses where elements defined by extensions, for example policy assertions, can be added without the XML instances becoming invalid. The extension property of the GetCapabilities data type is the realization of such an extension point. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesRequest/sectionNames REQ 34.

The allowed set of service metadata (or Capabilities) section names and meanings shall be as specified in Tables 6 and 10 of [OGC 06-121r3], with the addition listed in Table 18 below. Table 18 — Additional Section name value and meaning

Section name notifications

Meaning Return Notifications section in service metadata document

The “Multiplicity and use” column in Table 3 of [OGC 06-121r3] and

Table 19 in this specification specifies the optionality of each listed parameter in the SPS GetCapabilities operation request. Copyright © 2011 Open Geospatial Consortium

53

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesRequest/parameters REQ 35.

SPS clients and servers shall implement the GetCapabilities parameters as defined in Table 19.

Table 19 — Implementation of parameters in GetCapabilities operation request Name

Multiplicity

Client implementation

Server implementation

service

Zero or one (optional)

May be implemented by all clients, using specified value If parameter not provided, default value is to be assumed by service

request

One (mandatory)

Shall be implemented by all clients, using specified value In specific binding the value may be implied through encoded request structure

acceptVersions

Zero or one (optional)

Should be implemented by all software clients, using specified values

sections

Zero or one (optional)

updateSequence

Zero or one (optional)

acceptFormats

Zero or one (optional)

Each parameter may be implemented by each client If parameter not provided, shall expect default response If parameter provided, shall allow default or specified response

Shall be implemented by all servers, checking that parameter is received with specified value Default value shall be assumed if parameter is not provided in request Shall be implemented by all servers, checking if parameter is received with specified value In specific binding the value may be implied through encoded request structure Shall be implemented by all servers, checking if parameter is received with specified value(s) Each parameter may be implemented by each server If parameter not implemented or not received, shall provide default response If parameter implemented and received, shall provide specified response

7.3.2.4

Operation Response – Capabilities

The Capabilities data type defines the normal response returned by an SPS when a valid GetCapabilities request has been received. It is derived from the OWSServiceMetadata data type defined by OWS Common (see clause 7.4 in [OGC 06-121r3]). It contains two more sections (contents and notifications) – depending upon the GetCapabilities request and the functionality supported by the service.

54

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/dataType REQ 36.

The Capabilities data type shall include the properties of the OWSServiceMetadata data type (as defined in clauses 7.4.2 to 7.4.7 in [OGC 06-121r3]) with the additional properties according to Table 20. Table 20 — Properties in the Capabilities data type

Name

Definition

Data type and values

contents

metadata about the provided sensors and supported data encodings

SPSContents, see clause 7.3.3

extension

container for elements defined by extension specifications

Any type value is defined by the extension specification

notifications

metadata about the supported notification functionality

NotificationProducerM etadata, see clause 8 in [OGC 09-001]

Multiplicity and use Zero or one (optional) inclusion depends on the values in the Sections parameter of the GetCapabilities operation request Zero or more (optional) use as explained for the extension property in the GetCapabilities operation request data type (see clause 7.3.2.3) Zero or one (optional) inclusion depends on the values in the Sections parameter of the GetCapabilities operation request

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/defaultVersion REQ 37.

A service implementing this standard shall at least be capable of providing a Capabilities document with version number “2.0.0” that is structured as defined in section 7.3.2.4.

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/sections REQ 38.

An SPS shall implement the sections of the Capabilities document listed in Table 21 according to the Use column in that table.

Copyright © 2011 Open Geospatial Consortium

55

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/sectionListing REQ 39.

If the Sections parameter is supported for the GetCapabilities operation request the service shall list the supported section names as values of an accordingly named parameter in the metadata of the GetCapabilities operation.

Clients can request any combination of the sections listed in the GetCapabilities operations metadata. Table 21 — SPS section name values and contents Section name

Contents

serviceIdentification

Metadata about this specific server (see clause 7.4.4 in [OGC 06-121r3]). Metadata about the organization operating this server (see clause 7.4.5 in [OGC 06-121r3]). Metadata about the operations specified by this service and implemented by this server, including the URLs for operation requests. The basic contents and organization of this section shall be the same as for all OWSs (see clause 7.4.6 in [OGC 06-121r3]). Metadata about the sensors provided by the SPS and supported data encodings (see clause 7.3.3 below). Metadata about the supported notification functionality (see clause 8 in [OGC 09-001]).

serviceProvider operationsMetadata

contents notifications

Use mandatory mandatory mandatory

mandatory conditional required if publish/subscribe functionality is realized by the service

7.3.2.4.1 OperationsMetadata section standard contents For the SPS, the OperationsMetadata section is structured like for all OGC Web Services – as specified in Subclause 7.4.6 of [OGC 06-121r3]. 7.3.2.4.2 Advertising Implemented Operations The parameter names and values to be used in the OperationsMetadata section, which indicate the implemented operations of an SPS instance, are specified in Table 22 and Table 23.

56

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/implementedOperations

REQ 40.

The implemented operations shall be listed in the OperationsMetadata by SPS instances according to the values defined in Table 22 and Table 23.

In Table 22 and Table 23, the “Attribute name” column uses dot-separator notation to identify parts of a parent item. The “Attribute value” column references an operation parameter, in this case an operation name, and the meaning of including that value is listed in the right column. Table 22 — Required values of OperationsMetadata section attributes Attribute name Operation.name

Attribute value

Meaning of attribute value

GetCapabilities

This server implements the GetCapabilities operation.

DescribeSensor

This server implements the DescribeSensor operation.

DescribeTasking

This server implements the DescribeTasking operation.

Submit

This server implements the Submit operation.

GetStatus

This server implements the GetStatus operation.

GetTask

This server implements the GetTask operation.

DescribeResultAccess

This server implements the DescribeResultAccess operation.

Table 23 — Optional values of OperationsMetadata section attributes Attribute name

Attribute value

Meaning of attribute value

Operation.name

Reserve

This server implements the Reserve operation.

Confirm

This server implements the Confirm operation.

GetFeasibility

This server implements the GetFeasibility operation.

Update

This server implements the Update operation.

Cancel

This server implements the Cancel operation.

UpdateSensorDes cription

This server implements the UpdateSensorDescription operation.

7.3.2.4.3 Advertising Support for Status Logging SPS instances can log the statuses of tasks and tasksing requests for any period of time.

Copyright © 2011 Open Geospatial Consortium

57

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/status-logging-supported

REQ 41.

If an SPS service logs the complete state history of nonfinalized tasks and tasking requests, it shall list the identifier of the state logger conformance class (see subclause 2.2) as (one of the) value(s) of the profile parameter in the Capabilities document’s ServiceIdentification section.

7.3.2.4.4 Advertising Supported Operation Encodings Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/supportedEncodings

REQ 42.

SPS servers shall specify the supported encodings for HTTP POST based transfer of operation requests. Specifically, an ows:Constraint element shall be included with PostEncoding as the value of the name attribute supporting a) the value “SOAP” to indicate that SOAP encoding is allowed, as specified in clause 8. b) the value “XML” to indicate that XML encoding is allowed (without SOAP message encapsulation).

7.3.2.4.5 Advertising Other Operation Metadata In addition to the optional values listed in Table 23, there are many optional values of the name attributes and value elements in the OperationsMetadata section. Most of these attributes and elements are for recording the domains of various parameters and quantities. EXAMPLE 1 The domain of the exceptionCode parameter can record all the codes implemented for each operation by that specific server. Similarly, each of the GetCapabilities operation optional request parameters can have its domain recorded. EXAMPLE 2 The domain of the Sections parameter in the GetCapabilities operation request can record all the sections implemented by that specific server.

58

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.3.2.4.6 Advertising Supported Conformance Classes Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/conformanceClass

REQ 43.

7.3.2.5

Any SPS service shall document in its capabilities document the supported conformance classes. The identifier (a URI) of each supported conformance class shall be listed as a value of the profile property of the ServiceIdentification section.

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/exception REQ 44.

When an SPS server encounters an error while performing a GetCapabilities operation, it shall return an exception message as specified in clause 7.2.

If the GetCapabilities request contained the Sections parameter with value notifications but that value is not listed by the service for the Sections parameter (because the service does not implement publish/subscribe functionality) then an InvalidParameterValue exception with locator Sections or sections is returned. 7.3.2.6

Examples

Clause 9.6 provides example XML instances for the GetCapabilities operation request and response. 7.3.3

7.3.3.1

Contents Package

Introduction

This package contains the data types used to provide metadata about the sensors provided by an SPS and the supported data encodings. In order to reduce the size of the Capabilities document by reducing the amount of redundant information in the contents section, the property inheritance mechanism defined in clause 22 of [OGC 09-001] is used. 7.3.3.2

Data Types

The conceptual model of the Contents package is shown in the following UML diagram.

Copyright © 2011 Open Geospatial Consortium

59

OGC 09-000

Figure 17 — Data types contained in the Contents package The details of each class contained in the package are explained in the following sub clauses.

60

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.3.3.3

SPSContents

This data type defines the supported encodings for tasking parameter values and provides metadata about the sensors facaded by the service. In addition, it provides information on the storage time of task and task request status information. By default, SPS servers store the last status information only. After finalization of a task or task request, any SPS service stores this information until the minStatusTime has expired. This time period starts when the task or task request transitions into a final state. Optionally, SPS servers can store any additional historic status information. SPS servers indicate this capability by adding the since parameter to the metadata of the GetStatus operation in the Capabilities document (see clause 7.3.2.4.3 - Advertising Support for Status Logging on page 57). The SPSContents acts as the property provider for a SensorOffering (see clause 22 in [OGC 09-001]). The SPSContents (see Figure 17) type is derived from SWES AbstractContents type defined in clause 7 of [OGC09-001] and therefore inherits all the properties contained in that data type. SPSContents restricts the content model of AbstractContents in that it requires that the offering property is of type SensorOffering (see clause 7.3.3.4) or a subtype thereof. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/contents REQ 45.

The SPSContents data type shall contain the properties defined for SWES AbstractContents. In addition, it shall contain the properties according to Table 24 in combination with Table 25. Table 24 — Properties in the SPSContents data type

Name

Definition

Data type and values

minStatusTi me

time period for which the services provides status information about finalized tasks or tasking requests encoding supported by the service to encode tasking parameter values

TM_PeriodDuration, see ISO 19108

One (mandatory)

SWEEncodingCode, see clause 10.2.3 in OGC 09-001 applicable code value(s) as defined in Table 25

One or more (mandatory)

supportedE ncoding

Copyright © 2011 Open Geospatial Consortium

Multiplicity and use

61

OGC 09-000

Table 25 — Code values applicable to the supportedEncoding property Applicable Code Value(s)

Additional Note

http://www.opengis.net/swe/2.0/TextEncoding http://www.opengis.net/swe/2.0/XMLEncoding http://www.opengis.net/swe/2.0/BinaryEncoding

7.3.3.4

best suited in most cases if ASCII encoded parameters are used generally applicable suited for example for transferring image data to the service

SensorOffering

This data type contains metadata about a sensor provided by the service. The SensorOffering (see Figure 17) type is derived from SWES AbstractOffering defined in clause 7 of [OGC 09-001] and therefore inherits all the properties contained in that type. SensorOffering does not restrict the content model of AbstractOffering. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/sensorOffering REQ 46.

The SensorOffering type shall contain the properties defined for SWES AbstractOffering. In addition, it shall contain the property according to Table 26. Table 26 — Properties in the SensorOffering type

Name

Definition

observable Area

the area that the sensor can observe

Data type and values PointOrPolygon, see clause 7.3.3.5

Multiplicity and use One (mandatory)

The SensorOffering represents an inheritor of the properties contained in the SPSContents. The following table shows which of the properties defined in the content model of SensorOffering can be inherited and which cardinality is expected after the inheritance mechanism has been applied.

62

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 27 — Inheritance of SensorOffering properties (from SPSContents) Property

Cardinality

Inheritance

procedure

1

NA

procedureDescriptionFormat

1..*

replace

observableProperty

1..*

replace

relatedFeature

0..*

replace

observableArea

1

NA

Thus, even though the UML model and schema encoding define the observableProperty and procedureDescriptionFormat properties as optional, they are mandatory in each SensorOffering. In other words, each offering has to include at least one value for these two properties after the property inheritance mechanism was applied. 7.3.3.5

PointOrPolygon

This type represents a choice between the geometric types point or a polygon. Those two types are e.g. used to describe the point or the area observed by a sensor. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetCapabilitiesResponse/PointOrPolygon REQ 47.

The PointOrPolygon union shall contain the properties/choices according to Table 28. Table 28 — Properties in the PointOrPolygon union

Name

Definition

byPoint

a point

byPolygon

a polygon

7.3.4

DescribeTasking Operation

7.3.4.1

Introduction

Data type and values

Multiplicity and use

GM_Point, see clause 10.3.1 in [OGC 07036] Polygon, see clause 10.5.4 in [OGC 07036]

One (mandatory) Because PointOrPolygon is a union, either a point or polygon shall be used (i.e. there is a choice between the properties)

The DescribeTasking operation allows SPS clients to retrieve the description of the data structures for the tasking parameters of a sensor. The data structure description is encoded in SWE Common (see clause 7.4 - SPS tasking parameters representation).

Copyright © 2011 Open Geospatial Consortium

63

OGC 09-000

7.3.4.2

Data Types

The conceptual model of the DescribeTasking operation is shown in the following UML diagram.

Figure 18 — Data types of the DescribeTasking operation The details of the operation request and response are explained in the following subclauses. 7.3.4.3

Operation Request - DescribeTasking

Sending an instance of the DescribeTasking data type to the service performs an SPS DescribeTasking operation request. The DescribeTasking data type is derived from the SWES ExtensibleRequest data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeTaskingRequest/dataType REQ 48.

64

The DescribeTasking data type shall contain the properties defined for SWES ExtensibleRequest. In addition, it shall contain the property according to Table 29.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 29 — Property in the DescribeTasking data type Name procedure

Definition Pointer to the procedure (sensor) for which the tasking description is requested.

Data type and values id

OM_Process see ISO DIS 19156

Multiplicity and use One (mandatory)

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

7.3.4.4

Operation Response - DescribeTaskingResponse

The DescribeTaskingResponse data type represents the response to an SPS DescribeTasking operation request. The DescribeTaskingResponse data type is derived from the SWES ExtensibleResponse data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. DescribeTaskingResponse does not restrict the content model of ExtensibleResponse. Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeTaskingResponse/dataType REQ 49.

The DescribeTaskingResponse data type shall contain the properties defined for SWES ExtensibleResponse. In addition, it shall contain the property according to Table 30. Table 30 – Properties in the DescribeTaskingResponse data type

Name

Definition

Data type and values

Multiplicity and use

taskingParameters

description of tasking parameters for tasking the requested asset

AbstractDataCompone nt, see clause 7.2 in [OGC 08-094]

One (mandatory)

The taskingParameter property shall be fully identified with a name defined by the SPS – see OGC 08-094 for further details. The XML Schema encoding of the DescribeTaskingResponse ensures (via the soft-typed tagged value) that such a name can be added by the service. The name is important for clients when certain encodings are used to encode the tasking paramter data, and the encodings require naming of SWE Common data components (like the XML encoding).

Copyright © 2011 Open Geospatial Consortium

65

OGC 09-000

7.3.4.5

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeTaskingResponse/exceptions REQ 50.

7.3.4.6

When an SPS server encounters an error while performing a DescribeTasking operation, it shall return an exception message as specified in clause 7.2.

Examples

Clause 9.6 provides example XML instances for the DescribeTasking operation request and response. 7.3.5

7.3.5.1

Submit Operation

Introduction

The Submit operation allows SPS clients to submit a tasking request for an asset. The client encodes the tasking parameters according to the parameter description defined in the DescribeTasking response. SPS servers do a feasibility check of the request and perform the task if applicable. 7.3.5.2

Data Types

The conceptual model of the Submit operation is shown in the following UML diagram.

66

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 19 — Data types of the Submit operation The details of the operation request and response are explained in the following sub clauses.

Copyright © 2011 Open Geospatial Consortium

67

OGC 09-000

7.3.5.3

Operation Request - Submit

Sending an instance of the Submit data type to the service performs an SPS Submit operation request. The Submit data type is derived from the TaskingRequest data type (see clause 7.3.1.3) and therefore inherits all the properties contained in that data type. Submit neither restricts the content model of TaskingRequest nor adds additional properties. Requirement http://www.opengis.net/spec/SPS/2.0/req/SubmitRequest/dataType REQ 51.

7.3.5.4

The Submit data type shall contain the properties defined for the TaskingRequest data type.

Operation Response - SubmitResponse

The SubmitResponse data type represents the response to an SPS Submit operation request. The SubmitResponse data type is derived from the TaskingResponse data type (see clause 7.3.1.4) and therefore inherits all the properties contained in that data type. SubmitResponse neither restricts the content model of TaskingResponse nor adds additional properties. Requirement http://www.opengis.net/spec/SPS/2.0/req/SubmitResponse/dataType REQ 52.

The SubmiResponse data type shall contain the properties defined for the TaskingResponse data type.

A SubmitResponse contains a StatusReport (see clause 7.3.1.5) to inform about the result of the requested operation. As a Submit request is a tasking request, the final result of that request might not be directly available and would then be Pending. The contents of the StatusReport properties after all possible state transitions are defined in table Table 31. If the request is reported to be pending then a client needs to retrieve information about the final status of the request in another way, per default by the GetStatus operation.

68

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 31 – StatusReport usage for different state transitions of a Submit request Submit Request State Transitions (From → To) property name / cardinality

task / 1

Initial → Accepted

Pending → Accepted

Pending Initial Initial Pending → task is task is → → → Rejected task is in already task is in already Rejected Pending Rejected (request completed execution execution completed expired) 1 1 new identifier provided by service

identifier previously provided by service

estimatedT oC / 0..1

NA

optional

NA

optional

event (code) / 0..1

NA

TaskSub TaskComp mitted leted

NA

TaskSub TaskCom mitted pleted

percentCo mpletion / 0..1

NA

procedure / 1

0

NA

100

NA

0

NA

100

NA

NA

NA

TaskingRe questExpir ed

NA

NA

identifier of procedure for which Submit request was made

requestStat us (code) / Pending Accepted Accepted Rejected Accepted Accepted Rejected Rejected 1 statusMes service may provide additional information to client in human readable form sage / 0..* taskingPar NA ameters / 0..1 taskStatus InExecuti InExecuti Complete (code) / NA Completed NA NA NA on on d 0..1 updateTim point in time when transition was made e/1 alternative may be provided by service StatusRep ort encoded as Reservatio nReport Applicable in Submit Response

NA

yes

yes

yes

yes

no

no

no

no

NA = not applicable, means element is not used in response Notes: 1 this is a shortcut to convey information in the SubmitResponse that the Submit request was accepted and the submitted task already made the transitions Initial → InExecution and InExecution → Final (TaskCompleted)

Copyright © 2011 Open Geospatial Consortium

69

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/SubmitResponse/taskAlreadyCompleted REQ 53.

7.3.5.5

If the SubmitResponse has taskStatus Completed then the service shall have performed state logging and notification – if supported – for the according task. That task then has made the transitions Initial Æ InExecution and InExecution Æ Final (TaskCompleted).

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/SubmitResponse/exceptions REQ 54.

7.3.5.6

When an SPS server encounters an error while performing a Submit operation, it shall return an exception message as specified in clause 7.2.

Examples

Clause 9.6 provides example XML instances for the Submit operation request and response.

70

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Issue Name: After Submission Notification Gap (JE, Dec 17th,09) Issue Description: When a service implements publish/subscribe functionality (see clause 8) and publishes notifications on status changes of submitted tasks, then a client might miss notifications for his task unless he subscribed for status changes of all tasks beforehand. A client does not get the identifier for his task before it actually submitted it – only the SubmitResponse contains the task identifier, which can then be used in a subscription for notifications of that task. However, in the time it takes from the actual submission to a completed subscription the service might already have published notifications for the task. These notifications will be missed by the client. The same issue applies for task reservations. The client could try to retrieve the missing status information via a GetStatus request (see clause 7.3.6) using the since parameter in the request. However, implementation of that parameter is optional for an SPS (see clause 7.3.2.4.3). A client might also reserve the task first, then subscribe for it and then confirm it. However, implementation of the Reserve operation is optional for SPS. A solution could be to design an extension that allowed the inclusion of a subscription request directly in the submit request (as a request extension parameter), with the semantics that all notifications published for the task – if the request is accepted – are in the scope of that subscription. Resolution: What usually is important to the client is to get the most updated status of his task. So if, right after submitting the task and subscribing for notifications about it, the client issues a GetStatus request, the response of this call fills the gap in the sense that the client is then aware of the latest status of the task and that he will be notified of any further changes. 7.3.6

7.3.6.1

GetStatus Operation

Introduction

The GetStatus operation allows SPS clients to retrieve status reports about a tasking request or a task. This operation is the default mechanism to retrieve status information about a task or tasking request. As explained in clause 6.3.6, a task or tasking request makes one or more state transitions before reaching its final state (see Figure 8 and Figure 9 in clause 6.3.6). While not in the final state, a task can transition between several other states. Clients can retrieve a status report via the GetStatus operation. The response to the operation either contains a (number of) StatusReport(s) or ReservationReport(s). Copyright © 2011 Open Geospatial Consortium

71

OGC 09-000

By default, the GetStatusResponse contains a single status report. This report identifies the current/latest state of a task/tasking request. The updateTime parameter in the report defines when that state was entered. SPS servers announce in their Capabilities if all state changes are tracked for nonfinalized tasks and tasking requests (see clauses 7.3.2.4.3 and 7.3.3.3); this also defines how long a service needs to keep the according information before it can discard it.

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetStatus/service-metadata/since-parameter REQ 55.

If an SPS service logs the complete state history of nonfinalized tasks and tasking requests and thus supports the state logger conformance class (see subclause 7.3.2.4.3), it shall add the parameter since to the metadata of the GetStatus operation in the OperationsMetadata section of the service’s Capabilities document. The value of this parameter shall be ows:AnyValue.

If supported by the server, clients can request the status history of a task/tasking request by using a GetStatus request with since parameter. If supported, the SPS shall return all status reports it has stored for the task, with an updateTime that is not before and not after the time period defined with the since time as begin position and the point in time when the GetStatus request was received by the service as end position. If the GetStatusResponse contains multiple status reports then it is recommended that the service lists them in ascending temporal order regarding the update time of each report. If the since parameter is used in a GetStatus request then the response may not contain any StatusReport in case that no status transition happened in that period. To retrieve the current status, an additional GetStatus request without since parameter becomes necessary. This standard behaviour could be overwritten in an extension to this standard. For example, it could be enforced that at least the last valid StatusReport would be returned. This behaviour was intentionally avoided here to allow for an operation that checks if any status updates happened in a given time period in the past. 7.3.6.2

Data Types

The conceptual model of the GetStatus operation is shown in the following UML diagram.

72

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 20 — Data types of the GetStatus operation The details of the operation request and response are explained in the following subclauses. 7.3.6.3

Operation Request - GetStatus

Sending an instance of the GetStatus data type to the service performs an SPS GetStatus operation request.

Copyright © 2011 Open Geospatial Consortium

73

OGC 09-000

The GetStatus data type is derived from the SWES ExtensibleRequest data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. GetStatus does not restrict the content model of ExtensibleRequest. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetStatusRequest/dataType REQ 56.

The GetStatus data type shall contain the properties defined for SWES ExtensibleRequest. In addition, it shall contain the properties according to Table 32. Table 32 — Properties in the GetStatus data type

Name

Definition

task

Pointer to the task for which status information is requested.

since

point in time in the past that denotes the begin of the time period – ended by the time when the request was received by the service – for which status reports of the identified task are requested

Data type and values id

Task see clause 7.3.1.6 value as provided by SPS in response to a previous tasking request DateTime (see ISO 19103 and OGC 07-036 Table D.2) value shall be a point in time in the past

Multiplicity and use One (mandatory)

One to zero (optional) if not provided in the request only the latest state shall be reported (default behavior of the operation)

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

7.3.6.4

Operation Response - GetStatusResponse

The GetStatusResponse data type represents the response to an SPS GetStatus operation request. The GetStatusResponse data type is derived from the SWES ExtensibleResponse data type (see clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. GetStatusResponse does not restrict the content model of ExtensibleResponse.

74

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetStatusResponse/dataType REQ 57.

The GetStatusResponse data type shall contain the properties defined for SWES ExtensibleResponse. In addition, it shall contain the property according to Table 33. Table 33 — Properties in the GetStatusResponse data type

Name status

Definition

Data type and values

Multiplicity and use

status report providing information about the current or – if requested via the “since” parameter – a previous state of the requested task/tasking request

StatusReport (see 7.3.1.5) Property usage for providing status information of a GetFeasibility or Update request as defined in Table 34, of a Reserve or Submit request as defined in Table 35 and for a scheduled task as defined in Table 36 & Table 37; all tables also indicate when a ReservationReport rather than a StatusReport is used to encode the status information

Zero to many (mandatory) whether zero, one or more reports are contained in the GetStatus response depends on the status of the task/tasking request (it could have made only one transition but also more), if the service supports the since parameter (if not then only the current status is returned) and that parameter is actually used in the request (even though clients may have the option to request more status information, without using the ‘since’ parameter they are only interested in the current status)

The following tables define in more detail how status reports are used in a GetStatus operation response to provide status information of a task or tasking request. With the GetStatus operation it is possible to retrieve the currently valid tasking parameter values. For performance reasons, the current tasking parameter settings are omitted from tasking request responses. In contrast, tasking request respones may contain alternative sets of tasking parameters, which is not possible in GetStatus responses.

Copyright © 2011 Open Geospatial Consortium

75

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetStatusResponse/informationExtent REQ 58.

If the since option (i.e., the state logger conformance class) is supported by the service and a client uses the parameter in a GetStatus request to retrieve the status of a Reserve or Submit tasking request, then all state information shall be returned on that tasking request, including information about the task which was scheduled once the tasking request was accepted.

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetStatusResponse/validTime REQ 59.

Status information is only reported if the according status/reservation report updateTime falls within the reporting period as defined in Figure 21and Figure 22.

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetStatusResponse/informationExtent2 REQ 60.

If the GetStatus request was intended to retrieve the status of a task but the since parameter denotes a point in time when the tasking request that caused the task was not yet finalized, then the information on that tasking request shall also be included in the response, together with all status information about the task.

The following figure depicts some exemplary tasks/tasking request in the left column and corresponding state transitions on a time axis running from left to right in the main window. The arrows indicate the lifetime of tasks and tasking requests. The vertical lines indicate state transitions. Given a GetStatus request with since parameter defining the time period shown in the figure, the StatusReport contains information only about state transitions highlighted in red. In contrast, unreported state transitions that are illustrated as thin grey bars. As shown, only state transitions within the time period are reported.

76

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 21 – Status information returned for various exemplary tasks/tasking requests when the “since” parameter was used in GetStatus request Figure 22 illustrates the information returned for the same tasking situation, but the GetStatus operation is used without the since parameter.

Copyright © 2011 Open Geospatial Consortium

77

OGC 09-000

Figure 22 – Status information returned for various exemplary tasks/tasking requests when the “since” parameter was not used in GetStatus request In this situation, the latest status is reported each time. This scenario assumes that the SPS server hasn’t deleted any information about finalized tasks yet. See section 7.3.3.3 for more information on status hold-back time. Table 34 provides an overview of the usage of the various StatusReport properties in a GetStatus response for tasking requests generated in consequence of GetFeasibility and Update requests. Table 35 provides the same information for tasking requests generated in consequence of Reserve and Submit requests. Once the tasks are scheduled, i.e. the tasking request was accepted, the properties shall be used as illustrated in Table 36 and Table 37.

78

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 34 – Providing status information on GetFeasibility and Update requests State Transition (From Æ To)

property name/cardinality Initial Æ Pending

Initial | Pending Æ Accepted

Initial | Pending Æ Rejected

Pending Æ Rejected (TaskingRequestE xpired)

task/1

identifier provided in GetStatus request 1

estimatedToC/0..1

NA 2

event (code)/0..1

NA

NA

NA

TaskingRequestExp ired

percentCompletion /0..1

NA 3

procedure/1

identifier of procedure that GetFeasibility request was made for/that belongs to task for which Update request was made

requestStatus (code)/1

Pending

statusMessage/0..* taskingParameters/ 0..1

Accepted

Rejected

Rejected

service may provide additional information to client in human readable form NA

parameters used in parameters used tasking request in tasking request

parameters used in tasking request

taskStatus (code)/0..1 updateTime/1

NA point in time when transition into new state was made

alternative/0..*

NA

StatusReport is Encoded as ReservationReport

NA

NA = not applicable, means that property is not used in the response Notes: 1 has to be an identifier known to the service (otherwise an exception is thrown) 2 only applicable to scheduled tasks that have not been finalized yet 3 only applicable to scheduled tasks that are being or have been executed

Copyright © 2011 Open Geospatial Consortium

79

OGC 09-000

Table 35 – Providing status information on Reserve and Submit requests State Transition (From Æ To)

property name/cardinality Initial Æ Pending

Initial | Pending Æ Initial | Pending Æ Accepted / Accepted / Reserved (tasking InExecution (tasking request was request was Submit) Reserve)

Initial | Pending Æ Rejected

Pending Æ Rejected (TaskingReq uestExpired)

identifier provided in request 1

task/1 estimatedToC/0..1

NA

optional

optional

NA

NA

event (code)/0..1

NA

TaskReserved

TaskSubmitted

NA

TaskingRequ estExpired

percentCompletion /0..1

NA

NA

0

NA

NA

procedure/1 requestStatus (code)/1

identifier of procedure that Reserve/Submit request was made for Pending

Accepted

Accepted

Rejected

Rejected

statusMessage/0..*

service may provide additional information to client in human readable form

taskingParameters/ 0..1

NA

parameters used in tasking request

parameters used in tasking request

parameter s used in tasking request

parameters used in tasking request

taskStatus (code)/0..1 updateTime/1

NA

Reserved

InExecution

NA

NA

point in time when transition was made

point in time when point in time when point in point in time transition into transition into time when when Accepted/Reserved Accepted/InExecution transition transition was state was made state was made was made made

alternative/0..* StatusReport is Encoded as ReservationReport

NA no

yes

no

no

no

NA = not applicable, means that the element is not used in the response Notes: 1 has to be an identifier known to the service (otherwise an exception is thrown)

80

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 36 – Providing status information on scheduled tasks (part 1) property name/cardinality

State Transition (From Æ To) Reserved Æ InExecution (task confirmed)

Reserved Æ Reserved (task updated)

InExecution Æ InExecution (task updated)

task/1

identifier provided in request 1

estimatedToC/0..1

optional

InExecution Æ InExecution (data published)

event (code)/0..1

TaskUpdated

TaskConfirmed

TaskUpdated

DataPublished

percentCompletion /0..1

optional

0

optional

optional

procedure/1

identifier of procedure associated to the task

requestStatus (code)/1

Accepted

statusMessage/0..*

service may provide additional information to client in human readable form

taskingParameters/ 0..1 taskStatus (code)/0..1 updateTime/1

parameters used in update request Reserved

NA

parameters used in update request

NA

InExecution

InExecution

InExecution

point in time when transition was made

alternative/0..* StatusReport is Encoded as ReservationReport

NA yes

no

no

no

NA = not applicable Notes: 1 has to be an identifier known to the service (otherwise an exception is thrown)

Copyright © 2011 Open Geospatial Consortium

81

OGC 09-000

Table 37 – Providing status information on scheduled tasks (part 2) property name/cardinality

State Transition (From Æ To) Reserved Æ InExecution Æ Final Final (ReservationEx (TaskComplete pired) d)

Scheduled (Reserved or InExecution) Æ Final (TaskCancelled)

task/1

identifier provided in request 1

estimatedToC/0..1

NA 2

event (code)/0..1

ReservationExp TaskCompleted ired percentCompletio NA 100 n/0..1

Scheduled (Reserved or InExecution) Æ Final (TaskFailed)

TaskCancelled

TaskFailed

optional

optional

procedure/1

identifier of procedure associated to the task

requestStatus (code)/1

Accepted

statusMessage/0.. *

service may provide additional information to client in human readable form

taskingParameters /0..1

NA

taskStatus (code)/0..1

Expired

Completed

Cancelled

Failed

updateTime/1

point in time when transition into new state was made

alternative/0..*

NA

StatusReport is Encoded as ReservationRepor t

yes

no

no

no

NA = not applicable Notes: 1 has to be an identifier known to the service (otherwise an exception is thrown) 2 only applicable to scheduled tasks that have not been finalized yet

82

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.3.6.5

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetStatusResponse/exceptions REQ 61.

7.3.6.6

When an SPS server encounters an error while performing a GetStatus operation, it shall return an exception message as specified in clause 7.2. In addition: •

If a GetStatus request contains a “since” property but the server does not support state logger functionality (i.e., it only keeps track of the current/last status of a task/tasking request - see clause 7.3.2.4.3 for further information), an exception with code OptionNotSupported and locator value since shall be thrown.

If an SPS has removed status information for a requested task/tasking request after the required provision time has passed, it shall throw an StatusInformationExpired exception.

Examples

Clause 9.6 provides example XML instances for the GetStatus operation request and response. 7.3.7

7.3.7.1

GetTask Operation

Introduction

The GetTask operation allows SPS clients to retrieve complete information about a given task or tasking request. Currently, this operation is only marginal different from GetStatus. The main reason for this operation is to serve as an extension point for future extensions to this standard. This includes status information about the task. Per default only the latest status is provided by an SPS. If state logger functionality is supported by the service (see clause 7.3.2.4.3) then the complete state history shall be returned. If the GetTaskResponse contains multiple status reports then it is recommended that the service lists them in ascending temporal order regarding the update time of each report. However, a service may discard such information after a certain point in time. This point in time is defined by the minStatusTime value provided in the Contents section (see clause 7.3.3.3) of the service’s Capabilities document. In that case the service throws an according exception. Copyright © 2011 Open Geospatial Consortium

83

OGC 09-000

7.3.7.2

Data Types

The conceptual model of the GetTask operation is shown in the following UML diagram.

Figure 23 — Data types of the GetTask operation The details of the operation request and response are explained in the following subclauses. 7.3.7.3

Operation Request – GetTask

Sending an instance of the GetTask data type to the service performs an SPS GetTask operation request. The GetTask data type is derived from the SWES ExtensibleRequest data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. GetTask does not restrict the content model of ExtensibleRequest. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetTaskRequest/dataType REQ 62.

84

The GetTask data type shall contain the properties defined for SWES ExtensibleRequest. In addition, it shall contain the property according to Table 38.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 38 — Properties in the GetTask data type Name task

Definition Pointer to the task on which information is requested.

Data type and values id

Task see clause 7.3.1.6

Multiplicity and use One to many (mandatory)

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

7.3.7.4

Operation Response – GetTaskResponse

The GetTaskResponse data type represents the response to an SPS GetTask operation request. The GetTaskResponse data type is derived from the SWES ExtensibleResponse data type (see clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. GetTaskResponse does not restrict the content model of ExtensibleResponse. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetTaskResponse/dataType REQ 63.

The GetTaskResponse data type shall contain the properties defined for SWES ExtensibleResponse. In addition, it shall contain the property according to Table 39. Table 39 — Properties in the GetTaskResponse data type

Name task

Definition the task that was requested

Data type and values Task see clause 7.3.1.6

Multiplicity and use One to many (mandatory)

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetTaskResponse/properties REQ 64.

A task (or tasking request) contained in the GetTaskResponse shall provide status information for the state transition(s) it made according to Table 34 to Table 37.

To clarify which status information is provided for a task in the GetTaskResponse, we consider the possible cases. If the state logger conformance class is not supported by the service then per default the service only stores the latest state of a task/tasking request. As a result, only information about the latest status would be included in the GetTaskResponse for a task – this is similar to the situation for the GetStatus operation depicted in Figure 22. If, on the other hand, the state logger conformance class is

Copyright © 2011 Open Geospatial Consortium

85

OGC 09-000

supported by the service then the complete status information of a task/tasking request shall be provided in the GetTaskResponse. Figure 24 shows exemplary cases.

Figure 24 – Status information returned in the GetTaskResponse for various exemplary tasks/tasking requests when the state logger conformance class is supported by the service 7.3.7.5

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetTaskResponse/exceptions REQ 65.

86

When an SPS server encounters an error while performing a GetTask operation, it shall return an exception message as specified in clause 7.2. In addition, if the minimum storage time of status information for finalized tasks has passed and the service already removed that information, it shall throw a StatusInformationExpired exception.

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.3.7.6

Examples

Clause 9.6 provides example XML instances for the GetTask operation request and response. 7.3.8

DescribeResultAccess Operation

7.3.8.1

Introduction

The DescribeResultAccess operation allows SPS clients to retrieve information on how to access data that was produced by a specific task, or how to retrieve data for a given sensor that is tasked by this SPS in general. The response can point to: •

a SOS, WMS, WFS

any other OGC Web Service that provides data

any data file or folder on an ftp server

any data file or file container that is accessible over the Internet

Clients provide the identifier of either a sensor or task to identify the information they are interested in. Table 40 defines the semantics that of both variations. Table 40 — Semantics of DescribeResultAccess operation request using task or procedure identifier DescribeResultAccess request

DescribeResultAccess response

Applicable Reference Usage Options (see Table 41)

including a procedure identifier

Reference(s) that points to the service(s) providing data for that procedure. The response contains the base URL to the service. It is then the client's task to explore all available data. Primarily useful to learn in advance at which service types/instances or via which protocols data is going to be made available. Reference(s) to the concrete data of the specified task (concrete file/folder on a server, full [OGC] service request that delivers all data etc.)

3, 5

including task identifier

1, 2, 3, 4, 5 option 3 should be avoided if possible 1

Notes: 1) When providing information about a task, option 3 is the easiest solution for SPS providers but the hardest for clients. However, in some domains the link to the service might already suffice as additional information and constraints enable clients to create the request for retrieving their data themselves. Security issues may also require this option to be used.

The result contains one or more reference group elements, which are defined by [OGC 06-121r3], to describe where data is or will be stored.

Copyright © 2011 Open Geospatial Consortium

87

OGC 09-000

7.3.8.1.1 Reference group usage Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccess/referenceGroup/procedure

REQ 66.

If the DescribeResultAccess request contains a procedure identifier (see Table 40), then the response shall contain one or many ReferenceGroup(s) with references to the possible data storage locations/services for that procedure. In most cases a single group will be used, but there are situations that require the usage of multiple groups, as described further below.

Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccess/referenceGroup/task REQ 67.

If the DescribeResultAccess contains a task identifier then each ReferenceGroup shall describe the complete data set that was gathered for the requested task.

Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccess/referenceGroup/incremental

REQ 68.

If an SPS server publishes data gathered for a task incrementally, then new references shall be added to the according reference group(s). Clients can differentiate new references from those they already received by the identifier provided with each reference.

The reference group(s) contains all references required to access the data gathered for a specific task once the task is complete. Before, the set of references in a group can be incomplete, as new references are added whenever new data was published and thus made accessible to clients. It may happen that all data for a given task will be published towards the end of the lifetime of a task. In this case, a DescribeResultAccess would yield no results before the status of the task is set to Final. In some cases published data might also be temporarily unavailable due to failures of the data services. Both situations are recognized by this standard and can be communicated via the DescribeResultAccessResponse to clients. The main purpose of allowing more than one reference group in a DescribeResultAccessResponse is to support the provision of data 88

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

• • • •

in various forms of data representations – data can be published as raw binary data, O&M encoded observations, NetCDF files, image files, video streams etc. in various processing stages – data can be published as received by the sensor, after level-1 quality checks were performed, level-2 quality checks etc. in various storage stages – in some domains data is made accessible in some kind of immediately accessible cache but soon after a task/mission was completed the data is moved from there to a long-term data archive via different protocols – access to data may be performed via FTP, HTTP etc.

As an example, an SPS server may use some transient storage to make intermediate results available to the client in various representations using diverse access protocols. Once the next processing step is reached, this data becomes obsolete and some references in the reference groups might be removed, updated, or simply superseded by new reference groups that now point to the next level data. The SPS server would continuously update the reference groups, and clients can differentiate them from those they already know via the identifier assigned to each group by the service. Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccess/referenceGroup/Aggregation

REQ 69.

Any SPS shall aggregate references in reference groups according to Table 41.

How references are used in reference groups is defined in the following clause. 7.3.8.1.2 Reference usage SPS does not provide a direct data access operation. Instead, it provides references to the data or services hosting the data. The various options in describing the data access are outlined in Table 41. Further on, it describes the concrete semantics and usage of the ReferenceGroup properties in detail.

Copyright © 2011 Open Geospatial Consortium

89

OGC 09-000

Table 41 – Service Reference Mapping Option

SPS provides

Used elements of DescribeResultAccessResponse

Cardinality

1

a URL that contains the full request string to be sent against the data service

reference (URI): Full request as sent to data service using HTTP GET role (URI): describes the role of this reference, in other words what the SPS provides with this reference value shall be identifier for this reference option: http://www.opengis.net/spec/SPS/2.0/referenceTyp e/FullURLAccess title (String): Human readable title for this reference identifier (URI): unique identifier for the reference abstract (String with optional language code): Brief narrative description of this reference (for example what it references), normally available for display to a human format (mime type): defines the response format as provided by data service (Table 42 provides guidance) metadata (AbstractMetadata, at least one SPSMetadata shall be included): provides specific metadata for (service) references given in a DescribeResultAccessResponse – in case of SPSMetadata it identifies the specification that defines the type of service/method used for accessing data (see Table 50).

1

information encoded as OWS Common Reference

90

1

0..1 1 0..*

1

1..*

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Option

SPS provides

Used elements of DescribeResultAccessResponse

Cardinality

2

XML encoded query to be sent against service using HTTP POST

reference (URI): Service URL role (URI): describes the role of this reference, in other words what the SPS provides with this reference value shall be identifier for this reference option: http://www.opengis.net/spec/SPS/2.0/referenceTyp e/FullServiceAccess title (String): Human readable title for this reference identifier (URI): unique identifier for the reference abstract (String with optional language code): Brief narrative description of this reference (for example what it references), normally available for display to a human format (mime type): defines the response format as provided by data service (Table 42 provides guidance) requestMessage (String): The XML-encoded operation request message to be sent to the URI provided in xlink:href OR requestMessageReference (URI): Reference to the XML-encoded operation request message to be sent to the URI provided in xlink:href metadata (AbstractMetadata, at least one SPSMetadata shall be included): provides specific metadata for (service) references given in a DescribeResultAccessResponse – in case of SPSMetadata it identifies the specification that defines the type of service/method used for accessing data (see Table 50).

1 1

information encoded as OWS Common ServiceRefer ence

Copyright © 2011 Open Geospatial Consortium

0..1 1 0..*

1

1

1..*

91

OGC 09-000

Option

SPS provides

Used elements of DescribeResultAccessResponse

Cardinality

3

Link to service. Client needs to explore the service itself

reference (URI): service URL role (URI): describes the role of this reference, in other words what the SPS provides with this reference value shall be identifier for this reference option: http://www.opengis.net/spec/SPS/2.0/referenceTyp e/ServiceURL title (String): Human readable title for this reference identifier (URI): unique identifier for the reference abstract (String with optional language code): Brief narrative description of this reference (for example what it references), normally available for display to a human format (mime type): defines the response format as provided by data service if it can be identified (Table 42 provides guidance) metadata (AbstractMetadata, at least one SPSMetadata shall be included): provides specific metadata for (service) references given in a DescribeResultAccessResponse – in case of SPSMetadata it identifies the specification that defines the type of service/method used for accessing data (see Table 50). reference (URI): Link to the file on a server, transport protocol is implied by URI role (URI): describes the role of this reference, in other words what the SPS provides with this reference value shall be identifier for this reference option: http://www.opengis.net/spec/SPS/2.0/referenceTyp e/Resource title (String): Human readable title for this reference identifier (URI): unique identifier for the reference abstract (String with optional language code): Brief narrative description of this reference (for example what it references), normally available for display to a human format (mime type): defines the mimeType of the resource (Table 42 provides guidance)

1 1

information encoded as OWS Common Reference

4

Resource on a server (e.g. file or dynamically created resource like video stream) information encoded as OWS Common Reference

92

0..1 1 0..1

0..1

1..*

1 1

0..1 1 0..*

1

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Option 5

SPS provides

Used elements of DescribeResultAccessResponse

Cardinality

Folder on a server

reference (URI): Link to the folder on a server role (URI): describes the role of this reference, in other words what the SPS provides with this reference value shall be identifier for this reference option: http://www.opengis.net/spec/SPS/2.0/referenceTyp e/Folder title (String): Human readable title for this reference identifier (URI): unique identifier for the reference abstract (String with optional language code): Brief narrative description of this reference (for example what it references), normally available for display to a human format (ows:MimeType): defines the mimeType of the files in that folder (in case they are homogeneous)

1 1

information encoded in: ows:Reference

0..1 1 0..*

0..1 provide if files in folder (will) have homogene ous format/mi me type

Options 1 and 2 provide full service access, either via a GET request or via an XML encoded POST request to be sent to the service in order to retrieve task data. However, a client may still need to modify a given request before it can actually execute it, for example if security conditions apply that require request enrichment with security elements such as tokens, signatures, etc. Operation requests wrapped in a SOAP envelope are another example. If for example WS-Addressing is used, then the SPS may provide a value for the wsa:Action element. However, for the wsa:ReplyTo element it can only state the anonymous endpoint (and even that may not be permitted by the referenced service so the SPS would have to omit the wsa:ReplyTo element in the given request) while it cannot provide a meaningful value for the wsa:MessageID element. See example provided in clause 9.6.6for further information.

Copyright © 2011 Open Geospatial Consortium

93

OGC 09-000

Table 42 – Examples of applicable mime types when referencing data applicable mime type 1 application/xml application/gml+xml application/xml image/png image/jp2 video/mp4 video/mj2

Reference resolves to SOS GetObservation response O&M Observation 2.0 XML instance SensorML 1.0.1 XML instance PNG image JPEG 2000 image MP-4 video file Motion JPEG 2000 video file

Notes: 1 The provision of a mime type does not mean that this is the only one applicable. For example in case of a SOS GetObservation response the according request could ask for a different response format other than the default one. The returned XML could also be binarized, resulting in another mime type (e.g. application/exi).

Figure 25 illustrates the mapping of OWS Common (Service) Reference properties to the elements and attributes of the according XML type. OwsCommon References are used as follows:

Figure 25 — Mapping of UML Reference elements to XML Schema elements. Rarely used elements are grayed out Note: Data production as a result of tasking a sensor and subsequent data access are two decoupled processes. Theoretically, the SPS might use a number of data storage services to store the data (e.g. for performance reasons). This leads to the situation that the SPS returns a list of data references for a given sensor identifier. Then, it is up to the client to explore those services to discover the relevant data.

94

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Note: in XML Schema, an ows:Reference element allows a number of metadata information to be provided to clients. This can be used to provide further information about or for accessing the referenced data (for example metadata about the processing applied to the referenced data). At the moment no model for such specific metadata is defined. However, according models could be defined in other documents – like it is done in clause 7.3.8.10 – and used by an SPS. Clients that do not understand such metadata can simply ignore it.

If the service supports publish/subscribe functionality, it sends notifications to the client to indicate that new data is available. It is up to the SPS instance to decide when it publishes data. However, sending a task completed notification to clients implies that all data generated for the task has been published and that there will be no more data published notification. In case that no data is available for a given task, the service returns a DataNotAvailable data type giving the reason why the data is not available. Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccess/duration REQ 70.

An SPS shall provide result access information for a task at least as long as it provides status information for that task (clause 7.3.3.3 defines how long that information has to be stored at minimum).

A service should provide this information longer. How much longer is not defined by this standard. Specific application domains and/or profiles and extensions can define this in more detail. 7.3.8.2

Data Types

The conceptual model of the DescribeResultAccess operation is shown in the following UML diagram.

Copyright © 2011 Open Geospatial Consortium

95

OGC 09-000

Figure 26 — Data types of the DescribeResultAccess operation The details of the operation request and response are explained in the following subclauses. 7.3.8.3

Operation Request – DescribeResultAccess

Sending an instance of the DescribeResultAccess data type to the service performs an SPS DescribeResultAccess operation request. The DescribeResultAccess data type is derived from the SWES ExtensibleRequest data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties

96

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

contained in that data type. DescribeResultAccess does not restrict the content model of ExtensibleRequest. Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccessRequest/dataType REQ 71.

The DescribeResultAccess data type shall contain the properties defined for SWES ExtensibleRequest. In addition, it shall contain the property according to Table 43. Table 43 — Property in the DescribeResultAccess data type

Name target

Definition

Data type and values

Pointer to either a task or procedure.

TaskOrProcess, see clause 7.3.8.4 further below

7.3.8.4

Multiplicity and use One (mandatory)

TaskOrProcess

In a DescribeResultAccess request, the ID of either a task or procedure is used to define the semantics of the request. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskOrProcess/dataType REQ 72.

The TaskOrProcess union shall contain one of the properties/choices according to Table 44.

Copyright © 2011 Open Geospatial Consortium

97

OGC 09-000

Table 44 — Properties in the TaskOrProcess union Name

Definition

task

Pointer to a task.

procedure

Pointer to a procedure tasked by the service.

Data type and values id

Task , see clause 7.3.1.6 value shall point to a task that is or was executed by the service OM_Process id, see ISO DIS 19156 value shall point to one of the procedures listed in the service’s contents section

Multiplicity and use One (mandatory) Because TaskOrProcess is a union, either a task or procedure shall be used (i.e. there is a choice between the properties)

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

7.3.8.5

Operation Response - DescribeResultAccessResponse

The DescribeResultAccessResponse data type represents the response to an SPS DescribeResultAccess operation request. The DescribeResultAccessResponse data type is derived from the SWES ExtensibleResponse data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. DescribeResultAccessResponse does not restrict the content model of ExtensibleResponse. Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccessResponse/dataType REQ 73.

The DescribeResultAccessResponse data type shall contain the properties defined for SWES ExtensibleResponse. In addition, it shall contain the properties according to Table 45.

Table 45 — Property in the DescribeResultAccessResponse data type Name

Definition

availability

indicates that data is available or not

7.3.8.6

AvailableOrNot

Data type and values AvailableOrNot, see clause 7.3.8.6

Multiplicity and use One (mandatory)

A DescribeResultAccessResponse either indicates that data gathered in a task is available at given service references or that it is not available for some reason.

98

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/AvailableOrNot/dataType REQ 74.

The AvailableOrNot union shall contain the properties/choices according to Table 46.

Table 46 — Properties in the AvailableOrNot union Name

Definition

available

indicates that task data is available and contains (service) reference(s) to retrieve the data indicates that data is not available and explains why it is not available

unavailable

7.3.8.7

Data type and values DataAvailable, see clause 7.3.8.7 DataNotAvailable, see clause 7.3.8.8

Multiplicity and use One (mandatory) Because AvailableOrNot is a union, either available or unavailable shall be used (i.e. there is a choice between the properties)

DataAvailable

This data type contains a list of one or more groups of service references. They point to services that generally store data from the requested procedure. They can also point to the data directly. Distributing data across several service instances can be performed inside a reference group. The response can contain more than one ReferenceGroup, if the application design requires it (see clause 7.3.8.1). Requirement http://www.opengis.net/spec/SPS/2.0/req/DataAvailable/dataType REQ 75.

The DataAvailable data type shall contain the property according to Table 47.

Table 47 — Property in the DataAvailable data type Name

Definition

Data type and values

Multiplicity and use

dataReference

group of (service) references with which the complete set of data gathered for a task can be retrieved

ReferenceGroup, see table 46 in [06-121r3]

One or more (mandatory) use of ReferenceGroup and contained (Service)References as defined in clause 7.3.8.1

Copyright © 2011 Open Geospatial Consortium

99

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccessResponse/identification

REQ 76.

The service shall assign a unique identifier for each ReferenceGroup and the references contained in that group. Those identifiers shall not be changed while the according object (reference group or reference) exists.

Note: thus for example a change to the set of references contained in a reference group does not change the identifier of this group.

7.3.8.8

DataNotAvailable

This data type expresses that no data is available. Requirement http://www.opengis.net/spec/SPS/2.0/req/DataNotAvailable/dataType REQ 77.

The DataNotAvailable data type shall contain the properties according to Table 48.

Table 48 — Properties in the DataNotAvailable data type Name message

unavailabl eCode

7.3.8.9

Definition

Data type and values

LanguageString, see clause 10.7 human readable in [OGC 06-121r3] message that provides further information or reason why no data is available identifies the reason UnavailableCode, see clause why data is 7.3.8.9 unavailable

Multiplicity and use Zero or more (optional) Include one for each language represented One (mandatory)

UnavailableCode

This type is a list of codes signifying the reason why result access information for a given task or sensor is not available.

100

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccessResponse/UnavailableCode

REQ 78.

The UnavailableCode code list shall contain the properties/choices according to Table 49. Table 49 — Properties in the UnavailableCode code list

Name a

Definition

DataNotAvailable

Result access information is not available because no data has been published yet. Result access information is not available because one or more of the services that are assigned to store the data gathered in a task is currently unavailable.

DataServiceUnava ilable

Value “DataNotAvailable” “DataServiceUnavailable”

a Although some values listed in the column appear to contain spaces, they shall not contain spaces.

The code list is extensible. The pattern for new codes is the regular expression: other: [A-Za-z0-9_]{2,} However, for interoperability reasons a service should not use an arbitrary code that is not defined by an official SPS extension. 7.3.8.10

SPSMetadata

This data type provides SPS specific metadata for (service) references given in a DescribeResultAccessResponse. The SPSMetadata data type is derived from the OWS Common AbstractMetadata data type [OGC 06-121r3]. That data type does not define any property and thus SPSMetadata does not inherit any property from it. However, it is a child of AbstractMetadata and thus is a valid substitute whenever such metadata is provided, for example in references (see clause 7.3.8.1.2). Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccessResponse/SPSMetadata

REQ 79.

The SPSMetadata data type shall contain the properties according to Table 50.

Copyright © 2011 Open Geospatial Consortium

101

OGC 09-000

Table 50 — Properties in the SPSMetadata data type Data type and values

Name

Definition

dataAcces sType

Identifies the specification that defines the type of service/meth od used for accessing data.

URI

Multiplicity and use one (mandatory) Use the following URIs with given priority: 1) URI that uniquely identifies the operation with which data is accessed 1 – example: http://www.opengis.net/sos/2.0/GetObservation , 2) target namespace of the XML Schema definition for the operation/service via which data is accessed 2– example: http://www.opengis.net/wcs/1.1 or http://nonogc.org/operation/x, 3) the OGC name of the specification where the operation is defined in 2– example: http://www.opengis.net/doc/IS/WMS/1.3, 4) http://www.opengis.net/def/nil/OGC/0/unknown if no specific URI is known that uniquely identifies the service/method

Notes: 1) Whenever the SOAP binding of a service specification defines action URIs for its operations, the action URI for the operation request is a suitable value to use. This URI can also be used to identify the operation even if its KVP binding is actually used in a reference. 2) References that provide the service URL only but not a full GET or POST request with which the data can be retrieved may not be able to state via which specific operation data is retrieved. In that case the provision of the target namespace assigned to the XML Schema of the service suffices – if it uniquely identifies one specific version of that specification. Otherwise another identifier for the specification (version) – for OGC specifications this could be the OGC name of the document – should be used.

The SPSMetadata data type can be subclassed, for example by extensions to this specification, to provide additional metadata if required. Such extensions can also define their own data type that derives from OWS Common AbstractMetadata and properly specify when it needs to be included in (service) references. 7.3.8.11

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/DescribeResultAccesResponse/exceptions REQ 80.

7.3.8.12

When an SPS server encounters an error while performing a DescribeResultAccess operation, it shall return an exception message as specified in clause 7.2.

Examples

Clause 9.6 provides example XML instances for the DescribeResultAccess operation request and response. 102

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 7.3.9

7.3.9.1

Reserve Operation

Introduction

The Reserve operation allows SPS clients to reserve a task. The client encodes the tasking parameters according to the parameter description do a DescribeTasking response. Thus, reserving a task is practically similar to submitting a task, except that the task is not performed until the client sends a Confirm request. The Reserve operation is part of the ReservationManager interface (see clause 7.1). A reservation can be cancelled sending a Cancel request at any time. Clients can set expiration time for reserved tasks. If the service does not accept the reservation time, it rejects the request and provides an appropriate message explaining the reason. Otherwise the service reserves the task until the reservation expires or the client confirmed or cancelled the reservation. SPS servers provide reservation time in case the client provides no timing in the request. An expired reservation cannot be revitalized. 7.3.9.2

Data Types

The conceptual model of the Reserve operation is shown in the following UML diagram.

Copyright © 2011 Open Geospatial Consortium

103

OGC 09-000

Figure 27 — Data types of the Reserve operation The details of the operation request and response are explained in the following subclauses. 104

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.3.9.3

Operation Request - Reserve

Sending an instance of the Reserve data type to the service performs an SPS Reserve operation request. The Reserve data type is derived from the abstract TaskingRequest data type (see clause 7.3.1.3) and therefore inherits all the properties contained in that data type. Reserve does not restrict the content model of TaskingRequest. Requirement http://www.opengis.net/spec/SPS/2.0/req/ReserveRequest/dataType REQ 81.

The Reserve data type shall contain the properties defined for TaskingRequest. In addition, it shall contain the properties according to Table 51. Table 51 — Property in the Reserve data type

Name

Definition

Data type and values

reservation Expiration

point in time when the reservation shall expire

DateTime (see ISO 19103 and OGC 07-036 Table D.2) value shall be a point in time in the future

Multiplicity and use Zero or one (optional)

Requirement http://www.opengis.net/spec/SPS/2.0/req/ReserveRequest/timing REQ 82.

7.3.9.4

The Reserve data type is a TaskingRequest. If the client defines a reservationExpiration time and this time has already passed when the SPS receives the request, then the SPS shall reject the request.

Operation Response - ReservationReport

The ReserveResponse data type represents the response to an SPS Reserve operation request. It is derived from the TaskingResponse data type (see clause 7.3.1.4) and therefore inherits all the properties contained in that data type. ReserveResponse neither restricts the content model of TaskingResponse nor adds additional properties.

Copyright © 2011 Open Geospatial Consortium

105

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/ReserveResponse/dataType REQ 83.

The ReserveResponse data type shall contain the properties defined for TaskingResponse.

A ReserveResponse contains either a ReservationReport or a StatusReport to indicate the result of the requested operation. The concrete report type depends on the status of the request. The only difference between both report types is the additional expirationTime property of the ReservationReport. Requirement http://www.opengis.net/spec/SPS/2.0/req/ReserveResponse/ReportType REQ 84.

A ReservationReport shall be returned if the request gets accepted. In all other cases, a StatusReport shall be returned.

As a Reserve request is a tasking request, the final result of that request might not be directly available and would then be pending. Requirement http://www.opengis.net/spec/SPS/2.0/req/ReserveResponse/ReportProperties REQ 85.

The properties of the ReservationReport or StatusReport shall be used as defined in the Table 52.

The transitions starting from the Pending state are not applicable for reporting in the ReserveResponse, as the ReserveResponse provides only information about the first state transition, i.e. from initial to accepted, pending, or rejected. Clients retrieve further state transitions via notifications or GetStatus operation calls.

106

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 52 – StatusReport usage for different state transitions of a Reserve request property name/cardi nality

task/1

Initial Æ Pending

Reserve Request State Transitions (From Æ To) Initial Æ Initial Æ Pending Pending Æ Æ Accepted Rejected Accepted Rejected

new identifier provided by service

estimatedTo C/0..1 event (code)/0..1

NA

optional

NA

NA

TaskReser ved

NA

identifier previously provided by service optional NA NA TaskReser ved

NA

TaskingReq uestExpired

NA 1

percentCom pletion/0..1 procedure/1 requestStatu s (code)/1 statusMessa ge/0..* taskingPara meters/0..1 taskStatus (code)/0..1 updateTime/ 1 alternative/0 ..* StatusReport encoded as Reservation Report Applicable in Reserve Response

Pending Æ Rejected (request expired)

identifier of procedure for which Reserve request was made Pending

Accepted

Rejected

Accepted

Rejected

Rejected

service may provide additional information to client in human readable form NA NA

Reserved

NA

Reserved

NA

NA

point in time when transition was made may be provided by service no

yes

no

yes

no

no

yes

yes

yes

no

no

no

NA = not applicable Notes 1 only applicable to tasks that are being or have been executed

7.3.9.5

ReservationReport

The ReservationReport type is derived from the StatusReport type (see clause 7.3.1.5) and therefore inherits all the properties contained in that type. ReservationReport does not restrict the content model of StatusReport.

Copyright © 2011 Open Geospatial Consortium

107

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/ReserveResponse/ReservationReport/dataType

REQ 86.

The ReservationReport type shall contain the properties defined for StatusReport. In addition, it shall contain the property according to Table 53. Table 53 — Property in the ReservationReport type

Name

Definition

Data type and values

reservation Expiration

point in time when the (task) reservation will expire

DateTime (see ISO 19103 and OGC 07-036 Table D.2) value shall be a point in time in the future

7.3.9.6

Multiplicity and use One (mandatory)

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/ReserveResponse/exceptions REQ 87.

7.3.9.7

When an SPS server encounters an error while performing a Reserve operation, it shall return an exception message as specified in clause 7.2.

Examples

Clause 9.6 provides example XML instances for the Reserve operation request and response. 7.3.10 Confirm Operation

7.3.10.1

Introduction

The Confirm operation allows SPS clients to confirm a reserved task. If accepted, the task transits from state Reserved to InExecution (see clause 10). 7.3.10.2

Data Types

The conceptual model of the Confirm operation is shown in the following UML diagram.

108

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 28 — Data types of the Confirm operation The details of the operation request and response are explained in the following subclauses. 7.3.10.3

Operation Request - Confirm

Sending an instance of the Confirm data type to the service performs an SPS Confirm operation request. The Confirm data type is derived from the abstract SWES ExtensibleRequest data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. Confirm does not restrict the content model of ExtensibleRequest.

Copyright © 2011 Open Geospatial Consortium

109

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/ConfirmRequest/dataType REQ 88.

The Confirm data type shall contain the properties defined for SWES ExtensibleRequest. In addition, it shall contain the property according to Table 54. Table 54 — Property in the Confirm data type

Name task

Definition Pointer to the reserved task that is requested to be confirmed.

Data type and values id

Task , see clause 7.3.1.6

Multiplicity and use One (mandatory)

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

7.3.10.4

Operation Response - ConfirmResponse

The ConfirmResponse data type represents the response to an SPS Confirm operation request. The ConfirmResponse data type is derived from the SWES ExtensibleResponse data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. ConfirmResponse does not restrict the content model of ExtensibleResponse. Requirement http://www.opengis.net/spec/SPS/2.0/req/ConfirmResponse/dataType REQ 89.

The ConfirmResponse data type shall contain the properties defined for SWES ExtensibleResponse. In addition, it shall contain the property according to Table 55. Table 55 — Property in the ConfirmResponse data type

Name result

Definition

Data type and values

report with the outcome of the confirmation request

StatusReport, see 7.3.1.5 Properties of StatusReport shall be used as defined in Table 56

Multiplicity and use One (mandatory)

Table 56 illustrate the usage of the StatusReport properties in Confirm responses.

110

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 56 – StatusReport property usage in Confirm operation response property name/cardinality

task/1 estimatedToC/0..1 event (code)/0..1 percentCompletion/0..1 procedure/1

Operation outcome Confirmation was accepted Confirmation was rejected 7 task identifier used in request NA 1 NA 2 NA 3 identifier of procedure associated with reserved task

requestStatus (code)/1 statusMessage/0..*

Accepted usage optional

taskingParameters/0..1 taskStatus (code)/0..1 updateTime/1

NA 4 NA 5 point in time when confirmation was accepted

alternative/0..*

NA 6

Rejected service should indicate why the confirmation was rejected

point in time when confirmation was rejected

NA = not applicable NOTES: 1 only applicable to scheduled tasks that have not been finalized yet 2,4,5 only applicable to tasking requests and tasks 3 only applicable to tasks that are being or have been executed 6 only applicable to tasking requests 7 in this case the reserved task fails

7.3.10.5

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/ConfirmResponse/exceptions REQ 90.

7.3.10.6

When an SPS server encounters an error while performing a Confirm operation, it shall return an exception message as specified in clause 7.2.

Examples

Clause 9.6 provides example XML instances for the Confirm operation request and response.

Copyright © 2011 Open Geospatial Consortium

111

OGC 09-000 7.3.11 GetFeasibility Operation

7.3.11.1

Introduction

The GetFeasibility operation allows SPS clients to obtain information about the feasibility of a tasking request. See section 6.3.4 for further details on GetFeasibility checks. The client encodes the tasking parameters according to the parameter description given in the DescribeTasking response. An SPS may be capable of computing alternatives for requested parameter settings in a tasking request. These alternatives may slightly modify the tasking parameters contained in the request (e.g. to change the time frame of an intended task by a few minutes) or suggest completely new sets of tasking parameters that lead to similar results. Once the feasibility study is completed, the alternatives would be provided as part of the GetFeasibility response. Each alternative should represent a feasible task at the time when the alternative was computed. Clients should be aware that the feasibility might change at any time afterwards. 7.3.11.2

Data Types

The conceptual model of the GetFeasibility operation is shown in the following UML diagram.

112

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 29 — Data types of the GetFeasibility operation The details of the operation request and response are explained in the following subclauses. 7.3.11.3

Operation Request - GetFeasibility

Sending an instance of the GetFeasibility data type to the service performs an SPS GetFeasibility operation request.

Copyright © 2011 Open Geospatial Consortium

113

OGC 09-000

The GetFeasibility data type is derived from the TaskingRequest data type (see clause 7.3.1.3) and therefore inherits all the properties contained in that data type. GetFeasibility neither restricts the content model of TaskingRequest nor adds additional properties. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetFeasibilityRequest/dataType REQ 91.

7.3.11.4

The GetFeasibility data type shall contain the properties defined for TaskingRequest.

Operation Response - GetFeasibilityResponse

The GetFeasibilityResponse data type represents the response to an SPS GetFeasibility operation request. The GetFeasibilityResponse data type is derived from the TaskingResponse data type (see clause 7.3.1.4) and therefore inherits all the properties contained in that data type. GetFeasibilityResponse neither restricts the content model of TaskingResponse nor adds additional properties. Requirement http://www.opengis.net/spec/SPS/2.0/req/GetFeasibilityResponse/dataType REQ 92.

The GetFeasibilityResponse data type shall contain the properties defined for TaskingResponse.

A GetFeasibilityResponse contains a StatusReport (see clause 7.3.1.5) to indicate the result of the requested operation. As a GetFeasibility request is a tasking request, the final result of that request might not be directly available and would then be pending. The properties of a StatusReport and the possible transitions (see clause 6.3.6) shall be used as defined in the following table. All transitions starting from the Pending state are not applicable for reporting in the response, as the response provides only information about the first state transition, i.e. from initial to accepted, pending, or rejected. Clients retrieve further state transitions via notifications or GetStatus operation calls.

114

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 57 – StatusReport usage for different state transitions of a GetFeasibility request property name/cardin ality

task/1

Initial Æ Pending

GetFeasibility Request State Transitions (From Æ To) Initial Æ Initial Æ Pending Æ Pending Æ Accepted Rejected Accepted Rejected

new identifier provided by service

estimatedToC /0..1 event (code)/0..1 percentCompl etion/0..1 procedure/1 requestStatus (code)/1 statusMessage /0..* taskingParam eters/0..1 taskStatus (code)/0..1 updateTime/1 alternative/0.. * StatusReport encoded as ReservationR eport Applicable in GetFeasibility Response

Pending Æ Rejected (request expired) identifier previously provided by service

NA NA

TaskingRe questExpir ed

NA 1

identifier of procedure for which GetFeasibility request was made Pending

Accepted

Rejected

Accepted

Rejected

Rejected

service may provide additional information to client in human readable form NA 2 NA 3 point in time when transition was made may be provided by service no

yes

yes

yes

no

no

no

NA = not applicable, means that property is not provided Notes: 1 only applicable to tasks that are being or have been executed 2 not applicable in direct response to tasking request 3 GetFeasibility does not lead to a scheduled task

7.3.11.5

Exceptions

Copyright © 2011 Open Geospatial Consortium

115

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/GetFeasibilityResponse/exceptions REQ 93.

7.3.11.6

When an SPS server encounters an error while performing a GetFeasibility operation, it shall return an exception message as specified in clause 7.2.

Examples

Clause 9.6 provides example XML instances for the GetFeasibility operation request and response. 7.3.12 Update Operation

7.3.12.1

Introduction

The Update operation allows SPS clients to update a successfully submitted/reserved task that has not been finalized yet. Requirement http://www.opengis.net/spec/SPS/2.0/req/Update/Rules REQ 94.

The client encodes the tasking parameters according to the parameter description of the DescribeTasking response. This description indicates which parameters can be updated (see clause 7.4.3). The following rules apply: 1. The default value of the updatable property on a SWE Common AbstractDataComponent used for describing the syntax and semantics of tasking parameters at SPS shall have the default value true. Thus, whenever a client encounters a tasking parameter component where the updatable property is omitted, that component is considered to be updatable. If the parameter is not set, the parameter is considered as non-updateable. 2. The structure of the tasking parameters in an Update request reflect the description in the DescribeTasking response with non-updatable parameters being removed. Thus fields/items of DataRecords/DataChoices in the parameter description shall be removed entirely if the contained data component is not updatable. 3. Any SPS server shall reject Update requests if clients try to update non-updateable parameters. The server shall

116

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

identify the critical paramter. Update requests containing a single non-updateable parameter shall be rejected completely. 4. If an SPS flags a DataRecord/DataChoice that is (part of) of a tasking parameter description as updatable then at least one of the fields/items in that DataRecord/DataChoice shall be updatable as well. 5. An SPS shall not set the updatable flag on a data component that is contained in the elementType property of a DataArray/Matrix. To indicate updateability of a DataArray/Matrix, the updatable property of the DataArray/Matrix itself shall be used. A service may, however, flag fields of a DataRecord that represent the elementType of a DataArray/Matrix as updatable. Note: as a result of the above rules, updating tasks of a given procedure might not be allowed. Also, each updatable DataRecord/DataChoice has at least one field/item that can be used in an update.

Performing an update of a task is a distinct action. As such, the update request is treated separate from the task itself. Requirement http://www.opengis.net/spec/SPS/2.0/req/UpdateRequest/identifier REQ 95.

Any SPS shall assign a unique identifier to an UpdateRequest. This is especially needed for a pending UpdateRequest that enters the Pending state. Clients use this identifier to query the status of the update request. If the request gets accepted, then the update was successful and the service shall keep track of this event in the status log of the updated task (as it triggers a transition, see clause 10). Another client querying the status of the task itself will then know that the task has just been updated. If the update was rejected, the task is unchanged (no transition was made).

7.3.12.2

Data Types

The conceptual model of the Update operation is shown in the following UML diagram.

Copyright © 2011 Open Geospatial Consortium

117

OGC 09-000

Figure 30 — Data types of the Update operation The details of the operation request and response are explained in the following subclauses. 7.3.12.3

Operation Request - Update

Sending an instance of the Update data type to the service performs an SPS Update operation request.

118

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

The Update data type is derived from the TaskingRequest data type (see clause 7.3.1.3) and therefore inherits all the properties contained in that data type. Update does not restrict the content model of TaskingRequest. Requirement http://www.opengis.net/spec/SPS/2.0/req/UpdateRequest/dataType REQ 96.

The Update data type shall contain the properties defined for TaskingRequest. In addition, it shall contain the properties according to Table 58. Table 58 — Property in the Update data type

Name targetTask

Definition Pointer to the (scheduled) task to update.

Data type and values id

Task , see clause 7.3.1.6 value shall be a pointer to a task that is scheduled by the service

Multiplicity and use One (mandatory)

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

7.3.12.4

Operation Response - UpdateResponse

The UpdateResponse data type represents the response to an SPS Update operation request. The UpdateResponse data type is derived from the TaskingResponse data type (see clause 7.3.1.4) and therefore inherits all the properties contained in that data type. Requirement http://www.opengis.net/spec/SPS/2.0/req/UpdateResponse/dataType REQ 97.

The UpdateResponse data type shall contain the properties defined for TaskingResponse. In addition, it shall contain the properties according to Table 59.

Copyright © 2011 Open Geospatial Consortium

119

OGC 09-000

Table 59 — Property in the UpdateResponse data type Name targetTask

Definition Pointer to the (scheduled) task to update.

Data type and values id

Task , see clause 7.3.1.6 value shall be a pointer to a task that is scheduled by the service

Multiplicity and use One (mandatory)

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

An UpdateResponse contains a StatusReport (see clause 7.3.1.5) to indicate the result of the requested operation. As an Update request is a tasking request, the final result of that request might not be directly available and would then be pending. Requirement http://www.opengis.net/spec/SPS/2.0/req/UpdateResponse/statusReportUsage REQ 98.

The properties of a StatusReport for the possible transitions of an Update (tasking) request shall be used as defined in Table 60.

All transitions starting from the Pending state are not applicable for reporting in the response, as the response provides only information about the first state transition, i.e. from initial to accepted, pending, or rejected. Clients retrieve further state transitions via notifications or GetStatus operation calls.

120

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 60 – StatusReport usage for different state transitions of an Update request property name/cardinali ty

Update Request State Transitions (From Æ To) Initial Æ Initial Æ Initial Æ Pending Accepted Rejected

task/1 estimatedToC/0 ..1 event (code)/0..1 percentComplet ion/0..1 procedure/1 requestStatus (code)/1 statusMessage/ 0..* taskingParamet ers/0..1 taskStatus (code)/0..1 updateTime/1

new identifier provided by service

Pending

Pending

Æ

Æ

Accepted

Rejected

Pending Æ Rejected (request expired)

identifier previously provided by service NA

NA

TaskingRequestE xpired NA

identifier of procedure that belongs to task for which Update request was made Pending

Accepted

Rejected

Accepted

Rejected

Rejected

service may provide additional information to client in human readable form NA NA point in time when transition was made

alternative/0..*

may be provided by service

StatusReport encoded as ReservationRep ort

NA

Applicable in Update Response

yes

yes

yes

no

no

no

NA = not applicable

Copyright © 2011 Open Geospatial Consortium

121

OGC 09-000

7.3.12.5

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/UpdateResponse/exceptions REQ 99.

7.3.12.6

When an SPS server encounters an error while performing a Update operation, it shall return an exception message as specified in clause 7.2.

Examples

Clause 9.6 provides example XML instances for the Update operation request and response. 7.3.13 Cancel Operation

7.3.13.1

Introduction

The Cancel operation allows SPS clients to cancel a scheduled task (see clause 6.3.6). The service may reject the cancellation. The response should indicate why the cancellation did not succeed. If the cancellation was rejected, the task remains in its current state. 7.3.13.2

Data Types

The conceptual model of the Cancel operation is shown in the following UML diagram.

122

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 31 — Data types of the Cancel operation The details of the operation request and response are explained in the following subclauses. 7.3.13.3

Operation Request - Cancel

Sending an instance of the Cancel data type to the service performs an SPS Cancel operation request. The Cancel data type is derived from the SWES ExtensibleRequest data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. Cancel does not restrict the content model of ExtensibleRequest.

Copyright © 2011 Open Geospatial Consortium

123

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/CancelRequest/dataType REQ 100.

The Cancel data type shall contain the properties defined for SWES ExtensibleRequest. In addition, it shall contain the property according to Table 61. Table 61 — Property in the Cancel data type

Name task

Definition Pointer to the (scheduled) task to cancel.

Data type and values

Multiplicity and use

id

One (mandatory)

Task , see clause 7.3.1.6 value shall be a pointer to a task that is scheduled by the service

id) Note: the primary use of this property is to provide a pointer/identifier – see OGC 09-001 clause 16.3.1 for further details.

7.3.13.4

Operation Response - CancelResponse

The CancelResponse data type represents the response to an SPS Cancel operation request. The CancelResponse data type is derived from the SWES ExtensibleResponse data type specified in clause 9 of [OGC 09-001] and therefore inherits all the properties contained in that data type. CancelResponse does not restrict the content model of ExtensibleResponse. Requirement http://www.opengis.net/spec/SPS/2.0/req/CancelResponse/dataType REQ 101.

The CancelResponse data type shall contain the properties defined for SWES ExtensibleResponse. In addition, it shall contain the property according to Table 62. Table 62 — Properties in the CancelResponse data type

Name result

Definition report with the outcome of the cancellation request

Data type and values StatusReport, see 7.3.1.5

Multiplicity and use One (mandatory)

Properties of StatusReport shall be used as defined in Table 63

124

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 63 illustrates the usage of the StatusReport properties in a CancelResponse.

Table 63 – StatusReport property usage in Cancel operation response property name/cardinality

Operation outcome Cancellation was accepted

Cancellation was rejected

task/1

task identifier used in request

estimatedToC/0..1

NA 1

event (code)/0..1

NA 2

percentCompletion/0..1

NA 3

procedure/1

identifier of procedure associated with scheduled task

requestStatus (code)/1

Accepted

Rejected

statusMessage/0..*

usage optional

service should indicate why the cancellation was rejected

taskingParameters/0..1

NA 4

taskStatus (code)/0..1

NA 5

updateTime/1

point in time when cancellation was accepted

alternative/0..*

NA 6

point in time when cancellation was rejected

NA = not applicable, means the property is not used in the StatusReport Notes: 1 only applicable to scheduled tasks that have not been finalized yet 2,4,5 only applicable to tasking requests and tasks 3 only applicable to tasks that are being or have been executed 6 only applicable to tasking requests

7.3.13.5

Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/CancelResponse/exceptions REQ 102.

When an SPS server encounters an error while performing a Cancel operation, it shall return an exception message as specified in clause 7.2.

Copyright © 2011 Open Geospatial Consortium

125

OGC 09-000

7.3.13.6

Examples

Clause 9.6 provides example XML instances for the Cancel operation request and response.

126

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

7.4 SPS tasking parameters representation

SPS servers describe optional and mandatory tasking parameters. Clients use the definition to provide corresponding tasking parameter values. To ensure common understanding between client and server, a common exchange protocol is used to express both descriptions and tasking parameter values. SPS uses the types defined in the SweCommon Data Model (OGC 08-094) to define tasking parameters. The tasking parameters of a given procedure are defined in the DescribeTaskingResponse. Clients have to use one of the encodings provided in the contents section of the capabilities (e.g. TextEncoding, XMLEncoding, etc.) to encode the tasking parameters in the various tasking requests. Listing 1 – example of an SPS tasking parameter description <swe:DataRecord …> <swe:field name="taskTimeFrame"> <swe:TimeRange definition="http://www.opengis.net/def/property/OGCSPS/0/TaskTimeFrame" referenceFrame="http://www.opengis.net/def/trs/BIPM/0/UTC" optional="false" updatable="false"> <swe:uom xlink:href="http://www.opengis.net/def/uom/ISO-8601/0/Gregorian"/> </swe:TimeRange> </swe:field> <swe:field name="positioningChoice"> <swe:DataChoice optional="true"> <swe:item name="pointToLookAt"> <swe:Vector definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/PointToLookAt" referenceFrame="http://www.opengis.net/def/crs/EPSG/0/4979"> <swe:coordinate name="lat"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Latitude" axisID="Lat"> <swe:uom xlink:href="deg"/> </swe:Quantity> </swe:coordinate> <swe:coordinate name="long"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Longitude" axisID="Long"> <swe:uom code="deg"/> </swe:Quantity> </swe:coordinate> <swe:coordinate name="h"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Vertical" axisID="h"> <swe:uom code="m"/> <swe:value>0</swe:value> </swe:Quantity> </swe:coordinate> </swe:Vector> </swe:item> <swe:item name="relativePositioning"> <swe:DataRecord definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativePan"> <swe:field name="relativeHorizontalPan"> <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativeHorizontalPan" optional="true"> <swe:uom code="deg"/> <swe:constraint> <swe:AllowedValues> <swe:interval>-180 180</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> <swe:field name="relativeVerticalPan">

Copyright © 2011 Open Geospatial Consortium

127

OGC 09-000 <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativeVerticalPan" optional="true"> <swe:uom code="deg"/> <swe:constraint> <swe:AllowedValues> <swe:interval>-90 90</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> </swe:DataRecord> </swe:item> </swe:DataChoice> </swe:field> <swe:field name="focalLength"> <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/FocalLength" optional="true"> <swe:uom code="mm"/> <swe:constraint> <swe:AllowedValues> <swe:interval>3.5 10</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> </swe:DataRecord>

Listing 2 – example of tasking parameters corresponding to description provided by client in given encoding <sps:ParameterData …> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>2010-08-20T12:37:00+02:00,2010-08-20T14:30:00+02:00,Y,pointToLookAt,51.902112 ,8.192728,0,Y,3.5</sps:values> </sps:ParameterData>

7.4.1

Optional Parameters

As defined in clause 7.3.4 (DescribeTasking), the SPS provides any number of derivates from AbstractDataComponent that have to be used by clients in order to task the service. All AbstractDataComponents have an optional attribute. Following OGC 08-094, only components that are listed inside the fields of a SWE Common DataRecord shall have the optional attribute with value true. Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingParameters/optionalParameters REQ 103.

Components that are not contained in a DataRecord field shall not use the optional attribute or, if they do use it, set its value to false (which is the default value for this attribute).

Clients can omit values for components that are marked as optional in a tasking request. Items of a SWE Common DataChoice cannot be flagged as being optional. Thus, either the whole choice is optional (in that case it is a field in a DataRecord) or mandatory.

128

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 3 – example for optional and required tasking parameters <swe:DataRecord …> <!-- Mandatory Parameter--> <swe:field name="taskTimeFrame"> <swe:TimeRange optional="false" …> <!-- … --> </swe:TimeRange> </swe:field> <!-- Optional Parameter--> <swe:field name="positioningChoice"> <swe:DataChoice optional="true" …> <swe:item name="pointToLookAt"> <swe:Vector …> <!-- … --> </swe:Vector> </swe:item> <swe:item name="relativePositioning"> <swe:DataRecord …> <!-- Optional Parameter--> <swe:field name="relativeHorizontalPan"> <swe:Quantity optional="true" …> <!-- … --> </swe:Quantity> </swe:field> <!-- Optional Parameter--> <swe:field name="relativeVerticalPan"> <swe:Quantity optional="true" …> <!-- …--> </swe:Quantity> </swe:field> </swe:DataRecord> </swe:item> </swe:DataChoice> </swe:field> <!-- Optional Parameter--> <swe:field name="focalLength"> <swe:Quantity optional="true" …> <!-- …--> </swe:Quantity> </swe:field> </swe:DataRecord>

7.4.2

Default Values

All data components defined in [OGC 08-094] can be either used as data descriptors or data containers. Data containers set the attribute values, data descriptors don’t. SPS uses both descriptors and containers to describe tasking parameters! Given values indicate default values. The SPS can set default values for each tasking parameter. An SPS may but is not required to provide default values. The client can either accept this default value and use it as-is or overwrite it in a tasking request.

Copyright © 2011 Open Geospatial Consortium

129

OGC 09-000 Listing 4 – example of a tasking parameter description without default values <swe:DataRecord …> <!-- --> <swe:field name="positioningChoice"> <swe:DataChoice …> <swe:item name="pointToLookAt"> <swe:Vector …> <!-- --> <swe:coordinate name="h"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Vertical" axisID="h"> <swe:uom code="m"/> </swe:Quantity> </swe:coordinate> </swe:Vector> </swe:item> <!-- --> </swe:DataChoice> </swe:field> <!-- --> </swe:DataRecord>

Listing 5 – example of a tasking parameter description including default values <swe:DataRecord …> <!-- --> <swe:field name="positioningChoice"> <swe:DataChoice …> <swe:item name="pointToLookAt"> <swe:Vector …> <!-- --> <swe:coordinate name="h"> <swe:Quantity …> <swe:uom code="m"/>

<swe:value>0</swe:value> </swe:Quantity> </swe:coordinate> </swe:Vector> </swe:item> <!-- --> </swe:DataChoice> </swe:field> <!-- --> </swe:DataRecord>

If an SPS uses a DataArray or Matrix in its tasking parameters description then it may provide default values that are encoded according to a description that the service also provides in that array/matrix. As clients may safely ignore given default values, they can also ignore unknown/unsupported encodings that they might encounter in a DataArray/Matrix provided by an SPS. 7.4.3

Updatable parameters

AbstractDataComponents as defined in OGC 08-094 clause 7.2 provide an optional updatable attribute. This attribute is set to true if the corresponding tasking parameter can be included in an Update request. If the attribute is not set or set to false, the tasking parameter cannot be updated and thus no value for it is included in an Update request. Clients can simply strip any component from the tasking parameter description retrieved via DescribeTasking that are not updatable. The resulting description defines the structure

130

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

of the parameters to be included in an update request. If the data component that represents the whole tasking parameter descriptor for tasking a given procedure is not updatable then the Update operation is not realized for that procedure. Listing 6 – example of tasking parameter description with updatable and non-updatable parameters <!-- Update operation is implemented for procedure --> <swe:DataRecord …> <!-- Parameter not updatable --> <swe:field name="taskTimeFrame"> <swe:TimeRange … updatable="false"> <!-- --> </swe:TimeRange> </swe:field> <!-- Parameter is updatable --> <swe:field name="positioningChoice"> <swe:DataChoice …> <!-- Choice item is available for Update --> <swe:item name="pointToLookAt"> <swe:Vector …> <!-- --> </swe:Vector> </swe:item> <!-- Choice item is available for Update --> <swe:item name="relativePositioning"> <swe:DataRecord …> <!-- Record field is available for Update --> <swe:field name="relativeHorizontalPan"> <swe:Quantity …> <!-- --> </swe:Quantity> </swe:field> <!-- Record field is available for Update --> <swe:field name="relativeVerticalPan"> <swe:Quantity …> <!-- --> </swe:Quantity> </swe:field> </swe:DataRecord> </swe:item> </swe:DataChoice> </swe:field> <!-- Parameter is updatable --> <swe:field name="focalLength"> <swe:Quantity …> <!-- --> </swe:Quantity> </swe:field> </swe:DataRecord>

Removing all components that are not updatable would result in the following parameter description. A client would use this description in an Update request.

Copyright © 2011 Open Geospatial Consortium

131

OGC 09-000 Listing 7 – example of tasking parameter description for update request where all non-updatable parameters have been removed <swe:DataRecord …> <swe:field name="positioningChoice"> <swe:DataChoice …> <swe:item name="pointToLookAt"> <swe:Vector …> <!-- --> </swe:Vector> </swe:item> <swe:item name="relativePositioning"> <swe:DataRecord …> <swe:field name="relativeHorizontalPan"> <swe:Quantity …> <!-- --> </swe:Quantity> </swe:field> <swe:field name="relativeVerticalPan"> <swe:Quantity …> <!-- --> </swe:Quantity> </swe:field> </swe:DataRecord> </swe:item> </swe:DataChoice> </swe:field> <swe:field name="focalLength"> <swe:Quantity …> <!-- --> </swe:Quantity> </swe:field> </swe:DataRecord>

7.4.4

Constraints/restrictions

Most of the simple components defined in SWE Common allow provision of constraint attributes. Those can be set by SPS to constrain allowed values for tasking parameters. Listing 8 – example of constraints/restrictions on tasking parameter values <swe:DataRecord …> <swe:field name="taskTimeFrame"> <!-- --> </swe:field> <swe:field name="positioningChoice"> <swe:DataChoice optional="true"> <swe:item name="pointToLookAt"> <!-- --> </swe:item> <swe:item name="relativePositioning"> <swe:DataRecord …> <swe:field name="relativeHorizontalPan"> <swe:Quantity …> <swe:uom code="deg"/>

<swe:constraint> <swe:AllowedValues> <swe:interval>-180 180</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> <swe:field name="relativeVerticalPan"> <swe:Quantity …> <swe:uom code="deg"/>

<swe:constraint> <swe:AllowedValues> <swe:interval>-90 90</swe:interval>

132

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> </swe:DataRecord> </swe:item> </swe:DataChoice> </swe:field> <swe:field name="focalLength"> <swe:Quantity …> <swe:uom code="mm"/>

<swe:constraint> <swe:AllowedValues> <swe:interval>3.5 10</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> </swe:DataRecord>

7.4.5

Definition (observedProperty)/Semantics

Each tasking parameter sets the value(s) for a single property. The property is defined using the definition attribute of the data component. Resolving the URN can retrieve the semantics. 7.4.6

Uoms

The unit of measure (UOM) is defined in data component using the mechanisms described in [OGC08-094] clause 6.2.3. 7.4.7

Encoding (XML, text, binary)

SPS defines the supported encodings as described in clause 7.3.3.3. It is recommended to use either TextEncoding or XMLEncoding (defined in OGC08-094 clause 7.6), though the advanced encoding package, which supports raw and base 64 binary blocks (defined in OGC08-094 clause 7.7), can be supported as well. 8

Publish/Subscribe

8.1 Introduction

The publish/subscribe functionality is an optional feature of SPS. The SPS model defines events, which can be published to interested consumers via a publish/subscribe interface (see clause 10, more specifically see Figure 32 and Figure 34). The events represent state changes of a task or tasking request. However, further events can also be recognized by an SPS, for example the events defined in [OGC 09001]. NOTE: As discussed in chapter 17.2 of [OGC 09-001], the realization of the publish/subscribe functionality defined in this chapter shall be documented in a specific binding for this standard (e.g., the realization in the SOAP binding is documented in clause 9).

Copyright © 2011 Open Geospatial Consortium

133

OGC 09-000

A publish/subscribe interface may support various subscription models as explained in [OGC 09-001] and [OGC 09-032]. If supported, content based filtering using XPath 1.0 and FES 1.1 [OGC 04-095] shall be implemented as specified in clause 17.2.3 of [OGC 09-001]. 8.2 SPS Events

The publishable events recognized by this standard are defined in Table 64. Requirement http://www.opengis.net/spec/SPS/2.0/req/Events/eventTypes REQ 104.

Any SPS implementing publish/subscribe functionality shall implement the events according to Table 64.

An SPS may also recognize and publish the events defined by the SWE Service Model (see OGC 09-001 clause 17.2) or any other event. Requirement http://www.opengis.net/spec/SPS/2.0/req/Events/channelBasedSubscription REQ 105.

If an SPS supports channel based subscriptions (see clause 8.3), it shall state the topics and thus supported events in the topic set contained in its notification metadata (see clause 7.3.2.4). Table 64 — SPS Events and their encoding

Event name a

State transition from Æ to

Encoding of the event

Use at SPS that implements Publish/Sub scribe

TaskingReque Tasking request stAccepted was accepted.

Initial | Pending Æ Accepted

see Table 65

mandatory

TaskingReque Tasking request stRejected was rejected.

Initial | Pending Æ Rejected

see Table 65

optional

TaskingReque Tasking request is Initial Æ Pending stPending pending.

see Table 65

optional

Pending Æ Rejected see Table (TaskingRequestExpi

mandatory

Event definition

TaskingReque see Table 14

134

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

stExpired

red)

65

DataPublished

InExecution Æ InExecution (DataPublished)

see Table 66

mandatory

ReservationE xpired

Reserved Æ Final

see Table 66

conditional

TaskCancelle d

Scheduled (Reserved or InExecution) Æ Final (TaskCancelled)

see Table 66

TaskComplete d

InExecution Æ Final (TaskCompleted)

see Table 66

mandatory

TaskConfirme d

Reserved Æ InExecution

see Table 66

conditional

TaskUpdated

InExecution Æ InExecution (TaskUpdated) | Reserved Æ Reserved (TaskUpdated)

see Table 66

Scheduled (Reserved or InExecution) Æ Final (TaskFailed)

see Table 66

TaskFailed

implement if Reserve operation is realized conditional implement if Cancel operation is realized

implement if Confirm operation is realized conditional implement if Update operation is realized mandatory

a Although some values listed in the column appear to contain spaces, they shall not contain spaces.

Copyright © 2011 Open Geospatial Consortium

135

OGC 09-000

Table 65 – StatusReport encoding for notification of tasking request state transition Transition from Æ to

State Transitions

Initial Æ Pending Initial | Pending Æ Rejected

StatusReport encoding and property usage for notification of state transition for GetFeasibility request

Reserve request

Submit request

Update request

as defined for according state transition in Table 57

as defined for according state transition in Table 52

as defined for accordin g state transitio n in Table 31

as defined for according state transition in Table 60

Pending Æ Rejected (TaskingRequestExpired) Initial | Pending Æ Accepted

NA = not applicable

Table 66 – StatusReport encoding for notification of scheduled task state transition Transition from Æ to

Reserved Æ Reserved (TaskUpdated)

State Transitions

InExecution Æ InExecution (TaskUpdated) Reserved Æ InExecution (TaskConfirmed) Reserved Æ Final (ReservationExpired) InExecution Æ InExecution (DataPublished)

StatusReport encoding and property usage for notification of state transition as defined for according state transition in Table 36 and Table 37 but without provision of taskingParameters

InExecution Æ Final (TaskCompleted) Scheduled (Reserved or InExecution) Æ Final (TaskFailed) Scheduled (Reserved or InExecution) Æ Final (TaskCancelled)

NA = not applicable

Clause 9.6 provides example XML instances for notificatios of some of the SPS events. 8.3 Channel based filtering/SPS notification topics

When using channel based filtering, it is imperative to define which channels can be used and which notifications are sent on each channel. The definitions of events recognized by this standard are listed in Table 64. Each event is given by its name and definition.

136

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

The OASIS WS-Topics standard defines the TopicNamespace type as a mean to group and describe channels/topics that belong to a specific (target) namespace. The topic namespace of this standard is defined through Listing 9 and Table 67. Listing 9 – SPS Topic Namespace

<wstop:TopicNamespace xmlns:wstop="http://docs.oasisopen.org/wsn/t-1" xmlns:sps="http://www.opengis.net/sps/2.0" name="SPS-Topic-Namespace" targetNamespace="http://www.opengis.net/sps/2.0" final="true"> <wstop:Topic name="TaskEvent"> <wstop:Topic name="TaskFailure" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskCancellation" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskCompletion" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskConfirmation" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskUpdate" messageTypes="sps:StatusReport"/> <wstop:Topic name="DataPublication" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskReservation" messageTypes="sps:ReservationReport"/> <wstop:Topic name="TaskSubmission" messageTypes="sps:StatusReport"/> <wstop:Topic name=”ReservationExpiration” messageTypes=”sps:ReservationReport”/> </wstop:Topic> <wstop:Topic name=”TaskingRequestEvent”> <wstop:Topic name=”TaskingRequestExpiration” messageTypes=”sps:StatusReport”/> <wstop:Topic name=”TaskingRequestRejection” messageTypes=”sps:StatusReport”/> <wstop:Topic name=”TaskingRequestAcceptance” messageTypes=”sps:StatusReport”/> <wstop:Topic name=”TaskingRequestPending” messageTypes=”sps:StatusReport”/> </wstop:Topic> </wstop:TopicNamespace>

The following table defines which events are published on which topics. The events and their encoding are defined in Table 64.

Copyright © 2011 Open Geospatial Consortium

137

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/Events/topics REQ 106.

An SPS that supports channel based filtering/notification shall publish events on topics according to Table 67. Such a service shall publish only those SPS events that belong to topics listed in the topic set of the service (the topic set is part of the notification metadata contained in the Capabilities of the service, see clause 7.3.2.4). Events from a different topic namespace may be published by the service.

Note: this is to ensure that an SPS instance is publishing SPS events according to what the service advertised via its topic set.

Requirement http://www.opengis.net/spec/SPS/2.0/req/Events/topics/conditions REQ 107.

Table 67 also defines which topics shall be implemented by an SPS that supports channel based filtering/notification topics in general and which shall be implemented under certain conditions. The required topics shall be listed in the topic set of the service.

Each SPS may implement additional topics defined in other standards (like [OGC 09001]).

138

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 67 — Topics and the events posted on them Topic name

Parent topic name

Name of event(s) posted on topic

Use at SPS that realizes channel based filtering/notification topics

TaskEvent

-

TaskSubmission

TaskEvent

DataPublication TaskCompletion TaskFailure TaskReservation

TaskEvent TaskEvent TaskEvent TaskEvent

ReservationExpir ation

TaskEvent

TaskingRequestAccepted (the StatusReport encoding the event shall have an event property with value TaskSubmitted) DataPublished TaskCompleted TaskFailed TaskingRequestAccepted (the ReservationReport encoding the event shall have an event property with value TaskReserved) ReservationExpired

TaskConfirmatio n

TaskEvent

TaskConfirmed

TaskUpdate

TaskEvent

TaskUpdated

conditional implement if Update operation is realized

TaskCancellation

TaskEvent

TaskCancelled

conditional implement if Cancel operation is realized

TaskingRequestE vent

-

TaskingRequest Acceptance

TaskingRequest Event

TaskingRequestAccepted

optional 1

TaskingRequestR TaskingRequest ejection Event

TaskingRequestRejected

optional 1

TaskingRequestE TaskingRequest xpiration Event

TaskingRequestExpired

mandatory

TaskingRequestP TaskingRequest ending Event

TaskingRequestPending

optional 1

no events are posted on this topic- it is only used for grouping of topics in the SPS topic namespace mandatory

conditional implement if Reserve&Confirm operations are realized

no events are posted on this topic- it is only used for grouping of topics in the SPS topic namespace

Notes: 1 If topic is implemented then publication of according event is required.

Copyright © 2011 Open Geospatial Consortium

139

OGC 09-000

Clause 9.6 describes a tasking scenario with example XML instances, one of which is an SPS Capabilities document. It contains an exemplary topic set. 9

SOAP binding

9.1 Introduction

This section defines the realization of functionality defined in this standard for a service using SOAP. This standard does not prescribe usage of either SOAP 1.1 or SOAP 1.2. It also does not prescribe WSDL 1.1 or WSDL 2.0. This standard does not define any specific policy statements to be included in a WSDL document or in service requests and responses for defining certain established, available or desired behavior. If the need for such policies arises in the future, necessary policy statements can be included in the standard and/or its extensions. 9.2 Exceptions

Requirement http://www.opengis.net/spec/SPS/2.0/req/SOAP/exceptions REQ 108.

The operations defined in this standard use exception codes defined by OWS Common [OGC 06-121r3] chapter 8, SWES [OGC 09-001] chapter 15 as well as Table 6 in this standard. The encoding of these exceptions for the operations used by this standard (in a SOAP binding) shall be as defined in clause 19.2 of [OGC 09-001].

NOTE Each operation defined in this standard can have additional requirements with respect to the implementation of the ows:Exception element to be used in the [Details] property (see [OGC 09-001] clause 19.2.1) of faults generated while performing that operation. These requirements are stated in the according clauses of each operation.

Clause 9.6 provides example XML instances for SOAP faults that inform about service exceptions. The following subclauses define the SOAP fault encoding of the SPS exceptions that are introduced in chapter 7.2. The definitions are provided using abstract (SOAP) fault properties as described in OGC 09-001 chapter 19.2.1. These abstract fault properties are mapped to the properties of SOAP 1.1/1.2 faults as defined in sections 19.2.2 and 19.2.3 of OGC 09-001. 9.2.1

StatusInformationExpired exception

The meaning of this exception (code) is defined in clause 7.2 of this standard.

140

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/SOAP/Fault/StatusInformationExpired REQ 109.

9.2.2

The abstract fault properties for this exception shall be as follows: •

[Code] The QName soap11:Service (SOAP 1.1) or soap12:Receiver (SOAP 1.2)

[Subcode] The QName sps:StatusInformationExpired

[Reason] the string: “The status information for the requested task / tasking request has already expired.”

[Details] An ows:Exception element as defined in clause 8.2 of [OGC 06-121r3]

ModificationOfFinalizedTask exception

The meaning of this exception (code) is defined in clause 7.2 of this standard. Requirement http://www.opengis.net/spec/SPS/2.0/req/SOAP/Fault/ModificationOfFinalizedTask REQ 110.

The abstract fault properties for this exception shall be as follows: •

[Code] The QName soap11:Client (SOAP 1.1) or soap12:Sender (SOAP 1.2)

[Subcode] The QName sps:ModificationOfFinalizedTask

[Reason] the string: “The requested task has already been finalized.”

[Details] An ows:Exception element as defined in clause 8.2 of [OGC 06-121r3]

9.3 Action URIs

For the SOAP binding, a standard needs to define action URIs for the following features:

Copyright © 2011 Open Geospatial Consortium

141

OGC 09-000

• • •

as SOAPAction HTTP header field of a SOAP 1.1 request as action parameter in a SOAP 1.2 request (SOAP 1.2 feature: “http://www.w3.org/2003/05/soap/features/action/”) as WS-Addressing [action] message addressing property

NOTE If and how a service instance makes use of one or more of these features depends on the chosen SOAP and WSDL version as well as on the requirements of the service instance.

Requirement http://www.opengis.net/spec/SPS/2.0/req/SOAP/ActionURIs REQ 111.

The action URIs shall be used for the various message facets (requests and responses of operations) according to Table 68. The action URI for SPS specific exceptions shall be as defined in Table 69.

The actions URIs for the operations specified by the SWE Service Model (DescribeSensor and UpdateSensorDescription) are defined in [OGC 09-001] clause 19.3. The actions URIs for exceptions/fault message types that SPS operations use are also defined in [OGC 09-001] clause 19.3.

142

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 68 — Action URIs for SPS message facets Message Facet a

Action URI a

GetCapabilities request

http://www.opengis.net/sps/2.0/ GetCapabilities

GetCapabilities response

http://www.opengis.net/sps/2.0/ GetCapabilitiesResponse

N

N

Y

DescribeTasking request

http://www.opengis.net/sps/2.0/ DescribeTasking

Y

Y

Y

DescribeTasking response

http://www.opengis.net/sps/2.0/ DescribeTaskingResponse

N

N

Y

Cancel request

http://www.opengis.net/sps/2.0/ Cancel

Y

Y

Y

Cancel response

http://www.opengis.net/sps/2.0/ CancelResponse

N

N

Y

Confirm request

http://www.opengis.net/sps/2.0/ Confirm

Y

Y

Y

Confirm response

http://www.opengis.net/sps/2.0/ ConfirmResponse

N

N

Y

DescribeResultA ccess request

http://www.opengis.net/sps/2.0/ DescribeResultAccess

Y

Y

Y

DescribeResultA ccess response

http://www.opengis.net/sps/2.0/ DescribeResultAccessResponse

N

N

Y

GetFeasibility request

http://www.opengis.net/sps/2.0/ GetFeasibility

Y

Y

Y

GetFeasibility response

http://www.opengis.net/sps/2.0/ GetFeasibilityResponse

N

N

Y

GetStatus request

http://www.opengis.net/sps/2.0/ GetStatus

Y

Y

Y

GetStatus response

http://www.opengis.net/sps/2.0/ GetStatusResponse

N

N

Y

GetTask request

http://www.opengis.net/sps/2.0/ GetTask

Y

Y

Y

Copyright © 2011 Open Geospatial Consortium

Applicable in feature (Y=yes, N=no) WSSOAP 1.1 SOAP Addressing SOAPActio 1.2 [action] n actio n Y Y Y

143

OGC 09-000 Message Facet a

Action URI a

GetTask response

http://www.opengis.net/sps/2.0/ GetTaskResponse

Reserve request

http://www.opengis.net/sps/2.0/ Reserve

Y

Y

Y

Reserve response

http://www.opengis.net/sps/2.0/ ReserveResponse

N

N

Y

Submit request

http://www.opengis.net/sps/2.0/ Submit

Y

Y

Y

Submit response

http://www.opengis.net/sps/2.0/ SubmitResponse

N

N

Y

Update request

http://www.opengis.net/sps/2.0/ Update

Y

Y

Y

Update response

http://www.opengis.net/sps/2.0/ UpdateResponse

N

N

Y

Applicable in feature (Y=yes, N=no) WSSOAP 1.1 SOAP Addressing SOAPActio 1.2 [action] n actio n N N Y

a Although some values listed in the column appear to contain spaces, they shall not contain spaces. NOTE The action URIs for the messages defined by the SWE Service Model and WS-Notification are not listed here – they can be found in table 35 of [OGC 09-001] and the according paragraphs of WSNotification.

Clause 9.6 provides example XML instances for operation requests and responses, some of which are wrapped by a SOAP envelope. These examples make use of the action URIs defined in this section. Table 69 — Action URI for SPS exceptions/fault types Exception/Fault type

WS-Addressing [action] message addressing property value

Exception defined by SPS

http://www.opengis.net/sps/2.0/Exception

144

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 9.4 Realization of Publish/Subscribe

Requirement http://www.opengis.net/spec/SPS/2.0/req/SOAP/PubSub REQ 112.

In the SOAP binding of this service, Publish/Subscribe functionality shall be implemented as defined in clause 19.4 of [OGC 09-001].

Clause 9.6 provides example XML instances for subscribing to and being notified of SPS events. 9.5 Realization of Asynchronous Request/Response

Requirement http://www.opengis.net/spec/SPS/2.0/req/SOAP/WSAdressing REQ 113.

As defined in clause 19.4 of [OGC 09-001], an implementation of this standard shall use WS-Addressing to enable asynchronous request-response in the SOAP binding of the service. The behavior for handling asynchronous tasking responses shall be compliant to section 7.3.1.3.

Requirement http://www.opengis.net/spec/SPS/2.0/req/SOAP/AnonymousURI REQ 114.

If a client used the anonymous-URI (see 09-032 section 10.2) as value of the wsa:ReplyTo property in the SOAP header of a tasking request – and the service supports the anonymous-URI feature – then the tasking response shall be sent in the synchronous backchannel of the transport protocol (e.g. the HTTP response message).

If a client used the none-URI (see 09-032 section 10.2) as value of the wsa:ReplyTo property in the SOAP header of a tasking request then the service can discard any operation response that would normally be generated, as the client is not receiving it anyway. Only the response requirements of the underlying communication protocol need to be satisfied, e.g. in case of HTTP an HTTP response message has to be returned. 9.6 SPS Examples Scenario

In the following, a scenario of tasking a pan, tilt, zoom camera is elaborated with XML examples.

Copyright © 2011 Open Geospatial Consortium

145

OGC 09-000 Note: this scenario only covers parts of the overall functionality that can be realized via an SPS. It does not cover all possible cases, situations and client/service interactions. Note: some but not all of the following examples are wrapped in a SOAP envelope. Unwrapped examples can easily be augmented with the missing information.

9.6.1

Retrieving the Capabilities Document

2010-08-20T11:00:00+02:00 – The client sends a GetCapabilities request to the service. Listing 10 - GetCapabilities request example <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap12:Body> <sps:GetCapabilities/> </soap12:Body> </soap12:Envelope>

2010-08-20T11:00:01+02:00 – The service sends a response with the Capabilities document. Listing 11 - SPS Capabilities document example <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:wstop="http://docs.oasisopen.org/wsn/t-1"> <soap12:Body> <sps:Capabilities version="2.0.0"> <ows:ServiceIdentification> <ows:Title xml:lang="en-us">SPS Specification Service</ows:Title> <ows:ServiceType>SPS</ows:ServiceType> <ows:ServiceTypeVersion>2.0.0</ows:ServiceTypeVersion> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/BasicPubSub</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/ChannelBasedPubSub</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/Core</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/FeasibilityController</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/SOAP</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/StateLogger</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/TaskCanceller</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SPS/2.0/conf/XMLEncoding</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWES/2.0/conf/BasicSWEServiceMetadata</ows:Profi le> <ows:Profile>http://www.opengis.net/spec/SWES/2.0/conf/SensorProvider</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWES/2.0/conf/SensorHistoryProvider</ows:Profile > <ows:Profile>http://www.opengis.net/spec/SWES/2.0/conf/XMLEncoding</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWES/2.0/conf/SOAPBinding</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWES/2.0/conf/PublishSubscribe</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/core</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/uml-simplecomponents</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/uml-recordcomponents</ows:Profile>

146

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/uml-choicecomponents</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/uml-simpleencodings</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/xsd-simplecomponents</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/xsd-recordcomponents</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/xsd-choicecomponents</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/xsd-simpleencodings</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/general-encodingrules</ows:Profile> <ows:Profile>http://www.opengis.net/spec/SWE/2.0/conf/text-encodingrules</ows:Profile> </ows:ServiceIdentification> <ows:ServiceProvider> <ows:ProviderName>SWE SPS 2.0 SWG</ows:ProviderName> <ows:ProviderSite xlink:href="http://www.opengeospatial.org/swe/sps"/> <ows:ServiceContact> <ows:IndividualName>Johannes Echterhoff</ows:IndividualName> <ows:ContactInfo> <ows:Phone> <ows:Voice>0049...</ows:Voice> </ows:Phone> </ows:ContactInfo> </ows:ServiceContact> </ows:ServiceProvider> <ows:OperationsMetadata> <ows:Operation name="GetCapabilities"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> <ows:Parameter name="Sections"> <ows:AllowedValues> <ows:Value>All</ows:Value> <ows:Value>ServiceIdentification</ows:Value> <ows:Value>ServiceProvider</ows:Value> <ows:Value>OperationsMetadata</ows:Value> <ows:Value>Contents</ows:Value> <ows:Value>Notifications</ows:Value> </ows:AllowedValues> </ows:Parameter> </ows:Operation> <ows:Operation name="DescribeTasking"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Operation name="Submit"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Operation name="DescribeResultAccess"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Operation name="GetFeasibility"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/>

Copyright © 2011 Open Geospatial Consortium

147

OGC 09-000 </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Operation name="Update"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Operation name="GetStatus"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> <ows:Parameter name="since"> <ows:AnyValue/> </ows:Parameter> </ows:Operation> <ows:Operation name="GetTask"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Operation name="Cancel"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Operation name="Reserve"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Operation name="Confirm"> <ows:DCP> <ows:HTTP> <ows:Post xlink:href="http://www.ogc.org/SPS"/> </ows:HTTP> </ows:DCP> </ows:Operation> <ows:Constraint name="PostEncoding"> <ows:AllowedValues> <ows:Value>SOAP</ows:Value> </ows:AllowedValues> </ows:Constraint> </ows:OperationsMetadata> <sps:notifications> <swes:NotificationProducerMetadata> <swes:producerEndpoint> <wsa:EndpointReference> <wsa:Address>http://www.ogc.org/SPS/Producer</wsa:Address> </wsa:EndpointReference> </swes:producerEndpoint> <swes:supportedDialects> <swes:FilterDialectMetadata> <swes:topicExpressionDialect>http://docs.oasis-open.org/wsn/t1/TopicExpression/Simple</swes:topicExpressionDialect> <swes:topicExpressionDialect>http://docs.oasis-open.org/wsn/t1/TopicExpression/Concrete</swes:topicExpressionDialect> <swes:topicExpressionDialect>http://docs.oasis-open.org/wsn/t1/TopicExpression/Full</swes:topicExpressionDialect> <swes:topicExpressionDialect>http://www.w3.org/TR/1999/REC-xpath19991116</swes:topicExpressionDialect>

148

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 <swes:messageContentDialect>http://www.w3.org/TR/1999/REC-xpath19991116</swes:messageContentDialect> </swes:FilterDialectMetadata> </swes:supportedDialects> <swes:fixedTopicSet>false</swes:fixedTopicSet> <swes:servedTopics> <wstop:TopicSet> <sps:TaskEvent> <sps:TaskFailure wstop:topic="true"/> <sps:TaskCancellation wstop:topic="true"/> <sps:TaskCompletion wstop:topic="true"/> <sps:TaskConfirmation wstop:topic="true"/> <sps:TaskUpdate wstop:topic="true"/> <sps:DataPublication wstop:topic="true"/> <sps:TaskReservation wstop:topic="true"/> <sps:TaskSubmission wstop:topic="true"/> <sps:ReservationExpiration wstop:topic="true"/> </sps:TaskEvent> <sps:TaskingRequestEvent> <sps:TaskingRequestExpiration wstop:topic="true"/> </sps:TaskingRequestEvent> <swes:CapabilitiesChange> <swes:OfferingAddition wstop:topic="true"/> <swes:OfferingDeletion wstop:topic="true"/> </swes:CapabilitiesChange> </wstop:TopicSet> </swes:servedTopics> <swes:usedTopicNamespace targetNamespace="http://www.opengis.net/sps/2.0" final="true"> <wstop:Topic name="TaskEvent"> <wstop:Topic name="TaskFailure" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskCancellation" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskCompletion" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskConfirmation" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskUpdate" messageTypes="sps:StatusReport"/> <wstop:Topic name="DataPublication" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskReservation" messageTypes="sps:ReservationReport"/> <wstop:Topic name="TaskSubmission" messageTypes="sps:StatusReport"/> <wstop:Topic name="ReservationExpiration" messageTypes="sps:ReservationReport"/> </wstop:Topic> <wstop:Topic name="TaskingRequestEvent"> <wstop:Topic name="TaskingRequestExpiration" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskingRequestRejection" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskingRequestAcceptance" messageTypes="sps:StatusReport"/> <wstop:Topic name="TaskingRequestPending" messageTypes="sps:StatusReport"/> </wstop:Topic> </swes:usedTopicNamespace> <swes:usedTopicNamespace targetNamespace="http://www.opengis.net/swes/2.0" final="true"> <wstop:Topic name="CapabilitiesChange" messageTypes="swes:SWESEvent"> <wstop:Topic name="OfferingAddition" messageTypes="swes:OfferingChanged"/> <wstop:Topic name="OfferingDeletion" messageTypes="swes:OfferingChanged"/> </wstop:Topic> <wstop:Topic name="SensorInsertion" messageTypes="swes:SensorChanged"/> <wstop:Topic name="SensorDescriptionUpdate" messageTypes="swes:SensorDescriptionUpdated"/> </swes:usedTopicNamespace> </swes:NotificationProducerMetadata> </sps:notifications> <sps:contents> <sps:SPSContents> <swes:procedureDescriptionFormat>http://www.opengis.net/sensorML/1.0.1</swes:procedureDes criptionFormat> <swes:observableProperty>http://www.opengis.net/def/propertyType/xradiance</swes:observableProperty> <swes:offering> <sps:SensorOffering>

Copyright © 2011 Open Geospatial Consortium

149

OGC 09-000 <swes:identifier>http://www.ogc.org/sps/offering1</swes:identifier> <swes:procedure>http://www.ogc.org/procedure/camera/1</swes:procedure> <sps:observableArea> <sps:byPolygon> <gml:Polygon gml:id="gid01"> <gml:exterior> <gml:LinearRing> <gml:pos srsName="http://www.opengis.net/def/crs/EPSG/0/4326">51.9 8.186</gml:pos> <gml:pos srsName="http://www.opengis.net/def/crs/EPSG/0/4326">51.9005 8.186</gml:pos> <gml:pos srsName="http://www.opengis.net/def/crs/EPSG/0/4326">51.9005 8.199</gml:pos> <gml:pos srsName="http://www.opengis.net/def/crs/EPSG/0/4326">51.9 8.199</gml:pos> </gml:LinearRing> </gml:exterior> </gml:Polygon> </sps:byPolygon> </sps:observableArea> </sps:SensorOffering> </swes:offering> <sps:minStatusTime>PT12H</sps:minStatusTime> <sps:supportedEncoding>http://www.opengis.net/swe/2.0/TextEncoding</sps:supportedEncoding > </sps:SPSContents> </sps:contents> </sps:Capabilities> </soap12:Body> </soap12:Envelope>

9.6.2

Getting Result Access Information for a Procedure

2010-08-20T11:06:00+02:00 - The client sends a DescribeResultAccess request to the service to learn which data storages the SPS uses to make data gathered by procedure http://www.ogc.org/procedure/camera/1 accessible. Listing 12 - DescribeResultAccess request example targetting a procedure <sps:DescribeResultAccess service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:target> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> </sps:target> </sps:DescribeResultAccess>

2010-08-20T11:06:01+02:00 – The service sends a response with references to data storages (a Sensor Observation Service and an online folder).

150

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 13 - DescribeResultAccess response example <sps:DescribeResultAccessResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink"> <sps:availability> <sps:available> <sps:DataAvailable> <sps:dataReference> <ows:ReferenceGroup> <ows:Identifier>http://www.ogc.org/procedure/camera/1/accessReferenceGroups/1</ows:Identi fier> <ows:Reference xlink:href="http://www.ogc.org/SOS" xlink:role="http://www.opengis.net/spec/SPS/2.0/referenceType/ServiceURL"> <ows:Identifier>http://www.ogc.org/procedure/camera/1/accessReferenceGroups/1/references/ 1</ows:Identifier> <ows:Metadata> <sps:SPSMetadata> <sps:dataAccessType>http://www.opengis.net/sos/2.0</sps:dataAccessType> </sps:SPSMetadata> </ows:Metadata> </ows:Reference> </ows:ReferenceGroup> </sps:dataReference> <sps:dataReference> <ows:ReferenceGroup> <ows:Identifier>http://www.ogc.org/procedure/camera/1/accessReferenceGroups/2</ows:Identi fier> <ows:Reference xlink:href="http://www.ogc.org/SOS/procedure/camera/1/videos" xlink:role="http://www.opengis.net/spec/SPS/2.0/referenceType/Folder"> <ows:Identifier>http://www.ogc.org/procedure/camera/1/accessReferenceGroups/2/references/ 1</ows:Identifier> <ows:Format>video/mj2</ows:Format> </ows:Reference> </ows:ReferenceGroup> </sps:dataReference> </sps:DataAvailable> </sps:available> </sps:availability> </sps:DescribeResultAccessResponse>

9.6.3

Getting the Tasking Parameter Description

2010-08-20T11:08:32+02:00 – The client sends a DescribeTasking request for the procedure to the service to find out about the available tasking options. Listing 14 - DescribeTasking request example <sps:DescribeTasking service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> </sps:DescribeTasking>

2010-08-20T11:08:33+02:00 – The service sends a response with the tasking parameter description for the procedure. Listing 15 - DescribeTasking response example <sps:DescribeTaskingResponse xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0"

Copyright © 2011 Open Geospatial Consortium

151

OGC 09-000 xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:taskingParameters name="CameraTask"> <swe:DataRecord> <swe:field name="taskTimeFrame"> <swe:TimeRange definition="http://www.opengis.net/def/property/OGCSPS/0/TaskTimeFrame" referenceFrame="http://www.opengis.net/def/trs/BIPM/0/UTC" optional="false" updatable="false"> <swe:label>Task Timeframe</swe:label> <swe:description>Desired start and end time for tasking the sensor</swe:description> <swe:uom xlink:href="http://www.opengis.net/def/uom/ISO-8601/0/Gregorian"/> </swe:TimeRange> </swe:field> <swe:field name="positioningChoice"> <swe:DataChoice optional="true"> <swe:item name="pointToLookAt"> <swe:Vector definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/PointToLookAt" referenceFrame="http://www.opengis.net/def/crs/EPSG/0/4979"> <swe:label>Look Pointer</swe:label> <swe:description>3D location where the camera should look at</swe:description> <swe:coordinate name="lat"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Latitude" axisID="Lat"> <swe:label>Geodetic latitude</swe:label> <swe:uom xlink:href="deg"/> </swe:Quantity> </swe:coordinate> <swe:coordinate name="long"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Longitude" axisID="Long"> <swe:label>Geodetic longitude</swe:label> <swe:uom code="deg"/> </swe:Quantity> </swe:coordinate> <swe:coordinate name="h"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Vertical" axisID="h"> <swe:label>Ellipsoidal height</swe:label> <swe:uom code="m"/> <swe:value>0</swe:value> </swe:Quantity> </swe:coordinate> </swe:Vector> </swe:item> <swe:item name="relativePositioning"> <swe:DataRecord definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativePan"> <swe:label>Relative Positioning</swe:label> <swe:description>Camera movement relative to the current position</swe:description> <swe:field name="relativeHorizontalPan"> <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativeHorizontalPan" optional="true"> <swe:uom code="deg"/> <swe:constraint> <swe:AllowedValues> <swe:interval>-180 180</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> <swe:field name="relativeVerticalPan"> <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativeVerticalPan" optional="true"> <swe:uom code="deg"/> <swe:constraint> <swe:AllowedValues> <swe:interval>-90 90</swe:interval> </swe:AllowedValues> </swe:constraint>

152

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 </swe:Quantity> </swe:field> </swe:DataRecord> </swe:item> </swe:DataChoice> </swe:field> <swe:field name="focalLength"> <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/FocalLength" optional="true"> <swe:label>Focal length</swe:label> <swe:description>Focal length of the camera. Controls the camera's zoom level.</swe:description> <swe:uom code="mm"/> <swe:constraint> <swe:AllowedValues> <swe:interval>3.5 10</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> </swe:DataRecord> </sps:taskingParameters> </sps:DescribeTaskingResponse>

9.6.4

Determining the Feasibility of a Tasking Request

2010-08-20T11:10:00+02:00 - Satisfied with the information the client got about the procedure, the client sends a GetFeasibility request to check if the time frame from 201008-20T12:15:00+02:00 to 2010-08-20T14:45:00+02:00 would be a feasible task. The latest response time is set to 2010-08-20T11:15:00+02:00. Listing 16 – GetFeasibility request example <sps:GetFeasibility service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@" /> </sps:encoding> <sps:values>2010-08-20T12:15:00+02:00,2010-08-20T14:45:00+02:00,N,N</sps:values> </sps:ParameterData> </sps:taskingParameters> <sps:latestResponseTime>2010-08-20T11:15:00+02:00</sps:latestResponseTime> </sps:GetFeasibility>

2010-08-20T11:10:12+02:00 – The service sends a response indicating that the requested task is not feasible. But it provides two alternatives in the response: a) First alternative indicates that time frame from 2010-08-20T12:35:00+02:00 to 2010-08-20T14:30:00+02:00 would be feasible. b) Second alternative indicates that time frame from 2010-08-20T15:10:00+02:00 to 2010-08-20T17:00:00+02:00 would be feasible.

Copyright © 2011 Open Geospatial Consortium

153

OGC 09-000 Listing 17 – GetFeasibility response example <sps:GetFeasibilityResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:swe="http://www.opengis.net/swe/2.0"> <sps:latestResponseTime>2010-08-20T12:00:00+02:00</sps:latestResponseTime> <sps:result> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/5</sps:task> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Rejected</sps:requestStatus> <sps:statusMessage xml:lang="en">The task was not feasible because the requested time frame is not free</sps:statusMessage> <sps:updateTime>2010-08-20T11:10:12+02:00</sps:updateTime> <sps:alternative> <sps:Alternative> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>2010-08-20T12:35:00+02:00,2010-0820T14:30:00+02:00,N,N</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:Alternative> </sps:alternative> <sps:alternative> <sps:Alternative> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>2010-08-20T15:10:00+02:00,2010-0820T17:00:00+02:00,N,N</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:Alternative> </sps:alternative> </sps:StatusReport> </sps:result> </sps:GetFeasibilityResponse>

9.6.5

Scheduling a Task (Submit / Reserve)

2010-08-20T11:10:20+02:00 – The client reviews the alternatives and decides to use the first one with slight alteration of the task start time (setting it to 2010-0820T12:37:00+02:00). The client then adds some more specific parameters to control the camera. It requests that the camera looks at the location [geodetic latitude 51.902112 deg, geodetic longitude 8.192728 deg, ellipsoidal height 0 meter] and sets the focal length to 3.5mm. 2010-08-20T11:12:00+02:00 – The client schedules the task. This can be done either via directly submitting a task or by reserving it first and then confirming it a bit later on (which is useful for scenarios where multiple sensors need to be tasked together). 9.6.5.1

Task Submission

2010-08-20T11:12:00+02:00 – The client sends a Submit request to the service. The latest response time is not set for this request, so the client is willing to wait however long the processing of the response is going to take.

154

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 18 - Submit request example <sps:Submit service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@" /> </sps:encoding> <sps:values>2010-08-20T12:37:00+02:00,2010-0820T14:30:00+02:00,Y,pointToLookAt,51.902112,8.192728,0,Y,3.5</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:Submit>

2010-08-20T11:12:04+02:00 – The service sends a response indicating that the task was accepted and is now in execution, so will be performed as planned. Listing 19 - Submit response example <sps:SubmitResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:swe="http://www.opengis.net/swe/2.0"> <sps:result> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskSubmitted</sps:event> <sps:percentCompletion>0</sps:percentCompletion> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>InExecution</sps:taskStatus> <sps:updateTime>2010-08-20T11:12:04+02:00</sps:updateTime> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>2010-08-20T12:37:00+02:00,2010-0820T14:30:00+02:00,Y,pointToLookAt,51.902112,8.192728,0,Y,3.5</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:StatusReport> </sps:result> </sps:SubmitResponse>

9.6.5.2

Reserving a Task

2010-08-20T11:12:00+02:00 – The client sends a Reserve request to the service. The latest response time is set to 2010-08-20T11:20:00+02:00. The expiration time of the requested reservation is set to 2010-08-20T11:30:00+02:00.

Copyright © 2011 Open Geospatial Consortium

155

OGC 09-000 Listing 20 - Reserve request example <sps:Reserve service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@" /> </sps:encoding> <sps:values>2010-08-20T12:37:00+02:00,2010-0820T14:30:00+02:00,Y,pointToLookAt,51.902112,8.192728,0,Y,3.5</sps:values> </sps:ParameterData> </sps:taskingParameters> <sps:latestResponseTime>2010-08-20T11:20:00+02:00</sps:latestResponseTime> <sps:reservationExpiration>2010-08-20T11:30:00+02:00</sps:reservationExpiration> </sps:Reserve>

2010-08-20T11:12:01+02:00 – The service sends a response indicating that the reservation was successful. It will expire at 2010-08-20T11:30:00+02:00. Listing 21 - Reserve response example <sps:ReserveResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:result> <sps:ReservationReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:estimatedToC>2010-08-20T14:30:00+02:00</sps:estimatedToC> <sps:event>TaskReserved</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>Reserved</sps:taskStatus> <sps:updateTime>2010-08-20T11:12:01+02:00</sps:updateTime> <sps:reservationExpiration>2010-08-20T11:30:00+02:00</sps:reservationExpiration> </sps:ReservationReport> </sps:result> </sps:ReserveResponse>

Now there are several options: the task automatically expires at 2010-0820T11:30:00+02:00, the client confirms, updates or cancels the task beforehand or the task fails for some reason. The option that the reservation was updated is not considere here. 9.6.5.3

Automatic Reservation Expiration

2010-08-20T12:00:00+02:00 – The client sends a GetStatus request to the service. The "since" parameter, although supported by the service, is not used in the request. Thus the current status of the task is requested. Listing 22 - GetStatus request example <sps:GetStatus service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> </sps:GetStatus>

2010-08-20T12:00:01+02:00 – The service sends a response with information about the current status of the task, indicating that the reservation expired (at 2010-0820T11:30:00+02:00).

156

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 23 - GetStatus response example for expired reservation <sps:GetStatusResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>ReservationExpired</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:statusMessage xml:lang="en">Your reservation expired as it was not confirmed before the agreed expiration time.</sps:statusMessage> <sps:taskStatus>Expired</sps:taskStatus> <sps:updateTime>2010-08-20T11:30:00+02:00</sps:updateTime> </sps:StatusReport> </sps:status> </sps:GetStatusResponse>

9.6.5.4

Confirming a Reserved Task

2010-08-20T11:23:00+02:00 – The client sends a Confirm request to the service to confirm the reservation. Listing 24 - Confirm request example <sps:Confirm service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> </sps:Confirm>

2010-08-20T11:23:08+02:00 – The service sends a response indicating that the task was confirmed and is now in execution, so will be performed as planned. Listing 25 - Confirm response example <sps:ConfirmResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:result> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:updateTime>2010-08-20T11:23:08+02:00</sps:updateTime> </sps:StatusReport> </sps:result> </sps:ConfirmResponse>

2010-08-20T12:00:00+02:00 – The client sends a GetTask request to the service. Listing 26 - GetTask request example <sps:GetTask service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> </sps:GetTask>

2010-08-20T12:00:01+02:00 – The service sends a response with information about the task, including all state transitions made so far. All transitions are reported because the service supports state logging. Note that here the tasking parameters used in reserving the task are also included. Copyright © 2011 Open Geospatial Consortium

157

OGC 09-000 Listing 27 - GetTask response example <sps:GetTaskResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:task> <sps:Task> <swes:identifier>http://www.ogc.org/procedure/camera/1/tasks/6</swes:identifier> <sps:status> <sps:ReservationReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:estimatedToC>2010-08-20T14:30:00+02:00</sps:estimatedToC> <sps:event>TaskReserved</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>Reserved</sps:taskStatus> <sps:updateTime>2010-08-20T11:12:01+02:00</sps:updateTime> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>2010-08-20T12:37:00+02:00,2010-0820T14:30:00+02:00,Y,pointToLookAt,51.902112,8.192728,0,Y,3.5</sps:values> </sps:ParameterData> </sps:taskingParameters> <sps:reservationExpiration>2010-0820T11:30:00+02:00</sps:reservationExpiration> </sps:ReservationReport> </sps:status> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskConfirmed</sps:event> <sps:percentCompletion>0</sps:percentCompletion> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>InExecution</sps:taskStatus> <sps:updateTime>2010-08-20T11:23:08+02:00</sps:updateTime> </sps:StatusReport> </sps:status> </sps:Task> </sps:task> </sps:GetTaskResponse>

9.6.5.5

Cancelling a Scheduled Task

2010-08-20T11:23:00+02:00 – The client made up his mind and sends a Cancel request to the service as it does no longer want the task to be executed/reserved. Listing 28 - Cancel request example <sps:Cancel service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> </sps:Cancel>

2010-08-20T11:23:08+02:00 – The service sends a response indicating that the (reserved) task was cancelled.

158

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 29 - Cancel response example <sps:CancelResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:result> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:updateTime>2010-08-20T11:23:08+02:00</sps:updateTime> </sps:StatusReport> </sps:result> </sps:CancelResponse>

9.6.5.6

Task Failure

2010-08-20T11:29:00+02:00 - Before the task expires, the client sends a GetStatus request to the service. The "since" parameter, although supported by the service, is not used in the request. Thus the current status of the task is requested. The request is essentially the same as the one shown in Listing 22 2010-08-20T11:29:01+02:00 – The service sends a response with information about the current status of the task, indicating that the reservation failed (at 2010-0820T11:28:30+02:00). Listing 30 - GetStatus response example for failed task <sps:GetStatusResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskFailed</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:statusMessage xml:lang="en">Your reservation failed because an emergency tasking action required use of the resources that were reserved for your task.</sps:statusMessage> <sps:taskStatus>Failed</sps:taskStatus> <sps:updateTime>2010-08-20T11:28:30+02:00</sps:updateTime> </sps:StatusReport> </sps:status> </sps:GetStatusResponse>

9.6.5.7

Updating a Scheduled Task

Assuming that the task is now in execution the client can update it. 2010-08-20T12:40:00+02:00 – The client sends an Update request to the service, requesting that the camera be moved 10 degrees left. The latest response time is set to 2010-08-20T12:41:00+02:00.

Copyright © 2011 Open Geospatial Consortium

159

OGC 09-000 Listing 31 - Update request example <sps:Update service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>Y,relativePositioning,Y,-10,N,N</sps:values> </sps:ParameterData> </sps:taskingParameters> <sps:latestResponseTime>2010-08-20T12:41:00+02:00</sps:latestResponseTime> <sps:targetTask>http://www.ogc.org/procedure/camera/1/tasks/6</sps:targetTask> </sps:Update>

Note: the tasking parameters available for update are a subset of the parameters described in the DescribeTaskingResponse - all parameters that have attribute updatable=false are not used in an update request. The description of the tasking parameter relevant for an Update request is shown in the following listing. Listing 32 - DataRecord example with tasking parameter description relevant for Update request <swe:DataRecord xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <swe:field name="positioningChoice"> <swe:DataChoice optional="true"> <swe:item name="pointToLookAt"> <swe:Vector definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/PointToLookAt" referenceFrame="http://www.opengis.net/def/crs/EPSG/0/4979"> <swe:label>Look Pointer</swe:label> <swe:description>3D location where the camera should look at</swe:description> <swe:coordinate name="lat"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Latitude" axisID="Lat"> <swe:label>Geodetic latitude</swe:label> <swe:uom xlink:href="deg"/> </swe:Quantity> </swe:coordinate> <swe:coordinate name="long"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Longitude" axisID="Long"> <swe:label>Geodetic longitude</swe:label> <swe:uom code="deg"/> </swe:Quantity> </swe:coordinate> <swe:coordinate name="h"> <swe:Quantity definition="http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Vertical" axisID="h"> <swe:label>Ellipsoidal height</swe:label> <swe:uom code="m"/> <swe:value>0</swe:value> </swe:Quantity> </swe:coordinate> </swe:Vector> </swe:item> <swe:item name="relativePositioning"> <swe:DataRecord definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativePan"> <swe:label>Relative Positioning</swe:label> <swe:description>Camera movement relative to the current position</swe:description> <swe:field name="relativeHorizontalPan"> <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativeHorizontalPan" optional="true"> <swe:uom code="deg"/> <swe:constraint>

160

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 <swe:AllowedValues> <swe:interval>-180 180</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> <swe:field name="relativeVerticalPan"> <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/RelativeVerticalPan" optional="true"> <swe:uom code="deg"/> <swe:constraint> <swe:AllowedValues> <swe:interval>-90 90</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> </swe:DataRecord> </swe:item> </swe:DataChoice> </swe:field> <swe:field name="focalLength"> <swe:Quantity definition="http://www.opengis.net/def/property/OGC-SPS-XCAM/0/FocalLength" optional="true"> <swe:label>Focal length</swe:label> <swe:description>Focal length of the camera. Controls the camera's zoom level.</swe:description> <swe:uom code="mm"/> <swe:constraint> <swe:AllowedValues> <swe:interval>3.5 10</swe:interval> </swe:AllowedValues> </swe:constraint> </swe:Quantity> </swe:field> </swe:DataRecord>

2010-08-20T12:40:01+02:00 – The service sends a response indicating that the final decision on the update is pending. The service confirms that the latest response time is 2010-08-20T12:41:00+02:00. Note that the response has a different task identifier than the one used in the request as the response informs about the status of the update request itself, not of the task that was the target of the request. This is necessary to get information about pending update requests via the GetStatus operation as we will see in the following. Listing 33 - Update response example indicating request is pending <sps:UpdateResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:swe="http://www.opengis.net/swe/2.0"> <sps:latestResponseTime>2010-08-20T12:41:00+02:00</sps:latestResponseTime> <sps:result> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6/updates/1</sps:task> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Pending</sps:requestStatus> <sps:updateTime>2010-08-20T12:40:01+02:00</sps:updateTime> </sps:StatusReport> </sps:result> <sps:targetTask>http://www.ogc.org/procedure/camera/1/tasks/6</sps:targetTask> </sps:UpdateResponse>

2010-08-20T12:41:01+02:00 – The client sends a GetStatus request to learn what the final decision for the update request was (this request can of course also be sent before the latest response time).

Copyright © 2011 Open Geospatial Consortium

161

OGC 09-000 Listing 34 - GetStatus response example targetting update request <sps:GetStatus service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6/updates/1</sps:task> </sps:GetStatus>

9.6.5.8

Usage of LatestResponseTime

Now there are two options: either the service did or did not provide the final response on the update request before the latest response time. 9.6.5.8.1 Final Response Not Provided Before Latest Response Time 2010-08-20T12:41:02+02:00 – The service sends a response indicating that the update request automatically expired and therefore was (automatically) rejected. Listing 35 - GetStatus response indicating pending update request expired and was rejected <sps:GetStatusResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6/updates/1</sps:task> <sps:event>TaskingRequestExpired</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Rejected</sps:requestStatus> <sps:updateTime>2010-08-20T12:41:00+02:00</sps:updateTime> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>Y,relativePositioning,Y,-10,N,N</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:StatusReport> </sps:status> </sps:GetStatusResponse>

9.6.5.8.2 Final Response is Provided Before Latest Response Time 2010-08-20T12:41:02+02:00 – The service sends a response indicating that the update was accepted and performed as planned.

162

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 36 - GetStatus response indicating pending update request was accepted <sps:GetStatusResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6/updates/1</sps:task> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:updateTime>2010-08-20T12:40:50+02:00</sps:updateTime> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>Y,relativePositioning,Y,-10,N,N</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:StatusReport> </sps:status> </sps:GetStatusResponse>

9.6.5.9

Task Completion

2010-08-20T14:35:00+02:00 – The client sends a GetTask request to get a complete description of the task the service performed for him. The request is essentially the same as the one shown in Listing 26. 2010-08-20T14:35:01+02:00 – The service sends a response that includes the full state history of the task (as the service supports state logging). Note: this example assumes that the task was submitted, not reserved first; intermediate data publication is shown as well a task update. Listing 37 - GetTask response for completed task <sps:GetTaskResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:task> <sps:Task> <swes:identifier>http://www.ogc.org/procedure/camera/1/tasks/6</swes:identifier> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskSubmitted</sps:event> <sps:percentCompletion>0</sps:percentCompletion> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>InExecution</sps:taskStatus> <sps:updateTime>2010-08-20T11:12:04+02:00</sps:updateTime> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>2010-08-20T12:37:00+02:00,2010-0820T14:30:00+02:00,Y,pointToLookAt,51.902112,8.192728,0,Y,3.5</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:StatusReport> </sps:status> <sps:status> <sps:StatusReport>

Copyright © 2011 Open Geospatial Consortium

163

OGC 09-000 <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>DataPublished</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>InExecution</sps:taskStatus> <sps:updateTime>2010-08-20T12:37:00.001+02:00</sps:updateTime> </sps:StatusReport> </sps:status> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskUpdated</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>InExecution</sps:taskStatus> <sps:updateTime>2010-08-20T12:40:50+02:00</sps:updateTime> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>Y,relativePositioning,Y,-10,N,N</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:StatusReport> </sps:status> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskCompleted</sps:event> <sps:percentCompletion>100</sps:percentCompletion> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>Completed</sps:taskStatus> <sps:updateTime>2010-08-20T14:30:00+02:00</sps:updateTime> </sps:StatusReport> </sps:status> </sps:Task> </sps:task> </sps:GetTaskResponse>

A GetStatus request with since parameter - supported by the service in this scenario - can yield a similar result but clients can also retrieve only those parts of the state log for a task that they do not already know. Let us assume that the client already performed a GetStatus request at 2010-08-20T12:37:05+02:00. 2010-08-20T14:00:00.00+02:00 – The client sends a GetStatus request with "since" parameter to the service, set to the value 2010-08-20T12:37:05+02:00. Listing 38 - GetStatus request example with since parameter <sps:GetStatus service="SPS" version="2.0.0" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:since>2010-08-20T12:37:05+02:00</sps:since> </sps:GetStatus>

2010-08-20T14:00:00.01+02:00 – The service sends a response providing information about the last two state transitions only.

164

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 39 - GetStatus response example for request with since parameter <sps:GetStatusResponse xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskUpdated</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>InExecution</sps:taskStatus> <sps:updateTime>2010-08-20T12:40:50+02:00</sps:updateTime> <sps:taskingParameters> <sps:ParameterData> <sps:encoding> <swe:TextEncoding tokenSeparator="," blockSeparator="@@"/> </sps:encoding> <sps:values>Y,relativePositioning,Y,-10,N,N</sps:values> </sps:ParameterData> </sps:taskingParameters> </sps:StatusReport> </sps:status> <sps:status> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskCompleted</sps:event> <sps:percentCompletion>100</sps:percentCompletion> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>Completed</sps:taskStatus> <sps:updateTime>2010-08-20T14:30:00+02:00</sps:updateTime> </sps:StatusReport> </sps:status> </sps:GetStatusResponse>

9.6.6

Getting Result Access Information for a Task

2010-08-20T14:36:00+02:00 – The client sends a DescribeResultAccess request to get references to data (services) for the task. Listing 40 - DescribeResultAccess request example targetting a task <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1"> <soap12:Body> <sps:DescribeResultAccess service="SPS" version="2.0.0"> <sps:target> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> </sps:target> </sps:DescribeResultAccess> </soap12:Body> </soap12:Envelope>

2010-08-20T14:36:01+02:00 - The service sends a response providing the requested information for accessing the data gathered for the task. Listing 41 - DescribeResultAccess response example with access information for a task <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:sos="http://www.opengis.net/sos/2.0" xmlns:fes="http://www.opengis.net/fes/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink"> <soap12:Body>

Copyright © 2011 Open Geospatial Consortium

165

OGC 09-000 <sps:DescribeResultAccessResponse> <sps:availability> <sps:available> <sps:DataAvailable> <sps:dataReference> <ows:ReferenceGroup> <ows:Identifier>http://www.ogc.org/procedure/camera/1/tasks/6/accessReferenceGroups/1</ow s:Identifier> <ows:ServiceReference xlink:href="http://www.ogc.org/SOS" xlink:role="http://www.opengis.net/spec/SPS/2.0/referenceType/FullServiceAccess"> <ows:Identifier>http://www.ogc.org/procedure/camera/1/accessReferenceGroups/1/references/ 1</ows:Identifier> <ows:Format>application/xml</ows:Format> <ows:Metadata> <sps:SPSMetadata> <sps:dataAccessType>http://www.opengis.net/sos/2.0/GetObservation</sps:dataAccessType> </sps:SPSMetadata> </ows:Metadata> <ows:RequestMessage> <soap12:Envelope> <soap12:Body> <sos:GetObservation service="SOS" version="2.0.0"> <sos:observedProperty>http://www.opengis.net/def/propertyType/xradiance</sos:observedProperty> <sos:procedure>http://www.ogc.org/procedure/camera/1</sos:procedure> <sos:temporalFilter> <fes:During> <fes:ValueReference>phenomenonTime</fes:ValueReference> <gml:TimePeriod gml:id="gid01"> <gml:beginPosition>2010-0820T12:37:00+02:00</gml:beginPosition> <gml:endPosition>2010-0820T14:30:00+02:00</gml:endPosition> </gml:TimePeriod> </fes:During> </sos:temporalFilter> </sos:GetObservation> </soap12:Body> </soap12:Envelope> </ows:RequestMessage> </ows:ServiceReference> </ows:ReferenceGroup> </sps:dataReference> <sps:dataReference> <ows:ReferenceGroup> <ows:Identifier>http://www.ogc.org/procedure/camera/1/tasks/6/accessReferenceGroups/2</ow s:Identifier> <ows:Reference xlink:href="http://www.ogc.org/procedure/camera/1/videos/task_6.mj2" xlink:role="http://www.opengis.net/spec/SPS/2.0/referenceType/Resource"> <ows:Identifier>http://www.ogc.org/procedure/camera/1/tasks/6/accessReferenceGroups/2/ref erences/1</ows:Identifier> <ows:Format>video/mj2</ows:Format> </ows:Reference> </ows:ReferenceGroup> </sps:dataReference> </sps:DataAvailable> </sps:available> </sps:availability> </sps:DescribeResultAccessResponse> </soap12:Body> </soap12:Envelope>

166

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

The example response shows that the client may (need to) modify the given request; for example credentials or WS-Addressing header-information may need to be added. 9.6.7

Service Exceptions

At some point in time after the required provision time for status information of a task / tasking request a client might request status information for it via the GetStatus / GetTask operation. If the service then already removed this information, it will return a StatusInformationExpired exception. Listing 42 – StatusInformationExpired exception example <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1"> <soap12:Body> <soap12:Fault> <soap12:Code> <soap12:Value>soap12:Receiver</soap12:Value> <soap12:Subcode> <soap12:Value>sps:StatusInformationExpired</soap12:Value> </soap12:Subcode> </soap12:Code> <soap12:Reason> <soap12:Text xml:lang="en">The status information for the requested task has already expired.</soap12:Text> </soap12:Reason> <soap12:Detail> <ows:Exception exceptionCode="StatusInformationExpired"> <ows:ExceptionText>The service has removed all status information for the given task / tasking request (the required provision time has already passed).</ows:ExceptionText> </ows:Exception> </soap12:Detail> </soap12:Fault> </soap12:Body> </soap12:Envelope>

In case that the client sent a request to the service that is not valid according to its XML Schema definition, the service returns an InvalidRequest exception.

Copyright © 2011 Open Geospatial Consortium

167

OGC 09-000 Listing 43 - InvalidRequest exception example <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:swes="http://www.opengis.net/swes/2.0"> <soap12:Body> <soap12:Fault> <soap12:Code> <soap12:Value>soap12:Sender</soap12:Value> <soap12:Subcode> <soap12:Value>swes:InvalidRequest</soap12:Value> </soap12:Subcode> </soap12:Code> <soap12:Reason> <soap12:Text xml:lang="en">The request did not conform to its XML Schema definition.</soap12:Text> </soap12:Reason> <soap12:Detail> <ows:Exception exceptionCode="InvalidRequest" locator="element sps:extension is not expected after element sps:GetStatus/sps:task"/> </soap12:Detail> </soap12:Fault> </soap12:Body> </soap12:Envelope>

If the client sent a GetStatus request with a task identifier that is unknown to the service then the service returns an InvalidParameterValue exception like the following: Listing 44 - InvalidParameterValue exception example <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:ows="http://www.opengis.net/ows/1.1"> <soap12:Body> <soap12:Fault> <soap12:Code> <soap12:Value>soap12:Sender</soap12:Value> <soap12:Subcode> <soap12:Value>ows:InvalidParameterValue</soap12:Value> </soap12:Subcode> </soap12:Code> <soap12:Reason> <soap12:Text xml:lang="en">The request contained an invalid parameter value.</soap12:Text> </soap12:Reason> <soap12:Detail> <ows:Exception exceptionCode="InvalidParameterValue" locator="task"> <ows:ExceptionText>The requested task / tasking request is unknown to the service.</ows:ExceptionText> </ows:Exception> </soap12:Detail> </soap12:Fault> </soap12:Body> </soap12:Envelope>

9.6.8

Notifications

As the service realizes publish / subscribe functionality, the client may subscribe for notifications published by the service. The following examples are about notifications published for the submitted task and an according subscription. 2010-08-20T11:12:05+02:00 - Right after it received the SubmitResponse telling him that the service accepted its tasking request, the client subscribes to notifications for the 168

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

task that is in execution. It sends the according Subscribe request to the producer endpoint stated by the SPS in the notifications section of its Capabilities document. Listing 45 - Subscribe request example <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsn-b="http://docs.oasis-open.org/wsn/b-2"> <soap12:Body> <wsn-b:Subscribe> <wsn-b:ConsumerReference> <wsa:Address>http://my.client.com/client/myNotificationConsumer</wsa:Address> </wsn-b:ConsumerReference> <wsn-b:Filter> <wsn-b:TopicExpression Dialect="http://www.w3.org/TR/1999/REC-xpath19991116">//sps:TaskEvent/*[@wstop:topic='true']</wsn-b:TopicExpression> <wsn-b:MessageContent Dialect="http://www.w3.org/TR/1999/REC-xpath19991116">boolean(//*[sps:task = 'http://www.ogc.org/procedure/camera/1/tasks/6'])</wsnb:MessageContent> </wsn-b:Filter> </wsn-b:Subscribe> </soap12:Body> </soap12:Envelope>

2010-08-20T11:12:06+02:00 - The service sends a response indicating that the subscription will last until 2010-08-20T14:31:00+02:00. This time is shortly after the requested task end time. Note, however, that in WSNotification the choice of the actual termination time depends upon the actual service implementation if no specific time was requested by the client. Although the way the default choice for termination time of a task as shown in this example is a useful pattern, the SPS specification does not state requirements concerning the duration of a task or the termination time of subscriptions that may target notifications published for it. Such requirements could be defined in an SPS extension. Listing 46 - Subscribe response example <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsn-b="http://docs.oasis-open.org/wsn/b-2"> <soap12:Body> <wsn-b:SubscribeResponse> <wsn-b:SubscriptionReference> <wsa:Address>http://www.ogc.org/SPS/Producer/subscriptions/792</wsa:Address> </wsn-b:SubscriptionReference> <wsn-b:TerminationTime>2010-08-20T14:31:00+02:00</wsn-b:TerminationTime> </wsn-b:SubscribeResponse> </soap12:Body> </soap12:Envelope>

Following the examples given so far, the service would have published the following notifications for the task the client targeted in its subscription: a notification for a TaskingRequestAccepted (task was submitted), DataPublished and for a TaskCompleted event

Copyright © 2011 Open Geospatial Consortium

169

OGC 09-000 Listing 47 – Example notification of TaskingRequestAccepted event published on TaskSubmission topic <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xsi:schemaLocation="http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd http://www.opengis.net/sps/2.0 http://schemas.opengis.net/sps/2.0/sps.xsd http://docs.oasis-open.org/wsn/b-2 http://docs.oasis-open.org/wsn/b-2.xsd" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsn-b="http://docs.oasisopen.org/wsn/b-2"> <soap12:Header> <wsa:To>http://my.client.com/client/myNotificationConsumer</wsa:To> <wsa:Action>http://docs.oasis-open.org/wsn/bw2/NotificationConsumer/Notify</wsa:Action> </soap12:Header> <soap12:Body> <wsn-b:Notify> <wsn-b:NotificationMessage> <wsn-b:SubscriptionReference> <wsa:Address>http://www.ogc.org/SPS/Producer/subscriptions/792</wsa:Address> </wsn-b:SubscriptionReference> <wsn-b:Topic Dialect="http://docs.oasis-open.org/wsn/t1/TopicExpression/Concrete">sps:TaskEvent/TaskSubmission</wsn-b:Topic> <wsn-b:Message> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskSubmitted</sps:event> <sps:percentCompletion>0</sps:percentCompletion> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>InExecution</sps:taskStatus> <sps:updateTime>2010-08-20T11:12:04+02:00</sps:updateTime> </sps:StatusReport> </wsn-b:Message> </wsn-b:NotificationMessage> </wsn-b:Notify> </soap12:Body> </soap12:Envelope>

170

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 48 – Example notification of DataPublished event <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wsn-b="http://docs.oasis-open.org/wsn/b2"> <soap12:Header> <wsa:To>http://my.client.com/client/myNotificationConsumer</wsa:To> <wsa:Action>http://docs.oasis-open.org/wsn/bw2/NotificationConsumer/Notify</wsa:Action> </soap12:Header> <soap12:Body> <wsn-b:Notify> <wsn-b:NotificationMessage> <wsn-b:SubscriptionReference> <wsa:Address>http://www.ogc.org/SPS/Producer/subscriptions/792</wsa:Address> </wsn-b:SubscriptionReference> <wsn-b:Topic Dialect="http://docs.oasis-open.org/wsn/t1/TopicExpression/Concrete">sps:TaskEvent/DataPublication</wsn-b:Topic> <wsn-b:Message> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>DataPublished</sps:event> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>InExecution</sps:taskStatus> <sps:updateTime>2010-08-20T12:37:00.001+02:00</sps:updateTime> </sps:StatusReport> </wsn-b:Message> </wsn-b:NotificationMessage> </wsn-b:Notify> </soap12:Body> </soap12:Envelope>

Copyright © 2011 Open Geospatial Consortium

171

OGC 09-000 Listing 49 – Example notification of TaskCompleted event <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wsn-b="http://docs.oasis-open.org/wsn/b2"> <soap12:Header> <wsa:To>http://my.client.com/client/myNotificationConsumer</wsa:To> <wsa:Action>http://docs.oasis-open.org/wsn/bw2/NotificationConsumer/Notify</wsa:Action> </soap12:Header> <soap12:Body> <wsn-b:Notify> <wsn-b:NotificationMessage> <wsn-b:SubscriptionReference> <wsa:Address>http://www.ogc.org/SPS/Producer/subscriptions/792</wsa:Address> </wsn-b:SubscriptionReference> <wsn-b:Topic Dialect="http://docs.oasis-open.org/wsn/t1/TopicExpression/Concrete">sps:TaskEvent/TaskCompletion</wsn-b:Topic> <wsn-b:Message> <sps:StatusReport> <sps:task>http://www.ogc.org/procedure/camera/1/tasks/6</sps:task> <sps:event>TaskCompleted</sps:event> <sps:percentCompletion>100</sps:percentCompletion> <sps:procedure>http://www.ogc.org/procedure/camera/1</sps:procedure> <sps:requestStatus>Accepted</sps:requestStatus> <sps:taskStatus>Completed</sps:taskStatus> <sps:updateTime>2010-08-20T14:30:00+02:00</sps:updateTime> </sps:StatusReport> </wsn-b:Message> </wsn-b:NotificationMessage> </wsn-b:Notify> </soap12:Body> </soap12:Envelope>

9.6.9

Using WS-Addressing

Usually the communication between client and SPS can be performed via SOAP without the addition of WS-Addressing header information. However, in some cases it is useful to leverage the functionality provided by WS-Addressing. This document is not the place to give a tutorial on WS-Addressing. However, the following listings provide some examples of SPS operation requests and responses (including a WS-Notification Subscribe invocation example) where WS-Addressing header information is added to the SOAP messages. Listing 50 – GetCapabilities example using WS-Addressing header information <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap12:Header> <wsa:To>http://www.ogc.org/SPS</wsa:To> <wsa:Action>http://www.opengis.net/sps/2.0/GetCapabilities</wsa:Action> <wsa:ReplyTo> <wsa:Address>http://my.client.com/client/myReceiver</wsa:Address> </wsa:ReplyTo> <wsa:MessageID>http://my.client.com/uid/msg-0010</wsa:MessageID> </soap12:Header> <soap12:Body> <sps:GetCapabilities/> </soap12:Body> </soap12:Envelope>

172

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

The meaning of the header fields is as follows: • • • •

wsa:To – address of the intended receiver of this message wsa:Action – uniquely identifies the semantics implied by this message; in this example it tells the service that the SPS GetCapabilities operation is invoked wsa:ReplyTo – the address of the endpoint where the response is expected to be sent to; in this example the response shall be sent asynchronously wsa:MessageID – a unique identifier for the message which is also used in the response sent by the service later on so that the client knows to which request an incoming – asynchronously sent – response refers to

The according reply would look like shown in the following listing. Listing 51 – Capabilities example using WS-Addressing header information <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xsi:schemaLocation="http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd http://www.opengis.net/sps/2.0 http://schemas.opengis.net/sps/2.0/sps.xsd http://www.w3.org/2005/08/addressing http://www.w3.org/2005/08/addressing/ws-addr.xsd" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:wstop="http://docs.oasisopen.org/wsn/t-1"> <soap12:Header> <wsa:To>http://my.client.com/client/myReceiver</wsa:To> <wsa:Action>http://www.opengis.net/sps/2.0/GetCapabilitiesResponse</wsa:Action> <wsa:RelatesTo>http://my.client.com/uid/msg-0010</wsa:RelatesTo> </soap12:Header> <soap12:Body> <!-- like shown in Listing 11--> </soap12:Body> </soap12:Envelope>

As we can see, the wsa:To has the value of the wsa:ReplyTo header field from the request shown in Listing 50 – same for the wsa:RelatesTo element which has the value of the wsa:MessageID from the request. The wsa:Action is now used to convey the information that the SOAP message contains the response to an SPS GetCapabilities invocation. The Subscribe request as shown in Listing 45 can also be augmented with WSAddressing header information.

Copyright © 2011 Open Geospatial Consortium

173

OGC 09-000 Listing 52 – Subscribe example using WS-Addressing header information <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wsn-b="http://docs.oasis-open.org/wsn/b2"> <soap12:Header> <wsa:To>http://www.ogc.org/SPS/Producer</wsa:To> <wsa:Action>http://docs.oasis-open.org/wsn/bw2/NotificationProducer/SubscribeRequest</wsa:Action> <wsa:ReplyTo> <wsa:Address>http://my.client.com/client/myReceiver</wsa:Address> </wsa:ReplyTo> <wsa:MessageID>http://my.client.com/uid/msg-Sub1</wsa:MessageID> </soap12:Header> <soap12:Body> <wsn-b:Subscribe> <wsn-b:ConsumerReference> <wsa:Address>http://my.client.com/client/myNotificationConsumer</wsa:Address> </wsn-b:ConsumerReference> <wsn-b:Filter> <!-- omitted for brevity --> </wsn-b:Filter> </wsn-b:Subscribe> </soap12:Body> </soap12:Envelope>

Note that the wsa:ReplyTo in the header only defines where the response to the Subscribe request is to be sent to. The value of the wsn-b:ConsumerReference/wsa:Address element (in the soap12:Body) defines where the notifications of events matching the subscription are to be sent to. The following listing shows an example response for this request. Listing 53 – SubscribeResponse example using WS-Addressing header information <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsn-b="http://docs.oasisopen.org/wsn/b-2"> <soap12:Header> <wsa:To>http://my.client.com/client/myReceiver</wsa:To> <wsa:Action>http://docs.oasis-open.org/wsn/bw2/NotificationProducer/SubscribeResponse</wsa:Action> <wsa:RelatesTo>http://my.client.com/uid/msg-Sub1</wsa:RelatesTo> </soap12:Header> <soap12:Body> <!-- as shown in Listing 46--> </soap12:Body> </soap12:Envelope>

The exceptions shown in Listing 42 to Listing 44 would be modified as shown in Listing 54 to Listing 56. Note that the wsa:Action is different in the following listings as the exceptions shown are defined by OWS Common, the SWE Service Model and the this standard.

174

Copyright © 2011 Open Geospatial Consortium

OGC 09-000 Listing 54 – StatusInformationExpired exception with WS-Addressing header information <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1"> <soap12:Header> <wsa:To>http://my.client.com/client/myReceiver</wsa:To> <wsa:Action>http://www.opengis.net/sps/2.0/Exception</wsa:Action> <wsa:RelatesTo>http://my.client.com/uid/msg-0040</wsa:RelatesTo> </soap12:Header> <soap12:Body> <soap12:Fault> <soap12:Code> <soap12:Value>soap12:Receiver</soap12:Value> <soap12:Subcode> <soap12:Value>sps:StatusInformationExpired</soap12:Value> </soap12:Subcode> </soap12:Code> <!-- rest as shown in Listing 42--> </soap12:Fault> </soap12:Body> </soap12:Envelope>

Listing 55 – InvalidRequest exception with WS-Addressing header information <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:swes="http://www.opengis.net/swes/2.0"> <soap12:Header> <wsa:To>http://my.client.com/client/myReceiver</wsa:To> <wsa:Action>http://www.opengis.net/swes/2.0/Exception</wsa:Action> <wsa:RelatesTo>http://my.client.com/uid/msg-0030</wsa:RelatesTo> </soap12:Header> <soap12:Body> <soap12:Fault> <soap12:Code> <soap12:Value>soap12:Sender</soap12:Value> <soap12:Subcode> <soap12:Value>swes:InvalidRequest</soap12:Value> </soap12:Subcode> </soap12:Code> <!-- rest as shown in Listing 43--> </soap12:Body> </soap12:Envelope>

Copyright © 2011 Open Geospatial Consortium

175

OGC 09-000 Listing 56 – InvalidParameterValue exception with WS-Addressing header information <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sps="http://www.opengis.net/sps/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1"> <soap12:Header> <wsa:To>http://my.client.com/client/myReceiver</wsa:To> <wsa:Action>http://www.opengis.net/ows/1.1/Exception</wsa:Action> <wsa:RelatesTo>http://my.client.com/uid/msg-0020</wsa:RelatesTo> </soap12:Header> <soap12:Body> <soap12:Fault> <soap12:Code> <soap12:Value>soap12:Sender</soap12:Value> <soap12:Subcode> <soap12:Value>ows:InvalidParameterValue</soap12:Value> </soap12:Subcode> </soap12:Code> <!-- rest as shown in Listing 44--> </soap12:Body> </soap12:Envelope>

176

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

10 SPS Task/Tasking Request State Machine Documentation Requirement http://www.opengis.net/spec/SPS/2.0/req/Behaviour REQ 115.

Any SPS shall implement a behavior for handling tasks and tasking requests as defined by the state machines described in this clause 10.

Each state machine is documented with diagrams representing the state machine, followed by a documentation of the states that are part of the state machine. For each state, the incoming and outgoing connections are documented. Finally, all triggers and the event that causes the activation of a trigger are documented. A trigger may have a specific effect, which in the case of SPS is to notify interested clients about the event (/Notify). A service that implements according notification functionality – for SPS per default via a publish/subscribe interface – can inform clients about these events; see clause 8 for further details. 10.1 Task State Machine 10.1.1 Diagrams

The following two diagrams define the state machine of an SPS task. NOTE: Figure 32 is the same as Figure 9 and Figure 33 is only another representation of the state machine shown in the two previous diagrams – so all three diagrams represent the same state machine.

Copyright © 2011 Open Geospatial Consortium

177

OGC 09-000

Figure 32 — task state machine diagram An introduction to the state machine depicted in Figure 32 is provided in clause 6.3.6 and thus is not repeated here. The full documentation of the state machine is given in the following clauses.

178

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Figure 33 — task state machine diagram – tabular representation 10.1.2 States/Choices

Requirement http://www.opengis.net/spec/SPS/2.0/req/Tasks/StateTransitions REQ 116.

Any SPS shall implement state transitions as defined in Table 70, Table 71, Table 72, Table 73, Table 74, and Table 75.

Copyright © 2011 Open Geospatial Consortium

179

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/Tasks/Notifications REQ 117.

10.1.2.1

Any SPS shall send notifications as defined in Table 70, Table 71, Table 72, Table 73, Table 74, and Table 75.

Scheduled State

Any feasible tasking request with the intention to reserve or submit a task gets accepted by the service (otherwise the request would be not feasible) and added to the schedule of the server. A task that is scheduled by the service can transition through different substates before it reaches the final state. A client may cancel a task at any time if the Cancel operation is supported by the service. A task can also fail due to unforeseen circumstances that are in the responsibility of the service provider. The natural way for a scheduled task to be finalized is that it either expires (in case the task was only reserved) or that it is completed as planned.

180

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 70 — Connections of the Scheduled state Connector (type & name)

Source (state)

Target (state)

Notes

Transition

Scheduled

Final State

If supported by the service, a client may cancel a scheduled task.

TaskCancellation

A service may reject a cancellation request. Data gathered and published for such a task should not automatically be deleted so that a client can at least retrieve the data that was gathered until the task was cancelled. If supported, the service shall notify interested consumers about this event. Transition

TaskFailure

Scheduled

Final State

If the service is not able to perform a scheduled task as planned, the task fails. If supported, the service shall notify interested consumers about this event.

10.1.2.2

InExecution State

A task that enters this state is executed by the service. The service starts the internal processing of the request.

Copyright © 2011 Open Geospatial Consortium

181

OGC 09-000

Table 71 — Connections of the InExecution state Connector (type & name)

Source (state)

Transition

InExecution Final State

TaskCompletion

Target (state)

Notes

If a task is completed as planned, it is finalized. If supported, the service shall notify interested consumers about this event.

Transition

ExecutingTaskU pdate

InExecution InExecution If a tasking request to update a task that is in the state InExecution is feasible, the update shall be performed and the task shall remain (or transition back) into InExecution state. Whether the update results in the transition to the previous substate of InExecution or in the transition to a new substate is not further specified here. This behavior can be specified by an SPS extension/profile that defines new substates of InExecution. If supported, the service shall notify interested consumers about this event.

Transition

DataPublication

InExecution InExecution New data was gathered for the task and published by the service - meaning that a client can now access the new data. If supported, the service shall notify interested consumers about this event.

Transition

TaskConfirmatio n

Reserved

InExecution A reserved task that is confirmed by the client shall transition into InExecution state. If supported, the service shall notify interested consumers about this event.

Transition

TaskSubmission

Tasking Request Choice

InExecution A feasible tasking request with the intention to submit a task enters InExecution state. Note: a service can support notification that a task was submitted by implementing the TaskingRequestAccepted event (see Table 64).

182

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

10.1.2.3

Reserved State

This state represents a task that has successfully been reserved at the service. The service blocks all resources required to execute the task as long as the reservation has not expired. The reserved task may be updated if the update is feasible - if it is not feasible the task does not change its state. If a successful confirmation of the reserved task can no longer be guaranteed, the task fails. Table 72 — Connections of the Reserved state Connector (type & name)

Source (state)

Target (state)

Notes

Transition

Tasking Request Choice

Reserved

A feasible tasking request with the intention to reserve a task enters the Reserved state.

TaskReservation

Note: a service can support notification that a task was reserved by implementing the TaskingRequestAccepted event (see Table 64). Transition

ReservedTaskUpd ate

Reserved

Reserved

If a tasking request to update a reserved task is feasible, the update shall be performed and the task shall remain (or transition back) in Reserved state. If supported, the service shall notify interested consumers about this event.

Transition

ReservationExpira tion

Reserved Final State

If a reserved task expired, it shall be finalized by the service. If supported, the service shall notify interested consumers about this event.

Transition

TaskConfirmation

Reserved

InExecution

A reserved task that is confirmed by the client shall transition into InExecution state. If supported, the service shall notify interested consumers about this event.

10.1.2.4

Tasking Request Choice

Which substate of the Scheduled state is entered by a new task depends on the semantics of the tasking request. If the tasking request was sent with the intention to reserve a task Copyright © 2011 Open Geospatial Consortium

183

OGC 09-000

then the substate will be Reserved. If the intention was to submit a task then the substate will be InExecution. Table 73 — Connections of the Tasking Request choice Connector (type & name)

Source (state)

Target (state)

Notes

Transition

Tasking Request Choice

Reserved

A feasible tasking request with the intention to reserve a task enters the Reserved state.

TaskReservation

Note: a service can support notification that a task was reserved by implementing the TaskingRequestAccepted event (see Table 64). Transition

TaskSubmission

Tasking Request Choice

InExecutio A feasible tasking request with the n intention to submit a task enters the InExecution state. Note: a service can support notification that a task was submitted by implementing the TaskingRequestAccepted event (see Table 64).

Transition

TaskReservationO rSubmission

10.1.2.5

Initial State Tasking Request Choice

A feasible tasking request with the intention to reserve or submit an implied task automatically enters the Scheduled state.

Final State

A task that was completed, has expired, was cancelled or has failed is in its final state. The service does not allow any confirmation, update or cancellation of a finalized task. An exception (with ModificationOfFinalizedTask code) will be thrown if one of these requests is received for a finalized task. An InvalidParameterValue exception is thrown if the task identifier in the request is unknown to the service.

184

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 74 — Connections of the Final state Connector (type & name)

Source (state)

Target Notes (state)

Transition

Scheduled

Final State

TaskCancellation

If supported by the service, a client may cancel a scheduled task. A service may reject a cancellation request. Data gathered and published for such a task should not automatically be deleted so that a client can at least retrieve the data that was gathered until the task was cancelled. If supported, the service shall notify interested consumers about this event.

Transition

TaskCompletion

InExecution

Final State

If a task is completed as planned, it is finalized. If supported, the service shall notify interested consumers about this event.

Transition

ReservationExpira tion

Reserved

Final State

If a reserved task expired, it shall be finalized by the service. If supported, the service shall notify interested consumers about this event.

Transition

TaskFailure

Scheduled

Final State

If the service is not able to perform a scheduled task as planned, the task shall fail. If supported, the service shall notify interested consumers about this event.

10.1.2.6

Initial State

Once a tasking request with the intention to reserve or submit is received by the service and the implied task is feasible, a task gets scheduled by the service.

Copyright © 2011 Open Geospatial Consortium

185

OGC 09-000

Table 75 — Connections of the Initial state Connector (type & name)

Source (state)

Transition

Initial State Tasking Request Choice

TaskReservationO rSubmission

Target (state)

Notes

A feasible tasking request with the intention to reserve or submit an implied task automatically enters the Scheduled state.

10.1.3 Events/Trigger

Requirement http://www.opengis.net/spec/SPS/2.0/req/Tasks/Events REQ 118.

10.1.3.1

If an SPS server supports event notification, events shall be sent as defined in clauses 10.1.3.1 to 10.1.3.9.

DataPublished

New data was published for a task that is InExecution. If supported by the service, this causes a notification of the event. 10.1.3.2

ReservationExpired

A reserved task has expired (the expiration time set by the service is before now - "now" being the time measured by the service). If supported by the service, this causes a notification of the event. 10.1.3.3

TaskCancelled

A scheduled task has been cancelled. Data gathered and published for the cancelled task should not automatically be deleted so that a client can retrieve the data that was gathered until the task was cancelled. If supported by the service, this causes a notification of the event. 10.1.3.4

TaskCompleted

A task that was InExecution was completed as planned. Implies that all data gathered in the task has been published. If supported by the service, this causes a notification of the event. 186

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

10.1.3.5

TaskConfirmed

A reserved task was confirmed. If supported by the service, this causes a notification of the event. 10.1.3.6

TaskFailed

A scheduled task has failed. Data gathered and published for the failed task should not automatically be deleted so that a client can at least retrieve the data that was gathered until the task failed. If supported by the service, this causes a notification of the event. 10.1.3.7

TaskReserved

A task was reserved. Note: a service can support notification that a task was reserved by implementing the TaskingRequestAccepted event (see Table 64).

10.1.3.8

TaskSubmitted

A task was submitted. Note: a service can support notification that a task was reserved by implementing the TaskingRequestAccepted event (see Table 64).

10.1.3.9

TaskUpdated

A task was updated. If supported by the service, this causes a notification of the event.

10.2 Tasking Request State Machine 10.2.1 Diagrams

The following diagram defines the state machine of an SPS tasking request. NOTE: Figure 34 is the same as Figure 8

Copyright © 2011 Open Geospatial Consortium

187

OGC 09-000

Figure 34 — tasking request state machine diagram An introduction to the state machine depicted in Figure 34 is provided in clause 6.3.6 and thus is not repeated here. The full documentation of the state machine is given in the following clauses. 10.2.2 States/Choices

Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequests/StateTransitions REQ 119.

Any SPS shall implement state transitions as defined in Table 76 to Table 81.

Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequests/Notifications REQ 120.

10.2.2.1

Any SPS shall send notifications as defined in Table 76 to Table 81.

Pending State

A tasking request of which the feasibility cannot be determined immediately enters Pending state.

188

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

The tasking request will remain in this state until the feasibility was determined or until the latest response time - if set in the tasking request or initial response to inform the client about the pending state - is reached. Table 76 — Connections of the Pending state Connector (type)

Source (state)

Target (state)

Notes

Transition

Pending

Rejected

If the latest response time was set by the client or service for a tasking request and this point in time has been reached, the tasking request automatically transitions into the Rejected state. If supported, the service shall notify interested consumers about this event.

Transition

ChoiceA

Pending

If the service cannot determine the feasibility of a tasking request in a reasonable amount of time, the request transitions into the Pending state. If supported, the service shall notify interested consumers about this event.

Transition

Pending

ChoiceB

10.2.2.2

Accepted State

If the service can provide a final decision on the feasibility of a pending tasking request, the request transitions on to the final decision point.

If the service determines that the tasking request is feasible, the request is in the final state Accepted. If the tasking request had the intention to reserve or submit a task, then a task is scheduled by the service. If the tasking request had the intention to update a reserved or currently executed task, the update is performed to the task.

Copyright © 2011 Open Geospatial Consortium

189

OGC 09-000

Table 77 — Connections of the Accepted state Connector (type)

Source (state)

Target (state)

Notes

Transition

ChoiceB

Accepted If the tasking request is feasible, it transitions on to the final state Accepted. If supported, the service shall notify interested consumers about this event.

10.2.2.3

ChoiceA

When receiving a tasking request, the service has to determine the feasibility of a tasking request within a reasonable amount of time. A 'reasonable time' should be a duration that is well below any timeout of the transport protocol used for the communication. Table 78 — Connections of the ChoiceA choice Connector (type)

Source (state)

Target (state)

Notes

Transition

ChoiceA

Pending

If the service cannot determine the feasibility of a tasking request in a reasonable amount of time, the request transitions into the Pending state. If supported, the service shall notify interested consumers about this event.

Transition

ChoiceA

ChoiceB

If the service can determine the feasibility of a tasking request in a reasonable amount of time, the request transitions on to the final decision point.

Transition

Initial State

ChoiceA

A tasking request automatically reaches the choice where the service decides whether the feasibility of the tasking request can be determined in a reasonable time or not.

10.2.2.4

ChoiceB

Here the service makes his decision whether the request is feasible or not.

190

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

Table 79 — Connections of the ChoiceB choice Connector (type)

Source (state)

Target (state)

Notes

Transition

ChoiceA

ChoiceB

If the service can determine the feasibility of a tasking request in a reasonable amount of time, the request transitions on to the final decision point.

Transition

Pending

ChoiceB

If the service can provide a final decision on the feasibility of a pending tasking request, the request transitions on to the final decision point.

Transition

ChoiceB

Accepted If the tasking request is feasible, it transitions on to the final state Accepted. If supported, the service shall notify interested consumers about this event.

Transition

ChoiceB

Rejected

If the tasking request is not feasible, it transitions on to the final state Rejected. If supported, the service shall notify interested consumers about this event.

10.2.2.5

Initial State

A tasking request is sent to the SPS (GetFeasibility, Reserve, Submit, Update). Table 80 — Connections of the Initial state Connector (type)

Source (state)

Target (state)

Notes

Transition

Initial State

ChoiceA

A tasking request automatically reaches the choice where the service decides whether the feasibility of the tasking request can be determined in a reasonable time or not.

10.2.2.6

Rejected (Final) State

If the service determines that the tasking request is not feasible, the request is in the final state Rejected. If the tasking request had the intention to reserve or submit a task, then no task is scheduled by the service.

Copyright © 2011 Open Geospatial Consortium

191

OGC 09-000

If the tasking request had the intention to update a reserved or currently executed task, the update is not performed. A service may provide alternative sets of tasking parameters that the client can use to formulate another tasking request. Table 81 — Connections of the Rejected state Connector (type)

Source (state)

Target (state)

Transition

Pending Rejected

Notes

If the latest response time was set by the client or service for a tasking request and this point in time has been reached (the current time being after the latest response time), the tasking request automatically transitions into the Rejected state. If supported, the service shall notify interested consumers about this event.

Transition

ChoiceB Rejected

If the tasking request is not feasible, it transitions on to the final state Rejected. If supported, the service shall notify interested consumers about this event.

10.2.3 Events/Trigger

Requirement http://www.opengis.net/spec/SPS/2.0/req/TaskingRequests/EventsTrigger REQ 121.

10.2.3.1

If an SPS server supports event notification, events shall be sent as defined in clauses 10.2.3.1 to 10.2.3.3.

TaskingRequestAccepted

A tasking request has been accepted. If supported by the service, this causes a notification of the event. 10.2.3.2

TaskingRequestExpired

A pending tasking request has expired. If supported by the service, this causes a notification of the event.

192

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

10.2.3.3

TaskingRequestRejected

A tasking request has been rejected. If supported by the service, this causes a notification of the event. 10.2.3.4

TaskingRequestPending

A tasking request is pending. If supported by the service, this causes a notification of the event.

Copyright © 2011 Open Geospatial Consortium

193

OGC 09-000

11 Annex A – Abstract Test Suite and Conformance Testing (normative) Specific conformance tests for a Sensor Planning Service need to be defined on the concrete service level in order to ensure full interoperability. Thus, the abstract test suite defined herein only ensures general interoperability between client and server. An SPS implementation shall satisfy the following system characteristics to be minimally conformant with this specification: 11.1 Conformance Class – Core http://www.opengis.net/spec/SPS/2.0/conf/Core

11.1.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/Core/Capability

a) Test Purpose: Verify that the server implements the Core conformance class. b) Test Method: Verify that the server implements the following conformance classes: http://www.opengis.net/spec/SWE/2.0/conf/uml-simple-encodings, http://www.opengis.net/spec/SWE/2.0/conf/uml-simple-components, http://www.opengis.net/spec/SWES/2.0/conf/BasicSWEServiceMetadata, http://www.opengis.net/spec/SWES/2.0/conf/SensorProvider. Verify the conformance tests listed in section 11.1.2 c) Reference:see references in conformance tests d) Test Type: Capability 11.1.2 Modules with Basic Tests

11.1.2.1

Common Request Response Handling

11.1.2.1.1 Invalid version number http://www.opengis.net/spec/SPS/2.0/conf/Core/RequestResponse/InvalidVersionNumber

a) Test Purpose: To verify that a request, other than a GetCapabilities request, with the version number set to one that the server does not claim to support in its capabilities document fails. b) Test Method: Review the response to the GetCapabilites request and determine which request version(s) the server claims to support. Execute one or more SPS requests with a version that is not in the list of supported version and verify that the server generates an InvalidParameterValue exception. c) Reference: conformance test A.4.2.3 in OGC 06-121r3

194

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

d) Test Type: Basic 11.1.2.1.2 Service and version appropriateness http://www.opengis.net/spec/SPS/2.0/conf/Core/RequestResponse/ServiceAndVersion

a) Test Purpose: To verify that the server recognizes correct values for service and version parameters in operation request other than GetCapabilities. b) Test Method: Devise and execute a request with correct value ("SPS") for the service (type) request parameter and another request with correct value for the version parameter ("2.0.0"). Verify that the service does not throw an InvalidParameterValue exception with locator version "service" or "version". c) Reference: Subclause of chapter 7 according to the given operation. d) Test Type: Basic 11.1.2.2

Exception Reporting

11.1.2.2.1 Exception Appropriateness http://www.opengis.net/spec/SPS/2.0/conf/Core/ExceptionReporting/Appropriateness

a) Test Purpose: Verify that the server generates an appropriate exception by setting the value of the code and locator parameters to an appropriate value. Test Method: Devise a series of requests that generate an error for each applicable error code used in b) Figure 12. Verify that server generates an appropriate exception for each case by verifying that the code and locator parameters have been set to the correct value. c) Reference: 7.2 d) Test Type: Basic 11.1.2.2.2 Exception Model Compliancy http://www.opengis.net/spec/SPS/2.0/conf/Core/ExceptionReporting/ModelCompliancy

a) Test Purpose: To verify that the exceptions the server generates validate according to the schema defined in Clause 8 of 06-121r3. b) Test Method: Devise and execute a request that generates an error. Verify that the exception that the server generates is valid. c) Reference: 7.2 d) Test Type: Basic

Copyright © 2011 Open Geospatial Consortium

195

OGC 09-000

11.1.2.3

Service Metadata

11.1.2.3.1 Adherence to property inheritance mechanism http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/PropertyInheritanceAdherence

a) Test Purpose: To verify that the service adheres to the rules of property inheritance. b) Test Method: Devise and execute requests that test each of the values for the procedure and procedure description format properties that an offering has when applying the property inheritance mechanism as defined in OGC 09-001 and Table 27. c) Reference: 7.3.3.4, OGC 09-001, Table 27 d) Test Type: Basic 11.1.2.3.2 Default Service Version http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/DefaultServiceVersion

a) Test Purpose: To verify that the service supports retrieval of Capabilities in version 2.0.0. b) Test Method: Devise a GetCapabilities request with acceptVersions parameter set to value “2.0.0” and send it to the service. Verify that the service property in the resulting capabilities document has the value "2.0.0". c) Reference: 7.3.2.4 d) Test Type: Basic 11.1.2.3.3 GetCapabilities operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/GetCapabilitiesFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the GetCapabilities operation is invoked. b) Test Method: Devise and execute a GetCapabilities request. Verify that the service responds with a valid capabilities document or exception. c) Reference: 7.3.2.3, 7.3.2.4 d) Test Type: Basic 11.1.2.3.4 Indicate support of SWE Common Encodings http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/SWECommonEncodings

196

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

a) Test Purpose: Verify that the service advertises which SWE Common encodings it supports. b) Test Method: Devise a GetCapabilities request to retrieve the full capabilities document of the service and send it to the service. Get the list of supported SWE Common encodings from the contents section. Verify that the conformance classes for these encodings are listed in the "profile" property of the serviceIdentification section. Ensure that at least the URIs for the "Simple Encodings UML Package" conformance class from the SWE Common Data Model is listed. c) Reference: 7.3.3.3 d) Test Type: Basic 11.1.2.3.5 Indicate support of SWE Common Structures http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/SWECommonStructures

a) Test Purpose: Verify that the service advertises which SWE Common structures it supports. b) Test Method: Devise a GetCapabilities request to retrieve the serviceIdentification section of the service's capabilities document and send it to the service. Get the list of supported conformance classes. Verify that at least the URI for the "Basic Types and Simple Components UML Package" conformance class from the SWE Common Data Model is listed there. c) Reference: 7.3.3.3 d) Test Type: Basic 11.1.2.3.6 Listing of supported conformance classes http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/ConformanceClassListing

a) Test Purpose: Verify that a service lists all the conformance classes it supports in its metadata. b) Test Method: Execute a GetCapabilities request to retrieve the serviceIdentification section. Verify that the service passes all tests associated to the conformance classes that are listed in the profile property of this section. c) Reference: 7.3.2.4.6 d) Test Type: Basic 11.1.2.3.7 Mandatory Operations http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/MandatoryOperations

Copyright © 2011 Open Geospatial Consortium

197

OGC 09-000

a) Test Purpose: Verify that all mandatory SPS operations are supported by the service. b) Test Method: Execute a GetCapabilities request to retrieve the operationsMetadata section. Verify that the mandatory operations according to Table 22 are listed there. Execute further GetCapabilities as well as DescribeSensor, DescribeResultAccess, DescribeTasking, GetStatus, GetTask and Submit requests. Verify that the server sends appropriate responses as defined in this specification. c) Reference: 7.3.2, 7.3.4, 7.3.5, 7.3.6, 7.3.7, 7.3.8 and OGC 09-001 d) Test Type: Basic 11.1.2.3.8 Minimum section set http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/MinimumSectionSet

a) Test Purpose: Verify that the service supports at least the serviceProvider, serviceIdentification, operationsMetadata and contents sections. b) Test Method: Create a GetCapabilities request to get the full capabilities document and check that it contains the according sections. c) Reference: 7.3.2 d) Test Type: Basic 11.1.2.3.9 Number of property values for sensor offering http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/SensorOfferingPropertyValues

a) Test Purpose: To verify that the server has the correct number of values for the properties contained in the SensorOffering in each of its offerings listed in its contents section. b) Test Method: Devise and execute a GetCapabilities request that requests the contents section. Verify that the number of values for the procedure, procedure description format, observable property, related feature and observable area properties in each offering after applying the property inheritance mechanism (see OGC 09-001) are as defined in Table 27. c) Reference: 7.3.3.3, OGC 09-001, Table 27 d) Test Type: Basic 11.1.2.3.10Version negotiation for the GetCapabilities request http://www.opengis.net/spec/SPS/2.0/conf/Core/ServiceMetadata/VersionNegotiation

198

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

a) Test Purpose: To verify that the server correctly handles version negotiation for the GetCapabilities operation. b) Test Method: Verify that the server conforms to the test described in 06-121r3. c) Reference: A.4.2.3 of 06-121r3 d) Test Type: Basic 11.1.2.4

DescribeTasking

11.1.2.4.1 DescribeTasking operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/Core/DescribeTasking/OperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the DescribeTasking operation is invoked. b) Test Method: Devise and execute a DescribeTasking request. Verify that the service responds with a valid DescribeTaskingResponse or exception. c) Reference: 7.3.4 d) Test Type: Basic 11.1.2.4.2 Provide name for tasking parameter component http://www.opengis.net/spec/SPS/2.0/conf/Core/DescribeTasking/TaskingParameterNames

a) Test Purpose: To verify that the service provides required name attributes for and in the tasking parameter description. b) Test Method: Devise and execute a DescribeTasking request for each procedure hosted by the service. Verify that the taskingParameter description in the DescribeTaskingResponse has a properly populated name attribute and also that all SWE Common components eventually contained in the parameter description has such a name attribute. c) Reference: 7.3.4.4 d) Test Type: Basic 11.1.2.4.3 Tasking Parameter Description Model Validity http://www.opengis.net/spec/SPS/2.0/conf/Core/DescribeTasking/TaskingParameterModelValidity

a) Test Purpose: To verify that the service uses only those SWE Common Data structures that it indicates support for and that these are valid.

Copyright © 2011 Open Geospatial Consortium

199

OGC 09-000

b) Test Method: Devise and execute a DescribeTasking request for each procedure hosted by the service. Verify that the taskingParameter description in the DescribeTaskingResponse uses a SWE Common AbstractDataComponent subtype that is covered by one of the SWE Common conformance classes listed in the service's capabilities document. Ensure that this component passes the tests defined in all conformance classes of the SWE Common Data Model standard listed in the service's capabilities document. c) Reference: 7.3.4 d) Test Type: Basic 11.1.2.5

Tasking

11.1.2.5.1 Tasking Parameter Usage http://www.opengis.net/spec/SPS/2.0/conf/Core/Tasking/TaskingParameterUsage

a) Test Purpose: Verify that the service supports the SWE Common encodings as advertised in its capabilities. b) Test Method: Devise a GetCapabilities request to retrieve the contents section of the service's capabilities document and send it to the service. Get the list of supported SWE Common encodings from the contents section. Devise a valid tasking request (Submit and - if implemented - Reserve, Update, GetFeasibility) with tasking parameter values structured according to the tasking parameter description retrieved via the DescribeTasking operation for the tasked procedure and encoded according to an encoding indicated in the tasking request and supported by the service. Send this tasking request to the service. Verify that the service does not return an InvalidParameterValue exception with locator "taskingParameters". Similarly, devise a tasking request with invalid tasking parameters (not following the structure defined in the DescribeTasking response, not using an encoding supported by the service or not encoding the values correctly) and send it to the service. Ensure that the service throws an InvalidParameterValue exception with locator "taskingParameters". c) Reference: 7.2 d) Test Type: Basic 11.1.2.5.2 Tasking request expiration http://www.opengis.net/spec/SPS/2.0/conf/Core/Tasking/TaskingRequestExpiration

a) Test Purpose: To verify that the service correctly handles tasking request expiration. 200

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

b) Test Method: Given a tasking response that has requestStatus "Pending" and defines a latestResponseTime: devise and execute a GetStatus request for the request and send it to the service shortly before the latestResponseTime. If the requestStatus is still "Pending" send another GetStatus request shortly after the latestResponseTime. Verify that the requestStatus in the latest status report is either "Accepted" or "Rejected". If it is "Rejected", check the updateTime of the according status report. If the updateTime is before the latestResponseTime, ensure that the event is not "TaskingRequestExpired". Otherwise ensure that the updateTime value is the same time as the latestResponseTime and that the event is "TaskingRequestExpired". c) Reference: 7.3.1.3, 7.3.1.4 d) Test Type: Basic 11.1.2.6

State Handling

11.1.2.6.1 GetStatus operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/Core/StateHandling/GetStatusOperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the GetStatus operation is invoked. b) Test Method: Devise and execute a GetStatus request. Verify that the service responds with a valid GetStatusResponse or exception. c) Reference: 7.3.6 d) Test Type: Basic 11.1.2.6.2 GetTask operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/Core/StateHandling/GetTaskOperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the GetTask operation is invoked. b) Test Method: Devise and execute a GetTask request. Verify that the service responds with a valid GetTaskResponse or exception. c) Reference: 7.3.7 d) Test Type: Basic 11.1.2.6.3 Handling requests for already deleted status information http://www.opengis.net/spec/SPS/2.0/conf/Core/StateHandling/HandlingRequestsForDeletedStatusInfo

Copyright © 2011 Open Geospatial Consortium

201

OGC 09-000

a) Test Purpose: Verify that the service correctly handles GetStatus / GetTask requests that ask for status information of a task / tasking request but that information has already been discarded by the service. b) Test Method: Devise a GetStatus / GetTask request for a task that was completed by the service and execute it after the minStatusTime has expired. Verify that the service either sends an exception with code StatusInformationExpired (in case it still knows the task but does no longer store status information for it) or an exception with code InvalidParameterValue (in case that the service already removed all information on that task and thus does no longer “know” it) with locator "task". c) Reference: 7.3.6.5, 7.3.7.5 d) Test Type: Basic 11.1.2.6.4 State handling http://www.opengis.net/spec/SPS/2.0/conf/Core/StateHandling/ValidStateMachineImplementation

a) Test Purpose: Verify that the service correctly implements the state machines defined for tasking requests / tasks. b) Test Method: Devise a valid tasking request and send it to the service. Create valid GetTask / GetStatus requests for the according tasks / tasking requests and send them to the service. Inspect the response to verify that no illegal transition for the tasking request / task is made. c) Reference: 10, 7.3.1.5, 7.3.6, 7.3.7 d) Test Type: Basic 11.1.2.6.5 State information storage http://www.opengis.net/spec/SPS/2.0/conf/Core/StateHandling/StateInfoStorage

a) Test Purpose: Verify that the service provides the information about the latest state transition of finalized tasks / tasking requests as long as indicated in its service metadata. b) Test Method: Devise a valid request for all the tasking operations supported by the service (Submit, GetFeasibility, Update, Reserve). Send those to the service. Create valid GetTask / GetStatus requests for the according tasks / tasking requests when they were finalized. Send them to the service shortly before the point in time that is defined by the updateTime of the status report that documented the transition into the final state plus the "minStatusTime" duration that is stated in the contents section of the service's capabilities document. Verify

202

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

that each response contains information on the latest state transition made by the request / task. c) Reference: 7.3.3.3 d) Test Type: Basic 11.1.2.6.6 State provisioning http://www.opengis.net/spec/SPS/2.0/conf/Core/StateHandling/StateProvisioning

a) Test Purpose: Verify that the service provides information about the latest state of all tasks / tasking requests. b) Test Method: Devise a valid request for all the tasking operations supported by the service (Submit, GetFeasibility, Update, Reserve). Send those requests to the service. Create valid GetTask / GetStatus requests for the according tasks / tasking requests and send them to the service. Verify that each response contains information on the latest state transitions made by the request / task so far. c) Reference: 7.3.6, 7.3.7 d) Test Type: Basic 11.1.2.6.7 StatusReport Usage in GetStatusResponse http://www.opengis.net/spec/SPS/2.0/conf/Core/StateHandling/ReportUsageInGetStatusResponse

a) Test Purpose: To verify that the service correctly provides status information in a GetStatusResponse. Test Method: Devise and execute a valid GetStatus request for a task / tasking request that was sent to the service previously that has not been finalized too long ago so that the service already discarded status information on that task / tasking request. Verify that the result property of the GetStatusResponse contains a StatusReport as defined in Table 34,

b) Table 35, Table 36 and Table 37 - depending upon the nature of the actual task / tasking request. c) Reference: 7.3.6.4 d) Test Type: Basic 11.1.2.6.8 StatusReport Usage in GetTaskResponse http://www.opengis.net/spec/SPS/2.0/conf/Core/StateHandling/ReportUsageInGetTaskResponse

a) Test Purpose: To verify that the service correctly provides status information in a GetTaskResponse.

Copyright © 2011 Open Geospatial Consortium

203

OGC 09-000 Test Method: Devise and execute a valid GetTask request for a task / tasking request that was sent to the service previously that has not been finalized too long ago so that the service already discarded status information on that task / tasking request. Verify that each task in the GetTaskResponse contains StatusReports as defined in Table 34,

b) Table 35, Table 36 and Table 37 - depending upon the nature of the actual task / tasking request. c) Reference: 7.3.7.4 d) Test Type: Basic 11.1.2.7

Submit

11.1.2.7.1 StatusReport Usage in SubmitResponse http://www.opengis.net/spec/SPS/2.0/conf/Core/Submit/ReportUsageInSubmitResponse

a) Test Purpose: To verify that the service correctly provides status information in a SubmitResponse. b) Test Method: Devise and execute a valid Submit request. Verify that the result property of the SubmitResponse contains a StatusReport as defined in Table 31. c) Reference: 7.3.5.4 d) Test Type: Basic 11.1.2.7.2 Submit operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/Core/Submit/OperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the Submit operation is invoked. b) Test Method: Devise and execute a Submit request. Verify that the service responds with a valid SubmitResponse or exception. c) Reference: 7.3.5 d) Test Type: Basic 11.1.2.7.3 Successful task submission http://www.opengis.net/spec/SPS/2.0/conf/Core/Submit/SuccessfulTaskSubmission

a) Test Purpose: To verify that the service schedules a task if a Submit request is feasible. b) Test Method: Devise and execute a valid Submit request. Verify via the GetStatus / GetTask operation that a task was scheduled with the same task identifier that

204

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

was provided in the SubmitResponse. To do this, verify that the latest status of that task makes correct use of the taskStatus property. c) Reference: 7.3.5, 7.3.1.5 d) Test Type: Basic 11.1.2.8

Result Handling

11.1.2.8.1 DescribeResultAccess operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/Core/ResultHandling/DescribeResultAccessOperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the DescribeResultAccess operation is invoked. b) Test Method: Devise and execute a DescribeResultAccess request. Verify that the service responds with a valid DescribeResultAccessResponse or exception. c) Reference: 7.3.8 d) Test Type: Basic 11.1.2.8.2 Handling of data unavailability http://www.opengis.net/spec/SPS/2.0/conf/Core/ResultHandling/HandlingDataUnavailability

a) Test Purpose: To verify that the service handles data unavailability correctly. b) Test Method: Devise and execute a DescribeResultAccess request for a tasking request that was just accepted. Ensure that the request is made before the task is completed and before it made a DataPublished transition. Verify that the response contains the unavailableCode "DataNotAvailable". c) Reference: 7.3.8.1 d) Test Type: Basic 11.1.2.8.3 Identifiers for references and reference groups http://www.opengis.net/spec/SPS/2.0/conf/Core/ResultHandling/ReferenceAndGroupIdentifiers

a) Test Purpose: To verify that the service assigns identifiers to reference groups and references and that these do not change for as long as the given reference (group) exists. b) Test Method: Devise and execute DescribeResultAccess requests for an accepted task. When a response indicates that data is available, verify that each reference group and the reference(s) it contains have a unique identifier value. Verify that consecutive responses do not contain a reference (group) that has the exact same

Copyright © 2011 Open Geospatial Consortium

205

OGC 09-000

property values as a reference (group) in a previous response but which has a different identifier. c) Reference: 7.3.8.7 d) Test Type: Basic 11.1.2.8.4 Incremental data publication http://www.opengis.net/spec/SPS/2.0/conf/Core/ResultHandling/IncrementalDataPublication

a) Test Purpose: To verify that the service provides new references when it published new data while a task is in execution. b) Test Method: If publish / subscribe functionality is supported by the service, subscribe for DataPublished events. Submit a task that is going to be executed by the service. When the submit request was accepted, devise and execute a DescribeResultAccess request for that task. Whenever a DataPublished event for the task was published, execute another DescribeResultAccess request. Compare the references contained in that response with those of the previous response. Verify that new references have been added by checking for references with new identifier values. c) Reference: 7.3.8.1 d) Test Type: Basic 11.1.2.8.5 Referencing general data services for procedure http://www.opengis.net/spec/SPS/2.0/conf/Core/ResultHandling/ReferencingDataServicesForProcedure

a) Test Purpose: To verify that the service provides references to possible data storage locations / services when DescribeResultAccess with procedure identifier was made. b) Test Method: Devise and execute a DescribeResultAccess request. Verify that the references contained in the response are references to folders / services (as defined in Table 40 and Table 41). c) Reference: 7.3.8.1 d) Test Type: Basic 11.1.2.8.6 Referencing task data http://www.opengis.net/spec/SPS/2.0/conf/Core/ResultHandling/ReferencingTaskData

a) Test Purpose: To verify that the service provides references to the data gathered for a task when DescribeResultAccess with task identifier was made.

206

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

b) Test Method: Devise and execute a DescribeResultAccess request. Verify that the references contained in the response are references as defined in Table 41. c) Reference: 7.3.8.1 d) Test Type: Basic 11.1.2.8.7 Result access information storage http://www.opengis.net/spec/SPS/2.0/conf/Core/ResultHandling/ResultAccessInfoStorage

a) Test Purpose: Verify that the service provides result access information for a task that was in execution at least as long as indicated in its service metadata. b) Test Method: Submit a task that reaches the InExcecution state. c) Create a valid DescribeResultAccess requests for the according task. When the task was finalized, send the request to the service shortly before the point in time that is defined by the updateTime of the status report that documented the transition into the final state plus the "minStatusTime" duration that is stated in the contents section of the service's capabilities document. Verify that the response contains at least one reference group with references or has the unavailableCode "DataServiceUnavailable". d) Reference: 7.3.8.1, 7.3.3.3 e) Test Type: Basic 11.2 Conformance Class – State Logger http://www.opengis.net/spec/SPS/2.0/conf/StateLogger

11.2.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/StateLogger/Capability

a) Test Purpose: Verify that the server implements the State Logger conformance class. b) Test Method: Verify that the server implements the Core conformance class. Verify the conformance tests listed in section 11.2.2 c) Reference: see references in conformance tests d) Test Type: Capability

Copyright © 2011 Open Geospatial Consortium

207

OGC 09-000 11.2.2 Modules with Basic Tests

11.2.2.1

Service Metadata

11.2.2.1.1 Advertising support for status history logging http://www.opengis.net/spec/SPS/2.0/conf/StateLogger/ServiceMetadata/StatusHistorySupportAdvertisement

a) Test Purpose: Verify that the service indicates support for logging of status history in its metadata. b) Test Method: Execute a GetCapabilities request to retrieve the operationsMetadata section. Verify that the "since" parameter is supported for the GetStatus operation listed there. c) Reference: 7.3.2.4.3 d) Test Type: Basic 11.2.2.2

Behavior

11.2.2.2.1 GetStatus with since parameter http://www.opengis.net/spec/SPS/2.0/conf/StateLogger/Behavior/GetStatusSinceParameterHandling

a) Test Purpose: Verify that the service handles GetStatus requests with "since" parameter correctly. b) Test Method: Devise a valid GetStatus request for a task / tasking request that has already made more than one state transition. Choose a point in time that is between the updateTime of the first state transition and the updateTime of the following state transition. Set the "since" parameter in the GetStatus request to that point in time. Send the request to the service. Verify that the response contains information on all state transitions made by the task / tasking request except the first one. Likewise, create and send a GetStatus request with "since" parameter value being a point in time shortly after the updateTime of the last state transition of a finalized task / tasking request (for accepted Submit and Reserve requests, the finalization of the resulting scheduled task matters). Verify that the response does not contain any status information. c) Reference: 7.3.6 d) Test Type: Basic 11.2.2.2.2 Status history provisioning http://www.opengis.net/spec/SPS/2.0/conf/StateLogger/Behavior/StatusHistoryProvisioning

208

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

a) Test Purpose: Verify that the service provides complete state history for all tasks / tasking requests. b) Test Method: Devise a valid request for all the tasking operations supported by the service (Submit, GetFeasibility, Update, Reserve). Send those to the service. Create valid GetTask requests for the according tasks / tasking requests and send them to the service. Also create valid GetStatus request with since parameter value that is well before the time that the initial tasking request was made. Verify that each response contains information on all the state transitions made by the request / task so far. If information on state changes of a task can be retrieved by other means, for example through notifications, verify that this information matches the one retrieved via the GetStatus / GetTask operations. c) Reference: 7.3.6, 7.3.7 d) Test Type: Basic 11.2.2.2.3 Status history storage http://www.opengis.net/spec/SPS/2.0/conf/StateLogger/Behavior/StatusHistoryStorage

a) Test Purpose: Verify that the service provides complete state history for all finalized tasks / tasking requests as long as indicated in its service metadata. b) Test Method: Devise a valid request for all the tasking operations supported by the service (Submit, GetFeasibility, Update, Reserve). Send those to the service. Create valid GetTask requests for the according tasks / tasking requests when they were finalized. Also create valid GetStatus requests with since parameter value that is well before the time that the initial tasking request was made. Send them to the service shortly before the point in time that is defined by the updateTime of the status report that documented the transition into the final state plus the "minStatusTime" duration that is stated in the contents section of the service's capabilities document. Verify that each response contains information on all the state transitions made by the request / task. c) Reference: 7.3.3.3 d) Test Type: Basic 11.3 Conformance Class – Reservation Manager http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager

11.3.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager/Capability

Copyright © 2011 Open Geospatial Consortium

209

OGC 09-000

a) Test Purpose: Verify that the server implements the Reservation Manager conformance class. b) Test Method: Verify that the server implements the Core conformance class. Verify the conformance tests listed in section 11.3.2 c) Reference: see references in conformance tests d) Test Type: Capability 11.3.2 Modules with Basic Tests

11.3.2.1

Structure

11.3.2.1.1 Confirm operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager/Structure/ConfirmOperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the Confirm operation is invoked. b) Test Method: Devise and execute a Confirm request. Verify that the service responds with a valid ConfirmResponse or exception. c) Reference: 7.3.10 d) Test Type: Basic 11.3.2.1.2 Reserve operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager/Structure/ReserveOperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the Reserve operation is invoked. b) Test Method: Devise and execute a Reserve request. Verify that the service responds with a valid ReserveResponse or exception. c) Reference: 7.3.9 d) Test Type: Basic 11.3.2.2

Service Metadata

11.3.2.2.1 Operations listed in Capabilities http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager/ServiceMetadata/OperationsListing

a) Test Purpose: Verify that the Reserve and Confirm operations are listed as supported operations in the service's metadata.

210

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

b) Test Method: Execute a GetCapabilities request to retrieve the operationsMetadata section. Verify that the Reserve and Confirm operations are listed there as defined in clause 7.3.2.4.2. c) Reference: 7.3.2.4.2 d) Test Type: Basic 11.3.2.3

Behavior

11.3.2.3.1 Handling of incorrect expiration time http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager/Behavior/IncorrectExpirationTime

a) Test Purpose: To verify that the service rejects reservation requests with incorrect expiration time. b) Test Method: Devise a Reserve request with valid tasking parameters and with an expiration time in the past. Execute the request. Verify that the response has requestStatus "Rejected". c) Reference: 7.3.9.1 d) Test Type: Basic 11.3.2.3.2 Reservation confirmation http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager/Behavior/ReservationConfirmation

a) Test Purpose: To verify that the service correctly handles the confirmation of a reserved task. b) Test Method: Given a reserved task that has not expired yet. Confirm the task. If the response has requestStatus rejected, ensure that the task has taskStatus "Failed" (get the status of the task e.g. via GetStatus operation). Otherwise, ensure that task status is either InExecution, Completed, Cancelled or Failed (or substate thereof). Note: further checks would be possible if "State Logger" conformance class is implemented. c) Reference: 7.3.10 d) Test Type: Basic 11.3.2.3.3 Reservation expiration http://www.opengis.net/spec/SPS/2.0/conf/ReservationManager/Behavior/ReservationExpiration

Copyright © 2011 Open Geospatial Consortium

211

OGC 09-000

a) Test Purpose: To verify that the service correctly handles expiration of a reserved task. b) Test Method: Devise and execute a valid Reserve request that will be accepted. Get the expirationTime of the reservation (e.g. via GetStatus). Do NOT confirm the reservation. After the expirationTime has passed, get the latest status of the task. Verify that the status is encoded as a reservation report. Verify that the updateTime of the reservation report is the same as the expirationTime provided in the report and provided in previous reservation reports for that task. Verify that the event is "ReservationExpired" and that the taskStatus is "Expired". Verify that a Confirm of an "Expired" task is rejected by the service. c) Reference: 7.3.9, 7.3.6.4, 7.3.10 d) Test Type: Basic 11.4 Conformance Class – Task Canceller http://www.opengis.net/spec/SPS/2.0/conf/TaskCanceller

11.4.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/TaskCanceller/Capability

a) Test Purpose: Verify that the server implements the Task Canceller conformance class. b) Test Method: Verify that the server implements the Core conformance class. Verify the conformance tests listed in section 11.4.2 c) Reference: see references in conformance tests d) Test Type: Capability 11.4.2 Modules with Basic Tests

11.4.2.1

Structure

11.4.2.1.1 Cancel operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/TaskCanceller/Structure/CancelOperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the Cancel operation is invoked. b) Test Method: Devise and execute a Cancel request. Verify that the service responds with a valid CancelResponse or exception. c) Reference: 7.3.13

212

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

d) Test Type: Basic 11.4.2.2

Behavior

11.4.2.2.1 Cancellation handling http://www.opengis.net/spec/SPS/2.0/conf/TaskCanceller/Behavior/CancellationHandling

a) Test Purpose: To verify that the service handles task cancellations correctly. b) Test Method: Given a scheduled task that is not finalized yet. Devise and execute a Cancel request for that task. If the request was rejected, verify that the status of the task is not "Cancelled". Otherwise verify that the status is "Cancelled". c) Reference: 7.3.13.1 d) Test Type: Basic 11.4.2.3

Service Metadata

11.4.2.3.1 Operation listed in Capabilities http://www.opengis.net/spec/SPS/2.0/conf/TaskCanceller/ServiceMetadata/OperationListing

a) Test Purpose: Verify that the Cancel operation is listed as supported operation in the service's metadata. b) Test Method: Execute a GetCapabilities request to retrieve the operationsMetadata section. Verify that the Cancel operation is listed there as defined in clause 7.3.2.4.2. c) Reference: 7.3.2.4.2 d) Test Type: Basic 11.5 Conformance Class – Feasibility Controller http://www.opengis.net/spec/SPS/2.0/conf/FeasibilityController

11.5.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/FeasibilityController/Capability

a) Test Purpose: Verify that the server implements the Feasibility Controller conformance class. b) Test Method: Verify that the server implements the Core conformance class. Verify the conformance tests listed in section 11.5.2

Copyright © 2011 Open Geospatial Consortium

213

OGC 09-000

c) Reference: see references in conformance tests d) Test Type: Capability 11.5.2 Modules with Basic Tests

11.5.2.1

Structure

11.5.2.1.1 GetFeasibility operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/FeasibilityController/Structure/GetFeasibilityOperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the GetFeasibility operation is invoked. b) Test Method: Devise and execute a GetFeasibility request. Verify that the service responds with a valid GetFeasibilityResponse or exception. c) Reference: 7.3.11 d) Test Type: Basic 11.5.2.2

Service Metadata

11.5.2.2.1 Operation listed in Capabilities http://www.opengis.net/spec/SPS/2.0/conf/FeasibilityController/ServiceMetadata/OperationListing

a) Test Purpose: Verify that the GetFeasibility operation is listed as supported operation in the service's metadata. b) Test Method: Execute a GetCapabilities request to retrieve the operationsMetadata section. Verify that the GetFeasibility operation is listed there as defined in clause 7.3.2.4.2. c) Reference: 7.3.2.4.2 d) Test Type: Basic 11.6 Conformance Class – Task Updater http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater

11.6.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/Capability

a) Test Purpose: Verify that the server implements the Task Updater conformance class.

214

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

b) Test Method: Verify that the server implements the Core conformance class. Verify the conformance tests listed in section 11.6.2 c) Reference: see references in conformance tests d) Test Type: Capability 11.6.2 Modules with Basic Tests

11.6.2.1

Structure

11.6.2.1.1 Update operation facet validity http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/Structure/UpdateOperationFacetValidity

a) Test Purpose: To verify that the service provides the correct response when the Update operation is invoked. b) Test Method: Devise and execute an Update request. Verify that the service responds with a valid UpdateResponse or exception. c) Reference: 7.3.12 d) Test Type: Basic 11.6.2.2

Behavior

11.6.2.2.1 Handling of updatable DataArray http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/Behavior/UpdatableDataArray

a) Test Purpose: To verify that the service correctly flags the content of an updatable DataArray b) Test Method: Devise and execute a DescribeTasking request for each procedure. Verify that each tasking parameter description where a DataArray is contained, the elementType description in that array is not flagged as updatable (either the DataArray is updatable in general or it is not; sub components of the component that is the elementType description may be flagged to be updatable). c) Reference: 7.3.12.1 d) Test Type: Basic 11.6.2.2.2 Handling of updatable DataRecord / DataChoice http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/Behavior/UpdatableDataRecordAndDataChoice

a) Test Purpose: To verify that the service correctly sets the updatable flag on DataRecords and DataChoices

Copyright © 2011 Open Geospatial Consortium

215

OGC 09-000

b) Test Method: Devise and execute a DescribeTasking request for each procedure. Verify that each tasking parameter description where a DataRecord/DataChoice is updatable, at least one field/item is updatable as well. c) Reference: 7.3.12.1 d) Test Type: Basic 11.6.2.2.3 Handling update not supported for a given procedure http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/Behavior/UpdateNotSupportedForProcedure

a) Test Purpose: To verify that a service which in general supports the Update operation handles Update requests for tasks of a procedure that has no updatable tasking parameters correctly. b) Test Method: Devise and execute a Submit request for a procedure where the tasking parameter description (retrieved via DescribeTasking) has no updatable parameters. When the task was accepted, devise and execute an Update request for that task, with the same tasking parameters as those used in the Submit request. Verify that the service returns an UpdateResponse where the requestStatus is set to 'Rejected'. c) Reference: 7.3.12.1 d) Test Type: Basic 11.6.2.2.4 New identifier assignment http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/Behavior/IdentifierAssignment

a) Test Purpose: To verify that the service assigns a new identifier to an incoming Update request and does not mix it up with the task identifier provided in the request. b) Test Method: Devise and execute an Update request. Verify that the task property in the status report of the UpdateResponse does not have the same value as the task property in the Update request. c) Reference: 7.3.12.1 d) Test Type: Basic 11.6.2.2.5 State transition resulting of task update http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/Behavior/StateTransitions

a) Test Purpose: To verify that the service correctly handles state transitions of a task resulting from an update request to it.

216

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

b) Test Method: Devise and execute an Update request targetting a scheduled task. Get the updateTime from the status report that informs about the acceptance / rejection of the update request. If the request was accepted, verify that a status report exists for the updated task with the same updateTime and event "TaskUpdated". Otherwise (the request was rejected), verify that no such status report exists for the task that was intended to be updated. c) Reference: 7.3.12.1 d) Test Type: Basic 11.6.2.2.6 Structure of tasking parameters for Update http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/Behavior/HandlingTaskingParametersForUpdate

a) Test Purpose: To verify that tasking parameters used in an Update request are structured correctly. b) Test Method: Create a task so that it is InExecution (or Reserved, if the Reserve operation is supported). Remove all non-updatable components from the tasking parameter description that was provided by the service in a DescribeTasking request for the procedure associated with the task. Non-updatable components are those components in the description that have the property 'updatable' explicitly set to false. If a non-updatable component is contained in a field/item of a DataRecord/DataChoice then completely remove that field/item. Devise and execute Update requests with tasking parameters structured according to the resulting description. Verify that the service does not throw an InvalidParameterValue exception with locator 'taskingParameters'. c) Reference: 7.3.12.1 d) Test Type: Basic 11.6.2.3

Service Metadata

11.6.2.3.1 Operation listed in Capabilities http://www.opengis.net/spec/SPS/2.0/conf/TaskUpdater/ServiceMetadata/OperationListing

a) Test Purpose: Verify that the Update operation is listed as supported operation in the service's metadata. b) Test Method: Execute a GetCapabilities request to retrieve the operationsMetadata section. Verify that the Update operation is listed there as defined in clause 7.3.2.4.2.

Copyright © 2011 Open Geospatial Consortium

217

OGC 09-000

c) Reference: 7.3.2.4.2 d) Test Type: Basic 11.7 Conformance Class – Basic PubSub http://www.opengis.net/spec/SPS/2.0/conf/BasicPubSub

11.7.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/BasicPubSub/Capability

a) Test Purpose: Verify that the server implements the Basic PubSub conformance class. b) Test Method: Verify that the server implements the Core conformance class. Verify the conformance tests listed in section 11.7.2 c) Reference: see references in conformance tests d) Test Type: Capability 11.7.2 Modules with Basic Tests

11.7.2.1

Event Publication

11.7.2.1.1 SPS event encoding http://www.opengis.net/spec/SPS/2.0/conf/BasicPubSub/EventPublication/Encoding

a) Test Purpose: Verify that events are properly encoded. b) Test Method: Subscribe for all events published by the service. Devise tasking requests that cause publication of according events. For each event received, check that it is encoded as defined in Table 64. c) Reference: 8.2, Table 64 d) Test Type: Basic 11.7.2.1.2 SPS event publication http://www.opengis.net/spec/SPS/2.0/conf/BasicPubSub/EventPublication/Publication

a) Test Purpose: Verify that the service publishes the mandatory SPS events. b) Test Method: Subscribe for all events published by the service. Devise tasking requests that cause publication of according events. At least the SubmissionCompleted / TaskCompleted event should be published by the service for a successfully submitted and completed task. If the service implements the

218

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

state logger conformance class, i.e. logs all state transitions of a tasking request / task, do the following: • once a tasking request / task was finalized, get all state information for it via the GetStatus operation • check that the events published by the service for this tasking request / task are in line with the state transitions documented in the GetStatus response. • Otherwise check at least that the final state is published correctly. c) Reference: 8.2, Table 64 d) Test Type: Basic 11.7.2.2

Notification Service Metadata

11.7.2.2.1 Notifications section http://www.opengis.net/spec/SPS/2.0/conf/BasicPubSub/ServiceMetadata/NotificationsSection

a) Test Purpose: Verify that the service supports the notifications section in the capabilities document. b) Test Method: Create a GetCapabilities request to get the capabilities document with the notifications section and check that it is implemented correctly. c) Reference: 7.3.2, OGC 09-001 clause 8 d) Test Type: Basic 11.8 Conformance Class – Channel Based PubSub http://www.opengis.net/spec/SPS/2.0/conf/ChannelBasedPubSub

11.8.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/ChannelBasedPubSub/Capability

a) Test Purpose: Verify that the server implements the Channel Based PubSub conformance class. b) Test Method: Verify that the server implements the Basic PubSub conformance class. Verify the conformance tests listed in section 11.8.2 c) Reference: see references in conformance tests d) Test Type: Capability

Copyright © 2011 Open Geospatial Consortium

219

OGC 09-000 11.8.2 Modules with Basic Tests

11.8.2.1

Channel based Event Publication

11.8.2.1.1 Correct channel assignments http://www.opengis.net/spec/SPS/2.0/conf/ChannelBasedPubSub/ChannelEventPublication/ChannelAssignments

a) Test Purpose: Verify that published events are assigned to correct channels. b) Test Method: Create one subscription targetting each of the SPS channels contained in the service's topic set. Devise tasking requests that cause publication of events on each of these channels. For each subscription, check that those and only those events are received that are to be published on the channel associated with that subscription according to Table 67. c) Reference: 8.3 d) Test Type: Basic 11.8.2.2

Channel based Notification Service Metadata

11.8.2.2.1 Support of Topic Dialect http://www.opengis.net/spec/SPS/2.0/conf/ChannelBasedPubSub/ServiceMetadata/TopicDialectSupport

a) Test Purpose: Verify that the service supports at least one topic expression dialect. b) Test Method: Devise and send a GetCapabilities request to retrieve the service's notifications metadata. Inspect which filter dialects are supported. Ensure that at least one topic expression dialect is listed. c) Reference: 8.3, OGC 09-001 clause 8 d) Test Type: Basic 11.8.2.2.2 Topic Set Contents http://www.opengis.net/spec/SPS/2.0/conf/ChannelBasedPubSub/ServiceMetadata/TopicSetContents

a) Test Purpose: Verify that the topic set provided by the service contains the required SPS topics. b) Test Method: Devise and send a GetCapabilities request to retrieve the service's notifications metadata. Retrieve the topic set from that metadata and inspect it. Ensure that all the mandatory topics listed in Table 67 are marked as topics in this topic set. c) Reference: 8.3

220

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

d) Test Type: Basic 11.9 Conformance Class – XML Encoding http://www.opengis.net/spec/SPS/2.0/conf/XMLEncoding

11.9.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/XMLEncoding/Capability

a) Test Purpose: Verify that the server implements the XML Encoding conformance class. b) Test Method: Verify that the server implements the following conformance classes http://www.opengis.net/spec/SWE/2.0/conf/xsd-simple-components, http://www.opengis.net/spec/SWE/2.0/conf/xsd-simple-encodings, http://www.opengis.net/spec/SWES/2.0/conf/XMLEncoding. Verify the conformance tests listed in section 11.9.2 c) Reference: see references in conformance tests d) Test Type: Capability 11.9.2 Modules with Basic Tests

11.9.2.1

Validation

11.9.2.1.1 XML Encoding Validity http://www.opengis.net/spec/SPS/2.0/conf/XMLEncoding/Validation/XMLEncoding

a) Test Purpose: Verify that XML implementations of the conceptual types defined in the specification are valid according to their XML Schema implementation. b) Test Method: For all XML instance documents received from the service that are in the namespace http://www.opengis.net/sps/2.0, verify that they are valid according to their XML Schema definition listed in Table 82. Note: the sps.xsd can be used for validating any such XML instance against its schema definition. c) Reference: 12 d) Test Type: Basic 11.9.2.1.2 XML Validation Exception Reporting http://www.opengis.net/spec/SPS/2.0/conf/XMLEncoding/Validation/ExceptionReporting

a) Test Purpose: Verify that the service sends an exception with appropriate code if it received an invalid request. Copyright © 2011 Open Geospatial Consortium

221

OGC 09-000

b) Test Method: For all SPS operations supported by the service, create an XML request instance that is invalid according to its schema definition outlined in Table 82 and send it to the service. Verify that the service returns an exception with code InvalidRequest. c) Reference: 7.2, 12 d) Test Type: Basic 11.10 Conformance Class – SOAP http://www.opengis.net/spec/SPS/2.0/conf/SOAP

11.10.1 Capability Test http://www.opengis.net/spec/SPS/2.0/conf/SOAP/Capability

a) Test Purpose: Verify that the server implements the SOAP conformance class. b) Test Method: Verify that the server implements the XML Encoding conformance class. Do so by checking that the Body element in SOAP messages sent to the service for invoking an SPS operation contains a valid XML representation of the according operation request. Verify that the server implements the http://www.opengis.net/spec/SWES/2.0/conf/SOAPBinding conformance classes. Verify the conformance tests listed in section 11.10.2. c) Reference: see references in conformance tests d) Test Type: Capability 11.10.2 Modules with Basic Tests

11.10.2.1

Action URIs

11.10.2.1.1Asynchronous request response http://www.opengis.net/spec/SPS/2.0/conf/SOAP/ActionURIs/AsyncRequestResponse

a) Test Purpose: To verify that WS-Addressing is used to enable asynchronous request / response. b) Test Method: Get the service metadata (WSDL and / or Capabilities document). Ensure that the service metadata does not indicate support for any asynchronous request response realization technique that could be used by clients other than WS-Addressing. c) Reference: 9.5 d) Test Type: Basic

222

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

11.10.2.1.2Operation Actions http://www.opengis.net/spec/SPS/2.0/conf/SOAP/ActionURIs/OperationActions

a) Test Purpose: To verify that the service recognizes and uses correct action URIs for operation requests and responses as well as notifications as defined in this standard. b) Test Method: Depending upon the SOAP binding available at the service, execute a request for each SPS operation supported by the service. Verify that the service uses the correct SOAP action as defined in Table 68 or uses an empty action in its response. If WS-Addressing is used, verify that the service uses the correct WSAddressing action URIs as defined in Table 68. c) Reference: 9.3 d) Test Type: Basic 11.10.2.2

Exception Handling

11.10.2.2.1Usage of SOAP faults http://www.opengis.net/spec/SPS/2.0/conf/SOAP/ExceptionHandling/SOAPFaultUsage

a) Test Purpose: Verify that SOAP faults for the SPS operations are encoded correctly. Test Method: For each SPS operation supported by the service, create one SOAP encoded request that causes an exception with certain code. For each operation, repeat this so that one test request for all applicable exception codes (as listed in b) Figure 12) is available. Send the requests to the service. Verify that the service returns a SOAP fault as defined in OGC 09-001 clause 19.2 and clause 9.2 in this standard. c) Reference: 9.2, OGC 09-001 clause 19.2 d) Test Type: Basic 11.10.2.3

Service Metadata

11.10.2.3.1SOAP operation encoding advertised http://www.opengis.net/spec/SPS/2.0/conf/SOAP/ServiceMetadata/OperationEncodingAdvertisement

a) Test Purpose: Verify that the service indicates that it supports the SOAP binding. b) Test Method: Devise a GetCapabilities request and send it to the service to retrieve the operationsMetadata section of the capabilities document. Verify that a "PostEncoding" constraint for the HTTP POST transfer of all operations exists that has the value "SOAP". Copyright © 2011 Open Geospatial Consortium

223

OGC 09-000

c) Reference: 7.3.2.4.4 d) Test Type: Basic

224

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

12 Annex B - XML Schema Documents (normative) In addition to this document, this standard includes several normative XML Schema Documents. These XML Schema Documents are bundled in a zip file with the present document. After OGC acceptance of a version 2.0 of this standard, these XML Schema Documents will also be posted online at the URL http://schemas.opengis.net/sps/2.0. In the event of a discrepancy between the bundled and online versions of the XML Schema Documents, the online files shall be considered authoritative. The data types specified in this standard are contained in thirteen packages which themselves are children of the Sensor Planning Service package (see clause 7.3). The UML model has been mapped to its XML Schema encoding using the rules described in clause 24 of [OGC 09-001], resulting in the following XML Schema documents: sps.xsd (includes the other schema through xs:include statements) spsCancel.xsd spsCommon.xsd spsConfirm.xsd spsContents.xsd spsDescribeResultAccess.xsd spsDescribeTasking.xsd spsGetCapabilities.xsd spsGetFeasibility.xsd spsGetStatus.xsd spsGetTask.xsd spsReserve.xsd spsSubmit.xsd spsUpdate.xsd

Copyright © 2011 Open Geospatial Consortium

225

OGC 09-000

Requirement http://www.opengis.net/spec/SPS/2.0/req/XML/GeneralEncodingRule REQ 122.

The XML encoding of the conceptual types defined in this standard shall be as defined by the XML Schema files listed and referenced in clause 12. More specifically, the XML encoding of each conceptual type shall be valid against the XML Schema definition of the according mapping as defined in Table 82.

The following table provides an overview how each of the conceptual model types defined by this standard has been realized in the XML Schema implementation. Table 82 — XML Schema implementation of types defined by the SPS conceptual model UML class

object element

type

property type

SPS Common Package StatusReport

sps:StatusReport

sps:StatusReportType

sps:StatusReportPropertyType

Task

sps:Task

sps:TaskType

sps:TaskPropertyType

Alternative

sps:Alternative

sps:AlternativeType

sps:AlternativePropertyType

TaskingResponse

sps:TaskingResponse

sps:TaskingResponseType

sps:TaskingResponsePropertyType

TaskingRequest

sps:TaskingRequest

sps:TaskingRequestType

sps:TaskingRequestPropertyType

ParameterData

sps:ParameterData

sps:ParameterDataType

sps:ParameterDataPropertyType

TaskingRequestStatus Code

-

sps:TaskingRequestStatusCode Type

-

TaskStatusCode

-

sps:TaskStatusCodeType

-

EventCode

-

sps:EventCodeType

-

SPS Cancel Package Cancel

sps:Cancel

sps:CancelType

sps:CancelPropertyType

CancelResponse

sps:CancelResponse

sps:CancelResponseType

sps:CancelResponsePropertyType

SPS Confirm Package Confirm

sps:Confirm

sps:ConfirmType

sps:ConfirmPropertyType

ConfirmResponse

sps:ConfirmResponse

sps:ConfirmResponseType

sps:ConfirmResponsePropertyType

226

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

UML class

object element

type

property type

SPS Contents Package SensorOffering

sps:SensorOffering

sps:SensorOfferingType

sps:SensorOfferingPropertyType

SPSContents

sps:SPSContents

sps:SPSContentsType

sps:SPSContentsPropertyType

PointOrPolygon

sps:PointOrPolygon (group)

-

sps:PointOrPolygonPropertyType

SPS DescribeResultAccess Package DataAvailable

sps:DataAvailable

sps:DataAvailableType

sps:DataAvailablePropertyType

DescribeResultAccess

sps:DescribeResultAccess

sps:DescribeResultAccessType

sps:DescribeResultAccessPropertyT ype

DescribeResultAccess Response

sps:DescribeResultAccessRe sponse

sps:DescribeResultAccessResp onseType

sps:DescribeResultAccessResponse PropertyType

DataNotAvailable

sps:DataNotAvailable

sps:DataNotAvailableType

sps:DataNotAvailablePropertyType

TaskOrProcess

sps:TaskOrProcess (group)

-

sps:TaskOrProcessPropertyType

AvailableOrNot

sps:AvailableOrNot (group)

sps:AvailableOrNotType

sps:AvailableOrNotPropertyType

UnavailableCode

-

sps:UnavailableCodeType

-

SPS DescribeTasking Package DescribeTaskingResp onse

sps:DescribeTaskingRespons e

sps:DescribeTaskingResponseT ype

sps:DescribeTaskingResponsePrope rtyType

DescribeTasking

sps:DescribeTasking

sps:DescribeTaskingType

sps:DescribeTaskingPropertyType

SPS GetCapabilities Package GetCapabilities

sps:GetCapabilities

sps:GetCapabilitiesType

sps:GetCapabilitiesPropertyType

Capabilities

sps:Capabilities

sps:CapabilitiesType

sps:CapabilitiesPropertyType

SPS GetFeasibility Package GetFeasibilityRespons e

sps:GetFeasibilityResponse

sps:GetFeasibilityResponseTyp e

sps:GetFeasibilityResponseProperty Type

GetFeasibility

sps:GetFeasibility

sps:GetFeasibilityType

sps:GetFeasibilityPropertyType

SPS GetStatus Package GetStatusResponse

sps:GetStatusResponse

sps:GetStatusResponseType

sps:GetStatusResponsePropertyTyp e

GetStatus

sps:GetStatus

sps:GetStatusType

sps:GetStatusPropertyType

Copyright © 2011 Open Geospatial Consortium

227

OGC 09-000

UML class

object element

type

property type

SPS GetTask Package GetTask

sps:GetTask

sps:GetTaskType

sps:GetTaskPropertyType

GetTaskResponse

sps:GetTaskResponse

sps:GetTaskResponseType

sps:GetTaskResponsePropertyType

SPS Reserve Package ReservationReport

sps:ReservationReport

sps:ReservationReportType

sps:ReservationReportPropertyType

ReserveResponse

sps:ReserveResponse

sps:ReserveResponseType

sps:ReserveResponsePropertyType

Reserve

sps:Reserve

sps:ReserveType

sps:ReservePropertyType

SPS Submit Package SubmitResponse

sps:SubmitResponse

sps:SubmitResponseType

sps:SubmitResponsePropertyType

Submit

sps:Submit

sps:SubmitType

sps:SubmitPropertyType

SPS Update Package UpdateResponse

sps:UpdateResponse

sps:UpdateResponseType

sps:UpdateResponsePropertyType

Update

sps:Update

sps:UpdateType

sps:UpdatePropertyType

228

Copyright © 2011 Open Geospatial Consortium

OGC 09-000

13 Annex C - Revision history Date

Release

15.08.2009 0.0.1 18.11.2009 0.1.0

04.12.2009 0.2.0

17.12.2009 0.2.1 10.06.2010 0.3.0 10.08.2010 0.4.0 20.08.2010 0.5.0 31.08.2010 0.6.0 30.09.2010 0.7.0 31.01.2011 0.8.0 21.01.2011 2.0

Primary clauses modified

Editor Ingo Simonis Ingo Simonis/Joh annes Echterhoff Ingo Simonis/Joh annes Echterhoff Johannes Echterhoff Ingo Simonis Johannes Echterhoff Ingo Simonis Johannes Echterhoff Johannes Echterhoff Ingo Simonis Carl Reed

Description

all throughout

initial version changes for RFC draft

all

final RFC draft

all

final changes to RFC document discussed at Dec TC meeting Integration of RFC comments and discussion Integration of latest discussion and conformance classes Integration of requirements according to modular spec model revised tests

all all all Annex A throughout Future work Various

Copyright © 2011 Open Geospatial Consortium

included comments received during final SWG review phase added Prepare for publication

229

OGC 09-000

Bibliography

[1]

230

OpenGIS® Implementation Specification, Sensor Planning Service, OGC document 07-014r3

Copyright © 2011 Open Geospatial Consortium

Related documents

Record · ID 601189 · SHA-256 086b5232ac36fb0d
Conceptio Open Knowledge Archive — every document is proof-bundled with source, license, and retrieval metadata.