i. Abstract
Publish/Subscribe 1.0 is an interface specification that supports the core components and concepts of the Publish/Subscribe message exchange pattern with OGC Web Services. The Publish/Subscribe pattern complements the Request/Reply pattern historically specified by many OGC Web Services. This specification may be used either in concert with, or independently of, existing OGC Web Services to publish data of interest to subscribers.
Publish/Subscribe 1.0 primarily addresses subscription management capabilities such as creating a subscription, renewing a subscription, and unsubscribing. However, this standard also allows Publish/Subscribe services to advertise and describe the supported message delivery protocols such as SOAP messaging, ATOM, and AMQP. Message delivery protocols should be considered to be independent of the Publish/Subscribe 1.0 standard. Therefore OGC Publish/Subscribe only includes metadata relating to message delivery protocols in sufficient detail to allow for different implementations of Publish/Subscribe 1.0 to interoperate.
This specification defines an extension to the OGC Publish/Subscribe (PubSub) 1.0 Core to allow for Publish/Subscribe communications usingthe SOAP protocol.
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
Ogcdoc pubsub core standard soap soap protocol binding
iii. Preface
The OGC® Abstract Specification does not require any changes to accommodate the technical contents of this document.
No future work currently anticipated.
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.
iv. Submitting organizations
The following organizations submitted this Document to the Open Geospatial Consortium Inc.
- National Center for Atmospheric Research (NCAR)
- National Research Council of Italy (CNR)
v. Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name | Representing | OGC member |
---|---|---|
Aaron Braeckel | NCAR | Yes |
Lorenzo Bigagli | CNR | Yes |
1. Scope
This OGC standard defines core concepts and mechanisms for enabling the Publish/Subscribe messaging pattern with OGC Web Services using the SOAP protocol. This standard utilizes core concepts and mechanisms from the OGC® Publish/Subscribe Interface Standard 1.0 Core.
This standard does not address access control.
2. Conformance
This OGC interface standard defines conformance classes for Publish/Subscribe behaviour with a SOAP protocol binding, as shown in Table 1. Requirements for the following standardization target types are considered (described further in Clause 4):
· Publisher – an entity that can be used to manage subscriptions.
This document establishes several requirements classes shown below in Table 1. Requirements and conformance test URIs defined in this document are relative to http://www.opengis.net/spec/pubsub/1.0/.
According to the target type hierarchy, this specification defines the following conformance levels:
Conformance Class Name | Conformance Target | Operation or behavior | Conformance Class URI |
---|---|---|---|
SOAP Basic Receiver |
Receiver |
The Receiver shall implement the Basic Receiver conformance class from Publish/Subscribe Core.
The Receiver shall also implement the following operation from the WS-BaseNotification NotificationConsumer interface:
· Notify |
/conf/soap/basic-receiver |
SOAP Basic Publisher |
Publisher |
The Publisher shall implement the Basic Publisher conformance class from Publish/Subscribe Core.
The Publisher shall also implement the following operations from the WS-BaseNotification NotificationProducer interface:
· Subscribe
The Publisher shall also implement the following operations from the WS-BaseNotification Base SubscriptionManager interface: · Renew · Unsubscribe |
/conf/soap/basic-publisher |
SOAP Standalone Publisher |
Publisher |
The Publisher shall implement the SOAP Basic Publisher conformance
class. · GetCapabilities · GetSubscription |
/conf/soap/standalone-publisher |
SOAP Pausable Publisher |
Publisher |
The Publisher shall implement the SOAP Basic Publisher conformance class, and the following operations from the WS-BaseNotification PausableSubscriptionManager interface:
· PauseSubscription · ResumeSubscription |
/conf/soap/pausable-publisher |
SOAP Message Batching Publisher |
Publisher |
The Publisher
shall implement the SOAP Basic Publisher conformance class. |
/conf/soap/message-batching-publisher |
SOAP Heartbeat Publisher |
Publisher |
The Publisher
shall implement the SOAP Basic Publisher conformance class. |
/conf/soap/heartbeat-publisher |
SOAP Brokering Publisher |
Publisher |
The Publisher
shall implement the SOAP Standalone Publisher conformance class. · RegisterPublisher · RemovePublisher · GetPublisher
|
/conf/soap/brokering-publisher |
SOAP Publication Manager |
Publisher |
The Publisher
shall implement the SOAP Basic Publisher conformance class. · CreatePublication · RemovePublication |
/conf/soap/publication-manager |
SOAP HTTP Delivery Publisher |
Publisher |
The Publisher shall implement the SOAP Basic Publisher conformance class.
The publisher shall implement message delivery (notification) by initiating HTTP POST with SOAP/XML message delivery to SOAP endpoints that implement the WS-BaseNotification NotificationConsumer interface. |
/conf/soap/http-delivery-publisher |
SOAP Reliable Publisher |
Publisher |
The Publisher shall implement the SOAP Basic Publisher conformance class.
The Publisher shall also implement the following operations from the [OASIS WS-ReliableMessaging] interface:
· CreateSequence · CloseSequence · TerminateSequence |
/conf/soap/reliable-publisher |
Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site[1].
All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.
3. References
This OGC Publish/Subscribe 1.0 SOAP Protocol Binding standard consists of the present document and an XML Schema.
The complete OGC Publish/Subscribe 1.0 specification is identified by OGC URI http://www.opengis.net/spec/pubsub/1.0. It is available for download from http://www.opengeospatial.org/standards/pubsub. The XML Schema is posted on-line at http://schemas.opengis.net/pubsub/1.0 as part of the OGC schema repository. In the event of a discrepancy between this document and schema repository versions of the XML Schema files, the schema repository shall be considered authoritative.
The following normative documents contain provisions, which, 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/TS 19103:2005, Geographic information — Conceptual schema language
- OGC 06-121r3, OGC Web Services Common Specification, OGC® Implementation Standard (9 February 2009)
- W3C XML Namespaces, Namespaces in XML, W3C Recommendation (14 January 1999)
- W3C XML Schema Part 1, XML Schema Part 1: Structures, W3C Recommendation (2 May 2001)
- W3C XML Schema Part 2, XML Schema Part 2: Datatypes, W3C Recommendation (2 May 2001).
- W3C WS-Addressing Core, Web Services Addressing 1.0 – Core, W3C Recommendation (9 May 2006)
- OASIS WS-BaseNotification, Web Services Base Notification 1.3, OASIS Standard (1 October 2006)
- OASIS WS-BrokeredNotification, Web Services Brokered Notification 1.3, OASIS Standard (1 October 2006)
- W3C SOAP, Simple Object Access Protocol (SOAP) 1.2, W3C Note (27 April 2007)
- W3C WSDL, Web Services Description Language (WSDL) 1.1, W3C Note (15 Mar 2001)
- IETF RFC 2616, Hypertext Transfer Protocol – HTTP/1.1, IETF Request for Comments (June 1999)
- OGC 13-131, OGC Publish/Subscribe 1.0 Core, OGC® Implementation Standard
- OASIS WS-BaseFaults, Web Services Base Faults 1.2, OASIS Standard (1 April 2006)
- OASIS WS-ReliableMessaging, Web Services Reliable Messaging 1.2 (2 February 2009)
4. Terms and Definitions
This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], 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.
This document primarily uses terms and definitions from OGC Publish/Subscribe Core. The terms and definitions given in the other normative references also apply.
- 4.1 Reliable Publisher
-
A publisher of messages that offers capabilities to detect and recover from message delivery losses, whether caused by network failures, software failures, hardware failures, or other causes.
5. Conventions
5.1 Abbreviations
In this document the following abbreviations and acronyms are used or introduced:
HTTP Hypertext Transfer Protocol
HTTPS Secure Hypertext Transfer Protocol
OGC Open Geospatial Consortium
OMG Object Management Group
PubSub Publish/Subscribe
SOAP Simple Object Access Protocol
UML Unified Modeling Language (an object modeling language)
WSA Web Services Addressing
WSN Web Services Notification
XML eXtensible Markup Language
5.2 UML Notation
All symbols used in this document are UML 2 (Unified Modeling Language) as defined by OMG and accepted as a publicly available standard by ISO in its earlier 1.3 version.
All classes in this standard are extensible and may be extended with application- or domain-specific content via Extension blocks.
The UML shown in this standard is considered conceptual and abstract, and should not be interpreted as an implementation strategy for bindings that extend and implement this standard. For example, TM_Instant from ISO 19108 is used to represent time instants for conceptual clarity, but bindings and implementations of this standard may realize TM_Instant as a GML TimeInstant, an ISO 8601 date string, or any other representation that is consistent with TM_Instant.
5.3 Referencing Conventions
This standard references UML classes from other specifications. When referencing UML classes not defined in this standard, the class name will be qualified with the document of origin. For example, a reference to the ISO 19108 TM_Instant is referenced as:
TM_Instant [see ISO/TS 19103:2005]
Many referenced UML classes are instantiated as XML schema, such as the GML realization of ISO TC211 standards. This standard only normatively references UML representations.
5.4 XML Namespace Conventions
This standard uses a number of namespace prefixes throughout; they are listed in the following table. Note that the choice of any namespace prefix is not semantically significant.
Prefix | Namespace |
---|---|
pubsub |
|
xsd |
|
xsi |
|
soap11 |
|
soap12 |
|
wsa |
|
wsn-b |
|
wsn-br |
6. SOAP Publish/Subscribe Overview
This document is an extension of the OGC Publish/Subscribe Core 1.0 document using SOAP web services.
This document specifies Publish/Subscribe capabilities using the WS-BaseNotification specification from OASIS. This specification extends WS-BaseNotification operations to include discovery and metadata operations such as GetCapabilities.
This document does not mandate a single, specific version of SOAP to be used in message exchanges. This enables established systems that intend to implement OWS Publish/Subscribe functionality to require any version of SOAP for Publisher operations. For maximum interoperability, it is recommended that SOAP Publish/Subscribe services support SOAP version 1.2 (see W3C SOAP) for requests and responses.
Information on version mismatch can also be communicated per actual message exchange – see http://www.w3.org/TR/soap12-part1/#version for further details.
For maximum interoperability it is suggested that SOAP implementations be compliant with the OASIS WS-Interoperability (WS-I) Basic Profile.
For disambiguation, the following table lists SOAP and [OASIS WS-BaseNotification] terms and their corresponding Publish/Subscribe concepts.
SOAP/OASIS WS-BaseNotification Term | Publish/Subscribe Synonym |
---|---|
SOAP Transport Method WSDL Binding |
Delivery Method |
Publisher This informal term is referenced, but not formally defined, in [OASIS WS-BrokeredNotification] p. 12 |
Sender Entity that sends messages to Receivers; may (but need not) be the initial creator/producer of the data to be transported in the message payload |
SubscriptionManager - Unsubscribe() - Renew() |
Publisher - Unsubscribe() - Renew() |
Subscriber |
Subscriber |
NotificationProducer - Subscribe() - GetCurrentMessage() |
Publisher - Subscribe() |
NotificationConsumer - Notify() |
Receiver - Notify() |
NotificationBroker - Subscribe() - Notify() |
Broker - Subscribe() - Receive() |
Topic |
No parallel in OGC Publish/Subscribe |
Terms as defined by WS-BaseNotification will be explicitly marked as such in this document. If no qualifier (such as “Publish/Subscribe” or “OASIS WS-BaseNotification”) is provided for a given term, the Publish/Subscribe terminology is assumed.
7. Requirements Class: SOAP Basic Receiver extends Basic Receiver
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-receiver |
|
Target type |
Receiver |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/core/basic-receiver |
Requirement |
/req/soap/basic-receiver/notify |
This Requirements Class specifies the basic operation of a SOAP Basic Receiver:
Notify– delivery of a message to the Receiver. In the context of Publish/Subscribe this is often the delivery of a message which matches the filter criteria of a given subscription.
7.1 Notify operation
The Notify operation from WS-BaseNotification NotificationConsumer interface is implemented by a Receiver to allow the delivery of SOAP messages. This interface is specified in [OASIS WS-BaseNotification] Clause 3.
Req 1 - /req/soap/basic-receiver/notify |
A Receiver shall offer the Notify operation as specified in the WS-BaseNotification NotificationConsumer interface |
7.1.1 Response
There is no response from the Notify operation.
7.1.2 Exceptions
No exceptions are defined for the Notify operation.
8. Requirements Class: SOAP Basic Publisher extends Basic Publisher
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/core/basic-publisher |
Requirement |
/req/soap/basic-publisher/envelope-body |
Requirement |
/req/soap/basic-publisher/getcapabilities-service-metadata |
Requirement |
/req/soap/basic-publisher/subscribe |
Requirement |
/req/soap/basic-publisher/unsubscribe |
Requirement |
/req/soap/basic-publisher/renew |
Requirement |
/req/soap/basic-publisher/subscribe/dialect-set |
Requirement |
/req/soap/basic-publisher/subscribe/dialect-valid |
Requirement |
/req/soap/basic-publisher/subscribe/publication-id |
Requirement |
/req/soap/basic-publisher/renew-nil-termination-time |
Requirement |
/req/soap/basic-publisher/unsubscribe/publication-id |
Requirement |
/req/soap/basic-publisher/fault-issuance |
Requirement |
/req/soap/basic-publisher/fault-detail |
This Requirements Class specifies the basic Publish/Subscribe operations of a Publisher using the SOAP protocol. The SOAP operations in this Requirements Class are implemented as operations from the NotificationProducer interface from [OASIS WS-BaseNotification]:
Subscribe– allows for the creation of subscriptions against publications offered by a Publisher. This is implemented as the Subscribe operation from [OASIS WS-BaseNotification];
Renew– allows for the renewal of a subscription on a Publisher. This is implemented as the Renew operation from [OASIS WS-BaseNotification]; and
Unsubscribe– allows for removal of a subscription on a Publisher. This is implemented as the Unsubscribe operation from [OASIS WS-BaseNotification].
This Requirements Class extends the Publish/Subscribe Core Basic Publisher, and as such also returns capabilities metadata that is offered in response to a GetCapabilities operation. Therefore this capabilities metadata may either be offered as a Publish/Subscribe GetCapabilities operation as described in the Publish/Subscribe Core Standalone Publisher requirements class or through a GetCapabilities operation defined by another OGC Web Service such as the OGC Web Feature Service (WFS).
Req 2 - /req/soap/basic-publisher/envelope-body |
A Publisher shall produce SOAP messages with one SOAP Envelope containing exactly one SOAP Body |
Req 3 - /req/soap/basic-publisher/getcapabilities-service-metadata |
A Publisher shall specify the HTTP POST request encodings accepted by including an ows:Constraint element, with “PostEncoding” as the value of the name attribute and with a value of “SOAP” in GetCapabilities responses |
Req 4 - /req/soap/basic-publisher/subscribe |
A Publisher shall offer the WS-BaseNotification NotificationProducer Subscribe operation |
Req 5 - /req/soap/basic-publisher/unsubscribe |
Req 5 A Publisher shall offer the WS-BaseNotification SubscriptionManager Unsubscribe operation |
Requirement |
---|
/req/soap/basic-publisher/renew |
Req 6 A Publisher shall offer the WS-BaseNotification SubscriptionManager Renew operation |
8.1 Usage of WS-BaseNotification
OGC Publish/Subscribe filtering information is sent in the /wsn-b:Subscribe/wsn-b:/Filter/wsn-b:MessageContent section of the request. In this case, the Dialect attribute on the wsn-b:MessageContent element shall be set appropriately to represent the filtering dialect. The content of the Dialect attribute should be one of the FilterCapabilities identifiers advertised by the Publisher in the GetCapabilities operation.
Subscribe requests must also include the pubsub:publicationIdentifier element as a child of the wsn-b:Subscribe element.
Requirement |
---|
/req/soap/basic-publisher/subscribe/dialect-set |
Req 7 A Publisher shall raise an Exception if the /wsn-b:Subscribe/wsn-b:Filter/wsn-b:MessageContent/@Dialect attribute is not set on a Subscribe request |
Requirement |
---|
/req/soap/basic-publisher/subscribe/dialect-valid |
Req 8 A Publisher shall raise an Exception if the /wsn-b:Subscribe/wsn-b:Filter/wsn-b:MessageContent/@Dialect attribute is not one of the advertised FilterCapabilities identifiers |
Requirement |
---|
/req/soap/basic-publisher/subscribe/publication-id |
Req 9 A Publisher shall raise an Exception if the /wsn-b:Subscribe/pubsub:PublicationIdentifier element is not present on a Subscribe request |
8.2 Subscribe Operation
8.2.1 Subscription
The following table summarizes how the Publish/Subscribe Subscription is realized in SOAP.
Publish/Subscribe Core 1.0 – Subscription Property Name | Realization in SOAP binding | Description |
---|---|---|
identifier |
wsn-b:SubscriptionReference |
Defined by WS-BaseNotification |
publicationIdentifier |
pubsub:PublicationIdentifer |
Defined in Publish/Subscribe schemas |
terminationTime |
wsn-b:TerminationTime |
Defined by WS-BaseNotification |
filter |
wsn-b:Filter/ wsn-b:MessageContent |
Content depends on filtering functionality supported by the Publisher. |
filterLanguageId |
wsn-b:Filter/wsn-b:MessageContent/@Dialect |
Defined by WS-BaseNotification |
deliveryLocation |
wsn-b: |
As defined by WS-BaseNotification |
deliveryMethod |
xs:anyURI |
Delivery method URIs are defined by Publish/Subscribe delivery conformance classes |
deliveryParameter |
xs:anyType |
Delivery parameters are defined by Publish/Subscribe delivery conformance classes |
8.3 Renew Operation
The semantics for the termination time set in the request are the same in OGC Publish/Subscribe and [OASIS WS-BaseNotification]. [OASIS WS-BaseNotification] also specifies that an exception is thrown if the requested termination time is not in the future.
However, use of the xsi:nil attribute with value “true” on the wsn-b:Renew/wsn-b:TerminationTime to request an infinite duration (see [OASIS WS-BaseNotification] section 6.1.1) is prohibited.
Req 10 - /req/soap/basic-publisher/renew-nil-termination-time |
A Publisher shall throw an Exception if it receives a Renew request that contains a wsn-b:TerminationTime with xsi:nil attribute set to “true” |
Renew requests must include the pubsub:publicationIdentifier element as a child of the wsn-b:Renew element.
The response semantics for the Renew operation are the same in OGC Publish/Subscribe and [OASIS WS-BaseNotification]. In both cases the response indicates that the subscription identified in the request (explicitly in the case of OGC Publish/Subscribe, implicitly in the case of [OASIS WS-BaseNotification]) has been updated to terminate at the requested point in time.
[OASIS WS-BaseNotification] supports functionality to differentiate and handle different time on the client and server roles (NotificationProducer, SubscriptionManager). OGC Publish/Subscribe does not make this distinction.
8.4 Unsubscribe operation
Unsubscribe requests must include the pubsub:publicationIdentifier element as a child of the wsn-b:Unsubscribe element.
Req 11 - /req/soap/basic-publisher/unsubscribe/publication-id |
A Publisher shall raise an Exception if the /wsn-b:Unsubscribe/pubsub:PublicationIdentifier element is not present on a Unsubscribe request |
8.5 Exception and Fault Usage
In the event that a Publisher encounters an error while processing a request or receives an invalid request, it shall generate a SOAP Fault. Exceptions defined by Publish/Subscribe Core and Publish/Subscribe extensions are encoded as an ExceptionReport in the FaultCause section of each SOAP Fault. SOAP Faults types and usage are described in [OASIS WS-BaseNotification] and associated specifications. Therefore the Fault type (such as UnacceptableTerminationTimeFault) and ExceptionReport type (such as TerminationUnacceptable) portions of each issued Fault may be considered independent. Each Exception will be of the appropriate type as described in Publish/Subscribe Core.
Req 12 - /req/soap/basic-publisher/fault-issuance |
A Publisher shall issue SOAP Faults as described in [OASIS WS-BaseFaults] in accordance with [OASIS WS-BaseNotification] |
Req 13 - /req/soap/basic-publisher/fault-detail |
A Publisher shall issue SOAP Faults that incorporate an ExceptionReport valid according to Clause 8 of the OWS Common Specification [OGC 06-121r3] in the FaultCause element of the WSRF:BaseFault |
For the Subscribe, Unsubscribe, and Renew operations the following Fault and Exception codes are used.
Topic-related Exceptions are mapped below for completeness as they are defined in [OASIS WS-BaseNotification], but are not utilized in this Standard.
Exception Code | SOAP Fault |
---|---|
Subscribe operation |
|
InvalidPublicationIdentifier |
ResourceUnknownFault |
TerminationUnacceptable |
UnacceptableInitialTerminationTimeFault |
PastTermination |
UnacceptableInitialTerminationTimeFault |
InvalidDeliveryMethod |
BaseFault |
InvalidFilter |
InvalidFilterFault |
MissingParameterValue |
SubscribeCreationFailedFault
|
InvalidParameterValue |
SubscribeCreationFailedFault |
NoApplicableCode |
SubscribeCreationFailedFault
|
Unsubscribe operation |
|
InvalidSubscriptionIdentifier |
ResourceUnknownFault |
NoApplicableCode |
BaseFault |
Renew operation |
|
InvalidSubscriptionIdentifier |
ResourceUnknownFault |
TerminationUnacceptable |
UnacceptableTerminationTimeFault |
PastTermination |
UnacceptableTerminationTimeFault |
MissingParameterValue |
BaseFault |
InvalidParameterValue |
BaseFault |
NoApplicableCode |
BaseFault |
8.5.1 SOAP Fault Examples
A sample SOAP 1.1 fault encoding is as follows:
<soap11:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:wsrf-bf=”http://docs.oasis-open.org/wsrf/bf-2”
xmlns:soap11=”http://schemas.xmlsoap.org/soap/envelope/”
xmlns:wsa=”http://www.w3.org/2005/08/addressing”
xmlns:wsnt=”http://docs.oasis-open.org/wsn/b-2”
xmlns:pubsub=”http://www.opengis.net/pubsub/1.0”
xsi:schemaLocation=”http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/
http://www.opengis.net/pubsub/1.0 http://schemas.opengis.net/pubsub/1.0.0/pubsubAll.xsd
http://docs.oasis-open.org/wsn/b-2 http://docs.oasis-open.org/wsn/b-2.xsd”>
<soap11:Header>
<wsa:Action>http://docs.oasis-open.org/wsn/fault</wsa:Action>
</soap11:Header>
<soap11:Body>
<soap11:Fault>
<faultcode>soap11:Client</faultcode>
<faultstring>The publication identifier ‘xyz’ is invalid</faultstring>
<detail>
<wsnt:SubscribeCreationFailedFault>
<wsrf-bf:Timestamp>
2005-05-04T20:18:44.970Z
</wsrf-bf:Timestamp>
<wsrf-bf:Description>
The publication identifier ‘xyz’ is invalid
</wsrf-bf:Description>
<wsrf-bf:FaultCause>
<ows:ExceptionReport version=”1.0.0” xmlns:ows=”http://www.opengis.net/ows/1.1”>
<ows:Exception exceptionCode=”InvalidPublicationIdentifier” locator=”xyz”>
<ows:ExceptionText>
The publication identifier ‘xyz’ is invalid
</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>
</wsrf-bf:FaultCause>
</wsnt:SubscribeCreationFailedFault>
</detail>
</soap11:Fault>
</soap11:Body>
</soap11:Envelope>
A sample SOAP 1.2 example is as follows:
<soap12:Envelope
xmlns:soap12=”http://www.w3.org/2003/05/soap-envelope”
xmlns:wsa=”http://www.w3.org/2005/08/addressing”
xmlns:wsrf-bf=”http://docs.oasis-open.org/wsrf/bf-2”
xmlns:wsrf-r=”http://docs.oasis-open.org/wsrf/r-2”
xmlns:wsnt=”http://docs.oasis-open.org/wsn/b-2”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/
http://www.opengis.net/pubsub/1.0 http://schemas.opengis.net/pubsub/1.0.0/pubsubAll.xsd
http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope
http://docs.oasis-open.org/wsrf/r-2 http://docs.oasis-open.org/wsrf/r-2.xsd
http://docs.oasis-open.org/wsn/b-2 http://docs.oasis-open.org/wsn/b-2.xsd”>
<soap12:Header>
<wsa:Action>http://docs.oasis-open.org/wsn/fault</wsa:Action>
</soap12:Header>
<soap12:Body>
<soap12:Fault>
<soap12:Code>
<soap12:Value>soap12:Sender</soap12:Value>
</soap12:Code>
<soap12:Reason>
<soap12:Text xml:lang=”en”>The publication identifier ‘xyz’ is invalid</soap12:Text>
</soap12:Reason>
<soap12:Detail>
<wsnt:SubscribeCreationFailedFault>
<wsrf-bf:Timestamp>
2005-05-04T20:18:44.970Z
</wsrf-bf:Timestamp>
<wsrf-bf:Description>
The publication identifier ‘xyz’ is invalid
</wsrf-bf:Description>
<wsrf-bf:FaultCause>
<ows:ExceptionReport version=”1.0.0” xmlns:ows=”http://www.opengis.net/ows/1.1”>
<ows:Exception exceptionCode=”InvalidPublicationIdentifier” locator=”xyz”>
<ows:ExceptionText>
The publication identifier ‘xyz’ is invalid
</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>
</wsrf-bf:FaultCause>
</wsnt:SubscribeCreationFailedFault>
</soap12:Detail>
</soap12:Fault>
</soap12:Body>
</soap12:Envelope>
9. Requirements Class: SOAP Standalone Publisher extends SOAP Basic Publisher, Standalone Publisher
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/standalone-publisher | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/core/standalone-publisher |
Requirement |
/req/soap/standalone-publisher/getcapabilities |
Requirement |
/req/soap/standalone-publisher/getsubscription |
This Requirements Class specifies the basic Publish/Subscribe operations of a Publisher using the SOAP protocol:
GetCapabilities– allows for the discovery of Publisher metadata, including offered publications, service capabilities, and service provider information; and
GetSubscription– allows for the retrieval of subscription information.
Standalone SOAP Publishers expose two operations for Publish/Subscribe metadata: GetCapabilitiesand GetSubscription. The GetCapabilitiesoperation is utilized directly from OWS Common Specification version 1.1 [OGC 06-121r3].
Req 14 - /req/soap/standalone-publisher/getcapabilities |
A Publisher shall offer a SOAP pubsub:GetCapabilities operation as defined in OGC Publish/Subscribe XSL/XSD schema |
Req 15 - /req/soap/standalone-publisher/getsubscription |
A Publisher shall offer a SOAP pubsub:GetSubscription operation as defined in OGC Publish/Subscribe XSL/XSD schema |
9.1 Exception and Fault Usage
Exception behavior for the GetCapabilities operation is defined in Table 8 and Clause 8 of the OWS Common Specification [OGC 06-121r3].
Exception behavior for the GetSubscription operation is described in Table 6.
Exception Code | SOAP Fault |
---|---|
GetSubscription operation |
|
InvalidSubscriptionIdentifier |
ResourceUnknownFault |
NoApplicableCode |
BaseFault |
10. Requirements Class: SOAP Pausable Publisher extends SOAP Basic Publisher, Pausable Publisher
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/pausable-publisher | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/core/pausable-publisher |
Requirement |
/req/soap/pausable-publisher/pause |
Requirement |
/req/soap/pausable-publisher/resume |
This Requirements Class specifies the basic Publish/Subscribe operations of a Pausable Publisher using the SOAP protocol:
Pause– allows for the pausing of an unpaused subscription, which pauses message delivery; and
Resume– allows for the resumption of a paused subscription, which resumes message delivery.
These operations are implemented as the PauseSubscription and ResumeSubscription operations from the PausableSubscriptionManager interface described in [OASIS WS-BaseNotification].
Req 16 - /req/soap/pausable-publisher/pause |
A Publisher shall offer a SOAP PauseSubscription operation from the PausableSubscriptionManager interface as described in [OASIS WS-BaseNotification] |
Req 17 - /req/soap/pausable-publisher/resume |
A Publisher shall offer a SOAP ResumeSubscription operation from the PausableSubscriptionManager interface as described in [OASIS WS-BaseNotification] |
11. Requirements Class: SOAP Message Batching Publisher extends SOAP Basic Publisher, Message Batching Publisher
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/message-batching-publisher | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/core/message-batching-publisher |
Requirement |
/req/soap/message-batching-publisher/subscribe-message-batching |
A SOAP Message Batching Publisher accepts pubsub:MessageBatchingCriteria information as part of the Subscribe operation as defined in the Publish/Subscribe 1.0 XML schemas.
Req 18 - /req/soap/message-batching-publisher/subscribe-message-batching |
A Publisher shall accept pubsub:MessageBatchingCriteria as part of wsn-b:Subscribe request messages |
12. Requirements Class: SOAP Heartbeat Publisher extends SOAP Basic Publisher, Heartbeat Publisher
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/heartbeat-publisher | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/core/heartbeat-publisher |
Requirement |
/req/soap/heartbeat-publisher/subscribe-heartbeat |
Requirement |
/req/soap/heartbeat-publisher/publish-heartbeat |
A SOAP Heartbeat Publisher accepts pubsub:HeartbeatCriteria information as part of the Subscribe operation, and publishes heartbeat messages as pubsub:Heartbeat messages as defined in the Publish/Subscribe 1.0 XML schemas.
Req 19 - /req/soap/heartbeat-publisher/subscribe-heartbeat |
A Publisher shall accept pubsub:HeartbeatCriteria as part of wsn-b:Subscribe request messages |
Req 20 - /req/soap/heartbeat-publisher/publish-heartbeat |
A Publisher shall send regular pubsub:Heartbeat messages for each subscription as specified by each subscription’s HeartbeatCriteria |
13. Requirements Class – SOAP Brokering Publisher extends SOAP Basic Publisher, Brokering Publisher
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/brokering-publisher | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/core/brokering-publisher |
Requirement |
/req/soap/brokering-publisher/registerpublisher |
Requirement |
/req/soap/brokering-publisher/registerpublisher-connect |
Requirement |
/req/soap/brokering-publisher/removepublisher |
Requirement |
/req/soap/brokering-publisher/fault-issuance |
This Requirements Class specifies the basic Publish/Subscribe operations of a Brokering Publisher using the SOAP protocol. The SOAP operations in this Requirements Class are implemented as operations from interfaces from [OASIS WS-BrokeredNotification]:
RegisterPublisher– allows the connection of an external Publisher to the Broker. This is implemented as the RegisterPublisher operation from the NotificationBroker interface from [OASIS WS-BrokeredNotification]; and
RemovePublisher– allows the disconnection of a Publisher from the Broker. This is implemented as the DestroyRegistration operation from the PublisherRegistrationManager interface from [OASIS WS-BrokeredNotification].
Req 21 - /req/soap/brokering-publisher/registerpublisher |
A Publisher shall offer the WS-BrokeredNotification NotificationBroker RegisterPublisher operation |
Req 22 - /req/soap/brokering-publisher/registerpublisher-connect |
When the RegisterPublisher operation is executed, A Publisher shall retrieve the capabilities document of the registered Publisher from wsn-br:PublisherReference and verify that it contains Publications, DeliveryCapabilities, and FilteringCapabilities sections before returning the RegisterPublisherResponse |
Req 23 - /req/soap/brokering-publisher/removepublisher |
A Publisher shall offer the WS-BrokeredNotification PublisherRegistrationManager DestroyRegistration operation |
13.1 Exception and Fault Usage
For the RegisterPublisher, and RemovePublisher operations the following Fault and Exception codes are used.
Exception Code | SOAP Fault |
---|---|
RegisterPublisher operation |
|
PublisherRegistrationRejected |
PublisherRegistrationRejectedFault |
PublisherRegistrationFailed |
PublisherRegistrationFailedFault |
NoApplicableCode |
BaseFault |
RemovePublisher operation |
|
UnknownPublisher |
ResourceUnknownFault |
NoApplicableCode |
BaseFault |
Req 24 - /req/soap/brokering-publisher/fault-issuance |
A Publisher shall generate SOAP Faults as described in [OASIS WS-BaseFaults] in accordance with [OASIS WS-BaseNotification] and [OASIS WS-BrokeredNotification] |
14. Requirements Class – SOAP Publication Manager extends SOAP Basic Publisher, Publication Manager
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/publication-manager | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/core/publication-manager |
Requirement |
/req/soap/publication-manager/createpublication |
Requirement |
/req/core/publication-manager/removepublication |
This Requirements Class specifies the operations of a Publication Manager using the SOAP protocol:
CreatePublication– allows for the creation of a new derived publication based upon an existing publication with an optional filter; and
RemovePublication– allows for the removal of a derived publication.
Req 25 - /req/soap/publication-manager/createpublication |
A Publisher shall offer a SOAP pubsub:CreatePublication operation as defined in OGC Publish/Subscribe XSL/XSD schema |
Req 26 - /req/soap/publication-manager/removepublication |
A Publisher shall offer a SOAP pubsub:RemovePublication operation as defined in OGC Publish/Subscribe XSL/XSD schema |
14.1 Exception and Fault Usage
Exception behavior for the CreatePublication and RemovePublicationoperations is described in Table 8.
Exception Code | SOAP Fault |
---|---|
CreatePublication operation |
|
InvalidPublicationIdentifier |
ResourceUnknownFault |
InvalidFilter |
InvalidFilterFault |
InvalidParameterValue |
BaseFault |
NoApplicableCode |
BaseFault |
RemovePublication operation |
|
InvalidPublicationIdentifier |
ResourceUnknownFault |
InvalidParameterValue |
BaseFault |
NoApplicableCode |
BaseFault |
15. Requirements Class – SOAP HTTP Delivery Publisher extends SOAP Basic Publisher
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/http-delivery-publisher | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher |
Requirement |
/req/soap/http-delivery-method/notify |
Requirement |
/req/soap/http-delivery-method/post |
Requirement |
/req/soap/http-delivery-method/action-header |
This Requirements Class specifies a method by which Publishers deliver messages using HTTP POST with SOAP/XML content. Messages are delivered to a SOAP endpoint (SOAP Basic Receiver) using the Notify operation from the NotificationConsumer interface described in [OASIS WS-BaseNotification].
Req 27 - /req/soap/http-delivery-method/notify |
A Publisher shall deliver matching messages in accordance to [OASIS WS-BaseNotification] Clause 3.2 |
Req 28 - /req/soap/http-delivery-method/post |
A Publisher shall deliver messages to the Receiver by initiating an HTTP request using the HTTP POST method |
Req 29 - /req/soap/http-delivery-method/action-header |
A Publisher shall deliver messages in a HTTP request with the value of the SOAPAction HTTP header field in a quoted string |
16. Requirements Class – SOAP Reliable Publisher extends SOAP Basic Publisher
Requirements Class | |
---|---|
http://www.opengis.net/spec/pubsub/1.0/req/soap/reliable-publisher | |
Target type |
Publisher |
Dependency |
http://www.opengis.net/spec/pubsub/1.0/req/soap/basic-publisher |
A SOAP Reliable Publisher is a type of Publisher that sends messages reliably using [OASIS WS-ReliableMessaging]. Basic Publishers only support a single attempted delivery of messages and do not specify behavior where messages are lost in transit.
Annex A
(Normative)
Abstract Test Suites
A Publish/Subscribe implementation must satisfy the following system characteristics to be conformant with this specification.
Test, requirement, requirements class, and conformance class identifiers below are relative to http://www.opengis.net/spec/pubsub/1.0/.
The minimum set of conformance classes an implementation needs to pass are either SOAP Basic Receiver (section A.1) or SOAP Basic Publisher (section A.2)
A.1 Conformance class: SOAP Basic Receiver
/conf/soap/basic-receiver | |
---|---|
Dependency |
/conf/core/basic-receiver |
Requirements Class |
/req/soap/basic-receiver |
Test: /conf/soap/basic-receiver/notify
Requirement | /req/soap/basic-receiver/notify |
---|---|
Test Purpose |
A Receiver shall offer the Notify operation as specified in the WS-BaseNotification NotificationConsumer interface |
Test Method |
Execute the WS-BaseNotification Notify operation on the Receiver, with a test SOAP message with the SOAP WS-Addressing Action set to http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify, with test data |
A.2 Conformance class: SOAP Basic Publisher
/conf/soap/basic-publisher | |
---|---|
Dependency |
/conf/core/basic-publisher |
Requirements Class |
/req/soap/basic-publisher |
Test: /conf/soap/basic-publisher/envelope-body
Requirement | /req/soap/basic-publisher/envelope-body |
---|---|
Test Purpose |
A Publisher shall produce SOAP messages with one SOAP Envelope containing exactly one SOAP Body |
Test Method |
Execute any operation on the Publisher and verify the condition |
Test: /conf/soap/basic-publisher/getcapabilities-service-metadata
Requirement | /req/soap/basic-publisher/getcapabilities-service-metadata |
---|---|
Test Purpose |
A Publisher shall specify the HTTP POST request encodings accepted by including an ows:Constraint element, with “PostEncoding” as the value of the name attribute and with a value of “SOAP” in GetCapabilities responses |
Test Method |
Execute a GetCapabilities operation against the service and verify that the service returns a Capabilities document with a ows:Constraint element, with “PostEncoding” as the value of the name attribute and with a value of “SOAP” |
Test: /conf/soap/basic-publisher/subscribe
Requirement | /req/soap/basic-publisher/subscribe |
---|---|
Test Purpose |
A Publisher shall offer the WS-BaseNotification NotificationProducer Subscribe operation |
Test Method |
Execute the WS-BaseNotification Subscribe operation, with a test SOAP message with the SOAP WS-Addressing Action set to “http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeRequest”, against a test publication and ensure that the SubscribeResponse includes a valid Subscription |
Test: /conf/soap/basic-publisher/unsubscribe
Requirement | /req/soap/basic-publisher/unsubscribe |
---|---|
Test Purpose |
A Publisher shall offer the WS-BaseNotification SubscriptionManager Unsubscribe operation |
Test Method |
Execute a Subscribe operation against a test publication, record the returned subscription identifier, and execute the WS-BaseNotification Unsubscribe operation, with a test SOAP message with the SOAP WS-Addressing Action set to http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/UnsubscribeRequest, with the subscription identifier, and ensure that the response is a valid UnsubscribeResponse |
Test: /conf/soap/basic-publisher/renew
Requirement | /req/soap/basic-publisher/renew |
---|---|
Test Purpose |
A Publisher shall offer the WS-BaseNotification SubscriptionManager Renew operation |
Test Method |
Execute the WS-BaseNotification Renew operation on the Publisher with a test SOAP message with the SOAP WS-Addressing Action set to “http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/RenewRequest” |
Test: /conf/soap/basic-publisher/subscribe/dialect-set
Requirement | /req/soap/basic-publisher/subscribe/dialect-set |
---|---|
Test Purpose |
A Publisher shall raise an Exception if the /wsn-b:Subscribe/wsn-b:Filter/wsn-b:MessageContent/@Dialect attribute is not set on a Subscribe request |
Test Method |
Execute the WS-BaseNotification Subscribe operation without setting the /wsn-b:Subscribe/wsn-b:Filter/wsn-b:MessageContent/@Dialect attribute in the request and verify that an Exception is thrown |
Test: /conf/soap/basic-publisher/subscribe/dialect-valid
Requirement | /req/soap/basic-publisher/subscribe/dialect-valid |
---|---|
Test Purpose |
A Publisher shall raise an Exception if the /wsn-b:Subscribe/wsn-b:Filter/wsn-b:MessageContent/@Dialect attribute is not one of the advertised FilterCapabilities identifiers |
Test Method |
Execute the WS-BaseNotification Subscribe operation with the /wsn-b:Subscribe/wsn-b:Filter/wsn-b:MessageContent/@Dialect attribute in the request set to a value not advertised in the FilterCapabilities and verify that an Exception is thrown |
Test: /conf/soap/basic-publisher/subscribe/publication-id
Requirement | /req/soap/basic-publisher/subscribe/publication-id |
---|---|
Test Purpose |
A Publisher shall raise an Exception if the /wsn-b:Subscribe/pubsub:PublicationIdentifier element is not present on a Subscribe request |
Test Method |
Execute the WS-BaseNotification Subscribe operation without the /wsn-b:Subscribe/pubsub:PublicationIdentifier element in the request and verify that an Exception is thrown |
Test: /conf/soap/basic-publisher/renew-nil-termination-time
Requirement | /req/soap/basic-publisher/renew-nil-termination-time |
---|---|
Test Purpose |
A Publisher shall throw an Exception if it receives a Renew request that contains a wsn-b:TerminationTime with xsi:nil attribute set to “true” |
Test Method |
Execute a Renew operation with a wsn-b:TerminationTime with xsi:nil attribute set to “true” and verify that an Exception is thrown |
Test: /conf/soap/basic-publisher/unsubscribe/publication-id
Requirement | /req/soap/basic-publisher/unsubscribe/publication-id |
---|---|
Test Purpose |
A Publisher shall raise an Exception if the /wsn-b:Unsubscribe/pubsub:PublicationIdentifier element is not present on a Unsubscribe request |
Test Method |
Execute the WS-BaseNotification Unsubscribe operation without the /wsn-b:Unsubscribe/pubsub:PublicationIdentifier element in the request and verify that an Exception is thrown |
Test: /conf/soap/basic-publisher/fault-issuance
Requirement | /req/soap/basic-publisher/fault-issuance |
---|---|
Test Purpose |
A Publisher shall issue SOAP Faults as described in [OASIS WS-BaseFaults] in accordance with [OASIS WS-BaseNotification] |
Test Method |
Execute a request that raises an exception on the Publisher and ensure that the response message contains a SOAP Fault compliant with [OASIS WS-BaseFaults] and [OASIS WS-BaseNotification] |
Test: /conf/soap/basic-publisher/fault-detail
Requirement | /req/soap/basic-publisher/fault-detail |
---|---|
Test Purpose |
A Publisher shall issue SOAP Faults that incorporate an ExceptionReport valid according to Clause 8 of the OWS Common Specification [OGC 06-121r3] in the FaultCause element of the WSRF:BaseFault |
Test Method |
Execute a request that raises an exception on the service and ensure that the response message incorporates an ExceptionReport valid according to Clause 8 of the OWS Common Specification [OGC 06-121r3] in the FaultCause element of the generated WSRF:BaseFault |
A.3 Conformance class: SOAP Standalone Publisher
/conf/soap/standalone-publisher | |
---|---|
Dependency |
/conf/soap/basic-publisher |
Requirements Class |
/req/soap/standalone-publisher |
Test: /conf/soap/standalone-publisher/getcapabilities
Requirement | /req/soap/standalone-publisher/getcapabilities |
---|---|
Test Purpose |
A Publisher shall offer a SOAP pubsub:GetCapabilities operation as defined in OGC Publish/Subscribe XSL/XSD schema |
Test Method |
Execute the GetCapabilities operation, with a SOAP message with the SOAP WS-Addressing Action set to “http://www.opengis.net/def/serviceOperation/pubsub/1.0/GetCapabilities”, with an AcceptVersions section with a single Version parameter set to “1.0.0” and the service parameter set to “PubSub”, and ensure that the response is a valid PublisherCapabilities document |
Test: /conf/soap/standalone-publisher/getsubscription
Requirement | /req/soap/standalone-publisher/getsubscription |
---|---|
Test Purpose |
A Publisher shall offer a SOAP pubsub:GetSubscription operation as defined in OGC Publish/Subscribe XSL/XSD schema |
Test Method |
Execute the GetSubscription operation with a SOAP message, with the SOAP WS-Addressing Action set to “http://www.opengis.net/def/serviceOperation/pubsub/1.0/GetSubscription”, without any subscriptionIdentifier parameters, and ensure that the response is a valid GetSubscriptionResponse document. For every subscription in the GetSubscriptionResponse, execute the GetSubscription operation with the corresponding subscriptionIdentifier parameter, and ensure that the response is a valid GetSubscriptionResponse document related to that subscription |
A.4 Conformance class: SOAP Pausable Publisher
/conf/soap/pausable-publisher | |
---|---|
Dependency |
/conf/soap/basic-publisher |
Dependency |
/conf/core/pausable-publisher |
Requirements Class |
/req/soap/pausable-publisher |
Test: /conf/soap/pausable-publisher/pause
Requirement | /req/soap/pausable-publisher/pause |
---|---|
Test Purpose |
A Publisher shall offer a SOAP PauseSubscription operation from the PausableSubscriptionManager interface as described in [OASIS WS-BaseNotification] |
Test Method |
Execute the WS-BaseNotification PauseSubscription operation, with a test SOAP message with the SOAP WS-Addressing Action set to “http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/PauseSubscriptionRequest”, on a test publication, record the returned subscription identifier, wait for messages to be received for the subscription, then execute the Pause operation with the subscriptionIdentifier parameter set to the recorded subscription identifier, and ensure that the response is a valid PauseResponse document |
Test: /conf/soap/pausable-publisher/resume
Requirement | /req/soap/pausable-publisher/resume |
---|---|
Test Purpose |
A Publisher shall offer a SOAP ResumeSubscription operation from the PausableSubscriptionManager interface as described in [OASIS WS-BaseNotification] |
Test Method |
Execute the Subscribe operation on a test publication, record the returned subscription identifier, wait for messages to be received for the subscription, execute the Pause operation with the subscriptionIdentifier parameter set to the recorded subscription identifier, execute the Resume operation, with a test SOAP message with the SOAP WS-Addressing Action set to “http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager/ResumeSubscriptionRequest”, with the subscriptionIdentifier parameter set to the recorded subscription identifier, and ensure that the response is a valid ResumeResponse document |
A.5 Conformance class: SOAP Message Batching Publisher
/conf/soap/message-batching-publisher | |
---|---|
Dependency |
/conf/soap/basic-publisher |
Dependency |
/conf/core/message-batching-publisher |
Requirements Class |
/req/soap/message-batching-publisher |
Test: /conf/soap/message-batching-publisher/subscribe-message-batching
Requirement | /req/soap/message-batching-publisher/subscribe-message-batching |
---|---|
Test Purpose |
A Publisher shall accept pubsub:MessageBatchingCriteria as part of wsn-b:Subscribe request messages |
Test Method |
Execute the WS-BaseNotification Subscribe operation to create a test subscription with pubsub:MessageBatchingCriteria with the parameter maxMessageCount set to “1” and verify that the response is a valid SubscribeResponse |
A.6 Conformance class: SOAP Heartbeat Publisher
/conf/soap/heartbeat-publisher | |
---|---|
Dependency |
/conf/soap/basic-publisher |
Dependency |
/conf/core/heartbeat-publisher |
Requirements Class |
/req/soap/heartbeat-publisher |
Test: /conf/soap/heartbeat-publisher/subscribe-heartbeat
Requirement | /req/soap/heartbeat-publisher/subscribe-heartbeat |
---|---|
Test Purpose |
A Publisher shall accept pubsub:HeartbeatCriteria as part of wsn-b:Subscribe request messages |
Test Method |
Execute the WS-BaseNotification Subscribe operation to create a test subscription with pubsub:HeartbeatCriteria with the parameter heartbeatRate set to “1 minute” and verify that the response is a valid SubscribeResponse |
Test: /conf/soap/heartbeat-publisher/publish-heartbeat
Requirement | /req/soap/heartbeat-publisher/publish-heartbeat |
---|---|
Test Purpose |
A Publisher shall send regular pubsub:Heartbeat messages for each subscription as specified by each subscription’s HeartbeatCriteria |
Test Method |
Execute the WS-BaseNotification Subscribe operation to create a test subscription with pubsub:HeartbeatCriteria with the parameter heartbeatRate set to “10 seconds” and verify that the response is a valid SubscribeResponse. Wait 35 seconds and verify that 3 heartbeat messages were received |
A.7 Conformance class: SOAP Brokering Publisher
/conf/soap/brokering-publisher | |
---|---|
Dependency |
/conf/soap/basic-publisher |
Dependency |
/conf/core/brokering-publisher |
Requirements Class |
/req/soap/brokering-publisher |
Test: /conf/soap/brokering-publisher/registerpublisher
Requirement | /req/soap/brokering-publisher/registerpublisher |
---|---|
Test Purpose |
A Publisher shall offer the WS-BrokeredNotification NotificationBroker RegisterPublisher operation |
Test Method |
Execute the WS-BrokeredNotification RegisterPublisher operation, with a test SOAP message with the SOAP WS-Addressing Action set to “http://docs.oasis-open.org/wsn/brw-2/RegisterPublisher/RegisterPublisherRequest”, and ensure that the response is a valid RegisterPublisherResponse |
Test: /conf/soap/brokering-publisher/registerpublisher-connect
Requirement | /req/soap/brokering-publisher/registerpublisher-connect |
---|---|
Test Purpose |
When the RegisterPublisher operation is executed, A Publisher shall retrieve the capabilities document of the registered Publisher from wsn-br:PublisherReference and verify that it contains Publications, DeliveryCapabilities, and FilteringCapabilities sections before returning the RegisterPublisherResponse |
Test Method |
Execute the WS-BrokeredNotification RegisterPublisher operation, with a test SOAP message with the SOAP WS-Addressing Action set to “http://docs.oasis-open.org/wsn/brw-2/RegisterPublisher/RegisterPublisherRequest”, with a capabilitiesReference parameter that is resolvable to a valid capabilities document with FilterCapabilities, DeliveryCapabilities, and Publications sections, and ensure that the response is a valid RegisterPublisherResponse |
Test: /conf/soap/brokering-publisher/removepublisher
Requirement | /req/soap/brokering-publisher/removepublisher |
---|---|
Test Purpose |
A Publisher shall offer the WS-BrokeredNotification PublisherRegistrationManager DestroyRegistration operation |
Test Method |
Execute the WS-BrokeredNotification RegisterPublisher operation, with a test SOAP message with the SOAP WS-Addressing Action set to “http://docs.oasis-open.org/wsn/brw-2/RegisterPublisher/RegisterPublisherRequest”, and ensure that the response is a valid RegisterPublisherResponse, then execute the WS-BrokeredNotification PublisherRegistrationManager DestroyRegistration operation, with a test SOAP message with the SOAP WS-Addressing Action set to “http://docs.oasis-open.org/wsn/brw-2/PublisherRegistrationManager/DestroyRegistrationRequest”, against the same capabilitiesReference parameter and ensure that the response is a valid RemovePublisherResponse |
Test: /conf/soap/brokering-publisher/fault-issuance
Requirement | /req/soap/brokering-publisher/fault-issuance |
---|---|
Test Purpose |
A Publisher shall generate SOAP Faults as described in [OASIS WS-BaseFaults] in accordance with [OASIS WS-BaseNotification] and [OASIS WS-BrokeredNotification] |
Test Method |
Execute a request that raises an exception on the Publisher and ensure that the response message contains a SOAP Fault compliant with [OASIS WS-BaseFaults], [OASIS WS-BaseNotification], and [OASIS WS-BrokeredNotification] |
A.8 Conformance class: SOAP Publication Manager
/conf/soap/publication-manager | |
---|---|
Dependency |
/conf/soap/basic-publisher |
Dependency |
/conf/core/publication-manager |
Requirements Class |
/req/soap/basic-publisher |
Test: /conf/soap/publication-manager/createpublication
Requirement | /req/soap/publication-manager/creatpublication |
---|---|
Test Purpose |
A Publisher shall offer a SOAP pubsub:CreatePublication operation as defined in OGC Publish/Subscribe XSL/XSD schema |
Test Method |
Create a test publication with a publication identifier of “urn:pubsub:ats:BasePub”. Execute the CreatePublication operation, with a test SOAP message, with the SOAP WS-Addressing Action set to “http://www.opengis.net/def/serviceOperation/pubsub/1.0/CreatePublication”, with the basePublicationIdentifier parameter set to “urn:pubsub:ats:BasePub” and the identifier parameter set to “urn:pubsub:ats:DerivedPub” and the description parameter set to “Test description”, ensure that the response is a valid CreatePublicationResponse document |
Test: /conf/soap/publication-manager/removepublication
Requirement | /req/soap/publication-manager/removepublication |
---|---|
Test Purpose |
A Publisher shall offer a SOAP pubsub:RemovePublication operation as defined in OGC Publish/Subscribe XSL/XSD schema |
Test Method |
Execute the CreatePublication operation with the basePublicationIdentifier parameter set to a test publication identifier, ensure that the response is a valid CreatePublicationResponse document, execute the RemovePublication operation, , with a test SOAP message, with the SOAP WS-Addressing Action set to “http://www.opengis.net/def/serviceOperation/pubsub/1.0/RemovePublication”, against the newly-created Publication, and ensure that the response is a valid RemovePublicationResponse |
A.9 Conformance class: SOAP HTTP Delivery Publisher
/conf/soap/http-delivery | |
---|---|
Dependency |
/conf/soap/basic-publisher |
Requirements Class |
/req/soap/http-delivery-publisher |
Test: /conf/soap/http-delivery/notify
Requirement | /req/soap/http-delivery/notify |
---|---|
Test Purpose |
A Publisher shall deliver matching messages in accordance to [OASIS WS-BaseNotification] Clause 3.2 |
Test Method |
Execute the Subscribe operation on a test publication, wait for messages to be received for the subscription, and verify that the messages are in accordance to [OASIS WS-BaseNotification] Clause 3.2 |
Test: /conf/soap/http-delivery/post
Requirement | /req/soap/http-delivery/post |
---|---|
Test Purpose |
A Publisher shall deliver messages to the Receiver by initiating an HTTP request using the HTTP POST method |
Test Method |
Execute the Subscribe operation on a test publication, wait for messages to be received for the subscription, and verify that the messages are delivered by initiating an HTTP request using the HTTP POST method |
Test: /conf/soap/http-delivery/action-header
Requirement | /req/soap/http-delivery/action-header |
---|---|
Test Purpose |
A Publisher shall deliver messages in a HTTP request with the value of the SOAPAction HTTP header field in a quoted string |
Test Method |
Execute the Subscribe operation on a test publication, wait for messages to be received for the subscription, and verify that the messages are delivered in a HTTP request with the value of the SOAPAction HTTP header field in a quoted string |
A.10 Conformance class: SOAP Reliable Publisher
/conf/soap/reliable-publisher | |
---|---|
Dependency |
/conf/soap/basic-publisherget |
Requirements Class |
/req/soap/reliable-publisher |
Annex B Revision history
Date | Release | Author | Paragraph(s) modified | Description |
---|---|---|---|---|
2015-06-26 |
1.0-RC0 |
Aaron Braeckel, Lorenzo Bigagli |
All |
First draft for internal SWG review |
2015-07-31 |
1.0-RC1 |
Aaron Braeckel, Lorenzo Bigagli |
All |
Revised URIs, revised references, edited mentions to Topic |
2015-09-08 |
1.0-RC2 |
Aaron Braeckel, Lorenzo Bigagli |
All |
Incorporated comments from OAB review in preparation for public comment |
2015-12-07 |
1.0-RC3 |
Aaron Braeckel, Lorenzo Bigagli |
All |
Incorporated changes related to feedback from public comments in preparation for adoption vote |
2016-02-12 |
1.0 |
Aaron Braeckel, Lorenzo Bigagli |
Front page, Abstract |
Incorporated comments received during adoption vote Finalisation changes related to feedback from public comments in preparation for adoption vote |
2016-02-12 |
1.0 |
Aaron Braeckel, Lorenzo Bigagli |
Front page, Abstract |
Incorporated comments received during adoption vote Finalisation |
2016-03-31 |
1.0 |
Scott Simmons |
All |
Minor edits, prepare for publication |