Just done reading this nice book: SOA in Practice, by Nicolai M. Josuttis. I find it a good book to ask yourself if your architecture smells good or stinks. It does not include source code so it is more about the SOA tenets than explicit samples. Before reading the book, I thought that an architecture that uses web services was SOA, but Nicolai makes clear that “SOA is an architectural paradigm for dealing with business processes distributed over a large and heterogeneous landscape of existing and new systems that are under the control of different owners”. The book lead me to think things like… “oh, so I am doing well here, or, I am doing bad, or , this service I’ve got here is a composed service, or a basic service”… However, I miss more explicit samples, specially regarding the Enterprise Service Bus. I wanted to read about the Sun ESB or the Microsoft Internet Service Bus, but none of them were even named.
So good book to give you some hints on your design but not such a good book for beginners. On the other hand, I believe that an scenario that requires SOA is not good for a beginner or junior developer. SOA is about common sense.
By the way, one of the bests talks I’ve ever seen on SOA is the popular “Patterns and Anti-Patterns for SOA”, by Ron Jacobs. Check out the videos here: