cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Sosnoski (Confluence)" <conflue...@apache.org>
Subject [CONF] Apache CXF Documentation > WS-ReliableMessaging
Date Sun, 13 Oct 2013 06:38:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/en/2176/1/1/_/styles/combined.css?spaceKey=CXF20DOC&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/CXF20DOC/WS-ReliableMessaging">WS-ReliableMessaging</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~dsosnoski">Dennis
Sosnoski</a>
    </h4>
        <div id="versionComment">
        <b>Comment:</b>
        Describe different versions supported.<br />
    </div>
        <br/>
                         <h4>Changes (5)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-unchanged" >h1. WS-Reliable Messaging <br>
<br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">CXF
supports the February 2005 version of the [Web Services Reliable Messaging|http://schemas.xmlsoap.org/ws/2005/02/rm/]
Protocol (WS-ReliableMessaging) specification. Like most other features in CXF, it is interceptor
based.  <br>The WS-Reliable Messaging implementation consists of 4 interceptors in total:
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">CXF
supports both the official [1.1/1.2 Web Services Reliable Messaging|http://docs.oasis-open.org/ws-rx/wsrm/200702]
(WS-ReliableMessaging) protocol using the [http://docs.oasis-open.org/ws-rx/wsrm/200702] namespace
and the outdated [February 2005 submission version|http://schemas.xmlsoap.org/ws/2005/02/rm/]
using the [http://schemas.xmlsoap.org/ws/2005/02/rm/] namespace. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">The
submission version specified an outdated version of WS-Addressing, using the [http://schemas.xmlsoap.org/ws/2004/08/addressing]
namespace, which has since been replaced by the official [http://www.w3.org/2005/08/addressing]
namespace. Most other web services implementations supporting the submission version of WS-ReliableMessaging
have deviated from the specification by moving to the official WS-Addressing release with
the [http://www.w3.org/2005/08/addressing] namespace. CXF supports the submission version
of RM with either WS-Addressing namespace. <br> <br>For compatibility with older
versions of CXF, the default is to use the February 2005 submission version of RM with the
submission version of WS-Addressing. On the client side, you can CXF for whichever version
of WS-ReliableMessaging you want to use (see [Reliable Messaging Configuration Guide|WSRMConfiguration]).
On the provider side, CXF adapts to whichever version of WS-ReliableMessaging is used by the
client and responds appropriately. <br> <br>Like most other features in CXF, it
is interceptor based. The WS-Reliable Messaging implementation consists of 6 interceptors
in total: <br> <br></td></tr>
            <tr><td class="diff-unchanged" >|| Interceptor || Task || <br></td></tr>
            <tr><td class="diff-unchanged" >| org.apache.cxf.ws.rm.RMOutInterceptor
| Responsible for sending CreateSequence requests and waiting for their CreateSequenceResponse
responses, and and aggregating the sequence properties (id and message number) for an application
message. | <br></td></tr>
            <tr><td class="diff-unchanged" >| org.apache.cxf.ws.rm.RMInInterceptor
| Intercepting and processing RM protocol messages (these will not the application level),
as well as SequenceAcknowledgments piggybacked on application messages. | <br>| org.apache.cxf.ws.rm.RMCaptureInInterceptor
| Caching messages for later retransmission. | <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > <br>The presence of the RM
interceptors on the respective interceptor chains alone will take care that RM protocol messages
are exchanged when necessary. For example, upon intercepting the first application message
on the outbound interceptor chain, the RMOutInterceptor will send a CreateSequence request
and only proceed with processing the original application message after it has the CreateSequenceResponse
response. Furthermore, the RM interceptors are responsible for adding the Sequence headers
to the application messages and, on the destination side, extracting them from the message.
<br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">
<br>This means that no changes to application code are required to make the message
exchange reliable!  <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">This
means that no changes to application code are required to make the message exchange reliable\!
<br> <br></td></tr>
            <tr><td class="diff-unchanged" >You can still control sequence demarcation
and other aspects of the reliable exchange through configuration however. For example, while
CXF by default attempts to maximize the lifetime of a sequence, thus reducing the overhead
incurred by the RM protocol messages, you can enforce the use of a separate sequence per application
message by configuring the RM source&#39;s sequence termination policy (setting the maximum
sequence length to 1). See the [Reliable Messaging Configuration Guide|WSRMConfiguration]
for more details on configuring this and other aspects of the reliable exchange. <br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="WS-ReliableMessaging-WSReliableMessaging"></a>WS-Reliable
Messaging</h1>

<p>CXF supports both the official <a href="http://docs.oasis-open.org/ws-rx/wsrm/200702"
class="external-link" rel="nofollow">1.1/1.2 Web Services Reliable Messaging</a>
(WS-ReliableMessaging) protocol using the <a href="http://docs.oasis-open.org/ws-rx/wsrm/200702"
class="external-link" rel="nofollow">http://docs.oasis-open.org/ws-rx/wsrm/200702</a>
namespace and the outdated <a href="http://schemas.xmlsoap.org/ws/2005/02/rm/" class="external-link"
rel="nofollow">February 2005 submission version</a> using the <a href="http://schemas.xmlsoap.org/ws/2005/02/rm/"
class="external-link" rel="nofollow">http://schemas.xmlsoap.org/ws/2005/02/rm/</a>
namespace.</p>

<p>The submission version specified an outdated version of WS-Addressing, using the
<a href="http://schemas.xmlsoap.org/ws/2004/08/addressing" class="external-link" rel="nofollow">http://schemas.xmlsoap.org/ws/2004/08/addressing</a>
namespace, which has since been replaced by the official <a href="http://www.w3.org/2005/08/addressing"
class="external-link" rel="nofollow">http://www.w3.org/2005/08/addressing</a> namespace.
Most other web services implementations supporting the submission version of WS-ReliableMessaging
have deviated from the specification by moving to the official WS-Addressing release with
the <a href="http://www.w3.org/2005/08/addressing" class="external-link" rel="nofollow">http://www.w3.org/2005/08/addressing</a>
namespace. CXF supports the submission version of RM with either WS-Addressing namespace.</p>

<p>For compatibility with older versions of CXF, the default is to use the February
2005 submission version of RM with the submission version of WS-Addressing. On the client
side, you can CXF for whichever version of WS-ReliableMessaging you want to use (see <a
href="/confluence/display/CXF20DOC/WSRMConfiguration" title="WSRMConfiguration">Reliable
Messaging Configuration Guide</a>). On the provider side, CXF adapts to whichever version
of WS-ReliableMessaging is used by the client and responds appropriately.</p>

<p>Like most other features in CXF, it is interceptor based. The WS-Reliable Messaging
implementation consists of 6 interceptors in total:</p>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Interceptor </th>
<th class='confluenceTh'> Task </th>
</tr>
<tr>
<td class='confluenceTd'> org.apache.cxf.ws.rm.RMOutInterceptor </td>
<td class='confluenceTd'> Responsible for sending CreateSequence requests and waiting
for their CreateSequenceResponse responses, and and aggregating the sequence properties (id
and message number) for an application message. </td>
</tr>
<tr>
<td class='confluenceTd'> org.apache.cxf.ws.rm.RMInInterceptor </td>
<td class='confluenceTd'> Intercepting and processing RM protocol messages (these will
not the application level), as well as SequenceAcknowledgments piggybacked on application
messages. </td>
</tr>
<tr>
<td class='confluenceTd'> org.apache.cxf.ws.rm.RMCaptureInInterceptor </td>
<td class='confluenceTd'> Caching messages for later retransmission. </td>
</tr>
<tr>
<td class='confluenceTd'> org.apache.cxf.ws.rm.RMDeliveryInterceptor </td>
<td class='confluenceTd'> Assuring InOrder delivery of messages to the application.
</td>
</tr>
<tr>
<td class='confluenceTd'> org.apache.cxf.ws.rm.soap.RMSoapInterceptor </td>
<td class='confluenceTd'> Encoding and decoding the RM headers </td>
</tr>
<tr>
<td class='confluenceTd'> org.apache.cxf.ws.rm.soap.RetransmissionInterceptor </td>
<td class='confluenceTd'> Responsible for creating copies of application messages for
future resends. </td>
</tr>
</tbody></table>
</div>


<h2><a name="WS-ReliableMessaging-InterceptorBasedQOS"></a>Interceptor Based
QOS</h2>

<p>The presence of the RM interceptors on the respective interceptor chains alone will
take care that RM protocol messages are exchanged when necessary. For example, upon intercepting
the first application message on the outbound interceptor chain, the RMOutInterceptor will
send a CreateSequence request and only proceed with processing the original application message
after it has the CreateSequenceResponse response. Furthermore, the RM interceptors are responsible
for adding the Sequence headers to the application messages and, on the destination side,
extracting them from the message.</p>

<p>This means that no changes to application code are required to make the message exchange
reliable&#33;</p>

<p>You can still control sequence demarcation and other aspects of the reliable exchange
through configuration however. For example, while CXF by default attempts to maximize the
lifetime of a sequence, thus reducing the overhead incurred by the RM protocol messages, you
can enforce the use of a separate sequence per application message by configuring the RM source's
sequence termination policy (setting the maximum sequence length to 1). See the <a href="/confluence/display/CXF20DOC/WSRMConfiguration"
title="WSRMConfiguration">Reliable Messaging Configuration Guide</a> for more details
on configuring this and other aspects of the reliable exchange.</p>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;" class="grey">
                        <a href="https://cwiki.apache.org/confluence/users/removespacenotification.action?spaceKey=CXF20DOC">Stop
watching space</a>
            <span style="padding: 0px 5px;">|</span>
                <a href="https://cwiki.apache.org/confluence/users/editmyemailsettings.action">Change
email notification preferences</a>
</div>
        <a href="https://cwiki.apache.org/confluence/display/CXF20DOC/WS-ReliableMessaging">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=63532&revisedVersion=3&originalVersion=2">View
Changes</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message