Messaging and Integration
For the final section of this chapter, we’re going to look at patterns that focus on integrating messaging into an enterprise environment. Of course, all of the patterns in this chapter affect integration to some degree. The Message Façade pattern, for instance, is sometimes known as a messaging adapter , allowing nonmessaging-aware applications to participate in message-based data exchanges. The patterns in this section focus on how to route messages between systems, and on what might be done with the content once they’ve arrived.
Pipes and Filters Pattern
Many applications involve multiple processing. For example, placing an order might require reserving stock at the warehouse, processing payment, and shipping. In a fully integrated enterprise, you might be able to do all of this in one system and at one time, but most companies aren’t entirely integrated. Reserving stock might require someone to physically visit the warehouse, and payment processing might involve purchase order approvals or lengthy credit checks. In these cases, it makes sense to decouple the activities into separate components and connect them with messaging.
The Pipes and Filters
allows us to link a set of message
handlers (filters, in this parlance) via a series of pipes. The
pattern itself is an old one, and has been applied in a variety of contexts. Anyone who
has “piped” the content of one
program to another (
cat textfile.txt | more, for example) should be familiar with ...