1

Web Services Reliable Messaging

2

(WS-ReliableMessaging)

3

Committee Draft 05, February 1, 20074, August 11, 2006

4 Document identifier: 5 wsrm-1.1-spec-cd-054

6 Location: 7 http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.1-spec-cd-05608/wsrm-1.1-spec-cd-04.pdf

8 Editors:

9 Doug Davis, IBM <dug@us.ibm.com> 10 Anish Karmarkar, Oracle <Anish.Karmarkar@oracle.com> 11 Gilbert Pilz, BEA <gpilz@bea.com> 12 Steve Winkler, SAP <steve.winkler@sap.com> 13 Ümit Yalçinalp, SAP <umit.yalcinalp@sap.com>

14 Contributors: 15 See the Acknowledgments (Appendix E).

16 Abstract: 17 This specification (WS-ReliableMessaging) describes a protocol that allows messages to be transferred 18 reliably between nodes implementing this protocol in the presence of software component, system, or 19 network failures. The protocol is described in this specification in a transport-independent manner 20 allowing it to be implemented using different network technologies. To support interoperable Web 21 services, a SOAP binding is defined within this specification.

22 The protocol defined in this specification depends upon other Web services specifications for the 23 identification of service endpoint addresses and policies. How these are identified and retrieved are 24 detailed within those specifications and are out of scope for this document.

25 By using the XML [XML], SOAP [SOAP 1.1], [SOAP 1.2] and WSDL [WSDL 1.1] extensibility model, 26 SOAP-based and WSDL-based specifications are designed to be composed with each other to define a 27 rich Web services environment. As such, WS-ReliableMessaging by itself does not define all the features 28 required for a complete messaging solution. WS-ReliableMessaging is a building block that is used in 29 conjunction with other specifications and application-specific protocols to accommodate a wide variety of 30 requirements and scenarios related to the operation of distributed Web services.

31 Status: 32 This document was last revised or approved by the WS-RX on the above date. The level of approval is 33 also listed above. Check the current location noted above for possible later revisions of this document. 34 This document is updated periodically on no particular schedule. Technical Committee members should 35 send comments on this specification to the Technical Committee's email list. Others should send 36 comments to the Technical Committee by using the "Send A Comment" button on the Technical 37 Committee's web page at http://www.oasis-open.org/committees/ws-rx. For information on whether any 38 patents have been disclosed that may be essential to implementing this specification, and any offers of 39 patent licensing terms, please refer to the Intellectual Property Rights section of the Technical 40 Committee web page (http://www.oasis-open.org/committees/ws-rx/ipr.php. The non-normative errata 41 page for this specification is located at http://www.oasis-open.org/committees/ws-rx.

42 Table of Contents

43 1 Introduction..................................................................................................................................................4 44 1.1 Notational Conventions........................................................................................................................4 45 1.2 Namespace..........................................................................................................................................5 46 1.3 Conformance.......................................................................................................................................5 47 2 Reliable Messaging Model..........................................................................................................................6 48 2.1 Glossary...............................................................................................................................................6 49 2.2 Protocol Preconditions.........................................................................................................................7 50 2.3 Protocol Invariants...............................................................................................................................8 51 2.4 Delivery Assurances............................................................................................................................8 52 2.5 Example Message Exchange..............................................................................................................9 53 3 RM Protocol Elements...............................................................................................................................11 54 3.1 Considerations on the Use of Extensibility Points..............................................................................11 55 3.2 Considerations on the Use of "Piggy-Backing"..................................................................................11 56 3.3 Composition with WS-Addressing.....................................................................................................11 57 3.4 Sequence Creation............................................................................................................................12 58 3.5 Closing A Sequence..........................................................................................................................16 59 3.6 Sequence Termination.......................................................................................................................18 60 3.7 Sequences.........................................................................................................................................20 61 3.8 Request Acknowledgement...............................................................................................................21 62 3.9 Sequence Acknowledgement............................................................................................................22 63 4 Faults.........................................................................................................................................................25 64 4.1 SequenceFault Element.....................................................................................................................26 65 4.2 Sequence Terminated........................................................................................................................27 66 4.3 Unknown Sequence...........................................................................................................................27 67 4.4 Invalid Acknowledgement..................................................................................................................28 68 4.5 Message Number Rollover................................................................................................................28 69 4.6 Create Sequence Refused.................................................................................................................29 70 4.7 Sequence Closed...............................................................................................................................29 71 4.8 WSRM Required................................................................................................................................30 72 5 Security Threats and Countermeasures...................................................................................................31 73 5.1 Threats and Countermeasures..........................................................................................................31 74 5.2 Security Solutions and Technologies.................................................................................................33 75 6 Securing Sequences.................................................................................................................................37 76 6.1 Securing Sequences Using WS-Security..........................................................................................37 77 6.2 Securing Sequences Using SSL/TLS................................................................................................38 78 7 References................................................................................................................................................40

79 7.1 Normative...........................................................................................................................................40

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 2 of 90

80 7.2 Non-Normative...................................................................................................................................41 81 Appendix A. Schema....................................................................................................................................43 82 Appendix B. WSDL.......................................................................................................................................48 83 Appendix C. Message Examples.................................................................................................................50 84 Appendix C.1 Create Sequence..............................................................................................................50 85 Appendix C.2 Initial Transmission...........................................................................................................50 86 Appendix C.3 First Acknowledgement.....................................................................................................52 87 Appendix C.4 Retransmission.................................................................................................................52 88 Appendix C.5 Termination.......................................................................................................................53 89 Appendix D. State Tables.............................................................................................................................55 90 Appendix E. Acknowledgments....................................................................................................................60 91 Appendix F. Revision History.......................................................................................................................61 92 Appendix G. Notices.....................................................................................................................................67

93

1 Introduction

94 It is often a requirement for two Web services that wish to communicate to do so reliably in the presence

95 of software component, system, or network failures. The primary goal of this specification is to create a

96 modular mechanism for reliable transfer of messages. It defines a messaging protocol to identify, track,

97 and manage the reliable transfer of messages between a source and a destination. It also defines a

98 SOAP binding that is required for interoperability. Additional bindings can be defined.

99 This mechanism is extensible allowing additional functionality, such as security, to be tightly integrated. 100 This specification integrates with and complements the WS-Security [WS-Security], WS-Policy [WS101 Policy], and other Web services specifications. Combined, these allow for a broad range of reliable, 102 secure messaging options.

103 1.1 Notational Conventions

104 The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD 105 NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described 106 in RFC 2119 [KEYWORDS].

107 This specification uses the following syntax to define normative outlines for messages:

108 • The syntax appears as an XML instance, but values in italics indicate data types instead of values.

109 • Characters are appended to elements and attributes to indicate cardinality:

110 o "?" (0 or 1)

111 o "*" (0 or more)

112 o "+" (1 or more)

113 • The character "|" is used to indicate a choice between alternatives.

114 • The characters "[" and "]" are used to indicate that contained items are to be treated as a group 115 with respect to cardinality or choice.

116 • An ellipsis (i.e. "...") indicates a point of extensibility that allows other child or attribute content 117 specified in this document. Additional children elements and/or attributes MAY be added at the 118 indicated extension points but they MUST NOT contradict the semantics of the parent and/or 119 owner, respectively. If an extension is not recognized it SHOULD be ignored.

120 • XML namespace prefixes (See Section 1.2) are used to indicate the namespace of the element 121 being defined.

122 Elements and Attributes defined by this specification are referred to in the text of this document using 123 XPath 1.0 [XPATH 1.0] expressions. Extensibility points are referred to using an extended version of this 124 syntax:

125 • An element extensibility point is referred to using {any} in place of the element name. This 126 indicates that any element name can be used, from any namespace other than the wsrm: 127 namespace.

128 • An attribute extensibility point is referred to using @{any} in place of the attribute name. This 129 indicates that any attribute name can be used, from any namespace other than the wsrm: 130 namespace.

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 4 of 90

131 1.2 Namespace

132 The XML namespace [XML-ns] URI that MUST be used by implementations of this specification is: 133 http://docs.oasis-open.org/ws-rx/wsrm/200702608 134 Dereferencing the above URI will produce the Resource Directory Description Language [RDDL 2.0]

135 document that describes this namespace.

136 Table 1 lists the XML namespaces that are used in this specification. The choice of any namespace prefix 137 is arbitrary and not semantically significant.

138 Table 1

Prefix Namespace
S (Either SOAP 1.1 or 1.2)
S11 http://schemas.xmlsoap.org/soap/envelope/
S12 http://www.w3.org/2003/05/soap-envelope
wsrm http://docs.oasis-open.org/ws-rx/wsrm/200702
wsa http://www.w3.org/2005/08/addressing
wsaw http://www.w3.org/2006/05/addressing/wsdl
wsse http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
xs http://www.w3.org/2001/XMLSchema

139 The normative schema for WS-ReliableMessaging can be found linked from the namespace document 140 that is located at the namespace URI specified above.

141 All sections explicitly noted as examples are informational and are not to be considered normative.

142 1.3 Conformmpliance

143 An implementation is not conformant with this specification if it fails to satisfy one or more of the MUST or 144 REQUIRED level requirements defined herein. A SOAP Node MUST NOT use the XML namespace 145 identifier for this specification (listed in Section 1.2) within SOAP Envelopes unless it is conformmpliant 146 with this specification if it fails to satisfy one or more of the MUST or REQUIRED level requirements 147 defined herein. A SOAP Node MUST NOT use the XML namespace identifier for this specification (listed 148 in Section 1.2) within SOAP Envelopes unless it is compliant with this specification.

149 Normative text within this specification takes precedence over normative outlines, which in turn take 150 precedence over the XML Schema [XML Schema Part 1, Part 2] descriptions.

151

2 Reliable Messaging Model

152 Many errors can interrupt a conversation. Messages can be lost, duplicated or reordered. Further the host 153 systems can experience failures and lose volatile state.

154 The WS-ReliableMessaging specification defines an interoperable protocol that enables a Reliable 155 Messaging (RM) Source to accurately determine the disposition of each message it Transmits as 156 perceived by the RM Destination, so as to allow it to resolve any in-doubt status regarding receipt of the 157 message Transmitted. The protocol also enables an RM Destination to efficiently determine which of 158 those messages it Receives have been previously Received, enabling it to filter out duplicate message 159 transmissions caused by the retransmission, by the RM Source, of an unacknowledged message. It also 160 enables an RM Destination to Deliver the messages it Receives to the Application Destination in the order 161 in which they were sent by an Application Source, in the event that they are Received out of order. Note 162 that this specification places no restriction on the scope of the RM Source or RM Destination entities. For 163 example, either can span multiple WSDL Ports or Endpoints.

164 The protocol enables the implementation of a broad range of reliability features which include ordered 165 Delivery, duplicate elimination, and guaranteed receipt. The protocol can also be implemented with a 166 range of robustness characteristics ranging from in-memory persistence that is scoped to a single process 167 lifetime, to replicated durable storage that is recoverable in all but the most extreme circumstances. It is 168 expected that the Endpoints will implement as many or as few of these reliability characteristics as 169 necessary for the correct operation of the application using the protocol. Regardless of which of the 170 reliability features is enabled, the wire protocol does not change.

171 Figure 1 below illustrates the entities and events in a simple reliable exchange of messages. First, the 172 Application Source Sends a message for reliable transfer. The Reliable Messaging Source accepts the 173 message and Transmits it one or more times. After accepting the message, the RM Destination 174 Acknowledges it. Finally, the RM Destination Delivers the message to the Application Destination. The 175 exact roles the entities play and the complete meaning of the events will be defined throughout this 176 specification.

Initial Sender Ultimate Receiver

177 Figure 1: Reliable Messaging Model

178 2.1 Glossary 179 The following definitions are used throughout this specification: 180 Accept: The act of qualifying a message by the RM Destination such that it becomes eligible for Delivery

181 and acknowledgement.

182 Acknowledgement: The communication from the RM Destination to the RM Source indicating the 183 successful receipt of a message. 184 Acknowledgement Message: A message containing a SequenceAcknowledgement header block. 185 Acknowledgement Messages may or may not contain a SOAP body. 186 Acknowledgement Request: A message containing an AckRequested header. Acknowledgement 187 Requests may or may not contain a SOAP body. 188 Application Destination: The Endpoint to which a message is Delivered. 189 Application Source: The Endpoint that Sends a message. 190 Back-channel: When the underlying transport provides a mechanism to return a transport-protocol 191 specific response, capable of carrying a SOAP message, without initiating a new connection, this 192 specification refers to this mechanism as a back-channelDeliver: The act of transferring a message from 193 the RM Destination to the Application Destination. 194 Deliver: The act of transferring responsibility for a message from the RM Destination to the Application 195 Destination. 196 Endpoint: As defined in the WS-Addressing specification [WS-Addressing]; a Web service Endpoint is a 197 (referenceable) entity, processor, or resource to which Web service messages can be addressed. 198 Endpoint references (EPRs) convey the information needed to address a Web service Endpoint. 199 Endpoint: As defined in the WS-Addressing specification [WS-Addressing]; a Web service Endpoint is a 200 (referenceable) entity, processor, or resource to which Web service messages can be addressed. 201 Endpoint references convey the information needed to address a Web service Endpoint. 202 Receive: The act of reading a message from a network connection and accepting it. 203 RM Destination: The Endpoint that Receives messages Transmitted reliably from an RM Source. 204 RM Protocol Header Block: One of Sequence, SequenceAcknowledgement, or AckRequested. 205 RM Source: The Endpoint that Transmits messages reliably to an RM Destination. 206 Send: The act of transferring a message from the Application Source to the RM Source for reliable 207 transfer. 208 Sequence Lifecycle Message: A message that contains one of: CreateSequence, 209 CreateSequenceResponse, CloseSequence, CloseSequenceResponse, TerminateSequence, 210 TerminateSequenceResponse as the child element of the SOAP body element. 211 Sequence Traffic Messsage: A message containing a Sequence header block. 212 Transmit: The act of writing a message to a network connection.

213 2.2 Protocol Preconditions 214 The correct operation of the protocol requires that a number of preconditions MUST be established prior 215 to the processing of the initial sequenced message: 216 For any single message exchange the RM Source MUST have an endpoint reference that uniquely 217 identifies the RM Destination Endpoint. 218 • The RM Source MUST have successfully created a Sequence with the RM Destination. 219 • The RM Source MUST be capable of formulating messages that adhere to the RM Destination's 220 policies.

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 7 of 90

221 • If a secure exchange of messages is REQUIRED, then the RM Source and RM Destination MUST 222 have a security context.

223 2.3 Protocol Invariants

224 During the lifetime of a Sequence, the followingwo invariants are REQUIRED for correctness:

225 • The RM Source MUST assign each message within a Sequence a message number (defined 226 below) beginning at 1 and increasing by exactly 1 for each subsequent message. These numbers 227 MUST be assigned in the same order in which messages are sent by the Application Source.

228 • Within every Acknowledgement Message it issues, the RM Destination MUST include one or more 229 AcknowledgementRange child elements that contain, in their collective ranges, the message 230 number of every message accepted by the RM Destination. The RM Destination MUST exclude, in 231 the AcknowledgementRange elements, the message numbers of any messages it has not 232 accepted. If no messages have been received the RM Destination MUST return None instead of an 233 AcknowledgementRange(s). The RM Destination MAY transmit a Nack for a specific message 234 or messages instead of an AcknowledgementRange(s).

235 • While the Sequence is not closed or terminated, the RM Source SHOULD retransmit 236 unacknowledged messages.

237 2.4 Delivery Assurances

238 This section defines a number of Delivery Assurance assertions, which can be supported by RM Sources 239 and RM Destinations. These assertions can be specified as policy assertions using the WS-Policy 240 framework [[WS-Policy]]. For details on this see the WSRM Policy specification [WS-RM Policy].

241 AtLeastOnce

242 Each message is to be delivered at least once, or else an error MUST be raised by the RM Source and/or 243 RM Destination. The requirement on an RM Source is that it SHOULD retry transmission of every 244 message sent by the Application Source until it receives an acknowledgement from the RM Destination. 245 The requirement on the RM Destination is that it SHOULD retry the transfer to the Application Destination 246 of any message that it accepts from the RM Source, until that message has been successfully delivered. 247 There is no requirement for the RM Destination to apply duplicate message filtering.

248 AtMostOnce

249 Each message is to be delivered at most once. The RM Source MAY retry transmission of 250 unacknowledged messages, but is NOT REQUIRED to do so. The requirement on the RM Destination is 251 that it MUST filter out duplicate messages, i.e. that it MUST NOT deliver a duplicate of a message that 252 has already been delivered.

253 ExactlyOnce

254 Each message is to be delivered exactly once; if a message cannot be delivered then an error MUST be 255 raised by the RM Source and/or RM Destination. The requirement on an RM Source is that it SHOULD 256 retry transmission of every message sent by the Application Source until it receives an acknowledgement 257 from the RM Destination. The requirement on the RM Destination is that it SHOULD retry the transfer to 258 the Application Destination of any message that it accepts from the RM Source until that message has 259 been successfully delivered, and that it MUST NOT deliver a duplicate of a message that has already 260 been delivered.

261 InOrder

262 Messages from each individual sequence are to be delivered in the same order they have been sent by 263 the Application Source. The requirement on an RM Source is that it MUST ensure that the ordinal position 264 of each message in the sequence (as indicated by a message sequence number) is consistent with the 265 order in which the messages have been sent from the Application Source. The requirement on the RM 266 Destination is that it MUST deliver received messages for each sequence in the order indicated by the 267 message numbering. This DeliveryAssurance can be used in combination with any of the AtLeastOnce, 268 AtMostOnce or ExactlyOnce assertions, and the requirements of those assertions MUST also be met. In 269 particular if the AtLeastOnce or ExactlyOnce assertion applies and the RM Destination detects a gap in 270 the sequence then the RM Destination MUST NOT deliver any subsequent messages from that sequence 271 until the missing messages are received or until the sequence is closed.

272 2.5 Example Message Exchange 273

278 4. The RM Source begins Transmitting messages in the Sequence beginning with MessageNumber 1. 279 In the figure above, the RM Source sends 3 messages in the Sequence.

280 5. The 2nd message in the Sequence is lost in transit.

281 6. The 3rd message is the last in this Sequence and the RM Source includes an AckRequested282 header to ensure that it gets a timely SequenceAcknowledgement for the Sequence.

283 7. The RM Destination acknowledges receipt of message numbers 1 and 3 as a result of receiving the 284 RM Source's AckRequested header.

285 8. The RM Source retransmits the unacknowledged message with MessageNumber 2. This is a new 286 message from the perspective of the underlying transport, but it has the same Sequence Identifier 287 and MessageNumber so the RM Destination can recognize it as a duplicate of the earlier message, 288 in case the original and retransmitted messages are both Received. The RM Source includes an 289 AckRequested header in the retransmitted message so the RM Destination will expedite an 290 acknowledgement.

291 9. The RM Destination Receives the second transmission of the message with MessageNumber 2 292 and acknowledges receipt of message numbers 1, 2, and 3.

293 10.The RM Source Receives this Acknowledgement and sends a TerminateSequence message to the 294 RM Destination indicating that the Sequence is completed. The TerminateSequence message 295 indicates that message number 3 was the last message in the Sequence. The RM Destination then 296 and reclaims any resources associated with the Sequence.

297 11.The RM Destination Receives the TerminateSequence message indicating that the RM Source will 298 not be sending any more messages. The RM Destination sends a TerminateSequenceResponse 299 message to the RM Source and and reclaims any resources associated with the Sequence.

300 The RM Source will expect to Receive Acknowledgements from the RM Destination during the course of a 301 message exchange at occasions described in Section 3 below. Should an Acknowledgement not be 302 Received in a timely fashion, the RM Source MUST re-transmit the message since either the message or 303 the associated Acknowledgement might have been lost. Since the nature and dynamic characteristics of 304 the underlying transport and potential intermediaries are unknown in the general case, the timing of re305 transmissions cannot be specified. Additionally, over-aggressive re-transmissions have been 306 demonstrated to cause transport or intermediary flooding which are counterproductive to the intention of 307 providing a reliable exchange of messages. Consequently, implementers are encouraged to utilize 308 adaptive mechanisms that dynamically adjust re-transmission time and the back-off intervals that are 309 appropriate to the nature of the transports and intermediaries envisioned. For the case of TCP/IP 310 transports, a mechanism similar to that described as RTTM in RFC 1323 [RTTM] SHOULD be 311 considered.

312 Now that the basic model has been outlined, the details of the elements used in this protocol are now 313 provided in Section 3.

314

3 RM Protocol Elements

315 The following sub-sections define the various RM protocol elements, and prescribe their usage by a 316 conformant implementations.

317 3.1 Considerations on the Use of Extensibility Points

318 The following protocol elements define extensibility points at various places. Implementations MAY add 319 child elements and/or attributes at the indicated extension points but MUST NOT contradict the semantics 320 of the parent and/or owner, respectively. If a receiver does not recognize an extension, the receiver 321 SHOULD ignore the extension.

322 3.2 Considerations on the Use of "Piggy-Backing"

323 Some RM Protocol Header Blocks may be added to messages that are targeted to the same Endpoint to 324 which those headers are to be sent (a concept often referred to as "piggy-backing"), thus saving the 325 overhead of an additional message exchange. Reference parameters MUST be considered when 326 determining whether two EPRs are targeted to the same Endpoint. The determination of if and when a 327 Header Block will be piggy-backed onto another message is made by the entity (RM Source or RM 328 Destination) that is sending the header. In order to ensure optimal and successful processing of RM 329 Sequences, endpoints that receive RM-related messages SHOULD be prepared to process RM Protocol 330 Header Blocks that are included in any message it receives. See the sections that define each RM 331 Protocol Header Block to know which ones may be considered for piggy-backing. header blocks may be 332 added to messages that happen to be targeted to the same Endpoint to which those headers are to be 333 sent (a concept often referred to as "piggy-backing"), thus saving the overhead of an additional message 334 exchange. Reference parameters MUST be considered when determining whether two EPRs are targeted 335 to the same Endpoint.

336 3.3 Composition with WS-Addressing

337 When the RM protocol, defined in this specification, is composed with the WS-Addressing specification, 338 the following rules prescribe the constraints on the value of the wsa:Action header:

339 1. When an Endpoint generates a message that carries an RM protocol element, that is defined in 340 the following sections, in the body of a SOAP envelope that Endpoint MUST include in that 341 envelope a wsa:Action SOAP header block whose value is an IRI that is a concatenation of the 342 WS-RM namespace URI, followed by a "/", followed by the value of the local name of the child 343 element of the SOAP body . For example, for a Sequence creation request message as described 344 in section 3.4section 3 below, in the body of a SOAP envelope that Endpoint MUST include in that 345 envelope a wsa:Action SOAP header block whose value is an IRI that is a concatenation of the 346 WS-RM namespace URI, followed by a "/", followed by the value of the local name of the child 347 element of the SOAP body . For example, for a Sequence creation request message as described 348 in section 3.1 below, the value of the wsa:Action IRI would be:

349 http://docs.oasis-open.org/ws-rx/wsrm/200702608/CreateSequence 350 2. When an Endpoint generates an Acknowledgement Message that has no element content in the 351 SOAP body, then the value of the wsa:ActionIRI MUST be:

352 http://docs.oasis-open.org/ws-rx/wsrm/200702608/SequenceAcknowledgement 353 3. When an Endpoint generates an Acknowledgement Request that has no element content in the 354 SOAP body, then the value of the wsa:ActionIRI MUST be: 355 http://docs.oasis-open.org/ws-rx/wsrm/200702608/AckRequested 356 4. When an Endpoint generates an RM fault as defined in section 4 below, the value of the 357 wsa:Action IRI MUST be as defined in section 4 below.

358 3.4 Sequence Creation

359 The RM Source MUST request creation of an outbound Sequence by sending a CreateSequence360 element in the body of a message to the RM Destination which in turn responds either with a message 361 containing CreateSequenceResponse or a CreateSequenceRefusedfault. The RM Source MAY 362 include an offer to create an inbound Sequence within the CreateSequence message. This offer is 363 either accepted or rejected by the RM Destination in the CreateSequenceResponsemessage.

364 The SOAP version used for the CreateSequence message SHOULD be used for all subsequent 365 messages in or for that Sequence, sent by either the RM Source or the RM Destination.

366 The following exemplar defines the CreateSequence syntax:

367 <wsrm:CreateSequence ...> 368 <wsrm:AcksTo> wsa:EndpointReferenceType </wsrm:AcksTo> 369 <wsrm:Expires ...> xs:duration </wsrm:Expires> ? 370 <wsrm:Offer ...> 371 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier> 372 <wsrm:Endpoint> wsa:EndpointReferenceType </wsrm:Endpoint> 373 <wsrm:Expires ...> xs:duration </wsrm:Expires> ? 374 <wsrm:IncompleteSequenceBehavior> 375 wsrm:IncompleteSequenceBehaviorType 376 </wsrm:IncompleteSequenceBehavior> ? 377 ... 378 </wsrm:Offer> ? 379 ... 380 </wsrm:CreateSequence> 381 The following describes the content model of the CreateSequence element.

382 /wsrm:CreateSequence

383 This element requests creation of a new Sequence between the RM Source that sends it, and the RM 384 Destination to which it is sent. The RM Source MUST NOT send this element as a header block. The RM 385 Destination MUST respond either with a CreateSequenceResponse response message or a 386 CreateSequenceRefused fault.

387 /wsrm:CreateSequence/wsrm:AcksTo

388 The RM Source MUST include this element in any CreateSequence message it sends. This element is of 389 type wsa:EndpointReferenceType (as specified by WS-Addressing). It specifies the endpoint 390 reference to which messages containing SequenceAcknowledgement header blocks and faults related 391 to the created Sequence are to be sent, unless otherwise noted in this specification (for example, see 392 Section 3.52).

393 Implementations MUST NOT use an endpoint reference in the AcksTo element that would prevent the 394 sending of Sequence Acknowledgements back to the RM Source. For example, using the WS-Addressing 395 "http://www.w3.org/2005/08/addressing/none" IRI would make it impossible for the RM Destination to ever 396 send Sequence Acknowledgements.

397 /wsrm:CreateSequence/wsrm:Expires

398 This element, if present, of type xs:duration specifies the RM Source's requested duration for the 399 Sequence. The RM Destination MAY either accept the requested duration or assign a lesser value of its

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 12 of 90

400 choosing. A value of "PT0S" indicates that the Sequence will never expire. Absence of the element 401 indicates an implied value of "PT0S".

402 /wsrm:CreateSequence/wsrm:Expires/@{any}

403 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 404 element.

405 /wsrm:CreateSequence/wsrm:Offer

406 This element, if present, enables an RM Source to offer a corresponding Sequence for the reliable 407 exchange of messages Transmitted from RM Destination to RM Source.

408 /wsrm:CreateSequence/wsrm:Offer/wsrm:Identifier

409 The RM Source MUST set the value of this element to an absolute URI (conformant with RFC3986 [URI]) 410 that uniquely identifies the offered Sequence.

411 /wsrm:CreateSequence/wsrm:Offer/wsrm:Identifier/@{any}

412 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 413 element.

414 /wsrm:CreateSequence/wsrm:Offer/wsrm:Endpoint

415 An RM Source MUST include this element, of type wsa:EndpointReferenceType (as specified by 416 WS-Addressing). This element specifies the endpoint reference to which Sequence Lifecycle Messages, 417 Sequence Traffic Messages, Acknowledgement Requests, and fault messages related to the offered 418 Sequence are to be sent.

419 Implementations MUST NOT use an endpoint reference in the Endpoint element that would prevent the 420 sending of Sequence Lifecycle Message, etc. For example, using the WS-Addressing 421 "http://www.w3.org/2005/08/addressing/none" IRI would make it impossible for the RM Destination to ever 422 send Sequence Lifecycle Messages (e.g. TerminateSequence) to the RM Source for the Offered 423 Sequence.Sequence Traffic Message, etc. For example, using the WS-Addressing 424 "http://www.w3.org/2005/08/addressing/none" IRI would make it impossible for the RM Destination to ever 425 send Sequence Lifecycle Messages (e.g. TerminateSequence) to the RM Source for the Offered 426 Sequence. Implementations MAY use the WS-RM anonymous URI template and doing so implies that 427 messages will be retrieved using a mechanism such as the MakeConnectionmessage (see section 428 3.7).

429 The Offer of an Endpoint containing the "http://www.w3.org/2005/08/addressing/anonymous" IRI as its 430 address is problematic due to the inability of a source to connect to this address and retry 431 unacknowledged messages (as described in Section 2.3). Note that this specification does not define any 432 mechanisms for providing this assurance. In the absence of an extension that addresses this issue, an 433 RM Destination MUST NOT accept (via the /wsrm:CreateSequenceResponse/wsrm:Accept434 element described below) an Offer that contains the "http://www.w3.org/2005/08/addressing/anonymous" 435 IRI as its address.

436 /wsrm:CreateSequence/wsrm:Offer/wsrm:Expires

437 This element, if present, of type xs:duration specifies the duration for the offered Sequence. A value of 438 "PT0S" indicates that the offered Sequence will never expire. Absence of the element indicates an implied 439 value of "PT0S".

440 /wsrm:CreateSequence/wsrm:Offer/wsrm:Expires/@{any}

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 13 of 90

441 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 442 element.

443 /wsrm:CreateSequence/wsrm:Offer/wsrm:IncompleteSequenceBehavior 444 This element, if present, specifies the behavior that the destination will exhibit upon the closure or 445 termination of an incomplete Sequence. For the purposes of defining the values used, the term "discard" 446 refers to behavior equivalent to the Application Destination never processing a particular message.

447 A value of “DiscardEntireSequence” indicates that the entire Sequence MUST be discarded if the 448 Sequence is closed, or terminated, when there are one or more gaps in the final 449 SequenceAcknowledgement.

450 A value of “DiscardFollowingFirstGap” indicates that messages in the Sequence beyond the first gap 451 MUST be discarded when there are one or more gaps in the final SequenceAcknowledgement.

452 The default value of “NoDiscard” indicates that no acknowledged messages in the Sequence will be 453 discarded.

454 /wsrm:CreateSequence/wsrm:Offer/{any}

455 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 456 to be passed.

457 /wsrm:CreateSequence/wsrm:Offer/@{any}

458 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 459 elementdifferent (extensible) types of information, based on a schema, to be passed.

460 /wsrm:CreateSequence/{any}

461 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 462 to be passed.

463 /wsrm:CreateSequence/@{any}

464 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 465 element.

466 A CreateSequenceResponse is sent in the body of a response message by an RM Destination in 467 response to receipt of a CreateSequence request message. It carries the Identifier of the created 468 Sequence and indicates that the RM Source can begin sending messages in the context of the identified 469 Sequence.

470 The following exemplar defines the CreateSequenceResponse syntax:

471 <wsrm:CreateSequenceResponse ...> 472 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier> 473 <wsrm:Expires ...> xs:duration </wsrm:Expires> ? 474 <wsrm:IncompleteSequenceBehavior> 475 wsrm:IncompleteSequenceBehaviorType 476 </wsrm:IncompleteSequenceBehavior> ? 477 <wsrm:Accept ...> 478 <wsrm:AcksTo> wsa:EndpointReferenceType </wsrm:AcksTo> 479 ... 480 </wsrm:Accept> ? 481 ... 482 </wsrm:CreateSequenceResponse> 483 The following describes the content model of the CreateSequenceResponseelement.

484 /wsrm:CreateSequenceResponse

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 14 of 90

485 This element is sent in the body of the response message in response to a CreateSequence request 486 message. It indicates that the RM Destination has created a new Sequence at the request of the RM 487 Source. The RM Destination MUST NOT send this element as a header block.

488 /wsrm:CreateSequenceResponse/wsrm:Identifier

489 The RM Destination MUST include this element within any CreateSequenceResponse message it sends. 490 The RM Destination MUST set the value of this element to the absolute URI (conformant with RFC3986) 491 that uniquely identifies the Sequence that has been created by the RM Destination.

492 /wsrm:CreateSequenceResponse/wsrm:Identifier/@{any}

493 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 494 element.

495 /wsrm:CreateSequenceResponse/wsrm:Expires

496 This element, if present, of type xs:duration accepts or refines the RM Source's requested duration for 497 the Sequence. It specifies the amount of time after which any resources associated with the Sequence 498 SHOULD be reclaimed thus causing the Sequence to be silently teriminated. At the RM Destination this 499 duration is measured from a point proximate to Sequence creation and at the RM Source this duration is 500 measured from a point approximate to the successful processing of the CreateSequenceResponse. A 501 value of "PT0S" indicates that the Sequence will never expire. Absence of the element indicates an 502 implied value of "PT0S". The RM Destination MUST set the value of this element to be equal to or less 503 than the value requested by the RM Source in the corresponding CreateSequence message.

504 /wsrm:CreateSequenceResponse/wsrm:Expires/@{any}

505 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 506 element.

507 /wsrm:CreateSequenceResponse/wsrm:IncompleteSequenceBehavior 508 This element, if present, specifies the behavior that the destination will exhibit upon the closure or 509 termination of an incomplete Sequence. For the purposes of defining the values used, the term "discard" 510 refers to behavior equivalent to the Application Destination never processing a particular message.

511 A value of “DiscardEntireSequence” indicates that the entire Sequence MUST be discarded if the 512 Sequence is closed, or terminated, when there are one or more gaps in the final 513 SequenceAcknowledgement.

514 A value of “DiscardFollowingFirstGap” indicates that messages in the Sequence beyond the first gap 515 MUST be discarded when there are one or more gaps in the final SequenceAcknowledgement.

516 The default value of “NoDiscard” indicates that no acknowledged messages in the Sequence will be 517 discarded.

518 /wsrm:CreateSequenceResponse/wsrm:Accept

519 This element, if present, enables an RM Destination to accept the offer of a corresponding Sequence for 520 the reliable exchange of messages Transmitted from RM Destination to RM Source.

521 Note: If a CreateSequenceResponse is returned without a child Acceptin response to a 522 CreateSequence that did contain a child Offer, then the RM Source MAY immediately reclaim any 523 resources associated with the unused offered Sequence.

524 /wsrm:CreateSequenceResponse/wsrm:Accept/wsrm:AcksTo

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 15 of 90

525 The RM Destination MUST include this element, of type wsa:EndpointReferenceType(as specified 526 by WS-Addressing). It specifies the endpoint reference to which messages containing 527 SequenceAcknowledgement header blocks and faults related to the created Sequence are to be sent, 528 unless otherwise noted in this specification (for example, see Section 3.52).

529 Implementations MUST NOT use an endpoint reference in the AcksTo element that would prevent the 530 sending of Sequence Acknowledgements back to the RM Source. For example, using the WS-Addressing 531 "http://www.w3.org/2005/08/addressing/none" IRI would make it impossible for the RM Destination to ever 532 send Sequence Acknowledgements.

533 /wsrm:CreateSequenceResponse/wsrm:Accept/{any}

534 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 535 to be passed.

536 /wsrm:CreateSequenceResponse/wsrm:Accept/@{any}

537 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 538 element.different (extensible) types of information, based on a schema, to be passed.

539 /wsrm:CreateSequenceResponse/{any}

540 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 541 to be passed.

542 /wsrm:CreateSequenceResponse/@{any}

543 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 544 element.

545 3.5 Closing A Sequence

546 There are times during the use of an RM Sequence that the RM Source or RM Destination will wish to 547 discontinue using a Sequence. Simply terminating the Sequence discards the state managed by the RM 548 Destination, leaving the RM Source unaware of the final ranges of messages that were successfully 549 transferred to the RM Destination. To ensure that the Sequence ends with a known final state either the 550 RM Source or RM Destination MAY choose to close the Sequence before terminating it.

551 If the RM Source wishes to close the Sequence, then it sends a CloseSequence element, in the body of 552 a message, to the RM Destination. This message indicates that the RM Destination MUST NOT accept 553 any new messages for the specified Sequence, other than those already accepted at the time the 554 CloseSequence element is interpreted by the RM Destination. Upon receipt of this message, or 555 subsequent to the RM Destination closing the Sequence of its own volition, the RM Destination MUST 556 include a final SequenceAcknowledgement(within which the RM Destination MUST include the Final 557 element) header block on any messages associated with the Sequence destined to the RM Source, 558 including the CloseSequenceResponse message or on any Sequence fault Transmitted to the RM 559 Source.

560 To allow the RM Destination to determine if it has received all of the messages in a Sequence, the RM 561 Source SHOULD include the LastMsgNumber element in any CloseSequence messages it sends. The 562 RM Destination can use this information, for example, to implement the behavior indicated by / 563 wsrm:CreateSequenceResponse/wsrm:IncompleteSequenceBehavior. The value of the 564 LastMsgNumber element MUST be the same in all the CloseSequence messages for the closing 565 Sequence.

566 If the RM Destination decides to close a Sequence of its own volition, it MAY inform the RM Source of this 567 event by sending a CloseSequence element, in the body of a message, to the AcksTo EPR of that 568 Sequence. The RM Destination MUST include a final SequenceAcknowledgement (within which the RM 569 Destination MUST include the Finalelement) header block in this message and any subsequent 570 messages associated with the Sequence destined to the RM Source.

571 While the RM Destination MUST NOT accept any new messages for the specified Sequence it MUST still 572 process Sequence Lifecyle Messages and Acknowledgement Requests. For example, it MUST respond to 573 AckRequested, TerminateSequence as well as CloseSequence messages. Note, subsequent 574 CloseSequence messages have no effect on the state of the Sequence.

575 In the case where the RM Destination wishes to discontinue use of a Sequence it is RECOMMENDED 576 that it close the Sequence. Please see Final and the SequenceClosed fault. Whenever possible the 577 SequenceClosed fault SHOULD be used in place of the SequenceTerminatedfault to allow the RM 578 Source to still Receive Acknowledgements.

579 The following exemplar defines the CloseSequence syntax:

580 581 582 583 584

585 The following describes the content model of the CloseSequenceelement.

586 /wsrm:CloseSequence

587 This element MAY be sent by an RM Source to indicate that the RM Destination MUST NOT accept any 588 new messages for this Sequence This element MAY also be sent by an RM Destination to indicate that it 589 will not accept any new messages for this Sequenceis sent by an RM Source to indicate that the RM 590 Destination MUST NOT accept any new messages for this Sequence. A SequenceClosed fault MUST be 591 generated by the RM Destination when it Receives a message for a Sequence that is already closed.

592 /wsrm:CloseSequence/wsrm:Identifier

593 The RM Source or RM Destination MUST include this element in any CloseSequence messages it sends. 594 The RM Source or RM Destination MUST set the value of this element to the absolute URI (conformant 595 with RFC3986) of the closing SequenceMUST include this element in any CloseSequence messages it 596 sends. The RM Source MUST set the value of this element to the absolute URI (conformant with 597 RFC3986) of the Sequence that is being closed.

598 /wsrm:CloseSequence/wsrm:LastMessageNumber

599 The RM Source SHOULD include this element in any CloseSequence message it sends. The 600 LastMsgNumber element specifies the highest assigned message number of all the Sequence Traffic 601 Messages for the closing Sequence.

602 /wsrm:CloseSequence/wsrm:Identifier/@{any}

603 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 604 element.

605 /wsrm:CloseSequence/{any}

606 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 607 to be passed.

608 /wsrm:CloseSequence@{any}

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 17 of 90

609 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 610 element.

611 A CloseSequenceResponse is sent in the body of a message in response to receipt of a 612 CloseSequence request message. It indicates that the responderresponse message by an RM 613 Destination in response to receipt of a CloseSequence request message. It indicates that the RM 614 Destination has closed the Sequence.

615 The following exemplar defines the CloseSequenceResponse syntax:

616 <wsrm:CloseSequenceResponse ...> 617 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier> 618 ... 619 </wsrm:CloseSequenceResponse>

620 The following describes the content model of the CloseSequenceResponse element.

621 /wsrm:CloseSequenceResponse

622 This element is sent in the body of a message in response to receipt of a CloseSequence request 623 message. It indicates that the responderresponse message by an RM Destination in response to receipt 624 of a CloseSequence request message. It indicates that the RM Destination has closed the Sequence.

625 /wsrm:CloseSequenceResponse/wsrm:Identifier

626 The responder (RM Source or RM Destination) MUST include this element in any 627 CloseSequenceResponse message it sends. The responder MUST set the value of this element to the 628 absolute URI (conformant with RFC3986) of the closing SequenceRM Destination MUST include this 629 element in any CloseSequenceResponse message it sends. The RM Destination MUST set the value of 630 this element to the absolute URI (conformant with RFC3986) of the Sequence that is being closed.

631 /wsrm:CloseSequenceResponse/wsrm:Identifier/@{any}

632 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 633 element.

634 /wsrm:CloseSequenceResponse/{any}

635 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 636 to be passed.

637 /wsrm:CloseSequenceResponse@{any}

638 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 639 element.

640 3.6 Sequence Termination

641 When the RM Source has completed its use of the Sequence it sends a TerminateSequence element, 642 in the body of a message, to the RM Destination to indicate that the Sequence is complete and that it will 643 not be sending any further messages related to the Sequence. The RM Destination can safely reclaim any 644 resources associated with the Sequence upon receipt of the TerminateSequence message. Under 645 normal usage the RM Source will complete its use of the Sequence when all of the messages in the 646 Sequence have been acknowledged. However, the RM Source is free to Terminate or Close a Sequence 647 at any time regardless of the acknowledgement state of the messages.

648 To allow the RM Destination to determine if it has received all of the messages in a Sequence, the RM 649 Source SHOULD include the LastMsgNumber element in any TerminateSequence messages it sends. 650 The RM Destination can use this information, for example, to implement the behavior indicated by / 651 wsrm:CreateSequenceResponse/wsrm:IncompleteSequenceBehavior. The value of the 652 LastMsgNumber element in the TerminateSequence message MUST be equal to the value of the 653 LastMsgNumber element in any CloseSequence message(s) sent by the RM Source for the same 654 Sequence.

655 If the RM Destination decides to terminate a Sequence of its own volition, it MAY inform the RM Source of 656 this event by sending a TerminateSequence element, in the body of a message, to the AcksTo EPR for 657 that Sequence. The RM Destination MUST include a final SequenceAcknowledgement(within which 658 the RM Destination MUST include the Finalelement) header block in this message.

659 The following exemplar defines the TerminateSequence syntax:

660 661 662 663 664

665 The following describes the content model of the TerminateSequenceelement.

666 /wsrm:TerminateSequence

667 This element MAY beis sent by an RM Source to indicate it has completed its use of the Sequence. It 668 indicates that the RM Destination can safely reclaim any resources related to the identified Sequence. The 669 RM Source MUST NOT send this element as a header block. The RM Source MAY retransmit this 670 element. Once this element is sent, other than this element, the RM Source MUST NOT send any 671 additional message to the RM Destination referencing this Sequence.

672 This element MAY also be sent by the RM Destination to indicate that it has unilaterally terminated the 673 Sequence. Upon sending this message the RM Destination MUST NOT accept any additional messages 674 (with the exception of the corresponding TerminateSequenceResponse) for this Sequence. Upon 675 receipt of a TerminateSequencethe RM Source MUST NOT send any additional messages (with the 676 exception of the corresponding TerminateSequenceResponse) for this Sequence.

677 /wsrm:TerminateSequence/wsrm:Identifier

678 The RM Source or RM Destination MUST include this element in any TerminateSequence message it 679 sends. The RM Source or RM Destination MUST set the value of this element to the absolute URI 680 (conformant with RFC3986) of the terminating SequenceMUST include this element in any 681 TerminateSequence message it sends. The RM Source MUST set the value of this element to the 682 absolute URI (conformant with RFC3986) of the Sequence that is being terminated.

683 /wsrm:TerminateSequence/wsrm:LastMsgNumber

684 The RM Source SHOULD include this element in any TerminateSequence message it sends. The 685 LastMsgNumber element specifies the highest assigned message number of all the Sequence Traffic 686 Messages for the closing Sequence.

687 /wsrm:TerminateSequence/wsrm:Identifier/@{any}

688 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 689 element.

690 /wsrm:TerminateSequence/{any}

691 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 692 to be passed.

693 /wsrm:TerminateSequence/@{any}

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 19 of 90

694 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 695 element.

696 A TerminateSequenceResponse is sent in the body of a message in response to receipt of a 697 TerminateSequence request message. It indicates that responderresponse message by an RM 698 Destination in response to receipt of a TerminateSequence request message. It indicates that the RM 699 Destination has terminated the Sequence.

700 The following exemplar defines the TerminateSequenceResponse syntax:

701 <wsrm:TerminateSequenceResponse ...> 702 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier> 703 ... 704 </wsrm:TerminateSequenceResponse> 705 The following describes the content model of the TerminateSequenceelement.

706 /wsrm:TerminateSequenceResponse

707 This element is sent in the body of a message in response to receipt of a TerminateSequence request 708 message. It indicates that the responder has terminated the Sequence. The responderresponse message 709 by an RM Destination in response to receipt of a TerminateSequence request message. It indicates 710 that the RM Destination has terminated the Sequence. The RM Destination MUST NOT send this element 711 as a header block.

712 /wsrm:TerminateSequenceResponse/wsrm:Identifier

713 The responder (RM Source or RM Destination) MUST include this element in any 714 TerminateSequenceResponse message it sends. The responder MUST set the value of this element 715 to the absolute URI (conformant with RFC3986) of the terminating SequenceRM Destination MUST 716 include this element in any TerminateSequenceResponse message it sends. The RM Destination 717 MUST set the value of this element to the absolute URI (conformant with RFC3986) of the Sequence that 718 is being terminated.

719 /wsrm:TerminateSequenceResponse/wsrm:Identifier/@{any}

720 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 721 element.

722 /wsrm:TerminateSequenceResponse/{any}

723 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 724 to be passed.

725 /wsrm:TerminateSequenceResponse/@{any}

726 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 727 element.

728 On receipt of a TerminateSequence message the receiver (RM Source or RM Destination)an RM 729 Destination MUST respond with a corresponding TerminateSequenceResponse message or generate 730 a fault UnknownSequenceFaultif the Sequence is not known.

731 3.7 Sequences

732 The RM protocol uses a Sequence header block to track and manage the reliable transfer of messages. 733 The RM Source MUST include a Sequence header block in all messages for which reliable transfer is 734 REQUIRED. The RM Source MUST identify Sequences with unique Identifier elements and the RM 735 Source MUST assign each message within a Sequence a MessageNumber element that increments by 1

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 20 of 90

736 from an initial value of 1. These values are contained within a Sequence header block accompanying 737 each message being transferred in the context of a Sequence.

738 The RM Source MUST NOT include more than one Sequence header block in any message.

739 A following exemplar defines its syntax:

740 <wsrm:Sequence ...> 741 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier> 742 <wsrm:MessageNumber> wsrm:MessageNumberType </wsrm:MessageNumber> 743 ... 744 </wsrm:Sequence>

745 The following describes the content model of the Sequenceheader block.

746 /wsrm:Sequence 747 This protocol element associates the message in which it is contained with a previously established RM 748 Sequence. It contains the Sequence's unique identifier and the containing message's ordinal position 749 within that Sequence. The RM Destination MUST understand the Sequenceheader block. The RM 750 Source MUST assign a mustUnderstand attribute with a value 1/true (from the namespace 751 corresponding to the version of SOAP to which the SequenceSOAP header block is bound) to the 752 Sequence header block element.

753 /wsrm:Sequence/wsrm:Identifier

754 An RM Source that includes a Sequenceheader block in a SOAP envelope MUST include this element in 755 that header block. The RM Source MUST set the value of this element to the absolute URI (conformant 756 with RFC3986) that uniquely identifies the Sequence.

757 /wsrm:Sequence/wsrm:Identifier/@{any}

758 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 759 element.

760 /wsrm:Sequence/wsrm:MessageNumber

761 The RM Source MUST include this element within any Sequence headers it creates. This element is of 762 type MessageNumberType. It represents the ordinal position of the message within a Sequence. 763 Sequence message numbers start at 1 and monotonically increase by 1 throughout the Sequence. See 764 Section 4.5 for Message Number Rollover fault.

765 /wsrm:Sequence/{any}

766 This is an extensibility mechanism to allow different types of information, based on a schema, to be 767 passed.

768 /wsrm:Sequence/@{any}

769 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 770 element.

771 The following example illustrates a Sequence header block.

772 <wsrm:Sequence>773 <wsrm:Identifier>http://example.com/abc</wsrm:Identifier>774 <wsrm:MessageNumber>10</wsrm:MessageNumber>775 </wsrm:Sequence>

776 3.8 Request Acknowledgement

777 The purpose of the AckRequested header block is to signal to the RM Destination that the RM Source is 778 requesting that a SequenceAcknowledgement be sent.

779 The RM Source MAY request an Acknowledgement Message from the RM Destination at any time by 780 independently transmitting an AckRequested header block (i.e. as a header of a SOAP envelope with an 781 empty body). Alternatively the RM Source MAY include an AckRequested header block in any message 782 targeted to the RM Destination. The RM Destination SHOULD process AckRequestedheader blocks 783 that are included in any message it receives. If a non-mustUnderstand fault occurs when processing an 784 AckRequested header block that was piggy-backed, a fault MUST be generated, but the processing of 785 the original message MUST NOT be affected.cluding an AckRequested header block in any message 786 targeted to the RM Destination. An RM Destination that Receives a message that contains an 787 AckRequested header block MUST send a message containing a SequenceAcknowledgement 788 header block to the AcksToendpoint reference (see Section 3.1) for a known Sequence or else generate 789 an UnknownSequence fault. If a non-mustUnderstand fault occurs when processing an RM header that 790 was piggy-backed on another message, a fault MUST be generated, but the processing of the original 791 message MUST NOT be affected. It is RECOMMENDED that the RM Destination return a 792 AcknowledgementRange or None element instead of a Nackelement (see Section 3.6).

793 An RM Destination that Receives a message that contains an AckRequested header block MUST send 794 a message containing a SequenceAcknowledgement header block to the AcksTo endpoint reference 795 (see Section 3.4) for a known Sequence or else generate an UnknownSequence fault. It is 796 RECOMMENDED that the RM Destination return a AcknowledgementRange or None element instead 797 of a Nack element (see Section 3.9).

798 The following exemplar defines its syntax:

799 <wsrm:AckRequested ...> 800 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier> 801 ... 802 </wsrm:AckRequested> 803 The following describes the content model of the AckRequestedheader block.

804 /wsrm:AckRequested

805 This element requests an Acknowledgement for the identified Sequence.

806 /wsrm:AckRequested/wsrm:Identifier 807 An RM Source that includes an AckRequested header block in a SOAP envelope MUST include this 808 element in that header block. The RM Source MUST set the value of this element to the absolute URI, 809 (conformant with RFC3986), that uniquely identifies the Sequence to which the request applies.

810 /wsrm:AckRequested/wsrm:Identifier/@{any}

811 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 812 element.

813 /wsrm:AckRequested/{any}

814 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 815 to be passed.

816 /wsrm:AckRequested/@{any}

817 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 818 element.

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 22 of 90

819 3.9 Sequence Acknowledgement

820 The RM Destination informs the RM Source of successful message receipt using a 821 SequenceAcknowledgement header block. Acknowledgements can be explicitly requested using the 822 AckRequested directive (see Section 3.8)The RM Destination MAY Transmit the 823 SequenceAcknowledgement header block independently or it MAY include the 824 SequenceAcknowledgement header block on any message targeted to the AcksTo EPR. 825 Acknowledgements can be explicitly requested using the AckRequested directive (see Section 3.5). If a 826 non-mustUnderstand fault occurs when processing an RM header that was piggy-backed on another 827 message, a fault MUST be generated, but the processing of the original message MUST NOT be 828 affected.

829 The RM Destination MAY Transmit the SequenceAcknowledgement header block independently (i.e. 830 As a header of a SOAP envelope with an empty body). Alternatively, an RM Destination MAY include a 831 SequenceAcknowledgement header block on any SOAP envelope targeted to the endpoint referenced 832 by the AcksTo EPR. The RM Source SHOULD process SequenceAcknowledgementheader blocks 833 that are included in any message it receives. If a non-mustUnderstand fault occurs when processing a 834 SequenceAcknowledgement header that was piggy-backed, a fault MUST be generated, but the 835 processing of the original message MUST NOT be affectedA RM Destination MAY include a 836 SequenceAcknowledgement header block on any SOAP envelope targetted to the endpoint referenced 837 by the AcksTo EPR.

838 During creation of a Sequence the RM Source MAY specify the WS-Addressing anonymous IRI as the 839 address of the AcksTo EPR for that Sequence. When the RM Source specifies the WS-Addressing 840 anonymous IRI as the address of the AcksToEPR, the RM Destination MUST Transmit any 841 SequenceAcknowledgement headers for the created Sequence in a SOAP envelope to be Transmitted 842 on the protocol binding-specific back-channel. Such a channel is provided by the context of a Received 843 message containing a SOAP envelope that contains a Sequenceheader block and/or an AckRequested 844 header block for that same Sequence identifier. When the RM Destination receives an AckRequested 845 header, and the AckTo EPR for that sequence is the WS-Addressing anonymous IRI, the RM Destination 846 SHOULD respond on the protocol binding-specific back-channel provided by the Received message 847 containing the AckRequested header blockchannel. Such a channel is provided by the context of a 848 Received message containing a SOAP envelope that contains a Sequence header block and/or a 849 AckRequested header block for that same Sequence identifier.

850 The following exemplar defines its syntax:

851 <wsrm:SequenceAcknowledgement ...> 852 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier> 853 [ [ [ <wsrm:AcknowledgementRange ... 854 Upper="wsrm:MessageNumberType" 855 Lower="wsrm:MessageNumberType"/> + 856 | <wsrm:None/> ] 857 <wsrm:Final/> ? ] 858 | <wsrm:Nack> wsrm:MessageNumberType </wsrm:Nack> + ] 859 860 ... 861 </wsrm:SequenceAcknowledgement>

862 The following describes the content model of the SequenceAcknowledgementheader block.

863 /wsrm:SequenceAcknowledgement

864 This element contains the Sequence Acknowledgement information.

865 /wsrm:SequenceAcknowledgement/wsrm:Identifier

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 23 of 90

866 An RM Destination that includes a SequenceAcknowledgement header block in a SOAP envelope 867 MUST include this element in that header block. The RM Destination MUST set the value of this element 868 to the absolute URI (conformant with RFC3986) that uniquely identifies the Sequence. The RM 869 Destination MUST NOT include multiple SequenceAcknowledgement header blocks that share the 870 same value for Identifierwithin the same SOAP envelope.

871 /wsrm:SequenceAcknowledgement/wsrm:Identifier/@{any}

872 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 873 element.

874 /wsrm:SequenceAcknowledgement/wsrm:AcknowledgementRange

875 The RM Destination MAY include one or more instances of this element within a 876 SequenceAcknowledgement header block. It contains a range of Sequence message numbers 877 successfully accepted by the RM Destination. The ranges MUSTMessageNumbers successfully accepted 878 by the RM Destination. The ranges SHOULD NOT overlap. The RM Destination MUST NOT include this 879 element if a sibling Nack or None element is also present as a child of SequenceAcknowledgement.

880 /wsrm:SequenceAcknowledgement/wsrm:AcknowledgementRange/@Upper

881 The RM Destination MUST set the value of this attribute equal to the message number of the highest 882 contiguous message in a Sequence range accepted by the RM Destination.

883 /wsrm:SequenceAcknowledgement/wsrm:AcknowledgementRange/@Lower

884 The RM Destination MUST set the value of this attribute equal to the message number of the lowest 885 contiguous message in a Sequence range accepted by the RM Destination.

886 /wsrm:SequenceAcknowledgement/wsrm:AcknowledgementRange/@{any}

887 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 888 element.

889 /wsrm:SequenceAcknowledgement/wsrm:None

890 The RM Destination MUST include this element within a SequenceAcknowledgement header block if 891 the RM Destination has not accepted any messages for the specified Sequence. The RM Destination 892 MUST NOT include this element if a sibling AcknowledgementRange or Nack element is also present 893 as a child of the SequenceAcknowledgement.

894 /wsrm:SequenceAcknowledgement/wsrm:Final

895 The RM Destination MAY include this element within a SequenceAcknowledgement header block. This 896 element indicates that the RM Destination is not receiving new messages for the specified Sequence. The 897 RM Source can be assured that the ranges of messages acknowledged by this 898 SequenceAcknowledgement header block will not change in the future. The RM Destination MUST 899 include this element when the Sequence is closed. The RM Destination MUST NOT include this element 900 when sending a Nack; it can only be used when sending AcknowledgementRange elements or a None.

901 /wsrm:SequenceAcknowledgement/wsrm:Nack

902 The RM Destination MAY include this element within a SequenceAcknowledgement header block. If 903 used, the RM Destination MUST set the value of this element to a MessageNumberTyperepresenting 904 the MessageNumber of an unreceived message in a Sequence. The RM Destination MUST NOT include 905 a Nack element if a sibling AcknowledgementRangeor Noneelement is also present as a child of 906 SequenceAcknowledgement. Upon the receipt of a Nack, an RM Source SHOULD retransmit the 907 message identified by the Nack. The RM Destination MUST NOT issue a SequenceAcknowledgement

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 24 of 90

908 containing a Nack for a message that it has previously acknowledged within an 909 AcknowledgementRange. The RM Source SHOULD ignore a SequenceAcknowledgement containing 910 a Nack for a message that has previously been acknowledged within an AcknowledgementRange. The 911 RM Source SHOULD ignore a SequenceAcknowledgementcontaining a Nack for a message that has 912 previously been acknowledged within a AcknowledgementRange.

913 /wsrm:SequenceAcknowledgement/{any}

914 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 915 to be passed.

916 /wsrm:SequenceAcknowledgement/@{any}

917 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 918 element.

919 The following examples illustrate SequenceAcknowledgement elements:

920 Message numbers 1...10 inclusive in a Sequence have been accepted by the RM Destination.

921 <wsrm:SequenceAcknowledgement>922 <wsrm:Identifier>http://example.com/abc</wsrm:Identifier>923 <wsrm:AcknowledgementRange Upper="10" Lower="1"/>924 </wsrm:SequenceAcknowledgement>

925 • Message numbers 1..2, 4..6, and 8..10 inclusive in a Sequence have been accepted by the RM 926 Destination, messages 3 and 7 have not been accepted.

927 <wsrm:SequenceAcknowledgement>928 <wsrm:Identifier>http://example.com/abc</wsrm:Identifier>929 <wsrm:AcknowledgementRange Upper="2" Lower="1"/>930 <wsrm:AcknowledgementRange Upper="6" Lower="4"/>931 <wsrm:AcknowledgementRange Upper="10" Lower="8"/>932 </wsrm:SequenceAcknowledgement>

933 • Message number 3 in a Sequence has not been accepted by the RM Destination.

934 <wsrm:SequenceAcknowledgement>935 <wsrm:Identifier>http://example.com/abc</wsrm:Identifier>936 <wsrm:Nack>3</wsrm:Nack>937 </wsrm:SequenceAcknowledgement>

938 1.1 MakeConnection

939 When an Endpoint is not directly addressable (e.g. behind a firewall or not able to allow incoming 940 connections), an anonymous URI in the EPR address property can indicate such an Endpoint. The WS941 Addressing anonymous URI is one such anonymous URI. This specification defines a URI template (the 942 WS-RM anonymous URI) which may be used to uniquely identify anonymous Endpoints.

943 http://docs.oasis-open.org/ws-rx/wsrm/200608/anonymous?id={uuid} 944 This URI template in an EPR indicates a protocol-specific back-channel will be established through a 945 mechanism such as MakeConnection, defined below. When using this URI template, “{uuid}” MUST be 946 replaced by a UUID value as defined by RFC4122[UUID]. This UUID value uniquely distinguishes the 947 Endpoint. A sending Endpoint SHOULD Transmit messages at Endpoints identified with the URI template 948 using a protocol-specific back-channel, including but not limited to those established with a 949 MakeConnection message. Note, this URI is semantically similar to the WS-Addressing anonymous 950 URI if a protocol-specific back-channel is available.

951 The MakeConnection is a one-way operation that establishes a contextualized back-channel for the 952 transmission of messages according to matching criteria (defined below). In the non-faulting case, if no 953 matching message is available then no SOAP envelopes will be returned on the back-channel. A common 954 usage will be a client RM Destination sending MakeConnection to a server RM Source for the purpose 955 of receiving asynchronous response messages.

956 The following exemplar defines the MakeConnection syntax:

957 958 959 960 961

962 /wsrm:MakeConnection

963 This element allows the sender to create a transport-specific back-channel that can be used to return a 964 message that matches the selection criteria. Endpoints MUST NOT send this element as a header block.

965 /wsrm:MakeConnection/wsrm:Identifier

966 This element specifies the WS-RM Sequence Identifier that establishes the context for the transport967 specific back-channel. The Sequence Identifier should be compared with the Sequence Identifiers 968 associated with the messages held by the sending Endpoint, and if there is a matching message it will be 969 returned. If this element is omitted from the message then the AddressMUST be included in the 970 message.

971 /wsrm:MakeConnection/wsrm:Identifier/@{any}

972 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 973 element.

974 /wsrm:MakeConnection/wsrm:Address

975 This element specifies the URI (wsa:Address) of the initiating Endpoint. Endpoints MUST NOT return 976 messages on the transport-specific back-channel unless they have been addressed to this URI. This 977 Address property and a message’s WS-Addressing destination property are considered identical when 978 they are exactly the same character-for-character. Note that URIs which are not identical in this sense 979 may in fact be functionally equivalent. Examples include URI references which differ only in case, or 980 which are in external entities which have different effective base URIs. If this element is omitted from the 981 message then the IdentifierMUST be included in the message.

982 /wsrm:MakeConnection/wsrm:Address/@{any}

983 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 984 element.

985 /wsrm:MakeConnection/{any}

986 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 987 to be passed. This allows fine-tuning of the messages to be returned, additional selection criteria included 988 here are logically ANDed with the Address and/or Identifier. If an extension is not supported by the 989 Endpoint then it should return a UnsupportedSelection fault.

990 /wsrm:MakeConnection/@{any}

991 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 992 element.

993 If both Identifierand Address are present, then the Endpoint processing the MakeConnection 994 message MUST insure that any SOAP Envelope flowing on the backchannel MUST be associated with 995 the given Sequence and MUST be addressed to the given URI.

996 The management of messages that are awaiting the establishment of a back-channel to their receiving 997 Endpoint is an implementation detail that is outside the scope of this specification. Note, however, that 998 these messages form a class of asynchronous messages that is not dissimilar from “ordinary999 asynchronous messages that are waiting for the establishment of a connection to their destination

1000 Endpoints.

1001 This specification places no constraint on the types of messages that can be returned on the transport1002 specific back-channel. As in an asynchronous environment, it is up to the recipient of the 1003 MakeConnection message to decide which messages are appropriate for transmission to any particular 1004 Endpoint. However, the Endpoint processing the MakeConnection message MUST insure that the 1005 messages match the selection criteria as specified by the child elements of the MakeConnection 1006 element.

1007 1.2 MessagePending

1008 When MakeConnectionis used, and a message is returned on the transport-specific back-channel, the 1009 MessagePending header SHOULD be included on the returned message as an indicator whether there 1010 are additional messages waiting to be retrieved using the same selection criteria that was specified in the 1011 MakeConnection element.

1012 The following exemplar defines the MessagePending syntax: 1013

1014 1015 1016 /wsrm:MessagePending 1017 This element indicates whether additional messages are waiting to be retrieved.

1018 /wsrm:MessagePending@pending 1019 This attribute, when set to "true", indicates that there is at least one message waiting to be retrieved. 1020 When this attribute is set to "false" it indicates there are currently no messages waiting to be retrieved.

1021 /wsrm:MessagePending/{any} 1022 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 1023 to be passed.

1024 /wsrm:MessagePending/@{any} 1025 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 1026 element.

1027 The absence of the MessagePending header has no implication as to whether there are additional 1028 messages waiting to be retrieved.

1029

4 Faults

1030 Faults for the CreateSequence message exchange are treated as defined in WS-Addressing. Create 1031 Sequence Refused is a possible fault reply for this operation. Unknown Sequence is a fault generated by 1032 Endpoints when messages carrying RM header blocks targeted at unrecognized or terminated Sequences 1033 are detected. WSRMRequired is a fault generated an RM Destination that requires the use of WS-RM on 1034 a Received message that did not use the protocol. All other faults in this section relate to known 1035 Sequences. Destinations that generate faults related to known sequences SHOULD transmit those faults. 1036 If transmitted, such faults MUST be transmitted to the same [destination] as Acknowledgement m 1037 Required is a fault generated an RM Destination that requires the use of WS-RM on a Received message 1038 that did not use the protocol. All other faults in this section relate to known Sequences. RM Destinations 1039 that generate Sequence faults SHOULD send those faults to the same [destination] as Acknowledgement 1040 Messages.

1041 Entities that generate WS-ReliableMessaging faults MUST include as the [action] property the default fault 1042 action IRI defined below. The value from the W3C Recommendation is below for informational purposes: 1043 http://docs.oasis-open.org/ws-rx/wsrm/200702608/fault

1044 The faults defined in this section are generated if the condition stated in the preamble is met. Fault 1045 handling rules are defined in section 6 of WS-Addressing SOAP Binding.

1046 The definitions of faults use the following properties:

1047 [Code] The fault code.

1048 [Subcode] The fault subcode.

1049 [Reason] The English language reason element.

1050 [Detail] The detail element(s). If absent, no detail element is defined for the fault. If more than one detail 1051 element is defined for a fault, implementations MUST include the elements in the order that they are 1052 specified.

1053 Entities that generate WS-ReliableMessaging faults MUST set the [Code] property to either "Sender" or 1054 "Receiver". These properties are serialized into text XML as follows:

SOAP Version Sender Receiver
SOAP 1.1 S11:Client S11:Server
SOAP 1.2 S:Sender S:Receiver

1055 The properties above bind to a SOAP 1.2 fault as follows:

1056 <S:Envelope> 1057 <S:Header> 1058 <wsa:Action> 1059 http://docs.oasis-open.org/ws-rx/wsrm/200702608/fault 1060 </wsa:Action> 1061 <!-- Headers elided for brevclarity. --> 1062 </S:Header> 1063 <S:Body> 1064 <S:Fault> 1065 <S:Code> 1066 <S:Value> [Code] </S:Value> 1067 <S:Subcode> 1068 <S:Value> [Subcode] </S:Value> 1069 </S:Subcode> 1070 </S:Code> 1071 <S:Reason>

1072 <S:Text xml:lang="en"> [Reason] </S:Text> 1073 </S:Reason> 1074 <S:Detail> 1075 [Detail] 1076 ... 1077 </S:Detail> 1078 </S:Fault> 1079 </S:Body> 1080 </S:Envelope>

1081 The properties above bind to a SOAP 1.1 fault as follows when the fault is triggered by processing an RM 1082 header block:

1083 <S11:Envelope> 1084 <S11:Header> 1085 <wsrm:SequenceFault> 1086 <wsrm:FaultCode> wsrm:FaultCodes </wsrm:FaultCode> 1087 <wsrm:Detail> [Detail] </wsrm:Detail> 1088 ... 1089 </wsrm:SequenceFault> 1090 <!-- Headers elided for brevclarity. --> 1091 </S11:Header> 1092 <S11:Body> 1093 <S11:Fault> 1094 <faultcode> [Code] </faultcode> 1095 <faultstring> [Reason] </faultstring> 1096 </S11:Fault> 1097 </S11:Body> 1098 </S11:Envelope>

1099 The properties bind to a SOAP 1.1 fault as follows when the fault is generated as a result of processing a 1100 CreateSequence request message:

1101 <S11:Envelope> 1102 <S11:Body> 1103 <S11:Fault> 1104 <faultcode> [Subcode] </faultcode> 1105 <faultstring> [Reason] </faultstring> 1106 </S11:Fault> 1107 </S11:Body> 1108 </S11:Envelope>

1109 4.1 SequenceFault Element

1110 The purpose of the SequenceFault element is to carry the specific details of a fault generated during 1111 the reliable messaging specific processing of a message belonging to a Sequence. WS1112 ReliableMessaging nodes MUST use the SequenceFault container only in conjunction with the SOAP 1113 1.1 fault mechanism. WS-ReliableMessaging nodes MUST NOT use the SequenceFault container in 1114 conjunction with the SOAP 1.2 binding.

1115 The following exemplar defines its syntax:

1116 <wsrm:SequenceFault ...> 1117 <wsrm:FaultCode> wsrm:FaultCodes </wsrm:FaultCode> 1118 <wsrm:Detail> ... </wsrm:Detail> ? 1119 ... 1120 </wsrm:SequenceFault>

1121 The following describes the content model of the SequenceFaultelement.

1122 /wsrm:SequenceFault

1123 This is the element containing Sequence information for WS-ReliableMessaging

1124 /wsrm:SequenceFault/wsrm:FaultCode 1125 WS-ReliableMessaging nodes that generate a SequenceFault MUST set the value of this element to a 1126 qualified name from the set of fault [Subcodes] defined below.

1127 /wsrm:SequenceFault/wsrm:Detail 1128 This element, if present, carries application specific error information related to the fault being described.

1129 /wsrm:SequenceFault/wsrm:Detail/{any} 1130 The application specific error information related to the fault being described.

1131 /wsrm:SequenceFault/wsrm:Detail/@{any} 1132 The application specific error information related to the fault being described.

1133 /wsrm:SequenceFault/{any} 1134 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, 1135 to be passed.

1136 /wsrm:SequenceFault/@{any} 1137 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the 1138 element.

1139 4.2 Sequence Terminated

1140 The Endpoint that generates this fault SHOULD make every reasonable effort to notify the corresponding 1141 Endpoint of this decision.

1142 Properties:

1143 [Code] Sender or Receiver

1144 [Subcode] wsrm:SequenceTerminated

1145 [Reason] The Sequence has been terminated due to an unrecoverable error.

1146 [Detail] 1147 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier>

Generated by Condition Action Upon Generation Action Upon Receipt
RM Source or RM Destination. Encountering an unrecoverable condition or detection of violation of the protocol. Sequence termination. MUST terminate the Sequence if not otherwise terminated.

1148 4.3 Unknown Sequence 1149 Properties: 1150 [Code] Sender 1151 [Subcode] wsrm:UnknownSequence

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 30 of 90

1152 [Reason] The value of wsrm:Identifier is not a known Sequence identifier. 1153 [Detail] 1154 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier>

Generated by Condition Action Upon Generation Action Upon Receipt
RM Source or RM Destination. In response to a message containing an unknown or terminated Sequence identifier. None. MUST terminate the Sequence if not otherwise terminated.

1155 4.4 Invalid Acknowledgement

1156 An example of when this fault is generated is when a message is Received by the RM Source containing 1157 a SequenceAcknowledgementcovering messages that have not been sent. 1158 [Code] Sender 1159 [Subcode] wsrm:InvalidAcknowledgement 1160 [Reason] The SequenceAcknowledgement violates the cumulative Acknowledgement invariant. 1161 [Detail]

1162 <wsrm:SequenceAcknowledgement ...> ... </wsrm:SequenceAcknowledgement>

Generated by Condition Action Upon Generation Action Upon Receipt
RM Source. In response to aSequenceAcknowledgement that violate the invariants stated in 2.3 or any of the requirements in 3.9 about valid combinations of AckRange, Nack and None in a singleSequenceAcknowledgement element or with respect to already Received such elements. Unspecified. Unspecified.

1163 4.5 Message Number Rollover 1164 If the condition listed below is reached, the RM Destination MUST generate this fault. 1165 Properties: 1166 [Code] Sender 1167 [Subcode] wsrm:MessageNumberRollover 1168 [Reason] The maximum value for wsrm:MessageNumber has been exceeded.

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 31 of 90

1169 [Detail]

1170 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier>1171 <wsrm:MaxMessageNumber> wsrm:MessageNumberType </wsrm:MaxMessageNumber>

Generated by Condition Action Upon Generation Action Upon Receipt
RM Destination. Message number in /wsrm:Sequence/wsrm:MessageNumber of a Received message exceeds the internal limitations of an RM Destination or reaches the maximum value of 9,223,372,036,854,775,8 07. RM Destination SHOULD continue to accept undelivered messages until the Sequence is closed or terminated. RM Source SHOULD continue to retransmit undelivered messages until the Sequence is closed or terminated.

1172 4.6 Create Sequence Refused 1173 Properties: 1174 [Code] Sender or Receiver 1175 [Subcode] wsrm:CreateSequenceRefused 1176 [Reason] The Ccreate Sequence request has been refused by the RM Destination. 1177 [Detail]

1178 xs:any

Generated by Condition Action Upon Generation Action Upon Receipt
RM Destination. In response to a CreateSequencemessage when the RM Destination does not wish to create a new Sequence. Unspecified. Sequence terminated.

1179 4.7 Sequence Closed 1180 This fault is generated by an RM Destination to indicate that the specified Sequence has been closed.

1181 This fault MUST be generated when an RM Destination is asked to accept a message for a Sequence that 1182 is closed or when an RM Destination is asked to close a Sequence that is already closed. 1183 Properties: 1184 [Code] Sender 1185 [Subcode] wsrm:SequenceClosed 1186 [Reason] The Sequence is closed and can not accept new messages. 1187 [Detail]

1188 <wsrm:Identifier...> xs:anyURI </wsrm:Identifier>

Generated by Condition Action Upon Generation Action Upon Receipt
RM Destination. In response to a message that belongs to a Sequence that is already closed. Unspecified. Sequence closed.

1189 4.8 WSRM Required 1190 If an RM Destination requires the use of WS-RM, this fault is generated when it Receives an incoming 1191 message that did not use this protocol. 1192 Properties: 1193 [Code] Sender 1194 [Subcode] wsrm:WSRMRequired 1195 [Reason] The RM Destination requires the use of WSRM. 1196 [Detail] 1197 xs:any

Generated by Condition Action Upon Generation Action Upon Receipt
RM Destination. On receipt of a message that does not use this protocol and for which this protocol is required. Unspecified. Unspecified.

1198 1.3 Unsupported Selection 1199 The QName of the unsupported element(s) are included in the detail. 1200 Properties: 1201 [Code] Receiver 1202 [Subcode] wsrm:UnsupportedSelection 1203 [Reason] The extension element used in the message selection is not supported by the RM Source 1204 [Detail] 1205 <wsrm:UnsupportedElement> xs:QName </wsrm:UnsupportedElement>+

Generated by Condition Action Upon Generation Action Upon Receipt
RM Source or RM Destination. In response to a MakeConnection message containing a selection criteria in the extensibility section of the message that is not support.ed Unspecified. Unspecified.

1206

5 Security Threats and Countermeasures

1207 This specification considers two sets of security requirements, those of the applications that use the WS1208 RM protocol and those of the protocol itself.

1209 This specification makes no assumptions about the security requirements of the applications that use WS1210 RM. However, once those requirements have been satisfied within a given operational context, the 1211 addition of WS-RM to this operational context should not undermine the fulfillment of those requirements; 1212 the use of WS-RM should not create additional attack vectors within an otherwise secure system.

1213 There are many other security concerns that one may need to consider when implementing or using this 1214 protocol. The material below should not be considered as a "check list". Implementers and users of this 1215 protocol are urged to perform a security analysis to determine their particular threat profile and the 1216 appropriate responses to those threats.

1217 Implementers are also advised that there is a core tension between security and reliable messaging that 1218 can be problematic if not addressed by implementations; one aspect of security is to prevent message 1219 replay but one of the invariants of this protocol is to resend messages until they are acknowledged. 1220 Consequently, if the security sub-system processes a message but a failure occurs before the reliable 1221 messaging sub-system Receives that message, then it is possible (and likely) that the security sub-system 1222 will treat subsequent copies as replays and discard them. At the same time, the reliable messaging sub1223 system will likely continue to expect and even solicit the missing message(s). Care should be taken to 1224 avoid and prevent this condition.

1225 5.1 Threats and Countermeasures

1226 The primary security requirement of this protocol is to protect the specified semantics and protocol 1227 invariants against various threats. The following sections describe several threats to the integrity and 1228 operation of this protocol and provide some general outlines of countermeasures to those threats. 1229 Implementers and users of this protocol should keep in mind that all threats are not necessarily applicable 1230 to all operational contexts.

1231 5.1.1 Integrity Threats

1232 In general, any mechanism which allows an attacker to alter the information in a Sequence Traffic 1233 Message, Sequence Lifecycle Message, Acknowledgement Messages, Acknowledgement Request, or 1234 Sequence-related fault, or which allows an attacker to alter the correlation of a RM Protocol Header Block 1235 to its intended message represents a threat to the WS-RM protocol.

1236 For example, if an attacker is able to swap Sequence headers on messages in transit between the RM 1237 Source and RM Destination then they have undermined the implementation's ability to guarantee the first 1238 invariant described in Section 2.3. The result is that there is no way of guaranteeing that messages will be 1239 Delivered to the Application Destination in the same order that they were sent by the Application Source.

1240 5.1.1.1 Countermeasures

1241 Integrity threats are generally countered via the use of digital signatures some level of the communication 1242 protocol stack. Note that, in order to counter header swapping attacks, the signature SHOULD include 1243 both the SOAP body and any relevant SOAP headers (e.g. Sequence header). Because some headers 1244 (AckRequested, SequenceAcknowledgement) are independent of the body of the SOAP message in which 1245 they occur, implementations MUST allow for signatures that cover only these headers.

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 35 of 90

1246 5.1.2 Resource Consumption Threats

1247 The creation of a Sequence with an RM Destination consumes various resources on the systems used to 1248 implement that RM Destination. These resources can include network connections, database tables, 1249 message queues, etc. This behavior can be exploited to conduct denial of service attacks against an RM 1250 Destination. For example, a simple attack is to repeatedly send CreateSequence messages to an RM 1251 Destination. Another attack is to create a Sequence for a service that is known to require in-order 1252 message Delivery and use this Sequence to send a stream of very large messages to that service, 1253 making sure to omit message number “1” from that stream.

1254 5.1.2.1 Countermeasures

1255 There are a number of countermeasures against the described resource consumption threats. The 1256 technique advocated by this specification is for the RM Destination to restrict the ability to create a 1257 Sequence to a specific set of entities/principals. This reduces the number of potential attackers and, in 1258 some cases, allows the identity of any attackers to be determined.

1259 The ability to restrict Sequence creation depends, in turn, upon the RM Destination's ability identify and 1260 authenticate the RM Source that issued the CreateSequence message.

1261 5.1.3 Sequence Spoofing Threats

1262 Sequence spoofing is a class of threats in which the attacker uses knowledge of the Identifier for a 1263 particular Sequence to forge Sequence Lifecycle or Traffic Messages. For example the attacker creates a 1264 fake TerminateSequence message that references the target Sequence and sends this message to the 1265 appropriate RM Destination. Some sequence spoofing attacks also require up-to-date knowledge of the 1266 current MessageNumber for their target Sequence.

1267 In general any Sequence Lifecycle Message, RM Protocol Header Block, or sequence-correlated SOAP 1268 fault (e.g. InvalidAcknowledgement) can be used by someone with knowledge of the Sequence identifier 1269 to attack the Sequence. These attacks are “two-way” in that an attacker may choose to target the RM 1270 Source by, for example, inserting a fake SequenceAcknowledgement header into a message that it sends 1271 to the AcksTo EPR of an RM Source.

1272 5.1.3.1 Sequence Hijacking

1273 Sequence hijacking is a specific case of a sequence spoofing attack. The attacker attempts to inject 1274 Sequence Traffic Messages into an existing Sequence by inserting fake Sequence headers into those 1275 messages.

1276 Note that “sequence hijacking” should not be equated with “security session hijacking”. Although a 1277 Sequence may be bound to some form of a security session in order to counter the threats described in 1278 this section, applications MUST NOT rely on WS-RM-related information to make determinations about 1279 the identity of the entity that created a message; applications SHOULD rely only upon information that is 1280 established by the security infrastructure to make such determinations. Failure to observe this rule 1281 creates, among other problems, a situation in which the absence of WS-RM may deprive an application of 1282 the ability to authenticate its peers even though the necessary security processing has taken place.

1283 5.1.3.2 Countermeasures

1284 There are a number of countermeasures against sequence spoofing threats. The technique advocated by 1285 this specification is to consider the Sequence to be a shared resource that is jointly owned by the RM 1286 Source that initiated its creation (i.e. that sent the CreateSequence message) and the RM Destination that 1287 serves as its terminus (i.e. that sent the CreateSequenceResponse message). To counter sequence 1288 spoofing attempts the RM Destination SHOULD ensure that every message or fault that it Receives that 1289 refers to a particular Sequence originated from the RM Source that jointly owns the referenced Sequence. 1290 For its part the RM Source SHOULD ensure that every message or fault that it Receives that refers to a 1291 particular Sequence originated from the RM Destination that jointly owns the referenced Sequence.

1292 For the RM Destination to be able to identify its sequence peer it MUST be able to identify and 1293 authenticate the entity that sent the CreateSequence message. Similarly for the RM Source to identify its 1294 sequence peer it MUST be able to identify and authenticate the entity that sent the 1295 CreateSequenceResponse message. For either the RM Destination or the RM Source to determine if a 1296 message was sent by its sequence peer it MUST be able to identify and authenticate the initiator of that 1297 message and, if necessary, correlate this identity with the sequence peer identity established at sequence 1298 creation time.

1299 5.2 Security Solutions and Technologies

1300 The security threats described in the previous sections are neither new nor unique. The solutions that 1301 have been developed to secure other SOAP-based protocols can be used to secure WS-RM as well. This 1302 section maps the facilities provided by common web services security solutions against countermeasures 1303 described in the previous sections.

1304 Before continuing this discussion, however, some examination of the underlying requirements of the 1305 previously described countermeasures is necessary. Specifically it should be noted that the technique 1306 described in Section 5.1.2.1 has two components. Firstly, the RM Destination identifies and authenticates 1307 the issuer of a CreateSequence message. Secondly, the RM Destination to performs an authorization 1308 check against this authenticated identity and determines if the RM Source is permitted to create 1309 Sequences with the RM Destination. Since the facilities for performing this authorization check (runtime 1310 infrastructure, policy frameworks, etc.) lie completely within the domain of individual implementations, any 1311 discussion of such facilities is considered to be beyond the scope of this specification.

1312 5.2.1 Transport Layer Security

1313 This section describes how the the facilities provided by SSL/TLS [RFC 4346] can be used to implement 1314 the countermeasures described in the previous sections. The use of SSL/TLS is subject to the constraints 1315 defined in Section 4 of the Basic Security Profile 1.0 [BSP 1.0].

1316 The description provided here is general in nature and is not intended to serve as a complete definition on 1317 the use of SSL/TLS to protect WS-RM. In order to interoperate implementations need to agree on the 1318 choice of features as well as the manner in which they will be used. The mechanisms described in the 1319 Web Services Security Policy Language [SecurityPolicy] MAY be used by services to describe the 1320 requirements and constraints of the use of SSL/TLS.

1321 5.2.1.1 Model

1322 The basic model for using SSL/TLS is as follows:

1323 1. The RM Source establishes an SSL/TLS session with the RM Destination.

1324 2. The RM Source uses this SSL/TLS session to send a CreateSequence message to the RM 1325 Destination.

1326 3. The RM Destination establishes an SSL/TLS session with the RM Source and sends an 1327 asynchronous CreateSequenceResponse using this session. Alternately it may respond with a 1328 synchronous CreateSequenceResponse using the session established in (1).

1329 4. For the lifetime of the Sequence the RM Source uses the SSL/TLS session from (1) to Transmit 1330 any and all messages or faults that refer to that Sequence.

1331 5. For the lifetime of the Sequence the RM Destination either uses the SSL/TLS session established 1332 in (3) to Transmit any and all messages or faults that refer to that Sequence or, for synchronous 1333 exchanges, the RM Destination uses the SSL/TLS session established in (1).

1334 5.2.1.2 Countermeasure Implementation

1335 Used in its simplest fashion (without relying upon any authentication mechanisms), SSL/TLS provides the 1336 necessary integrity qualities to counter the threats described in Section 5.1.1. Note, however, that the 1337 nature of SSL/TLS limits the scope of this integrity protection to a single transport level session. If 1338 SSL/TLS is the only mechanism used to provide integrity, any intermediaries between the RM Source and 1339 the RM Destination MUST be trusted to preserve the integrity of the messages that flow through them.

1340 As noted, the technique described in Sections 5.1.2.1 involves the use of authentication. This specification 1341 advocates either of two mechanisms for authenticating entities using SSL/TLS. In both of these methods 1342 the SSL/TLS server (the party accepting the SSL/TLS connection) authenticates itself to the SSL/TLS 1343 client using an X.509 certificate that is exchanged during the SSL/TLS handshake.

1344 HTTP Basic Authentication: This method of authentication presupposes that a SOAP/HTTP 1345 binding is being used as part of the protocol stack beneath WS-RM. Subsequent to the 1346 establishment of the the SSL/TLS session, the sending party authenticates itself to the receiving 1347 party using HTTP Basic Authentication [RFC 2617]. For example, a RM Source might 1348 authenticate itself to a RM Destination (e.g. when transmitting a Sequence Traffic Message) using 1349 BasicAuth. Similarly the RM Destination might authenticate itself to the RM Source (e.g. when 1350 sending an Acknowledgement) using BasicAuth.

1351 • SSL/TLS Client Authentication: In this method of authentication, the party initiating the 1352 connection authenticates itself to the party accepting the connection using an X.509 certificate 1353 that is exchanged during the SSL/TLS handshake.

1354 To implement the countermeasures described in section 5.1.2.1 the RM Source must authenticate itself 1355 using one the above mechanisms. The authenticated identity can then be used to determine if the RM 1356 Source is authorized to create a Sequence with the RM Destination.

1357 This specification advocates implementing the countermeasures described in section 5.1.3.2 by requiring 1358 an RM node's Sequence peer to be equivalent to their SSL/TLS session peer. This allows the 1359 authorization decisions described in section 5.1.3.2 to be based on SSL/TLS session identity rather than 1360 on authentication information. For example, an RM Destination can determine that a Sequence Traffic 1361 Message rightfully belongs to its referenced Sequence if that message arrived over the same SSL/TLS 1362 session that was used to carry the CreateSequence message for that Sequence. Note that requiring a 1363 one-to-one relationship between SSL/TLS session peer and Sequence peer constrains the lifetime of a 1364 SSL/TLS-protected Sequence to be less than or equal to the lifetime of the SSL/TLS session that is used 1365 to protect that Sequence.

1366 This specification does not preclude the use of other methods of using SSL/TLS to implement the 1367 countermeasures (such as associating specific authentication information with a Sequence) although such 1368 methods are not covered by this document.

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 38 of 90

1369 Issues specific to the life-cycle management of SSL/TLS sessions (such as the resumption of a SSL/TLS 1370 session) are outside the scope of this specification.

1371 5.2.2 SOAP Message Security

1372 The mechanisms described in WS-Security may be used in various ways to implement the 1373 countermeasures described in the previous sections. This specification advocates using the protocol 1374 described by WS-SecureConversation [SecureConversation] (optionally in conjunction with WS-Trust 1375 [Trust]) as a mechanism for protecting Sequences. The use of WS-Security (as an underlying component 1376 of WS-SecureConversation) is subject to the constraints defined in the Basic Security Profile 1.0.

1377 The description provided here is general in nature and is not intended to serve as a complete definition on 1378 the use of WS-SecureConversation/WS-Trust to protect WS-RM. In order to interoperate implementations 1379 need to agree on the choice of features as well as the manner in which they will be used. The 1380 mechanisms described in the Web Services Security Policy Language MAY be used by services to 1381 describe the requirements and constraints of the use of WS-SecureConversation.

1382 5.2.2.1 Model

1383 The basic model for using WS-SecureConversation is as follows:

1384 1. The RM Source and the RM Destination create a WS-SecureConversation security context. This 1385 may involve the participation of third parties such as a security token service. The tokens 1386 exchanged may contain authentication claims (e.g. X.509 certificates or Kerberos service tickets).

1387 2. During the CreateSequence exchange, the RM Source SHOULD explicitly identify the security 1388 context that will be used to protect the Sequence. This is done so that, in cases where the 1389 CreateSequence message is signed by more than one security context, the RM Source can 1390 indicate which security context should be used to protect the newly created Sequence.

1391 3. For the lifetime of the Sequence the RM Source and the RM Destination use the session key(s) 1392 associated with the security context to sign (as defined by WS-Security) at least the body and any 1393 relevant WS-RM-defined headers of any and all messages or faults that refer to that Sequence.

1394 5.2.2.2 Countermeasure Implementation

1395 Without relying upon any authentication information, the per-message signatures provide the necessary 1396 integrity qualities to counter the threats described in Section 5.1.1.

1397 To implement the countermeasures described in section 5.1.2.1 some mutually agreed upon form of 1398 authentication claims must be provided by the RM Source to the RM Destination during the establishment 1399 of the Security Context. These claims can then be used to determine if the RM Source is authorized to 1400 create a Sequence with the RM Destination.

1401 This specification advocates implementing the countermeasures described in section 5.1.3.2 by requiring 1402 an RM node's Sequence peer to be equivalent to their security context session peer. This allows the 1403 authorization decisions described in section 5.1.3.2 to be based on the identity of the message's security 1404 context rather than on any authentication claims that may have been established during security context 1405 initiation. Note that other methods of using WS-SecureityConversation to implement the countermeasures 1406 (such as associating specific authentication claims to a Sequence) are possible but not covered by this 1407 document.

1408 As with transport security, the requisite equivalence of a security context peer and with a Sequence peer 1409 limits the lifetime of a Sequence to the lifetime of the protecting security context. Unlike transport security, 1410 the association between a Sequence and its protecting security context cannot always be established 1411 implicitly at Sequence creation time. This is due to the fact that the CreateSequence and 1412 CreateSequenceResponse messages may be signed by more than one security context.

1413 Issues specific to the life-cycle management of WS-SecureityConversation security contexts (such as 1414 amending or renewing contexts) are outside the scope of this specification.

1415

6 Securing Sequences

1416 As noted in Section 5, the RM Source and RM Destination should be able to protect their shared 1417 Sequences against the threat of Sequence Spoofing attacks. There are a number of OPTIONAL means of 1418 achieving this objective depending upon the underlying security infrastructure.

1419 6.1 Securing Sequences Using WS-Security

1420 One mechanism for protecting a Sequence is to include a security token using a 1421 wsse:SecurityTokenReference element from WS-Security (see section 9 in WS1422 SecureConversation) in the CreateSequence element. This establishes an association between the 1423 created (and, if present, offered) Sequence(s) and the referenced security token, such that the RM Source 1424 and Destination MUST use the security token as the basis for authorization of all subsequent interactions 1425 related to the Sequence(s). The wsse:SecurityTokenReference explicitly identifies the token as 1426 there may be more than one token on a CreateSequence message or inferred from the communication 1427 context (e.g. transport protection).

1428 It is RECOMMENDED that a message independent referencing mechanism be used to identify the token, 1429 if the token being referenced supports such mechanism.

1430 The following exemplar defines the CreateSequence syntax when extended to include a 1431 wsse:SecurityTokenReference:

1432 <wsrm:CreateSequence ...> 1433 <wsrm:AcksTo> wsa:EndpointReferenceType </wsrm:AcksTo> 1434 <wsrm:Expires ...> xs:duration </wsrm:Expires> ? 1435 <wsrm:Offer ...> 1436 <wsrm:Identifier ...> xs:anyURI </wsrm:Identifier> 1437 <wsrm:Endpoint> wsa:EndpointReferenceType </wsrm:Endpoint> 1438 <wsrm:Expires ...> xs:duration </wsrm:Expires> ? 1439 <wsrm:IncompleteSequenceBehavior> 1440 wsrm:IncompleteSequenceBehaviorType 1441 </wsrm:IncompleteSequenceBehavior> ? 1442 ... 1443 </wsrm:Offer> ? 1444 ... 1445 <wsse:SecurityTokenReference> 1446 ... 1447 </wsse:SecurityTokenReference> ? 1448 ... 1449 </wsrm:CreateSequence> 1450 The following describes the content model of the additional CreateSequence elements.

1451 /wsrm:CreateSequence/wsse:SecurityTokenReference

1452 This element uses the extensibility mechanism defined for the CreateSequence element (defined in 1453 section 3.41) to communicate an explicit reference to the security token, using a 1454 wsse:SecurityTokenReference as documented in WS-Security, that the RM Source and Destination 1455 MUST use to authorize messages for the created (and, if present, the offered) Sequence(s). All 1456 subsequent messages related to the created (and, if present, the offered) Sequence(s) MUST 1457 demonstrate proof-of-possession of the secret associated with the token (e.g., by using or deriving from a 1458 private or secret key).

1459 When a RM Source transmits a CreateSequence that has been extended to include a 1460 wsse:SecurityTokenReference it SHOULD ensure that the RM Destination both understands and 1461 will conform toTransmits a CreateSequence that has been extended to include a 1462 wsse:SecurityTokenReference it SHOULD ensure that the RM Destination both understands and 1463 will conform with the requirements listed above. In order to achieve this, the RM Source SHOULD include 1464 the UsesSequenceSTR element as a SOAP header block within the CreateSequence message. This 1465 element MUST include a soap:mustUnderstand attribute with a value of ‘true’. Thus the RM Source 1466 can be assured that a RM Destination that responds with a CreateSequenceResponseunderstands 1467 and conforms with the requirements listed above. Note that an RM Destination understanding this header 1468 does not mean that it has processed and understood any WS-Security headers, the fault behavior defined 1469 in WS-Security still applies.

1470 The following exemplar defines the UsesSequenceSTR syntax:

1471 <wsrm:UsesSequenceSTR ... /> 1472 The following describes the content model of the UsesSequenceSTRheader block.

1473 /wsrm:UsesSequenceSTR

1474 This element SHOULD be included as a SOAP header block in CreateSequencemessages that use the 1475 extensibility mechanism described above in this section. The soap:mustUnderstand attribute value 1476 MUST be ‘true’. The receiving RM Destination MUST understand and correctly implement the extension 1477 described above or else generate a soap:MustUnderstand fault, thus aborting the requested 1478 Sequence creation.

1479 The following is an example of a CreateSequencemessage using the 1480 wsse:SecurityTokenReference extension and the UsesSequenceSTR header block:

1481 <soap:Envelope ...> 1482 <soap:Header> 1483 ... 1484 <wsrm:UsesSequenceSTR soap:mustUnderstand=’true’/> 1485 ... 1486 </soap:Header> 1487 <soap:Body> 1488 <wsrm:CreateSequence> 1489 <wsrm:AcksTo> 1490 <wsa:Address>http://Business456.com/serviceA/789</wsa:Address> 1491 </wsrm:AcksTo> 1492 <wsse:SecurityTokenReference> 1493 ... 1494 </wsse:SecurityTokenReference> 1495 </wsrm:CreateSequence> 1496 </soap:Body> 1497 </soap:Envelope>

1498 6.2 Securing Sequences Using SSL/TLS

1499 One mechanism for protecting a Sequence is to bind the Sequence to the underlying SSL/TLS session(s). 1500 The RM Source indicates to the RM Destination that a Sequence is to be bound to the underlying 1501 SSL/TLS session(s) via the UsesSequenceSSLheader block. If the RM Source wishes to bind a 1502 Sequence to the underlying SSL/TLS sessions(s) it MUST include the UsesSequenceSSLelement as a 1503 SOAP header block within the CreateSequence message.

1504 The following exemplar defines the UsesSequenceSSL syntax:

1505 <wsrm:UsesSequenceSSL soap:mustUnderstand=”true” ... /> 1506 The following describes the content model of the UsesSequenceSSLheader block.

1507 /wsrm:UsesSequenceSSL

1508 The RM Source MAY include this element as a SOAP header block of a CreateSequence message to 1509 indicate to the RM Destination that the resulting Sequence is to be bound to the SSL/TLS session that was

wsrm-1.1-spec-cd-05 1 February 2007 Copyright © OASIS Open 2007. All Rights Reserved. Page 42 of 90

1510 used to carry the CreateSequencemessage. If included, the RM Source MUST mark this header with a 1511 soap:mustUnderstand attribute with a value of ‘true’. The receiving RM Destination MUST understand 1512 and correctly implement the functionality described in Section 5.2.1 or else generate a 1513 soap:MustUnderstand fault, thus aborting the requested Sequence creation.

1514 Note that the use inclusion of the above header by the RM Source implies that all Sequence-related 1515 information (Sequence Lifecycle or Acknowledgment messages or Sequence-related faults) flowing from 1516 the RM Destination to the RM Source will be bound to the SSL/TLS session that is used to carry the 1517 CreateSequenceResponse message.

1518 7 References

1519 7.1 Normative 1520 [KEYWORDS] 1521 S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels," RFC 2119, Harvard University, 1522 March 1997 1523 http://www.ietf.org/rfc/rfc2119.txt 1524 [WS-RM Policy] 1525 OASIS WS-RX Technical Committee Draft, "Web Services ReliableMessaging Policy Assertion( WS-RM 1526 Policy)" February 2007 1527 http://docs.oasis-open.org/ws-rx/wsrmp/200702/wsrmp-1.1-spec-cd-05.pdf 1528 [SOAP 1.1] 1529 W3C Note, "SOAP: Simple Object Access Protocol 1.1," 08 May 2000. 1530 http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ 1531 [SOAP 1.2] 1532 W3C Recommendation, "SOAP Version 1.2 Part 1: Messaging Framework" June 2003. 1533 http://www.w3.org/TR/2003/REC-soap12-part1-20030624/ 1534 [URI] 1535 T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax," RFC 3986, 1536 MIT/LCS, U.C. Irvine, Xerox Corporation, January 2005. 1537 http://ietf.org/rfc/rfc3986 1538 [UUID] 1539 P. Leach, M. Mealling, R. Salz, "A Universally Unique IDentifier (UUID) URN Namespace," RFC 4122, 1540 Microsoft, Refactored Networks - LLC, DataPower Technology Inc, July 2005 1541 http://www.ietf.org/rfc/rfc4122.txt 1542 [XML] 1543 W3C Recommendation, "Extensible Markup Language (XML) 1.0 (Fourth Edition)", September 1544 2006.Second Edition)", October 2000. 1545 http://www.w3.org/TR/REC-xml/ 1546 [XML-ns] 1547 W3C Recommendation, "Namespaces in XML," 14 January 1999. 1548 http://www.w3.org/TR/1999/REC-xml-names-19990114/ 1549 [XML-Schema Part1] 1550 W3C Recommendation, "XML Schema Part 1: Structures," October 20042 May 2001.

1551 http://www.w3.org/TR/xmlschema-1/ 1552 [XML-Schema Part2] 1553 W3C Recommendation, "XML Schema Part 2: Datatypes," October 20042 May 2001. 1554 http://www.w3.org/TR/xmlschema-2/ 1555 [XPATH 1.0] 1556 W3C Recommendation, "XML Path Language (XPath) Version 1.0," 16 November 1999. 1557 http://www.w3.org/TR/xpath 1558 [WSDL 1.1] 1559 W3C Note, "Web Services Description Language (WSDL 1.1)," 15 March 2001. 1560 http://www.w3.org/TR/2001/NOTE-wsdl-20010315 1561 [WS-Addressing] 1562 W3C Recommendation, “Web Services Addressing 1.0 - Core”, May 2006. 1563 http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/ 1564 W3C Recommendation, “Web Services Addressing 1.0 – SOAP Binding”, May 2006. 1565 http://www.w3.org/TR/2006/REC-ws-addr-soap-20060509/

1566 7.2 Non-Normative

1567 [BSP 1.0] 1568 WS-I Working Group Draft. "Basic Security Profile Version 1.0," AugustMarch 2006

1569 http://www.ws-i.org/Profiles/BasicSecurityProfile-1.0.html 1570 [RDDL 2.0] 1571 Johnathan Borden, Tim Bray, eds. “Resource Directory Description Language (RDDL) 2.0,” January 2004

1572 http://www.openhealth.org/RDDL/20040118/rddl-20040118.html 1573 [RFC 2617] 1574 J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. Loutonen, L. Stewart, "HTTP 1575 Authentication: Basic and Digest Access Authentication," June 1999.

1576 http://www.ietf.org/rfc/rfc2617.txt 1577 [RFC 4346] 1578 T. Dierks, E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.1," April 2006.

1579 http://www.ietf.org/rfc/rfc4346.txt 1580 [WS-Policy] 1581 W3C Member Submission, "Web Services Policy Framework (WS-Policy)," April 2006.

1582 http://www.w3.org/Submission/2006/SUBM-WS-Policy-20060425/ 1583 [WS-PolicyAttachment] 1584 W3C Member Submission, "Web Services Policy Attachment (WS-PolicyAttachment)," April 2006.

1585 http://www.w3.org/Submission/2006/SUBM-WS-PolicyAttachment1586 20060425/ 1587 [WS-Security] 1588 Anthony Nadalin, Chris Kaler, Phillip Hallam-Baker, Ronald Monzillo, eds. "OASIS Web Services Security: 1589 SOAP Message Security 1.0 (WS-Security 2004)", OASIS Standard 200401, March 2004. 1590 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf 1591 Anthony Nadalin, Chris Kaler, Phillip Hallam-Baker, Ronald Monzillo, eds. "OASIS Web Services Security: 1592 SOAP Message Security 1.1 (WS-Security 2004)", OASIS Standard 200602, February 2006. 1593 http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf 1594 [RTTM] 1595 V. Jacobson, R. Braden, D. Borman, "TCP Extensions for High Performance", RFC 1323, May 1596 1992. 1597 http://www.rfc-editor.org/rfc/rfc1323.txt

1598 [SecurityPolicy] 1599 G. Della-Libra, et. al. "Web Services Security Policy Language (WS-SecurityPolicy)", July 2005

1600 http://specs.xmlsoap.org/ws/2005/07/securitypolicy/ws-securitypolicy.pdf 1601 [SecureConversation] 1602 S. Anderson, et al, "Web Services Secure Conversation Language (WS-SecureConversation)," February 1603 2005.

1604 http://schemas.xmlsoap.org/ws/2004/04/sc/ 1605 [Trust] 1606 S. Anderson, et al, "Web Services Trust Language (WS-Trust)," February 2005.

1607 http://schemas.xmlsoap.org/ws/2005/02/trust

1608

Appendix A. Schema

1609 The normative schema that is defined for WS-ReliableMessaging using [XML-Schema Part1] and [XML1610 Schema Part2] is located at:

1611 http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.1-schema-200702608/wsrm-1.1-schema1612 200608.xsd

1613 The following copy is provided for reference.

1614 <?xml version="1.0" encoding="UTF-8"?>1615 <!--1616 OASIS takes no position regarding the validity or scope of any intellectual1617 property or other rights that might be claimed to pertain to the1618 implementation or use of the technology described in this document or the1619 extent to which any license under such rights might or might not be available;1620 neither does it represent that it has made any effort to identify any such1621 rights. Information on OASIS's procedures with respect to rights in OASIS1622 specifications can be found at the OASIS website. Copies of claims of rights1623 made available for publication and any assurances of licenses to be made1624 available, or the result of an attempt made to obtain a general license or1625 permission for the use of such proprietary rights by implementors or users of1626 this specification, can be obtained from the OASIS Executive Director.1627 OASIS invites any interested party to bring to its attention any copyrights,1628 patents or patent applications, or other proprietary rights which may cover1629 technology that may be required to implement this specification. Please1630 address the information to the OASIS Executive Director. 1631 Copyright (c) OASIS Open 2002-2007. All Rights Reserved.1632 This document and translations of it may be copied and furnished to others,1633 and derivative works that comment on or otherwise explain it or assist in its1634 implementation may be prepared, copied, published and distributed, in whole or1635 in part, without restriction of any kind, provided that the above copyright1636 notice and this paragraph are included on all such copies and derivative1637 works. However, this document itself does not be modified in any way, such as1638 by removing the copyright notice or references to OASIS, except as needed for1639 the purpose of developing OASIS specifications, in which case the procedures1640 for copyrights defined in the OASIS Intellectual Property Rights document must1641 be followed, or as required to translate it into languages other than English.1642 The limited permissions granted above are perpetual and will not be revoked by1643 OASIS or its successors or assigns.1644 This document and the information contained herein is provided on an "AS IS"1645 basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT1646 NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 1647 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS

1648 FOR A PARTICULAR PURPOSE. 1649 --> 1650 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 1651 xmlns:wsa="http://www.w3.org/2005/08/addressing" 1652 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702" 1653 targetNamespace="http://docs.oasis-open.org/ws-rx/wsrm/200702" 1654 elementFormDefault="qualified" attributeFormDefault="unqualified"> 1655 <xs:import namespace="http://www.w3.org/2005/08/addressing" 1656 schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd"/> 1657 <!-- Protocol Elements --> 1658 <xs:complexType name="SequenceType"> 1659 <xs:sequence> 1660 <xs:element ref="wsrm:Identifier"/> 1661 <xs:element name="MessageNumber" type="wsrm:MessageNumberType"/> 1662 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1663 maxOccurs="unbounded"/>

1664 </xs:sequence>1665 <xs:anyAttribute namespace="##other" processContents="lax"/>1666 </xs:complexType>1667 <xs:element name="Sequence" type="wsrm:SequenceType"/>1668 <xs:element name="SequenceAcknowledgement">1669 <xs:complexType>1670 <xs:sequence>1671 <xs:element ref="wsrm:Identifier"/>1672 <xs:choice>1673 <xs:sequence>1674 <xs:choice>1675 <xs:element name="AcknowledgementRange" maxOccurs="unbounded">1676 <xs:complexType>1677 <xs:sequence/>1678 <xs:attribute name="Upper" type="xs:unsignedLong"1679 use="required"/>1680 <xs:attribute name="Lower" type="xs:unsignedLong"1681 use="required"/>1682 <xs:anyAttribute namespace="##other" processContents="lax"/>1683 </xs:complexType>1684 </xs:element>1685 <xs:element name="None">1686 <xs:complexType>1687 <xs:sequence/>1688 </xs:complexType>1689 </xs:element>1690 </xs:choice>1691 <xs:element name="Final" minOccurs="0">

1692 <xs:complexType>1693 <xs:sequence/>1694 </xs:complexType>1695 </xs:element>1696 </xs:sequence>1697 <xs:element name="Nack" type="xs:unsignedLong"1698 maxOccurs="unbounded"/>1699 </xs:choice>1700 <xs:any namespace="##other" processContents="lax" minOccurs="0"1701 maxOccurs="unbounded"/>1702 </xs:sequence>1703 <xs:anyAttribute namespace="##other" processContents="lax"/>1704 </xs:complexType>1705 </xs:element>1706 <xs:complexType name="AckRequestedType">1707 <xs:sequence>1708 <xs:element ref="wsrm:Identifier"/>1709 <xs:any namespace="##other" processContents="lax" minOccurs="0"1710 maxOccurs="unbounded"/>1711 </xs:sequence>1712 <xs:anyAttribute namespace="##other" processContents="lax"/>1713 </xs:complexType>1714 <xs:element name="AckRequested" type="wsrm:AckRequestedType"/>1715 <xs:element name="Identifier">1716 <xs:complexType>1717 <xs:annotation>1718 <xs:documentation>1719 This type is for elements whose [children] is an anyURI and can have1720 arbitrary attributes.1721 </xs:documentation>1722 </xs:annotation>1723 <xs:simpleContent>1724 <xs:extension base="xs:anyURI">1725 <xs:anyAttribute namespace="##other" processContents="lax"/>1726 </xs:extension>

1727 </xs:simpleContent> 1728 </xs:complexType> 1729 </xs:element> 1730 <xs:element name="Address"> 1731 <xs:complexType> 1732 <xs:simpleContent> 1733 <xs:extension base="xs:anyURI"> 1734 <xs:anyAttribute namespace="##other" processContents="lax"/> 1735 </xs:extension> 1736 </xs:simpleContent> 1737 </xs:complexType> 1738 </xs:element> 1739 <xs:simpleType name="MessageNumberType"> 1740 <xs:restriction base="xs:unsignedLong"> 1741 <xs:minInclusive value="1"/> 1742 <xs:maxInclusive value="9223372036854775807"/> 1743 </xs:restriction> 1744 </xs:simpleType> 1745 <!-- Fault Container and Codes --> 1746 <xs:simpleType name="FaultCodes"> 1747 <xs:restriction base="xs:QName"> 1748 <xs:enumeration value="wsrm:SequenceTerminated"/> 1749 <xs:enumeration value="wsrm:UnknownSequence"/> 1750 <xs:enumeration value="wsrm:InvalidAcknowledgement"/> 1751 <xs:enumeration value="wsrm:MessageNumberRollover"/> 1752 <xs:enumeration value="wsrm:CreateSequenceRefused"/> 1753 <xs:enumeration value="wsrm:SequenceClosed"/> 1754 <xs:enumeration value="wsrm:WSRMRequired"/> 1755 <xs:enumeration value="wsrm:UnsupportedSelection"/> 1756 </xs:restriction> 1757 </xs:simpleType> 1758 <xs:complexType name="SequenceFaultType"> 1759 <xs:sequence> 1760 <xs:element name="FaultCode" type="wsrm:FaultCodes"/> 1761 <xs:element name="Detail" type="wsrm:DetailType" minOccurs="0"/> 1762 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1763 maxOccurs="unbounded"/> 1764 </xs:sequence> 1765 <xs:anyAttribute namespace="##other" processContents="lax"/> 1766 </xs:complexType> 1767 <xs:complexType name="DetailType"> 1768 <xs:sequence> 1769 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1770 maxOccurs="unbounded"/> 1771 </xs:sequence> 1772 <xs:anyAttribute namespace="##other" processContents="lax"/> 1773 </xs:complexType> 1774 <xs:element name="SequenceFault" type="wsrm:SequenceFaultType"/> 1775 <xs:element name="CreateSequence" type="wsrm:CreateSequenceType"/> 1776 <xs:element name="CreateSequenceResponse" 1777 type="wsrm:CreateSequenceResponseType"/> 1778 <xs:element name="CloseSequence" type="wsrm:CloseSequenceType"/> 1779 <xs:element name="CloseSequenceResponse" 1780 type="wsrm:CloseSequenceResponseType"/> 1781 <xs:element name="TerminateSequence" type="wsrm:TerminateSequenceType"/> 1782 <xs:element name="TerminateSequenceResponse" 1783 type="wsrm:TerminateSequenceResponseType"/> 1784 <xs:complexType name="CreateSequenceType"> 1785 <xs:sequence> 1786 <xs:element ref="wsrm:AcksTo"/> 1787 <xs:element ref="wsrm:Expires" minOccurs="0"/> 1788 <xs:element name="Offer" type="wsrm:OfferType" minOccurs="0"/> 1789 <xs:any namespace="##other" processContents="lax" minOccurs="0"

1790 maxOccurs="unbounded"> 1791 <xs:annotation> 1792 <xs:documentation> 1793 It is the authors intent that this extensibility be used to 1794 transfer a Security Token Reference as defined in WS-Security. 1795 </xs:documentation> 1796 </xs:annotation> 1797 </xs:any> 1798 </xs:sequence> 1799 <xs:anyAttribute namespace="##other" processContents="lax"/> 1800 </xs:complexType> 1801 <xs:complexType name="CreateSequenceResponseType"> 1802 <xs:sequence> 1803 <xs:element ref="wsrm:Identifier"/> 1804 <xs:element ref="wsrm:Expires" minOccurs="0"/> 1805 <xs:element name="IncompleteSequenceBehavior" 1806 type="wsrm:IncompleteSequenceBehaviorType" minOccurs="0"/> 1807 <xs:element name="Accept" type="wsrm:AcceptType" minOccurs="0"/> 1808 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1809 maxOccurs="unbounded"/> 1810 </xs:sequence> 1811 <xs:anyAttribute namespace="##other" processContents="lax"/> 1812 </xs:complexType> 1813 <xs:complexType name="CloseSequenceType"> 1814 <xs:sequence> 1815 <xs:element ref="wsrm:Identifier"/&copy; OASIS Open 2002-2006. All 1816 Rights Reserved. 1817 This document and translations of it may be copied and furnished to others, 1818 and derivative works that comment on or otherwise explain it or assist in its 1819 implementation may be prepared, copied, published and distributed, in whole or 1820 in part, without restriction of any kind, provided that the above copyright 1821 notice and this paragraph are included on all such copies and derivative 1822 works. However, this document itself does not be modified in any way, such as 1823 by removing the copyright notice or references to OASIS, except as needed for 1824 the purpose of developing OASIS specifications, in which case the procedures 1825 for copyrights defined in the OASIS Intellectual Property Rights document must 1826 be followed, or as required to translate it into languages other than English. 1827 The limited permissions granted above are perpetual and will not be revoked by 1828 OASIS or its successors or assigns. 1829 This document and the information contained herein is provided on an "AS IS" 1830 basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT 1831 NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 1832 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS 1833 FOR A PARTICULAR PURPOSE. 1834 --> 1835 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 1836 xmlns:wsa="http://www.w3.org/2005/08/addressing" 1837 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200608" 1838 targetNamespace="http://docs.oasis-open.org/ws-rx/wsrm/200608" 1839 elementFormDefault="qualified" attributeFormDefault="unqualified"> 1840 <xs:import namespace="http://www.w3.org/2005/08/addressing" 1841 schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd"/> 1842 <!-- Protocol Elements --> 1843 <xs:complexType name="SequenceType"> 1844 <xs:sequence> 1845 <xs:element ref="wsrm:Identifier"/> 1846 <xs:element name="MessageNumber" type="wsrm:MessageNumberType"/> 1847 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1848 maxOccurs="unbounded"/> 1849 </xs:sequence> 1850 <xs:anyAttribute namespace="##other" processContents="lax"/> 1851 </xs:complexType> 1852 <xs:element name="Sequence" type="wsrm:SequenceType"/>

1853 <xs:element name="SequenceAcknowledgement">1854 <xs:complexType>1855 <xs:sequence>1856 <xs:element ref="wsrm:Identifier"/>1857 <xs:choice>1858 <xs:sequence>1859 <xs:choice>1860 <xs:element name="AcknowledgementRange" maxOccurs="unbounded">1861 <xs:complexType>1862 <xs:sequence/>1863 <xs:attribute name="Upper" type="xs:unsignedLong"1864 use="required"/>1865 <xs:attribute name="Lower" type="xs:unsignedLong"1866 use="required"/>1867 <xs:anyAttribute namespace="##other" processContents="lax"/>1868 </xs:complexType>1869 </xs:element>1870 <xs:element name="None">1871 <xs:complexType>1872 <xs:sequence/>1873 </xs:complexType>1874 </xs:element>1875 </xs:choice>1876 <xs:element name="Final" minOccurs="0">1877 <xs:complexType>1878 <xs:sequence/>1879 </xs:complexType>1880 </xs:element>1881 </xs:sequence>1882 <xs:element name="Nack" type="xs:unsignedLong"1883 maxOccurs="unbounded"/>1884 </xs:choice>1885 <xs:any namespace="##other" processContents="lax" minOccurs="0"1886 maxOccurs="unbounded"/>1887 </xs:sequence>1888 <xs:anyAttribute namespace="##other" processContents="lax"/>1889 </xs:complexType>1890 </xs:element>1891 <xs:complexType name="AckRequestedType">1892 <xs:sequence>1893 <xs:element ref="wsrm:Identifier"/>1894 <xs:any namespace="##other" processContents="lax" minOccurs="0"1895 maxOccurs="unbounded"/>1896 </xs:sequence>1897 <xs:anyAttribute namespace="##other" processContents="lax"/>1898 </xs:complexType>1899 <xs:element name="AckRequested" type="wsrm:AckRequestedType"/>1900 <xs:complexType name="MessagePendingType">1901 <xs:sequence>1902 <xs:any namespace="##other" processContents="lax" minOccurs="0"1903 maxOccurs="unbounded"/>1904 </xs:sequence>1905 <xs:attribute name="pending" type="xs:boolean"/>1906 <xs:anyAttribute namespace="##other" processContents="lax"/>1907 </xs:complexType>1908 <xs:element name="MessagePending" type="wsrm:MessagePendingType"/>1909 <xs:element name="Identifier">1910 <xs:complexType>1911 <xs:annotation>1912 <xs:documentation>1913 This type is for elements whose [children] is an anyURI and can have1914 arbitrary attributes.1915 </xs:documentation>

1916 </xs:annotation> 1917 <xs:simpleContent> 1918 <xs:extension base="xs:anyURI"> 1919 <xs:anyAttribute namespace="##other" processContents="lax"/> 1920 </xs:extension> 1921 </xs:simpleContent> 1922 </xs:complexType> 1923 </xs:element> 1924 <xs:element name="Address"> 1925 <xs:complexType> 1926 <xs:simpleContent> 1927 <xs:extension base="xs:anyURI"> 1928 <xs:anyAttribute namespace="##other" processContents="lax"/> 1929 </xs:extension> 1930 </xs:simpleContent> 1931 </xs:complexType> 1932 </xs:element> 1933 <xs:complexType name="MakeConnectionType"> 1934 <xs:sequence> 1935 <xs:element ref="wsrm:Identifier" minOccurs="0" maxOccurs="1"/> 1936 <xs:element ref="wsrm:Address" minOccurs="0" maxOccurs="1"/> 1937 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1938 maxOccurs="unbounded"/> 1939 </xs:sequence> 1940 <xs:anyAttribute namespace="##other" processContents="lax"/> 1941 </xs:complexType> 1942 <xs:element name="MakeConnection" type="wsrm:MakeConnectionType"/> 1943 <xs:simpleType name="MessageNumberType"> 1944 <xs:restriction base="xs:unsignedLong"> 1945 <xs:minInclusive value="1"/> 1946 <xs:maxInclusive value="9223372036854775807"/> 1947 </xs:restriction> 1948 </xs:simpleType> 1949 <!-- Fault Container and Codes --> 1950 <xs:simpleType name="FaultCodes"> 1951 <xs:restriction base="xs:QName"> 1952 <xs:enumeration value="wsrm:SequenceTerminated"/> 1953 <xs:enumeration value="wsrm:UnknownSequence"/> 1954 <xs:enumeration value="wsrm:InvalidAcknowledgement"/> 1955 <xs:enumeration value="wsrm:MessageNumberRollover"/> 1956 <xs:enumeration value="wsrm:CreateSequenceRefused"/> 1957 <xs:enumeration value="wsrm:SequenceClosed"/> 1958 <xs:enumeration value="wsrm:WSRMRequired"/> 1959 <xs:enumeration value="wsrm:UnsupportedSelection"/> 1960 </xs:restriction> 1961 </xs:simpleType> 1962 <xs:complexType name="SequenceFaultType"> 1963 <xs:sequence> 1964 <xs:element name="FaultCode" type="wsrm:FaultCodes"/> 1965 <xs:element name="Detail" type="wsrm:DetailType" minOccurs="0"/> 1966 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1967 maxOccurs="unbounded"/> 1968 </xs:sequence> 1969 <xs:anyAttribute namespace="##other" processContents="lax"/> 1970 </xs:complexType> 1971 <xs:complexType name="DetailType"> 1972 <xs:sequence> 1973 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1974 maxOccurs="unbounded"/> 1975 </xs:sequence> 1976 <xs:anyAttribute namespace="##other" processContents="lax"/> 1977 </xs:complexType> 1978 <xs:element name="SequenceFault" type="wsrm:SequenceFaultType"/>

1979 <xs:element name="CreateSequence" type="wsrm:CreateSequenceType"/> 1980 <xs:element name="CreateSequenceResponse" 1981 type="wsrm:CreateSequenceResponseType"/> 1982 <xs:element name="CloseSequence" type="wsrm:CloseSequenceType"/> 1983 <xs:element name="CloseSequenceResponse" 1984 type="wsrm:CloseSequenceResponseType"/> 1985 <xs:element name="TerminateSequence" type="wsrm:TerminateSequenceType"/> 1986 <xs:element name="TerminateSequenceResponse" 1987 type="wsrm:TerminateSequenceResponseType"/> 1988 <xs:complexType name="CreateSequenceType"> 1989 <xs:sequence> 1990 <xs:element ref="wsrm:AcksTo"/> 1991 <xs:element ref="wsrm:Expires" minOccurs="0"/> 1992 <xs:element name="Offer" type="wsrm:OfferType" minOccurs="0"/> 1993 <xs:any namespace="##other" processContents="lax" minOccurs="0" 1994 maxOccurs="unbounded"> 1995 <xs:annotation> 1996 <xs:documentation> 1997 It is the authors intent that this extensibility be used to 1998 transfer a Security Token Reference as defined in WS-Security. 1999 </xs:documentation> 2000 </xs:annotation> 2001 </xs:any> 2002 </xs:sequence> 2003 <xs:anyAttribute namespace="##other" processContents="lax"/> 2004 </xs:complexType> 2005 <xs:complexType name="CreateSequenceResponseType"> 2006 <xs:sequence> 2007 <xs:element ref="wsrm:Identifier"/> 2008 <xs:element ref="wsrm:Expires" minOccurs="0"/> 2009 <xs:element name="IncompleteSequenceBehavior" 2010 type="wsrm:IncompleteSequenceBehaviorType" minOccurs="0"/> 2011 <xs:element name="Accept" type="wsrm:AcceptType" minOccurs="0"/> 2012 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2013 maxOccurs="unbounded"/> 2014 </xs:sequence> 2015 <xs:anyAttribute namespace="##other" processContents="lax"/> 2016 </xs:complexType> 2017 <xs:complexType name="CloseSequenceType"> 2018 <xs:sequence> 2019 <xs:element ref="wsrm:Identifier"/> 2020 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2021 maxOccurs="unbounded"/> 2022 </xs:sequence> 2023 <xs:anyAttribute namespace="##other" processContents="lax"/> 2024 </xs:complexType> 2025 <xs:complexType name="CloseSequenceResponseType"> 2026 <xs:sequence> 2027 <xs:element ref="wsrm:Identifier"/> 2028 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2029 maxOccurs="unbounded"/> 2030 </xs:sequence> 2031 <xs:anyAttribute namespace="##other" processContents="lax"/> 2032 </xs:complexType> 2033 <xs:complexType name="TerminateSequenceType"> 2034 <xs:sequence> 2035 <xs:element ref="wsrm:Identifier"/> 2036 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2037 maxOccurs="unbounded"/> 2038 </xs:sequence> 2039 <xs:anyAttribute namespace="##other" processContents="lax"/> 2040 </xs:complexType> 2041 <xs:complexType name="TerminateSequenceResponseType">

2042 <xs:sequence> 2043 <xs:element ref="wsrm:Identifier"/> 2044 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2045 maxOccurs="unbounded"/> 2046 </xs:sequence> 2047 <xs:anyAttribute namespace="##other" processContents="lax"/> 2048 </xs:complexType> 2049 <xs:element name="AcksTo" type="wsa:EndpointReferenceType"/> 2050 <xs:complexType name="OfferType"> 2051 <xs:sequence> 2052 <xs:element ref="wsrm:Identifier"/> 2053 <xs:element name="Endpoint" type="wsa:EndpointReferenceType"/> 2054 <xs:element ref="wsrm:Expires" minOccurs="0"/> 2055 <xs:element name="IncompleteSequenceBehavior" 2056 type="wsrm:IncompleteSequenceBehaviorType" minOccurs="0"/> 2057 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2058 maxOccurs="unbounded"/> 2059 </xs:sequence> 2060 <xs:anyAttribute namespace="##other" processContents="lax"/> 2061 </xs:complexType> 2062 <xs:complexType name="AcceptType"> 2063 <xs:sequence> 2064 <xs:element ref="wsrm:AcksTo"/> 2065 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2066 maxOccurs="unbounded"/> 2067 </xs:sequence> 2068 <xs:anyAttribute namespace="##other" processContents="lax"/> 2069 </xs:complexType> 2070 <xs:element name="Expires"> 2071 <xs:complexType> 2072 <xs:simpleContent> 2073 <xs:extension base="xs:duration"> 2074 <xs:anyAttribute namespace="##other" processContents="lax"/> 2075 </xs:extension> 2076 </xs:simpleContent> 2077 </xs:complexType> 2078 </xs:element> 2079 <xs:simpleType name="IncompleteSequenceBehaviorType"> 2080 <xs:restriction base="xs:string"> 2081 <xs:enumeration value="DiscardEntireSequence"/> 2082 <xs:enumeration value="DiscardFollowingFirstGap"/> 2083 <xs:enumeration value="NoDiscard"/> 2084 </xs:restriction> 2085 </xs:simpleType> 2086 <xs:element ref="wsrm:MessageNumberType"/> 2087 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2088 maxOccurs="unbounded"/> 2089 </xs:sequence> 2090 <xs:anyAttribute namespace="##other" processContents="lax"/> 2091 </xs:complexType> 2092 <xs:complexType name="CloseSequenceResponseType"> 2093 <xs:sequence> 2094 <xs:element ref="wsrm:Identifier"/> 2095 <xs:any namespace="##other" processContents="lax" minOccurs="0" 2096 maxOccurs="unbounded"/> 2097 </xs:sequence> 2098 <xs:anyAttribute namespace="##other" processContents="lax"/> 2099 </xs:complexType> 2100 <xs:complexType name="TerminateSequenceType"> 2101 <xs:sequence> 2102 <xs:element ref="wsrm:Identifier"/> 2103 <xs:element ref="wsrm:MessageNumberType" minOccurs="0"/> 2104 <xs:any namespace="##other" processContents="lax" minOccurs="0"

2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167

2168 <xs:restriction base="xs:QName"/> 2169 </xs:simpleType> 2170 </xs:element> 2171 </xs:schema>

Appendix B. WSDL

2173 This WSDL describes the WS-RM protocol from the point of view of an RM Destination. In the case where 2174 an endpoint acts both as an RM Destination and an RM Source, note that additional messages may be 2175 present in exchanges with that endpoint.

2176 Also note that this WSDL is intended to describe the internal structure of the WS-RM protocol, and will not 2177 generally appear in a description of a WS-RM-capable Web service. See WS-RM Policy [WS-RM Policy] 2178 for a higher-level mechanism to indicate that WS-RM is engaged.

2179 The normative WSDL 1.1 definition for WS-ReliableMessaging is located at:

2182 The following non-normative copy is provided for reference.

2183 <?xml version="1.0" encoding="utf-8"?>2184 <!--2185 OASIS takes no position regarding the validity or scope of any intellectual2186 property or other rights that might be claimed to pertain to the2187 implementation or use of the technology described in this document or the2188 extent to which any license under such rights might or might not be available;2189 neither does it represent that it has made any effort to identify any such2190 rights. Information on OASIS's procedures with respect to rights in OASIS2191 specifications can be found at the OASIS website. Copies of claims of rights2192 made available for publication and any assurances of licenses to be made2193 available, or the result of an attempt made to obtain a general license or2194 permission for the use of such proprietary rights by implementors or users of2195 this specification, can be obtained from the OASIS Executive Director.2196 OASIS invites any interested party to bring to its attention any copyrights,2197 patents or patent applications, or other proprietary rights which may cover2198 technology that may be required to implement this specification. Please2199 address the information to the OASIS Executive Director. 2200 Copyright (c) OASIS Open 2002-2007. All Rights Reserved.2201 This document and translations of it may be copied and furnished to others,2202 and derivative works that comment on or otherwise explain it or assist in its2203 implementation may be prepared, copied, published and distributed, in whole or2204 in part, without restriction of any kind, provided that the above copyright2205 notice and this paragraph are included on all such copies and derivative2206 works. However, this document itself does not be modified in any way, such as2207 by removing the copyright notice or references to OASIS, except as needed for2208 the purpose of developing OASIS specifications, in which case the procedures2209 for copyrights defined in the OASIS Intellectual Property Rights document must2210 be followed, or as required to translate it into languages other than English.2211 The limited permissions granted above are perpetual and will not be revoked by2212 OASIS or its successors or assigns.2213 This document and the information contained herein is provided on an "AS IS"2214 basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT2215 NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 2216 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS

2217 FOR A PARTICULAR PURPOSE. 2218 --> 2219 <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 2220 xmlns:xs="http://www.w3.org/2001/XMLSchema" 2221 xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:rm="http://docs.oasis2222 open.org/ws-rx/wsrm/200702" xmlns:tns="http://docs.oasis-open.org/ws2223 rx/wsrm/200702/wsdl" targetNamespace="http://docs.oasis-open.org/ws2224 rx/wsrm/200702/wsdl">

2225 <wsdl:types> 2226 <xs:schema> 2227 <xs:import namespace="http://docs.oasis-open.org/ws-rx/wsrm/200702" 2228 schemaLocation="http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.1-schema2229 200702.xsd"/> 2230 </xs:schema> 2231 </wsdl:types>

2232 <wsdl:message name="CreateSequence"> 2233 <wsdl:part name="create" element="rm:CreateSequence"/> 2234 </wsdl:message> 2235 <wsdl:message name="CreateSequenceResponse"> 2236 <wsdl:part name="createResponse" element="rm:CreateSequenceResponse"/> 2237 </wsdl:message> 2238 <wsdl:message name="CloseSequence"> 2239 <wsdl:part name="close" element="rm:CloseSequence"/> 2240 </wsdl:message> 2241 <wsdl:message name="CloseSequenceResponse"> 2242 <wsdl:part name="closeResponse" element="rm:CloseSequenceResponse"/> 2243 </wsdl:message> 2244 <wsdl:message name="TerminateSequence"> 2245 <wsdl:part name="terminate" element="rm:TerminateSequence"/> 2246 </wsdl:message> 2247 <wsdl:message name="TerminateSequenceResponse"> 2248 <wsdl:part name="terminateResponse" 2249 element="rm:TerminateSequenceResponse"/> 2250 </wsdl:message>

2251 <wsdl:portType name="SequenceAbstractPortType">2252 <wsdl:operation name="CreateSequence">2253 <wsdl:input message="tns:CreateSequence" wsaw:Action="http://docs.oasis2254 open.org/ws-rx/wsrm/200702/CreateSequence"/>2255 <wsdl:output message="tns:CreateSequenceResponse"2256 wsaw:Action="http://docs.oasis-open.org/ws2257 rx/wsrm/200702/CreateSequenceResponse"/>2258 </wsdl:operation>2259 <wsdl:operation name="CloseSequence">2260 <wsdl:input message="tns:CloseSequence" wsaw:Action="http://docs.oasis2261 open.org/ws-rx/wsrm/200702/CloseSequence"/>2262 <wsdl:output message="tns:CloseSequenceResponse"2263 wsaw:Action="http://docs.oasis-open.org/ws2264 rx/wsrm/200702/CloseSequenceResponse"/>2265 </wsdl:operation>2266 <wsdl:operation name="TerminateSequence">2267 <wsdl:input message="tns:TerminateSequence"2268 wsaw:Action="http://docs.oasis-open.org/ws-rx/wsrm/200702/TerminateSequence"/>2269 <wsdl:output message="tns:TerminateSequenceResponse"2270 wsaw:Action="http://docs.oasis-open.org/ws2271 rx/wsrm/200702/TerminateSequenceResponse6. All Rights Reserved.2272 This document and translations of it may be copied and furnished to others,2273 and derivative works that comment on or otherwise explain it or assist in its2274 implementation may be prepared, copied, published and distributed, in whole or2275 in part, without restriction of any kind, provided that the above copyright2276 notice and this paragraph are included on all such copies and derivative2277 works. However, this document itself does not be modified in any way, such as2278 by removing the copyright notice or references to OASIS, except as needed for2279 the purpose of developing OASIS specifications, in which case the procedures2280 for copyrights defined in the OASIS Intellectual Property Rights document must2281 be followed, or as required to translate it into languages other than English.2282 The limited permissions granted above are perpetual and will not be revoked by2283 OASIS or its successors or assigns.2284 This document and the information contained herein is provided on an "AS IS"2285 basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT

2286 NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 2287 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS 2288 FOR A PARTICULAR PURPOSE. 2289 --> 2290 <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 2291 xmlns:xs="http://www.w3.org/2001/XMLSchema" 2292 xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:rm="http://docs.oasis2293 open.org/ws-rx/wsrm/200608" xmlns:tns="http://docs.oasis-open.org/ws2294 rx/wsrm/200608/wsdl" targetNamespace="http://docs.oasis-open.org/ws2295 rx/wsrm/200608/wsdl">

2296 <wsdl:types> 2297 <xs:schema> 2298 <xs:import namespace="http://docs.oasis-open.org/ws-rx/wsrm/200608" 2299 schemaLocation="http://docs.oasis-open.org/ws-rx/wsrm/200608/wsrm-1.1-schema2300 200608.xsd"/> 2301 </xs:schema> 2302 </wsdl:types>

2303 <wsdl:message name="CreateSequence"> 2304 <wsdl:part name="create" element="rm:CreateSequence"/> 2305 </wsdl:message> 2306 <wsdl:message name="CreateSequenceResponse"> 2307 <wsdl:part name="createResponse" element="rm:CreateSequenceResponse"/> 2308 </wsdl:message> 2309 <wsdl:message name="CloseSequence"> 2310 <wsdl:part name="close" element="rm:CloseSequence"/> 2311 </wsdl:message> 2312 <wsdl:message name="CloseSequenceResponse"> 2313 <wsdl:part name="closeResponse" element="rm:CloseSequenceResponse"/> 2314 </wsdl:message> 2315 <wsdl:message name="TerminateSequence"> 2316 <wsdl:part name="terminate" element="rm:TerminateSequence"/> 2317 </wsdl:message> 2318 <wsdl:message name="TerminateSequenceResponse"> 2319 <wsdl:part name="terminateResponse" 2320 element="rm:TerminateSequenceResponse"/> 2321 </wsdl:message> 2322 <wsdl:message name="MakeConnection"> 2323 <wsdl:part name="makeConnection" element="rm:MakeConnection"/> 2324 </wsdl:message>

2325 <wsdl:portType name="SequenceAbstractPortType">2326 <wsdl:operation name="CreateSequence">2327 <wsdl:input message="tns:CreateSequence" wsaw:Action="http://docs.oasis2328 open.org/ws-rx/wsrm/200608/CreateSequence"/>2329 <wsdl:output message="tns:CreateSequenceResponse"2330 wsaw:Action="http://docs.oasis-open.org/ws2331 rx/wsrm/200608/CreateSequenceResponse"/>2332 </wsdl:operation>2333 <wsdl:operation name="CloseSequence">2334 <wsdl:input message="tns:CloseSequence" wsaw:Action="http://docs.oasis2335 open.org/ws-rx/wsrm/200608/CloseSequence"/>2336 <wsdl:output message="tns:CloseSequenceResponse"2337 wsaw:Action="http://docs.oasis-open.org/ws2338 rx/wsrm/200608/CloseSequenceResponse"/>2339 </wsdl:operation>2340 <wsdl:operation name="TerminateSequence">2341 <wsdl:input message="tns:TerminateSequence"2342 wsaw:Action="http://docs.oasis-open.org/ws-rx/wsrm/200608/TerminateSequence"/>2343 <wsdl:output message="tns:TerminateSequenceResponse"2344 wsaw:Action="http://docs.oasis-open.org/ws2345 rx/wsrm/200608/TerminateSequenceResponse"/>

2346 </wsdl:operation> 2347 <wsdl:operation name="MakeConnection"> 2348 <wsdl:input message="tns:MakeConnection" wsaw:Action="http://docs.oasis2349 open.org/ws-rx/wsrm/200608/MakeConnection"/> 2350 </wsdl:operation> 2351 </wsdl:portType>

2352 </wsdl:definitions>

2180 http://docs.oasis-open.org/ws-rx/wsrm/200702/wsdl/wsrm-1.1-wsdl-200702608/wsdl/wsrm-1.1-wsdl2181 200608.wsdl

2353 Appendix C. Message Examples

2354 Appendix C.1 Create Sequence

2355 Create Sequence

2356 <?xml version="1.0" encoding="UTF-8"?> 2357 <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" 2358 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" 2359 xmlns:wsa="http://www.w3.org/2005/08/addressing"> 2360 <S:Header> 2361 <wsa:MessageID> 2362 http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546817 2363 </wsa:MessageID> 2364 <wsa:To>http://example.com/serviceB/123</wsa:To> 2365 <wsa:Action>http://docs.oasis-open.org/ws2366 rx/wsrm/200702608/CreateSequence</wsa:Action> 2367 <wsa:ReplyTo> 2368 <wsa:Address>http://Business456.com/serviceA/789</wsa:Address> 2369 </wsa:ReplyTo> 2370 </S:Header> 2371 <S:Body> 2372 <wsrm:CreateSequence> 2373 <wsrm:AcksTo> 2374 <wsa:Address>http://Business456.com/serviceA/789</wsa:Address> 2375 </wsrm:AcksTo> 2376 </wsrm:CreateSequence> 2377 </S:Body> 2378 </S:Envelope>

2379 Create Sequence Response

2380 <?xml version="1.0" encoding="UTF-8"?> 2381 <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" 2382 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" 2383 xmlns:wsa="http://www.w3.org/2005/08/addressing"> 2384 <S:Header> 2385 <wsa:To>http://Business456.com/serviceA/789</wsa:To> 2386 <wsa:RelatesTo> 2387 http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8a7c2eb546817 2388 </wsa:RelatesTo> 2389 <wsa:Action> 2390 http://docs.oasis-open.org/ws-rx/wsrm/200702608/CreateSequenceResponse 2391 </wsa:Action> 2392 </S:Header> 2393 <S:Body> 2394 <wsrm:CreateSequenceResponse> 2395 <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier> 2396 </wsrm:CreateSequenceResponse> 2397 </S:Body> 2398 </S:Envelope>

2399 Appendix C.2 Initial Transmission

2400 The following example WS-ReliableMessaging headers illustrate the message exchange in the above 2401 figure. The three messages have the following headers; the third message is identified as the last 2402 message in the Sequence:

2403 Message 1

2404 <?xml version="1.0" encoding="UTF-8"?> 2405 <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" 2406 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" 2407 xmlns:wsa="http://www.w3.org/2005/08/addressing"> 2408 <S:Header> 2409 <wsa:MessageID> 2410 http://Business456.com/guid/71e0654e-5ce8-477b-bb9d-34f05cfcbc9e 2411 </wsa:MessageID> 2412 <wsa:To>http://example.com/serviceB/123</wsa:To> 2413 <wsa:From> 2414 <wsa:Address>http://Business456.com/serviceA/789</wsa:Address> 2415 </wsa:From> 2416 <wsa:Action>http://example.com/serviceB/123/request</wsa:Action> 2417 <wsrm:Sequence> 2418 <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier> 2419 <wsrm:MessageNumber>1</wsrm:MessageNumber> 2420 </wsrm:Sequence> 2421 </S:Header> 2422 <S:Body> 2423 <!--Some Application Data --> 2424 </S:Body> 2425 </S:Envelope>

2426 Message 2

2427 <?xml version="1.0" encoding="UTF-8"?> 2428 <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" 2429 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" 2430 xmlns:wsa="http://www.w3.org/2005/08/addressing"> 2431 <S:Header> 2432 <wsa:MessageID> 2433 http://Business456.com/guid/daa7d0b2-c8e0-476e-a9a4-d164154e38de 2434 </wsa:MessageID> 2435 <wsa:To>http://example.com/serviceB/123</wsa:To> 2436 <wsa:From> 2437 <wsa:Address>http://Business456.com/serviceA/789</wsa:Address> 2438 </wsa:From> 2439 <wsa:Action>http://example.com/serviceB/123/request</wsa:Action> 2440 <wsrm:Sequence> 2441 <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier> 2442 <wsrm:MessageNumber>2</wsrm:MessageNumber> 2443 </wsrm:Sequence> 2444 </S:Header> 2445 <S:Body> 2446 <!--Some Application Data --> 2447 </S:Body> 2448 </S:Envelope>

2449 Message 3

2450 <?xml version="1.0" encoding="UTF-8"?> 2451 <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" 2452 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" 2453 xmlns:wsa="http://www.w3.org/2005/08/addressing"> 2454 <S:Header> 2455 <wsa:MessageID> 2456 http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546819 2457 </wsa:MessageID> 2458 <wsa:To>http://example.com/serviceB/123</wsa:To> 2459 <wsa:From> 2460 <wsa:Address>http://Business456.com/serviceA/789</wsa:Address> 2461 </wsa:From> 2462 <wsa:Action>http://example.com/serviceB/123/request</wsa:Action> 2463 <wsrm:Sequence> 2464 <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier>

2465 <wsrm:MessageNumber>3</wsrm:MessageNumber> 2466 </wsrm:Sequence> 2467 <wsrm:AckRequested> 2468 <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier> 2469 </wsrm:AckRequested> 2470 </S:Header> 2471 <S:Body> 2472 <!-- Some Application Data --> 2473 </S:Body> 2474 </S:Envelope>

2475 Appendix C.3 First Acknowledgement

2476 Message number 2 has not been accepted by the RM Destination due to some transmission error so it 2477 responds with an Acknowledgement for messages 1 and 3:

2478 <?xml version="1.0" encoding="UTF-8"?> 2479 <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" 2480 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" 2481 xmlns:wsa="http://www.w3.org/2005/08/addressing"> 2482 <S:Header> 2483 <wsa:MessageID> 2484 http://example.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546810 2485 </wsa:MessageID> 2486 <wsa:To>http://Business456.com/serviceA/789</wsa:To> 2487 <wsa:From> 2488 <wsa:Address>http://example.com/serviceB/123</wsa:Address> 2489 </wsa:From> 2490 <wsa:Action> 2491 http://docs.oasis-open.org/ws-rx/wsrm/200702608/SequenceAcknowledgement 2492 </wsa:Action> 2493 <wsrm:SequenceAcknowledgement> 2494 <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier> 2495 <wsrm:AcknowledgementRange Upper="1" Lower="1"/> 2496 <wsrm:AcknowledgementRange Upper="3" Lower="3"/> 2497 </wsrm:SequenceAcknowledgement> 2498 </S:Header> 2499 <S:Body/> 2500 </S:Envelope>

2501 Appendix C.4 Retransmission

2502 The RM Sourcediscovers that message number 2 was not accepted so it resends the message and 2503 requests an Acknowledgement:

2504 <?xml version="1.0" encoding="UTF-8"?> 2505 <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" 2506 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" 2507 xmlns:wsa="http://www.w3.org/2005/08/addressing"> 2508 <S:Header> 2509 <wsa:MessageID> 2510 http://Business456.com/guid/daa7d0b2-c8e0-476e-a9a4-d164154e38de 2511 </wsa:MessageID> 2512 <wsa:To>http://example.com/serviceB/123</wsa:To> 2513 <wsa:From> 2514 <wsa:Address>http://Business456.com/serviceA/789</wsa:Address> 2515 </wsa:From> 2516 <wsa:Action>http://example.com/serviceB/123/request</wsa:Action> 2517 <wsrm:Sequence> 2518 <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier> 2519 <wsrm:MessageNumber>2</wsrm:MessageNumber> 2520 </wsrm:Sequence>

2521 2522 2523 2524 2525 2526 2527 2528

2529

2530 2531

2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553

2554

2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577

2578

<wsrm:AckRequested> <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier>

</wsrm:AckRequested> </S:Header> <S:Body>

<!-- Some Application Data --> </S:Body> </S:Envelope>

Appendix C.5 Termination

The RM Destination now responds with an Acknowledgement for the complete Sequence which can then be terminated:

<?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" xmlns:wsa="http://www.w3.org/2005/08/addressing">

<S:Header> <wsa:MessageID>

http://example.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546811 </wsa:MessageID> <wsa:To>http://Business456.com/serviceA/789</wsa:To> <wsa:From>

<wsa:Address>http://example.com/serviceB/123</wsa:Address> </wsa:From> <wsa:Action>

http://docs.oasis-open.org/ws-rx/wsrm/200702608/SequenceAcknowledgement </wsa:Action> <wsrm:SequenceAcknowledgement>

<wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier> <wsrm:AcknowledgementRange Upper="3" Lower="1"/>

</wsrm:SequenceAcknowledgement> </S:Header> <S:Body/>

</S:Envelope>

Terminate Sequence

2579 <?xml version="1.0" encoding="UTF-8"?> 2580 <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" 2581 xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702608" 2582 xmlns:wsa="http://www.w3.org/2005/08/addressing"> 2583 <S:Header> 2584 <wsa:MessageID> 2585 http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546813 2586 </wsa:MessageID> 2587 <wsa:To>http://example.com/serviceA/789</wsa:To> 2588 <wsa:Action> 2589 http://docs.oasis-open.org/ws-rx/wsrm/200702608/TerminateSequenceResponse 2590 </wsa:Action> 2591 <wsa:RelatesTo> 2592 http://Business456.com/guid/0baaf88d-483b-4ecf-a6d8-a7c2eb546812 2593 </wsa:RelatesTo> 2594 <wsa:From> 2595 <wsa:Address>http://Business456.com/serviceA/789</wsa:Address> 2596 </wsa:From> 2597 </S:Header> 2598 <S:Body> 2599 <wsrm:TerminateSequenceResponse> 2600 <wsrm:Identifier>http://Business456.com/RM/ABC</wsrm:Identifier> 2601 </wsrm:TerminateSequenceResponse> 2602 </S:Body> 2603 </S:Envelope>

2604 Appendix C.6 MakeConnection

2605 To illustrate how a MakeConnection message exchange can be used to deliver messages to an 2606 Endpoint that is not addressable, consider the case of a pub/sub scenario in which the Endpoint to which 2607 notifications are to be delivered (the "event consumer") is not addressable by the notification sending 2608 Endpoint (the "event producer"). In this scenario the event consumer must initiate the connections in order 2609 for the notifications to be delivered. One possible set of message exchanges (using HTTP) that 2610 demonstrate how this can be achieved using MakeConnectionis shown below.

2611 Step 1 – During a "subscribe" operation, the event consumer's EPR specifies the RM anonymous URI 2612 and the RM Policy Assertion to indicate whether or not RM is required:

2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636

2637 </S:Body>2638 </S:Envelope>2639 In this example the subscribe and targetEPRelements are simply examples of what a subscription 2640 request message might contain. Note: the wsa:Addresselement contains the RM anonymous URI 2641 indicating that the notification producer needs to queue the messages until they are requested using the 2642 MakeConnection message exchange. The EPR also contains the RM Policy Assertion indicating the RM 2643 must be used when notifications related to this subscription are sent.

2644 Step 2 – Once the subscription is established, the event consumer checks for a pending message:

2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660

2661 Step 3 – If there are messages waiting to be delivered then a message will be returned back to the event 2662 consumer. However, because WS-RM is being used to deliver the messages, the first message returned 2663 is a CreateSequence:

2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682

2683 2684 Destination of those messages, nothing new is introduced by the use of the MakeConnection, the use 2685 of RM protocol is the same as the case where the event consumer is addressable.

2686 Step 4 – The event consumer will respond with a CreateSequenceResponse message per normal WS2687 Addressing rules:

2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702

2703 2704 response will be an HTTP 202.

2705 Step 5 – The event consumer checks for another message pending:

2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721

2722

2723 Step 6 – If there is a message pending for this destination then it is returned on the HTTP response:

2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739

2740 2741 format of the messages, the order of the messages sent and the timing of when to send it remains the 2742 same.

2743 Step 7 – At some later interval, or immediately due to the MessagePendingheader's "pending" 2744 attribute being set to "true", the event consumer will poll again:

2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760

2761 2762 the MakeConnection can be any message destined to the specified Endpoint. This allows the event 2763 producer to send not only application messages but RM protocol messages (e.g. CloseSequence, 2764 TerminateSequence or even additional CreateSequences) as needed.

2765 Step 8 – If at any point in time there are no messages pending, in response to a MakeConnectionthe 2766 event producer returns an HTTP 202 back to the event consumer. The process then repeats (back to step 2767 7) until the subscription ends.

2768

Appendix D. State Tables

2769 This appendix specifies the non-normative state transition tables for RM Source and RM Destination. 2770 The state tables describe the lifetime of a sequence in both the RM Source and the RM Destination 2771 Legend: 2772 The first column of these tables contains the motivating event and has the following format:

Event

Event name [source] {ref}

2773 Where: 2774 Event Name: indicates the name of the event. Event Names surrounded by “<>” are optional as 2775 described by the specification. 2776 ● [source]: indicates the source of the event; one of: 2777 ● [msg] a Received message 2778 ● [int]: an internal event such as the firing of a timer 2779 ● [app]: the application 2780 ● [unspec]: the source is unspecified 2781 Each event / state combination cell in the tables in this appendix has the following format:

State Name

Action to take [next state] {ref}

2782 Where:

2783 ● action to take: indicates that the state machine performs the following action. Actions surrounded 2784 by “<>” are optional as described by the specification. “Xmit” is used as a short form for the word 2785 “Transmit”

2786 ● [next state]: indicates the state to which the state machine will advance upon the performance of 2787 the action. For ease of reading the next state “same” indicates that the state does not change.

2788 ● {ref} is a reference to the document section describing the behavior in this cell

2789 “N/A” in a cell indicates a state / event combination self-inconsistent with the state machine; should these 2790 conditions occur, it would indicate an implementation error. A blank cell indicates that the behavior is not 2791 described in this specification and does not indicate normal protocol operation. Implementations MAY 2792 generate a Sequence Terminated fault (see section 4.2) in these circumstances. Robust implementations 2793 MUST be able to operate in a stable manner despite the occurrence of unspecified event / state 2794 combinations.

2795 Table 1 RM Source Sequence State Transition Table

Events Sequence States
None Creating Created Closing Closed Terminating
Create Sequence [unspec] {3.4} Xmit Create Sequence [Creating] {3.4} N/A N/A N/A N/A N/A
Create Sequence Response [msg] {3.4) Process Create Sequence Response [Created] {3.4}
Create Sequence Refused Fault [msg] {3.4} No action [None] {4.6}
Send message [app] {2.1} N/A N/A Xmit message [Same] {2} No action [Same] {2} N/A N/A
Retransmit of unack’d message [int] N/A N/A Xmit message [Same] {2.3} Xmit message [Same] {2.3} N/A N/A
SeqAck (non-final)[msg] {3.9} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} Process Ack ranges [Same] {3.9} Process Ack ranges [Same] {3.9} Process Ack ranges [Same] {3.9} Process Ack ranges [Same] {3.9}
Nack [msg] {3.9) Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} <Xmit message (s)> [Same] {3.9} <Xmit message (s)> [Same] {3.9} No action [Same] No action [Same]
Message Number Rollover Fault [msg] Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} No action [Rollover] No action [Same] No action [Same] No action [Same]
CloseSequence [msg] {3.5} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} Xmit CloseSequence Response [Closed] {3.5} Xmit CloseSequence Response [Closed] {3.5} Xmit CloseSequence Response [Closed] {3.5} Generate Unknown Sequence Fault [Same] {4.3}
<Close Sequence>[int] {3.5} N/A Xmit Close Sequence [Closing] {3.5} N/A N/A N/A
Close Sequence Response [msg] {3.5} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} No action [Closed] {3.5} No action [Same] {3.5} No action [Same] {3.5}
Events Sequence States
None Creating Created Closing Closed Terminating
SeqAck (final)[msg] {3.9} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} Process Ack ranges [Closed] {3.9} Process Ack ranges [Closed] {3.9} Process Ack ranges [Same] Process Ack ranges [Same]
Sequence Closed Fault [msg] {4.7} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} No action [Closed] {4.7} No action [Closed] {4.7} No action [Same] No action [Same]
Unknown Sequence Fault [msg] {4.3} Terminate Sequence [None] {4.3} Terminate Sequence [None] {4.3} Terminate Sequence [None] {4.3} Terminate Sequence [None] {4.3}
Sequence Terminated Fault [msg] {4.2} N/A Terminate Sequence [None] {4.2} Terminate Sequence [None] {4.2} Terminate Sequence [None] {4.2} Terminate Sequence [None] {4.2}
TerminateSequence [msg] {3.6} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} Xmit Terminate Sequence Response [None] {3.6} Xmit Terminate Sequence Response [None] {3.6} Xmit Terminate Sequence Response [None] {3.6} Generate Unknown Sequence Fault [Same] {4.3}
Terminate Sequence [int] N/A No action [None] {unspec} Xmit Terminate Sequence [Terminating] Xmit Terminate Sequence [Terminating] Xmit Terminate Sequence [Terminating] N/A
Terminate Sequence Response [msg] Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} Terminate Sequence [None] {3.6}
Expires exceeded[int] N/A Terminate Sequence [None] {3.7} Terminate Sequence [None] {3.7} Terminate Sequence [None] {3.7} Terminate Sequence [None] {3.7} Terminate Sequence [None] {3.7}
Invalid Acknowledgement [msg] {4.4] Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} Generate Invalid Acknowledgemen t Fault [Same] {4.4} Generate Invalid Acknowledgemen t Fault [Same] {4.4} Generate Invalid Acknowledgemen t Fault [Same] {4.4} Generate Invalid Acknowledgemen t Fault [Same] {4.4}
Events Sequence States
None Creating Created Closing Closed Terminating
Create Sequence[unspec] {3.1} Xmit Create Sequence [Creating] {3.1} N/A N/A N/A N/A N/A
Events Sequence States
None Creating Created Closing Closed Terminating
Create Process Create
Sequence Response [msg] {3.1) Sequence Response [Created] {3.1}
Create Sequence Refused Fault [msg] {3.1} No action [None] {4.6}
Send message [app] {2.1} N/A N/A Xmit message [Same] {2} No action [Same] {2} N/A N/A
Retransmit of un-ack’d message [int] N/A N/A Xmit message [Same] {2.4} Xmit message [Same] {2.4} N/A N/A
SeqAck (nonfinal)[msg] {3.6} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} Process Ack ranges [Same] {3.6} Process Ack ranges [Same] {3.6} Process Ack ranges [Same] {3.6} Process Ack ranges [Same] {3.6}
Nack [msg] {3.6) Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} <Xmit message (s)> [Same] {3.6} <Xmit message (s)> [Same] {3.6} No action [Same] No action [Same]
Message Number Rollover Fault [msg] Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} No action [Rollover] No action [Same] No action [Same] No action [Same]
<Close Sequence> [int] {3.2} N/A Xmit Close Sequence [Closing] {3.2} N/A N/A N/A
Close Generate Generate No action No action No action
Sequence Response [msg] {3.2} Unknown Sequence Fault [Same] {4.3} Unknown Sequence Fault [Same] {4.3} [Closed] {3.2} [Same] {3.2} [Same] {3.2}
SeqAck (final) [msg] {3.6} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} Process Ack ranges [Closed] {3.6} Process Ack ranges [Closed] {3.6} Process Ack ranges [Same] Process Ack ranges [Same]
Sequence Closed Fault [msg] {4.7} Generate Unknown Sequence Fault [Same] {4.3} Generate Unknown Sequence Fault [Same] {4.3} No action [Closed] {4.7} No action [Closed] {4.7} No action [Same] No action [Same]
Events Sequence States
None Creating Created Closing Closed Terminating
Unknown Terminate Terminate Terminate Terminate
Sequence Sequence Sequence Sequence Sequence
Fault [None] [None] [None] [None]
[msg] {4.3} {4.3} {4.3} {4.3}
{4.3}
Sequence N/A Terminate Terminate Terminate Terminate
Terminated Sequence Sequence Sequence Sequence
Fault [None] [None] [None] [None]
[msg] {4.2} {4.2} {4.2} {4.2}
{4.2}
Terminate N/A No action Xmit Terminate Xmit Terminate Xmit Terminate N/A
Sequence [None] Sequence Sequence Sequence
[int] {unspec} [Terminating] [Terminating] [Terminating]
Terminate Generate Generate Terminate
Sequence Unknown Unknown Sequence
Response Sequence Fault Sequence Fault [None]
[msg] [Same] [Same] {3.3}
{4.3} {4.3}
Expires N/A Terminate Terminate Terminate Terminate Terminate
exceeded Sequence Sequence Sequence Sequence Sequence
[int] [None] [None] [None] [None] [None]
{3.4} {3.4} {3.4} {3.4} {3.4}
Invalid Generate Generate Generate Invalid Generate Invalid Generate Invalid Generate Invalid
Acknowledge Unknown Unknown Acknowledgemen Acknowledgemen Acknowledgemen Acknowledgemen
ment Sequence Fault Sequence Fault t Fault t Fault t Fault t Fault
[msg] [Same] [Same] [Same] [Same] [Same] [Same]
{4.4] {4.3} {4.3} {4.4} {4.4} {4.4} {4.4}

2796 Table 2 RM Destination Sequence State Transition Table

Events Sequence States
None Created Closed Terminating
CreateSequence (successful) [msg/int] {3.4} Xmit Create Sequence Response [Created] {3.4} N/A N/A
CreateSequence (unsuccessful) [msg/int] {3.4} Generate Create Sequence Refused Fault [None] {3.4} N/A N/A
Message (with message number within range) [msg] Generate Unknown Sequence Fault [Same] {4.3} Accept Message; <Xmit SeqAck> [Same] Generate Sequence Closed Fault (with SeqAck+Final) [Same] {3.5} Generate Sequence Terminated Fault [Same] {4.2}
Message (with message number outside of range) [msg] Generate Unknown Sequence Fault [Same] {4.3} Xmit Message Number Rollover Fault [Same] {3.7}{4.5} Generate Sequence Closed Fault (with SeqAck+Final) [Same] {3.5} Generate Sequence Terminated Fault [Same] {4.2}
<AckRequested> [msg] {3.8} Generate Unknown Seq Fault [Same] {4.3} Xmit SeqAck [Same] {3.8} Xmit SeqAck+Final [Same] {3.9} Generate Sequence Terminated Fault [Same] {4.2}
Events Sequence States
None Created Closed Terminating
CloseSequence[msg] {3.5} Generate Unknown Sequence Fault [Same] {4.3} Xmit CloseSequence Response with SeqAck+Final [Closed] {3.5} Xmit CloseSequence Response with SeqAck+Final [Closed] {3.5} Generate Sequence Terminated Fault [Same] {4.2}
<CloseSequence autonomously> [int] Xmit CloseSequence with SeqAck+Final [Closed] {3.5} Xmit CloseSequence with SeqAck+Final [Same] {3.5}
CloseSequenceResponse[msg] {3.5} Generate Unknown Sequence Fault [Same] {4.3} No Action [Closed] {3.5} Generate Sequence Terminated Fault [Same] {4.2}
TerminateSequence [msg] {3.6) Generate Unknown Sequence Fault [Same] {4.3} Xmit Terminate Sequence Response [None] {3.6} Xmit Terminate Sequence Response [None] {3.6} Xmit Terminate Sequence Response [None] {3.6}
<TerminateSequence autonomously> [int] Xmit TerminateSequence with SeqAck+Final [Terminating] {3.6} Xmit TerminateSequence with SeqAck+Final [Terminating] {3.6} Xmit TerminateSequence with SeqAck+Final [Terminating] {3.6}
TerminateSequenceResponse [msg] Generate Unknown Sequence Fault [Same] {4.3} Terminate Sequence [None]
UnknownSequence Fault[msg] {4.3} Terminate Sequence [None] {4.3} Terminate Sequence [None] {4.3} Terminate Sequence [None] {4.3}
SequenceTerminated Fault [msg] {4.2} Terminate Sequence [None] {4.2} Terminate Sequence [None] {4.2} Terminate Sequence [None] {4.3}
Invalid Acknowledgement Fault [msg] {4.4} N/A
Expires exceeded[int] N/A Terminate Sequence [None] {3.4} Terminate Sequence [None] {3.4}
<Seq Acknowledgement autonomously> [int] {3.9} N/A Xmit SeqAck [Same] {3.9} Xmit SeqAck+Final [Same] {3.9}
Non WSRM message when WSRM required [msg] {4.8} Generate WSRMRequired Fault [Same] {4.8} Generate WSRMRequired Fault [Same] {4.8} Generate WSRMRequired Fault [Same] {4.8}
Events Sequence States
None Created Closed
CreateSequence (successful) [msg/int] {3.1} Xmit Create Sequence Response [Created] {3.1} N/A N/A
Events Sequence States
None Created Closed
CreateSequence (unsuccessful) [msg/int] {3.1} Generate Create Sequence Refused Fault [None] {3.1} N/A N/A
Message (with message number within range) [msg] Generate Unknown Sequence Fault [Same] {4.3} Accept Message; <Xmit SeqAck> [Same] Generate Sequence Closed Fault (with SeqAck+Final) [Same] {3.2}
Message (with message number outside of range) [msg] Generate Unknown Sequence Fault [Same] {4.3} Xmit Message Number Rollover Fault [Same] {3.4}{4.5} Generate Sequence Closed Fault (with SeqAck+Final) [Same] {3.2}
<AckRequested> [msg] {3.5} Generate Unknown Seq Fault [Same] {4.3} Xmit SeqAck [Same] {3.5} Xmit SeqAck+Final [Same] {3.6}
CloseSequence [msg] {3.2} Generate Unknown Sequence Fault [Same] {4.3} Xmit CloseSequence Response with SeqAck+Final [Closed] {3.2} Generate Sequence Closed Fault [Same] {4.7}
<CloseSequence autonomously> [int] N/A No Action [Closed] N/A
TerminateSequence[msg] {3.3) Generate Unknown Sequence Fault [Same] {4.3} Xmit Terminate Sequence Response [None] {3.3} Xmit Terminate Sequence Response [None] {3.3}
UnknownSequence Fault [msg] {4.3} Terminate Sequence [None] {4.3} Terminate Sequence [None] {4.3}
SequenceTerminated Fault [msg] {4.2} Terminate Sequence [None] {4.2} Terminate Sequence [None] {4.2}
Invalid Acknowledgement Fault [msg] {4.4} N/A
Expires exceeded [int] N/A Terminate Sequence [None] {3.4} Terminate Sequence [None] {3.4}
<Seq Acknowledgement autonomously> [int] {3.6} N/A Xmit SeqAck [Same] {3.6} Xmit SeqAck+Final [Same] {3.6}
Non WSRM message when WSRM required [msg] {4.8} Generate WSRMRequired Fault [Same] {4.8} Generate WSRMRequired Fault [Same] {4.8} Generate WSRMRequired Fault [Same] {4.8}

2797 The following two tables apply only if the MakeConnectionmechanism is utilized. 2798 Table 3 Sending Endpoint Message Transfer Engine

Event None Queued n=1 Queued, n>1
Message destined to anon Endpoint when channel unavailable [int] {3.7} Queue message [Queued n=1] Queue message [Queued n>1] Queue message [Queued n>1]
MakeConnection [msg] {3.7} Send message [none] Xmit message with MessagePending [if n=2 then (Queued n=1) else (Queued n>1)]

2799 Table 4 Receiving Endpoint Message Transfer Engine

Event None Polling
Expectation of unreceived message [int, unspecified] No Action [Polling] No Action [Same]
Polling trigger [int, unspecified] Xmit MakeConnection [Polling] (3.7}

Appendix E. Acknowledgments

2801 This document is based on initial contribution to OASIS WS-RX Technical Committee by the following 2802 authors:

2803 Ruslan Bilorusets(BEA), Don Box(Microsoft), Luis Felipe Cabrera(Microsoft), Doug Davis(IBM), 2804 Donald Ferguson(IBM), Christopher Ferris-Editor(BM), Tom Freund(IBM), Mary Ann Hondo(IBM), 2805 John Ibbotson(IBM), Lei Jin(BEA), Chris Kaler(Microsoft), David Langworthy-Editor(Microsoft), 2806 Amelia Lewis(TIBCO Software), Rodney Limprecht(Microsoft), Steve Lucco(Microsoft), Don 2807 Mullen(TIBCO Software), Anthony Nadalin(IBM), Mark Nottingham(BEA), David Orchard(BEA), 2808 Jamie Roots(IBM), Shivajee Samdarshi(TIBCO Software), John Shewchuk(Microsoft), Tony 2809 Storey(IBM).

2810 The following individuals have provided invaluable input into the initial contribution:

2811 Keith Ballinger(Microsoft), Stefan Batres(Microsoft), Rebecca Bergersen(Iona), Allen Brown 2812 (Microsoft), Michael Conner(IBM), George Copeland(Microsoft), Francisco Curbera(IBM), Paul 2813 Fremantle(IBM), Steve Graham(IBM), Pat Helland(Microsoft), Rick Hill(Microsoft), Scott 2814 Hinkelman(IBM), Tim Holloway(IBM), Efim Hudis(Microsoft), David Ingham(Microsoft), Gopal 2815 Kakivaya(Microsoft), Johannes Klein(Microsoft), Frank Leymann(IBM), Martin Nally(IBM), Peter 2816 Niblett(IBM), Jeffrey Schlimmer(Microsoft), James Snell(IBM), Keith Stobie(Microsoft), Satish 2817 Thatte(Microsoft), Stephen Todd(IBM), Sanjiva Weerawarana(IBM), Roger Wolter(Microsoft).

2818 The following individuals were members of the committee during the development of this specification:

2819 Abbie Barbir(Nortel), Charlton Barreto(Adobe), Stefan Batres(Microsoft), Hamid Ben Malek 2820 (Fujitsu), Andreas Bjarlestam(Ericsson), Toufic Boubez(Layer 7), Doug Bunting(Sun), Lloyd Burch 2821 (Novell), Steve Carter(Novell), Martin Chapman(Oracle), Dave Chappell(Sonic), Paul Cotton 2822 (Microsoft), Glen Daniels(Sonic), Doug Davis(IBM), Blake Dournaee(Intel), Jacques Durand 2823 (Fujitsu), Colleen Evans(Microsoft), Christopher Ferris(IBM), Paul Fremantle(WSO2), Robert 2824 Freund(Hitachi), Peter Furniss(Erebor), Marc Goodner(Microsoft), Alastair Green(Choreology), 2825 Mike Grogan(Sun), Ondrej Hrebicek(Microsoft), Kazunori Iwasa(Fujitsu), Chamikara Jayalath 2826 (WSO2), Lei Jin(BEA), Ian Jones(BTplc), Anish Karmarkar(Oracle), Paul Knight(Nortel), Dan 2827 Leshchiner(Tibco), Mark Little(JBoss), Lily Liu(webMethods), Matt Lovett(IBM), Ashok Malhotra 2828 (Oracle), Jonathan Marsh(Microsoft), Daniel Millwood(IBM), Jeff Mischkinsky(Oracle), Nilo Mitra 2829 (Ericsson), Peter Niblett(IBM), Duane Nickull(Adobe), Eisaku Nishiyama(Hitachi), Dave Orchard 2830 (BEA), Chouthri Palanisamy(NEC), Sanjay Patil(SAP), Gilbert Pilz(BEA), Martin Raepple(SAP), 2831 Eric Rajkovic(Oracle), Stefan Rossmanith(SAP), Tom Rutt(Fujitsu), Rich Salz(IBM), Shivajee 2832 Samdarshi(Tibco), Vladimir Videlov(SAP), Claus von Riegen(SAP), Pete Wenzel(Sun), Steve 2833 Winkler(SAP), Ümit Yalçinalp(SAP), Nobuyuki Yamamoto(Hitachi).

Appendix F. Revision History

Rev Date By Whom What
wd-01 2005-07-07 Christopher Ferris Initial version created based on submission by the authors.
ws-02 2005-07-21 Doug Davis I011 (PT0S) added
wd-02 2005-08-16 Anish Karmarkar Trivial editorial changes
ws-03 2005-09-15 Doug Davis I019 and i028 (CloseSeq) added
wd-05 2005-09-26 Gilbert Pilz i005 (Source resend of nacks messages when ack already received) added.
wd-05 2005-09-27 Doug Davis i027 (InOrder delivery assurance spanning multiple sequences) added
wd-05 2005-09-27 Doug Davis i020 (Semantics of “At most once” Delivery Assurance) added
wd-05 2005-09-27 Doug Davis i034 (Fault while processing a piggy-backed RM header) added
wd-05 2005-09-27 Doug Davis i033 (Processing model of NACKs) added
wd-05 2005-09-27 Doug Davis i031 (AckRequested schema inconsistency) added
wd-05 2005-09-27 Doug Davis i025 (SeqAck/None) added
wd-05 2005-09-27 Doug Davis i029 (Remove dependency on WS-Security) added
wd-05 2005-09-27 Doug Davis i039 (What does 'have a mU attribute' mean) added
wd-05 2005-09-27 Doug Davis i040 (Change 'optiona'/'required' to 'OPTIONAL'/'REQUIRED') added
wd-05 2005-09-30 Anish Karmarkar i017 (Change NS to http://docs.oasisopen.org/wsrm/200510/)
wd-05 2005-09-30 Anish Karmarkar i045 (Include SecureConversation as a reference and move it to non-normative citation)
wd-05 2005-09-30 Anish Karmarkar i046 (change the type of wsrm:FaultCode element)
wd-06 2005-11-02 Gilbert Pilz Start wd-06 by changing title page from cd-01.
wd-06 2005-11-03 Gilbert Pilz i047 (Reorder spec sections)
wd-07 2005-11-17 Gilbert Pilz Start wd-07
wd-07 2005-11-28 Doug Davis i071 – except for period in Appendix headings
wd-07 2005-11-28 Doug Davis i10
wd-07 2005-11-28 Doug Davis i030
wd-07 2005-11-28 Doug Davis i037
wd-07 2005-11-28 Doug Davis i038
wd-07 2005-11-28 Doug Davis i041
wd-07 2005-11-28 Doug Davis i043
wd-07 2005-11-28 Doug Davis i044
Rev Date By Whom What
wd-07 2005-11-28 Doug Davis i048
wd-07 2005-11-28 Doug Davis i051
wd-07 2005-11-28 Doug Davis i053
wd-07 2005-11-28 Doug Davis i059
wd-07 2005-11-28 Doug Davis i062
wd-07 2005-11-28 Doug Davis i063
wd-07 2005-11-28 Doug Davis i065
wd-07 2005-11-28 Doug Davis i067
wd-07 2005-11-28 Doug Davis i068
wd-07 2005-11-28 Doug Davis i069
wd-07 2005-11-28 Doug Davis Fix bulleted list (#2) in section 2.3
wd-07 2005-11-29 Gilbert Pilz i074 (Use of [tcShortName] in artifact locations namespaces, etc)
wd-07 2005-11-29 Gilbert Pilz i071 – Fixed styles and formating for TOC. Fixed styles of the appendix headings.
wd-07 2005-11-30 Doug Davis Removed dup definition of "Receive"
wd-07 2005-11-30 Gilbert Pilz Fixed lost formatting from heading for Namespace section. Fixed style of text body elements to match OASIS example documents. Fixed tables to match OASIS example documents.
wd-07 2005-12-01 Gilbert Pilz Updated fix for i074 to eliminate trailing '/'. Added corresponding text around action IRI composition.
wd-07 2005-12-01 Gilbert Pilz Use non-fixed fields for date values on both title page and body footers.
wd-07 2005-12-01 Doug Davis Alphabetize the glossary
wd-07 2005-12-02 Doug Davis i064
wd-07 2005-12-02 Doug Davis i066
wd-08 2005-12-15 Doug Davis Add back in RM Source to glossary
wd-08 2005-12-15 Steve Winkler Doug added Steve's editorial nits
wd-08 2005-12-21 Doug Davis i050
wd-08 2005-12-21 Doug Davis i081
wd-08 2005-12-21 Doug Davis i080 – but i050 negates the need for any changes
wd-08 2005-12-21 Doug Davis i079
wd-08 2005-12-21 Doug Davis I076 – didn't add text about "replies" since the RMD to RMS sequence could be used for any message not just replies
wd-08 2005-12-21 Umit Yalcinalp Action Su03: removed wsse from Table 1
wd-08 2005-12-21 Umit Yalcinalp I057 per Sunnyvale F2F 2005, Cleaned up some formatting errors in contributors
wd-08 2005-12-27 Doug Davis i060
Rev Date By Whom What
wd-08 2005-12-27 Gilbert Pilz Moved schema and WSDL files to their own artifacts. Converted source document to OpenDocument Text format. Changed line numbers to be a single style.
wd-08 2005-12-28 Anish Karmarkar Included a section link to c:\temp\wsrm-1.1schema-200510.xsd and to c:\temp\wsrm-1.1wsdl-200510.wsdl
wd-08 2006-01-04 Gilbert Pilz Fixed formatting for included sections.
wd-08 2006-01-05 Gilbert Pilz Created links for unused references. Fixed exemplars for CloseSequence and CloseSequenceResponse.
wd-09 2006-01-11 Doug Davis Minor tweaks to text/typos.
wd-10 2006-01-23 Doug Davis Accept all changes from wd-09 Make some minor editoral tweaks from Marc's comments.
wd-10 2006-02-14 Doug Davis Issue 082 resolution
wd-10 2006-02-14 Doug Davis Issue 083 resolution
wd-10 2006-02-14 Doug Davis Issue 085 resolution
wd-10 2006-02-14 Doug Davis Issues 086, 087 resolutions Defined MessageNumberType
wd-10 2006-02-15 Doug Davis Issue 078 resolution
wd-10 2006-02-15 Doug Davis Issue 094 resolution
wd-10 2006-02-15 Doug Davis Issue 095 resolution
wd-10 2006-02-15 Gilbert Pilz Issue 088 – added namespace URI link to namespace URI; added text explaining that this URI could be dereferenced to produce the RDDL doc; added non-normative reference to RDDL 2.0
wd-10 2006-02-17 Anish Karmarkar Namespace changed to 200602 for both WSDL and XSD docs.
wd-10 2006-02-17 Anish Karmarkar Issue i087 as it applies to WSRM spec.
wd-10 2006-02-17 Anish Karmarkar Added titles and minor text for state table (issue i058).
wd-11 2006-02-22 Doug Davis Accept all changes for new WD Minor typos fixed
wd-11 2006-02-23 Doug Davis s/'close'/close/g – per Marc Goodner Added first ref to [URI] – per Marc G again
wd-11 2006-02-27 Doug Davis Issue i061 applied
wd-11 2006-02-28 Doug Davis Fixed typo around the use of "above" and "below"
wd-11 2006-03-01 Doug Davis Minor typos found by Marc Goodner
wd-11 2006-03-02 Doug Davis Minor typos found by Matt Lovett
wd-11 2006-03-08 Doug Davis Issue 091 applied
wd-11 2006-03-08 Doug Davis Issue 092 applied
Rev Date By Whom What
wd-11 2006-03-08 Doug Davis Issue 100 applied
wd-12 2006-03-20 Doug Davis Added space in "SOAP1.x" – PaulCotton
wd-12 2006-04-11 Doug Davis Issue 007 applied
wd-12 2006-04-11 Doug Davis Issue 090 applied
wd-12 2006-04-11 Doug Davis Issue 098 applied
wd-12 2006-04-11 Doug Davis Issue 099 applied
wd-12 2006-04-11 Doug Davis Issue 101 applied
wd-12 2006-04-11 Doug Davis Issue 103 applied
wd-12 2006-04-11 Doug Davis Issue 104 applied
wd-12 2006-04-11 Doug Davis Issue 105 applied
wd-12 2006-04-11 Doug Davis Issue 107 applied
wd-12 2006-04-11 Doug Davis Issue 109 applied
wd-12 2006-04-11 Doug Davis Issue 110 applied
wd-12 2006-04-12 Doug Davis Used "generated" instead of "issue" or "send" when talking about faults.
wd-12 2006-04-24 Gilbert Pilz Update references to WS-Addressing to the Proposed Recommendations; update WS-RM namespace to “200604”.
wd-13 2006-05-08 Gilbert Pilz i093 part 1; more work needed
wd-13 2006-05-10 Doug Davis Issue 096 applied
wd-13 2006-05-26 Gilbert Pilz i093 part 2; reflects decisions from 2006-05-25 meeting
wd-13 2006-05-28 Gilbert Pilz Issue 106 applied
wd-13 2006-05-29 Gilbert Pilz Issue 118 applied
wd-13 2006-05-29 Gilbert Pilz Issue 120 applied
wd-13 2006-05-30 Gilbert Pilz Issue 114 applied
wd-13 2006-05-30 Gilbert Pilz Issue 116 applied
wd-14 2006-06-05 Gilbert Pilz Accept all changes; bump WD number
wd-14 2006-06-07 Doug Davis Applied lots of minor edits from Marc Goodner
wd-14 2006-06-07 Doug Davis Change a couple of period/sp/sp to period/sp
wd-14 2006-06-07 Doug Davis Added a space in "URI])of" – per Marc Goodner
wd-14 2006-06-07 Doug Davis Issue 131 applied
wd-14 2006-06-07 Doug Davis Issue 132 applied
wd-14 2006-06-07 Doug Davis Issue 119 applied
wd-14 2006-06-07 Doug Davis Applied lots of minor edits from Doug Davis
wd-14 2006-06-07 Doug Davis s/"none"/"full-uri"/ - per Marc Goodner
wd-14 2006-06-12 Doug Davis Complete i106
wd-14 2006-06-12 Doug Davis Issues 089 applied
wd-14 2006-06-12 Doug Davis Fix for several RFC2119 keywords – per Anish
wd-15 2006-06-12 Doug Davis Accept all changed, dump WD number
wd-15 2006-06-12 Doug Davis Move WSDL after Schema
Rev Date By Whom What
wd-15 2006-06-12 Doug Davis Nits – remove tabs, extra [yyy]'s ...
wd-15 2006-06-14 Doug Davis Remove extra "OPTIONAL"s – Matt Lovett
wd-15 2006-06-14 Doug Davis Remove blank rows/columns from state table. Fix italics in state table
wd-15 2006-06-15 Doug Davis Typo – section D was empty
wd-15 2006-06-16 Doug Davis Issue 125 applied
wd-15 2006-06-16 Doug Davis Issue 126 applied
wd-15 2006-06-16 Doug Davis Issue 127 applied
wd-15 2006-06-16 Doug Davis Issue 133 applied
wd-15 2006-06-16 Doug Davis Issue 136 applied
wd-15 2006-06-16 Doug Davis Issue 138 applied
wd-15 2006-06-16 Doug Davis Issue 135 applied
wd-15 2006-06-20 Doug Davis Added all TC members to the ack list
wd-15 2006-06-22 Doug Davis Issue 129 applied
wd-15 2006-06-22 Doug Davis Issue 130 applied
wd-15 2006-06-22 Doug Davis Issue 137 applied
wd-15 2006-06-26 Doug Davis Issue 111 applied
wd-15 2006-06-26 Doug Davis Missed a part of issue 129
wd-15 2006-06-30 Doug Davis Fixed a typo in schema
wd-15 2006-06-30 Doug Davis Issue 141 applied
wd-15 2006-06-30 Doug Davis Issue 142 applied
wd-15 2006-06-30 Doug Davis Issue 148 applied
wd-15 2006-06-30 Doug Davis Issue 149 applied
wd-15 2006-06-30 Doug Davis Issue 150 applied
wd-15 2006-07-06 Doug Davis Issue 121 applied
wd-15 2006-07-21 Doug Davis Issue 139 applied
wd-15 2006-07-21 Doug Davis Issue 144 applied
wd-15 2006-07-21 Doug Davis Issue 147 applied
wd-15 2006-07-21 Doug Davis Issues 122-124 applied
wd-15 2006-07-27 Doug Davis Updated list of oasis TC members (i134)
wd-15 2006-07-27 Doug Davis Issue 140 applied
wd-15 2006-07-27 Doug Davis Issue 145 applied
wd-15 2006-07-27 Doug Davis Issue 143 applied
wd-15 2006-07-28 Doug Davis Lots of minor typos found by Matt L.
wd-15 2006-07-28 Doug Davis Issue 113 applied
wd-15 2006-08-04 Doug Davis Update old namespaces – found by PaulC
wd-15 2006-08-04 Doug Davis Issue 150 applied
wd-15 2006-08-04 Doug Davis Minor typos – found by PeterN
wd-15 2006-08-04 Doug Davis Verify all [refs]
wd-15 2006-08-04 Doug Davis Change namespace to 2006/08
wd-15 2006-08-04 Doug Davis Issue 148 applied
Rev Date By Whom What
wd-15 2006-08-07 Doug Davis Add some new glossary terms – per GilP
cd-04 2006-08-10 Gilbert Pilz Formatting changes for better HTML rendering.
cd-04 2006-08-11 Doug Davis Issue 158 applied
cd-04 2006-08-11 Doug Davis Issue 153 applied
cd-04 2006-08-11 Doug Davis Issue 156 applied
cd-04 2006-08-15 Gilbert Pilz More formatting changes for better HTML rendering.
wd-16 2006-10-25 Doug Davis Accept all changes, update to wd16
wd-16 2006-10-26 Doug Davis PR002 applied
wd-16 2006-10-26 Doug Davis PR003 applied
wd-16 2006-10-26 Doug Davis PR004 applied
wd-16 2006-10-27 Doug Davis PR005 applied
wd-16 2006-10-27 Doug Davis PR006 applied
wd-16 2006-10-27 Doug Davis PR024 applied
wd-16 2006-11-13 Doug Davis PR010 applied
wd-16 2006-11-13 Doug Davis PR011 applied (technically as part of PR004)
wd-16 2006-11-13 Doug Davis PR016 applied
wd-16 2006-11-13 Doug Davis PR032 applied
wd-16 2006-11-20 Doug Davis PR025 applied
wd-16 2006-11-20 Doug Davis PR023 applied
wd-16 2006-12-03 Doug Davis PR036 applied
wd-16 2006-12-03 Doug Davis PR017 applied
wd-16 2006-12-11 Doug Davis PR012 applied (and PR013)
wd-16 2006-12-14 Doug Davis PR033 applied – changed a 'return' to 'generate' when talking about a fault
wd-16 2007-01-04 Doug Davis PR018 applied
wd-16 2007-01-05 Doug Davis Moved MakeConnection to new spec
wd-16 2007-01-17 Doug Davis PR026 applied
wd-16 2007-01-18 Doug Davis PR021 applied
wd-16 2007-01-18 Doug Davis PR022 applied
wd-16 2007-01-18 Doug Davis Fixed a few typos (Doug,Gil)
wd-16 2007-01-18 Gilbert Pilz PR007 applied
wd-16 2007-01-25 Doug Davis PR039 applied
wd-17 2007-01-31 Doug Davis Lots of typos from MarcG Updated WD number and date
wd-17 2007-02-01 Doug Davis PR038 applied
wd-17 2007-02-01 Doug Davis PR035 (009,020 dups) applied Fixed typo in state table
Rev Date By Whom What
wd-01 2005-07-07 Christopher Ferris Initial version created based on submission by the authors.
ws-02 2005-07-21 Doug Davis I011 (PT0S) added
Rev Date By Whom What
wd-02 2005-08-16 Anish Karmarkar Trivial editorial changes
ws-03 2005-09-15 Doug Davis I019 and i028 (CloseSeq) added
wd-05 2005-09-26 Gilbert Pilz i005 (Source resend of nacks messages when ack already received) added.
wd-05 2005-09-27 Doug Davis i027 (InOrder delivery assurance spanning multiple sequences) added
wd-05 2005-09-27 Doug Davis i020 (Semantics of “At most once” Delivery Assurance) added
wd-05 2005-09-27 Doug Davis i034 (Fault while processing a piggy-backed RM header) added
wd-05 2005-09-27 Doug Davis i033 (Processing model of NACKs) added
wd-05 2005-09-27 Doug Davis i031 (AckRequested schema inconsistency) added
wd-05 2005-09-27 Doug Davis i025 (SeqAck/None) added
wd-05 2005-09-27 Doug Davis i029 (Remove dependency on WS-Security) added
wd-05 2005-09-27 Doug Davis i039 (What does 'have a mU attribute' mean) added
wd-05 2005-09-27 Doug Davis i040 (Change 'optiona'/'required' to 'OPTIONAL'/'REQUIRED') added
wd-05 2005-09-30 Anish Karmarkar i017 (Change NS to http://docs.oasisopen.org/wsrm/200510/)
wd-05 2005-09-30 Anish Karmarkar i045 (Include SecureConversation as a reference and move it to non-normative citation)
wd-05 2005-09-30 Anish Karmarkar i046 (change the type of wsrm:FaultCode element)
wd-06 2005-11-02 Gilbert Pilz Start wd-06 by changing title page from cd-01.
wd-06 2005-11-03 Gilbert Pilz i047 (Reorder spec sections)
wd-07 2005-11-17 Gilbert Pilz Start wd-07
wd-07 2005-11-28 Doug Davis i071 – except for period in Appendix headings
wd-07 2005-11-28 Doug Davis i10
wd-07 2005-11-28 Doug Davis i030
wd-07 2005-11-28 Doug Davis i037
wd-07 2005-11-28 Doug Davis i038
wd-07 2005-11-28 Doug Davis i041
wd-07 2005-11-28 Doug Davis i043
wd-07 2005-11-28 Doug Davis i044
wd-07 2005-11-28 Doug Davis i048
wd-07 2005-11-28 Doug Davis i051
wd-07 2005-11-28 Doug Davis i053
wd-07 2005-11-28 Doug Davis i059
wd-07 2005-11-28 Doug Davis i062
wd-07 2005-11-28 Doug Davis i063
Rev Date By Whom What
wd-07 2005-11-28 Doug Davis i065
wd-07 2005-11-28 Doug Davis i067
wd-07 2005-11-28 Doug Davis i068
wd-07 2005-11-28 Doug Davis i069
wd-07 2005-11-28 Doug Davis Fix bulleted list (#2) in section 2.3
wd-07 2005-11-29 Gilbert Pilz i074 (Use of [tcShortName] in artifact locations namespaces, etc)
wd-07 2005-11-29 Gilbert Pilz i071 – Fixed styles and formating for TOC. Fixed styles of the appendix headings.
wd-07 2005-11-30 Doug Davis Removed dup definition of "Receive"
wd-07 2005-11-30 Gilbert Pilz Fixed lost formatting from heading for Namespace section. Fixed style of text body elements to match OASIS example documents. Fixed tables to match OASIS example documents.
wd-07 2005-12-01 Gilbert Pilz Updated fix for i074 to eliminate trailing '/'. Added corresponding text around action IRI composition.
wd-07 2005-12-01 Gilbert Pilz Use non-fixed fields for date values on both title page and body footers.
wd-07 2005-12-01 Doug Davis Alphabetize the glossary
wd-07 2005-12-02 Doug Davis i064
wd-07 2005-12-02 Doug Davis i066
wd-08 2005-12-15 Doug Davis Add back in RM Source to glossary
wd-08 2005-12-15 Steve Winkler Doug added Steve's editorial nits
wd-08 2005-12-21 Doug Davis i050
wd-08 2005-12-21 Doug Davis i081
wd-08 2005-12-21 Doug Davis i080 – but i050 negates the need for any changes
wd-08 2005-12-21 Doug Davis i079
wd-08 2005-12-21 Doug Davis I076 – didn't add text about "replies" since the RMD to RMS sequence could be used for any message not just replies
wd-08 2005-12-21 Umit Yalcinalp Action Su03: removed wsse from Table 1
wd-08 2005-12-21 Umit Yalcinalp I057 per Sunnyvale F2F 2005, Cleaned up some formatting errors in contributors
wd-08 2005-12-27 Doug Davis i060
wd-08 2005-12-27 Gilbert Pilz Moved schema and WSDL files to their own artifacts. Converted source document to OpenDocument Text format. Changed line numbers to be a single style.
wd-08 2005-12-28 Anish Karmarkar Included a section link to c:\temp\wsrm-1.1schema-200510.xsd and to c:\temp\wsrm-1.1wsdl-200510.wsdl
wd-08 2006-01-04 Gilbert Pilz Fixed formatting for included sections.
Rev Date By Whom What
wd-08 2006-01-05 Gilbert Pilz Created links for unused references. Fixed exemplars for CloseSequence and CloseSequenceResponse.
wd-09 2006-01-11 Doug Davis Minor tweaks to text/typos.
wd-10 2006-01-23 Doug Davis Accept all changes from wd-09 Make some minor editoral tweaks from Marc's comments.
wd-10 2006-02-14 Doug Davis Issue 082 resolution
wd-10 2006-02-14 Doug Davis Issue 083 resolution
wd-10 2006-02-14 Doug Davis Issue 085 resolution
wd-10 2006-02-14 Doug Davis Issues 086, 087 resolutions Defined MessageNumberType
wd-10 2006-02-15 Doug Davis Issue 078 resolution
wd-10 2006-02-15 Doug Davis Issue 094 resolution
wd-10 2006-02-15 Doug Davis Issue 095 resolution
wd-10 2006-02-15 Gilbert Pilz Issue 088 – added namespace URI link to namespace URI; added text explaining that this URI could be dereferenced to produce the RDDL doc; added non-normative reference to RDDL 2.0
wd-10 2006-02-17 Anish Karmarkar Namespace changed to 200602 for both WSDL and XSD docs.
wd-10 2006-02-17 Anish Karmarkar Issue i087 as it applies to WSRM spec.
wd-10 2006-02-17 Anish Karmarkar Added titles and minor text for state table (issue i058).
wd-11 2006-02-22 Doug Davis Accept all changes for new WD Minor typos fixed
wd-11 2006-02-23 Doug Davis s/'close'/close/g – per Marc Goodner Added first ref to [URI] – per Marc G again
wd-11 2006-02-27 Doug Davis Issue i061 applied
wd-11 2006-02-28 Doug Davis Fixed typo around the use of "above" and "below"
wd-11 2006-03-01 Doug Davis Minor typos found by Marc Goodner
wd-11 2006-03-02 Doug Davis Minor typos found by Matt Lovett
wd-11 2006-03-08 Doug Davis Issue 091 applied
wd-11 2006-03-08 Doug Davis Issue 092 applied
wd-11 2006-03-08 Doug Davis Issue 100 applied
wd-12 2006-03-20 Doug Davis Added space in "SOAP1.x" – PaulCotton
wd-12 2006-04-11 Doug Davis Issue 007 applied
wd-12 2006-04-11 Doug Davis Issue 090 applied
wd-12 2006-04-11 Doug Davis Issue 098 applied
wd-12 2006-04-11 Doug Davis Issue 099 applied
wd-12 2006-04-11 Doug Davis Issue 101 applied
Rev Date By Whom What
wd-12 2006-04-11 Doug Davis Issue 103 applied
wd-12 2006-04-11 Doug Davis Issue 104 applied
wd-12 2006-04-11 Doug Davis Issue 105 applied
wd-12 2006-04-11 Doug Davis Issue 107 applied
wd-12 2006-04-11 Doug Davis Issue 109 applied
wd-12 2006-04-11 Doug Davis Issue 110 applied
wd-12 2006-04-12 Doug Davis Used "generated" instead of "issue" or "send" when talking about faults.
wd-12 2006-04-24 Gilbert Pilz Update references to WS-Addressing to the Proposed Recommendations; update WS-RM namespace to “200604”.
wd-13 2006-05-08 Gilbert Pilz i093 part 1; more work needed
wd-13 2006-05-10 Doug Davis Issue 096 applied
wd-13 2006-05-26 Gilbert Pilz i093 part 2; reflects decisions from 2006-05-25 meeting
wd-13 2006-05-28 Gilbert Pilz Issue 106 applied
wd-13 2006-05-29 Gilbert Pilz Issue 118 applied
wd-13 2006-05-29 Gilbert Pilz Issue 120 applied
wd-13 2006-05-30 Gilbert Pilz Issue 114 applied
wd-13 2006-05-30 Gilbert Pilz Issue 116 applied
wd-14 2006-06-05 Gilbert Pilz Accept all changes; bump WD number
wd-14 2006-06-07 Doug Davis Applied lots of minor edits from Marc Goodner
wd-14 2006-06-07 Doug Davis Change a couple of period/sp/sp to period/sp
wd-14 2006-06-07 Doug Davis Added a space in "URI])of" – per Marc Goodner
wd-14 2006-06-07 Doug Davis Issue 131 applied
wd-14 2006-06-07 Doug Davis Issue 132 applied
wd-14 2006-06-07 Doug Davis Issue 119 applied
wd-14 2006-06-07 Doug Davis Applied lots of minor edits from Doug Davis
wd-14 2006-06-07 Doug Davis s/"none"/"full-uri"/ - per Marc Goodner
wd-14 2006-06-12 Doug Davis Complete i106
wd-14 2006-06-12 Doug Davis Issues 089 applied
wd-14 2006-06-12 Doug Davis Fix for several RFC2119 keywords – per Anish
wd-15 2006-06-12 Doug Davis Accept all changed, dump WD number
wd-15 2006-06-12 Doug Davis Move WSDL after Schema
wd-15 2006-06-12 Doug Davis 'Nits – remove tabs, extra [yyy]s ...
wd-15 2006-06-14 Doug Davis Remove extra "OPTIONAL"s – Matt Lovett
wd-15 2006-06-14 Doug Davis Remove blank rows/columns from state table. Fix italics in state table
wd-15 2006-06-15 Doug Davis Typo – section D was empty
wd-15 2006-06-16 Doug Davis Issue 125 applied
wd-15 2006-06-16 Doug Davis Issue 126 applied
Rev Date By Whom What
wd-15 2006-06-16 Doug Davis Issue 127 applied
wd-15 2006-06-16 Doug Davis Issue 133 applied
wd-15 2006-06-16 Doug Davis Issue 136 applied
wd-15 2006-06-16 Doug Davis Issue 138 applied
wd-15 2006-06-16 Doug Davis Issue 135 applied
wd-15 2006-06-20 Doug Davis Added all TC members to the ack list
wd-15 2006-06-22 Doug Davis Issue 129 applied
wd-15 2006-06-22 Doug Davis Issue 130 applied
wd-15 2006-06-22 Doug Davis Issue 137 applied
wd-15 2006-06-26 Doug Davis Issue 111 applied
wd-15 2006-06-26 Doug Davis Missed a part of issue 129
wd-15 2006-06-30 Doug Davis Fixed a typo in schema
wd-15 2006-06-30 Doug Davis Issue 141 applied
wd-15 2006-06-30 Doug Davis Issue 142 applied
wd-15 2006-06-30 Doug Davis Issue 148 applied
wd-15 2006-06-30 Doug Davis Issue 149 applied
wd-15 2006-06-30 Doug Davis Issue 150 applied
wd-15 2006-07-06 Doug Davis Issue 121 applied
wd-15 2006-07-21 Doug Davis Issue 139 applied
wd-15 2006-07-21 Doug Davis Issue 144 applied
wd-15 2006-07-21 Doug Davis Issue 147 applied
wd-15 2006-07-21 Doug Davis Issues 122-124 applied
wd-15 2006-07-27 Doug Davis Updated list of oasis TC members (i134)
wd-15 2006-07-27 Doug Davis Issue 140 applied
wd-15 2006-07-27 Doug Davis Issue 145 applied
wd-15 2006-07-27 Doug Davis Issue 143 applied
wd-15 2006-07-28 Doug Davis Lots of minor typos found by Matt L.
wd-15 2006-07-28 Doug Davis Issue 113 applied
wd-15 2006-08-04 Doug Davis Update old namespaces – found by PaulC
wd-15 2006-08-04 Doug Davis Issue 150 applied
wd-15 2006-08-04 Doug Davis Minor typos – found by PeterN
wd-15 2006-08-04 Doug Davis Verify all [refs]
wd-15 2006-08-04 Doug Davis Change namespace to 2006/08
wd-15 2006-08-04 Doug Davis Issue 148 applied
wd-15 2006-08-07 Doug Davis Add some new glossary terms – per GilP
cd-04 2006-08-10 Gilbert Pilz Formatting changes for better HTML rendering.
cd-04 2006-08-11 Doug Davis Issue 158 applied
cd-04 2006-08-11 Doug Davis Issue 153 applied
cd-04 2006-08-11 Doug Davis Issue 156 applied
cd-04 2006-08-15 Gilbert Pilz More formatting changes for better HTML rendering.

2835

Appendix G. Notices

2836 OASIS takes no position regarding the validity or scope of any intellectual property or other rights that 2837 might be claimed to pertain to the implementation or use of the technology described in this document or 2838 the extent to which any license under such rights might or might not be available; neither does it represent 2839 that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to 2840 rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made 2841 available for publication and any assurances of licenses to be made available, or the result of an attempt 2842 made to obtain a general license or permission for the use of such proprietary rights by implementors or 2843 users of this specification, can be obtained from the OASIS Executive Director.

2844 OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or 2845 other proprietary rights which may cover technology that may be required to implement this specification. 2846 Please address the information to the OASIS Executive Director.

2847 Copyright (C) OASIS Open (20076). All Rights Reserved.

2848 This document and translations of it may be copied and furnished to others, and derivative works that 2849 comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and 2850 distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and 2851 this paragraph are included on all such copies and derivative works. However, this document itself may 2852 not be modified in any way, such as by removing the copyright notice or references to OASIS, except as 2853 needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights 2854 defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it 2855 into languages other than English.

2856 The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors 2857 or assigns.

2858 This document and the information contained herein is provided on an "AS IS" basis and OASIS 2859 DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY 2860 WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR 2861 ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.