I just finished reading Enterprise Integration Patterns written by Gregor Hohpe and Bobby Woolf. This book follows the same concept used by Martin Fowler and his marvelous PoEAA book, but obviously focused on integration patterns. Although the title is somewhat misleading, this book fully concentrates on message based architectures as opposed to other integration styles.
I'm somewhat new to message based architectures. By reading this book, I learned a lot of the concepts around messaging and showed me how to make the mind shift that it requires. It also made me realize some important things about SOA and DDD as well.
The introduction and the first chapter discuss the various needs of integration solutions. The first chapter also provides a nice example of a message based integration architecture. Don't miss out on these opening chapters as they clearly opened my eyes about some of the aspects of messaging.
Chapter two describes the different approaches for integrating applications, like File Transfer, Shared Database, Remote Procedure Invocation and of course Messaging, with all their advantages and disadvantages. This is the only chapter that discuss other integration styles, after which messaging is discussed throughout the rest of the book.
The third chapter introduces the six root messaging patterns (Message Channel, Message, Pipes and Filters, Message Router, Message Translator and Message Endpoint). The subsequent chapters take a more detailed view on each of these six root patterns. Except for Pipes and Filters, every fundamental messaging pattern leads to its own chapter that provides a concise reference of the respective supporting patterns.
As with most pattern books like these, don't expect to see lots and lots of code although this book does contain some technical stuff. Code snippets are shown at the end of each pattern, mostly on JMS and MSMQ (occasionally TIBCO and WebSphere MQ). There are also three separate interlude chapters that provide one or more examples about some of the patterns discussed in earlier (or sometimes upcoming) chapters. So it could be worse.
The book can be read from cover to cover, but I'd certainly not recommend it. Although concisely written, this piece of work is not something you want to read bedtime stories from (although it has occasionally put me to sleep). As I already mentioned, I'm fairly new to message based architectures. I read the first six chapters, skimmed through the chapter on Message Routing and picked up again by reading the chapters on Message Transformation and Messaging Endpoints. The latter is probably of the most practical use as this chapter discusses how to integrate an application with a messaging system.
I have a feel that I'm going to be referencing this book a lot in the near future. ;-) This book, like the PoEAA book, definitely falls into the category of reading it more than once, which is certainly worth the effort. I really enjoyed reading this book and I welcome it to my growing list of favorite books.
Till next time