I am currently involved in a project that is part of our larger SOA strategy. SOA and related topics is a massive area and I am currently reading everything I can get my hands on to learn more about this complex area.
Sometime ago I was recommended Thomas Erl’s SOA Principles of Service Design (I’m going to shorten this to POSD to avoid RSI) as a good overview/introduction by a consultant I was working with (thanks Dave S!).
It is also worth noting that POSD has a brother/sister book called SOA Design Patterns which is apparently designed to complement & follow on from POSD. I haven’t read it so cannot comment much about this.
POSD weighs in at just under 600 pages & claims to introduce the reader to SOA principles and concepts, explain design approaches, techniques for maximizing reliability and much more – sign me up!
Despite its length POSD is a straight forward read & the text is broken up with frequent full colour diagrams. The use of colour is actually really nice in a heavy book such as POSD.
In many places the diagrams do a great job of explaining important concepts but I couldn’t help thinking that many were unnecessary and conveyed very little or the data/concepts would be better represented in tabular format. Having content broken up with an unnecessary diagram was a bit frustrating & I found myself flicking through them quickly as say you might those songs/poems in a Tolkien classic.
The book does an excellent job of introducing core concepts & some of the advantages/disadvantages of this style of architecture.
Subjects such as contracts. Schemas etc are given a thorough treatment. I guess at times some of the focus on XML related technologies & approaches can make it feel dated but it certainly doesn’t distract too much from the core concepts/principles.
For me at times the book felt like a school or university text book & I couldn’t help feel the content could be distilled into say a quarter of the size without losing anything. Maybe it’s arrogant to say but I think I could get the important stuff down to around 100-150 pages and lose very little.
A case study is used throughout the book with issues that will be very familiar to any developers/architects currently working with SOA.
I really wish the author has used the case study more and gone into more depth (say similar to Vaughn Vernon’s implementing domain driven design). The case study forms a tiny part of the book in relation to lengthy explanations of abstract principles which would benefit from further pairing with a solid example.
Overall for those new to SOA this book does an excellent job of covering the core concepts, it is easy to read despite its length & the colour diagrams make it nice to read.
I suspect an experienced practitioner probably wouldn’t learn so much from the book – I was familiar with much of the content (which is probably partly be due to some of the awesome people I work with).
Despite some of my concerns I have yet to find a clear introduction to SOA concepts so if you are new to this area you probably won’t do much better.