Author: Thomas Erl
Publisher: Prentice Hall, 2009
Aimed at: Service-oriented practitioners
Pros: Beautifully produced book
Cons: Circular arguments, little of practical value to developer
Reviewed by: Mike James
If you are looking for a book that will tell you about the developer angle on SOA design patterns - this isn't the book. Indeed from a developer's point of view this is best regarded as a beautifully produced folly - i.e. a waste of resources.
It is beautifully produced, this is about its only real virtue. It is printed on nice paper and has very nice full colour diagrams. Overall the experience reminds you how good a book can be with the right production values.
As to the content that's another matter. Despite promising patterns it delivers complex redefinitions of terminology and round about discussions of the obvious. It is amazingly wordy and manages to stretch out even the most obvious point until it becomes completely opaque and in need of going over one more time. For example, consider a pattern taken at random:
The generic capabilities provided by agnostic services sometimes result in service contracts that impose unnecessary data and validation upon consumer programs.
A consumer program can be designed to only validate the relevant subset of the data and ignore the remainder.
If you think this might be valuable then you might be the reader the book is looking for. If you think it’s a statement of the "bleeding obvious" to quote Monty Python - then stay away.
Is this book of use to anyone? If you read the testimonials and Amazon reviews the only conclusion you can come to is that there exists a group of people who do need this sort of treatment of what in practice is already a difficult topic.
If you need to communicate with a management or team that are into this sort of SOA abstraction then I guess it might be of use. If you are trying to avoid actually doing anything then again it might be useful as a way of appearing to do something. If you are actually trying to do something practical don't waste your time.