camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Camel > Enterprise Integration Patterns
Date Sat, 03 Nov 2012 09:13:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=CAMEL&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/CAMEL/Enterprise+Integration+Patterns">Enterprise
Integration Patterns</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~davsclaus">Claus
Ibsen</a>
    </h4>
        <br/>
                         <h4>Changes (1)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >| !http://www.eaipatterns.com/img/DetourIcon.gif!
| [Detour] | How can you route a message through intermediate steps to perform validation,
testing or debugging functions? | <br>| !http://www.eaipatterns.com/img/WireTapIcon.gif!
| [Wire Tap] | How do you inspect messages that travel on a point-to-point channel? | <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">|
!http://cwiki.apache.org/confluence/download/attachments/49204/clear.png! | [Message History]
| How can we effectively analyze and debug the flow of messages in a loosely coupled system?
| <br></td></tr>
            <tr><td class="diff-unchanged" >| !http://cwiki.apache.org/confluence/download/attachments/49204/clear.png!
| [Log|LogEIP] | How can I log processing a message? | <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h2><a name="EnterpriseIntegrationPatterns-EnterpriseIntegrationPatterns"></a>Enterprise
Integration Patterns</h2>

<p>Camel supports most of the <a href="http://www.eaipatterns.com/toc.html" class="external-link"
rel="nofollow">Enterprise Integration Patterns</a> from the excellent book by <a
href="http://www.amazon.com/exec/obidos/search-handle-url/105-9796798-8100401?%5Fencoding=UTF8&amp;search-type=ss&amp;index=books&amp;field-author=Gregor%20Hohpe"
class="external-link" rel="nofollow">Gregor Hohpe</a> and <a href="http://www.amazon.com/exec/obidos/search-handle-url/105-9796798-8100401?%5Fencoding=UTF8&amp;search-type=ss&amp;index=books&amp;field-author=Bobby%20Woolf"
class="external-link" rel="nofollow">Bobby Woolf</a>. </p>

<p>If you are new to Camel you might want to try the <a href="/confluence/display/CAMEL/Getting+Started"
title="Getting Started">Getting Started</a> in the <a href="/confluence/display/CAMEL/User+Guide"
title="User Guide">User Guide</a> before attempting to implement these patterns.</p>

<p>The EIP icons library is available as a Visio stencil file adapted to render the
icons with the Camel color : sand. Download it <a href="http://cwiki.apache.org/CAMEL/enterprise-integration-patterns.data/Hohpe_EIP_camel.zip"
class="external-link" rel="nofollow">here</a> for your presentation, functional and
technical analysis documents. The original EIP stencil is also available in <a href="/confluence/download/attachments/49204/Hohpe_EIP_camel_OpenOffice.zip?version=1&amp;modificationDate=1245071375000">OpenOffice
3.x Draw</a> (thanks to Marco Garbelini) , <a href="http://www.eaipatterns.com/download/EIP_Visio_stencil.zip"
class="external-link" rel="nofollow">Microsoft Visio</a>, or <a href="http://www.graffletopia.com/stencils/137"
class="external-link" rel="nofollow">Omnigraffle</a>.</p>


<h3><a name="EnterpriseIntegrationPatterns-MessagingSystems"></a>Messaging
Systems</h3>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/ChannelIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Message+Channel" title="Message
Channel">Message Channel</a> </td>
<td class='confluenceTd'> How does one application communicate with another using messaging?
</td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessageIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Message" title="Message">Message</a>
</td>
<td class='confluenceTd'> How can two applications connected by a message channel exchange
a piece of information? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/PipesAndFiltersIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Pipes+and+Filters" title="Pipes
and Filters">Pipes and Filters</a> </td>
<td class='confluenceTd'> How can we perform complex processing on a message while maintaining
independence and flexibility? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/ContentBasedRouterIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Message+Router" title="Message
Router">Message Router</a> </td>
<td class='confluenceTd'> How can you decouple individual processing steps so that messages
can be passed to different filters depending on a set of conditions? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessageTranslatorIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Message+Translator"
title="Message Translator">Message Translator</a> </td>
<td class='confluenceTd'> How can systems using different data formats communicate with
each other using messaging? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessageEndpointIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Message+Endpoint" title="Message
Endpoint">Message Endpoint</a> </td>
<td class='confluenceTd'> How does an application connect to a messaging channel to
send and receive messages? </td>
</tr>
</tbody></table>
</div>


<h3><a name="EnterpriseIntegrationPatterns-MessagingChannels"></a>Messaging
Channels</h3>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/PointToPointIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Point+to+Point+Channel"
title="Point to Point Channel">Point to Point Channel</a> </td>
<td class='confluenceTd'> How can the caller be sure that exactly one receiver will
receive the document or perform the call? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/PublishSubscribeIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Publish+Subscribe+Channel"
title="Publish Subscribe Channel">Publish Subscribe Channel</a> </td>
<td class='confluenceTd'> How can the sender broadcast an event to all interested receivers?
</td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/DeadLetterChannelIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Dead+Letter+Channel"
title="Dead Letter Channel">Dead Letter Channel</a> </td>
<td class='confluenceTd'> What will the messaging system do with a message it cannot
deliver?  </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/GuaranteedMessagingIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Guaranteed+Delivery"
title="Guaranteed Delivery">Guaranteed Delivery</a> </td>
<td class='confluenceTd'> How can the sender make sure that a message will be delivered,
even if the messaging system fails? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessageBusIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Message+Bus" title="Message
Bus">Message Bus</a> </td>
<td class='confluenceTd'> What is an architecture that enables separate applications
to work together, but in a de-coupled fashion such that applications can be easily added or
removed without affecting the others? </td>
</tr>
</tbody></table>
</div>


<h3><a name="EnterpriseIntegrationPatterns-MessageConstruction"></a>Message
Construction</h3>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/EventMessageIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Event+Message" title="Event
Message">Event Message</a> </td>
<td class='confluenceTd'> How can messaging be used to transmit events from one application
to another? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/RequestReplyIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Request+Reply" title="Request
Reply">Request Reply</a> </td>
<td class='confluenceTd'> When an application sends a message, how can it get a response
from the receiver? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/CorrelationIdentifierIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Correlation+Identifier"
title="Correlation Identifier">Correlation Identifier</a> </td>
<td class='confluenceTd'> How does a requestor that has received a reply know which
request this is the reply for? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/ReturnAddressIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Return+Address" title="Return
Address">Return Address</a> </td>
<td class='confluenceTd'> How does a replier know where to send the reply? </td>
</tr>
</tbody></table>
</div>


<h3><a name="EnterpriseIntegrationPatterns-MessageRouting"></a>Message Routing</h3>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/ContentBasedRouterIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Content+Based+Router"
title="Content Based Router">Content Based Router</a> </td>
<td class='confluenceTd'> How do we handle a situation where the implementation of a
single logical function (e.g., inventory check) is spread across multiple physical systems?
</td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessageFilterIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Message+Filter" title="Message
Filter">Message Filter</a> </td>
<td class='confluenceTd'> How can a component avoid receiving uninteresting messages?
</td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/DynamicRouterIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Dynamic+Router" title="Dynamic
Router">Dynamic Router</a> </td>
<td class='confluenceTd'> How can you avoid the dependency of the router on all possible
destinations while maintaining its efficiency? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/RecipientListIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Recipient+List" title="Recipient
List">Recipient List</a> </td>
<td class='confluenceTd'> How do we route a message to a list of (static or dynamically)
specified recipients? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/SplitterIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Splitter" title="Splitter">Splitter</a>
</td>
<td class='confluenceTd'> How can we process a message if it contains multiple elements,
each of which may have to be processed in a different way? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/AggregatorIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Aggregator2" title="Aggregator2">Aggregator</a>
</td>
<td class='confluenceTd'> How do we combine the results of individual, but related messages
so that they can be processed as a whole? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/ResequencerIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Resequencer" title="Resequencer">Resequencer</a>
</td>
<td class='confluenceTd'> How can we get a stream of related but out-of-sequence messages
back into the correct order? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/DistributionAggregateIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Composed+Message+Processor"
title="Composed Message Processor">Composed Message Processor</a> </td>
<td class='confluenceTd'> How can you maintain the overall message flow when processing
a message consisting of multiple elements, each of which may require different processing?
</td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Scatter-Gather" title="Scatter-Gather">Scatter&#45;Gather</a>
</td>
<td class='confluenceTd'> How do you maintain the overall message flow when a message
needs to be sent to multiple recipients, each of which may send a reply?  </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/RoutingTableIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Routing+Slip" title="Routing
Slip">Routing Slip</a> </td>
<td class='confluenceTd'> How do we route a message consecutively through a series of
processing steps when the sequence of steps is not known at design-time and may vary for each
message? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Throttler" title="Throttler">Throttler</a>
</td>
<td class='confluenceTd'> How can I throttle messages to ensure that a specific endpoint
does not get overloaded, or we don't exceed an agreed SLA with some external service? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Sampling" title="Sampling">Sampling</a>
</td>
<td class='confluenceTd'> How can I sample one message out of many in a given period
to avoid downstream route does not get overloaded? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Delayer" title="Delayer">Delayer</a>
</td>
<td class='confluenceTd'> How can I delay the sending of a message? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Load+Balancer" title="Load
Balancer">Load Balancer</a> </td>
<td class='confluenceTd'> How can I balance load across a number of endpoints? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Multicast" title="Multicast">Multicast</a>
</td>
<td class='confluenceTd'> How can I route a message to a number of endpoints at the
same time? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Loop" title="Loop">Loop</a>
</td>
<td class='confluenceTd'> How can I repeat processing a message in a loop? </td>
</tr>
</tbody></table>
</div>


<h3><a name="EnterpriseIntegrationPatterns-MessageTransformation"></a>Message
Transformation</h3>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/DataEnricherIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Content+Enricher" title="Content
Enricher">Content Enricher</a> </td>
<td class='confluenceTd'> How do we communicate with another system if the message originator
does not have all the required data items available? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/ContentFilterIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Content+Filter" title="Content
Filter">Content Filter</a> </td>
<td class='confluenceTd'> How do you simplify dealing with a large message, when you
are interested only in a few data items? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/StoreInLibraryIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Claim+Check" title="Claim
Check">Claim Check</a> </td>
<td class='confluenceTd'> How can we reduce the data volume of message sent across the
system without sacrificing information content?  </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/NormalizerIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Normalizer" title="Normalizer">Normalizer</a>
</td>
<td class='confluenceTd'> How do you process messages that are semantically equivalent,
but arrive in a different format? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Sort" title="Sort">Sort</a>
</td>
<td class='confluenceTd'> How can I sort the body of a message? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Validate" title="Validate">Validate</a>
</td>
<td class='confluenceTd'> How can I validate a message? </td>
</tr>
</tbody></table>
</div>


<h3><a name="EnterpriseIntegrationPatterns-MessagingEndpoints"></a>Messaging
Endpoints</h3>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Messaging+Mapper" title="Messaging
Mapper">Messaging Mapper</a> </td>
<td class='confluenceTd'> How do you move data between domain objects and the messaging
infrastructure while keeping the two independent of each other? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/EventDrivenConsumerIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Event+Driven+Consumer"
title="Event Driven Consumer">Event Driven Consumer</a> </td>
<td class='confluenceTd'> How can an application automatically consume messages as they
become available? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/PollingConsumerIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Polling+Consumer" title="Polling
Consumer">Polling Consumer</a> </td>
<td class='confluenceTd'> How can an application consume a message when the application
is ready? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/CompetingConsumersIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Competing+Consumers"
title="Competing Consumers">Competing Consumers</a> </td>
<td class='confluenceTd'> How can a messaging client process multiple messages concurrently?
</td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessageDispatcherIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Message+Dispatcher"
title="Message Dispatcher">Message Dispatcher</a> </td>
<td class='confluenceTd'> How can multiple consumers on a single channel coordinate
their message processing? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessageSelectorIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Selective+Consumer"
title="Selective Consumer">Selective Consumer</a> </td>
<td class='confluenceTd'> How can a message consumer select which messages it wishes
to receive? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/DurableSubscriptionIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Durable+Subscriber"
title="Durable Subscriber">Durable Subscriber</a> </td>
<td class='confluenceTd'> How can a subscriber avoid missing messages while it's not
listening for them? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Idempotent+Consumer"
title="Idempotent Consumer">Idempotent Consumer</a> </td>
<td class='confluenceTd'> How can a message receiver deal with duplicate messages? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/TransactionalClientIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Transactional+Client"
title="Transactional Client">Transactional Client</a> </td>
<td class='confluenceTd'> How can a client control its transactions with the messaging
system? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessagingGatewayIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Messaging+Gateway" title="Messaging
Gateway">Messaging Gateway</a> </td>
<td class='confluenceTd'> How do you encapsulate access to the messaging system from
the rest of the application? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/MessagingAdapterIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Service+Activator" title="Service
Activator">Service Activator</a> </td>
<td class='confluenceTd'> How can an application design a service to be invoked both
via various messaging technologies and via non-messaging techniques? </td>
</tr>
</tbody></table>
</div>


<h3><a name="EnterpriseIntegrationPatterns-SystemManagement"></a>System
Management</h3>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/ControlBusIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/ControlBus" title="ControlBus">ControlBus</a>
</td>
<td class='confluenceTd'> How can we effectively administer a messaging system that
is distributed across multiple platforms and a wide geographic area? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/DetourIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Detour" title="Detour">Detour</a>
</td>
<td class='confluenceTd'> How can you route a message through intermediate steps to
perform validation, testing or debugging functions? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://www.eaipatterns.com/img/WireTapIcon.gif"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/Wire+Tap" title="Wire
Tap">Wire Tap</a> </td>
<td class='confluenceTd'> How do you inspect messages that travel on a point-to-point
channel? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/pages/createpage.action?spaceKey=CAMEL&amp;title=Message+History&amp;linkCreation=true&amp;fromPageId=49204"
class="createlink">Message History</a> </td>
<td class='confluenceTd'> How can we effectively analyze and debug the flow of messages
in a loosely coupled system? </td>
</tr>
<tr>
<td class='confluenceTd'> <span class="image-wrap" style=""><img src="http://cwiki.apache.org/confluence/download/attachments/49204/clear.png"
style="border: 0px solid black" /></span> </td>
<td class='confluenceTd'> <a href="/confluence/display/CAMEL/LogEIP" title="LogEIP">Log</a>
</td>
<td class='confluenceTd'> How can I log processing a message? </td>
</tr>
</tbody></table>
</div>



    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/CAMEL/Enterprise+Integration+Patterns">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=49204&revisedVersion=76&originalVersion=75">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/CAMEL/Enterprise+Integration+Patterns?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message