Thursday, February 28, 2013
Camel
Message Channel
-----------------------------
Endpoint <----> Messages Endpoint---->
-----------------------------
Routes
A route is the step-by-step movement of a Message from an input queue,
through arbitrary types of decision making (such as filters and routers) to a
destination queue (if any).
Message and Exchange
The Message interface provides an abstraction for a single message, such as
a request, reply or exception message.The Exchange interface provides an abstraction for an exchange of
messages, that is, a request message and its corresponding reply or
exception message. In Camel terminology, the request, reply and exception
messages are called in, out and fault messages.
The Processor interface represents a class that processes a message. The
signature of this interface is shown below.
Listing 1. Processor
package org.apache.camel;
public interface Processor {
void process(Exchange exchange) throws Exception;
}
Notice that the parameter to the process() method is an Exchange rather
than a Message. This provides flexibility.
PATTERN INDEX
There now follows a list of the Enterprise Integration Patterns from the book
along with examples of the various patterns using Apache Camel
Messaging Systems
Message
Channel
How does one application communicate with
another 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
message while maintaining independence and
flexibility?
Message
Router
How can you decouple individual processing steps
so that messages can be passed to different filters
depending on a set of conditions?
Message
Translator
How can systems using different data formats
communicate with each other using messaging?
Message
Endpoint
How does an application connect to a messaging
channel to send and receive messages?
CHAPTER 5 - ENTERPRISE INTEGRATION PATTERNS 37essaging Channels
Point to
Point
Channel
How can the caller be sure that exactly one
receiver will receive the document or perform the
call?
Publish
Subscribe
Channel
How can the sender broadcast an event to all
interested receivers?
Dead Letter
Channel
What will the messaging system do with a
message it cannot deliver?
Guaranteed
Delivery
How can the sender make sure that a message
will be delivered, even if the messaging system
fails?
Message
Bus
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?
Message Construction
Event
Message
How can messaging be used to transmit events
from one application to another?
Request
Reply
When an application sends a message, how can it
get a response from the receiver?
Correlation
Identifier
How does a requestor that has received a reply
know which request this is the reply for?
Return
Address
How does a replier know where to send the reply?
Message Routing
Content
Based
Router
How do we handle a situation where the
implementation of a single logical function (e.g.,
inventory check) is spread across multiple
physical systems?
Message
Filter
How can a component avoid receiving
uninteresting messages?
38 CHAPTER 5 - ENTERPRISE INTEGRATION PATTERNSynamic
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
multiple elements, each of which may have to
be processed in a different way?
Aggregator
How do we combine the results of individual,
but related messages so that they can be
processed as a whole?
Resequencer
How can we get a stream of related but out-of-sequence messages back into the correct order?
Composed
Message
Processor
How can you maintain the overall message flow
when processing a message consisting of
multiple elements, each of which may require
different processing?
ScatterGather
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?
Routing Slip
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?
Throttler
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?
Sampling
How can I sample one message out of many in a
given period to avoid downstream route does
not get overloaded?
Delayer How can I delay the sending of a message?
Load
Balancer
How can I balance load across a number of
endpoints?
Multicast
How can I route a message to a number of
endpoints at the same time?
CHAPTER 5 - ENTERPRISE INTEGRATION PATTERNS 39oop
How can I repeat processing a message in a
loop?
Message Transformation
Content
Enricher
How do we communicate with another system if
the message originator does not have all the
required data items available?
Content
Filter
How do you simplify dealing with a large message,
when you are interested only in a few data items?
Claim
Check
How can we reduce the data volume of message
sent across the system without sacrificing
information content?
Normalizer
How do you process messages that are
semantically equivalent, but arrive in a different
format?
Sort How can I sort the body of a message?
Validate How can I validate a message?
Messaging Endpoints
Messaging
Mapper
How do you move data between domain objects
and the messaging infrastructure while keeping
the two independent of each other?
Event Driven
Consumer
How can an application automatically consume
messages as they become available?
Polling
Consumer
How can an application consume a message
when the application is ready?
Competing
Consumers
How can a messaging client process multiple
messages concurrently?
Message
Dispatcher
How can multiple consumers on a single channel
coordinate their message processing?
Selective
Consumer
How can a message consumer select which
messages it wishes to receive?
Durable
Subscriber
How can a subscriber avoid missing messages
while it's not listening for them?
40 CHAPTER 5 - ENTERPRISE INTEGRATION PATTERNSdempotent
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
invoked both via various messaging technologies
and via non-messaging techniques?
System Management
Detour
How can you route a message through intermediate
steps to perform validation, testing or debugging
functions?
Wire
Tap
How do you inspect messages that travel on a point-topoint channel?
Log How can I log processing a message?
http://camel.apache.org/manual/camel-manual-2.10.0.pdf
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment