Web Services Reliable Messaging (WS-ReliableMessaging)

Similar documents
Web Services Reliable Messaging (WS-ReliableMessaging)

Web Services Reliable Messaging (WS- ReliableMessaging) Version 1.2

Web Services Reliable Messaging TC WS-Reliability 1.1

Web Services Resource Transfer (WS-RT)

WS-BPEL Extension for People (BPEL4People) Specification Version 1.1 Committee Specification 17 August 2010

ANSI/SCTE

Request for Comments: 5119 Category: Informational February 2008

Web Services Distributed Management: Management Using Web Services (MUWS 1.0) Part 2

ITU-T Y.4552/Y.2078 (02/2016) Application support models of the Internet of things

DM Scheduling Architecture

)454 ( ! &!2 %.$ #!-%2! #/.42/, 02/4/#/, &/2 6)$%/#/.&%2%.#%3 53).' ( 42!.3-)33)/. /&./.4%,%0(/.% 3)'.!,3. )454 Recommendation (

ITU-T Y Functional framework and capabilities of the Internet of things

Device Management Requirements

Automated Negotiation of Collaboration- Protocol Agreements Specification Version 0.01

OMA Device Management Server Delegation Protocol

ENGINEERING COMMITTEE Energy Management Subcommittee SCTE STANDARD SCTE

ANSI/SCTE

Technology Group Report: ATSC Usage of the MPEG-2 Registration Descriptor

ATSC Standard: 3D-TV Terrestrial Broadcasting, Part 1

Digital Video Subcommittee SCTE STANDARD SCTE

Version 0.5 (9/7/2011 4:18:00 a9/p9 :: application v2.doc) Warning

Journal of Japan Academy of Midwifery Instructions for Authors submitting English manuscripts

administration access control A security feature that determines who can edit the configuration settings for a given Transmitter.

ATSC Standard: Video Watermark Emission (A/335)

Service Modeling Language

Thesis and Dissertation Handbook

ENGINEERING COMMITTEE Digital Video Subcommittee SCTE

SAP Patch Assembly/Distribution Engine (SPADE) (BC-UPG-OCS)

Device Management Requirements

ITU-T Y Specific requirements and capabilities of the Internet of things for big data

DM DiagMon Architecture

Reference Release Definition for ConnMO

ATSC Proposed Standard: A/341 Amendment SL-HDR1

ATSC Candidate Standard: Video Watermark Emission (A/335)

Akron-Summit County Public Library. Collection Development Policy. Approved December 13, 2018

Communication and Networking Error Control Basics

Acquisition Control System Design Requirement Document

Network Operations Subcommittee SCTE STANDARD SCTE SCTE-HMS-QAM-MIB

ATSC Standard: A/342 Part 1, Audio Common Elements

To: Joint Steering Committee for Development of RDA. From: Damian Iseminger, Chair, JSC Music Working Group

ANSI/SCTE

ENGINEERING COMMITTEE

2. SUPERPATH Mbps Digital Service 2.1. General

Thesis and Dissertation Handbook

Section 1 The Portfolio

IEEE 100BASE-T1 Physical Coding Sublayer Test Suite

ISO INTERNATIONAL STANDARD. Bibliographic references and source identifiers for terminology work

Understanding. Subjects. and. Subject. Proxies 1

5620 SAM SERVICE AWARE MANAGER MPTGS Driver Version Guide

ANSI/SCTE

ENGINEERING COMMITTEE

CA Outbound Dialer Module. Operation Manual v1.1

Terms of Use and The Festival Rules

35PM-FCD-ST app-2e Sony Pictures Notes doc. Warning

Scalable Media Systems using SMPTE John Mailhot November 28, 2018 GV-EXPO

ENGINEERING COMMITTEE Digital Video Subcommittee AMERICAN NATIONAL STANDARD ANSI/SCTE

New York MX700 Room. PWD-NY5-MX700-P60 List Price: $11, SLA Price: $1,100.00/year (Other options available See Appendix B)

BUSES IN COMPUTER ARCHITECTURE

StreamServe Persuasion SP5 StreamServe Connect for SAP - Delivery Manager

for Television ---- Formatting AES/EBU Audio and Auxiliary Data into Digital Video Ancillary Data Space

RS-232C External Serial Control Specifications

Digital Video Subcommittee SCTE STANDARD SCTE

D-Lab & D-Lab Control Plan. Measure. Analyse. User Manual

Web Services Base Notification 1.3 (WS-BaseNotification)

47 USC 535. NB: This unofficial compilation of the U.S. Code is current as of Jan. 4, 2012 (see

Device Management Push Binding

Simple Identity Management Profile SM CLP Command Mapping Specification

A NEW METHOD FOR RECALCULATING THE PROGRAM CLOCK REFERENCE IN A PACKET-BASED TRANSMISSION NETWORK

Boot Control Profile SM CLP Command Mapping Specification

DISTRIBUTION STATEMENT A 7001Ö

Middleware for the Internet of Things Revision : 536

Scan Service Model and Requirements

This document is a preview generated by EVS

Synchronous Sequential Logic

Project: IEEE P Working Group for Wireless Personal Area Networks N

ENGINEERING COMMITTEE Digital Video Subcommittee AMERICAN NATIONAL STANDARD ANSI/SCTE

Device Management Push Binding

OASIS EXTENSIBLE ACCESS CONTROL MARKUP LANGUAGE (XACML) TECHNICAL COMMITTEE ISSUES LIST VERSION 07 APRIL 18, 2002.

Do we still need bibliographic standards in computer systems?

Video System Characteristics of AVC in the ATSC Digital Television System

Digital Imaging and Communications in Medicine (DICOM) Supplement 202: Real Real-Time Video

ENGINEERING COMMITTEE Interface Practices Subcommittee AMERICAN NATIONAL STANDARD ANSI/SCTE

Implementation Agreement MEF 23.1

ITU-T Y Reference architecture for Internet of things network capability exposure

NOTICE. (Formulated under the cognizance of the CTA R4.8 DTV Interface Subcommittee.)

AW900mT. User s Manual. Point-to-multipoint. Industrial-grade, ultra-long-range 900 MHz non-line-of-sight wireless Ethernet systems

3rd Slide Set Computer Networks

No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.

SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services Coding of moving video

Network Operations Subcommittee SCTE STANDARD

CHAPTER 8 CONCLUSION AND FUTURE SCOPE

Firmware Update Management Object Architecture

Joint Steering Committee for Development of RDA. Gordon Dunsire, Chair, JSC RDA/ONIX Framework Working Group

OECD COMMUNICATIONS OUTLOOK 2001 Broadcasting Section

Building Your DLP Strategy & Process. Whitepaper

ebxml Registry profile for Web Services

Broadcasting Order CRTC

Six-Channel TDM Multiplexers for 3G, HD, SDI, and ASI. Installation and Operations. Manual

Draft Minutes Automation/Drive Interface (ADI) Working Group T10/02-084r0 March 12, 2002 Dallas, TX 9:05 AM 5:10 PM

Interface Practices Subcommittee SCTE STANDARD SCTE Measurement Procedure for Noise Power Ratio

Transcription:

1 2 3 Web Services Reliable Messaging (WS-ReliableMessaging) Committee Draft 05, February 1, 2007 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Document identifier: wsrm-1.1-spec-cd-05 Location: http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.1-spec-cd-05.pdf Editors: Doug Davis, IBM <dug@us.ibm.com> Anish Karmarkar, Oracle <Anish.Karmarkar@oracle.com> Gilbert Pilz, BEA <gpilz@bea.com> Steve Winkler, SAP <steve.winkler@sap.com> Ümit Yalçinalp, SAP <umit.yalcinalp@sap.com> Contributors: See the Acknowledgments (Appendix E). Abstract: This specification (WS-ReliableMessaging) describes a protocol that allows messages to be transferred reliably between nodes implementing this protocol in the presence of software component, system, or network failures. The protocol is described in this specification in a transport-independent manner allowing it to be implemented using different network technologies. To support interoperable Web services, a SOAP binding is defined within this specification. The protocol defined in this specification depends upon other Web services specifications for the identification of service endpoint addresses and policies. How these are identified and retrieved are detailed within those specifications and are out of scope for this document. By using the XML [XML], SOAP [SOAP 1.1], [SOAP 1.2] and WSDL [WSDL 1.1] extensibility model, SOAP-based and WSDL-based specifications are designed to be composed with each other to define a rich Web services environment. As such, WS-ReliableMessaging by itself does not define all the features required for a complete messaging solution. WS-ReliableMessaging is a building block that is used in conjunction with other specifications and application-specific protocols to accommodate a wide variety of requirements and scenarios related to the operation of distributed Web services. Status: This document was last revised or approved by the WS-RX on the above date. The level of approval is also listed above. Check the current location noted above for possible later revisions of this document. This document is updated periodically on no particular schedule. Technical Committee members should send comments on this specification to the Technical Committee's email list. Others should send comments to the Technical Committee by using the "Send A Comment" button on the Technical Committee's web page at http://www.oasis-open.org/committees/ws-rx. For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page (http://www.oasis-open.org/committees/ws-rx/ipr.php). The non-normative errata page for this specification is located at http://www.oasis-open.org/committees/ws-rx.

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

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

93 94 95 96 97 98 99 100 101 102 1 Introduction It is often a requirement for two Web services that wish to communicate to do so reliably in the presence of software component, system, or network failures. The primary goal of this specification is to create a modular mechanism for reliable transfer of messages. It defines a messaging protocol to identify, track, and manage the reliable transfer of messages between a source and a destination. It also defines a SOAP binding that is required for interoperability. Additional bindings can be defined. This mechanism is extensible allowing additional functionality, such as security, to be tightly integrated. This specification integrates with and complements the WS-Security [WS-Security], WS-Policy [WS- Policy], and other Web services specifications. Combined, these allow for a broad range of reliable, secure messaging options. 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 1.1 Notational Conventions The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [KEYWORDS]. This specification uses the following syntax to define normative outlines for messages: The syntax appears as an XML instance, but values in italics indicate data types instead of values. Characters are appended to elements and attributes to indicate cardinality: o "?" (0 or 1) o o "*" (0 or more) "+" (1 or more) The character " " is used to indicate a choice between alternatives. The characters "[" and "]" are used to indicate that contained items are to be treated as a group with respect to cardinality or choice. An ellipsis (i.e. "...") indicates a point of extensibility that allows other child or attribute content specified in this document. Additional children elements and/or attributes MAY be added at the indicated extension points but they MUST NOT contradict the semantics of the parent and/or owner, respectively. If an extension is not recognized it SHOULD be ignored. XML namespace prefixes (See Section 1.2) are used to indicate the namespace of the element being defined. Elements and Attributes defined by this specification are referred to in the text of this document using XPath 1.0 [XPATH 1.0] expressions. Extensibility points are referred to using an extended version of this syntax: An element extensibility point is referred to using {any} in place of the element name. This indicates that any element name can be used, from any namespace other than the wsrm: namespace. An attribute extensibility point is referred to using @{any} in place of the attribute name. This indicates that any attribute name can be used, from any namespace other than the wsrm: namespace. Copyright OASIS Open 2007. All Rights Reserved. Page 4 of 67

131 132 133 134 135 136 137 138 139 140 141 1.2 Namespace The XML namespace [XML-ns] URI that MUST be used by implementations of this specification is: http://docs.oasis-open.org/ws-rx/wsrm/200702 Dereferencing the above URI will produce the Resource Directory Description Language [RDDL 2.0] document that describes this namespace. Table 1 lists the XML namespaces that are used in this specification. The choice of any namespace prefix is arbitrary and not semantically significant. Table 1 Prefix S (Either SOAP 1.1 or 1.2) S11 S12 wsrm wsa wsaw wsse xs Namespace http://schemas.xmlsoap.org/soap/envelope/ http://www.w3.org/2003/05/soap-envelope http://docs.oasis-open.org/ws-rx/wsrm/200702 http://www.w3.org/2005/08/addressing http://www.w3.org/2006/05/addressing/wsdl http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd http://www.w3.org/2001/xmlschema The normative schema for WS-ReliableMessaging can be found linked from the namespace document that is located at the namespace URI specified above. All sections explicitly noted as examples are informational and are not to be considered normative. 142 143 144 145 146 147 148 1.3 Conformance An implementation is not conformant with this specification if it fails to satisfy one or more of the MUST or REQUIRED level requirements defined herein. A SOAP Node MUST NOT use the XML namespace identifier for this specification (listed in Section 1.2) within SOAP Envelopes unless it is conformant with this specification. Normative text within this specification takes precedence over normative outlines, which in turn take precedence over the XML Schema [XML Schema Part 1, Part 2] descriptions. Copyright OASIS Open 2007. All Rights Reserved. Page 5 of 67

149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 2 Reliable Messaging Model Many errors can interrupt a conversation. Messages can be lost, duplicated or reordered. Further the host systems can experience failures and lose volatile state. The WS-ReliableMessaging specification defines an interoperable protocol that enables a Reliable Messaging (RM) Source to accurately determine the disposition of each message it Transmits as perceived by the RM Destination, so as to allow it to resolve any in-doubt status regarding receipt of the message Transmitted. The protocol also enables an RM Destination to efficiently determine which of those messages it Receives have been previously Received, enabling it to filter out duplicate message transmissions caused by the retransmission, by the RM Source, of an unacknowledged message. It also enables an RM Destination to Deliver the messages it Receives to the Application Destination in the order in which they were sent by an Application Source, in the event that they are Received out of order. Note that this specification places no restriction on the scope of the RM Source or RM Destination entities. For example, either can span multiple WSDL Ports or Endpoints. The protocol enables the implementation of a broad range of reliability features which include ordered Delivery, duplicate elimination, and guaranteed receipt. The protocol can also be implemented with a range of robustness characteristics ranging from in-memory persistence that is scoped to a single process lifetime, to replicated durable storage that is recoverable in all but the most extreme circumstances. It is expected that the Endpoints will implement as many or as few of these reliability characteristics as necessary for the correct operation of the application using the protocol. Regardless of which of the reliability features is enabled, the wire protocol does not change. Figure 1 below illustrates the entities and events in a simple reliable exchange of messages. First, the Application Source Sends a message for reliable transfer. The Reliable Messaging Source accepts the message and Transmits it one or more times. After accepting the message, the RM Destination Acknowledges it. Finally, the RM Destination Delivers the message to the Application Destination. The exact roles the entities play and the complete meaning of the events will be defined throughout this specification. Initial Sender Ultimate Receiver Application Source Application Destination Send Deliver RM Source Transmit Acknowledge RM Destination Receive 175 Scope of RM Protocol Figure 1: Reliable Messaging Model 176 177 178 179 2.1 Glossary The following definitions are used throughout this specification: Accept: The act of qualifying a message by the RM Destination such that it becomes eligible for Delivery and acknowledgement. Copyright OASIS Open 2007. All Rights Reserved. Page 6 of 67

180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 Acknowledgement: The communication from the RM Destination to the RM Source indicating the successful receipt of a message. Acknowledgement Message: A message containing a Acknowledgement header block. Acknowledgement Messages may or may not contain a SOAP body. Acknowledgement Request: A message containing an AckRequested header. Acknowledgement Requests may or may not contain a SOAP body. Application Destination: The Endpoint to which a message is Delivered. Application Source: The Endpoint that Sends a message. Back-channel: When the underlying transport provides a mechanism to return a transport-protocol specific response, capable of carrying a SOAP message, without initiating a new connection, this specification refers to this mechanism as a back-channel. Deliver: The act of transferring responsibility for a message from the RM Destination to the Application Destination. Endpoint: As defined in the WS-Addressing specification [WS-Addressing]; a Web service Endpoint is a (referenceable) entity, processor, or resource to which Web service messages can be addressed. Endpoint references (EPRs) convey the information needed to address a Web service Endpoint. Receive: The act of reading a message from a network connection and accepting it. RM Destination: The Endpoint that Receives messages Transmitted reliably from an RM Source. RM Protocol Header Block: One of, Acknowledgement, or AckRequested. RM Source: The Endpoint that Transmits messages reliably to an RM Destination. Send: The act of transferring a message from the Application Source to the RM Source for reliable transfer. Lifecycle Message: A message that contains one of: Create, CreateResponse, Close, CloseResponse, Terminate, TerminateResponse as the child element of the SOAP body element. Traffic Message: A message containing a header block. Transmit: The act of writing a message to a network connection. 207 208 209 210 211 212 213 214 215 216 2.2 Protocol Preconditions The correct operation of the protocol requires that a number of preconditions MUST be established prior to the processing of the initial sequenced message: For any single message exchange the RM Source MUST have an endpoint reference that uniquely identifies the RM Destination Endpoint. The RM Source MUST have successfully created a with the RM Destination. The RM Source MUST be capable of formulating messages that adhere to the RM Destination's policies. If a secure exchange of messages is REQUIRED, then the RM Source and RM Destination MUST have a security context. Copyright OASIS Open 2007. All Rights Reserved. Page 7 of 67

217 218 219 220 221 222 223 224 225 226 227 228 229 230 2.3 Protocol Invariants During the lifetime of a, the following invariants are REQUIRED for correctness: The RM Source MUST assign each message within a a message number (defined below) beginning at 1 and increasing by exactly 1 for each subsequent message. These numbers MUST be assigned in the same order in which messages are sent by the Application Source. Within every Acknowledgement Message it issues, the RM Destination MUST include one or more AcknowledgementRange child elements that contain, in their collective ranges, the message number of every message accepted by the RM Destination. The RM Destination MUST exclude, in the AcknowledgementRange elements, the message numbers of any messages it has not accepted. If no messages have been received the RM Destination MUST return None instead of an AcknowledgementRange(s). The RM Destination MAY transmit a Nack for a specific message or messages instead of an AcknowledgementRange(s). While the is not closed or terminated, the RM Source SHOULD retransmit unacknowledged messages. 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 2.4 Delivery Assurances This section defines a number of Delivery Assurance assertions, which can be supported by RM Sources and RM Destinations. These assertions can be specified as policy assertions using the WS-Policy framework [[WS-Policy]]. For details on this see the WSRM Policy specification [WS-RM Policy]. AtLeastOnce Each message is to be delivered at least once, or else an error MUST be raised by the RM Source and/or RM Destination. The requirement on an RM Source is that it SHOULD retry transmission of every message sent by the Application Source until it receives an acknowledgement from the RM Destination. The requirement on the RM Destination is that it SHOULD retry the transfer to the Application Destination of any message that it accepts from the RM Source, until that message has been successfully delivered. There is no requirement for the RM Destination to apply duplicate message filtering. AtMostOnce Each message is to be delivered at most once. The RM Source MAY retry transmission of unacknowledged messages, but is NOT REQUIRED to do so. The requirement on the RM Destination is that it MUST filter out duplicate messages, i.e. that it MUST NOT deliver a duplicate of a message that has already been delivered. ExactlyOnce Each message is to be delivered exactly once; if a message cannot be delivered then an error MUST be raised by the RM Source and/or RM Destination. The requirement on an RM Source is that it SHOULD retry transmission of every message sent by the Application Source until it receives an acknowledgement from the RM Destination. The requirement on the RM Destination is that it SHOULD retry the transfer to the Application Destination of any message that it accepts from the RM Source until that message has been successfully delivered, and that it MUST NOT deliver a duplicate of a message that has already been delivered. InOrder Messages from each individual sequence are to be delivered in the same order they have been sent by the Application Source. The requirement on an RM Source is that it MUST ensure that the ordinal position of each message in the sequence (as indicated by a message sequence number) is consistent with the Copyright OASIS Open 2007. All Rights Reserved. Page 8 of 67

259 260 261 262 263 264 265 order in which the messages have been sent from the Application Source. The requirement on the RM Destination is that it MUST deliver received messages for each sequence in the order indicated by the message numbering. This DeliveryAssurance can be used in combination with any of the AtLeastOnce, AtMostOnce or ExactlyOnce assertions, and the requirements of those assertions MUST also be met. In particular if the AtLeastOnce or ExactlyOnce assertion applies and the RM Destination detects a gap in the sequence then the RM Destination MUST NOT deliver any subsequent messages from that sequence until the missing messages are received or until the sequence is closed. 266 267 2.5 Example Message Exchange Figure 2 illustrates a possible message exchange between two reliable messaging Endpoints A and B. Endpoint A Reliable Messaging Protocol Endpoint B Establish Protocol Preconditions Create() CreateResponse( Identifier=http://fabrikam123.com/abc ) ( Identifier = http://fabrikam123.com/abc, MessageNumber = 1 ) ( Identifier = http://fabrikam123.com/abc, MessageNumber = 2 ) X ( Identifier = http://fabrikam123.com/abc, MessageNumber = 3, AckRequested ) Acknowledgement( Identifier = http://fabrikam123.com/abc, AcknowledgementRange = 1,3 ) ( Identifier = http://fabrikam123.com/abc,messagenumber = 2, AckRequested) Acknowledgement( Identifier = http://fabrikam123.com/abc, AcknowledgementRange = 1...3 ) Terminate( Identifier = http://fabrikam123.com/abc ) TerminateResponse( Identifier=http://fabrikam123.com/abc,LastMsgNumber=3 ) Figure 2: The WS-ReliableMessaging Protocol 268 269 270 271 272 273 274 1. The protocol preconditions are established. These include policy exchange, endpoint resolution, and establishing trust. 2. The RM Source requests creation of a new. 3. The RM Destination creates a new and returns its unique identifier. 4. The RM Source begins Transmitting messages in the beginning with MessageNumber 1. In the figure above, the RM Source sends 3 messages in the. 5. The 2 nd message in the is lost in transit. Copyright OASIS Open 2007. All Rights Reserved. Page 9 of 67

275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 6. The 3 rd message is the last in this and the RM Source includes an AckRequested header to ensure that it gets a timely Acknowledgement for the. 7. The RM Destination acknowledges receipt of message numbers 1 and 3 as a result of receiving the RM Source's AckRequested header. 8. The RM Source retransmits the unacknowledged message with MessageNumber 2. This is a new message from the perspective of the underlying transport, but it has the same Identifier and MessageNumber so the RM Destination can recognize it as a duplicate of the earlier message, in case the original and retransmitted messages are both Received. The RM Source includes an AckRequested header in the retransmitted message so the RM Destination will expedite an acknowledgement. 9. The RM Destination Receives the second transmission of the message with MessageNumber 2 and acknowledges receipt of message numbers 1, 2, and 3. 10.The RM Source Receives this Acknowledgement and sends a Terminate message to the RM Destination indicating that the is completed. The Terminate message indicates that message number 3 was the last message in the. The RM Destination then reclaims any resources associated with the. 11.The RM Destination Receives the Terminate message indicating that the RM Source will not be sending any more messages. The RM Destination sends a TerminateResponse message to the RM Source and reclaims any resources associated with the. The RM Source will expect to Receive Acknowledgements from the RM Destination during the course of a message exchange at occasions described in Section 3 below. Should an Acknowledgement not be Received in a timely fashion, the RM Source MUST re-transmit the message since either the message or the associated Acknowledgement might have been lost. Since the nature and dynamic characteristics of the underlying transport and potential intermediaries are unknown in the general case, the timing of retransmissions cannot be specified. Additionally, over-aggressive re-transmissions have been demonstrated to cause transport or intermediary flooding which are counterproductive to the intention of providing a reliable exchange of messages. Consequently, implementers are encouraged to utilize adaptive mechanisms that dynamically adjust re-transmission time and the back-off intervals that are appropriate to the nature of the transports and intermediaries envisioned. For the case of TCP/IP transports, a mechanism similar to that described as RTTM in RFC 1323 [RTTM] SHOULD be considered. Now that the basic model has been outlined, the details of the elements used in this protocol are now provided in Section 3. Copyright OASIS Open 2007. All Rights Reserved. Page 10 of 67

308 309 310 3 RM Protocol Elements The following sub-sections define the various RM protocol elements, and prescribe their usage by a conformant implementations. 311 312 313 314 315 3.1 Considerations on the Use of Extensibility Points The following protocol elements define extensibility points at various places. Implementations MAY add child elements and/or attributes at the indicated extension points but MUST NOT contradict the semantics of the parent and/or owner, respectively. If a receiver does not recognize an extension, the receiver SHOULD ignore the extension. 316 317 318 319 320 321 322 323 324 325 3.2 Considerations on the Use of "Piggy-Backing" Some RM Protocol Header Blocks may be added to messages that are targeted to the same Endpoint to which those headers are to be sent (a concept often referred to as "piggy-backing"), thus saving the overhead of an additional message exchange. Reference parameters MUST be considered when determining whether two EPRs are targeted to the same Endpoint. The determination of if and when a Header Block will be piggy-backed onto another message is made by the entity (RM Source or RM Destination) that is sending the header. In order to ensure optimal and successful processing of RM s, endpoints that receive RM-related messages SHOULD be prepared to process RM Protocol Header Blocks that are included in any message it receives. See the sections that define each RM Protocol Header Block to know which ones may be considered for piggy-backing. 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 3.3 Composition with WS-Addressing When the RM protocol, defined in this specification, is composed with the WS-Addressing specification, the following rules prescribe the constraints on the value of the wsa:action header: 1. When an Endpoint generates a message that carries an RM protocol element, that is defined in the following sections, in the body of a SOAP envelope that Endpoint MUST include in that envelope a wsa:action SOAP header block whose value is an IRI that is a concatenation of the WS-RM namespace URI, followed by a "/", followed by the value of the local name of the child element of the SOAP body. For example, for a creation request message as described in section 3.4 below, the value of the wsa:action IRI would be: http://docs.oasis-open.org/ws-rx/wsrm/200702/create 2. When an Endpoint generates an Acknowledgement Message that has no element content in the SOAP body, then the value of the wsa:action IRI MUST be: http://docs.oasis-open.org/ws-rx/wsrm/200702/acknowledgement 3. When an Endpoint generates an Acknowledgement Request that has no element content in the SOAP body, then the value of the wsa:action IRI MUST be: http://docs.oasis-open.org/ws-rx/wsrm/200702/ackrequested 4. When an Endpoint generates an RM fault as defined in section 4 below, the value of the wsa:action IRI MUST be as defined in section 4 below. Copyright OASIS Open 2007. All Rights Reserved. Page 11 of 67

344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 3.4 Creation The RM Source MUST request creation of an outbound by sending a Create element in the body of a message to the RM Destination which in turn responds either with a message containing CreateResponse or a CreateRefused fault. The RM Source MAY include an offer to create an inbound within the Create message. This offer is either accepted or rejected by the RM Destination in the CreateResponse message. The SOAP version used for the Create message SHOULD be used for all subsequent messages in or for that, sent by either the RM Source or the RM Destination. The following exemplar defines the Create syntax: <wsrm:create...> <wsrm:acksto> wsa:endpointreferencetype </wsrm:acksto> <wsrm:expires...> xs:duration </wsrm:expires>? <wsrm:offer...> <wsrm:identifier...> xs:anyuri </wsrm:identifier> <wsrm:endpoint> wsa:endpointreferencetype </wsrm:endpoint> <wsrm:expires...> xs:duration </wsrm:expires>? <wsrm:incompletebehavior> wsrm:incompletebehaviortype </wsrm:incompletebehavior>?... </wsrm:offer>?... </wsrm:create> The following describes the content model of the Create element. /wsrm:create This element requests creation of a new between the RM Source that sends it, and the RM Destination to which it is sent. The RM Source MUST NOT send this element as a header block. The RM Destination MUST respond either with a CreateResponse response message or a CreateRefused fault. /wsrm:create/wsrm:acksto The RM Source MUST include this element in any Create message it sends. This element is of type wsa:endpointreferencetype (as specified by WS-Addressing). It specifies the endpoint reference to which messages containing Acknowledgement header blocks and faults related to the created are to be sent, unless otherwise noted in this specification (for example, see Section 3.5). Implementations MUST NOT use an endpoint reference in the AcksTo element that would prevent the sending of Acknowledgements back to the RM Source. For example, using the WS-Addressing "http://www.w3.org/2005/08/addressing/none" IRI would make it impossible for the RM Destination to ever send Acknowledgements. /wsrm:create/wsrm:expires This element, if present, of type xs:duration specifies the RM Source's requested duration for the. The RM Destination MAY either accept the requested duration or assign a lesser value of its choosing. A value of "PT0S" indicates that the will never expire. Absence of the element indicates an implied value of "PT0S". /wsrm:create/wsrm:expires/@{any} Copyright OASIS Open 2007. All Rights Reserved. Page 12 of 67

389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:create/wsrm:offer This element, if present, enables an RM Source to offer a corresponding for the reliable exchange of messages Transmitted from RM Destination to RM Source. /wsrm:create/wsrm:offer/wsrm:identifier The RM Source MUST set the value of this element to an absolute URI (conformant with RFC3986 [URI]) that uniquely identifies the offered. /wsrm:create/wsrm:offer/wsrm:identifier/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:create/wsrm:offer/wsrm:endpoint An RM Source MUST include this element, of type wsa:endpointreferencetype (as specified by WS-Addressing). This element specifies the endpoint reference to which Lifecycle Messages, Acknowledgement Requests, and fault messages related to the offered are to be sent. Implementations MUST NOT use an endpoint reference in the Endpoint element that would prevent the sending of Lifecycle Message, etc. For example, using the WS-Addressing "http://www.w3.org/2005/08/addressing/none" IRI would make it impossible for the RM Destination to ever send Lifecycle Messages (e.g. Terminate) to the RM Source for the Offered. The Offer of an Endpoint containing the "http://www.w3.org/2005/08/addressing/anonymous" IRI as its address is problematic due to the inability of a source to connect to this address and retry unacknowledged messages (as described in Section 2.3). Note that this specification does not define any mechanisms for providing this assurance. In the absence of an extension that addresses this issue, an RM Destination MUST NOT accept (via the /wsrm:createresponse/wsrm:accept element described below) an Offer that contains the "http://www.w3.org/2005/08/addressing/anonymous" IRI as its address. /wsrm:create/wsrm:offer/wsrm:expires This element, if present, of type xs:duration specifies the duration for the offered. A value of "PT0S" indicates that the offered will never expire. Absence of the element indicates an implied value of "PT0S". /wsrm:create/wsrm:offer/wsrm:expires/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:create/wsrm:offer/wsrm:incompletebehavior This element, if present, specifies the behavior that the destination will exhibit upon the closure or termination of an incomplete. For the purposes of defining the values used, the term "discard" refers to behavior equivalent to the Application Destination never processing a particular message. A value of DiscardEntire indicates that the entire MUST be discarded if the is closed, or terminated, when there are one or more gaps in the final Acknowledgement. Copyright OASIS Open 2007. All Rights Reserved. Page 13 of 67

430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 A value of DiscardFollowingFirstGap indicates that messages in the beyond the first gap MUST be discarded when there are one or more gaps in the final Acknowledgement. The default value of NoDiscard indicates that no acknowledged messages in the will be discarded. /wsrm:create/wsrm:offer/{any} This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, to be passed. /wsrm:create/wsrm:offer/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:create/{any} This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, to be passed. /wsrm:create/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. A CreateResponse is sent in the body of a response message by an RM Destination in response to receipt of a Create request message. It carries the Identifier of the created and indicates that the RM Source can begin sending messages in the context of the identified. The following exemplar defines the CreateResponse syntax: <wsrm:createresponse...> <wsrm:identifier...> xs:anyuri </wsrm:identifier> <wsrm:expires...> xs:duration </wsrm:expires>? <wsrm:incompletebehavior> wsrm:incompletebehaviortype </wsrm:incompletebehavior>? <wsrm:accept...> <wsrm:acksto> wsa:endpointreferencetype </wsrm:acksto>... </wsrm:accept>?... </wsrm:createresponse> The following describes the content model of the CreateResponse element. /wsrm:createresponse This element is sent in the body of the response message in response to a Create request message. It indicates that the RM Destination has created a new at the request of the RM Source. The RM Destination MUST NOT send this element as a header block. /wsrm:createresponse/wsrm:identifier The RM Destination MUST include this element within any CreateResponse message it sends. The RM Destination MUST set the value of this element to the absolute URI (conformant with RFC3986) that uniquely identifies the that has been created by the RM Destination. /wsrm:createresponse/wsrm:identifier/@{any} Copyright OASIS Open 2007. All Rights Reserved. Page 14 of 67

473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:createresponse/wsrm:expires This element, if present, of type xs:duration accepts or refines the RM Source's requested duration for the. It specifies the amount of time after which any resources associated with the SHOULD be reclaimed thus causing the to be silently terminated. At the RM Destination this duration is measured from a point proximate to creation and at the RM Source this duration is measured from a point approximate to the successful processing of the CreateResponse. A value of "PT0S" indicates that the will never expire. Absence of the element indicates an implied value of "PT0S". The RM Destination MUST set the value of this element to be equal to or less than the value requested by the RM Source in the corresponding Create message. /wsrm:createresponse/wsrm:expires/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:createresponse/wsrm:incompletebehavior This element, if present, specifies the behavior that the destination will exhibit upon the closure or termination of an incomplete. For the purposes of defining the values used, the term "discard" refers to behavior equivalent to the Application Destination never processing a particular message. A value of DiscardEntire indicates that the entire MUST be discarded if the is closed, or terminated, when there are one or more gaps in the final Acknowledgement. A value of DiscardFollowingFirstGap indicates that messages in the beyond the first gap MUST be discarded when there are one or more gaps in the final Acknowledgement. The default value of NoDiscard indicates that no acknowledged messages in the will be discarded. /wsrm:createresponse/wsrm:accept This element, if present, enables an RM Destination to accept the offer of a corresponding for the reliable exchange of messages Transmitted from RM Destination to RM Source. Note: If a CreateResponse is returned without a child Accept in response to a Create that did contain a child Offer, then the RM Source MAY immediately reclaim any resources associated with the unused offered. /wsrm:createresponse/wsrm:accept/wsrm:acksto The RM Destination MUST include this element, of type wsa:endpointreferencetype (as specified by WS-Addressing). It specifies the endpoint reference to which messages containing Acknowledgement header blocks and faults related to the created are to be sent, unless otherwise noted in this specification (for example, see Section 3.5). Implementations MUST NOT use an endpoint reference in the AcksTo element that would prevent the sending of Acknowledgements back to the RM Source. For example, using the WS-Addressing "http://www.w3.org/2005/08/addressing/none" IRI would make it impossible for the RM Destination to ever send Acknowledgements. /wsrm:createresponse/wsrm:accept/{any} Copyright OASIS Open 2007. All Rights Reserved. Page 15 of 67

514 515 516 517 518 519 520 521 522 523 524 This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, to be passed. /wsrm:createresponse/wsrm:accept/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:createresponse/{any} This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, to be passed. /wsrm:createresponse/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 3.5 Closing A There are times during the use of an RM that the RM Source or RM Destination will wish to discontinue using a. Simply terminating the discards the state managed by the RM Destination, leaving the RM Source unaware of the final ranges of messages that were successfully transferred to the RM Destination. To ensure that the ends with a known final state either the RM Source or RM Destination MAY choose to close the before terminating it. If the RM Source wishes to close the, then it sends a Close element, in the body of a message, to the RM Destination. This message indicates that the RM Destination MUST NOT accept any new messages for the specified, other than those already accepted at the time the Close element is interpreted by the RM Destination. Upon receipt of this message, or subsequent to the RM Destination closing the of its own volition, the RM Destination MUST include a final Acknowledgement (within which the RM Destination MUST include the Final element) header block on any messages associated with the destined to the RM Source, including the CloseResponse message or on any fault Transmitted to the RM Source. To allow the RM Destination to determine if it has received all of the messages in a, the RM Source SHOULD include the LastMsgNumber element in any Close messages it sends. The RM Destination can use this information, for example, to implement the behavior indicated by /wsrm:createresponse/wsrm:incompletebehavior. The value of the LastMsgNumber element MUST be the same in all the Close messages for the closing. If the RM Destination decides to close a of its own volition, it MAY inform the RM Source of this event by sending a Close element, in the body of a message, to the AcksTo EPR of that. The RM Destination MUST include a final Acknowledgement (within which the RM Destination MUST include the Final element) header block in this message and any subsequent messages associated with the destined to the RM Source. While the RM Destination MUST NOT accept any new messages for the specified it MUST still process Lifecyle Messages and Acknowledgement Requests. For example, it MUST respond to AckRequested, Terminate as well as Close messages. Note, subsequent Close messages have no effect on the state of the. Copyright OASIS Open 2007. All Rights Reserved. Page 16 of 67

555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 In the case where the RM Destination wishes to discontinue use of a it is RECOMMENDED that it close the. Please see Final and the Closed fault. Whenever possible the Closed fault SHOULD be used in place of the Terminated fault to allow the RM Source to still Receive Acknowledgements. The following exemplar defines the Close syntax: <wsrm:close...> <wsrm:identifier...> xs:anyuri </wsrm:identifier> <wsrm:lastmsgnumber> wsrm:messagenumbertype </wsrm:lastmsgnumber>?... </wsrm:close> The following describes the content model of the Close element. /wsrm:close This element MAY be sent by an RM Source to indicate that the RM Destination MUST NOT accept any new messages for this This element MAY also be sent by an RM Destination to indicate that it will not accept any new messages for this. /wsrm:close/wsrm:identifier The RM Source or RM Destination MUST include this element in any Close messages it sends. The RM Source or RM Destination MUST set the value of this element to the absolute URI (conformant with RFC3986) of the closing. /wsrm:close/wsrm:lastmessagenumber The RM Source SHOULD include this element in any Close message it sends. The LastMsgNumber element specifies the highest assigned message number of all the Traffic Messages for the closing. /wsrm:close/wsrm:identifier/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:close/{any} This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, to be passed. /wsrm:close@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. A CloseResponse is sent in the body of a message in response to receipt of a Close request message. It indicates that the responder has closed the. The following exemplar defines the CloseResponse syntax: <wsrm:closeresponse...> <wsrm:identifier...> xs:anyuri </wsrm:identifier>... </wsrm:closeresponse> The following describes the content model of the CloseResponse element. /wsrm:closeresponse Copyright OASIS Open 2007. All Rights Reserved. Page 17 of 67

596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 This element is sent in the body of a message in response to receipt of a Close request message. It indicates that the responder has closed the. /wsrm:closeresponse/wsrm:identifier The responder (RM Source or RM Destination) MUST include this element in any CloseResponse message it sends. The responder MUST set the value of this element to the absolute URI (conformant with RFC3986) of the closing. /wsrm:closeresponse/wsrm:identifier/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:closeresponse/{any} This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, to be passed. /wsrm:closeresponse@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 3.6 Termination When the RM Source has completed its use of the it sends a Terminate element, in the body of a message, to the RM Destination to indicate that the is complete and that it will not be sending any further messages related to the. The RM Destination can safely reclaim any resources associated with the upon receipt of the Terminate message. Under normal usage the RM Source will complete its use of the when all of the messages in the have been acknowledged. However, the RM Source is free to Terminate or Close a at any time regardless of the acknowledgement state of the messages. To allow the RM Destination to determine if it has received all of the messages in a, the RM Source SHOULD include the LastMsgNumber element in any Terminate messages it sends. The RM Destination can use this information, for example, to implement the behavior indicated by /wsrm:createresponse/wsrm:incompletebehavior. The value of the LastMsgNumber element in the Terminate message MUST be equal to the value of the LastMsgNumber element in any Close message(s) sent by the RM Source for the same. If the RM Destination decides to terminate a of its own volition, it MAY inform the RM Source of this event by sending a Terminate element, in the body of a message, to the AcksTo EPR for that. The RM Destination MUST include a final Acknowledgement (within which the RM Destination MUST include the Final element) header block in this message. The following exemplar defines the Terminate syntax: <wsrm:terminate...> <wsrm:identifier...> xs:anyuri </wsrm:identifier> <wsrm:lastmsgnumber> wsrm:messagenumbertype </wsrm:lastmsgnumber>?... </wsrm:terminate> The following describes the content model of the Terminate element. /wsrm:terminate Copyright OASIS Open 2007. All Rights Reserved. Page 18 of 67

638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 This element MAY be sent by an RM Source to indicate it has completed its use of the. It indicates that the RM Destination can safely reclaim any resources related to the identified. The RM Source MUST NOT send this element as a header block. The RM Source MAY retransmit this element. Once this element is sent, other than this element, the RM Source MUST NOT send any additional message to the RM Destination referencing this. This element MAY also be sent by the RM Destination to indicate that it has unilaterally terminated the. Upon sending this message the RM Destination MUST NOT accept any additional messages (with the exception of the corresponding TerminateResponse) for this. Upon receipt of a Terminate the RM Source MUST NOT send any additional messages (with the exception of the corresponding TerminateResponse) for this. /wsrm:terminate/wsrm:identifier The RM Source or RM Destination MUST include this element in any Terminate message it sends. The RM Source or RM Destination MUST set the value of this element to the absolute URI (conformant with RFC3986) of the terminating. /wsrm:terminate/wsrm:lastmsgnumber The RM Source SHOULD include this element in any Terminate message it sends. The LastMsgNumber element specifies the highest assigned message number of all the Traffic Messages for the closing. /wsrm:terminate/wsrm:identifier/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:terminate/{any} This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, to be passed. /wsrm:terminate/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. A TerminateResponse is sent in the body of a message in response to receipt of a Terminate request message. It indicates that responder has terminated the. The following exemplar defines the TerminateResponse syntax: <wsrm:terminateresponse...> <wsrm:identifier...> xs:anyuri </wsrm:identifier>... </wsrm:terminateresponse> The following describes the content model of the Terminate element. /wsrm:terminateresponse This element is sent in the body of a message in response to receipt of a Terminate request message. It indicates that the responder has terminated the. The responder MUST NOT send this element as a header block. /wsrm:terminateresponse/wsrm:identifier Copyright OASIS Open 2007. All Rights Reserved. Page 19 of 67

678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 The responder (RM Source or RM Destination) MUST include this element in any TerminateResponse message it sends. The responder MUST set the value of this element to the absolute URI (conformant with RFC3986) of the terminating. /wsrm:terminateresponse/wsrm:identifier/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. /wsrm:terminateresponse/{any} This is an extensibility mechanism to allow different (extensible) types of information, based on a schema, to be passed. /wsrm:terminateresponse/@{any} This is an extensibility mechanism to allow additional attributes, based on schemas, to be added to the element. On receipt of a Terminate message the receiver (RM Source or RM Destination) MUST respond with a corresponding TerminateResponse message or generate a fault UnknownFault if the is not known. 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 3.7 s The RM protocol uses a header block to track and manage the reliable transfer of messages. The RM Source MUST include a header block in all messages for which reliable transfer is REQUIRED. The RM Source MUST identify s with unique Identifier elements and the RM Source MUST assign each message within a a MessageNumber element that increments by 1 from an initial value of 1. These values are contained within a header block accompanying each message being transferred in the context of a. The RM Source MUST NOT include more than one header block in any message. A following exemplar defines its syntax: <wsrm:...> <wsrm:identifier...> xs:anyuri </wsrm:identifier> <wsrm:messagenumber> wsrm:messagenumbertype </wsrm:messagenumber>... </wsrm:> The following describes the content model of the header block. /wsrm: This protocol element associates the message in which it is contained with a previously established RM. It contains the 's unique identifier and the containing message's ordinal position within that. The RM Destination MUST understand the header block. The RM Source MUST assign a mustunderstand attribute with a value 1/true (from the namespace corresponding to the version of SOAP to which the SOAP header block is bound) to the header block element. /wsrm:/wsrm:identifier An RM Source that includes a header block in a SOAP envelope MUST include this element in that header block. The RM Source MUST set the value of this element to the absolute URI (conformant with RFC3986) that uniquely identifies the. Copyright OASIS Open 2007. All Rights Reserved. Page 20 of 67