SOA: Getting it Right is a mashup book, edited by Jim Green, CEO of Composite Software, with chapters contributed by Jim Green, David Besemer, CTO of Composite Software, Luc Clément, Co-chair of OASIS UDDI Specification Technical Committee, Hub Vandervoort, CTO of Progress Software, Paul Butterworth, CTO of Amberpoint, Hemant Ramachandra, Managing Director of Business Systems Integration for BearingPoint, Jeff Schneider, CEO of Momentum SI.
In the first chapter, Green admits that some of the authors have different contradictory views of certain subjects. In the opening chapter, Green states "Hopefully, this makes the book richer, and doesn't introduce confusion." IMHO, what it mostly does is make the book uneven, and sometimes confusing. But there is still much to be admired here.
One of the helpful design mechanisms of the book is that each chapter begins with a summary of key recommendations. They key recommendations are hard to argue with, and I think add value to the book. The chapters include: Designing Services, Registries and Repositories, Enterprise Service Buses, Runtime Management, Organizing for Success, Capability Development, and a final chapter on pulling it all together including where to start, how to define scope and measure success, and a summary of the key recommendations from each chapter in the book.
My favorite chapter was Hub Vandervoort's explanation on ESBs. I recommend you pick up the book for this chapter alone. I've been doing research on ESBs since the term was coined, and there was much I learned from this chapter. Vandervoort discusses different types of ESBs, and the different applications they can be used for. He includes a chart on usage patterns and scenarios for different industries. Whereas most of the other chapters were at a pretty high level, there is much in the ESB chapter to sink your teeth into.
My big Ah Ha moment came while pondering the difference between David Besemer's depiction of service levels(p. 13) and Hemant Ramachandra's service layer model (p. 80). Besemer defines Physical Services which lie just above the data source and transform data into a form utilized by higher level services, Business Services which embody the bulk of transformation logic that converts data from physical form into required business form, and Application Services which leverage business services to provide data to consuming applications. Ramachandra's layers include business capability, business service level, technical component level, technical service layer. Now, granted that Besemer focuses just on data services, it would be nice to see how these relate to other breakdowns of service layers. My Ah Ha came when I realized that while we talk as IF people knew how to design services this is not the case at all. There is no one agreed upon reference model for service layers. Most of the organizations I have spoken with have low level data access services (read database calls - JDBC, ODBC calls). While we may be starting to tire of talking and writing about SOA, we still have a long way to go before realize the full benefits.
Bottom line, I think this book deserves a place on your bookshelf. We are going to be giving away 5 copies at SOA in Action. Join the action on Wed., November 19, for a chance to win.