From commits-return-6573-apmail-camel-commits-archive=camel.apache.org@camel.apache.org Fri Apr 17 12:00:30 2009 Return-Path: Delivered-To: apmail-camel-commits-archive@www.apache.org Received: (qmail 91410 invoked from network); 17 Apr 2009 12:00:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 17 Apr 2009 12:00:29 -0000 Received: (qmail 24516 invoked by uid 500); 17 Apr 2009 12:00:28 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 24472 invoked by uid 500); 17 Apr 2009 12:00:28 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 24463 invoked by uid 500); 17 Apr 2009 12:00:28 -0000 Delivered-To: apmail-activemq-camel-commits@activemq.apache.org Received: (qmail 24460 invoked by uid 99); 17 Apr 2009 12:00:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Apr 2009 12:00:28 +0000 X-ASF-Spam-Status: No, hits=-1994.3 required=10.0 tests=ALL_TRUSTED,HTML_MESSAGE,MIME_HTML_ONLY X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Apr 2009 12:00:20 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 0A064234C004 for ; Fri, 17 Apr 2009 05:00:00 -0700 (PDT) Message-ID: <988826385.1239969600026.JavaMail.www-data@brutus> Date: Fri, 17 Apr 2009 05:00:00 -0700 (PDT) From: confluence@apache.org To: camel-commits@activemq.apache.org Subject: [CONF] Apache Camel: Enterprise Integration Patterns (page edited) MIME-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org

Enterprise Integration Patterns has been edited by Charles Moulliard (Apr 17, 2009).

=20

(View changes)

Content:

Enterprise Integration Pattern= s

Camel supports most of the Enterprise Integration Patterns3D"" from th= e excellent book by Gregor Hohpe3D"" a= nd Bobby Woolf3D"".

If you are new to Camel you might want to try the Getting Started in the User Guide before attempting to implement these patterns.

The EIP icons library is available as a Visio stencil file adapted to re= nder the icons with the Camel color : sand. See resources section to download them for your presentation, functio= nal and technical documents.

Messagin= g Systems

Message Channel How does one application communicate with anoth= er using messaging?
Message How can two applications connected by a message= channel exchange a piece of information?
= Pipes and Filters How can we perform complex processing on a mess= age while maintaining independence and flexibility?
Message Router How can you decouple individual processing step= s so that messages can be passed to different filters depending on a set of= conditions?
Message Translator How can systems using different data formats co= mmunicate with each other using messaging?
= Message Endpoint How does an application connect to a messaging = channel to send and receive messages?

Messagi= ng Channels

Point to Point Channel <= /td> How can the caller be sure that exactly one rec= eiver will receive the document or perform the call?
= Publish Subscribe Chan= nel How can the sender broadcast an event to all in= terested receivers?
Dead Letter Channel What will the messaging system do with a messag= e it cannot deliver?
Guaranteed Delivery How can the sender make sure that a message wil= l be delivered, even if the messaging system fails?
Message Bus What is an architecture that enables separate a= pplications to work together, but in a de-coupled fashion such that applica= tions can be easily added or removed without affecting the others?

Messa= ge Construction

Event Message How can messaging be used to transmit events fr= om one application to another?
Request Reply When an application sends a message, how can it= get a response from the receiver?
Correlation Identifier <= /td> How does a requestor that has received a reply = know which request this is the reply for?

Message Ro= uting

Content Based Router How do we handle a situation where the implemen= tation of a single logical function (e.g., inventory check) is spread acros= s multiple physical systems?
Message Filter How can a component avoid receiving uninteresti= ng messages?
Dynamic Router How can you avoid the dependency of the router = on all possible destinations while maintaining its efficiency?
Recipient List How do we route a message to a list of (static = or dynamically) specified recipients?
Splitter How can we process a message if it contains mul= tiple elements, each of which may have to be processed in a different way? =
Aggregator How do we combine the results of individual, bu= t related messages so that they can be processed as a whole?
Resequencer How can we get a stream of related but out-of-s= equence messages back into the correct order?
Composed Message Pro= cessor How can you maintain the overall message flow w= hen processing a message consisting of multiple elements, each of which may= require different processing?
<= /td> Scatter-Gather How do you maintain the overall message flow wh= en a message needs to be sent to multiple recipients, each of which may sen= d a reply?
Routing Slip How do we route a message consecutively through= a series of processing steps when the sequence of steps is not known at de= sign-time and may vary for each message?
<= /td> Throttler How can I throttle messages to ensure that a sp= ecific endpoint does not get overloaded, or we don't exceed an agreed SLA w= ith some external service?
<= /td> Delayer How can I delay the sending of a message?
<= /td> Load Balancer How can I balance load across a number of endpo= ints?
<= /td> Multicast How can I route a message to a number of endpoi= nts at the same time?
<= /td> Loop How can I repeat processing a message in a loop= ?

Mes= sage Transformation

Content Enricher How do we communicate with another system if th= e message originator does not have all the required data items available? <= /td>
Content Filter How do you simplify dealing with a large messag= e, when you are interested only in a few data items?
<= /td> Claim Check How can we reduce the data volume of message se= nt across the system without sacrificing information content?
Normalizer How do you process messages that are semantical= ly equivalent, but arrive in a different format?
<= /td> Sort How can I sort the body of a message?

Messag= ing Endpoints

<= /td> Messaging Mapper How do you move data between domain objects and= the messaging infrastructure while keeping the two independent of each oth= er?
Event Driven Consumer How can an application automatically consume me= ssages as they become available?
= Polling Consumer How can an application consume a message when t= he application is ready?
Competing Consumers How can a messaging client process multiple mes= sages concurrently?
Message Dispatcher How can multiple consumers on a single channel = coordinate their message processing?
= Selective Consumer How can a message consumer select which message= s it wishes to receive?
Durable Subscriber How can a subscriber avoid missing messages whi= le it's not listening for them?
<= /td> Idempotent Consumer How can a message receiver deal with duplicate = messages?
Transactional Client How can a client control its transactions with = the messaging system?
= Messaging Gateway How do you encapsulate access to the messaging = system from the rest of the application?
= Service Activator How can an application design a service to be i= nvoked both via various messaging technologies and via non-messaging techni= ques?

System M= anagement

Detour How can you route a message through intermediat= e steps to perform validation, testing or debugging functions?
Wire Tap How do you inspect messages that travel on a po= int-to-point channel?

Resources

Error formatting macro: attachme= nts: java.util.regex.PatternSyntaxException: Dangling meta character '*' ne= ar index 0 *camel.zip ^