This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
<pre>Author/s : Norbert Bieberstien, Sanjoy Bose, Marc Fiammante, Keith Jones, Rawn Shah Publisher : IBM Press Category :Project management, Process and Best Practices Review by : Simon Brown Rating : 8 horseshoes</pre> This book starts where you'd expect, by defining SOA, but does it a way that places SOA firmly in the context of both business and technology, setting the scene for the rest of the book. If you're looking for an in-depth technical overview of SOA and a guide showing you how to build services in a specific technology, this book isn't for you.
What this book does do is present SOA from many different perspectives, the first of which is all about the business value of SOA and how it facilitates agility within an enterprise. It also reinforces the fact that, particularly in an SOA world, IT really does need to work as closely with the business as possible, taking their lead to ensure that IT can change with the business.
Following on from this is a look at some of the architectural characteristics of SOA, before moving on to explain how you might plan an SOA project and define people's roles. It then goes on to provide guidance of how to perform the analysis and design activities associated with building an SOA.
"Enterprise Solution Assets" is one of my favourite chapters because it offers some really good advice about formalising and documenting all of those architectural decisions that get made on a day to day basis, in a format resembling that used to document design patterns. I really like this and have subsequently adopted it my current project.
As a technical architect, I found "Determining Non-Functional Requirements" and "Security" extremely relevant to my current role, with the latter chapter providing lots of really pragmatic advice about end-to-end security within an SOA. This is great, and it's rare to find a book that says, "you might not actually need all the overhead of this ideal solution, so here's a much simpler alternative and it's okay to use it". Wrapping up the book are chapters on management and a couple of case studies, one of which resembles our own SOA.
Personally, while I found the initial chapters on business value interesting, I got most value out of the latter half of the book purely because it's just very relevant to the work that I'm doing at the moment. This book manages to distill an obvious amount of SOA experience across many projects into a few hundred pages and, at every stage, I was left with a warm feeling that many of the decisions we've made on our project match up with the best practices being recommended here.
My only criticisms are that the style is a little heavy going in places and there are (unsurprisingly) quite a lot of references to IBM products, especially in the management chapter towards the end.
Overall, if you're an architect looking at SOA now or planning to in the future, this book will help you clarify your thoughts and steer you through the brave new world of a service oriented architecture. It comes highly recommended.