Enterprise Integration PatternsMessaging Patterns
HOME    PATTERNS    RAMBLINGS    ARTICLES    TALKS    DOWNLOAD    BOOKS    CONTACT

Revision History

Messaging Patterns

Previous Previous   Next Next

October 2003

The book is out in the stores now, so I have to take the full pattern content off the site. I will keep the catalog of all patterns, but each pattern will be shortened, essentially to context, problem, solution and the picture. This way we can continue to use the site as a reference for the pattern language without getting into trouble with the publisher.

July 2003

Lots of edits and additions. I added a new introductory chapter with a longer design example (Solving Integration Problems using Patterns). We also have a TIBCO implementation for the Loan Broker example (Asynchronous Implementation with TIBCO ActiveEnterprise) and show how to instrument the MSMQ version of the example (Loan Broker System Management). Plus tons of edits, more examples, more pictures.

June 2003

Lots of activity. Bobby added Request-Reply to the Message Construction section and I added Wire Tap, Detour and Smart Proxy to the System Management section. Also major updates to the Channel Adapter.

I added the Message Broker pattern as an architectural pattern for message routing.

May 2003

Major edits over the routing patterns: Message Router. Renamed Routing Table to Routing Slip -- the old named clashed with common usage in the networking world. Also, I added the Dynamic Router.

Bobby made a pass over the endpoint patterns and rewrote the introduction into this chapter (Introduction to Messaging Endpoints).

I am in the process of incorporating feedback into the Message Routing chapter. I added a better comparison between the patterns to the Introduction to Message Routing. I also renamed the "Distribution with Aggregate Response" into Composed Message Processor -- the name was way too long.

I added a MSMQ implementation in C# for the composed messaging example (Asynchronous Implementation with MSMQ) It's fairly comprehensive and demonstrates the implementation of a number of patterns in a real application.

Bobby added the Messaging Bridge and reworked some of the channel patterns.

I added a MSMQ example in C# to the Resequencer. Most of the routing and transformation patterns now have real code examples.

I also added the Introduction to Composed Messaging Examples to be followed by three comprehensive code examples: Java / Apache AXIS, MSMQ and TIBCO pub-sub.

Apr 2003

I rewrote the Message History so that the primary motivation is debugging and analyzing the system. Avoiding circular references is a side benefit of the solution.

I felt that the section on message Transformation could use a few more patterns. I added the Normalizer. I also added some more detail to the Channel Purger. I also made an editing pass over the Introduction to System Management patterns, including renaming the EnvelopeWrapper to Envelope Wrapper.

I finally finished the Process Manager. Sean Neville contributed a nice section on Emerging Standards and Futures in Enterprise Integration.

We added intro sections to the individual chapters to introduce the patterns and to explain how they relate to each other.

Bobby merged the Messaging Integration and Messaging patterns. We also added additional Web Services references to underline the relevance of these patterns to Web Services solutions.

Mar 2003

I added the Channel Purger pattern.

I added pictures to the Integration Styles patterns. Bobby added a JMS and a .Net example for basic messaging: JMS Request/Reply Example and .NET Request/Reply Example. Also, we now have pictures in all patterns.

We rearranged the patterns in the site to make it easier to read them from front to back. Now all the 'root patterns', mostly the first pattern of each chapter are collected in a new section labeled 'Messaging Systems'.

I made a pass through the Transformation Patterns, adding an XSL example to the Message Translator. I also added a reference to WS-Routing to the Routing Slip pattern.

I added the Idempotent Receiver. Bobby made a number of edits to the Channel Patterns. I am currently making edits to the transformation patterns. I removed the dandling section on Structural Transformation patterns. I have a number of good ideas in this area, but it simply out of scope for now.

Feb 2003

I added Martin's 'Integration Style' patterns. Still missing pictures, but coming soon... This brings the total to 61 patterns.

We integrated Bobby's Channel Patterns, Message Patterns and Endpoint Patterns. We have over 55 patterns now! We will slow down our search for new patterns and focus on adding more pictures, more detail and examples to the patterns we have.

Jan 2003

I keep on finding new patterns. I just added the Messaging Mapper. Accordingly, I renamed the BidHelper class in the Aggregator code sample into BidMapper.

Dec 2002

I created a new section at the bottom of each pattern page listing all related patterns . The section contains links to all patterns that are mentioned anywhere in the pattern description. If a pattern name displays here without a link it indicates that the pattern has not been developed yet. I wanted to save everybody the 'under construction' pages...

I made a complete editing pass over all of the routing patterns. Recipient List received a new icon and was moved up closer to Message Filter and Content-Based Router. I added a placeholder for the Process Manager pattern.

I added the Resequencer pattern.

I updated the Aggregator code sample to implement the MessageListener interface. I also added class and sequence diagrams.

My site was cross-linked from TheServerSide. 770 unique visitors in a day! The site has received over 12000 unique visitors so far.

I think I finally got a handle on the font sizes on the site. They now display consistently on both IE 5.x and NS 4.x and are resizable. I hope this will resolve any readability problems. I guess I really am an enterprise architect and not a Web designer...

Oct 2002

I Modified my stylesheet to make the text more readable on Netscape's browser. Sorry for the inconvenience.

Added a JMS example to Aggregator.

Reversed Content Filter and Claim Check to improve flow. Rename Store in Library to Claim Check. Changed icon and expanded description of Claim Check.

Added the Message Filter. Renamed Sequencer to Splitter since the sequence is not relevant. The Sequencer is simply a special case of the Splitter. Also, changed the icons for Splitter and Aggregator. Renamed Broadcast with Aggregate Response to (much shorter) Scatter-Gather.

I added a reference to CSP (Communicating Sequential Processes) to Pipes and Filters. Reworded the problem statement.

I added Message Router as the root to all routing patterns.

I finally incorporated most of the feedback from PLoP 2002. Thanks again to all my reviewers.

Sept 2002

I added the Message Translator and moved most of the material from the intro into structural transformations into this pattern.

I regrouped the patterns and added placeholders for Kyle's and Bobby's patterns.

I presented the paper at the PLoP 2002 Conference. I got a number of excellent comments that I will incorporate over the next weeks.

Started working on structural transformation patterns.

I am getting about 100 visits a day. I add a fancier table of contents and a 'Quick Reference'

Aug 2002

The site goes life. I convert my original Word document into XML files and create XSL transformations to render the HTML page.


Want to keep up-to-date? Follow My Blog.
Want to read more in depth? Check out My Articles.
Want to see me live? See where I am speaking next.

Enterprise Integration Patterns Find the full description of this pattern in:
Enterprise Integration Patterns
Gregor Hohpe and Bobby Woolf
ISBN 0321200683
650 pages
Addison-Wesley

From Enterprise Integration to Enterprise Transformation:

My new book describes how architects can play a critical role in IT transformation by applying their technical, communication, and organizational skills with 37 episodes from large-scale enterprise IT.

DRM-free eBook on Leanpub.com

Print book on Amazon.com

Creative Commons Attribution License Parts of this page are made available under the Creative Commons Attribution license. You can reuse the pattern icon, the pattern name, the problem and solution statements (in bold), and the sketch under this license. Other portions of the text, such as text chapters or the full pattern text, are protected by copyright.


Table of Contents
Preface
Introduction
Solving Integration Problems using Patterns
Integration Styles
File Transfer
Shared Database
Remote Procedure Invocation
Messaging
Messaging Systems
Message Channel
Message
Pipes and Filters
Message Router
Message Translator
Message Endpoint
Messaging Channels
Point-to-Point Channel
Publish-Subscribe Channel
Datatype Channel
Invalid Message Channel
Dead Letter Channel
Guaranteed Delivery
Channel Adapter
Messaging Bridge
Message Bus
Message Construction
Command Message
Document Message
Event Message
Request-Reply
Return Address
Correlation Identifier
Message Sequence
Message Expiration
Format Indicator
Interlude: Simple Messaging
JMS Request/Reply Example
.NET Request/Reply Example
JMS Publish/Subscribe Example
Message Routing
Content-Based Router
Message Filter
Dynamic Router
Recipient List
Splitter
Aggregator
Resequencer
Composed Msg. Processor
Scatter-Gather
Routing Slip
Process Manager
Message Broker
Message Transformation
Envelope Wrapper
Content Enricher
Content Filter
Claim Check
Normalizer
Canonical Data Model
Interlude: Composed Messaging
Synchronous (Web Services)
Asynchronous (MSMQ)
Asynchronous (TIBCO)
Messaging Endpoints
Messaging Gateway
Messaging Mapper
Transactional Client
Polling Consumer
Event-Driven Consumer
Competing Consumers
Message Dispatcher
Selective Consumer
Durable Subscriber
Idempotent Receiver
Service Activator
System Management
Control Bus
Detour
Wire Tap
Message History
Message Store
Smart Proxy
Test Message
Channel Purger
Interlude: Systems Management Example
Instrumenting Loan Broker
Integration Patterns in Practice
Case Study: Bond Trading System
Concluding Remarks
Emerging Standards
Appendices
Bibliography
Revision History