on July 11, 2004
Overall I am quite impressed with the quality of this book. The authors took a great look at the patterns involved in messaging architectures as traditionally practiced in EAI applications. If you are an experienced architect, you will find the patterns applied to many enterprise applications. If you don't have a few large-scale type projects under your belt, you won't think many of the suggestions are useful, applicable, or even necessary. If you do, though, reading this book will be well worth your time.
on December 21, 2003
Enterprise Integration Patterns is part of Addison-Wesley's new Martin Fowler Signature Series, which Fowler's Patterns of Enterprise Application Architecture (PoEAA) is also a part of. I was very satisfied with PoEAA and the same can be said about Enterprise Integration Patterns. It has the potential to become a classic.
The authors' writing style is a pleasure to read -- no ambiguous statements, no unnecessary babbling. The book is structured to suit both cover-to-cover reading and a "dive-in" approach for situations where you're looking for a solution to a particular problem. After an introduction to the field of enterprise integration, and a discussion of why the book concentrates on the messaging integration style in particular, the reader is given a hierarchical catalog of patterns revolving around a small set of "core" patterns. The book's coverage is in my opinion very well scoped.
I must also praise the look of the book; besides the layout being familiar from prior works and the proven pattern catalog structuring, the authors have used graphics very efficiently. Not only the authors define a vocabulary for integration patterns, but they have also come up with an expressive visual language for illustrating the patterns using simple notations that can be easily drawn without CASE tools.
I found only two downsides for this book. First, the title can be slightly misleading as the book focuses on messaging as an integration style and only briefly mentions alternatives such as RPC, file transfer, and shared databases. However, I don't know a single person who doesn't read the back cover before buying a book, so I wouldn't count this as a big issue. Furthermore, the reason for focusing on messaging is thoroughly argued in the book. The second downside is the code examples, which are presented using varying languages and products and seem somehow disconnected from the text.
In summary, Enterprise Integration Patterns is a great book. It's worth reading and re-reading if you're working with systems integration projects or writing integration software yourself. Yet another book that makes me think, "I wish I had it back then..."
on July 4, 2004
I had been waiting for this book for several years. There are many good books on software architecture using synchronous communication, but nothing on asynchronous communication --- the typical scheme when connecting existing applications. This is surprising since the underlying products (MQ, MSMQ, WebMethods, Vitria, etc.) have been around for a while, some for more than 10 years, and the techniques have become increasingly well understood by the practitioners. There are even some books on the individual products --- several on MQ for example --- but nothing more general about how to use messaging, message routing, and message transformation to build a larger system.
This is the book I had been waiting for. Furthermore the authors have avoided the usual three pitfalls of technical books: it is well organized, it well written, and it is deep treatment, not at all superficial.
The book is organized into 65 patterns (in the manner of the classic _Design Patterns_). Each pattern shows one typical problem in integrating applications, and how it is solved. Each pattern gives enough implementation details so it is clear how it would work, and an example or two so it is clear how it works in practice. For example the Message Expiration pattern addresses the problem of "How can a sender of a message indicate when a message should be considered stale and thus shouldn't be processed?"
The writing in this book is clear. For example "A Message Expiration is like the expiration date on a milk carton. After that date, you shouldn't drink the milk." The authors have also invented icons for each of their patterns. Their icon language allows a integration architecture to be visuallized in a way that UML does not provide.
Amongst the 11 pattern-describing chapters are 3 "interludes", chapter-length examples that explain a problem, show how patterns can combined to solve it, and then provide implementations in different technologies (JMS, .Net, TIBCO, MSMQ, etc.).
My only beef with this book is that it is long and dense: almost 700 pages. I bought it in late December 2003 and I am only finishing it now. But it is hard to say what should have been cut. Certainly none of the patterns are unnecessary, and the decription of each feels like about the right length. The interludes are also useful for seeing how the patterns fit together. So maybe this book just needs to be 700 pages.
on March 29, 2004
This a book about enterprise integration solutions, authors claim that they are technology neutral, it is true. In the examples and implementations, they chose 3 most popular messaging frameworks to illustrate the patterns. However, they are pretty biased toward messaging as the "better" solution to enterprise integration strategy. It may have a lot of edges over the other approaches, sometimes it is just easy to use a simple wrapper/facade to do the integration. But I guess authors really intend to push their messaging solutions as the subtitle indicates.
Having said that, this is an excellent book of message pattern language, which I believe is the first one introducing the interesting topic. The books touches from the architectural patterns, e.g., messaging bus, pipe and filters, to common design patterns, e.g., publish/subscribe, request/reply, to some patterns that most MOMs provide as integrated solutions, e.g., durable subscriber, message filter, message expiration etc. With all these patterns at hand, a system architect would be able to craft a messaging pattern-oriented enterprise integration architecture by applying the appropriate patterns compositely.
The book would be better if authors describe some patterns implementation in more detail. E.g., it would be interesting to see how the message expiration is implemented, does the message contain a timer or the message channel monitor each individual message from start up? How does the channel interact with the message and check the expiry? Guaranteed delivery is another example. I know most of these implementation details only interest MOM developers, whereas pattern users are only interested in how and when to apply the patterns, but now that the book is about patterns themselves, implementation details would be appreciated.
Since all the patterns introduced in the book form a messaging pattern language, knowing each pattern's strength and limitation under the context, scope and different forces, and how it interacts with other patterns to form a bigger(composite) pattern are essential to grasp the pattern language. A collaboration diagram to show each pattern's transition/migration/composition to each other would be helpful.
on October 28, 2003
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:
i) Pipes and Filers
ii) Message Router
iii) Content-Based router
iv) Message Filter
v) Dynamic Router
vi) Recipient List
x) Composed Message Processor
xii) Routing Slip
xiii) Process Manager
xiv) 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, Gregor Hohpe and Bobby Woolf 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.
on October 26, 2003
I am working in the integration team of a big organization in Israel and we are setting up a very large scale and complex , Service Oriented, EAI project which focuses on routing and security of messages between a huge variety of systems on lots of protocols.
I've been scouting the net for months looking for material on how to set up a good EAI project and what patterns, architecures, software and language environments are suitable for us. And I must say that no site compares to eai patterns. Most of the info you'll find on the net comes from some eai vendor and is all full of publicity stuff and biased opinions. what I love about eai patterns, is that it gives you all the information you need to set up a great and complex EAI router\mapper\anything without the need for any particular product. And it also shows you implementations with common eai and techologies. There is no other source which really defines the patterns and terminologies of EAI, in a global way without relation to any particular product like eai patterns. Over here at work we printed out the entire site on the mainframe printer and we use it as our guide. But now we could just get the book and have it in a much more compact manner. The only problem here is that stuff like EAI patterns and technologies get updated so fast that there is no chance the book will cover everything you need and you will probably have to look up for more on the net. But there certainly isn't a better way to get into EAI in my opinion, than buying this wonderful book. This is the EAI Bible. Great job by the authors. 5 Stars!
on November 6, 2003
I highly recommend this book because it offers solutions for many of the problems in enterprise software integration. I was able to participate in the on-line group reviewing the patterns. The authors were humble in receiving feedback and persistent in their desire to identify useful patterns with meaningful examples.
I am using these patterns at my present company designing in-house middleware solutions. The book is not just patterns, but a Pattern Language of Messaging for anyone needing to work in middleware. This will be a great reference for years to come!
on March 25, 2004
Gregor has a gift for explaining design patterns. We were trying to explain the problems with passing a large file up and down a messaging bus to our bioinformatics users, when I ran across Enterprise Integration Patterns. As soon as I showed the Claim Check pattern to our designers, they got it instantly. Five of my colleagues purchased the book, and we asked Gregor to come teach a class on it. This is the best written book on design patterns I've seen. I reallly like the list of patterns inside the book cover -- nice terse explanation, and great mnemonic icons.
on October 29, 2003
I review a lot of books, and I've written a few myself :-). This is an absolutely terrific book. Gregor and Bobby provide you with a timeless foundation to understand the future of EAI. While some authors use patterns inappropriately (as a way to boost sales, perhaps?), Gregor and Bobby use patterns to effectively capture and share their tremendous wisdom and experience. I learned a great deal in reviewing and reading this book, and I look forward to relying on its advice in the years to come. BUY IT NOW -- You'll be glad you did.
on August 26, 2015
Excellent material: clear, logical progression and well written by authors who really do understand their field.
If you need clear, well informed explanations, examples and analysis of messaging systems, patterns and design methods then I highly recommend this book.