Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
, with contributions by KyleBrown
, and JonathanSimon?
. Published in October 2003 by AddisonWesley
, part of the MartinFowlerSignatureSeries?
. ISBN 0321200683
To do justice in reviewing this book, I should depict every single pattern and give you multiple examples on how it would apply to your job as a Project Manager, Software Architect, Technical Lead or a Developer. That would be a 500-page book all by itself. In short, this is one great book. The first book to actually take a complex and ever growing topic such as MOM, Message Oriented Middleware, and give you its benefits and the best practices/patterns all in one book.
The author starts by giving the reader the top reasons why messaging should be chosen for the next project:
1) Remote communication
2) Platform/Language Integration
3) Asynchronous communication
4) Variable timing
6) Reliable Communication
7) Disconnected operation
9) Thread Management
The author goes into detail on each of these reasons. These reasons would convince any software architect, but the author goes even further than that and reiterates the benefits of each of these reasons and elaborates on them thru out the book.
Chapter 3 of the book starts by breaking up a messaging system into its main components and briefly explaining each one:
1) Message Channel
3) Pipes and Filers
4) Message Router
5) Message Translator
6) Message Endpoint
Each of these high level topics is then broken down and various patterns are shown for each section. Just like the GoF book, the reader can simply go the desired section and read the patterns that are associated with that "subsystem"
Each section is then followed by a full-blown example, which to me is priceless. The examples are shown using the most popular middleware vendors such as TIBCO, IBM, Microsoft, Web Methods, SeeBeyond?
and a couple JMS vendors. The examples show the similarities and differences in implementation but clearly show how EACH pattern that was just covered in the previous section applies to the example.
Having worked with many of the MOM vendors covered in this book, Chapter 7, Message Routing, is my favorite chapter.
The author breaks down this topic into 14 different patterns:
1) Pipes and Filers
2) Message Router
3) Content-Based router
4) Message Filter
5) Dynamic Router
6) Recipient List
10) Composed Message Processor
12) Routing Slip
13) Process Manager
14) Message Broker
- The chances are, not many of us need to write a MOM due to the fact that there are many vendors out there that are doing that already! But one could certainly use this section for education purposes, and/or use it a checklist of "nice-to-haves" when shopping around for a MOM vendor. By reading the book, you can figure out what "features" apply to you, your application and your enterprise, and take that list and see which vendor has implemented that feature.
In summary, GregorHohpe
have done a fantastic job depicting a very complex topic. I have made a place for this book right next to the original GoF Design Patterns book. -- Amazon review
Sample chapter "Solving Integration Problems using patterns" available at http://searchwebservices.techtarget.com/searchWebServices/downloads/Hohpe_ch01.pdf
GregorHohpe has a website (and a wiki) at http://www.eaipatterns.com/. I found a post regarding the CanonicalDataModel? dated Nov2004
. Too bad it has not got much participation to date. I would love to get the authors undivided attention and if he is there to teach, I am willing to go learn -- dl ''
See also EnterpriseApplicationIntegration