A couple of months ago, I bought the early access edition of SOA Patterns after Colin Jack recommended it on Twitter. So far, only the first five chapters are available, but I soon discovered that this manuscript had a lot to offer. Although these chapters are still a bit rough and need some editing work (something that can be expected from an early edition), this book has the potential to become a classic for service-oriented architectures.
I have been reading the blogs of two of the authors, Arnon Rotem-Gal-Oz and Udi Dahan, for quite some time now and I learned even more from the book as I learned from their blogs. No doubt that these gentlemen are authorities in the field of SOA.
What can you expect from this book? Well, it offers an explanation of the software architectural patterns of SOA and their technological implications. This means that you don't have to expect to see much code. As the title implies, the authors use a pattern language that describe both the problem and the solution with its advantages and disadvantages. Every pattern in the book is divided into the following structure:
- Problem - explains the problem that the pattern tries to solve.
- Solution - the solution to the problem stated earlier.
- Technology Mapping - describes the technologies that map to the architecture as described by the solution.
- Quality Attributes - provides the architectural benefits of the pattern and to which scenarios the pattern applies.
After the introductory chapter, the second chapter discusses some basic structural patterns like Service Host, Edge Component, etc. ... The Active Service pattern was a real eye opener for me. Basically, an Active Service pro-actively detects the availability of dependant services. Yes, a service doesn't have to be a passive beast that sits there and waits to handle your request :-). The next chapter shows some patterns for performance, scalability and availability. Amongst these patterns are Decouple Invocation, Gridable Service, the Blogjecting Watchdog (which caught my attention) and many more. The fourth chapter talks about security and manageability and the last of the five chapters talks about message exchange patterns like the widely popular Request/Reply, Inversion of Communications and Saga patterns.
I really enjoyed reading these first five chapters and I'm already looking forward to the next ones. The table of content indicates that there will also be a couple of chapters on SOA anti-patterns as well. These chapters will probably discuss everything I've been doing so far when it comes to SOA ;-).
Keep an eye out for this book. It will going to be one of those books that you want to have close by when you're architecting/developing services. Two thumbs up!